diff --git a/dist/SpringRoll-Container-umd.js b/dist/SpringRoll-Container-umd.js index 8b31e22..8eaff24 100644 --- a/dist/SpringRoll-Container-umd.js +++ b/dist/SpringRoll-Container-umd.js @@ -1,2 +1,2 @@ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).springroll=t.springroll||{})}(this,(function(t){"use strict";var e="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof self&&self||void 0!==e&&e,n="URLSearchParams"in e,r="Symbol"in e&&"iterator"in Symbol,o="FileReader"in e&&"Blob"in e&&function(){try{return new Blob,!0}catch(t){return!1}}(),i="FormData"in e,s="ArrayBuffer"in e;if(s)var a=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],u=ArrayBuffer.isView||function(t){return t&&a.indexOf(Object.prototype.toString.call(t))>-1};function l(t){if("string"!=typeof t&&(t=String(t)),/[^a-z0-9\-#$%&'*+.^_`|~!]/i.test(t)||""===t)throw new TypeError('Invalid character in header field name: "'+t+'"');return t.toLowerCase()}function c(t){return"string"!=typeof t&&(t=String(t)),t}function d(t){var e={next:function(){var e=t.shift();return{done:void 0===e,value:e}}};return r&&(e[Symbol.iterator]=function(){return e}),e}function h(t){this.map={},t instanceof h?t.forEach((function(t,e){this.append(e,t)}),this):Array.isArray(t)?t.forEach((function(t){this.append(t[0],t[1])}),this):t&&Object.getOwnPropertyNames(t).forEach((function(e){this.append(e,t[e])}),this)}function f(t){if(t.bodyUsed)return Promise.reject(new TypeError("Already read"));t.bodyUsed=!0}function p(t){return new Promise((function(e,n){t.onload=function(){e(t.result)},t.onerror=function(){n(t.error)}}))}function v(t){var e=new FileReader,n=p(e);return e.readAsArrayBuffer(t),n}function y(t){if(t.slice)return t.slice(0);var e=new Uint8Array(t.byteLength);return e.set(new Uint8Array(t)),e.buffer}function g(){return this.bodyUsed=!1,this._initBody=function(t){var e;this.bodyUsed=this.bodyUsed,this._bodyInit=t,t?"string"==typeof t?this._bodyText=t:o&&Blob.prototype.isPrototypeOf(t)?this._bodyBlob=t:i&&FormData.prototype.isPrototypeOf(t)?this._bodyFormData=t:n&&URLSearchParams.prototype.isPrototypeOf(t)?this._bodyText=t.toString():s&&o&&((e=t)&&DataView.prototype.isPrototypeOf(e))?(this._bodyArrayBuffer=y(t.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):s&&(ArrayBuffer.prototype.isPrototypeOf(t)||u(t))?this._bodyArrayBuffer=y(t):this._bodyText=t=Object.prototype.toString.call(t):this._bodyText="",this.headers.get("content-type")||("string"==typeof t?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):n&&URLSearchParams.prototype.isPrototypeOf(t)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},o&&(this.blob=function(){var t=f(this);if(t)return t;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){if(this._bodyArrayBuffer){var t=f(this);return t||(ArrayBuffer.isView(this._bodyArrayBuffer)?Promise.resolve(this._bodyArrayBuffer.buffer.slice(this._bodyArrayBuffer.byteOffset,this._bodyArrayBuffer.byteOffset+this._bodyArrayBuffer.byteLength)):Promise.resolve(this._bodyArrayBuffer))}return this.blob().then(v)}),this.text=function(){var t=f(this);if(t)return t;if(this._bodyBlob)return function(t){var e=new FileReader,n=p(e);return e.readAsText(t),n}(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(function(t){for(var e=new Uint8Array(t),n=new Array(e.length),r=0;r-1?e:t}(e.method||this.method||"GET"),this.mode=e.mode||this.mode||null,this.signal=e.signal||this.signal,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&n)throw new TypeError("Body not allowed for GET or HEAD requests");if(this._initBody(n),!("GET"!==this.method&&"HEAD"!==this.method||"no-store"!==e.cache&&"no-cache"!==e.cache)){var r=/([?&])_=[^&]*/;if(r.test(this.url))this.url=this.url.replace(r,"$1_="+(new Date).getTime());else{this.url+=(/\?/.test(this.url)?"&":"?")+"_="+(new Date).getTime()}}}function S(t){var e=new FormData;return t.trim().split("&").forEach((function(t){if(t){var n=t.split("="),r=n.shift().replace(/\+/g," "),o=n.join("=").replace(/\+/g," ");e.append(decodeURIComponent(r),decodeURIComponent(o))}})),e}function w(t,e){if(!(this instanceof w))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');e||(e={}),this.type="default",this.status=void 0===e.status?200:e.status,this.ok=this.status>=200&&this.status<300,this.statusText=void 0===e.statusText?"":""+e.statusText,this.headers=new h(e.headers),this.url=e.url||"",this._initBody(t)}b.prototype.clone=function(){return new b(this,{body:this._bodyInit})},g.call(b.prototype),g.call(w.prototype),w.prototype.clone=function(){return new w(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new h(this.headers),url:this.url})},w.error=function(){var t=new w(null,{status:0,statusText:""});return t.type="error",t};var k=[301,302,303,307,308];w.redirect=function(t,e){if(-1===k.indexOf(e))throw new RangeError("Invalid status code");return new w(null,{status:e,headers:{location:t}})};var E=e.DOMException;try{new E}catch(t){(E=function(t,e){this.message=t,this.name=e;var n=Error(t);this.stack=n.stack}).prototype=Object.create(Error.prototype),E.prototype.constructor=E}function B(t,n){return new Promise((function(r,i){var a=new b(t,n);if(a.signal&&a.signal.aborted)return i(new E("Aborted","AbortError"));var u=new XMLHttpRequest;function l(){u.abort()}u.onload=function(){var t,e,n={status:u.status,statusText:u.statusText,headers:(t=u.getAllResponseHeaders()||"",e=new h,t.replace(/\r?\n[\t ]+/g," ").split("\r").map((function(t){return 0===t.indexOf("\n")?t.substr(1,t.length):t})).forEach((function(t){var n=t.split(":"),r=n.shift().trim();if(r){var o=n.join(":").trim();e.append(r,o)}})),e)};n.url="responseURL"in u?u.responseURL:n.headers.get("X-Request-URL");var o="response"in u?u.response:u.responseText;setTimeout((function(){r(new w(o,n))}),0)},u.onerror=function(){setTimeout((function(){i(new TypeError("Network request failed"))}),0)},u.ontimeout=function(){setTimeout((function(){i(new TypeError("Network request failed"))}),0)},u.onabort=function(){setTimeout((function(){i(new E("Aborted","AbortError"))}),0)},u.open(a.method,function(t){try{return""===t&&e.location.href?e.location.href:t}catch(e){return t}}(a.url),!0),"include"===a.credentials?u.withCredentials=!0:"omit"===a.credentials&&(u.withCredentials=!1),"responseType"in u&&(o?u.responseType="blob":s&&a.headers.get("Content-Type")&&-1!==a.headers.get("Content-Type").indexOf("application/octet-stream")&&(u.responseType="arraybuffer")),!n||"object"!=typeof n.headers||n.headers instanceof h?a.headers.forEach((function(t,e){u.setRequestHeader(e,t)})):Object.getOwnPropertyNames(n.headers).forEach((function(t){u.setRequestHeader(t,c(n.headers[t]))})),a.signal&&(a.signal.addEventListener("abort",l),u.onreadystatechange=function(){4===u.readyState&&a.signal.removeEventListener("abort",l)}),u.send(void 0===a._bodyInit?null:a._bodyInit)}))}B.polyfill=!0,e.fetch||(e.fetch=B,e.Headers=h,e.Request=b,e.Response=w);var x="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},P=function(t){return t&&t.Math==Math&&t},L=P("object"==typeof globalThis&&globalThis)||P("object"==typeof window&&window)||P("object"==typeof self&&self)||P("object"==typeof x&&x)||function(){return this}()||Function("return this")(),_={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0},O="object"==typeof document&&document.all,A={all:O,IS_HTMLDDA:void 0===O&&void 0!==O},V=A.all,C=A.IS_HTMLDDA?function(t){return"function"==typeof t||t===V}:function(t){return"function"==typeof t},D=C,M=A.all,T=A.IS_HTMLDDA?function(t){return"object"==typeof t?null!==t:D(t)||t===M}:function(t){return"object"==typeof t?null!==t:D(t)},I=T,R=L.document,j=I(R)&&I(R.createElement),N=function(t){return j?R.createElement(t):{}},K=N("span").classList,F=K&&K.constructor&&K.constructor.prototype,G=F===Object.prototype?void 0:F,U=function(t){try{return!!t()}catch(t){return!0}},H=!U((function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")})),z=H,q=Function.prototype,W=q.call,X=z&&q.bind.bind(W,W),Y=z?X:function(t){return function(){return W.apply(t,arguments)}},J=Y,$=J({}.toString),Q=J("".slice),Z=function(t){return Q($(t),8,-1)},tt=Z,et=Y,nt=function(t){if("Function"===tt(t))return et(t)},rt=String,ot=function(t){try{return rt(t)}catch(t){return"Object"}},it=C,st=ot,at=TypeError,ut=function(t){if(it(t))return t;throw at(st(t)+" is not a function")},lt=ut,ct=H,dt=nt(nt.bind),ht=function(t,e){return lt(t),void 0===e?t:ct?dt(t,e):function(){return t.apply(e,arguments)}},ft=U,pt=Z,vt=Object,yt=Y("".split),gt=ft((function(){return!vt("z").propertyIsEnumerable(0)}))?function(t){return"String"==pt(t)?yt(t,""):vt(t)}:vt,mt=function(t){return null==t},bt=mt,St=TypeError,wt=function(t){if(bt(t))throw St("Can't call method on "+t);return t},kt=wt,Et=Object,Bt=function(t){return Et(kt(t))},xt=Math.ceil,Pt=Math.floor,Lt=Math.trunc||function(t){var e=+t;return(e>0?Pt:xt)(e)},_t=Lt,Ot=function(t){var e=+t;return e!=e||0===e?0:_t(e)},At=Ot,Vt=Math.min,Ct=function(t){return t>0?Vt(At(t),9007199254740991):0},Dt=function(t){return Ct(t.length)},Mt=Z,Tt=Array.isArray||function(t){return"Array"==Mt(t)},It={exports:{}},Rt=L,jt=Object.defineProperty,Nt=function(t,e){try{jt(Rt,t,{value:e,configurable:!0,writable:!0})}catch(n){Rt[t]=e}return e},Kt=Nt,Ft="__core-js_shared__",Gt=L[Ft]||Kt(Ft,{}),Ut=Gt;(It.exports=function(t,e){return Ut[t]||(Ut[t]=void 0!==e?e:{})})("versions",[]).push({version:"3.28.0",mode:"global",copyright:"© 2014-2023 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.28.0/LICENSE",source:"https://github.com/zloirock/core-js"});var Ht,zt,qt=It.exports,Wt=Bt,Xt=Y({}.hasOwnProperty),Yt=Object.hasOwn||function(t,e){return Xt(Wt(t),e)},Jt=Y,$t=0,Qt=Math.random(),Zt=Jt(1..toString),te=function(t){return"Symbol("+(void 0===t?"":t)+")_"+Zt(++$t+Qt,36)},ee="undefined"!=typeof navigator&&String(navigator.userAgent)||"",ne=L,re=ee,oe=ne.process,ie=ne.Deno,se=oe&&oe.versions||ie&&ie.version,ae=se&&se.v8;ae&&(zt=(Ht=ae.split("."))[0]>0&&Ht[0]<4?1:+(Ht[0]+Ht[1])),!zt&&re&&(!(Ht=re.match(/Edge\/(\d+)/))||Ht[1]>=74)&&(Ht=re.match(/Chrome\/(\d+)/))&&(zt=+Ht[1]);var ue=zt,le=ue,ce=U,de=!!Object.getOwnPropertySymbols&&!ce((function(){var t=Symbol();return!String(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&le&&le<41})),he=de&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,fe=qt,pe=Yt,ve=te,ye=de,ge=he,me=L.Symbol,be=fe("wks"),Se=ge?me.for||me:me&&me.withoutSetter||ve,we=function(t){return pe(be,t)||(be[t]=ye&&pe(me,t)?me[t]:Se("Symbol."+t)),be[t]},ke={};ke[we("toStringTag")]="z";var Ee="[object z]"===String(ke),Be=Ee,xe=C,Pe=Z,Le=we("toStringTag"),_e=Object,Oe="Arguments"==Pe(function(){return arguments}()),Ae=Be?Pe:function(t){var e,n,r;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(t){}}(e=_e(t),Le))?n:Oe?Pe(e):"Object"==(r=Pe(e))&&xe(e.callee)?"Arguments":r},Ve=L,Ce=C,De=function(t,e){return arguments.length<2?(n=Ve[t],Ce(n)?n:void 0):Ve[t]&&Ve[t][e];var n},Me=C,Te=Gt,Ie=Y(Function.toString);Me(Te.inspectSource)||(Te.inspectSource=function(t){return Ie(t)});var Re=Te.inspectSource,je=Y,Ne=U,Ke=C,Fe=Ae,Ge=Re,Ue=function(){},He=[],ze=De("Reflect","construct"),qe=/^\s*(?:class|function)\b/,We=je(qe.exec),Xe=!qe.exec(Ue),Ye=function(t){if(!Ke(t))return!1;try{return ze(Ue,He,t),!0}catch(t){return!1}},Je=function(t){if(!Ke(t))return!1;switch(Fe(t)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return Xe||!!We(qe,Ge(t))}catch(t){return!0}};Je.sham=!0;var $e=!ze||Ne((function(){var t;return Ye(Ye.call)||!Ye(Object)||!Ye((function(){t=!0}))||t}))?Je:Ye,Qe=Tt,Ze=$e,tn=T,en=we("species"),nn=Array,rn=function(t){var e;return Qe(t)&&(e=t.constructor,(Ze(e)&&(e===nn||Qe(e.prototype))||tn(e)&&null===(e=e[en]))&&(e=void 0)),void 0===e?nn:e},on=function(t,e){return new(rn(t))(0===e?0:e)},sn=ht,an=gt,un=Bt,ln=Dt,cn=on,dn=Y([].push),hn=function(t){var e=1==t,n=2==t,r=3==t,o=4==t,i=6==t,s=7==t,a=5==t||i;return function(u,l,c,d){for(var h,f,p=un(u),v=an(p),y=sn(l,c),g=ln(v),m=0,b=d||cn,S=e?b(u,g):n||s?b(u,0):void 0;g>m;m++)if((a||m in v)&&(f=y(h=v[m],m,p),t))if(e)S[m]=f;else if(f)switch(t){case 3:return!0;case 5:return h;case 6:return m;case 2:dn(S,h)}else switch(t){case 4:return!1;case 7:dn(S,h)}return i?-1:r||o?o:S}},fn={forEach:hn(0),map:hn(1),filter:hn(2),some:hn(3),every:hn(4),find:hn(5),findIndex:hn(6),filterReject:hn(7)},pn=U,vn=function(t,e){var n=[][t];return!!n&&pn((function(){n.call(null,e||function(){return 1},1)}))},yn=fn.forEach,gn=vn("forEach")?[].forEach:function(t){return yn(this,t,arguments.length>1?arguments[1]:void 0)},mn=!U((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),bn={},Sn=N,wn=!mn&&!U((function(){return 7!=Object.defineProperty(Sn("div"),"a",{get:function(){return 7}}).a})),kn=mn&&U((function(){return 42!=Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype})),En=T,Bn=String,xn=TypeError,Pn=function(t){if(En(t))return t;throw xn(Bn(t)+" is not an object")},Ln=H,_n=Function.prototype.call,On=Ln?_n.bind(_n):function(){return _n.apply(_n,arguments)},An=Y({}.isPrototypeOf),Vn=De,Cn=C,Dn=An,Mn=Object,Tn=he?function(t){return"symbol"==typeof t}:function(t){var e=Vn("Symbol");return Cn(e)&&Dn(e.prototype,Mn(t))},In=ut,Rn=mt,jn=function(t,e){var n=t[e];return Rn(n)?void 0:In(n)},Nn=On,Kn=C,Fn=T,Gn=TypeError,Un=On,Hn=T,zn=Tn,qn=jn,Wn=function(t,e){var n,r;if("string"===e&&Kn(n=t.toString)&&!Fn(r=Nn(n,t)))return r;if(Kn(n=t.valueOf)&&!Fn(r=Nn(n,t)))return r;if("string"!==e&&Kn(n=t.toString)&&!Fn(r=Nn(n,t)))return r;throw Gn("Can't convert object to primitive value")},Xn=TypeError,Yn=we("toPrimitive"),Jn=function(t,e){if(!Hn(t)||zn(t))return t;var n,r=qn(t,Yn);if(r){if(void 0===e&&(e="default"),n=Un(r,t,e),!Hn(n)||zn(n))return n;throw Xn("Can't convert object to primitive value")}return void 0===e&&(e="number"),Wn(t,e)},$n=Jn,Qn=Tn,Zn=function(t){var e=$n(t,"string");return Qn(e)?e:e+""},tr=mn,er=wn,nr=kn,rr=Pn,or=Zn,ir=TypeError,sr=Object.defineProperty,ar=Object.getOwnPropertyDescriptor,ur="enumerable",lr="configurable",cr="writable";bn.f=tr?nr?function(t,e,n){if(rr(t),e=or(e),rr(n),"function"==typeof t&&"prototype"===e&&"value"in n&&cr in n&&!n[cr]){var r=ar(t,e);r&&r[cr]&&(t[e]=n.value,n={configurable:lr in n?n[lr]:r[lr],enumerable:ur in n?n[ur]:r[ur],writable:!1})}return sr(t,e,n)}:sr:function(t,e,n){if(rr(t),e=or(e),rr(n),er)try{return sr(t,e,n)}catch(t){}if("get"in n||"set"in n)throw ir("Accessors not supported");return"value"in n&&(t[e]=n.value),t};var dr=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}},hr=bn,fr=dr,pr=mn?function(t,e,n){return hr.f(t,e,fr(1,n))}:function(t,e,n){return t[e]=n,t},vr=L,yr=_,gr=G,mr=gn,br=pr,Sr=function(t){if(t&&t.forEach!==mr)try{br(t,"forEach",mr)}catch(e){t.forEach=mr}};for(var wr in yr)yr[wr]&&Sr(vr[wr]&&vr[wr].prototype);Sr(gr);var kr=gt,Er=wt,Br=function(t){return kr(Er(t))},xr={},Pr=Ot,Lr=Math.max,_r=Math.min,Or=function(t,e){var n=Pr(t);return n<0?Lr(n+e,0):_r(n,e)},Ar=Br,Vr=Or,Cr=Dt,Dr=function(t){return function(e,n,r){var o,i=Ar(e),s=Cr(i),a=Vr(r,s);if(t&&n!=n){for(;s>a;)if((o=i[a++])!=o)return!0}else for(;s>a;a++)if((t||a in i)&&i[a]===n)return t||a||0;return!t&&-1}},Mr={includes:Dr(!0),indexOf:Dr(!1)},Tr={},Ir=Yt,Rr=Br,jr=Mr.indexOf,Nr=Tr,Kr=Y([].push),Fr=function(t,e){var n,r=Rr(t),o=0,i=[];for(n in r)!Ir(Nr,n)&&Ir(r,n)&&Kr(i,n);for(;e.length>o;)Ir(r,n=e[o++])&&(~jr(i,n)||Kr(i,n));return i},Gr=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],Ur=Fr,Hr=Gr,zr=Object.keys||function(t){return Ur(t,Hr)},qr=mn,Wr=kn,Xr=bn,Yr=Pn,Jr=Br,$r=zr;xr.f=qr&&!Wr?Object.defineProperties:function(t,e){Yr(t);for(var n,r=Jr(e),o=$r(e),i=o.length,s=0;i>s;)Xr.f(t,n=o[s++],r[n]);return t};var Qr,Zr=De("document","documentElement"),to=te,eo=qt("keys"),no=function(t){return eo[t]||(eo[t]=to(t))},ro=Pn,oo=xr,io=Gr,so=Tr,ao=Zr,uo=N,lo="prototype",co="script",ho=no("IE_PROTO"),fo=function(){},po=function(t){return"<"+co+">"+t+""},vo=function(t){t.write(po("")),t.close();var e=t.parentWindow.Object;return t=null,e},yo=function(){try{Qr=new ActiveXObject("htmlfile")}catch(t){}var t,e,n;yo="undefined"!=typeof document?document.domain&&Qr?vo(Qr):(e=uo("iframe"),n="java"+co+":",e.style.display="none",ao.appendChild(e),e.src=String(n),(t=e.contentWindow.document).open(),t.write(po("document.F=Object")),t.close(),t.F):vo(Qr);for(var r=io.length;r--;)delete yo[lo][io[r]];return yo()};so[ho]=!0;var go=Object.create||function(t,e){var n;return null!==t?(fo[lo]=ro(t),n=new fo,fo[lo]=null,n[ho]=t):n=yo(),void 0===e?n:oo.f(n,e)},mo=we,bo=go,So=bn.f,wo=mo("unscopables"),ko=Array.prototype;null==ko[wo]&&So(ko,wo,{configurable:!0,value:bo(null)});var Eo,Bo,xo,Po=function(t){ko[wo][t]=!0},Lo={},_o=C,Oo=L.WeakMap,Ao=_o(Oo)&&/native code/.test(String(Oo)),Vo=L,Co=T,Do=pr,Mo=Yt,To=Gt,Io=no,Ro=Tr,jo="Object already initialized",No=Vo.TypeError,Ko=Vo.WeakMap;if(Ao||To.state){var Fo=To.state||(To.state=new Ko);Fo.get=Fo.get,Fo.has=Fo.has,Fo.set=Fo.set,Eo=function(t,e){if(Fo.has(t))throw No(jo);return e.facade=t,Fo.set(t,e),e},Bo=function(t){return Fo.get(t)||{}},xo=function(t){return Fo.has(t)}}else{var Go=Io("state");Ro[Go]=!0,Eo=function(t,e){if(Mo(t,Go))throw No(jo);return e.facade=t,Do(t,Go,e),e},Bo=function(t){return Mo(t,Go)?t[Go]:{}},xo=function(t){return Mo(t,Go)}}var Uo={set:Eo,get:Bo,has:xo,enforce:function(t){return xo(t)?Bo(t):Eo(t,{})},getterFor:function(t){return function(e){var n;if(!Co(e)||(n=Bo(e)).type!==t)throw No("Incompatible receiver, "+t+" required");return n}}},Ho={},zo={},qo={}.propertyIsEnumerable,Wo=Object.getOwnPropertyDescriptor,Xo=Wo&&!qo.call({1:2},1);zo.f=Xo?function(t){var e=Wo(this,t);return!!e&&e.enumerable}:qo;var Yo=mn,Jo=On,$o=zo,Qo=dr,Zo=Br,ti=Zn,ei=Yt,ni=wn,ri=Object.getOwnPropertyDescriptor;Ho.f=Yo?ri:function(t,e){if(t=Zo(t),e=ti(e),ni)try{return ri(t,e)}catch(t){}if(ei(t,e))return Qo(!Jo($o.f,t,e),t[e])};var oi={exports:{}},ii=mn,si=Yt,ai=Function.prototype,ui=ii&&Object.getOwnPropertyDescriptor,li=si(ai,"name"),ci={EXISTS:li,PROPER:li&&"something"===function(){}.name,CONFIGURABLE:li&&(!ii||ii&&ui(ai,"name").configurable)},di=Y,hi=U,fi=C,pi=Yt,vi=mn,yi=ci.CONFIGURABLE,gi=Re,mi=Uo.enforce,bi=Uo.get,Si=String,wi=Object.defineProperty,ki=di("".slice),Ei=di("".replace),Bi=di([].join),xi=vi&&!hi((function(){return 8!==wi((function(){}),"length",{value:8}).length})),Pi=String(String).split("String"),Li=oi.exports=function(t,e,n){"Symbol("===ki(Si(e),0,7)&&(e="["+Ei(Si(e),/^Symbol\(([^)]*)\)/,"$1")+"]"),n&&n.getter&&(e="get "+e),n&&n.setter&&(e="set "+e),(!pi(t,"name")||yi&&t.name!==e)&&(vi?wi(t,"name",{value:e,configurable:!0}):t.name=e),xi&&n&&pi(n,"arity")&&t.length!==n.arity&&wi(t,"length",{value:n.arity});try{n&&pi(n,"constructor")&&n.constructor?vi&&wi(t,"prototype",{writable:!1}):t.prototype&&(t.prototype=void 0)}catch(t){}var r=mi(t);return pi(r,"source")||(r.source=Bi(Pi,"string"==typeof e?e:"")),t};Function.prototype.toString=Li((function(){return fi(this)&&bi(this).source||gi(this)}),"toString");var _i=oi.exports,Oi=C,Ai=bn,Vi=_i,Ci=Nt,Di=function(t,e,n,r){r||(r={});var o=r.enumerable,i=void 0!==r.name?r.name:e;if(Oi(n)&&Vi(n,i,r),r.global)o?t[e]=n:Ci(e,n);else{try{r.unsafe?t[e]&&(o=!0):delete t[e]}catch(t){}o?t[e]=n:Ai.f(t,e,{value:n,enumerable:!1,configurable:!r.nonConfigurable,writable:!r.nonWritable})}return t},Mi={},Ti=Fr,Ii=Gr.concat("length","prototype");Mi.f=Object.getOwnPropertyNames||function(t){return Ti(t,Ii)};var Ri={};Ri.f=Object.getOwnPropertySymbols;var ji,Ni,Ki,Fi=De,Gi=Mi,Ui=Ri,Hi=Pn,zi=Y([].concat),qi=Fi("Reflect","ownKeys")||function(t){var e=Gi.f(Hi(t)),n=Ui.f;return n?zi(e,n(t)):e},Wi=Yt,Xi=qi,Yi=Ho,Ji=bn,$i=U,Qi=C,Zi=/#|\.prototype\./,ts=function(t,e){var n=ns[es(t)];return n==os||n!=rs&&(Qi(e)?$i(e):!!e)},es=ts.normalize=function(t){return String(t).replace(Zi,".").toLowerCase()},ns=ts.data={},rs=ts.NATIVE="N",os=ts.POLYFILL="P",is=ts,ss=L,as=Ho.f,us=pr,ls=Di,cs=Nt,ds=function(t,e,n){for(var r=Xi(e),o=Ji.f,i=Yi.f,s=0;s=e.length?(t.target=void 0,Ba(void 0,!0)):Ba("keys"==n?r:"values"==n?e[r]:[r,e[r]],!1)}),"values"),Aa=Sa.Arguments=Sa.Array;if(ba("keys"),ba("values"),ba("entries"),xa&&"values"!==Aa.name)try{ka(Aa,"name",{value:"values"})}catch(t){}var Va=L,Ca=_,Da=G,Ma=Oa,Ta=pr,Ia=we,Ra=Ia("iterator"),ja=Ia("toStringTag"),Na=Ma.values,Ka=function(t,e){if(t){if(t[Ra]!==Na)try{Ta(t,Ra,Na)}catch(e){t[Ra]=Na}if(t[ja]||Ta(t,ja,e),Ca[e])for(var n in Ma)if(t[n]!==Ma[n])try{Ta(t,n,Ma[n])}catch(e){t[n]=Ma[n]}}};for(var Fa in Ca)Ka(Va[Fa]&&Va[Fa].prototype,Fa);Ka(Da,"DOMTokenList");var Ga=L;function Ua(){Ua=function(){return t};var t={},e=Object.prototype,n=e.hasOwnProperty,r=Object.defineProperty||function(t,e,n){t[e]=n.value},o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",s=o.asyncIterator||"@@asyncIterator",a=o.toStringTag||"@@toStringTag";function u(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{u({},"")}catch(t){u=function(t,e,n){return t[e]=n}}function l(t,e,n,o){var i=e&&e.prototype instanceof h?e:h,s=Object.create(i.prototype),a=new x(o||[]);return r(s,"_invoke",{value:w(t,n,a)}),s}function c(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}t.wrap=l;var d={};function h(){}function f(){}function p(){}var v={};u(v,i,(function(){return this}));var y=Object.getPrototypeOf,g=y&&y(y(P([])));g&&g!==e&&n.call(g,i)&&(v=g);var m=p.prototype=h.prototype=Object.create(v);function b(t){["next","throw","return"].forEach((function(e){u(t,e,(function(t){return this._invoke(e,t)}))}))}function S(t,e){function o(r,i,s,a){var u=c(t[r],t,i);if("throw"!==u.type){var l=u.arg,d=l.value;return d&&"object"==typeof d&&n.call(d,"__await")?e.resolve(d.__await).then((function(t){o("next",t,s,a)}),(function(t){o("throw",t,s,a)})):e.resolve(d).then((function(t){l.value=t,s(l)}),(function(t){return o("throw",t,s,a)}))}a(u.arg)}var i;r(this,"_invoke",{value:function(t,n){function r(){return new e((function(e,r){o(t,n,e,r)}))}return i=i?i.then(r,r):r()}})}function w(t,e,n){var r="suspendedStart";return function(o,i){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===o)throw i;return L()}for(n.method=o,n.arg=i;;){var s=n.delegate;if(s){var a=k(s,n);if(a){if(a===d)continue;return a}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var u=c(t,e,n);if("normal"===u.type){if(r=n.done?"completed":"suspendedYield",u.arg===d)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(r="completed",n.method="throw",n.arg=u.arg)}}}function k(t,e){var n=e.method,r=t.iterator[n];if(void 0===r)return e.delegate=null,"throw"===n&&t.iterator.return&&(e.method="return",e.arg=void 0,k(t,e),"throw"===e.method)||"return"!==n&&(e.method="throw",e.arg=new TypeError("The iterator does not provide a '"+n+"' method")),d;var o=c(r,t.iterator,e.arg);if("throw"===o.type)return e.method="throw",e.arg=o.arg,e.delegate=null,d;var i=o.arg;return i?i.done?(e[t.resultName]=i.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,d):i:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,d)}function E(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function B(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function x(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(E,this),this.reset(!0)}function P(t){if(t){var e=t[i];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,o=function e(){for(;++r=0;--o){var i=this.tryEntries[o],s=i.completion;if("root"===i.tryLoc)return r("end");if(i.tryLoc<=this.prev){var a=n.call(i,"catchLoc"),u=n.call(i,"finallyLoc");if(a&&u){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),B(n),d}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var o=r.arg;B(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,n){return this.delegate={iterator:P(t),resultName:e,nextLoc:n},"next"===this.method&&(this.arg=void 0),d}},t}function Ha(t){return Ha="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ha(t)}function za(t,e,n,r,o,i,s){try{var a=t[i](s),u=a.value}catch(t){return void n(t)}a.done?e(u):Promise.resolve(u).then(r,o)}function qa(t){return function(){var e=this,n=arguments;return new Promise((function(r,o){var i=t.apply(e,n);function s(t){za(i,r,o,s,a,"next",t)}function a(t){za(i,r,o,s,a,"throw",t)}s(void 0)}))}}function Wa(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function Xa(t,e){for(var n=0;nt.length)&&(e=t.length);for(var n=0,r=new Array(e);n=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,a=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return s=t.done,t},e:function(t){a=!0,i=t},f:function(){try{s||null==n.return||n.return()}finally{if(a)throw i}}}}var su=fs,au=Mr.indexOf,uu=vn,lu=nt([].indexOf),cu=!!lu&&1/lu([1],1,-0)<0;su({target:"Array",proto:!0,forced:cu||!uu("indexOf")},{indexOf:function(t){var e=arguments.length>1?arguments[1]:void 0;return cu?lu(this,t,e)||0:au(this,t,e)}});var du=TypeError,hu=Zn,fu=bn,pu=dr,vu=function(t,e,n){var r=hu(e);r in t?fu.f(t,r,pu(0,n)):t[r]=n},yu=U,gu=ue,mu=we("species"),bu=function(t){return gu>=51||!yu((function(){var e=[];return(e.constructor={})[mu]=function(){return{foo:1}},1!==e[t](Boolean).foo}))},Su=fs,wu=U,ku=Tt,Eu=T,Bu=Bt,xu=Dt,Pu=function(t){if(t>9007199254740991)throw du("Maximum allowed index exceeded");return t},Lu=vu,_u=on,Ou=bu,Au=ue,Vu=we("isConcatSpreadable"),Cu=Au>=51||!wu((function(){var t=[];return t[Vu]=!1,t.concat()[0]!==t})),Du=function(t){if(!Eu(t))return!1;var e=t[Vu];return void 0!==e?!!e:ku(t)};Su({target:"Array",proto:!0,arity:1,forced:!Cu||!Ou("concat")},{concat:function(t){var e,n,r,o,i,s=Bu(this),a=_u(s,0),u=0;for(e=-1,r=arguments.length;eo;)for(var a,u=Gu(arguments[o++]),l=i?zu(ju(u),i(u)):ju(u),c=l.length,d=0;c>d;)a=l[d++],Mu&&!Iu(s,u,a)||(n[a]=u[a]);return n}:Uu,Wu=qu;fs({target:"Object",stat:!0,arity:2,forced:Object.assign!==Wu},{assign:Wu});var Xu=Ae,Yu=Ee?{}.toString:function(){return"[object "+Xu(this)+"]"};Ee||Di(Object.prototype,"toString",Yu,{unsafe:!0});var Ju,$u,Qu,Zu,tl="undefined"!=typeof process&&"process"==Z(process),el=_i,nl=bn,rl=function(t,e,n){return n.get&&el(n.get,e,{getter:!0}),n.set&&el(n.set,e,{setter:!0}),nl.f(t,e,n)},ol=De,il=rl,sl=mn,al=we("species"),ul=function(t){var e=ol(t);sl&&e&&!e[al]&&il(e,al,{configurable:!0,get:function(){return this}})},ll=An,cl=TypeError,dl=function(t,e){if(ll(e,t))return t;throw cl("Incorrect invocation")},hl=$e,fl=ot,pl=TypeError,vl=Pn,yl=function(t){if(hl(t))return t;throw pl(fl(t)+" is not a constructor")},gl=mt,ml=we("species"),bl=H,Sl=Function.prototype,wl=Sl.apply,kl=Sl.call,El="object"==typeof Reflect&&Reflect.apply||(bl?kl.bind(wl):function(){return kl.apply(wl,arguments)}),Bl=Y([].slice),xl=TypeError,Pl=/(?:ipad|iphone|ipod).*applewebkit/i.test(ee),Ll=L,_l=El,Ol=ht,Al=C,Vl=Yt,Cl=U,Dl=Zr,Ml=Bl,Tl=N,Il=function(t,e){if(ti;i++)if((a=g(t[i]))&&vh(wh,a))return a;return new Sh(!1)}r=yh(t,o)}for(u=h?t.next:r.next;!(l=ch(u,r)).done;){try{a=g(l.value)}catch(t){mh(r,"throw",t)}if("object"==typeof a&&a&&vh(wh,a))return a}return new Sh(!1)},Eh=we("iterator"),Bh=!1;try{var xh=0,Ph={next:function(){return{done:!!xh++}},return:function(){Bh=!0}};Ph[Eh]=function(){return this},Array.from(Ph,(function(){throw 2}))}catch(t){}var Lh=function(t,e){if(!e&&!Bh)return!1;var n=!1;try{var r={};r[Eh]=function(){return{next:function(){return{done:n=!0}}}},t(r)}catch(t){}return n},_h=_c,Oh=Hc.CONSTRUCTOR||!Lh((function(t){_h.all(t).then(void 0,(function(){}))})),Ah=On,Vh=ut,Ch=zc,Dh=Lc,Mh=kh;fs({target:"Promise",stat:!0,forced:Oh},{all:function(t){var e=this,n=Ch.f(e),r=n.resolve,o=n.reject,i=Dh((function(){var n=Vh(e.resolve),i=[],s=0,a=1;Mh(t,(function(t){var u=s++,l=!1;a++,Ah(n,e,t).then((function(t){l||(l=!0,i[u]=t,--a||r(i))}),o)})),--a||r(i)}));return i.error&&o(i.value),n.promise}});var Th=fs,Ih=Hc.CONSTRUCTOR,Rh=_c,jh=De,Nh=C,Kh=Di,Fh=Rh&&Rh.prototype;if(Th({target:"Promise",proto:!0,forced:Ih,real:!0},{catch:function(t){return this.then(void 0,t)}}),Nh(Rh)){var Gh=jh("Promise").prototype.catch;Fh.catch!==Gh&&Kh(Fh,"catch",Gh,{unsafe:!0})}var Uh=On,Hh=ut,zh=zc,qh=Lc,Wh=kh;fs({target:"Promise",stat:!0,forced:Oh},{race:function(t){var e=this,n=zh.f(e),r=n.reject,o=qh((function(){var o=Hh(e.resolve);Wh(t,(function(t){Uh(o,e,t).then(n.resolve,r)}))}));return o.error&&r(o.value),n.promise}});var Xh=On,Yh=zc;fs({target:"Promise",stat:!0,forced:Hc.CONSTRUCTOR},{reject:function(t){var e=Yh.f(this);return Xh(e.reject,void 0,t),e.promise}});var Jh=Pn,$h=T,Qh=zc,Zh=fs,tf=Hc.CONSTRUCTOR,ef=function(t,e){if(Jh(t),$h(e)&&e.constructor===t)return e;var n=Qh.f(t);return(0,n.resolve)(e),n.promise};De("Promise"),Zh({target:"Promise",stat:!0,forced:tf},{resolve:function(t){return ef(this,t)}});var nf,rf,of=Ae,sf=String,af=function(t){if("Symbol"===of(t))throw TypeError("Cannot convert a Symbol value to a string");return sf(t)},uf=Pn,lf=function(){var t=uf(this),e="";return t.hasIndices&&(e+="d"),t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.dotAll&&(e+="s"),t.unicode&&(e+="u"),t.unicodeSets&&(e+="v"),t.sticky&&(e+="y"),e},cf=U,df=L.RegExp,hf=cf((function(){var t=df("a","y");return t.lastIndex=2,null!=t.exec("abcd")})),ff=hf||cf((function(){return!df("a","y").sticky})),pf={BROKEN_CARET:hf||cf((function(){var t=df("^r","gy");return t.lastIndex=2,null!=t.exec("str")})),MISSED_STICKY:ff,UNSUPPORTED_Y:hf},vf=U,yf=L.RegExp,gf=vf((function(){var t=yf(".","s");return!(t.dotAll&&t.exec("\n")&&"s"===t.flags)})),mf=U,bf=L.RegExp,Sf=mf((function(){var t=bf("(?b)","g");return"b"!==t.exec("b").groups.a||"bc"!=="b".replace(t,"$c")})),wf=On,kf=Y,Ef=af,Bf=lf,xf=pf,Pf=go,Lf=Uo.get,_f=gf,Of=Sf,Af=qt("native-string-replace",String.prototype.replace),Vf=RegExp.prototype.exec,Cf=Vf,Df=kf("".charAt),Mf=kf("".indexOf),Tf=kf("".replace),If=kf("".slice),Rf=(rf=/b*/g,wf(Vf,nf=/a/,"a"),wf(Vf,rf,"a"),0!==nf.lastIndex||0!==rf.lastIndex),jf=xf.BROKEN_CARET,Nf=void 0!==/()??/.exec("")[1];(Rf||Nf||jf||_f||Of)&&(Cf=function(t){var e,n,r,o,i,s,a,u=this,l=Lf(u),c=Ef(t),d=l.raw;if(d)return d.lastIndex=u.lastIndex,e=wf(Cf,d,c),u.lastIndex=d.lastIndex,e;var h=l.groups,f=jf&&u.sticky,p=wf(Bf,u),v=u.source,y=0,g=c;if(f&&(p=Tf(p,"y",""),-1===Mf(p,"g")&&(p+="g"),g=If(c,u.lastIndex),u.lastIndex>0&&(!u.multiline||u.multiline&&"\n"!==Df(c,u.lastIndex-1))&&(v="(?: "+v+")",g=" "+g,y++),n=new RegExp("^(?:"+v+")",p)),Nf&&(n=new RegExp("^"+v+"$(?!\\s)",p)),Rf&&(r=u.lastIndex),o=wf(Vf,f?n:u,g),f?o?(o.input=If(o.input,y),o[0]=If(o[0],y),o.index=u.lastIndex,u.lastIndex+=o[0].length):u.lastIndex=0:Rf&&o&&(u.lastIndex=u.global?o.index+o[0].length:r),Nf&&o&&o.length>1&&wf(Af,o[0],n,(function(){for(i=1;i0||navigator.pointerEnabled&&navigator.maxTouchPoints>0)}},{key:"basic",value:function(){return t.canvas?t.webaudio||t.htmlAudio?null:"Browser does not support WebAudio or HTMLAudio":"Browser does not support canvas"}},{key:"test",value:function(e){var n=this.basic();if(n)return n;var r=e.features,o=e.ui,i=e.sizes;for(var s in r)if(!0===r[s]&&!t[s])return"Browser does not support "+s;if(!o.touch&&t.touch)return"Game does not support touch input";var a=Math.max(window.screen.width,window.screen.height);return!i.xsmall&&a<480?"Game doesn't support extra small screens":!i.small&&a<768?"Game doesn't support small screens":!i.medium&&a<992?"Game doesn't support medium screens":!i.large&&a<1200?"Game doesn't support large screens":!i.xlarge&&a>=1200?"Game doesn't support extra large screens":null}},{key:"info",get:function(){return"Browser Feature Detection\n\t\t\t\tCanvas support ".concat(t.canvas?"✓":"×","\n\t\t\t\tWebGL support ").concat(t.webgl?"✓":"×","\n\t\t\t\tWebAudio support ").concat(t.webAudio?"✓":"×")}}]),t}(),Ff=Y,Gf=Ot,Uf=af,Hf=wt,zf=Ff("".charAt),qf=Ff("".charCodeAt),Wf=Ff("".slice),Xf=function(t){return function(e,n){var r,o,i=Uf(Hf(e)),s=Gf(n),a=i.length;return s<0||s>=a?t?"":void 0:(r=qf(i,s))<55296||r>56319||s+1===a||(o=qf(i,s+1))<56320||o>57343?t?zf(i,s):r:t?Wf(i,s,s+2):o-56320+(r-55296<<10)+65536}},Yf={codeAt:Xf(!1),charAt:Xf(!0)}.charAt,Jf=af,$f=Uo,Qf=ya,Zf=ga,tp="String Iterator",ep=$f.set,np=$f.getterFor(tp);Qf(String,"String",(function(t){ep(this,{type:tp,string:Jf(t),index:0})}),(function(){var t,e=np(this),n=e.string,r=e.index;return r>=n.length?Zf(void 0,!0):(t=Yf(n,r),e.index+=t.length,Zf(t,!1))}));var rp=fn.filter;fs({target:"Array",proto:!0,forced:!bu("filter")},{filter:function(t){return rp(this,t,arguments.length>1?arguments[1]:void 0)}});var op=fs,ip=fn.find,sp=Po,ap="find",up=!0;function lp(t,e){return t(e={exports:{}},e.exports),e.exports}ap in[]&&Array(1)[ap]((function(){up=!1})),op({target:"Array",proto:!0,forced:up},{find:function(t){return ip(this,t,arguments.length>1?arguments[1]:void 0)}}),sp(ap);var cp=lp((function(t){function e(t){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function n(r){return"function"==typeof Symbol&&"symbol"===e(Symbol.iterator)?t.exports=n=function(t){return e(t)}:t.exports=n=function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":e(t)},n(r)}t.exports=n})),dp=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")};function hp(t,e){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:0;this._listeners[t]||(this._listeners[t]=[]),e._priority=parseInt(n)||0,-1===this._listeners[t].indexOf(e)&&(this._listeners[t].push(e),this._listeners[t].length>1&&this._listeners[t].sort(this.listenerSorter))}},{key:"listenerSorter",value:function(t,e){return t._priority-e._priority}},{key:"off",value:function(t,e){if(void 0!==this._listeners[t])if(void 0!==e){var n=this._listeners[t].indexOf(e);-11&&void 0!==arguments[1]?arguments[1]:{};if("string"==typeof t&&(t={type:t,data:"object"===cp(e)&&null!==e?e:{}}),void 0!==this._listeners[t.type])for(var n=this._listeners[t.type].length-1;n>=0;n--)this._listeners[t.type][n](t)}},{key:"destroy",value:function(){this._listeners={}}}]),t}(),vp=lp((function(t){var e=function(t){var e,n=Object.prototype,r=n.hasOwnProperty,o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",s=o.asyncIterator||"@@asyncIterator",a=o.toStringTag||"@@toStringTag";function u(t,e,n,r){var o=e&&e.prototype instanceof v?e:v,i=Object.create(o.prototype),s=new L(r||[]);return i._invoke=function(t,e,n){var r=c;return function(o,i){if(r===h)throw new Error("Generator is already running");if(r===f){if("throw"===o)throw i;return O()}for(n.method=o,n.arg=i;;){var s=n.delegate;if(s){var a=B(s,n);if(a){if(a===p)continue;return a}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(r===c)throw r=f,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r=h;var u=l(t,e,n);if("normal"===u.type){if(r=n.done?f:d,u.arg===p)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(r=f,n.method="throw",n.arg=u.arg)}}}(t,n,s),i}function l(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}t.wrap=u;var c="suspendedStart",d="suspendedYield",h="executing",f="completed",p={};function v(){}function y(){}function g(){}var m={};m[i]=function(){return this};var b=Object.getPrototypeOf,S=b&&b(b(_([])));S&&S!==n&&r.call(S,i)&&(m=S);var w=g.prototype=v.prototype=Object.create(m);function k(t){["next","throw","return"].forEach((function(e){t[e]=function(t){return this._invoke(e,t)}}))}function E(t){function e(n,o,i,s){var a=l(t[n],t,o);if("throw"!==a.type){var u=a.arg,c=u.value;return c&&"object"==typeof c&&r.call(c,"__await")?Promise.resolve(c.__await).then((function(t){e("next",t,i,s)}),(function(t){e("throw",t,i,s)})):Promise.resolve(c).then((function(t){u.value=t,i(u)}),(function(t){return e("throw",t,i,s)}))}s(a.arg)}var n;this._invoke=function(t,r){function o(){return new Promise((function(n,o){e(t,r,n,o)}))}return n=n?n.then(o,o):o()}}function B(t,n){var r=t.iterator[n.method];if(r===e){if(n.delegate=null,"throw"===n.method){if(t.iterator.return&&(n.method="return",n.arg=e,B(t,n),"throw"===n.method))return p;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return p}var o=l(r,t.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,p;var i=o.arg;return i?i.done?(n[t.resultName]=i.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,p):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,p)}function x(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function P(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function L(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(x,this),this.reset(!0)}function _(t){if(t){var n=t[i];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,s=function n(){for(;++o=0;--i){var s=this.tryEntries[i],a=s.completion;if("root"===s.tryLoc)return o("end");if(s.tryLoc<=this.prev){var u=r.call(s,"catchLoc"),l=r.call(s,"finallyLoc");if(u&&l){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),P(n),p}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var o=r.arg;P(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:_(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),p}},t}(t.exports);try{regeneratorRuntime=e}catch(t){Function("r","regeneratorRuntime = r")(e)}})),yp=function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t},gp=function(t,e){return!e||"object"!==cp(e)&&"function"!=typeof e?yp(t):e},mp=lp((function(t){function e(n){return t.exports=e=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},e(n)}t.exports=e})),bp=lp((function(t){function e(n,r,o){return"undefined"!=typeof Reflect&&Reflect.get?t.exports=e=Reflect.get:t.exports=e=function(t,e,n){var r=function(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==(t=mp(t)););return t}(t,e);if(r){var o=Object.getOwnPropertyDescriptor(r,e);return o.get?o.get.call(n):o.value}},e(n,r,o||n)}t.exports=e})),Sp=lp((function(t){function e(n,r){return t.exports=e=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},e(n,r)}t.exports=e})),wp=function(t){function e(){var t,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:100*Math.random()|0;return dp(this,e),(t=gp(this,mp(e).call(this))).id="BELLHOP:".concat(n),t.connected=!1,t.isChild=!0,t.connecting=!1,t.debug=!1,t.origin="*",t._sendLater=[],t.iframe=null,t.receive=t.receive.bind(yp(t)),t}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&Sp(t,e)}(e,pp),fp(e,[{key:"receive",value:function(t){if(this.target===t.source)if(this.logDebugMessage(!0,t),"connected"===t.data)this.onConnectionReceived(t.data);else{var e=t.data;if("string"==typeof e)try{e=JSON.parse(e)}catch(t){console.warn("Bellhop error: ",t)}this.connected&&"object"===cp(e)&&e.type&&this.trigger(e)}}},{key:"onConnectionReceived",value:function(t){if(this.connecting=!1,this.connected=!0,!this.isChild){if(!this.target)return;this.target.postMessage(t,this.origin)}for(var e=0;e1&&void 0!==arguments[1]?arguments[1]:"*";this.connecting||(this.disconnect(),this.connecting=!0,t instanceof HTMLIFrameElement&&(this.iframe=t),this.isChild=void 0===t,this.supported=!0,this.isChild&&(this.supported=window!=t),this.origin=e,window.addEventListener("message",this.receive),this.isChild&&(window===this.target?this.trigger("failed"):this.target.postMessage("connected",this.origin)))}},{key:"disconnect",value:function(){this.connected=!1,this.connecting=!1,this.origin=null,this.iframe=null,this.isChild=!0,this._sendLater.length=0,window.removeEventListener("message",this.receive)}},{key:"send",value:function(t){if("string"!=typeof t)throw"The event type must be a string";var e={type:t,data:arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}};this.logDebugMessage(!1,e),this.connecting?this._sendLater.push(e):this.target.postMessage(JSON.stringify(e),this.origin)}},{key:"fetch",value:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(!this.connecting&&!this.connected)throw"No connection, please call connect() first";this.on(t,(function t(r){o&&n.off(r.type,t),e(r)})),this.send(t,r)}},{key:"respond",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=this;this.on(t,(function t(o){return vp.async((function(i){for(;;)switch(i.prev=i.next){case 0:if(n&&r.off(o,t),"function"!=typeof e){i.next=10;break}return i.t0=r,i.t1=o.type,i.next=6,vp.awrap(e());case 6:i.t2=i.sent,i.t0.send.call(i.t0,i.t1,i.t2),i.next=11;break;case 10:r.send(o.type,e);case 11:case"end":return i.stop()}}))}))}},{key:"logDebugMessage",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=arguments.length>1?arguments[1]:void 0;this.debug&&"function"==typeof this.debug?this.debug({isChild:this.isChild,received:t,message:e}):this.debug&&console.log("Bellhop Instance (".concat(this.isChild?"Child":"Parent",") ").concat(t?"Receieved":"Sent"),e)}},{key:"destroy",value:function(){bp(mp(e.prototype),"destroy",this).call(this),this.disconnect(),this._sendLater.length=0}},{key:"target",get:function(){return this.isChild?window.parent:this.iframe.contentWindow}}]),e}(),kp=function(){function t(e){var n=e.plugins,r=void 0===n?[]:n;Wa(this,t),this.client=new wp,this.client.hidden=this.client.receive.bind(this.client),this.client.hiddenSend=this.client.send.bind(this.client),this.client.receive=function(t){this.hidden(t)}.bind(this.client),this.client.send=function(t,e){this.hiddenSend(t,e)}.bind(this.client),this.plugins=r}return Ya(t,[{key:"setupPlugins",value:function(){for(var t=this,e=[],n=function(n){if(!t.plugins[n].preload)return"continue";e.push(t.plugins[n].preload(t).catch(function(t){this.plugins[n].preloadFailed=!0,console.warn(this.plugins[n].name,"Preload Failed:",t)}.bind(t)))},r=0,o=this.plugins.length;r1&&void 0!==arguments[1]?arguments[1]:{},i=o.plugins,s=o.context,a=void 0===s?{}:s;if(Wa(this,r),(e=n.call(this,{plugins:i})).iframe=t instanceof HTMLIFrameElement?t:document.querySelector(t),null===e.iframe)throw new Error("No iframe was found with the provided selector");return e.loaded=!1,e.loading=!1,e.release=null,e._context=a,e.onLoading=e.onLoading.bind(Za(e)),e.onLoadDone=e.onLoadDone.bind(Za(e)),e.onLoadDone=e.onLoadDone.bind(Za(e)),e.onEndGame=e.onEndGame.bind(Za(e)),e.onLocalError=e.onLocalError.bind(Za(e)),e.initClient(),e.setupPlugins(),e}return Ya(r,[{key:"onLoading",value:function(){this.client.trigger("opening")}},{key:"onLoadDone",value:function(){this.loading=!1,this.loaded=!0,this.iframe.classList.remove("loading"),this.client.trigger("opened")}},{key:"onEndGame",value:function(){this.reset()}},{key:"onLocalError",value:function(t){console.error("SpringRoll Container error: ",t,(new Error).stack)}},{key:"reset",value:function(){(this.loaded||this.loading)&&this.client.trigger("closed"),this.loaded=!1,this.loading=!1,this.iframe.setAttribute("src",""),this.iframe.classList.remove("loading")}},{key:"initClient",value:function(){this.client.on("loading",this.onLoading),this.client.on("loaded",this.onLoadDone),this.client.on("loadDone",this.onLoadDone),this.client.on("endGame",this.onEndGame),this.client.on("localError",this.onLocalError),this.client.connect(this.iframe)}},{key:"_onCloseFailed",value:function(){this.reset()}},{key:"_internalOpen",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.singlePlay,r=void 0!==n&&n,o=e.playOptions,i=void 0===o?null:o,s={singlePlay:r,playOptions:i};this.reset(),this.loading=!0,this.initClient();var a=Kf.basic();a&&(console.error("ERROR:",a),this.client.trigger("unsupported"));var u=t;if(null!==s.playOptions){var l="playOptions="+encodeURIComponent(JSON.stringify(s.playOptions));u=-1===t.indexOf("?")?"".concat(t,"?").concat(l):"".concat(t,"&").concat(l)}this.iframe.classList.add("loading"),this.iframe.setAttribute("src",u),this.client.respond("singlePlay",r),this.client.respond("playOptions",i),this.client.trigger("open")}},{key:"openPath",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};"object"!==Ha(e)&&(console.warn("SpringRoll Container.openPath was passed a invalid options parameter. Using default parameters instead"),e={}),this._internalOpen(t,Object.assign({singlePlay:!1,playOptions:{}},e))}},{key:"openRemote",value:(e=qa(Ua().mark((function t(e){var n,r,o,i,s,a,u,l,c,d,h,f=arguments;return Ua().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=(n=f.length>1&&void 0!==f[1]?f[1]:{}).query,o=void 0===r?"":r,i=n.singlePlay,s=void 0!==i&&i,a=n.playOptions,u=void 0===a?null:a,this.release=null,t.next=4,fetch(e,{headers:{"Content-Type":"application/json"}});case 4:return l=t.sent,t.next=7,l.json();case 7:if((c=t.sent).success){t.next=10;break}throw new Error(c.error);case 10:if(d=c.data,!(h=Kf.test(d.capabilities))){t.next=15;break}throw this.client.trigger("unsupported",{error:h}),new Error(h);case 15:this.release=d,this._internalOpen(d.url+o,{singlePlay:s,playOptions:u});case 17:case"end":return t.stop()}}),t,this)}))),function(t){return e.apply(this,arguments)})},{key:"destroy",value:function(){this.reset(),this.iframe=null,this.options=null,this.release=null}},{key:"close",value:function(){this.loading||this.loaded?(this.client.trigger("close"),this.client.send("close")):this.reset()}},{key:"context",get:function(){return this._context},set:function(t){"object"===Ha(t)?this._context=t:console.error("[SpringRollContainer] Context: new context provided is not an object")}}],[{key:"version",get:function(){return"2.5.0"}}]),r}(kp),Bp=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){};Wa(this,t),this._onFocus=e,this._onBlur=n,this.onFocus=function(t){this.enabled&&this._onFocus(t)}.bind(this),this.onBlur=function(t){this.enabled&&this._onBlur(t)}.bind(this),this._enabled=!1,this.enabled=!0,this.onToggle=this.onToggle.bind(this)}return Ya(t,[{key:"destroy",value:function(){this.enabled=!1,this.onToggle=null,this.onFocus=null,this.onBlur=null}},{key:"onToggle",value:function(t){this.enabled&&(document.hidden?this.onBlur(t):this.onFocus(t))}},{key:"enabled",get:function(){return this._enabled},set:function(t){this._enabled=t,document.removeEventListener("visibilitychange",this.onToggle,!1),window.removeEventListener("blur",this.onBlur,!1),window.removeEventListener("focus",this.onFocus,!1),window.removeEventListener("pagehide",this.onBlur,!1),window.removeEventListener("pageshow",this.onFocus,!1),window.removeEventListener("visibilitychange",this.onToggle,!1),this._enabled&&(document.addEventListener("visibilitychange",this.onToggle,!1),window.addEventListener("blur",this.onBlur,!1),window.addEventListener("focus",this.onFocus,!1),window.addEventListener("pagehide",this.onBlur,!1),window.addEventListener("pageshow",this.onFocus,!1),window.addEventListener("visibilitychange",this.onToggle,!1))}}]),t}(),xp=Mr.includes,Pp=Po;fs({target:"Array",proto:!0,forced:U((function(){return!Array(1).includes()}))},{includes:function(t){return xp(this,t,arguments.length>1?arguments[1]:void 0)}}),Pp("includes");var Lp="\t\n\v\f\r                 \u2028\u2029\ufeff",_p=wt,Op=af,Ap=Lp,Vp=Y("".replace),Cp=RegExp("^["+Ap+"]+"),Dp=RegExp("(^|[^"+Ap+"])["+Ap+"]+$"),Mp=function(t){return function(e){var n=Op(_p(e));return 1&t&&(n=Vp(n,Cp,"")),2&t&&(n=Vp(n,Dp,"$1")),n}},Tp={start:Mp(1),end:Mp(2),trim:Mp(3)},Ip=ci.PROPER,Rp=U,jp=Lp,Np=Tp.trim;fs({target:"String",proto:!0,forced:function(t){return Rp((function(){return!!jp[t]()||"​…᠎"!=="​…᠎"[t]()||Ip&&jp[t].name!==t}))}("trim")},{trim:function(){return Np(this)}});var Kp=On,Fp=Yt,Gp=An,Up=lf,Hp=RegExp.prototype,zp=ci.PROPER,qp=Di,Wp=Pn,Xp=af,Yp=U,Jp=function(t){var e=t.flags;return void 0!==e||"flags"in Hp||Fp(t,"flags")||!Gp(Hp,t)?e:Kp(Up,t)},$p="toString",Qp=RegExp.prototype[$p],Zp=Yp((function(){return"/a/b"!=Qp.call({source:"a",flags:"b"})})),tv=zp&&Qp.name!=$p;(Zp||tv)&&qp(RegExp.prototype,$p,(function(){var t=Wp(this);return"/"+Xp(t.source)+"/"+Xp(Jp(t))}),{unsafe:!0});var ev=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";Wa(this,t),this.db=null,this.dbName=e}return Ya(t,[{key:"IDBOpen",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=arguments.length>4?arguments[4]:void 0,s=n?indexedDB.open(t,n):indexedDB.open(t);s.onsuccess=function(t){e.db=t.target.result,e.db.version==n|null==n&&i({result:"Success: IDBOpen",success:!0})},s.onerror=function(){i({result:s.error.toString(),success:!1})},s.onupgradeneeded=function(t){e.db=t.target.result,null!=r&&(r.stores&&r.stores.forEach((function(t){e.db.createObjectStore(t.storeName,t.options)})),null!=r.indexes&&r.indexes.forEach((function(t){s.transaction.objectStore(t.storeName).createIndex(t.indexName,t.keyPath,t.options)}))),null!=o&&(null!=o.indexes&&o.indexes.forEach((function(t){s.transaction.objectStore(t.storeName).deleteIndex(t.indexName)})),o.stores&&o.stores.forEach((function(t){e.db.deleteObjectStore(t.storeName)}))),i({result:"Success: IDBOpen onupgradeneeded ran",success:!0})}}},{key:"IDBDeleteDB",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=null!=e?indexedDB.deleteDatabase(t,e):indexedDB.deleteDatabase(t);r.onsuccess=function(t){n({result:"Success: Database Deleted, returned: "+t.result,success:!0})},r.onerror=function(){n({result:r.error.toString(),success:!1})}}},{key:"IDBAdd",value:function(t,e,n,r){this.db||""==this.dbName||this.IDBOpen(this.dbName);var o=this.db.transaction(t,"readwrite");o.onerror=function(){return r({result:null!=o.error?o.error.toString():"Aborted: No error given, was the record already added?",success:!1})},o.onabort=function(){return r({result:null!=o.error?o.error.toString():"Aborted: No error given, was the record already added?",success:!1})},o.oncomplete=function(){return r({result:"Success: Record Added",success:!0})},o.objectStore(t).add(e,n)}},{key:"IDBUpdate",value:function(t,e,n,r){this.db||""==this.dbName||this.IDBOpen(this.dbName);var o=this.db.transaction(t,"readwrite").objectStore(t).put(n,e);o.onsuccess=function(){r({result:"Success: Record Updated",success:!0})},o.onerror=function(){return r({result:o.error.toString(),success:!1})}}},{key:"IDBRemove",value:function(t,e,n){var r=this;this.db||""==this.dbName||this.IDBOpen(this.dbName);var o=this.db.transaction(t,"readwrite");o.onerror=function(){return n({result:r.db.error.toString(),success:!1})},o.objectStore(t).delete(e),o.oncomplete=function(){return n({result:"Removed Successfully",success:!0})}}},{key:"IDBRead",value:function(t,e,n){var r=this,o=this.db.transaction(t,"readonly"),i=o.objectStore(t);o.onerror=function(){return n({result:r.db.error.toString(),success:!1})};var s=i.get(e);s.onsuccess=function(){n({result:s.result,success:null!=s.result})}}},{key:"IDBGetIndexKeys",value:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},s=this.db.transaction(t,"readonly"),a=s.objectStore(t);s.onerror=function(){return i({result:n.db.error.toString(),success:!1})},(r&&o?a.index(e,r,o):r?a.index(e,r):a.index(e)).getAllKeys().onsuccess=function(t){i({result:t.result,success:!0})}}},{key:"IDBReadAll",value:function(t,e,n){var r=this.db.transaction(t,"readonly"),o=r.objectStore(t),i=null!=e?o.getAll(null,e):o.getAll();r.onerror=function(){return n({result:r.error.toString(),success:!1})},i.onsuccess=function(){n({result:i.result,success:null!=i.result})}}},{key:"IDBGetVersion",value:function(t,e){var n=window.indexedDB.open(t);n.onerror=function(){e({result:n.error.toString(),success:!1})},n.onsuccess=function(){var t=n.result;e({result:t.version,success:!0})}}},{key:"IDBClose",value:function(t){this.db&&(this.db.close(),t({result:"Success: Closed Database Connection",success:!0}))}}],[{key:"remove",value:function(t){localStorage.removeItem(t),sessionStorage.removeItem(t)}},{key:"write",value:function(t,e){return arguments.length>2&&void 0!==arguments[2]&&arguments[2]?sessionStorage.setItem(t,JSON.stringify("function"==typeof e?e():e)):localStorage.setItem(t,JSON.stringify("function"==typeof e?e():e))}},{key:"read",value:function(t){var e=localStorage.getItem(t)||sessionStorage.getItem(t);if("string"!=typeof e)return e;try{return JSON.parse(e)}catch(t){return e}}}]),t}(),nv=function(){function t(e){Wa(this,t),this.name=e,this.client=null}var e;return Ya(t,[{key:"preload",value:(e=qa(Ua().mark((function t(e){var n;return Ua().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:n=e.client,this.client=n;case 2:case"end":return t.stop()}}),t,this)}))),function(t){return e.apply(this,arguments)})},{key:"start",value:function(){this.client.on("loaded",this.sendAllProperties),this.client.on("loadDone",this.sendAllProperties)}},{key:"init",value:function(t){}},{key:"sendProperty",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];ev.write(t,e),n||this.client.send(t,e)}},{key:"sendAllProperties",value:function(t){}},{key:"warn",value:function(t){console.warn("[SpringRollContainer] ".concat(this.name,": ").concat(t))}}]),t}(),rv=function(t){Ja(n,t);var e=eu(n);function n(t){var r;return Wa(this,n),(r=e.call(this,t)).sendMutes=!1,r}return Ya(n,[{key:"init",value:function(t){this.sendMutes=!0}},{key:"_disableButton",value:function(t){t instanceof HTMLButtonElement&&(t.classList.remove("enabled"),t.classList.add("disabled"))}},{key:"reset",value:function(){this.sendMutes=!1}},{key:"_setMuteProp",value:function(t,e,n){var r=this,o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];console.log("_setmuteprop",t,n,o),Array.isArray(e)?e.forEach((function(t){return r.changeMutedState(t,n)})):this.changeMutedState(e,n),this.sendProperty(t,n,o)}},{key:"changeMutedState",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=t.button?t.button:t;n instanceof HTMLElement&&(n.classList.remove("unmuted"),n.classList.remove("muted"),n.classList.add(e?"muted":"unmuted"))}}]),n}(nv),ov=T,iv=Z,sv=we("match"),av=function(t){var e;return ov(t)&&(void 0!==(e=t[sv])?!!e:"RegExp"==iv(t))},uv=TypeError,lv=we("match"),cv=fs,dv=function(t){if(av(t))throw uv("The method doesn't accept regular expressions");return t},hv=wt,fv=af,pv=function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[lv]=!1,"/./"[t](e)}catch(t){}}return!1},vv=Y("".indexOf);cv({target:"String",proto:!0,forced:!pv("includes")},{includes:function(t){return!!~vv(fv(hv(this)),fv(dv(t)),arguments.length>1?arguments[1]:void 0)}});var yv={exports:{}},gv={},mv=Or,bv=Dt,Sv=vu,wv=Array,kv=Math.max,Ev=Z,Bv=Br,xv=Mi.f,Pv=function(t,e,n){for(var r=bv(t),o=mv(e,r),i=mv(void 0===n?r:n,r),s=wv(kv(i-o,0)),a=0;o1?arguments[1]:void 0);e=e?e.next:n.first;)for(r(e.value,e.key,this);e&&e.removed;)e=e.previous},has:function(t){return!!u(this,t)}}),Sy(i,n?{get:function(t){var e=u(this,t);return e&&e.value},set:function(t,e){return a(this,0===t?0:t,e)}}:{add:function(t){return a(this,t=0===t?0:t,t)}}),_y&&by(i,"size",{configurable:!0,get:function(){return s(this).size}}),o},setStrong:function(t,e,n){var r=e+" Iterator",o=Vy(e),i=Vy(r);xy(t,e,(function(t,e){Ay(this,{type:r,target:t,state:o(t),kind:e,last:void 0})}),(function(){for(var t=i(this),e=t.kind,n=t.last;n&&n.removed;)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?Py("keys"==e?n.key:"values"==e?n.value:[n.key,n.value],!1):(t.target=void 0,Py(void 0,!0))}),n?"entries":"values",!n,!0),Ly(e)}};(function(t,e,n){var r=-1!==t.indexOf("Map"),o=-1!==t.indexOf("Weak"),i=r?"set":"add",s=ry[t],a=s&&s.prototype,u=s,l={},c=function(t){var e=oy(a[t]);sy(a,t,"add"==t?function(t){return e(this,0===t?0:t),this}:"delete"==t?function(t){return!(o&&!hy(t))&&e(this,0===t?0:t)}:"get"==t?function(t){return o&&!hy(t)?void 0:e(this,0===t?0:t)}:"has"==t?function(t){return!(o&&!hy(t))&&e(this,0===t?0:t)}:function(t,n){return e(this,0===t?0:t,n),this})};if(iy(t,!cy(s)||!(o||a.forEach&&!fy((function(){(new s).entries().next()})))))u=n.getConstructor(e,t,r,i),ay.enable();else if(iy(t,!0)){var d=new u,h=d[i](o?{}:-0,1)!=d,f=fy((function(){d.has(1)})),p=py((function(t){new s(t)})),v=!o&&fy((function(){for(var t=new s,e=5;e--;)t[i](e,e);return!t.has(-0)}));p||((u=e((function(t,e){ly(t,a);var n=yy(new s,t,u);return dy(e)||uy(e,n[i],{that:n,AS_ENTRIES:r}),n}))).prototype=a,a.constructor=u),(f||v)&&(c("delete"),c("has"),r&&c("get")),(v||h)&&c(i),o&&a.clear&&delete a.clear}l[t]=u,ny({global:!0,constructor:!0,forced:u!=s},l),vy(u,t),o||n.setStrong(u,t,r)})("Set",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),Cy);var Dy=Bt,My=zr;fs({target:"Object",stat:!0,forced:U((function(){My(1)}))},{keys:function(t){return My(Dy(t))}});var Ty=fn.map;fs({target:"Array",proto:!0,forced:!bu("map")},{map:function(t){return Ty(this,t,arguments.length>1?arguments[1]:void 0)}});var Iy=mn,Ry=Y,jy=zr,Ny=Br,Ky=Ry(zo.f),Fy=Ry([].push),Gy=function(t){return function(e){for(var n,r=Ny(e),o=jy(r),i=o.length,s=0,a=[];i>s;)n=o[s++],Iy&&!Ky(r,n)||Fy(a,t?[n,r[n]]:r[n]);return a}},Uy={entries:Gy(!0),values:Gy(!1)}.values;fs({target:"Object",stat:!0},{values:function(t){return Uy(t)}});var Hy=function(t){Ja(n,t);var e=eu(n);function n(t){var r,o=t.selector,i=t.controlName,s=t.featureName,a=void 0===s?"captionStyles":s,u=t.defaultValue,l=t.pluginName;return Wa(this,n),(r=e.call(this,l)).controlName=i,r.featureName=a,r.radioElements=document.querySelectorAll(o),r.defaultValue=u,r.radioGroup={},r.radioElements.length<=0?(r.warn("".concat(r.controlName," RadioGroup found no HTMLElements with selector: ").concat(o)),tu(r)):(r.radioElements.forEach((function(t){"radio"===t.type?(t.value=t.value.toLowerCase(),r.radioGroup[t.value]=t):r.warn("".concat(r.controlName," was provided a non Radio Button element with selector: ").concat(o))})),r.radioGroup[r.defaultValue]||(r.warn("".concat(r.controlName," RadioGroup for selector: ").concat(o," does not have a radio button with value ").concat(r.defaultValue," to use as default value. Using first element as default")),r.defaultValue=r.radioElements[0].value.toLowerCase()),r.radioGroup[r.defaultValue].checked=!0,r)}return Ya(n,[{key:"hasOnly",value:function(t){for(var e in this.radioGroup)if(!t.includes(this.radioGroup[e].value))return this.warn("".concat(this.controlName," radio button value: ").concat(this.radioGroup[e].value," is not an accepted value. Skipping radio group")),!1;return!0}},{key:"hasDuplicateValues",value:function(){return this.values.length!==nu(new Set(this.values)).length}},{key:"enableRadioEvents",value:function(t){if(!(!this.radioGroup.length<=0)){var e=t;for(var n in this.radioGroup)this.radioGroup[n].addEventListener("change",e)}}},{key:"disableRadioEvents",value:function(t){if(!(!this.radioGroup.length<=0))for(var e in this.radioGroup)this.radioGroup[e].removeEventListener("change",t)}},{key:"displayRadios",value:function(t){if(this.radioGroup.length<=0&&t[this.featureName])this.warn("".concat(this.controlName," was not provided a valid input element or selector but '").concat(this.featureName,"' was included as a game feature"));else if(!(this.radioGroup.length<=0||t[this.featureName]))for(var e in this.radioGroup)this.radioGroup[e].style.display="none"}},{key:"resetState",value:function(){this.radioGroup[this.defaultValue].checked=!0}},{key:"length",get:function(){return Object.keys(this.radioGroup).length}},{key:"values",get:function(){return Object.values(this.radioGroup).map((function(t){return t.value}))}}]),n}(nv),zy=function(t){Ja(n,t);var e=eu(n);function n(t,r,o){var i,s=o.supportedValues,a=o.initialValue,u=o.controlName,l=o.featureName,c=o.radioCount;return Wa(this,n),(i=e.call(this,r)).selectors=t?t.split(","):[],i.supportedValues=s,i.initialValue=s.includes(a)?a:s[0],i.controlName=u,i.featureName=l,i.radioCount=c,i.sendAllProperties=i.sendAllProperties.bind(Za(i)),i._currentValue=i.initialValue,i.radioGroups=i.setUpRadios(i.selectors),i.radioGroupsLength=i.radioGroups.length,i}return Ya(n,[{key:"setUpRadios",value:function(t){var e=this,n=[];return t.forEach((function(t){var r=new Hy({selector:t.trim(),controlName:e.controlName,defaultValue:e.initialValue,pluginName:e.name,featureName:e.featureName});r.length===e.radioCount?r.hasOnly(e.supportedValues)&&(r.hasDuplicateValues()?e.warn("Duplicate radio button values detected (values: ".concat(r.values," ). Skipping radio group")):n.push(r)):e.warn('Selector "'.concat(t,'" did not find exactly ').concat(e.radioCount," radio buttons for ").concat(e.controlName,". Skipping selector"))})),n}},{key:"start",value:function(){this.client.on("loaded",this.sendAllProperties),this.client.on("loadDone",this.sendAllProperties)}},{key:"sendAllProperties",value:function(){this.sendProperty(this.featureName,this.property)}},{key:"currentValue",get:function(){return this._currentValue},set:function(t){if(this.supportedValues.includes(t)){this._currentValue=t;for(var e=0,n=this.radioGroups.length;e2)if(l=lg(l),43===(e=vg(l,0))||45===e){if(88===(n=vg(l,2))||120===n)return NaN}else if(48===e){switch(vg(l,1)){case 66:case 98:r=2,o=49;break;case 79:case 111:r=8,o=55;break;default:return+l}for(s=(i=pg(l,2)).length,a=0;ao)return NaN;return parseInt(i,r)}return+l},gg=Qy(cg,!dg(" 0o1")||!dg("0b1")||dg("+0x1")),mg=function(t){var e,n=arguments.length<1?0:dg(function(t){var e=rg(t,"number");return"bigint"==typeof e?e:yg(e)}(t));return eg(hg,e=this)&&og((function(){ug(e)}))?tg(Object(n),this,mg):n};mg.prototype=hg,gg&&(hg.constructor=mg),Wy({global:!0,constructor:!0,wrap:!0,forced:gg},{Number:mg});gg&&function(t,e){for(var n,r=Xy?ig(e):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,fromString,range".split(","),o=0;r.length>o;o++)Zy(e,n=r[o])&&!Zy(t,n)&&ag(t,n,sg(e,n))}(Jy[cg],dg);var bg=function(){function t(e){var n=e.slider,r=e.control,o=e.min,i=void 0===o?0:o,s=e.max,a=void 0===s?1:s,u=e.step,l=void 0===u?.1:u,c=e.defaultValue,d=void 0===c?1:c;Wa(this,t),this.min=i,this.max=a,this.step=l,this.sliderValue=d,this.control=r,this.slider=this.setUpSlider(n,r)}return Ya(t,[{key:"setUpSlider",value:function(t,e){if("string"==typeof t&&(t=document.querySelector(t)),!t||"range"!==t.type)return null;var n=ev.read(e);return t.min=this.min,t.max=this.max,t.step=this.step,(n||0===n)&&n.toString().trim().length>0?(t.value=n,this.sliderValue=n):t.value=this.sliderValue,t}},{key:"sliderRange",value:function(t){return tthis.max?this.max:t}},{key:"enableSliderEvents",value:function(t){if(this.slider){var e=t;this.slider.addEventListener("change",e),this.slider.addEventListener("input",e)}}},{key:"disableSliderEvents",value:function(t){if(this.slider){var e=t;this.slider.removeEventListener("change",e),this.slider.removeEventListener("input",e)}}},{key:"displaySlider",value:function(t){!this.slider&&t[this.control]&&console.warn("".concat(this.control," was not provided a valid input element or selector but was included as a game feature")),this.slider&&(this.slider.style.display=t[this.control]?"":"none")}},{key:"dispatchEvent",value:function(t){this.slider.dispatchEvent(t)}},{key:"value",get:function(){return this.slider.value},set:function(t){this.slider.value=t}}]),t}(),Sg=function(){function t(e){var n=e.button,r=e.onClick,o=e.channel;Wa(this,t),this.button=n instanceof HTMLElement?n:document.querySelector(n),this.onClick=r,this.channel=o,this.button&&this.button.addEventListener("click",r)}return Ya(t,[{key:"displayButton",value:function(t){this.button instanceof HTMLElement&&(this.button.style.display=t[this.channel]||"pause"===this.channel||"hints"===this.channel?"":"none")}},{key:"enableButton",value:function(){this.button&&this.button.classList.remove("disabled")}},{key:"addClass",value:function(t){this.button.className=this.button.className?this.button.className+" ".concat(t):" ".concat(t)}}]),t}(),wg=function(t){Ja(n,t);var e=eu(n);function n(t,r,o){var i,s=o.defaultValue,a=void 0===s?"0.5":s,u=o.minValue,l=void 0===u?"0":u,c=o.maxValue,d=void 0===c?"1":c,h=o.featureName;return Wa(this,n),(i=e.call(this,r)).featureName=h,i.minValue=l,i.defaultValue=a,i.maxValue=d,i._currentValue=a,i.sliders=i.setUpSliders(t),i.slidersLength=i.sliders.length,i.sendAllProperties=i.sendAllProperties.bind(Za(i)),0>=i.slidersLength?(i.warn("Plugin was not provided any valid HTML Elements"),tu(i)):i}return Ya(n,[{key:"setUpSliders",value:function(t){var e=this,n=[];return t instanceof HTMLElement?n.push(new bg({slider:t,control:this.featureName,defaultValue:this.defaultValue,minValue:this.minValue,maxValue:this.maxValue})):document.querySelectorAll(t).forEach((function(t){n.push(new bg({slider:t,control:e.featureName,defaultValue:e.defaultValue,minValue:e.minValue,maxValue:e.maxValue}))})),n}},{key:"init",value:function(){this.client.on("features",function(t){if(t.data)for(var e=0;e3&&void 0!==arguments[3]?arguments[3]:{},a=s.defaultFontSize,u=void 0===a?"medium":a,l=s.defaultColor,c=void 0===l?"default":l,d=s.defaultAlignment,h=void 0===d?"top":d;if(Wa(this,n),(i=e.call(this,"Caption-Style-Plugin")).sendAllProperties=i.sendAllProperties.bind(Za(i)),i.captionsStyles=Object.assign({},kg,ev.read(n.captionStyleKey)||{}),i.fontSizeSelectors=t?t.split(","):[],i.colorSelectors=r?r.split(","):[],i.alignmentSelectors=o?o.split(","):[],i.defaultFontSize=xg.includes(u)?u:xg[0],i.defaultColor=Pg.includes(c)?c:Pg[0],i.defaultAlignment=Lg.includes(h)?h:Lg[0],i.fontSizeRadios=[],i.colorRadios=[],i.alignmentRadios=[],i.fontSizeRadios=i.setUpFontSizeRadios(i.fontSizeSelectors),i.colorRadios=i.setUpColorRadios(i.colorSelectors),i.alignmentRadios=i.setUpAlignmentRadios(i.alignmentSelectors),i._captionsMuted=!1,i.alignmentRadiosLength=i.alignmentRadios.length,i.fontSizeRadiosLength=i.fontSizeRadios.length,i.colorRadiosLength=i.colorRadios.length,0>=i.alignmentRadiosLength+i.fontSizeRadiosLength+i.colorRadiosLength)return i.warn("Plugin was not provided any input elements"),tu(i);for(var f=0;f0&&void 0!==arguments[0]?arguments[0]:kg,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";"object"===Ha(e)?Object.assign(this.captionsStyles,e):"string"==typeof e&&(this.captionsStyles[e]=r),this.colorRadios.forEach((function(e){var n="white"===t.captionsStyles.color?"default":"inverted";e.radioGroup[n].checked=!0})),this.alignmentRadios.forEach((function(e){e.radioGroup[t.captionsStyles.align].checked=!0})),this.fontSizeRadios.forEach((function(e){e.radioGroup[t.captionsStyles.size].checked=!0})),ev.write(n.captionStyleKey,this.captionsStyles),this.client&&this.client.send(n.captionStyleKey,this.captionsStyles)}},{key:"radios",get:function(){return this.colorRadios.concat(this.alignmentRadios).concat(this.fontSizeRadios)}}],[{key:"captionStyleKey",get:function(){return"captionsStyles"}}]),n}(rv),Og=function(t){Ja(n,t);var e=eu(n);function n(t){var r;return Wa(this,n),(r=e.call(this,"Caption-Button-Plugin")).sendAllProperties=r.sendAllProperties.bind(Za(r)),r._captionsButtons=[],t instanceof HTMLElement?r._captionsButtons[0]=new Sg({button:t,onClick:r.captionsButtonClick.bind(Za(r)),channel:"captions"}):document.querySelectorAll(t).forEach((function(t){r._captionsButtons.push(new Sg({button:t,onClick:r.captionsButtonClick.bind(Za(r)),channel:"captions"}))})),r._captionsMuted=!1,r.captionsButtonLength=r._captionsButtons.length,0>=r.captionsButtonLength?(r.warn("Plugin was not provided any valid button or input elements"),tu(r)):r}return Ya(n,[{key:"init",value:function(){this.client.on("features",function(t){for(var e=0;e1&&void 0!==arguments[1])||arguments[1];Wa(this,n),(r=e.call(this,"Pause-Button-plugin"))._manageOwnVisibility=o,r._appBlurred=!1,r._containerBlurred=!1,r._focusTimer=null,r._isManualPause=!1,r._keepFocus=!1,r._paused=!1,r.iframe=null,r.focusApp=r.focusApp.bind(Za(r)),r.manageFocus=r.manageFocus.bind(Za(r)),r.onKeepFocus=r.onKeepFocus.bind(Za(r)),r.onFocus=r.onFocus.bind(Za(r));var i=r.onPauseToggle.bind(Za(r));return r.pauseDisabled=!1,r._pauseButton=[],r.pageVisibility=new Bp(r.onContainerFocus.bind(Za(r)),r.onContainerBlur.bind(Za(r))),r.pageVisibility.enabled=r.manageOwnVisibility,t instanceof HTMLElement?r._pauseButton[0]=new Sg({button:t,onClick:i,channel:n.pauseKey}):document.querySelectorAll(t).forEach((function(t){r._pauseButton.push(new Sg({button:t,onClick:i,channel:n.pauseKey}))})),r}return Ya(n,[{key:"pause",get:function(){return this._paused},set:function(t){if(t=!!t,!this.pauseDisabled){this._paused=t,this.client.send(n.pauseKey,t),this.client.trigger(t?"paused":"resumed",{paused:t});for(var e=0,r=this._pauseButton.length;e0&&void 0!==arguments[0]?arguments[0]:{},o=e.soundButtons,i=e.musicButtons,s=e.sfxButtons,a=e.voButtons,u=e.soundSliders,l=e.musicSliders,c=e.sfxSliders,d=e.voSliders;Wa(this,r),t=n.call(this,"Sound-Button-Plugin");var h=ev.read(r.soundMutedKey);if(t.sendAllProperties=t.sendAllProperties.bind(Za(t)),t._soundMuted=h||!1,t._musicMuted=!1,t._voMuted=!1,t._sfxMuted=!1,t._musicMutedByUser=!1,t._soundMutedByUser=!1,t._sfxMutedByUser=!1,t._voMutedByUser=!1,t.soundMuteEnabled=!1,t.musicMuteEnabled=!1,t.sfxMuteEnabled=!1,t.voMuteEnabled=!1,t.soundVolume=1,t.musicVolume=1,t.sfxVolume=1,t.voVolume=1,t.soundSliders=[],t.musicSliders=[],t.sfxSliders=[],t.voSliders=[],t.soundButtons=[],t.musicButtons=[],t.sfxButtons=[],t.voButtons=[],u instanceof HTMLElement?t.soundSliders[0]=new bg({slider:u,control:r.soundVolumeKey,defaultValue:t.soundVolume}):document.querySelectorAll(u).forEach((function(e){var n=new bg({slider:e,control:r.soundVolumeKey,defaultValue:t.soundVolume});n.slider&&t.soundSliders.push(n)})),l instanceof HTMLElement?t.musicSliders[0]=new bg({slider:l,control:r.musicVolumeKey,defaultValue:t.musicVolume}):document.querySelectorAll(l).forEach((function(e){var n=new bg({slider:e,control:r.musicVolumeKey,defaultValue:t.musicVolume});n.slider&&t.musicSliders.push(n)})),c instanceof HTMLElement?t.sfxSliders[0]=new bg({slider:c,control:r.sfxVolumeKey,defaultValue:t.sfxVolume}):document.querySelectorAll(c).forEach((function(e){var n=new bg({slider:e,control:r.sfxVolumeKey,defaultValue:t.sfxVolume});n.slider&&t.sfxSliders.push(n)})),d instanceof HTMLElement?t.voSliders[0]=new bg({slider:d,control:r.voVolumeKey,defaultValue:t.voVolume}):document.querySelectorAll(d).forEach((function(e){var n=new bg({slider:e,control:r.voVolumeKey,defaultValue:t.voVolume});n.slider&&t.voSliders.push(n)})),o instanceof HTMLElement?t.soundButtons[0]=new Sg({button:o,onClick:t.onSoundToggle.bind(Za(t)),channel:r.soundKey}):document.querySelectorAll(o).forEach((function(e){t.soundButtons.push(new Sg({button:e,onClick:t.onSoundToggle.bind(Za(t)),channel:r.soundKey}))})),i instanceof HTMLElement?t.musicButtons[0]=new Sg({button:i,onClick:t.onMusicToggle.bind(Za(t)),channel:"music"}):document.querySelectorAll(i).forEach((function(e){t.musicButtons.push(new Sg({button:e,onClick:t.onMusicToggle.bind(Za(t)),channel:"music"}))})),s instanceof HTMLElement?t.sfxButtons[0]=new Sg({button:s,onClick:t.onSFXToggle.bind(Za(t)),channel:"sfx"}):document.querySelectorAll(s).forEach((function(e){t.sfxButtons.push(new Sg({button:e,onClick:t.onSFXToggle.bind(Za(t)),channel:"sfx"}))})),a instanceof HTMLElement?t.voButtons[0]=new Sg({button:a,onClick:t.onVOToggle.bind(Za(t)),channel:"vo"}):document.querySelectorAll(a).forEach((function(e){t.voButtons.push(new Sg({button:e,onClick:t.onVOToggle.bind(Za(t)),channel:"vo"}))})),t.soundSlidersLength=t.soundSliders.length,t.musicSlidersLength=t.musicSliders.length,t.sfxSlidersLength=t.sfxSliders.length,t.voSlidersLength=t.voSliders.length,t.soundButtonsLength=t.soundButtons.length,t.musicButtonsLength=t.musicButtons.length,t.sfxButtonsLength=t.sfxButtons.length,t.voButtonsLength=t.voButtons.length,0>=t.soundSlidersLength+t.musicSlidersLength+t.sfxSlidersLength+t.voSlidersLength+t.soundButtonsLength+t.musicButtonsLength+t.sfxButtonsLength+t.voButtonsLength)return t.warn("Plugin was not provided any valid HTML Elements"),tu(t);for(var f=0;f3&&void 0!==arguments[3]&&arguments[3];this["_"+t]=e,this._setMuteProp(t,n,e,r)}},{key:"preload",value:(e=qa(Ua().mark((function t(e){var n;return Ua().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:n=e.client,this.client=n,console.log("sound plugin preload"),this.client.on("features",function(t){if(console.log("features!",t),t.data){this.soundMuteEnabled=!!t.data.sound,this.musicMuteEnabled=!!t.data.music,this.sfxMuteEnabled=!!t.data.sfx,this.voMuteEnabled=!!t.data.vo,this.soundVolumeEnabled=!!t.data.soundVolume,this.musicVolumeEnabled=!!t.data.musicVolume,this.sfxVolumeEnabled=!!t.data.sfxVolume,this.voVolumeEnabled=!!t.data.voVolume;for(var e=0;e0&&this.sendProperty(r.soundVolumeKey,this.soundVolume),this.musicVolumeEnabled&&this.musicSlidersLength>0&&this.sendProperty(r.musicVolumeKey,this.musicVolume),this.voVolumeEnabled&&this.voSlidersLength>0&&this.sendProperty(r.voVolumeKey,this.voVolume),this.sfxVolumeEnabled&&this.sfxSlidersLength>0&&this.sendProperty(r.sfxVolumeKey,this.sfxVolume),this.soundButtonsLength>0&&this.soundMuteEnabled&&(this.soundMuted||!this.soundVolumeEnabled)&&this.sendProperty(r.soundMutedKey,this.soundMuted),this.musicButtonsLength>0&&this.musicMuteEnabled&&(this.musicMuted||!this.musicVolumeEnabled)&&this.sendProperty(r.musicMutedKey,this.musicMuted),this.voButtonsLength>0&&this.voMuteEnabled&&(this.voMuted||!this.voVolumeEnabled)&&this.sendProperty(r.voMutedKey,this.voMuted),this.sfxButtonsLength>0&&this.sfxMuteEnabled&&(this.sfxMuted||!this.sfxVolumeEnabled)&&this.sendProperty(r.sfxMutedKey,this.sfxMuted)}},{key:"soundMuted",get:function(){return this._soundMuted},set:function(t){if(t!==this.soundMuted){var e=!1;this.soundVolumeEnabled&&!t&&(this.sendProperty(r.soundVolumeKey,this.soundVolume),e=!0),this.setMuteProp("soundMuted",t,this.soundButtons,e)}else this.setMuteProp("soundMuted",t,this.soundButtons,!0)}},{key:"voMuted",get:function(){return this._voMuted},set:function(t){var e=!1;this.voMuted!==t?(this.voVolumeEnabled&&!t&&(this.sendProperty(r.voVolumeKey,this.voVolume),e=!0),this.setMuteProp("voMuted",t,this.voButtons,e)):this.setMuteProp("voMuted",t,this.voButtons,!0)}},{key:"musicMuted",get:function(){return this._musicMuted},set:function(t){if(this.musicMuted!==t){var e=!1;this.musicVolumeEnabled&&!t&&(this.sendProperty(r.musicVolumeKey,this.musicVolume),e=!0),this.setMuteProp("musicMuted",t,this.musicButtons,e)}else this.setMuteProp("musicMuted",t,this.musicButtons,!0)}},{key:"sfxMuted",get:function(){return this._sfxMuted},set:function(t){if(this.sfxMuted!==t){var e=!1;this.sfxVolumeEnabled&&!t&&(this.sendProperty(r.sfxVolumeKey,this.sfxVolume),e=!0),this.setMuteProp("sfxMuted",t,this.sfxButtons,e)}else this.setMuteProp("sfxMuted",t,this.sfxButtons,!0)}},{key:"soundButton",get:function(){return this._soundButton.button}},{key:"musicButton",get:function(){return this._musicButton.button}},{key:"sfxButton",get:function(){return this._sfxButton.button}},{key:"voButton",get:function(){return this._voButton.button}}],[{key:"soundMutedKey",get:function(){return"soundMuted"}},{key:"voMutedKey",get:function(){return"voMuted"}},{key:"musicMutedKey",get:function(){return"musicMuted"}},{key:"sfxMutedKey",get:function(){return"sfxMuted"}},{key:"soundVolumeKey",get:function(){return"soundVolume"}},{key:"sfxVolumeKey",get:function(){return"sfxVolume"}},{key:"voVolumeKey",get:function(){return"voVolume"}},{key:"musicVolumeKey",get:function(){return"musicVolume"}},{key:"soundKey",get:function(){return"sound"}}]),r}(rv),Dg=function(){function t(){Wa(this,t),this.dbName,this.savedData}return Ya(t,[{key:"IDBOpen",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null;this.savedData=new ev,this.savedData.IDBOpen(t,e,n,r,o)}},{key:"IDBAdd",value:function(t,e,n,r){this.savedData.IDBAdd(t,e,n,r)}},{key:"IDBUpdate",value:function(t,e,n,r){this.savedData.IDBUpdate(t,e,n,r)}},{key:"IDBRemove",value:function(t,e,n){this.savedData.IDBRemove(t,e,n)}},{key:"IDBRead",value:function(t,e,n){this.savedData.IDBRead(t,e,n)}},{key:"IDBReadAll",value:function(t,e,n){this.savedData.IDBReadAll(t,e,n)}},{key:"IDBGetVersion",value:function(t,e){new ev(t).IDBGetVersion(t,e)}},{key:"IDBClose",value:function(t){this.savedData.IDBClose(t)}},{key:"IDBDeleteDB",value:function(t,e,n){new ev(t).IDBDeleteDB(t,e,n)}}],[{key:"remove",value:function(t,e){ev.remove(t),e()}},{key:"write",value:function(t,e,n){ev.write(t,e),n()}},{key:"read",value:function(t,e){e(ev.read(t))}}]),t}(),Mg=function(t){Ja(n,t);var e=eu(n);function n(){var t;return Wa(this,n),(t=e.call(this,"UserData-Plugin")).onUserDataRemove=t.onUserDataRemove.bind(Za(t)),t.onUserDataRead=t.onUserDataRead.bind(Za(t)),t.onUserDataWrite=t.onUserDataWrite.bind(Za(t)),t.onIDBAdd=t.onIDBAdd.bind(Za(t)),t.onIDBOpen=t.onIDBOpen.bind(Za(t)),t.onIDBRead=t.onIDBRead.bind(Za(t)),t.onIDBReadAll=t.onIDBReadAll.bind(Za(t)),t.onIDBRemove=t.onIDBRemove.bind(Za(t)),t.onIDBUpdate=t.onIDBUpdate.bind(Za(t)),t.onIDBUpdate=t.onIDBUpdate.bind(Za(t)),t.onIDBClose=t.onIDBClose.bind(Za(t)),t.IDBReadAll=t.onIDBReadAll.bind(Za(t)),t.onIDBGetVersion=t.onIDBGetVersion.bind(Za(t)),t.onIDBDeleteDB=t.onIDBDeleteDB.bind(Za(t)),t.savedDataHandler=null,t}return Ya(n,[{key:"init",value:function(){this.client.on("userDataRemove",this.onUserDataRemove),this.client.on("userDataRead",this.onUserDataRead),this.client.on("userDataWrite",this.onUserDataWrite),this.client.on("IDBOpen",this.onIDBOpen),this.client.on("IDBRead",this.onIDBRead),this.client.on("IDBReadAll",this.onIDBReadAll),this.client.on("IDBAdd",this.onIDBAdd),this.client.on("IDBRemove",this.onIDBRemove),this.client.on("IDBUpdate",this.onIDBUpdate),this.client.on("IDBClose",this.onIDBClose),this.client.on("IDBGetVersion",this.onIDBGetVersion),this.client.on("IDBDeleteDB",this.onIDBDeleteDB)}},{key:"onUserDataRemove",value:function(t){var e=this,n=t.data,r=t.type;Dg.remove(n,(function(){e.client.send(r)}))}},{key:"onUserDataRead",value:function(t){var e=this,n=t.data,r=t.type;Dg.read(n,(function(t){return e.client.send(r,t)}))}},{key:"onUserDataWrite",value:function(t){var e=this,n=t.type,r=t.data,o=r.name,i=r.value;Dg.write(o,i,(function(){return e.client.send(n)}))}},{key:"onIDBOpen",value:function(t){var e=this,n=t.type,r=t.data,o=r.dbName,i=r.dbVersion,s=void 0===i?null:i,a=r.additions,u=void 0===a?{}:a,l=r.deletions,c=void 0===l?{}:l;this.savedDataHandler=new Dg,this.savedDataHandler.IDBOpen(o,s,u,c,(function(t){return e.client.send(n,t)}))}},{key:"onIDBAdd",value:function(t){var e=this,n=t.type,r=t.data,o=r.storeName,i=r.value,s=r.key;this.savedDataHandler.IDBAdd(o,i,s,(function(t){return e.client.send(n,t)}))}},{key:"onIDBUpdate",value:function(t){var e=this,n=t.type,r=t.data,o=r.storeName,i=r.key,s=r.value;this.savedDataHandler.IDBUpdate(o,i,s,(function(t){return e.client.send(n,t)}))}},{key:"onIDBRemove",value:function(t){var e=this,n=t.type,r=t.data,o=r.storeName,i=r.key;this.savedDataHandler.IDBRemove(o,i,(function(t){return e.client.send(n,t)}))}},{key:"onIDBRead",value:function(t){var e=this,n=t.type,r=t.data,o=r.storeName,i=r.key;this.savedDataHandler.IDBRead(o,i,(function(t){return e.client.send(n,t)}))}},{key:"onIDBReadAll",value:function(t){var e=this,n=t.type,r=t.data,o=r.storeName,i=r.count;this.savedDataHandler.IDBReadAll(o,i,(function(t){return e.client.send(n,t)}))}},{key:"onIDBGetVersion",value:function(t){var e=this,n=t.type,r=t.data.dbName;(new Dg).IDBGetVersion(r,(function(t){return e.client.send(n,t)}))}},{key:"onIDBClose",value:function(t){var e=this,n=t.type;this.savedDataHandler.IDBClose((function(t){return e.client.send(n,t)}))}},{key:"onIDBDeleteDB",value:function(t){var e=this,n=t.type,r=t.data,o=r.dbName,i=r.options;(new Dg).IDBDeleteDB(o,i,(function(t){return e.client.send(n,t)}))}}]),n}(nv),Tg=function(t){Ja(n,t);var e=eu(n);function n(t){var r,o=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).defaultPointerSize,i=void 0===o?.5:o;Wa(this,n),r=e.call(this,t,"UISize-Pointer-Plugin",{defaultValue:i,featureName:n.pointerSizeKey});for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:{}).defaultButtonSize,i=void 0===o?.5:o;Wa(this,n),r=e.call(this,t,"UISize-Button-Plugin",{defaultValue:i,featureName:n.buttonSizeKey});for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:{}).defaultSensitivity,i=void 0===o?.5:o;Wa(this,n),(r=e.call(this,t,"Control-Sensitivity-Plugin",{defaultValue:i,featureName:n.controlSensitivityKey})).sendAllProperties=r.sendAllProperties.bind(Za(r));for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:{}).customClassName,i=void 0===o?"springrollContainerKeyBinding__button":o;return Wa(this,n),(r=e.call(this,"Keyboard-Map-Plugin")).sendAllProperties=r.sendAllProperties.bind(Za(r)),r.bindKey=r.bindKey.bind(Za(r)),r.onKeyButtonClick=r.onKeyButtonClick.bind(Za(r)),r.className=i,r.keyContainers=t instanceof HTMLElement?[t]:document.querySelectorAll(t),r.keyBindings={},r.buttons=[],r.activekeyButton,r.sendAfterFetch=!1,r.canEmit=!1,r.keyContainersLength=r.keyContainers.length,r.keyContainersLength<=0?(r.warn("plugin was not provided any valid key binding container elements"),tu(r)):r}return Ya(n,[{key:"onKeyButtonClick",value:function(t){for(var e=0,n=this.buttons.length;e1&&void 0!==arguments[1]?arguments[1]:{}).defaultValue,i=void 0===o?0:o;Wa(this,n),r=e.call(this,t,"Layer-Plugin",{defaultValue:i,featureName:n.layersSliderKey});for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:{}).defaultValue,i=void 0===o?Kg[0]:o;Wa(this,n),(r=e.call(this,t,"HUD-Layout-Plugin",{supportedValues:Kg,initialValue:i,controlName:"Hud Selector",featureName:n.hudPositionKey,radioCount:Kg.length})).sendAllProperties=r.sendAllProperties.bind(Za(r)),r.sendAfterFetch=!1,r.canEmit=!1,r.positions=[],r.radioGroupsLength<=0&&r.warn("Plugin was not provided any valid HTML elements");for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:{}).defaultValue,i=void 0===o?Gg[0]:o;if(Wa(this,n),(r=e.call(this,t,"Color-Filter-Plugin",{supportedValues:Gg,initialValue:i,controlName:"Color Vision Selector",featureName:n.colorVisionKey,radioCount:Gg.length})).sendAllProperties=r.sendAllProperties.bind(Za(r)),r.sendAfterFetch=!1,r.canEmit=!1,r.colors=[],r.radioGroupsLength<=0)return r.warn("Plugin was not provided any valid HTML elements"),tu(r);for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:{}).defaultHitAreaScale,i=void 0===o?.5:o;Wa(this,n),r=e.call(this,t,"Hit-Area-Scale-Plugin",{defaultValue:i,featureName:n.hitAreaScaleKey});for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:{}).defaultDragThresholdScale,i=void 0===o?.5:o;Wa(this,n),r=e.call(this,t,"Drag-Threshold-Scale-Plugin",{defaultValue:i,featureName:n.dragThresholdScaleKey});for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:{}).defaultHealth,i=void 0===o?.5:o;Wa(this,n),r=e.call(this,t,"Health-Scale-Plugin",{defaultValue:i,featureName:n.healthKey});for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:{}).defaultObjectCount,i=void 0===o?.5:o;Wa(this,n),r=e.call(this,t,"Object-Count-Plugin",{defaultValue:i,featureName:n.objectCountKey});for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:{}).defaultCompletionPercentage,i=void 0===o?.5:o;Wa(this,n),r=e.call(this,t,"Completion-Percentage-Plugin",{defaultValue:i,featureName:n.completionPercentageKey});for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:{}).defaultSpeedScale,i=void 0===o?.5:o;Wa(this,n),r=e.call(this,t,"Speed-Scale-Plugin",{defaultValue:i,featureName:n.speedScaleKey});for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:{}).defaultTimersScale,i=void 0===o?.5:o;Wa(this,n),r=e.call(this,t,"Timers-Scale-Plugin",{defaultValue:i,featureName:n.timersScaleKey});for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:{}).defaultInputCount,i=void 0===o?.5:o;Wa(this,n),r=e.call(this,t,"Input-Count-Plugin",{defaultValue:i,featureName:n.inputCountKey});for(var s=0;s-1};function l(t){if("string"!=typeof t&&(t=String(t)),/[^a-z0-9\-#$%&'*+.^_`|~!]/i.test(t)||""===t)throw new TypeError('Invalid character in header field name: "'+t+'"');return t.toLowerCase()}function c(t){return"string"!=typeof t&&(t=String(t)),t}function d(t){var e={next:function(){var e=t.shift();return{done:void 0===e,value:e}}};return r&&(e[Symbol.iterator]=function(){return e}),e}function h(t){this.map={},t instanceof h?t.forEach((function(t,e){this.append(e,t)}),this):Array.isArray(t)?t.forEach((function(t){this.append(t[0],t[1])}),this):t&&Object.getOwnPropertyNames(t).forEach((function(e){this.append(e,t[e])}),this)}function f(t){if(t.bodyUsed)return Promise.reject(new TypeError("Already read"));t.bodyUsed=!0}function p(t){return new Promise((function(e,n){t.onload=function(){e(t.result)},t.onerror=function(){n(t.error)}}))}function v(t){var e=new FileReader,n=p(e);return e.readAsArrayBuffer(t),n}function y(t){if(t.slice)return t.slice(0);var e=new Uint8Array(t.byteLength);return e.set(new Uint8Array(t)),e.buffer}function g(){return this.bodyUsed=!1,this._initBody=function(t){var e;this.bodyUsed=this.bodyUsed,this._bodyInit=t,t?"string"==typeof t?this._bodyText=t:o&&Blob.prototype.isPrototypeOf(t)?this._bodyBlob=t:i&&FormData.prototype.isPrototypeOf(t)?this._bodyFormData=t:n&&URLSearchParams.prototype.isPrototypeOf(t)?this._bodyText=t.toString():s&&o&&((e=t)&&DataView.prototype.isPrototypeOf(e))?(this._bodyArrayBuffer=y(t.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):s&&(ArrayBuffer.prototype.isPrototypeOf(t)||u(t))?this._bodyArrayBuffer=y(t):this._bodyText=t=Object.prototype.toString.call(t):this._bodyText="",this.headers.get("content-type")||("string"==typeof t?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):n&&URLSearchParams.prototype.isPrototypeOf(t)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},o&&(this.blob=function(){var t=f(this);if(t)return t;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){if(this._bodyArrayBuffer){var t=f(this);return t||(ArrayBuffer.isView(this._bodyArrayBuffer)?Promise.resolve(this._bodyArrayBuffer.buffer.slice(this._bodyArrayBuffer.byteOffset,this._bodyArrayBuffer.byteOffset+this._bodyArrayBuffer.byteLength)):Promise.resolve(this._bodyArrayBuffer))}return this.blob().then(v)}),this.text=function(){var t=f(this);if(t)return t;if(this._bodyBlob)return function(t){var e=new FileReader,n=p(e);return e.readAsText(t),n}(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(function(t){for(var e=new Uint8Array(t),n=new Array(e.length),r=0;r-1?e:t}(e.method||this.method||"GET"),this.mode=e.mode||this.mode||null,this.signal=e.signal||this.signal,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&n)throw new TypeError("Body not allowed for GET or HEAD requests");if(this._initBody(n),!("GET"!==this.method&&"HEAD"!==this.method||"no-store"!==e.cache&&"no-cache"!==e.cache)){var r=/([?&])_=[^&]*/;if(r.test(this.url))this.url=this.url.replace(r,"$1_="+(new Date).getTime());else{this.url+=(/\?/.test(this.url)?"&":"?")+"_="+(new Date).getTime()}}}function S(t){var e=new FormData;return t.trim().split("&").forEach((function(t){if(t){var n=t.split("="),r=n.shift().replace(/\+/g," "),o=n.join("=").replace(/\+/g," ");e.append(decodeURIComponent(r),decodeURIComponent(o))}})),e}function w(t,e){if(!(this instanceof w))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');e||(e={}),this.type="default",this.status=void 0===e.status?200:e.status,this.ok=this.status>=200&&this.status<300,this.statusText=void 0===e.statusText?"":""+e.statusText,this.headers=new h(e.headers),this.url=e.url||"",this._initBody(t)}b.prototype.clone=function(){return new b(this,{body:this._bodyInit})},g.call(b.prototype),g.call(w.prototype),w.prototype.clone=function(){return new w(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new h(this.headers),url:this.url})},w.error=function(){var t=new w(null,{status:0,statusText:""});return t.type="error",t};var k=[301,302,303,307,308];w.redirect=function(t,e){if(-1===k.indexOf(e))throw new RangeError("Invalid status code");return new w(null,{status:e,headers:{location:t}})};var E=e.DOMException;try{new E}catch(t){(E=function(t,e){this.message=t,this.name=e;var n=Error(t);this.stack=n.stack}).prototype=Object.create(Error.prototype),E.prototype.constructor=E}function B(t,n){return new Promise((function(r,i){var a=new b(t,n);if(a.signal&&a.signal.aborted)return i(new E("Aborted","AbortError"));var u=new XMLHttpRequest;function l(){u.abort()}u.onload=function(){var t,e,n={status:u.status,statusText:u.statusText,headers:(t=u.getAllResponseHeaders()||"",e=new h,t.replace(/\r?\n[\t ]+/g," ").split("\r").map((function(t){return 0===t.indexOf("\n")?t.substr(1,t.length):t})).forEach((function(t){var n=t.split(":"),r=n.shift().trim();if(r){var o=n.join(":").trim();e.append(r,o)}})),e)};n.url="responseURL"in u?u.responseURL:n.headers.get("X-Request-URL");var o="response"in u?u.response:u.responseText;setTimeout((function(){r(new w(o,n))}),0)},u.onerror=function(){setTimeout((function(){i(new TypeError("Network request failed"))}),0)},u.ontimeout=function(){setTimeout((function(){i(new TypeError("Network request failed"))}),0)},u.onabort=function(){setTimeout((function(){i(new E("Aborted","AbortError"))}),0)},u.open(a.method,function(t){try{return""===t&&e.location.href?e.location.href:t}catch(e){return t}}(a.url),!0),"include"===a.credentials?u.withCredentials=!0:"omit"===a.credentials&&(u.withCredentials=!1),"responseType"in u&&(o?u.responseType="blob":s&&a.headers.get("Content-Type")&&-1!==a.headers.get("Content-Type").indexOf("application/octet-stream")&&(u.responseType="arraybuffer")),!n||"object"!=typeof n.headers||n.headers instanceof h?a.headers.forEach((function(t,e){u.setRequestHeader(e,t)})):Object.getOwnPropertyNames(n.headers).forEach((function(t){u.setRequestHeader(t,c(n.headers[t]))})),a.signal&&(a.signal.addEventListener("abort",l),u.onreadystatechange=function(){4===u.readyState&&a.signal.removeEventListener("abort",l)}),u.send(void 0===a._bodyInit?null:a._bodyInit)}))}B.polyfill=!0,e.fetch||(e.fetch=B,e.Headers=h,e.Request=b,e.Response=w);var x="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},P=function(t){return t&&t.Math==Math&&t},L=P("object"==typeof globalThis&&globalThis)||P("object"==typeof window&&window)||P("object"==typeof self&&self)||P("object"==typeof x&&x)||function(){return this}()||Function("return this")(),_={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0},O="object"==typeof document&&document.all,A={all:O,IS_HTMLDDA:void 0===O&&void 0!==O},V=A.all,C=A.IS_HTMLDDA?function(t){return"function"==typeof t||t===V}:function(t){return"function"==typeof t},D=C,M=A.all,T=A.IS_HTMLDDA?function(t){return"object"==typeof t?null!==t:D(t)||t===M}:function(t){return"object"==typeof t?null!==t:D(t)},I=T,R=L.document,j=I(R)&&I(R.createElement),N=function(t){return j?R.createElement(t):{}},K=N("span").classList,F=K&&K.constructor&&K.constructor.prototype,G=F===Object.prototype?void 0:F,U=function(t){try{return!!t()}catch(t){return!0}},H=!U((function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")})),z=H,q=Function.prototype,W=q.call,X=z&&q.bind.bind(W,W),Y=z?X:function(t){return function(){return W.apply(t,arguments)}},J=Y,$=J({}.toString),Q=J("".slice),Z=function(t){return Q($(t),8,-1)},tt=Z,et=Y,nt=function(t){if("Function"===tt(t))return et(t)},rt=String,ot=function(t){try{return rt(t)}catch(t){return"Object"}},it=C,st=ot,at=TypeError,ut=function(t){if(it(t))return t;throw at(st(t)+" is not a function")},lt=ut,ct=H,dt=nt(nt.bind),ht=function(t,e){return lt(t),void 0===e?t:ct?dt(t,e):function(){return t.apply(e,arguments)}},ft=U,pt=Z,vt=Object,yt=Y("".split),gt=ft((function(){return!vt("z").propertyIsEnumerable(0)}))?function(t){return"String"==pt(t)?yt(t,""):vt(t)}:vt,mt=function(t){return null==t},bt=mt,St=TypeError,wt=function(t){if(bt(t))throw St("Can't call method on "+t);return t},kt=wt,Et=Object,Bt=function(t){return Et(kt(t))},xt=Math.ceil,Pt=Math.floor,Lt=Math.trunc||function(t){var e=+t;return(e>0?Pt:xt)(e)},_t=Lt,Ot=function(t){var e=+t;return e!=e||0===e?0:_t(e)},At=Ot,Vt=Math.min,Ct=function(t){return t>0?Vt(At(t),9007199254740991):0},Dt=function(t){return Ct(t.length)},Mt=Z,Tt=Array.isArray||function(t){return"Array"==Mt(t)},It={exports:{}},Rt=L,jt=Object.defineProperty,Nt=function(t,e){try{jt(Rt,t,{value:e,configurable:!0,writable:!0})}catch(n){Rt[t]=e}return e},Kt=Nt,Ft="__core-js_shared__",Gt=L[Ft]||Kt(Ft,{}),Ut=Gt;(It.exports=function(t,e){return Ut[t]||(Ut[t]=void 0!==e?e:{})})("versions",[]).push({version:"3.28.0",mode:"global",copyright:"© 2014-2023 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.28.0/LICENSE",source:"https://github.com/zloirock/core-js"});var Ht,zt,qt=It.exports,Wt=Bt,Xt=Y({}.hasOwnProperty),Yt=Object.hasOwn||function(t,e){return Xt(Wt(t),e)},Jt=Y,$t=0,Qt=Math.random(),Zt=Jt(1..toString),te=function(t){return"Symbol("+(void 0===t?"":t)+")_"+Zt(++$t+Qt,36)},ee="undefined"!=typeof navigator&&String(navigator.userAgent)||"",ne=L,re=ee,oe=ne.process,ie=ne.Deno,se=oe&&oe.versions||ie&&ie.version,ae=se&&se.v8;ae&&(zt=(Ht=ae.split("."))[0]>0&&Ht[0]<4?1:+(Ht[0]+Ht[1])),!zt&&re&&(!(Ht=re.match(/Edge\/(\d+)/))||Ht[1]>=74)&&(Ht=re.match(/Chrome\/(\d+)/))&&(zt=+Ht[1]);var ue=zt,le=ue,ce=U,de=!!Object.getOwnPropertySymbols&&!ce((function(){var t=Symbol();return!String(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&le&&le<41})),he=de&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,fe=qt,pe=Yt,ve=te,ye=de,ge=he,me=L.Symbol,be=fe("wks"),Se=ge?me.for||me:me&&me.withoutSetter||ve,we=function(t){return pe(be,t)||(be[t]=ye&&pe(me,t)?me[t]:Se("Symbol."+t)),be[t]},ke={};ke[we("toStringTag")]="z";var Ee="[object z]"===String(ke),Be=Ee,xe=C,Pe=Z,Le=we("toStringTag"),_e=Object,Oe="Arguments"==Pe(function(){return arguments}()),Ae=Be?Pe:function(t){var e,n,r;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(t){}}(e=_e(t),Le))?n:Oe?Pe(e):"Object"==(r=Pe(e))&&xe(e.callee)?"Arguments":r},Ve=L,Ce=C,De=function(t,e){return arguments.length<2?(n=Ve[t],Ce(n)?n:void 0):Ve[t]&&Ve[t][e];var n},Me=C,Te=Gt,Ie=Y(Function.toString);Me(Te.inspectSource)||(Te.inspectSource=function(t){return Ie(t)});var Re=Te.inspectSource,je=Y,Ne=U,Ke=C,Fe=Ae,Ge=Re,Ue=function(){},He=[],ze=De("Reflect","construct"),qe=/^\s*(?:class|function)\b/,We=je(qe.exec),Xe=!qe.exec(Ue),Ye=function(t){if(!Ke(t))return!1;try{return ze(Ue,He,t),!0}catch(t){return!1}},Je=function(t){if(!Ke(t))return!1;switch(Fe(t)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return Xe||!!We(qe,Ge(t))}catch(t){return!0}};Je.sham=!0;var $e=!ze||Ne((function(){var t;return Ye(Ye.call)||!Ye(Object)||!Ye((function(){t=!0}))||t}))?Je:Ye,Qe=Tt,Ze=$e,tn=T,en=we("species"),nn=Array,rn=function(t){var e;return Qe(t)&&(e=t.constructor,(Ze(e)&&(e===nn||Qe(e.prototype))||tn(e)&&null===(e=e[en]))&&(e=void 0)),void 0===e?nn:e},on=function(t,e){return new(rn(t))(0===e?0:e)},sn=ht,an=gt,un=Bt,ln=Dt,cn=on,dn=Y([].push),hn=function(t){var e=1==t,n=2==t,r=3==t,o=4==t,i=6==t,s=7==t,a=5==t||i;return function(u,l,c,d){for(var h,f,p=un(u),v=an(p),y=sn(l,c),g=ln(v),m=0,b=d||cn,S=e?b(u,g):n||s?b(u,0):void 0;g>m;m++)if((a||m in v)&&(f=y(h=v[m],m,p),t))if(e)S[m]=f;else if(f)switch(t){case 3:return!0;case 5:return h;case 6:return m;case 2:dn(S,h)}else switch(t){case 4:return!1;case 7:dn(S,h)}return i?-1:r||o?o:S}},fn={forEach:hn(0),map:hn(1),filter:hn(2),some:hn(3),every:hn(4),find:hn(5),findIndex:hn(6),filterReject:hn(7)},pn=U,vn=function(t,e){var n=[][t];return!!n&&pn((function(){n.call(null,e||function(){return 1},1)}))},yn=fn.forEach,gn=vn("forEach")?[].forEach:function(t){return yn(this,t,arguments.length>1?arguments[1]:void 0)},mn=!U((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),bn={},Sn=N,wn=!mn&&!U((function(){return 7!=Object.defineProperty(Sn("div"),"a",{get:function(){return 7}}).a})),kn=mn&&U((function(){return 42!=Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype})),En=T,Bn=String,xn=TypeError,Pn=function(t){if(En(t))return t;throw xn(Bn(t)+" is not an object")},Ln=H,_n=Function.prototype.call,On=Ln?_n.bind(_n):function(){return _n.apply(_n,arguments)},An=Y({}.isPrototypeOf),Vn=De,Cn=C,Dn=An,Mn=Object,Tn=he?function(t){return"symbol"==typeof t}:function(t){var e=Vn("Symbol");return Cn(e)&&Dn(e.prototype,Mn(t))},In=ut,Rn=mt,jn=function(t,e){var n=t[e];return Rn(n)?void 0:In(n)},Nn=On,Kn=C,Fn=T,Gn=TypeError,Un=On,Hn=T,zn=Tn,qn=jn,Wn=function(t,e){var n,r;if("string"===e&&Kn(n=t.toString)&&!Fn(r=Nn(n,t)))return r;if(Kn(n=t.valueOf)&&!Fn(r=Nn(n,t)))return r;if("string"!==e&&Kn(n=t.toString)&&!Fn(r=Nn(n,t)))return r;throw Gn("Can't convert object to primitive value")},Xn=TypeError,Yn=we("toPrimitive"),Jn=function(t,e){if(!Hn(t)||zn(t))return t;var n,r=qn(t,Yn);if(r){if(void 0===e&&(e="default"),n=Un(r,t,e),!Hn(n)||zn(n))return n;throw Xn("Can't convert object to primitive value")}return void 0===e&&(e="number"),Wn(t,e)},$n=Jn,Qn=Tn,Zn=function(t){var e=$n(t,"string");return Qn(e)?e:e+""},tr=mn,er=wn,nr=kn,rr=Pn,or=Zn,ir=TypeError,sr=Object.defineProperty,ar=Object.getOwnPropertyDescriptor,ur="enumerable",lr="configurable",cr="writable";bn.f=tr?nr?function(t,e,n){if(rr(t),e=or(e),rr(n),"function"==typeof t&&"prototype"===e&&"value"in n&&cr in n&&!n[cr]){var r=ar(t,e);r&&r[cr]&&(t[e]=n.value,n={configurable:lr in n?n[lr]:r[lr],enumerable:ur in n?n[ur]:r[ur],writable:!1})}return sr(t,e,n)}:sr:function(t,e,n){if(rr(t),e=or(e),rr(n),er)try{return sr(t,e,n)}catch(t){}if("get"in n||"set"in n)throw ir("Accessors not supported");return"value"in n&&(t[e]=n.value),t};var dr=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}},hr=bn,fr=dr,pr=mn?function(t,e,n){return hr.f(t,e,fr(1,n))}:function(t,e,n){return t[e]=n,t},vr=L,yr=_,gr=G,mr=gn,br=pr,Sr=function(t){if(t&&t.forEach!==mr)try{br(t,"forEach",mr)}catch(e){t.forEach=mr}};for(var wr in yr)yr[wr]&&Sr(vr[wr]&&vr[wr].prototype);Sr(gr);var kr=gt,Er=wt,Br=function(t){return kr(Er(t))},xr={},Pr=Ot,Lr=Math.max,_r=Math.min,Or=function(t,e){var n=Pr(t);return n<0?Lr(n+e,0):_r(n,e)},Ar=Br,Vr=Or,Cr=Dt,Dr=function(t){return function(e,n,r){var o,i=Ar(e),s=Cr(i),a=Vr(r,s);if(t&&n!=n){for(;s>a;)if((o=i[a++])!=o)return!0}else for(;s>a;a++)if((t||a in i)&&i[a]===n)return t||a||0;return!t&&-1}},Mr={includes:Dr(!0),indexOf:Dr(!1)},Tr={},Ir=Yt,Rr=Br,jr=Mr.indexOf,Nr=Tr,Kr=Y([].push),Fr=function(t,e){var n,r=Rr(t),o=0,i=[];for(n in r)!Ir(Nr,n)&&Ir(r,n)&&Kr(i,n);for(;e.length>o;)Ir(r,n=e[o++])&&(~jr(i,n)||Kr(i,n));return i},Gr=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],Ur=Fr,Hr=Gr,zr=Object.keys||function(t){return Ur(t,Hr)},qr=mn,Wr=kn,Xr=bn,Yr=Pn,Jr=Br,$r=zr;xr.f=qr&&!Wr?Object.defineProperties:function(t,e){Yr(t);for(var n,r=Jr(e),o=$r(e),i=o.length,s=0;i>s;)Xr.f(t,n=o[s++],r[n]);return t};var Qr,Zr=De("document","documentElement"),to=te,eo=qt("keys"),no=function(t){return eo[t]||(eo[t]=to(t))},ro=Pn,oo=xr,io=Gr,so=Tr,ao=Zr,uo=N,lo="prototype",co="script",ho=no("IE_PROTO"),fo=function(){},po=function(t){return"<"+co+">"+t+""},vo=function(t){t.write(po("")),t.close();var e=t.parentWindow.Object;return t=null,e},yo=function(){try{Qr=new ActiveXObject("htmlfile")}catch(t){}var t,e,n;yo="undefined"!=typeof document?document.domain&&Qr?vo(Qr):(e=uo("iframe"),n="java"+co+":",e.style.display="none",ao.appendChild(e),e.src=String(n),(t=e.contentWindow.document).open(),t.write(po("document.F=Object")),t.close(),t.F):vo(Qr);for(var r=io.length;r--;)delete yo[lo][io[r]];return yo()};so[ho]=!0;var go=Object.create||function(t,e){var n;return null!==t?(fo[lo]=ro(t),n=new fo,fo[lo]=null,n[ho]=t):n=yo(),void 0===e?n:oo.f(n,e)},mo=we,bo=go,So=bn.f,wo=mo("unscopables"),ko=Array.prototype;null==ko[wo]&&So(ko,wo,{configurable:!0,value:bo(null)});var Eo,Bo,xo,Po=function(t){ko[wo][t]=!0},Lo={},_o=C,Oo=L.WeakMap,Ao=_o(Oo)&&/native code/.test(String(Oo)),Vo=L,Co=T,Do=pr,Mo=Yt,To=Gt,Io=no,Ro=Tr,jo="Object already initialized",No=Vo.TypeError,Ko=Vo.WeakMap;if(Ao||To.state){var Fo=To.state||(To.state=new Ko);Fo.get=Fo.get,Fo.has=Fo.has,Fo.set=Fo.set,Eo=function(t,e){if(Fo.has(t))throw No(jo);return e.facade=t,Fo.set(t,e),e},Bo=function(t){return Fo.get(t)||{}},xo=function(t){return Fo.has(t)}}else{var Go=Io("state");Ro[Go]=!0,Eo=function(t,e){if(Mo(t,Go))throw No(jo);return e.facade=t,Do(t,Go,e),e},Bo=function(t){return Mo(t,Go)?t[Go]:{}},xo=function(t){return Mo(t,Go)}}var Uo={set:Eo,get:Bo,has:xo,enforce:function(t){return xo(t)?Bo(t):Eo(t,{})},getterFor:function(t){return function(e){var n;if(!Co(e)||(n=Bo(e)).type!==t)throw No("Incompatible receiver, "+t+" required");return n}}},Ho={},zo={},qo={}.propertyIsEnumerable,Wo=Object.getOwnPropertyDescriptor,Xo=Wo&&!qo.call({1:2},1);zo.f=Xo?function(t){var e=Wo(this,t);return!!e&&e.enumerable}:qo;var Yo=mn,Jo=On,$o=zo,Qo=dr,Zo=Br,ti=Zn,ei=Yt,ni=wn,ri=Object.getOwnPropertyDescriptor;Ho.f=Yo?ri:function(t,e){if(t=Zo(t),e=ti(e),ni)try{return ri(t,e)}catch(t){}if(ei(t,e))return Qo(!Jo($o.f,t,e),t[e])};var oi={exports:{}},ii=mn,si=Yt,ai=Function.prototype,ui=ii&&Object.getOwnPropertyDescriptor,li=si(ai,"name"),ci={EXISTS:li,PROPER:li&&"something"===function(){}.name,CONFIGURABLE:li&&(!ii||ii&&ui(ai,"name").configurable)},di=Y,hi=U,fi=C,pi=Yt,vi=mn,yi=ci.CONFIGURABLE,gi=Re,mi=Uo.enforce,bi=Uo.get,Si=String,wi=Object.defineProperty,ki=di("".slice),Ei=di("".replace),Bi=di([].join),xi=vi&&!hi((function(){return 8!==wi((function(){}),"length",{value:8}).length})),Pi=String(String).split("String"),Li=oi.exports=function(t,e,n){"Symbol("===ki(Si(e),0,7)&&(e="["+Ei(Si(e),/^Symbol\(([^)]*)\)/,"$1")+"]"),n&&n.getter&&(e="get "+e),n&&n.setter&&(e="set "+e),(!pi(t,"name")||yi&&t.name!==e)&&(vi?wi(t,"name",{value:e,configurable:!0}):t.name=e),xi&&n&&pi(n,"arity")&&t.length!==n.arity&&wi(t,"length",{value:n.arity});try{n&&pi(n,"constructor")&&n.constructor?vi&&wi(t,"prototype",{writable:!1}):t.prototype&&(t.prototype=void 0)}catch(t){}var r=mi(t);return pi(r,"source")||(r.source=Bi(Pi,"string"==typeof e?e:"")),t};Function.prototype.toString=Li((function(){return fi(this)&&bi(this).source||gi(this)}),"toString");var _i=oi.exports,Oi=C,Ai=bn,Vi=_i,Ci=Nt,Di=function(t,e,n,r){r||(r={});var o=r.enumerable,i=void 0!==r.name?r.name:e;if(Oi(n)&&Vi(n,i,r),r.global)o?t[e]=n:Ci(e,n);else{try{r.unsafe?t[e]&&(o=!0):delete t[e]}catch(t){}o?t[e]=n:Ai.f(t,e,{value:n,enumerable:!1,configurable:!r.nonConfigurable,writable:!r.nonWritable})}return t},Mi={},Ti=Fr,Ii=Gr.concat("length","prototype");Mi.f=Object.getOwnPropertyNames||function(t){return Ti(t,Ii)};var Ri={};Ri.f=Object.getOwnPropertySymbols;var ji,Ni,Ki,Fi=De,Gi=Mi,Ui=Ri,Hi=Pn,zi=Y([].concat),qi=Fi("Reflect","ownKeys")||function(t){var e=Gi.f(Hi(t)),n=Ui.f;return n?zi(e,n(t)):e},Wi=Yt,Xi=qi,Yi=Ho,Ji=bn,$i=U,Qi=C,Zi=/#|\.prototype\./,ts=function(t,e){var n=ns[es(t)];return n==os||n!=rs&&(Qi(e)?$i(e):!!e)},es=ts.normalize=function(t){return String(t).replace(Zi,".").toLowerCase()},ns=ts.data={},rs=ts.NATIVE="N",os=ts.POLYFILL="P",is=ts,ss=L,as=Ho.f,us=pr,ls=Di,cs=Nt,ds=function(t,e,n){for(var r=Xi(e),o=Ji.f,i=Yi.f,s=0;s=e.length?(t.target=void 0,Ba(void 0,!0)):Ba("keys"==n?r:"values"==n?e[r]:[r,e[r]],!1)}),"values"),Aa=Sa.Arguments=Sa.Array;if(ba("keys"),ba("values"),ba("entries"),xa&&"values"!==Aa.name)try{ka(Aa,"name",{value:"values"})}catch(t){}var Va=L,Ca=_,Da=G,Ma=Oa,Ta=pr,Ia=we,Ra=Ia("iterator"),ja=Ia("toStringTag"),Na=Ma.values,Ka=function(t,e){if(t){if(t[Ra]!==Na)try{Ta(t,Ra,Na)}catch(e){t[Ra]=Na}if(t[ja]||Ta(t,ja,e),Ca[e])for(var n in Ma)if(t[n]!==Ma[n])try{Ta(t,n,Ma[n])}catch(e){t[n]=Ma[n]}}};for(var Fa in Ca)Ka(Va[Fa]&&Va[Fa].prototype,Fa);Ka(Da,"DOMTokenList");var Ga=L;function Ua(){Ua=function(){return t};var t={},e=Object.prototype,n=e.hasOwnProperty,r=Object.defineProperty||function(t,e,n){t[e]=n.value},o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",s=o.asyncIterator||"@@asyncIterator",a=o.toStringTag||"@@toStringTag";function u(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{u({},"")}catch(t){u=function(t,e,n){return t[e]=n}}function l(t,e,n,o){var i=e&&e.prototype instanceof h?e:h,s=Object.create(i.prototype),a=new x(o||[]);return r(s,"_invoke",{value:w(t,n,a)}),s}function c(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}t.wrap=l;var d={};function h(){}function f(){}function p(){}var v={};u(v,i,(function(){return this}));var y=Object.getPrototypeOf,g=y&&y(y(P([])));g&&g!==e&&n.call(g,i)&&(v=g);var m=p.prototype=h.prototype=Object.create(v);function b(t){["next","throw","return"].forEach((function(e){u(t,e,(function(t){return this._invoke(e,t)}))}))}function S(t,e){function o(r,i,s,a){var u=c(t[r],t,i);if("throw"!==u.type){var l=u.arg,d=l.value;return d&&"object"==typeof d&&n.call(d,"__await")?e.resolve(d.__await).then((function(t){o("next",t,s,a)}),(function(t){o("throw",t,s,a)})):e.resolve(d).then((function(t){l.value=t,s(l)}),(function(t){return o("throw",t,s,a)}))}a(u.arg)}var i;r(this,"_invoke",{value:function(t,n){function r(){return new e((function(e,r){o(t,n,e,r)}))}return i=i?i.then(r,r):r()}})}function w(t,e,n){var r="suspendedStart";return function(o,i){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===o)throw i;return L()}for(n.method=o,n.arg=i;;){var s=n.delegate;if(s){var a=k(s,n);if(a){if(a===d)continue;return a}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var u=c(t,e,n);if("normal"===u.type){if(r=n.done?"completed":"suspendedYield",u.arg===d)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(r="completed",n.method="throw",n.arg=u.arg)}}}function k(t,e){var n=e.method,r=t.iterator[n];if(void 0===r)return e.delegate=null,"throw"===n&&t.iterator.return&&(e.method="return",e.arg=void 0,k(t,e),"throw"===e.method)||"return"!==n&&(e.method="throw",e.arg=new TypeError("The iterator does not provide a '"+n+"' method")),d;var o=c(r,t.iterator,e.arg);if("throw"===o.type)return e.method="throw",e.arg=o.arg,e.delegate=null,d;var i=o.arg;return i?i.done?(e[t.resultName]=i.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,d):i:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,d)}function E(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function B(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function x(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(E,this),this.reset(!0)}function P(t){if(t){var e=t[i];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,o=function e(){for(;++r=0;--o){var i=this.tryEntries[o],s=i.completion;if("root"===i.tryLoc)return r("end");if(i.tryLoc<=this.prev){var a=n.call(i,"catchLoc"),u=n.call(i,"finallyLoc");if(a&&u){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),B(n),d}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var o=r.arg;B(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,n){return this.delegate={iterator:P(t),resultName:e,nextLoc:n},"next"===this.method&&(this.arg=void 0),d}},t}function Ha(t){return Ha="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ha(t)}function za(t,e,n,r,o,i,s){try{var a=t[i](s),u=a.value}catch(t){return void n(t)}a.done?e(u):Promise.resolve(u).then(r,o)}function qa(t){return function(){var e=this,n=arguments;return new Promise((function(r,o){var i=t.apply(e,n);function s(t){za(i,r,o,s,a,"next",t)}function a(t){za(i,r,o,s,a,"throw",t)}s(void 0)}))}}function Wa(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function Xa(t,e){for(var n=0;nt.length)&&(e=t.length);for(var n=0,r=new Array(e);n=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,a=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return s=t.done,t},e:function(t){a=!0,i=t},f:function(){try{s||null==n.return||n.return()}finally{if(a)throw i}}}}var su=fs,au=Mr.indexOf,uu=vn,lu=nt([].indexOf),cu=!!lu&&1/lu([1],1,-0)<0;su({target:"Array",proto:!0,forced:cu||!uu("indexOf")},{indexOf:function(t){var e=arguments.length>1?arguments[1]:void 0;return cu?lu(this,t,e)||0:au(this,t,e)}});var du=TypeError,hu=Zn,fu=bn,pu=dr,vu=function(t,e,n){var r=hu(e);r in t?fu.f(t,r,pu(0,n)):t[r]=n},yu=U,gu=ue,mu=we("species"),bu=function(t){return gu>=51||!yu((function(){var e=[];return(e.constructor={})[mu]=function(){return{foo:1}},1!==e[t](Boolean).foo}))},Su=fs,wu=U,ku=Tt,Eu=T,Bu=Bt,xu=Dt,Pu=function(t){if(t>9007199254740991)throw du("Maximum allowed index exceeded");return t},Lu=vu,_u=on,Ou=bu,Au=ue,Vu=we("isConcatSpreadable"),Cu=Au>=51||!wu((function(){var t=[];return t[Vu]=!1,t.concat()[0]!==t})),Du=function(t){if(!Eu(t))return!1;var e=t[Vu];return void 0!==e?!!e:ku(t)};Su({target:"Array",proto:!0,arity:1,forced:!Cu||!Ou("concat")},{concat:function(t){var e,n,r,o,i,s=Bu(this),a=_u(s,0),u=0;for(e=-1,r=arguments.length;eo;)for(var a,u=Gu(arguments[o++]),l=i?zu(ju(u),i(u)):ju(u),c=l.length,d=0;c>d;)a=l[d++],Mu&&!Iu(s,u,a)||(n[a]=u[a]);return n}:Uu,Wu=qu;fs({target:"Object",stat:!0,arity:2,forced:Object.assign!==Wu},{assign:Wu});var Xu=Ae,Yu=Ee?{}.toString:function(){return"[object "+Xu(this)+"]"};Ee||Di(Object.prototype,"toString",Yu,{unsafe:!0});var Ju,$u,Qu,Zu,tl="undefined"!=typeof process&&"process"==Z(process),el=_i,nl=bn,rl=function(t,e,n){return n.get&&el(n.get,e,{getter:!0}),n.set&&el(n.set,e,{setter:!0}),nl.f(t,e,n)},ol=De,il=rl,sl=mn,al=we("species"),ul=function(t){var e=ol(t);sl&&e&&!e[al]&&il(e,al,{configurable:!0,get:function(){return this}})},ll=An,cl=TypeError,dl=function(t,e){if(ll(e,t))return t;throw cl("Incorrect invocation")},hl=$e,fl=ot,pl=TypeError,vl=Pn,yl=function(t){if(hl(t))return t;throw pl(fl(t)+" is not a constructor")},gl=mt,ml=we("species"),bl=H,Sl=Function.prototype,wl=Sl.apply,kl=Sl.call,El="object"==typeof Reflect&&Reflect.apply||(bl?kl.bind(wl):function(){return kl.apply(wl,arguments)}),Bl=Y([].slice),xl=TypeError,Pl=/(?:ipad|iphone|ipod).*applewebkit/i.test(ee),Ll=L,_l=El,Ol=ht,Al=C,Vl=Yt,Cl=U,Dl=Zr,Ml=Bl,Tl=N,Il=function(t,e){if(ti;i++)if((a=g(t[i]))&&vh(wh,a))return a;return new Sh(!1)}r=yh(t,o)}for(u=h?t.next:r.next;!(l=ch(u,r)).done;){try{a=g(l.value)}catch(t){mh(r,"throw",t)}if("object"==typeof a&&a&&vh(wh,a))return a}return new Sh(!1)},Eh=we("iterator"),Bh=!1;try{var xh=0,Ph={next:function(){return{done:!!xh++}},return:function(){Bh=!0}};Ph[Eh]=function(){return this},Array.from(Ph,(function(){throw 2}))}catch(t){}var Lh=function(t,e){if(!e&&!Bh)return!1;var n=!1;try{var r={};r[Eh]=function(){return{next:function(){return{done:n=!0}}}},t(r)}catch(t){}return n},_h=_c,Oh=Hc.CONSTRUCTOR||!Lh((function(t){_h.all(t).then(void 0,(function(){}))})),Ah=On,Vh=ut,Ch=zc,Dh=Lc,Mh=kh;fs({target:"Promise",stat:!0,forced:Oh},{all:function(t){var e=this,n=Ch.f(e),r=n.resolve,o=n.reject,i=Dh((function(){var n=Vh(e.resolve),i=[],s=0,a=1;Mh(t,(function(t){var u=s++,l=!1;a++,Ah(n,e,t).then((function(t){l||(l=!0,i[u]=t,--a||r(i))}),o)})),--a||r(i)}));return i.error&&o(i.value),n.promise}});var Th=fs,Ih=Hc.CONSTRUCTOR,Rh=_c,jh=De,Nh=C,Kh=Di,Fh=Rh&&Rh.prototype;if(Th({target:"Promise",proto:!0,forced:Ih,real:!0},{catch:function(t){return this.then(void 0,t)}}),Nh(Rh)){var Gh=jh("Promise").prototype.catch;Fh.catch!==Gh&&Kh(Fh,"catch",Gh,{unsafe:!0})}var Uh=On,Hh=ut,zh=zc,qh=Lc,Wh=kh;fs({target:"Promise",stat:!0,forced:Oh},{race:function(t){var e=this,n=zh.f(e),r=n.reject,o=qh((function(){var o=Hh(e.resolve);Wh(t,(function(t){Uh(o,e,t).then(n.resolve,r)}))}));return o.error&&r(o.value),n.promise}});var Xh=On,Yh=zc;fs({target:"Promise",stat:!0,forced:Hc.CONSTRUCTOR},{reject:function(t){var e=Yh.f(this);return Xh(e.reject,void 0,t),e.promise}});var Jh=Pn,$h=T,Qh=zc,Zh=fs,tf=Hc.CONSTRUCTOR,ef=function(t,e){if(Jh(t),$h(e)&&e.constructor===t)return e;var n=Qh.f(t);return(0,n.resolve)(e),n.promise};De("Promise"),Zh({target:"Promise",stat:!0,forced:tf},{resolve:function(t){return ef(this,t)}});var nf,rf,of=Ae,sf=String,af=function(t){if("Symbol"===of(t))throw TypeError("Cannot convert a Symbol value to a string");return sf(t)},uf=Pn,lf=function(){var t=uf(this),e="";return t.hasIndices&&(e+="d"),t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.dotAll&&(e+="s"),t.unicode&&(e+="u"),t.unicodeSets&&(e+="v"),t.sticky&&(e+="y"),e},cf=U,df=L.RegExp,hf=cf((function(){var t=df("a","y");return t.lastIndex=2,null!=t.exec("abcd")})),ff=hf||cf((function(){return!df("a","y").sticky})),pf={BROKEN_CARET:hf||cf((function(){var t=df("^r","gy");return t.lastIndex=2,null!=t.exec("str")})),MISSED_STICKY:ff,UNSUPPORTED_Y:hf},vf=U,yf=L.RegExp,gf=vf((function(){var t=yf(".","s");return!(t.dotAll&&t.exec("\n")&&"s"===t.flags)})),mf=U,bf=L.RegExp,Sf=mf((function(){var t=bf("(?b)","g");return"b"!==t.exec("b").groups.a||"bc"!=="b".replace(t,"$c")})),wf=On,kf=Y,Ef=af,Bf=lf,xf=pf,Pf=go,Lf=Uo.get,_f=gf,Of=Sf,Af=qt("native-string-replace",String.prototype.replace),Vf=RegExp.prototype.exec,Cf=Vf,Df=kf("".charAt),Mf=kf("".indexOf),Tf=kf("".replace),If=kf("".slice),Rf=(rf=/b*/g,wf(Vf,nf=/a/,"a"),wf(Vf,rf,"a"),0!==nf.lastIndex||0!==rf.lastIndex),jf=xf.BROKEN_CARET,Nf=void 0!==/()??/.exec("")[1];(Rf||Nf||jf||_f||Of)&&(Cf=function(t){var e,n,r,o,i,s,a,u=this,l=Lf(u),c=Ef(t),d=l.raw;if(d)return d.lastIndex=u.lastIndex,e=wf(Cf,d,c),u.lastIndex=d.lastIndex,e;var h=l.groups,f=jf&&u.sticky,p=wf(Bf,u),v=u.source,y=0,g=c;if(f&&(p=Tf(p,"y",""),-1===Mf(p,"g")&&(p+="g"),g=If(c,u.lastIndex),u.lastIndex>0&&(!u.multiline||u.multiline&&"\n"!==Df(c,u.lastIndex-1))&&(v="(?: "+v+")",g=" "+g,y++),n=new RegExp("^(?:"+v+")",p)),Nf&&(n=new RegExp("^"+v+"$(?!\\s)",p)),Rf&&(r=u.lastIndex),o=wf(Vf,f?n:u,g),f?o?(o.input=If(o.input,y),o[0]=If(o[0],y),o.index=u.lastIndex,u.lastIndex+=o[0].length):u.lastIndex=0:Rf&&o&&(u.lastIndex=u.global?o.index+o[0].length:r),Nf&&o&&o.length>1&&wf(Af,o[0],n,(function(){for(i=1;i0||navigator.pointerEnabled&&navigator.maxTouchPoints>0)}},{key:"basic",value:function(){return t.canvas?t.webaudio||t.htmlAudio?null:"Browser does not support WebAudio or HTMLAudio":"Browser does not support canvas"}},{key:"test",value:function(e){var n=this.basic();if(n)return n;var r=e.features,o=e.ui,i=e.sizes;for(var s in r)if(!0===r[s]&&!t[s])return"Browser does not support "+s;if(!o.touch&&t.touch)return"Game does not support touch input";var a=Math.max(window.screen.width,window.screen.height);return!i.xsmall&&a<480?"Game doesn't support extra small screens":!i.small&&a<768?"Game doesn't support small screens":!i.medium&&a<992?"Game doesn't support medium screens":!i.large&&a<1200?"Game doesn't support large screens":!i.xlarge&&a>=1200?"Game doesn't support extra large screens":null}},{key:"info",get:function(){return"Browser Feature Detection\n\t\t\t\tCanvas support ".concat(t.canvas?"✓":"×","\n\t\t\t\tWebGL support ").concat(t.webgl?"✓":"×","\n\t\t\t\tWebAudio support ").concat(t.webAudio?"✓":"×")}}]),t}(),Ff=Y,Gf=Ot,Uf=af,Hf=wt,zf=Ff("".charAt),qf=Ff("".charCodeAt),Wf=Ff("".slice),Xf=function(t){return function(e,n){var r,o,i=Uf(Hf(e)),s=Gf(n),a=i.length;return s<0||s>=a?t?"":void 0:(r=qf(i,s))<55296||r>56319||s+1===a||(o=qf(i,s+1))<56320||o>57343?t?zf(i,s):r:t?Wf(i,s,s+2):o-56320+(r-55296<<10)+65536}},Yf={codeAt:Xf(!1),charAt:Xf(!0)}.charAt,Jf=af,$f=Uo,Qf=ya,Zf=ga,tp="String Iterator",ep=$f.set,np=$f.getterFor(tp);Qf(String,"String",(function(t){ep(this,{type:tp,string:Jf(t),index:0})}),(function(){var t,e=np(this),n=e.string,r=e.index;return r>=n.length?Zf(void 0,!0):(t=Yf(n,r),e.index+=t.length,Zf(t,!1))}));var rp=fn.filter;fs({target:"Array",proto:!0,forced:!bu("filter")},{filter:function(t){return rp(this,t,arguments.length>1?arguments[1]:void 0)}});var op=fs,ip=fn.find,sp=Po,ap="find",up=!0;function lp(t,e){return t(e={exports:{}},e.exports),e.exports}ap in[]&&Array(1)[ap]((function(){up=!1})),op({target:"Array",proto:!0,forced:up},{find:function(t){return ip(this,t,arguments.length>1?arguments[1]:void 0)}}),sp(ap);var cp=lp((function(t){function e(t){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function n(r){return"function"==typeof Symbol&&"symbol"===e(Symbol.iterator)?t.exports=n=function(t){return e(t)}:t.exports=n=function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":e(t)},n(r)}t.exports=n})),dp=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")};function hp(t,e){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:0;this._listeners[t]||(this._listeners[t]=[]),e._priority=parseInt(n)||0,-1===this._listeners[t].indexOf(e)&&(this._listeners[t].push(e),this._listeners[t].length>1&&this._listeners[t].sort(this.listenerSorter))}},{key:"listenerSorter",value:function(t,e){return t._priority-e._priority}},{key:"off",value:function(t,e){if(void 0!==this._listeners[t])if(void 0!==e){var n=this._listeners[t].indexOf(e);-11&&void 0!==arguments[1]?arguments[1]:{};if("string"==typeof t&&(t={type:t,data:"object"===cp(e)&&null!==e?e:{}}),void 0!==this._listeners[t.type])for(var n=this._listeners[t.type].length-1;n>=0;n--)this._listeners[t.type][n](t)}},{key:"destroy",value:function(){this._listeners={}}}]),t}(),vp=lp((function(t){var e=function(t){var e,n=Object.prototype,r=n.hasOwnProperty,o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",s=o.asyncIterator||"@@asyncIterator",a=o.toStringTag||"@@toStringTag";function u(t,e,n,r){var o=e&&e.prototype instanceof v?e:v,i=Object.create(o.prototype),s=new L(r||[]);return i._invoke=function(t,e,n){var r=c;return function(o,i){if(r===h)throw new Error("Generator is already running");if(r===f){if("throw"===o)throw i;return O()}for(n.method=o,n.arg=i;;){var s=n.delegate;if(s){var a=B(s,n);if(a){if(a===p)continue;return a}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(r===c)throw r=f,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r=h;var u=l(t,e,n);if("normal"===u.type){if(r=n.done?f:d,u.arg===p)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(r=f,n.method="throw",n.arg=u.arg)}}}(t,n,s),i}function l(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}t.wrap=u;var c="suspendedStart",d="suspendedYield",h="executing",f="completed",p={};function v(){}function y(){}function g(){}var m={};m[i]=function(){return this};var b=Object.getPrototypeOf,S=b&&b(b(_([])));S&&S!==n&&r.call(S,i)&&(m=S);var w=g.prototype=v.prototype=Object.create(m);function k(t){["next","throw","return"].forEach((function(e){t[e]=function(t){return this._invoke(e,t)}}))}function E(t){function e(n,o,i,s){var a=l(t[n],t,o);if("throw"!==a.type){var u=a.arg,c=u.value;return c&&"object"==typeof c&&r.call(c,"__await")?Promise.resolve(c.__await).then((function(t){e("next",t,i,s)}),(function(t){e("throw",t,i,s)})):Promise.resolve(c).then((function(t){u.value=t,i(u)}),(function(t){return e("throw",t,i,s)}))}s(a.arg)}var n;this._invoke=function(t,r){function o(){return new Promise((function(n,o){e(t,r,n,o)}))}return n=n?n.then(o,o):o()}}function B(t,n){var r=t.iterator[n.method];if(r===e){if(n.delegate=null,"throw"===n.method){if(t.iterator.return&&(n.method="return",n.arg=e,B(t,n),"throw"===n.method))return p;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return p}var o=l(r,t.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,p;var i=o.arg;return i?i.done?(n[t.resultName]=i.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,p):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,p)}function x(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function P(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function L(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(x,this),this.reset(!0)}function _(t){if(t){var n=t[i];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,s=function n(){for(;++o=0;--i){var s=this.tryEntries[i],a=s.completion;if("root"===s.tryLoc)return o("end");if(s.tryLoc<=this.prev){var u=r.call(s,"catchLoc"),l=r.call(s,"finallyLoc");if(u&&l){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),P(n),p}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var o=r.arg;P(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:_(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),p}},t}(t.exports);try{regeneratorRuntime=e}catch(t){Function("r","regeneratorRuntime = r")(e)}})),yp=function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t},gp=function(t,e){return!e||"object"!==cp(e)&&"function"!=typeof e?yp(t):e},mp=lp((function(t){function e(n){return t.exports=e=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},e(n)}t.exports=e})),bp=lp((function(t){function e(n,r,o){return"undefined"!=typeof Reflect&&Reflect.get?t.exports=e=Reflect.get:t.exports=e=function(t,e,n){var r=function(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==(t=mp(t)););return t}(t,e);if(r){var o=Object.getOwnPropertyDescriptor(r,e);return o.get?o.get.call(n):o.value}},e(n,r,o||n)}t.exports=e})),Sp=lp((function(t){function e(n,r){return t.exports=e=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},e(n,r)}t.exports=e})),wp=function(t){function e(){var t,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:100*Math.random()|0;return dp(this,e),(t=gp(this,mp(e).call(this))).id="BELLHOP:".concat(n),t.connected=!1,t.isChild=!0,t.connecting=!1,t.debug=!1,t.origin="*",t._sendLater=[],t.iframe=null,t.receive=t.receive.bind(yp(t)),t}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&Sp(t,e)}(e,pp),fp(e,[{key:"receive",value:function(t){if(this.target===t.source)if(this.logDebugMessage(!0,t),"connected"===t.data)this.onConnectionReceived(t.data);else{var e=t.data;if("string"==typeof e)try{e=JSON.parse(e)}catch(t){console.warn("Bellhop error: ",t)}this.connected&&"object"===cp(e)&&e.type&&this.trigger(e)}}},{key:"onConnectionReceived",value:function(t){if(this.connecting=!1,this.connected=!0,!this.isChild){if(!this.target)return;this.target.postMessage(t,this.origin)}for(var e=0;e1&&void 0!==arguments[1]?arguments[1]:"*";this.connecting||(this.disconnect(),this.connecting=!0,t instanceof HTMLIFrameElement&&(this.iframe=t),this.isChild=void 0===t,this.supported=!0,this.isChild&&(this.supported=window!=t),this.origin=e,window.addEventListener("message",this.receive),this.isChild&&(window===this.target?this.trigger("failed"):this.target.postMessage("connected",this.origin)))}},{key:"disconnect",value:function(){this.connected=!1,this.connecting=!1,this.origin=null,this.iframe=null,this.isChild=!0,this._sendLater.length=0,window.removeEventListener("message",this.receive)}},{key:"send",value:function(t){if("string"!=typeof t)throw"The event type must be a string";var e={type:t,data:arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}};this.logDebugMessage(!1,e),this.connecting?this._sendLater.push(e):this.target.postMessage(JSON.stringify(e),this.origin)}},{key:"fetch",value:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(!this.connecting&&!this.connected)throw"No connection, please call connect() first";this.on(t,(function t(r){o&&n.off(r.type,t),e(r)})),this.send(t,r)}},{key:"respond",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=this;this.on(t,(function t(o){return vp.async((function(i){for(;;)switch(i.prev=i.next){case 0:if(n&&r.off(o,t),"function"!=typeof e){i.next=10;break}return i.t0=r,i.t1=o.type,i.next=6,vp.awrap(e());case 6:i.t2=i.sent,i.t0.send.call(i.t0,i.t1,i.t2),i.next=11;break;case 10:r.send(o.type,e);case 11:case"end":return i.stop()}}))}))}},{key:"logDebugMessage",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=arguments.length>1?arguments[1]:void 0;this.debug&&"function"==typeof this.debug?this.debug({isChild:this.isChild,received:t,message:e}):this.debug&&console.log("Bellhop Instance (".concat(this.isChild?"Child":"Parent",") ").concat(t?"Receieved":"Sent"),e)}},{key:"destroy",value:function(){bp(mp(e.prototype),"destroy",this).call(this),this.disconnect(),this._sendLater.length=0}},{key:"target",get:function(){return this.isChild?window.parent:this.iframe.contentWindow}}]),e}(),kp=function(){function t(e){var n=e.plugins,r=void 0===n?[]:n;Wa(this,t),this.client=new wp,this.client.hidden=this.client.receive.bind(this.client),this.client.hiddenSend=this.client.send.bind(this.client),this.client.receive=function(t){this.hidden(t)}.bind(this.client),this.client.send=function(t,e){this.hiddenSend(t,e)}.bind(this.client),this.plugins=r}return Ya(t,[{key:"setupPlugins",value:function(){for(var t=this,e=[],n=function(n){if(!t.plugins[n].preload)return"continue";e.push(t.plugins[n].preload(t).catch(function(t){this.plugins[n].preloadFailed=!0,console.warn(this.plugins[n].name,"Preload Failed:",t)}.bind(t)))},r=0,o=this.plugins.length;r1&&void 0!==arguments[1]?arguments[1]:{},i=o.plugins,s=o.context,a=void 0===s?{}:s;if(Wa(this,r),(e=n.call(this,{plugins:i})).iframe=t instanceof HTMLIFrameElement?t:document.querySelector(t),null===e.iframe)throw new Error("No iframe was found with the provided selector");return e.loaded=!1,e.loading=!1,e.release=null,e._context=a,e.onLoading=e.onLoading.bind(Za(e)),e.onLoadDone=e.onLoadDone.bind(Za(e)),e.onLoadDone=e.onLoadDone.bind(Za(e)),e.onEndGame=e.onEndGame.bind(Za(e)),e.onLocalError=e.onLocalError.bind(Za(e)),e.initClient(),e.setupPlugins(),e}return Ya(r,[{key:"onLoading",value:function(){this.client.trigger("opening")}},{key:"onLoadDone",value:function(){this.loading=!1,this.loaded=!0,this.iframe.classList.remove("loading"),this.client.trigger("opened")}},{key:"onEndGame",value:function(){this.reset()}},{key:"onLocalError",value:function(t){console.error("SpringRoll Container error: ",t,(new Error).stack)}},{key:"reset",value:function(){(this.loaded||this.loading)&&this.client.trigger("closed"),this.loaded=!1,this.loading=!1,this.iframe.setAttribute("src",""),this.iframe.classList.remove("loading")}},{key:"initClient",value:function(){this.client.on("loading",this.onLoading),this.client.on("loaded",this.onLoadDone),this.client.on("loadDone",this.onLoadDone),this.client.on("endGame",this.onEndGame),this.client.on("localError",this.onLocalError),this.client.connect(this.iframe)}},{key:"_onCloseFailed",value:function(){this.reset()}},{key:"_internalOpen",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.singlePlay,r=void 0!==n&&n,o=e.playOptions,i=void 0===o?null:o,s={singlePlay:r,playOptions:i};this.reset(),this.loading=!0,this.initClient();var a=Kf.basic();a&&(console.error("ERROR:",a),this.client.trigger("unsupported"));var u=t;if(null!==s.playOptions){var l="playOptions="+encodeURIComponent(JSON.stringify(s.playOptions));u=-1===t.indexOf("?")?"".concat(t,"?").concat(l):"".concat(t,"&").concat(l)}this.iframe.classList.add("loading"),this.iframe.setAttribute("src",u),this.client.respond("singlePlay",r),this.client.respond("playOptions",i),this.client.trigger("open")}},{key:"openPath",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};"object"!==Ha(e)&&(console.warn("SpringRoll Container.openPath was passed a invalid options parameter. Using default parameters instead"),e={}),this._internalOpen(t,Object.assign({singlePlay:!1,playOptions:{}},e))}},{key:"openRemote",value:(e=qa(Ua().mark((function t(e){var n,r,o,i,s,a,u,l,c,d,h,f=arguments;return Ua().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=(n=f.length>1&&void 0!==f[1]?f[1]:{}).query,o=void 0===r?"":r,i=n.singlePlay,s=void 0!==i&&i,a=n.playOptions,u=void 0===a?null:a,this.release=null,t.next=4,fetch(e,{headers:{"Content-Type":"application/json"}});case 4:return l=t.sent,t.next=7,l.json();case 7:if((c=t.sent).success){t.next=10;break}throw new Error(c.error);case 10:if(d=c.data,!(h=Kf.test(d.capabilities))){t.next=15;break}throw this.client.trigger("unsupported",{error:h}),new Error(h);case 15:this.release=d,this._internalOpen(d.url+o,{singlePlay:s,playOptions:u});case 17:case"end":return t.stop()}}),t,this)}))),function(t){return e.apply(this,arguments)})},{key:"destroy",value:function(){this.reset(),this.iframe=null,this.options=null,this.release=null}},{key:"close",value:function(){this.loading||this.loaded?(this.client.trigger("close"),this.client.send("close")):this.reset()}},{key:"context",get:function(){return this._context},set:function(t){"object"===Ha(t)?this._context=t:console.error("[SpringRollContainer] Context: new context provided is not an object")}}],[{key:"version",get:function(){return"2.5.0"}}]),r}(kp),Bp=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){};Wa(this,t),this._onFocus=e,this._onBlur=n,this.onFocus=function(t){this.enabled&&this._onFocus(t)}.bind(this),this.onBlur=function(t){this.enabled&&this._onBlur(t)}.bind(this),this._enabled=!1,this.enabled=!0,this.onToggle=this.onToggle.bind(this)}return Ya(t,[{key:"destroy",value:function(){this.enabled=!1,this.onToggle=null,this.onFocus=null,this.onBlur=null}},{key:"onToggle",value:function(t){this.enabled&&(document.hidden?this.onBlur(t):this.onFocus(t))}},{key:"enabled",get:function(){return this._enabled},set:function(t){this._enabled=t,document.removeEventListener("visibilitychange",this.onToggle,!1),window.removeEventListener("blur",this.onBlur,!1),window.removeEventListener("focus",this.onFocus,!1),window.removeEventListener("pagehide",this.onBlur,!1),window.removeEventListener("pageshow",this.onFocus,!1),window.removeEventListener("visibilitychange",this.onToggle,!1),this._enabled&&(document.addEventListener("visibilitychange",this.onToggle,!1),window.addEventListener("blur",this.onBlur,!1),window.addEventListener("focus",this.onFocus,!1),window.addEventListener("pagehide",this.onBlur,!1),window.addEventListener("pageshow",this.onFocus,!1),window.addEventListener("visibilitychange",this.onToggle,!1))}}]),t}(),xp=Mr.includes,Pp=Po;fs({target:"Array",proto:!0,forced:U((function(){return!Array(1).includes()}))},{includes:function(t){return xp(this,t,arguments.length>1?arguments[1]:void 0)}}),Pp("includes");var Lp="\t\n\v\f\r                 \u2028\u2029\ufeff",_p=wt,Op=af,Ap=Lp,Vp=Y("".replace),Cp=RegExp("^["+Ap+"]+"),Dp=RegExp("(^|[^"+Ap+"])["+Ap+"]+$"),Mp=function(t){return function(e){var n=Op(_p(e));return 1&t&&(n=Vp(n,Cp,"")),2&t&&(n=Vp(n,Dp,"$1")),n}},Tp={start:Mp(1),end:Mp(2),trim:Mp(3)},Ip=ci.PROPER,Rp=U,jp=Lp,Np=Tp.trim;fs({target:"String",proto:!0,forced:function(t){return Rp((function(){return!!jp[t]()||"​…᠎"!=="​…᠎"[t]()||Ip&&jp[t].name!==t}))}("trim")},{trim:function(){return Np(this)}});var Kp=On,Fp=Yt,Gp=An,Up=lf,Hp=RegExp.prototype,zp=ci.PROPER,qp=Di,Wp=Pn,Xp=af,Yp=U,Jp=function(t){var e=t.flags;return void 0!==e||"flags"in Hp||Fp(t,"flags")||!Gp(Hp,t)?e:Kp(Up,t)},$p="toString",Qp=RegExp.prototype[$p],Zp=Yp((function(){return"/a/b"!=Qp.call({source:"a",flags:"b"})})),tv=zp&&Qp.name!=$p;(Zp||tv)&&qp(RegExp.prototype,$p,(function(){var t=Wp(this);return"/"+Xp(t.source)+"/"+Xp(Jp(t))}),{unsafe:!0});var ev=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";Wa(this,t),this.db=null,this.dbName=e}return Ya(t,[{key:"IDBOpen",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=arguments.length>4?arguments[4]:void 0,s=n?indexedDB.open(t,n):indexedDB.open(t);s.onsuccess=function(t){e.db=t.target.result,e.db.version==n|null==n&&i({result:"Success: IDBOpen",success:!0})},s.onerror=function(){i({result:s.error.toString(),success:!1})},s.onupgradeneeded=function(t){e.db=t.target.result,null!=r&&(r.stores&&r.stores.forEach((function(t){e.db.createObjectStore(t.storeName,t.options)})),null!=r.indexes&&r.indexes.forEach((function(t){s.transaction.objectStore(t.storeName).createIndex(t.indexName,t.keyPath,t.options)}))),null!=o&&(null!=o.indexes&&o.indexes.forEach((function(t){s.transaction.objectStore(t.storeName).deleteIndex(t.indexName)})),o.stores&&o.stores.forEach((function(t){e.db.deleteObjectStore(t.storeName)}))),i({result:"Success: IDBOpen onupgradeneeded ran",success:!0})}}},{key:"IDBDeleteDB",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=null!=e?indexedDB.deleteDatabase(t,e):indexedDB.deleteDatabase(t);r.onsuccess=function(t){n({result:"Success: Database Deleted, returned: "+t.result,success:!0})},r.onerror=function(){n({result:r.error.toString(),success:!1})}}},{key:"IDBAdd",value:function(t,e,n,r){this.db||""==this.dbName||this.IDBOpen(this.dbName);var o=this.db.transaction(t,"readwrite");o.onerror=function(){return r({result:null!=o.error?o.error.toString():"Aborted: No error given, was the record already added?",success:!1})},o.onabort=function(){return r({result:null!=o.error?o.error.toString():"Aborted: No error given, was the record already added?",success:!1})},o.oncomplete=function(){return r({result:"Success: Record Added",success:!0})},o.objectStore(t).add(e,n)}},{key:"IDBUpdate",value:function(t,e,n,r){this.db||""==this.dbName||this.IDBOpen(this.dbName);var o=this.db.transaction(t,"readwrite").objectStore(t).put(n,e);o.onsuccess=function(){r({result:"Success: Record Updated",success:!0})},o.onerror=function(){return r({result:o.error.toString(),success:!1})}}},{key:"IDBRemove",value:function(t,e,n){var r=this;this.db||""==this.dbName||this.IDBOpen(this.dbName);var o=this.db.transaction(t,"readwrite");o.onerror=function(){return n({result:r.db.error.toString(),success:!1})},o.objectStore(t).delete(e),o.oncomplete=function(){return n({result:"Removed Successfully",success:!0})}}},{key:"IDBRead",value:function(t,e,n){var r=this,o=this.db.transaction(t,"readonly"),i=o.objectStore(t);o.onerror=function(){return n({result:r.db.error.toString(),success:!1})};var s=i.get(e);s.onsuccess=function(){n({result:s.result,success:null!=s.result})}}},{key:"IDBGetIndexKeys",value:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},s=this.db.transaction(t,"readonly"),a=s.objectStore(t);s.onerror=function(){return i({result:n.db.error.toString(),success:!1})},(r&&o?a.index(e,r,o):r?a.index(e,r):a.index(e)).getAllKeys().onsuccess=function(t){i({result:t.result,success:!0})}}},{key:"IDBReadAll",value:function(t,e,n){var r=this.db.transaction(t,"readonly"),o=r.objectStore(t),i=null!=e?o.getAll(null,e):o.getAll();r.onerror=function(){return n({result:r.error.toString(),success:!1})},i.onsuccess=function(){n({result:i.result,success:null!=i.result})}}},{key:"IDBGetVersion",value:function(t,e){var n=window.indexedDB.open(t);n.onerror=function(){e({result:n.error.toString(),success:!1})},n.onsuccess=function(){var t=n.result;e({result:t.version,success:!0})}}},{key:"IDBClose",value:function(t){this.db&&(this.db.close(),t({result:"Success: Closed Database Connection",success:!0}))}}],[{key:"remove",value:function(t){localStorage.removeItem(t),sessionStorage.removeItem(t)}},{key:"write",value:function(t,e){return arguments.length>2&&void 0!==arguments[2]&&arguments[2]?sessionStorage.setItem(t,JSON.stringify("function"==typeof e?e():e)):localStorage.setItem(t,JSON.stringify("function"==typeof e?e():e))}},{key:"read",value:function(t){var e=localStorage.getItem(t)||sessionStorage.getItem(t);if("string"!=typeof e)return e;try{return JSON.parse(e)}catch(t){return e}}}]),t}(),nv=function(){function t(e){Wa(this,t),this.name=e,this.client=null}var e;return Ya(t,[{key:"preload",value:(e=qa(Ua().mark((function t(e){var n;return Ua().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:n=e.client,this.client=n;case 2:case"end":return t.stop()}}),t,this)}))),function(t){return e.apply(this,arguments)})},{key:"start",value:function(){this.client.on("loaded",this.sendAllProperties),this.client.on("loadDone",this.sendAllProperties)}},{key:"init",value:function(t){}},{key:"sendProperty",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];ev.write(t,e),n||this.client.send(t,e)}},{key:"sendAllProperties",value:function(t){}},{key:"warn",value:function(t){console.warn("[SpringRollContainer] ".concat(this.name,": ").concat(t))}}]),t}(),rv=function(t){Ja(n,t);var e=eu(n);function n(t){var r;return Wa(this,n),(r=e.call(this,t)).sendMutes=!1,r}return Ya(n,[{key:"init",value:function(t){this.sendMutes=!0}},{key:"_disableButton",value:function(t){t instanceof HTMLButtonElement&&(t.classList.remove("enabled"),t.classList.add("disabled"))}},{key:"reset",value:function(){this.sendMutes=!1}},{key:"_setMuteProp",value:function(t,e,n){var r=this,o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];console.log("_setmuteprop",t,n,o),Array.isArray(e)?e.forEach((function(t){return r.changeMutedState(t,n)})):this.changeMutedState(e,n),this.sendProperty(t,n,o)}},{key:"changeMutedState",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=t.button?t.button:t;n instanceof HTMLElement&&(n.classList.remove("unmuted"),n.classList.remove("muted"),n.classList.add(e?"muted":"unmuted"))}}]),n}(nv),ov=T,iv=Z,sv=we("match"),av=function(t){var e;return ov(t)&&(void 0!==(e=t[sv])?!!e:"RegExp"==iv(t))},uv=TypeError,lv=we("match"),cv=fs,dv=function(t){if(av(t))throw uv("The method doesn't accept regular expressions");return t},hv=wt,fv=af,pv=function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[lv]=!1,"/./"[t](e)}catch(t){}}return!1},vv=Y("".indexOf);cv({target:"String",proto:!0,forced:!pv("includes")},{includes:function(t){return!!~vv(fv(hv(this)),fv(dv(t)),arguments.length>1?arguments[1]:void 0)}});var yv={exports:{}},gv={},mv=Or,bv=Dt,Sv=vu,wv=Array,kv=Math.max,Ev=Z,Bv=Br,xv=Mi.f,Pv=function(t,e,n){for(var r=bv(t),o=mv(e,r),i=mv(void 0===n?r:n,r),s=wv(kv(i-o,0)),a=0;o1?arguments[1]:void 0);e=e?e.next:n.first;)for(r(e.value,e.key,this);e&&e.removed;)e=e.previous},has:function(t){return!!u(this,t)}}),Sy(i,n?{get:function(t){var e=u(this,t);return e&&e.value},set:function(t,e){return a(this,0===t?0:t,e)}}:{add:function(t){return a(this,t=0===t?0:t,t)}}),_y&&by(i,"size",{configurable:!0,get:function(){return s(this).size}}),o},setStrong:function(t,e,n){var r=e+" Iterator",o=Vy(e),i=Vy(r);xy(t,e,(function(t,e){Ay(this,{type:r,target:t,state:o(t),kind:e,last:void 0})}),(function(){for(var t=i(this),e=t.kind,n=t.last;n&&n.removed;)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?Py("keys"==e?n.key:"values"==e?n.value:[n.key,n.value],!1):(t.target=void 0,Py(void 0,!0))}),n?"entries":"values",!n,!0),Ly(e)}};(function(t,e,n){var r=-1!==t.indexOf("Map"),o=-1!==t.indexOf("Weak"),i=r?"set":"add",s=ry[t],a=s&&s.prototype,u=s,l={},c=function(t){var e=oy(a[t]);sy(a,t,"add"==t?function(t){return e(this,0===t?0:t),this}:"delete"==t?function(t){return!(o&&!hy(t))&&e(this,0===t?0:t)}:"get"==t?function(t){return o&&!hy(t)?void 0:e(this,0===t?0:t)}:"has"==t?function(t){return!(o&&!hy(t))&&e(this,0===t?0:t)}:function(t,n){return e(this,0===t?0:t,n),this})};if(iy(t,!cy(s)||!(o||a.forEach&&!fy((function(){(new s).entries().next()})))))u=n.getConstructor(e,t,r,i),ay.enable();else if(iy(t,!0)){var d=new u,h=d[i](o?{}:-0,1)!=d,f=fy((function(){d.has(1)})),p=py((function(t){new s(t)})),v=!o&&fy((function(){for(var t=new s,e=5;e--;)t[i](e,e);return!t.has(-0)}));p||((u=e((function(t,e){ly(t,a);var n=yy(new s,t,u);return dy(e)||uy(e,n[i],{that:n,AS_ENTRIES:r}),n}))).prototype=a,a.constructor=u),(f||v)&&(c("delete"),c("has"),r&&c("get")),(v||h)&&c(i),o&&a.clear&&delete a.clear}l[t]=u,ny({global:!0,constructor:!0,forced:u!=s},l),vy(u,t),o||n.setStrong(u,t,r)})("Set",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),Cy);var Dy=Bt,My=zr;fs({target:"Object",stat:!0,forced:U((function(){My(1)}))},{keys:function(t){return My(Dy(t))}});var Ty=fn.map;fs({target:"Array",proto:!0,forced:!bu("map")},{map:function(t){return Ty(this,t,arguments.length>1?arguments[1]:void 0)}});var Iy=mn,Ry=Y,jy=zr,Ny=Br,Ky=Ry(zo.f),Fy=Ry([].push),Gy=function(t){return function(e){for(var n,r=Ny(e),o=jy(r),i=o.length,s=0,a=[];i>s;)n=o[s++],Iy&&!Ky(r,n)||Fy(a,t?[n,r[n]]:r[n]);return a}},Uy={entries:Gy(!0),values:Gy(!1)}.values;fs({target:"Object",stat:!0},{values:function(t){return Uy(t)}});var Hy=function(t){Ja(n,t);var e=eu(n);function n(t){var r,o=t.selector,i=t.controlName,s=t.featureName,a=void 0===s?"captionStyles":s,u=t.defaultValue,l=t.pluginName;return Wa(this,n),(r=e.call(this,l)).controlName=i,r.featureName=a,r.radioElements=document.querySelectorAll(o),r.defaultValue=u,r.radioGroup={},r.radioElements.length<=0?(r.warn("".concat(r.controlName," RadioGroup found no HTMLElements with selector: ").concat(o)),tu(r)):(r.radioElements.forEach((function(t){"radio"===t.type?(t.value=t.value.toLowerCase(),r.radioGroup[t.value]=t):r.warn("".concat(r.controlName," was provided a non Radio Button element with selector: ").concat(o))})),r.radioGroup[r.defaultValue]||(r.warn("".concat(r.controlName," RadioGroup for selector: ").concat(o," does not have a radio button with value ").concat(r.defaultValue," to use as default value. Using first element as default")),r.defaultValue=r.radioElements[0].value.toLowerCase()),r.radioGroup[r.defaultValue].checked=!0,r)}return Ya(n,[{key:"hasOnly",value:function(t){for(var e in this.radioGroup)if(!t.includes(this.radioGroup[e].value))return this.warn("".concat(this.controlName," radio button value: ").concat(this.radioGroup[e].value," is not an accepted value. Skipping radio group")),!1;return!0}},{key:"hasDuplicateValues",value:function(){return this.values.length!==nu(new Set(this.values)).length}},{key:"enableRadioEvents",value:function(t){if(!(!this.radioGroup.length<=0)){var e=t;for(var n in this.radioGroup)this.radioGroup[n].addEventListener("change",e)}}},{key:"disableRadioEvents",value:function(t){if(!(!this.radioGroup.length<=0))for(var e in this.radioGroup)this.radioGroup[e].removeEventListener("change",t)}},{key:"displayRadios",value:function(t){if(this.radioGroup.length<=0&&t[this.featureName])this.warn("".concat(this.controlName," was not provided a valid input element or selector but '").concat(this.featureName,"' was included as a game feature"));else if(!(this.radioGroup.length<=0||t[this.featureName]))for(var e in this.radioGroup)this.radioGroup[e].style.display="none"}},{key:"resetState",value:function(){this.radioGroup[this.defaultValue].checked=!0}},{key:"length",get:function(){return Object.keys(this.radioGroup).length}},{key:"values",get:function(){return Object.values(this.radioGroup).map((function(t){return t.value}))}}]),n}(nv),zy=function(t){Ja(n,t);var e=eu(n);function n(t,r,o){var i,s=o.supportedValues,a=o.initialValue,u=o.controlName,l=o.featureName,c=o.radioCount;return Wa(this,n),(i=e.call(this,r)).selectors=t?t.split(","):[],i.supportedValues=s,i.initialValue=s.includes(a)?a:s[0],i.controlName=u,i.featureName=l,i.radioCount=c,i.sendAllProperties=i.sendAllProperties.bind(Za(i)),i._currentValue=i.initialValue,i.radioGroups=i.setUpRadios(i.selectors),i.radioGroupsLength=i.radioGroups.length,i}return Ya(n,[{key:"setUpRadios",value:function(t){var e=this,n=[];return t.forEach((function(t){var r=new Hy({selector:t.trim(),controlName:e.controlName,defaultValue:e.initialValue,pluginName:e.name,featureName:e.featureName});r.length===e.radioCount?r.hasOnly(e.supportedValues)&&(r.hasDuplicateValues()?e.warn("Duplicate radio button values detected (values: ".concat(r.values," ). Skipping radio group")):n.push(r)):e.warn('Selector "'.concat(t,'" did not find exactly ').concat(e.radioCount," radio buttons for ").concat(e.controlName,". Skipping selector"))})),n}},{key:"start",value:function(){this.client.on("loaded",this.sendAllProperties),this.client.on("loadDone",this.sendAllProperties)}},{key:"sendAllProperties",value:function(){this.sendProperty(this.featureName,this.property)}},{key:"currentValue",get:function(){return this._currentValue},set:function(t){if(this.supportedValues.includes(t)){this._currentValue=t;for(var e=0,n=this.radioGroups.length;e2)if(l=lg(l),43===(e=vg(l,0))||45===e){if(88===(n=vg(l,2))||120===n)return NaN}else if(48===e){switch(vg(l,1)){case 66:case 98:r=2,o=49;break;case 79:case 111:r=8,o=55;break;default:return+l}for(s=(i=pg(l,2)).length,a=0;ao)return NaN;return parseInt(i,r)}return+l},gg=Qy(cg,!dg(" 0o1")||!dg("0b1")||dg("+0x1")),mg=function(t){var e,n=arguments.length<1?0:dg(function(t){var e=rg(t,"number");return"bigint"==typeof e?e:yg(e)}(t));return eg(hg,e=this)&&og((function(){ug(e)}))?tg(Object(n),this,mg):n};mg.prototype=hg,gg&&(hg.constructor=mg),Wy({global:!0,constructor:!0,wrap:!0,forced:gg},{Number:mg});gg&&function(t,e){for(var n,r=Xy?ig(e):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,fromString,range".split(","),o=0;r.length>o;o++)Zy(e,n=r[o])&&!Zy(t,n)&&ag(t,n,sg(e,n))}(Jy[cg],dg);var bg=function(){function t(e){var n=e.slider,r=e.control,o=e.min,i=void 0===o?0:o,s=e.max,a=void 0===s?1:s,u=e.step,l=void 0===u?.1:u,c=e.defaultValue,d=void 0===c?1:c;Wa(this,t),this.min=i,this.max=a,this.step=l,this.sliderValue=d,this.control=r,this.slider=this.setUpSlider(n,r)}return Ya(t,[{key:"setUpSlider",value:function(t,e){if("string"==typeof t&&(t=document.querySelector(t)),!t||"range"!==t.type)return null;var n=ev.read(e);return t.min=this.min,t.max=this.max,t.step=this.step,(n||0===n)&&n.toString().trim().length>0?(t.value=n,this.sliderValue=n):t.value=this.sliderValue,t}},{key:"sliderRange",value:function(t){return tthis.max?this.max:t}},{key:"enableSliderEvents",value:function(t){if(this.slider){var e=t;this.slider.addEventListener("change",e),this.slider.addEventListener("input",e)}}},{key:"disableSliderEvents",value:function(t){if(this.slider){var e=t;this.slider.removeEventListener("change",e),this.slider.removeEventListener("input",e)}}},{key:"displaySlider",value:function(t){!this.slider&&t[this.control]&&console.warn("".concat(this.control," was not provided a valid input element or selector but was included as a game feature")),this.slider&&(this.slider.style.display=t[this.control]?"":"none")}},{key:"dispatchEvent",value:function(t){this.slider.dispatchEvent(t)}},{key:"value",get:function(){return this.slider.value},set:function(t){this.slider.value=t}}]),t}(),Sg=function(){function t(e){var n=e.button,r=e.onClick,o=e.channel;Wa(this,t),this.button=n instanceof HTMLElement?n:document.querySelector(n),this.onClick=r,this.channel=o,this.button&&this.button.addEventListener("click",r)}return Ya(t,[{key:"displayButton",value:function(t){this.button instanceof HTMLElement&&(this.button.style.display=t[this.channel]||"pause"===this.channel||"hints"===this.channel?"":"none")}},{key:"enableButton",value:function(){this.button&&this.button.classList.remove("disabled")}},{key:"addClass",value:function(t){this.button.className=this.button.className?this.button.className+" ".concat(t):" ".concat(t)}}]),t}(),wg=function(t){Ja(n,t);var e=eu(n);function n(t,r,o){var i,s=o.defaultValue,a=void 0===s?"0.5":s,u=o.minValue,l=void 0===u?"0":u,c=o.maxValue,d=void 0===c?"1":c,h=o.featureName;return Wa(this,n),(i=e.call(this,r)).featureName=h,i.minValue=l,i.defaultValue=a,i.maxValue=d,i._currentValue=a,i.sliders=i.setUpSliders(t),i.slidersLength=i.sliders.length,i.sendAllProperties=i.sendAllProperties.bind(Za(i)),0>=i.slidersLength?(i.warn("Plugin was not provided any valid HTML Elements"),tu(i)):i}return Ya(n,[{key:"setUpSliders",value:function(t){var e=this,n=[];return t instanceof HTMLElement?n.push(new bg({slider:t,control:this.featureName,defaultValue:this.defaultValue,minValue:this.minValue,maxValue:this.maxValue})):document.querySelectorAll(t).forEach((function(t){n.push(new bg({slider:t,control:e.featureName,defaultValue:e.defaultValue,minValue:e.minValue,maxValue:e.maxValue}))})),n}},{key:"init",value:function(){this.client.on("features",function(t){if(t.data)for(var e=0;e3&&void 0!==arguments[3]?arguments[3]:{},a=s.defaultFontSize,u=void 0===a?"medium":a,l=s.defaultColor,c=void 0===l?"default":l,d=s.defaultAlignment,h=void 0===d?"top":d;if(Wa(this,n),(i=e.call(this,"Caption-Style-Plugin")).sendAllProperties=i.sendAllProperties.bind(Za(i)),i.captionsStyles=Object.assign({},kg,ev.read(n.captionStyleKey)||{}),i.fontSizeSelectors=t?t.split(","):[],i.colorSelectors=r?r.split(","):[],i.alignmentSelectors=o?o.split(","):[],i.defaultFontSize=xg.includes(u)?u:xg[0],i.defaultColor=Pg.includes(c)?c:Pg[0],i.defaultAlignment=Lg.includes(h)?h:Lg[0],i.fontSizeRadios=[],i.colorRadios=[],i.alignmentRadios=[],i.fontSizeRadios=i.setUpFontSizeRadios(i.fontSizeSelectors),i.colorRadios=i.setUpColorRadios(i.colorSelectors),i.alignmentRadios=i.setUpAlignmentRadios(i.alignmentSelectors),i._captionsMuted=!1,i.alignmentRadiosLength=i.alignmentRadios.length,i.fontSizeRadiosLength=i.fontSizeRadios.length,i.colorRadiosLength=i.colorRadios.length,0>=i.alignmentRadiosLength+i.fontSizeRadiosLength+i.colorRadiosLength)return i.warn("Plugin was not provided any input elements"),tu(i);for(var f=0;f0&&void 0!==arguments[0]?arguments[0]:kg,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";"object"===Ha(e)?Object.assign(this.captionsStyles,e):"string"==typeof e&&(this.captionsStyles[e]=r),this.colorRadios.forEach((function(e){var n="white"===t.captionsStyles.color?"default":"inverted";e.radioGroup[n].checked=!0})),this.alignmentRadios.forEach((function(e){e.radioGroup[t.captionsStyles.align].checked=!0})),this.fontSizeRadios.forEach((function(e){e.radioGroup[t.captionsStyles.size].checked=!0})),ev.write(n.captionStyleKey,this.captionsStyles),this.client&&this.client.send(n.captionStyleKey,this.captionsStyles)}},{key:"radios",get:function(){return this.colorRadios.concat(this.alignmentRadios).concat(this.fontSizeRadios)}}],[{key:"captionStyleKey",get:function(){return"captionsStyles"}}]),n}(rv),Og=function(t){Ja(n,t);var e=eu(n);function n(t){var r;return Wa(this,n),(r=e.call(this,"Caption-Button-Plugin")).sendAllProperties=r.sendAllProperties.bind(Za(r)),r._captionsButtons=[],t instanceof HTMLElement?r._captionsButtons[0]=new Sg({button:t,onClick:r.captionsButtonClick.bind(Za(r)),channel:"captions"}):document.querySelectorAll(t).forEach((function(t){r._captionsButtons.push(new Sg({button:t,onClick:r.captionsButtonClick.bind(Za(r)),channel:"captions"}))})),r._captionsMuted=!1,r.captionsButtonLength=r._captionsButtons.length,0>=r.captionsButtonLength?(r.warn("Plugin was not provided any valid button or input elements"),tu(r)):r}return Ya(n,[{key:"init",value:function(){this.client.on("features",function(t){for(var e=0;e1&&void 0!==arguments[1])||arguments[1];Wa(this,n),(r=e.call(this,"Pause-Button-plugin"))._manageOwnVisibility=o,r._appBlurred=!1,r._containerBlurred=!1,r._focusTimer=null,r._isManualPause=!1,r._keepFocus=!1,r._paused=!1,r.iframe=null,r.focusApp=r.focusApp.bind(Za(r)),r.manageFocus=r.manageFocus.bind(Za(r)),r.onKeepFocus=r.onKeepFocus.bind(Za(r)),r.onFocus=r.onFocus.bind(Za(r));var i=r.onPauseToggle.bind(Za(r));return r.pauseDisabled=!1,r._pauseButton=[],r.pageVisibility=new Bp(r.onContainerFocus.bind(Za(r)),r.onContainerBlur.bind(Za(r))),r.pageVisibility.enabled=r.manageOwnVisibility,t instanceof HTMLElement?r._pauseButton[0]=new Sg({button:t,onClick:i,channel:n.pauseKey}):document.querySelectorAll(t).forEach((function(t){r._pauseButton.push(new Sg({button:t,onClick:i,channel:n.pauseKey}))})),r}return Ya(n,[{key:"pause",get:function(){return this._paused},set:function(t){if(t=!!t,!this.pauseDisabled){this._paused=t,this.client.send(n.pauseKey,t),this.client.trigger(t?"paused":"resumed",{paused:t});for(var e=0,r=this._pauseButton.length;e0&&void 0!==arguments[0]?arguments[0]:{},o=e.soundButtons,i=e.musicButtons,s=e.sfxButtons,a=e.voButtons,u=e.soundSliders,l=e.musicSliders,c=e.sfxSliders,d=e.voSliders;Wa(this,r),t=n.call(this,"Sound-Button-Plugin");var h=ev.read(r.soundMutedKey);if(t.sendAllProperties=t.sendAllProperties.bind(Za(t)),t._soundMuted=h||!1,t._musicMuted=!1,t._voMuted=!1,t._sfxMuted=!1,t._musicMutedByUser=!1,t._soundMutedByUser=!1,t._sfxMutedByUser=!1,t._voMutedByUser=!1,t.soundMuteEnabled=!1,t.musicMuteEnabled=!1,t.sfxMuteEnabled=!1,t.voMuteEnabled=!1,t.soundVolume=1,t.musicVolume=1,t.sfxVolume=1,t.voVolume=1,t.soundSliders=[],t.musicSliders=[],t.sfxSliders=[],t.voSliders=[],t.soundButtons=[],t.musicButtons=[],t.sfxButtons=[],t.voButtons=[],u instanceof HTMLElement?t.soundSliders[0]=new bg({slider:u,control:r.soundVolumeKey,defaultValue:t.soundVolume}):document.querySelectorAll(u).forEach((function(e){var n=new bg({slider:e,control:r.soundVolumeKey,defaultValue:t.soundVolume});n.slider&&t.soundSliders.push(n)})),l instanceof HTMLElement?t.musicSliders[0]=new bg({slider:l,control:r.musicVolumeKey,defaultValue:t.musicVolume}):document.querySelectorAll(l).forEach((function(e){var n=new bg({slider:e,control:r.musicVolumeKey,defaultValue:t.musicVolume});n.slider&&t.musicSliders.push(n)})),c instanceof HTMLElement?t.sfxSliders[0]=new bg({slider:c,control:r.sfxVolumeKey,defaultValue:t.sfxVolume}):document.querySelectorAll(c).forEach((function(e){var n=new bg({slider:e,control:r.sfxVolumeKey,defaultValue:t.sfxVolume});n.slider&&t.sfxSliders.push(n)})),d instanceof HTMLElement?t.voSliders[0]=new bg({slider:d,control:r.voVolumeKey,defaultValue:t.voVolume}):document.querySelectorAll(d).forEach((function(e){var n=new bg({slider:e,control:r.voVolumeKey,defaultValue:t.voVolume});n.slider&&t.voSliders.push(n)})),o instanceof HTMLElement?t.soundButtons[0]=new Sg({button:o,onClick:t.onSoundToggle.bind(Za(t)),channel:r.soundKey}):document.querySelectorAll(o).forEach((function(e){t.soundButtons.push(new Sg({button:e,onClick:t.onSoundToggle.bind(Za(t)),channel:r.soundKey}))})),i instanceof HTMLElement?t.musicButtons[0]=new Sg({button:i,onClick:t.onMusicToggle.bind(Za(t)),channel:"music"}):document.querySelectorAll(i).forEach((function(e){t.musicButtons.push(new Sg({button:e,onClick:t.onMusicToggle.bind(Za(t)),channel:"music"}))})),s instanceof HTMLElement?t.sfxButtons[0]=new Sg({button:s,onClick:t.onSFXToggle.bind(Za(t)),channel:"sfx"}):document.querySelectorAll(s).forEach((function(e){t.sfxButtons.push(new Sg({button:e,onClick:t.onSFXToggle.bind(Za(t)),channel:"sfx"}))})),a instanceof HTMLElement?t.voButtons[0]=new Sg({button:a,onClick:t.onVOToggle.bind(Za(t)),channel:"vo"}):document.querySelectorAll(a).forEach((function(e){t.voButtons.push(new Sg({button:e,onClick:t.onVOToggle.bind(Za(t)),channel:"vo"}))})),t.soundSlidersLength=t.soundSliders.length,t.musicSlidersLength=t.musicSliders.length,t.sfxSlidersLength=t.sfxSliders.length,t.voSlidersLength=t.voSliders.length,t.soundButtonsLength=t.soundButtons.length,t.musicButtonsLength=t.musicButtons.length,t.sfxButtonsLength=t.sfxButtons.length,t.voButtonsLength=t.voButtons.length,0>=t.soundSlidersLength+t.musicSlidersLength+t.sfxSlidersLength+t.voSlidersLength+t.soundButtonsLength+t.musicButtonsLength+t.sfxButtonsLength+t.voButtonsLength)return t.warn("Plugin was not provided any valid HTML Elements"),tu(t);for(var f=0;f3&&void 0!==arguments[3]&&arguments[3];this["_"+t]=e,this._setMuteProp(t,n,e,r)}},{key:"preload",value:(e=qa(Ua().mark((function t(e){var n;return Ua().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:n=e.client,this.client=n,this.client.on("features",function(t){if(t.data){this.soundMutedEnabled=!!t.data.sound,this.musicMutedEnabled=!!t.data.music,this.sfxMutedEnabled=!!t.data.sfx,this.voMutedEnabled=!!t.data.vo,this.soundVolumeEnabled=!!t.data.soundVolume,this.musicVolumeEnabled=!!t.data.musicVolume,this.sfxVolumeEnabled=!!t.data.sfxVolume,this.voVolumeEnabled=!!t.data.voVolume;for(var e=0;e0&&this.sendProperty(r.soundVolumeKey,this.soundVolume),this.musicVolumeEnabled&&this.musicSlidersLength>0&&this.sendProperty(r.musicVolumeKey,this.musicVolume),this.voVolumeEnabled&&this.voSlidersLength>0&&this.sendProperty(r.voVolumeKey,this.voVolume),this.sfxVolumeEnabled&&this.sfxSlidersLength>0&&this.sendProperty(r.sfxVolumeKey,this.sfxVolume),this.soundButtonsLength>0&&this.soundMuteEnabled&&(this.soundMuted||!this.soundVolumeEnabled)&&this.sendProperty(r.soundMutedKey,this.soundMuted),this.musicButtonsLength>0&&this.musicMuteEnabled&&(this.musicMuted||!this.musicVolumeEnabled)&&this.sendProperty(r.musicMutedKey,this.musicMuted),this.voButtonsLength>0&&this.voMuteEnabled&&(this.voMuted||!this.voVolumeEnabled)&&this.sendProperty(r.voMutedKey,this.voMuted),this.sfxButtonsLength>0&&this.sfxMuteEnabled&&(this.sfxMuted||!this.sfxVolumeEnabled)&&this.sendProperty(r.sfxMutedKey,this.sfxMuted)}},{key:"soundMuted",get:function(){return this._soundMuted},set:function(t){if(t!==this.soundMuted){var e=!1;this.soundVolumeEnabled&&!t&&(this.sendProperty(r.soundVolumeKey,this.soundVolume),e=!0),this.setMuteProp("soundMuted",t,this.soundButtons,e)}else this.setMuteProp("soundMuted",t,this.soundButtons,!0)}},{key:"voMuted",get:function(){return this._voMuted},set:function(t){var e=!1;this.voMuted!==t?(this.voVolumeEnabled&&!t&&(this.sendProperty(r.voVolumeKey,this.voVolume),e=!0),this.setMuteProp("voMuted",t,this.voButtons,e)):this.setMuteProp("voMuted",t,this.voButtons,!0)}},{key:"musicMuted",get:function(){return this._musicMuted},set:function(t){if(this.musicMuted!==t){var e=!1;this.musicVolumeEnabled&&!t&&(this.sendProperty(r.musicVolumeKey,this.musicVolume),e=!0),this.setMuteProp("musicMuted",t,this.musicButtons,e)}else this.setMuteProp("musicMuted",t,this.musicButtons,!0)}},{key:"sfxMuted",get:function(){return this._sfxMuted},set:function(t){if(this.sfxMuted!==t){var e=!1;this.sfxVolumeEnabled&&!t&&(this.sendProperty(r.sfxVolumeKey,this.sfxVolume),e=!0),this.setMuteProp("sfxMuted",t,this.sfxButtons,e)}else this.setMuteProp("sfxMuted",t,this.sfxButtons,!0)}},{key:"soundButton",get:function(){return this._soundButton.button}},{key:"musicButton",get:function(){return this._musicButton.button}},{key:"sfxButton",get:function(){return this._sfxButton.button}},{key:"voButton",get:function(){return this._voButton.button}}],[{key:"soundMutedKey",get:function(){return"soundMuted"}},{key:"voMutedKey",get:function(){return"voMuted"}},{key:"musicMutedKey",get:function(){return"musicMuted"}},{key:"sfxMutedKey",get:function(){return"sfxMuted"}},{key:"soundVolumeKey",get:function(){return"soundVolume"}},{key:"sfxVolumeKey",get:function(){return"sfxVolume"}},{key:"voVolumeKey",get:function(){return"voVolume"}},{key:"musicVolumeKey",get:function(){return"musicVolume"}},{key:"soundKey",get:function(){return"sound"}}]),r}(rv),Dg=function(){function t(){Wa(this,t),this.dbName,this.savedData}return Ya(t,[{key:"IDBOpen",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null;this.savedData=new ev,this.savedData.IDBOpen(t,e,n,r,o)}},{key:"IDBAdd",value:function(t,e,n,r){this.savedData.IDBAdd(t,e,n,r)}},{key:"IDBUpdate",value:function(t,e,n,r){this.savedData.IDBUpdate(t,e,n,r)}},{key:"IDBRemove",value:function(t,e,n){this.savedData.IDBRemove(t,e,n)}},{key:"IDBRead",value:function(t,e,n){this.savedData.IDBRead(t,e,n)}},{key:"IDBReadAll",value:function(t,e,n){this.savedData.IDBReadAll(t,e,n)}},{key:"IDBGetVersion",value:function(t,e){new ev(t).IDBGetVersion(t,e)}},{key:"IDBClose",value:function(t){this.savedData.IDBClose(t)}},{key:"IDBDeleteDB",value:function(t,e,n){new ev(t).IDBDeleteDB(t,e,n)}}],[{key:"remove",value:function(t,e){ev.remove(t),e()}},{key:"write",value:function(t,e,n){ev.write(t,e),n()}},{key:"read",value:function(t,e){e(ev.read(t))}}]),t}(),Mg=function(t){Ja(n,t);var e=eu(n);function n(){var t;return Wa(this,n),(t=e.call(this,"UserData-Plugin")).onUserDataRemove=t.onUserDataRemove.bind(Za(t)),t.onUserDataRead=t.onUserDataRead.bind(Za(t)),t.onUserDataWrite=t.onUserDataWrite.bind(Za(t)),t.onIDBAdd=t.onIDBAdd.bind(Za(t)),t.onIDBOpen=t.onIDBOpen.bind(Za(t)),t.onIDBRead=t.onIDBRead.bind(Za(t)),t.onIDBReadAll=t.onIDBReadAll.bind(Za(t)),t.onIDBRemove=t.onIDBRemove.bind(Za(t)),t.onIDBUpdate=t.onIDBUpdate.bind(Za(t)),t.onIDBUpdate=t.onIDBUpdate.bind(Za(t)),t.onIDBClose=t.onIDBClose.bind(Za(t)),t.IDBReadAll=t.onIDBReadAll.bind(Za(t)),t.onIDBGetVersion=t.onIDBGetVersion.bind(Za(t)),t.onIDBDeleteDB=t.onIDBDeleteDB.bind(Za(t)),t.savedDataHandler=null,t}return Ya(n,[{key:"init",value:function(){this.client.on("userDataRemove",this.onUserDataRemove),this.client.on("userDataRead",this.onUserDataRead),this.client.on("userDataWrite",this.onUserDataWrite),this.client.on("IDBOpen",this.onIDBOpen),this.client.on("IDBRead",this.onIDBRead),this.client.on("IDBReadAll",this.onIDBReadAll),this.client.on("IDBAdd",this.onIDBAdd),this.client.on("IDBRemove",this.onIDBRemove),this.client.on("IDBUpdate",this.onIDBUpdate),this.client.on("IDBClose",this.onIDBClose),this.client.on("IDBGetVersion",this.onIDBGetVersion),this.client.on("IDBDeleteDB",this.onIDBDeleteDB)}},{key:"onUserDataRemove",value:function(t){var e=this,n=t.data,r=t.type;Dg.remove(n,(function(){e.client.send(r)}))}},{key:"onUserDataRead",value:function(t){var e=this,n=t.data,r=t.type;Dg.read(n,(function(t){return e.client.send(r,t)}))}},{key:"onUserDataWrite",value:function(t){var e=this,n=t.type,r=t.data,o=r.name,i=r.value;Dg.write(o,i,(function(){return e.client.send(n)}))}},{key:"onIDBOpen",value:function(t){var e=this,n=t.type,r=t.data,o=r.dbName,i=r.dbVersion,s=void 0===i?null:i,a=r.additions,u=void 0===a?{}:a,l=r.deletions,c=void 0===l?{}:l;this.savedDataHandler=new Dg,this.savedDataHandler.IDBOpen(o,s,u,c,(function(t){return e.client.send(n,t)}))}},{key:"onIDBAdd",value:function(t){var e=this,n=t.type,r=t.data,o=r.storeName,i=r.value,s=r.key;this.savedDataHandler.IDBAdd(o,i,s,(function(t){return e.client.send(n,t)}))}},{key:"onIDBUpdate",value:function(t){var e=this,n=t.type,r=t.data,o=r.storeName,i=r.key,s=r.value;this.savedDataHandler.IDBUpdate(o,i,s,(function(t){return e.client.send(n,t)}))}},{key:"onIDBRemove",value:function(t){var e=this,n=t.type,r=t.data,o=r.storeName,i=r.key;this.savedDataHandler.IDBRemove(o,i,(function(t){return e.client.send(n,t)}))}},{key:"onIDBRead",value:function(t){var e=this,n=t.type,r=t.data,o=r.storeName,i=r.key;this.savedDataHandler.IDBRead(o,i,(function(t){return e.client.send(n,t)}))}},{key:"onIDBReadAll",value:function(t){var e=this,n=t.type,r=t.data,o=r.storeName,i=r.count;this.savedDataHandler.IDBReadAll(o,i,(function(t){return e.client.send(n,t)}))}},{key:"onIDBGetVersion",value:function(t){var e=this,n=t.type,r=t.data.dbName;(new Dg).IDBGetVersion(r,(function(t){return e.client.send(n,t)}))}},{key:"onIDBClose",value:function(t){var e=this,n=t.type;this.savedDataHandler.IDBClose((function(t){return e.client.send(n,t)}))}},{key:"onIDBDeleteDB",value:function(t){var e=this,n=t.type,r=t.data,o=r.dbName,i=r.options;(new Dg).IDBDeleteDB(o,i,(function(t){return e.client.send(n,t)}))}}]),n}(nv),Tg=function(t){Ja(n,t);var e=eu(n);function n(t){var r,o=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).defaultPointerSize,i=void 0===o?.5:o;Wa(this,n),r=e.call(this,t,"UISize-Pointer-Plugin",{defaultValue:i,featureName:n.pointerSizeKey});for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:{}).defaultButtonSize,i=void 0===o?.5:o;Wa(this,n),r=e.call(this,t,"UISize-Button-Plugin",{defaultValue:i,featureName:n.buttonSizeKey});for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:{}).defaultSensitivity,i=void 0===o?.5:o;Wa(this,n),(r=e.call(this,t,"Control-Sensitivity-Plugin",{defaultValue:i,featureName:n.controlSensitivityKey})).sendAllProperties=r.sendAllProperties.bind(Za(r));for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:{}).customClassName,i=void 0===o?"springrollContainerKeyBinding__button":o;return Wa(this,n),(r=e.call(this,"Keyboard-Map-Plugin")).sendAllProperties=r.sendAllProperties.bind(Za(r)),r.bindKey=r.bindKey.bind(Za(r)),r.onKeyButtonClick=r.onKeyButtonClick.bind(Za(r)),r.className=i,r.keyContainers=t instanceof HTMLElement?[t]:document.querySelectorAll(t),r.keyBindings={},r.buttons=[],r.activekeyButton,r.sendAfterFetch=!1,r.canEmit=!1,r.keyContainersLength=r.keyContainers.length,r.keyContainersLength<=0?(r.warn("plugin was not provided any valid key binding container elements"),tu(r)):r}return Ya(n,[{key:"onKeyButtonClick",value:function(t){for(var e=0,n=this.buttons.length;e1&&void 0!==arguments[1]?arguments[1]:{}).defaultValue,i=void 0===o?0:o;Wa(this,n),r=e.call(this,t,"Layer-Plugin",{defaultValue:i,featureName:n.layersSliderKey});for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:{}).defaultValue,i=void 0===o?Kg[0]:o;Wa(this,n),(r=e.call(this,t,"HUD-Layout-Plugin",{supportedValues:Kg,initialValue:i,controlName:"Hud Selector",featureName:n.hudPositionKey,radioCount:Kg.length})).sendAllProperties=r.sendAllProperties.bind(Za(r)),r.sendAfterFetch=!1,r.canEmit=!1,r.positions=[],r.radioGroupsLength<=0&&r.warn("Plugin was not provided any valid HTML elements");for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:{}).defaultValue,i=void 0===o?Gg[0]:o;if(Wa(this,n),(r=e.call(this,t,"Color-Filter-Plugin",{supportedValues:Gg,initialValue:i,controlName:"Color Vision Selector",featureName:n.colorVisionKey,radioCount:Gg.length})).sendAllProperties=r.sendAllProperties.bind(Za(r)),r.sendAfterFetch=!1,r.canEmit=!1,r.colors=[],r.radioGroupsLength<=0)return r.warn("Plugin was not provided any valid HTML elements"),tu(r);for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:{}).defaultHitAreaScale,i=void 0===o?.5:o;Wa(this,n),r=e.call(this,t,"Hit-Area-Scale-Plugin",{defaultValue:i,featureName:n.hitAreaScaleKey});for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:{}).defaultDragThresholdScale,i=void 0===o?.5:o;Wa(this,n),r=e.call(this,t,"Drag-Threshold-Scale-Plugin",{defaultValue:i,featureName:n.dragThresholdScaleKey});for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:{}).defaultHealth,i=void 0===o?.5:o;Wa(this,n),r=e.call(this,t,"Health-Scale-Plugin",{defaultValue:i,featureName:n.healthKey});for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:{}).defaultObjectCount,i=void 0===o?.5:o;Wa(this,n),r=e.call(this,t,"Object-Count-Plugin",{defaultValue:i,featureName:n.objectCountKey});for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:{}).defaultCompletionPercentage,i=void 0===o?.5:o;Wa(this,n),r=e.call(this,t,"Completion-Percentage-Plugin",{defaultValue:i,featureName:n.completionPercentageKey});for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:{}).defaultSpeedScale,i=void 0===o?.5:o;Wa(this,n),r=e.call(this,t,"Speed-Scale-Plugin",{defaultValue:i,featureName:n.speedScaleKey});for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:{}).defaultTimersScale,i=void 0===o?.5:o;Wa(this,n),r=e.call(this,t,"Timers-Scale-Plugin",{defaultValue:i,featureName:n.timersScaleKey});for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:{}).defaultInputCount,i=void 0===o?.5:o;Wa(this,n),r=e.call(this,t,"Input-Count-Plugin",{defaultValue:i,featureName:n.inputCountKey});for(var s=0;s -1\n }\n}\n\nfunction normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name)\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~!]/i.test(name) || name === '') {\n throw new TypeError('Invalid character in header field name: \"' + name + '\"')\n }\n return name.toLowerCase()\n}\n\nfunction normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value)\n }\n return value\n}\n\n// Build a destructive iterator for the value list\nfunction iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift()\n return {done: value === undefined, value: value}\n }\n }\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n }\n }\n\n return iterator\n}\n\nexport function Headers(headers) {\n this.map = {}\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value)\n }, this)\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1])\n }, this)\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name])\n }, this)\n }\n}\n\nHeaders.prototype.append = function(name, value) {\n name = normalizeName(name)\n value = normalizeValue(value)\n var oldValue = this.map[name]\n this.map[name] = oldValue ? oldValue + ', ' + value : value\n}\n\nHeaders.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)]\n}\n\nHeaders.prototype.get = function(name) {\n name = normalizeName(name)\n return this.has(name) ? this.map[name] : null\n}\n\nHeaders.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n}\n\nHeaders.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value)\n}\n\nHeaders.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this)\n }\n }\n}\n\nHeaders.prototype.keys = function() {\n var items = []\n this.forEach(function(value, name) {\n items.push(name)\n })\n return iteratorFor(items)\n}\n\nHeaders.prototype.values = function() {\n var items = []\n this.forEach(function(value) {\n items.push(value)\n })\n return iteratorFor(items)\n}\n\nHeaders.prototype.entries = function() {\n var items = []\n this.forEach(function(value, name) {\n items.push([name, value])\n })\n return iteratorFor(items)\n}\n\nif (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n}\n\nfunction consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true\n}\n\nfunction fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result)\n }\n reader.onerror = function() {\n reject(reader.error)\n }\n })\n}\n\nfunction readBlobAsArrayBuffer(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsArrayBuffer(blob)\n return promise\n}\n\nfunction readBlobAsText(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsText(blob)\n return promise\n}\n\nfunction readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf)\n var chars = new Array(view.length)\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i])\n }\n return chars.join('')\n}\n\nfunction bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength)\n view.set(new Uint8Array(buf))\n return view.buffer\n }\n}\n\nfunction Body() {\n this.bodyUsed = false\n\n this._initBody = function(body) {\n /*\n fetch-mock wraps the Response object in an ES6 Proxy to\n provide useful test harness features such as flush. However, on\n ES5 browsers without fetch or Proxy support pollyfills must be used;\n the proxy-pollyfill is unable to proxy an attribute unless it exists\n on the object before the Proxy is created. This change ensures\n Response.bodyUsed exists on the instance, while maintaining the\n semantic of setting Request.bodyUsed in the constructor before\n _initBody is called.\n */\n this.bodyUsed = this.bodyUsed\n this._bodyInit = body\n if (!body) {\n this._bodyText = ''\n } else if (typeof body === 'string') {\n this._bodyText = body\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString()\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer)\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer])\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body)\n } else {\n this._bodyText = body = Object.prototype.toString.call(body)\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8')\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type)\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n }\n }\n }\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n }\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n var isConsumed = consumed(this)\n if (isConsumed) {\n return isConsumed\n }\n if (ArrayBuffer.isView(this._bodyArrayBuffer)) {\n return Promise.resolve(\n this._bodyArrayBuffer.buffer.slice(\n this._bodyArrayBuffer.byteOffset,\n this._bodyArrayBuffer.byteOffset + this._bodyArrayBuffer.byteLength\n )\n )\n } else {\n return Promise.resolve(this._bodyArrayBuffer)\n }\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n }\n }\n\n this.text = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n }\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n }\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n }\n\n return this\n}\n\n// HTTP methods whose capitalization should be normalized\nvar methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\n\nfunction normalizeMethod(method) {\n var upcased = method.toUpperCase()\n return methods.indexOf(upcased) > -1 ? upcased : method\n}\n\nexport function Request(input, options) {\n if (!(this instanceof Request)) {\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n }\n\n options = options || {}\n var body = options.body\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url\n this.credentials = input.credentials\n if (!options.headers) {\n this.headers = new Headers(input.headers)\n }\n this.method = input.method\n this.mode = input.mode\n this.signal = input.signal\n if (!body && input._bodyInit != null) {\n body = input._bodyInit\n input.bodyUsed = true\n }\n } else {\n this.url = String(input)\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin'\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers)\n }\n this.method = normalizeMethod(options.method || this.method || 'GET')\n this.mode = options.mode || this.mode || null\n this.signal = options.signal || this.signal\n this.referrer = null\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body)\n\n if (this.method === 'GET' || this.method === 'HEAD') {\n if (options.cache === 'no-store' || options.cache === 'no-cache') {\n // Search for a '_' parameter in the query string\n var reParamSearch = /([?&])_=[^&]*/\n if (reParamSearch.test(this.url)) {\n // If it already exists then set the value with the current time\n this.url = this.url.replace(reParamSearch, '$1_=' + new Date().getTime())\n } else {\n // Otherwise add a new '_' parameter to the end with the current time\n var reQueryString = /\\?/\n this.url += (reQueryString.test(this.url) ? '&' : '?') + '_=' + new Date().getTime()\n }\n }\n }\n}\n\nRequest.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n}\n\nfunction decode(body) {\n var form = new FormData()\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=')\n var name = split.shift().replace(/\\+/g, ' ')\n var value = split.join('=').replace(/\\+/g, ' ')\n form.append(decodeURIComponent(name), decodeURIComponent(value))\n }\n })\n return form\n}\n\nfunction parseHeaders(rawHeaders) {\n var headers = new Headers()\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ')\n // Avoiding split via regex to work around a common IE11 bug with the core-js 3.6.0 regex polyfill\n // https://github.com/github/fetch/issues/748\n // https://github.com/zloirock/core-js/issues/751\n preProcessedHeaders\n .split('\\r')\n .map(function(header) {\n return header.indexOf('\\n') === 0 ? header.substr(1, header.length) : header\n })\n .forEach(function(line) {\n var parts = line.split(':')\n var key = parts.shift().trim()\n if (key) {\n var value = parts.join(':').trim()\n headers.append(key, value)\n }\n })\n return headers\n}\n\nBody.call(Request.prototype)\n\nexport function Response(bodyInit, options) {\n if (!(this instanceof Response)) {\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n }\n if (!options) {\n options = {}\n }\n\n this.type = 'default'\n this.status = options.status === undefined ? 200 : options.status\n this.ok = this.status >= 200 && this.status < 300\n this.statusText = options.statusText === undefined ? '' : '' + options.statusText\n this.headers = new Headers(options.headers)\n this.url = options.url || ''\n this._initBody(bodyInit)\n}\n\nBody.call(Response.prototype)\n\nResponse.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n}\n\nResponse.error = function() {\n var response = new Response(null, {status: 0, statusText: ''})\n response.type = 'error'\n return response\n}\n\nvar redirectStatuses = [301, 302, 303, 307, 308]\n\nResponse.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n}\n\nexport var DOMException = global.DOMException\ntry {\n new DOMException()\n} catch (err) {\n DOMException = function(message, name) {\n this.message = message\n this.name = name\n var error = Error(message)\n this.stack = error.stack\n }\n DOMException.prototype = Object.create(Error.prototype)\n DOMException.prototype.constructor = DOMException\n}\n\nexport function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init)\n\n if (request.signal && request.signal.aborted) {\n return reject(new DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest()\n\n function abortXhr() {\n xhr.abort()\n }\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n }\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n var body = 'response' in xhr ? xhr.response : xhr.responseText\n setTimeout(function() {\n resolve(new Response(body, options))\n }, 0)\n }\n\n xhr.onerror = function() {\n setTimeout(function() {\n reject(new TypeError('Network request failed'))\n }, 0)\n }\n\n xhr.ontimeout = function() {\n setTimeout(function() {\n reject(new TypeError('Network request failed'))\n }, 0)\n }\n\n xhr.onabort = function() {\n setTimeout(function() {\n reject(new DOMException('Aborted', 'AbortError'))\n }, 0)\n }\n\n function fixUrl(url) {\n try {\n return url === '' && global.location.href ? global.location.href : url\n } catch (e) {\n return url\n }\n }\n\n xhr.open(request.method, fixUrl(request.url), true)\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false\n }\n\n if ('responseType' in xhr) {\n if (support.blob) {\n xhr.responseType = 'blob'\n } else if (\n support.arrayBuffer &&\n request.headers.get('Content-Type') &&\n request.headers.get('Content-Type').indexOf('application/octet-stream') !== -1\n ) {\n xhr.responseType = 'arraybuffer'\n }\n }\n\n if (init && typeof init.headers === 'object' && !(init.headers instanceof Headers)) {\n Object.getOwnPropertyNames(init.headers).forEach(function(name) {\n xhr.setRequestHeader(name, normalizeValue(init.headers[name]))\n })\n } else {\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value)\n })\n }\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr)\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr)\n }\n }\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n })\n}\n\nfetch.polyfill = true\n\nif (!global.fetch) {\n global.fetch = fetch\n global.Headers = Headers\n global.Request = Request\n global.Response = Response\n}\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","var documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nvar IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = {\n all: documentAll,\n IS_HTMLDDA: IS_HTMLDDA\n};\n","var $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = $documentAll.IS_HTMLDDA ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","var isCallable = require('../internals/is-callable');\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\nmodule.exports = $documentAll.IS_HTMLDDA ? function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList`\nvar documentCreateElement = require('../internals/document-create-element');\n\nvar classList = documentCreateElement('span').classList;\nvar DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype;\n\nmodule.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype;\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n","var $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a function');\n};\n","var uncurryThis = require('../internals/function-uncurry-this-clause');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","var isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","var trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) == 'Array';\n};\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.28.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.28.0/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","module.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","var isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (isConstructor(C) && (C === $Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? $Array : C;\n};\n","var arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","var bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = uncurryThis([].push);\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var IS_FILTER_REJECT = TYPE == 7;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that);\n var length = lengthOfArrayLike(self);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push(target, value); // filterReject\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call -- required for testing\n method.call(null, argument || function () { return 1; }, 1);\n });\n};\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\nmodule.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n} : [].forEach;\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw $TypeError($String(argument) + ' is not an object');\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","var aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","var call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw $TypeError(\"Can't convert object to primitive value\");\n};\n","var call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar handlePrototype = function (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n if (DOMIterables[COLLECTION_NAME]) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype);\n }\n}\n\nhandlePrototype(DOMTokenListPrototype);\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","module.exports = {};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","var NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","module.exports = {};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","var isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n","var defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC) target = target.prototype;\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function (object, key, method) {\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n } catch (error) { /* empty */ }\n};\n","var isCallable = require('../internals/is-callable');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n if (kind == 'keys') return createIterResultObject(index, false);\n if (kind == 'values') return createIterResultObject(target[index], false);\n return createIterResultObject([index, target[index]], false);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nvar values = Iterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n// V8 ~ Chrome 45- bug\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n defineProperty(values, 'name', { value: 'values' });\n} catch (error) { /* empty */ }\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nvar handlePrototype = function (CollectionPrototype, COLLECTION_NAME) {\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype, COLLECTION_NAME);\n}\n\nhandlePrototype(DOMTokenListPrototype, 'DOMTokenList');\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","'use strict';\n/* eslint-disable es/no-array-prototype-indexof -- required for testing */\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar $indexOf = require('../internals/array-includes').indexOf;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeIndexOf = uncurryThis([].indexOf);\n\nvar NEGATIVE_ZERO = !!nativeIndexOf && 1 / nativeIndexOf([1], 1, -0) < 0;\nvar FORCED = NEGATIVE_ZERO || !arrayMethodIsStrict('indexOf');\n\n// `Array.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: FORCED }, {\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n var fromIndex = arguments.length > 1 ? arguments[1] : undefined;\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? nativeIndexOf(this, searchElement, fromIndex) || 0\n : $indexOf(this, searchElement, fromIndex);\n }\n});\n","var $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !arrayMethodHasSpeciesSupport('concat');\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = lengthOfArrayLike(E);\n doesNotExceedSafeInteger(n + len);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n doesNotExceedSafeInteger(n + 1);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\nvar concat = uncurryThis([].concat);\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es/no-symbol -- safe\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n// eslint-disable-next-line es/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, {\n assign: assign\n});\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n defineBuiltIn(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","var classof = require('../internals/classof-raw');\n\nmodule.exports = typeof process != 'undefined' && classof(process) == 'process';\n","var global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar Dispatch = global.Dispatch;\nvar Function = global.Function;\nvar MessageChannel = global.MessageChannel;\nvar String = global.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar $location, defer, channel, port;\n\nfails(function () {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n $location = global.location;\n});\n\nvar run = function (id) {\n if (hasOwn(queue, id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar eventListener = function (event) {\n run(event.data);\n};\n\nvar globalPostMessageDefer = function (id) {\n // old engines have not location.origin\n global.postMessage(String(id), $location.protocol + '//' + $location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(handler) {\n validateArgumentsLength(arguments.length, 1);\n var fn = isCallable(handler) ? handler : Function(handler);\n var args = arraySlice(arguments, 1);\n queue[++counter] = function () {\n apply(fn, undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = eventListener;\n defer = bind(port.postMessage, port);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n isCallable(global.postMessage) &&\n !global.importScripts &&\n $location && $location.protocol !== 'file:' &&\n !fails(globalPostMessageDefer)\n ) {\n defer = globalPostMessageDefer;\n global.addEventListener('message', eventListener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var makeBuiltIn = require('../internals/make-built-in');\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n return defineProperty.f(target, name, descriptor);\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineBuiltInAccessor(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","var isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw $TypeError('Incorrect invocation');\n};\n","var isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a constructor');\n};\n","var anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || isNullOrUndefined(S = anObject(C)[SPECIES]) ? defaultConstructor : aConstructor(S);\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","var $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw $TypeError('Not enough arguments');\n return passed;\n};\n","var userAgent = require('../internals/engine-user-agent');\n\n// eslint-disable-next-line redos/no-vulnerable -- safe\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","var Queue = function () {\n this.head = null;\n this.tail = null;\n};\n\nQueue.prototype = {\n add: function (item) {\n var entry = { item: item, next: null };\n var tail = this.tail;\n if (tail) tail.next = entry;\n else this.head = entry;\n this.tail = entry;\n },\n get: function () {\n var entry = this.head;\n if (entry) {\n var next = this.head = entry.next;\n if (next === null) this.tail = null;\n return entry.item;\n }\n }\n};\n\nmodule.exports = Queue;\n","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar macrotask = require('../internals/task').set;\nvar Queue = require('../internals/queue');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_IOS_PEBBLE = require('../internals/engine-is-ios-pebble');\nvar IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar document = global.document;\nvar process = global.process;\nvar Promise = global.Promise;\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar microtask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\nvar notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!microtask) {\n var queue = new Queue();\n\n var flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (fn = queue.get()) try {\n fn();\n } catch (error) {\n if (queue.head) notify();\n throw error;\n }\n if (parent) parent.enter();\n };\n\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n // workaround of WebKit ~ iOS Safari 10.1 bug\n promise.constructor = Promise;\n then = bind(promise.then, promise);\n notify = function () {\n then(flush);\n };\n // Node.js without promises\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessage\n // - onreadystatechange\n // - setTimeout\n } else {\n // `webpack` dev server bug on IE global methods - use bind(fn, global)\n macrotask = bind(macrotask, global);\n notify = function () {\n macrotask(flush);\n };\n }\n\n microtask = function (fn) {\n if (!queue.head) notify();\n queue.add(fn);\n };\n}\n\nmodule.exports = microtask;\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && typeof Pebble != 'undefined';\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","/* global Deno -- Deno case */\nmodule.exports = typeof Deno == 'object' && Deno && typeof Deno.version == 'object';\n","var IS_DENO = require('../internals/engine-is-deno');\nvar IS_NODE = require('../internals/engine-is-node');\n\nmodule.exports = !IS_DENO && !IS_NODE\n && typeof window == 'object'\n && typeof document == 'object';\n","var global = require('../internals/global');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar isCallable = require('../internals/is-callable');\nvar isForced = require('../internals/is-forced');\nvar inspectSource = require('../internals/inspect-source');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_DENO = require('../internals/engine-is-deno');\nvar IS_PURE = require('../internals/is-pure');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar SPECIES = wellKnownSymbol('species');\nvar SUBCLASSING = false;\nvar NATIVE_PROMISE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent);\n\nvar FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () {\n var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor);\n var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor);\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution\n if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['finally'])) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (!V8_VERSION || V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) {\n // Detect correctness of subclassing with @@species support\n var promise = new NativePromiseConstructor(function (resolve) { resolve(1); });\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n if (!SUBCLASSING) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n } return !GLOBAL_CORE_JS_PROMISE && (IS_BROWSER || IS_DENO) && !NATIVE_PROMISE_REJECTION_EVENT;\n});\n\nmodule.exports = {\n CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR,\n REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT,\n SUBCLASSING: SUBCLASSING\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar $TypeError = TypeError;\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw $TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar IS_NODE = require('../internals/engine-is-node');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar aCallable = require('../internals/a-callable');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar perform = require('../internals/perform');\nvar Queue = require('../internals/queue');\nvar InternalStateModule = require('../internals/internal-state');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar PromiseConstructorDetection = require('../internals/promise-constructor-detection');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\nvar PROMISE = 'Promise';\nvar FORCED_PROMISE_CONSTRUCTOR = PromiseConstructorDetection.CONSTRUCTOR;\nvar NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT;\nvar NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar setInternalState = InternalStateModule.set;\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar PromiseConstructor = NativePromiseConstructor;\nvar PromisePrototype = NativePromisePrototype;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\n\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\n\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && isCallable(then = it.then) ? then : false;\n};\n\nvar callReaction = function (reaction, state) {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n call(then, result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n microtask(function () {\n var reactions = state.reactions;\n var reaction;\n while (reaction = reactions.get()) {\n callReaction(reaction, state);\n }\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n call(then, value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED_PROMISE_CONSTRUCTOR) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromisePrototype);\n aCallable(executor);\n call(Internal, this);\n var state = getInternalPromiseState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n\n PromisePrototype = PromiseConstructor.prototype;\n\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: new Queue(),\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n state.parent = true;\n reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;\n reaction.fail = isCallable(onRejected) && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n if (state.state == PENDING) state.reactions.add(reaction);\n else microtask(function () {\n callReaction(reaction, state);\n });\n return reaction.promise;\n });\n\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalPromiseState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && isCallable(NativePromiseConstructor) && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n if (!NATIVE_PROMISE_SUBCLASSING) {\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n defineBuiltIn(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n call(nativeThen, that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n }\n\n // make `.constructor === Promise` work for native promise-based APIs\n try {\n delete NativePromisePrototype.constructor;\n } catch (error) { /* empty */ }\n\n // make `instanceof Promise` work for native promise-based APIs\n if (setPrototypeOf) {\n setPrototypeOf(NativePromisePrototype, PromisePrototype);\n }\n }\n}\n\n$({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n","module.exports = function (a, b) {\n try {\n // eslint-disable-next-line no-console -- safe\n arguments.length == 1 ? console.error(a) : console.error(a, b);\n } catch (error) { /* empty */ }\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","var call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw $TypeError(tryToString(argument) + ' is not iterable');\n};\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","var bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_RECORD = !!(options && options.IS_RECORD);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_RECORD) {\n iterator = iterable.iterator;\n } else if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw $TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = IS_RECORD ? iterable.next : iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\nmodule.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) {\n NativePromiseConstructor.all(iterable).then(undefined, function () { /* empty */ });\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.all` method\n// https://tc39.es/ecma262/#sec-promise.all\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call($promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// `Promise.prototype.catch` method\n// https://tc39.es/ecma262/#sec-promise.prototype.catch\n$({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR, real: true }, {\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n});\n\n// makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['catch'];\n if (NativePromisePrototype['catch'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'catch', method, { unsafe: true });\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.race` method\n// https://tc39.es/ecma262/#sec-promise.race\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n iterate(iterable, function (promise) {\n call($promiseResolve, C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\n// `Promise.reject` method\n// https://tc39.es/ecma262/#sec-promise.reject\n$({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n reject: function reject(r) {\n var capability = newPromiseCapabilityModule.f(this);\n call(capability.reject, undefined, r);\n return capability.promise;\n }\n});\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar promiseResolve = require('../internals/promise-resolve');\n\nvar PromiseConstructorWrapper = getBuiltIn('Promise');\nvar CHECK_WRAPPER = IS_PURE && !FORCED_PROMISE_CONSTRUCTOR;\n\n// `Promise.resolve` method\n// https://tc39.es/ecma262/#sec-promise.resolve\n$({ target: 'Promise', stat: true, forced: IS_PURE || FORCED_PROMISE_CONSTRUCTOR }, {\n resolve: function resolve(x) {\n return promiseResolve(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor : this, x);\n }\n});\n","var classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","'use strict';\n/* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */\n/* eslint-disable regexp/no-useless-quantifier -- testing */\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar regexpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar shared = require('../internals/shared');\nvar create = require('../internals/object-create');\nvar getInternalState = require('../internals/internal-state').get;\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar nativeReplace = shared('native-string-replace', String.prototype.replace);\nvar nativeExec = RegExp.prototype.exec;\nvar patchedExec = nativeExec;\nvar charAt = uncurryThis(''.charAt);\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n call(nativeExec, re1, 'a');\n call(nativeExec, re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG;\n\nif (PATCH) {\n patchedExec = function exec(string) {\n var re = this;\n var state = getInternalState(re);\n var str = toString(string);\n var raw = state.raw;\n var result, reCopy, lastIndex, match, i, object, group;\n\n if (raw) {\n raw.lastIndex = re.lastIndex;\n result = call(patchedExec, raw, str);\n re.lastIndex = raw.lastIndex;\n return result;\n }\n\n var groups = state.groups;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = call(regexpFlags, re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = replace(flags, 'y', '');\n if (indexOf(flags, 'g') === -1) {\n flags += 'g';\n }\n\n strCopy = stringSlice(str, re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt(str, re.lastIndex - 1) !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = call(nativeExec, sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = stringSlice(match.input, charsAdded);\n match[0] = stringSlice(match[0], charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn't work for /(.?)?/\n call(nativeReplace, match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n if (match && groups) {\n match.groups = object = create(null);\n for (i = 0; i < groups.length; i++) {\n group = groups[i];\n object[group[0]] = match[group[1]];\n }\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.hasIndices) result += 'd';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.unicodeSets) result += 'v';\n if (that.sticky) result += 'y';\n return result;\n};\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nvar UNSUPPORTED_Y = fails(function () {\n var re = $RegExp('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\n// UC Browser bug\n// https://github.com/zloirock/core-js/issues/1008\nvar MISSED_STICKY = UNSUPPORTED_Y || fails(function () {\n return !$RegExp('a', 'y').sticky;\n});\n\nvar BROKEN_CARET = UNSUPPORTED_Y || fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = $RegExp('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\n\nmodule.exports = {\n BROKEN_CARET: BROKEN_CARET,\n MISSED_STICKY: MISSED_STICKY,\n UNSUPPORTED_Y: UNSUPPORTED_Y\n};\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('.', 's');\n return !(re.dotAll && re.exec('\\n') && re.flags === 's');\n});\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('(?b)', 'g') -> /(?b)/g and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('(?b)', 'g');\n return re.exec('b').groups.a !== 'b' ||\n 'b'.replace(re, '$c') !== 'bc';\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n// `RegExp.prototype.exec` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","/**\n * Provide feature detection\n * @class Features\n */\nexport class Features {\n /**\n * If the browser has WebGL support\n * @property {boolean} webgl\n */\n static get webgl() {\n const canvas = document.createElement('canvas');\n\n return !!(\n canvas &&\n (canvas.getContext('webgl') || canvas.getContext('experimental-webgl'))\n );\n }\n\n /**\n * If the browser has Canvas support\n * @property {boolean} canvas\n */\n static get canvas() {\n const canvas = document.createElement('canvas');\n return !!(canvas !== null && canvas.getContext && canvas.getContext('2d'));\n }\n\n /**\n * If the browser has WebAudio API support\n * @property {boolean} webaudio\n */\n static get webaudio() {\n return 'webkitAudioContext' in window || 'AudioContext' in window;\n }\n\n /**\n * If the browser has HTMLAudio support\n * @property {boolean} htmlAudio\n */\n static get htmlAudio() {\n return 'HTMLAudioElement' in window;\n }\n\n /**\n * If the browser has Web Sockets API\n * @property {boolean} websockets\n */\n static get websockets() {\n return 'WebSocket' in window || 'MozWebSocket' in window;\n }\n\n /**\n * If the browser has Geolocation API\n * @property {boolean} geolocation\n */\n static get geolocation() {\n return 'geolocation' in navigator;\n }\n\n /**\n * If the browser has Web Workers API\n * @property {boolean} webworkers\n */\n static get webworkers() {\n return 'function' === typeof Worker;\n }\n\n /**\n * If the browser has touch\n * @property {boolean} touch\n */\n static get touch() {\n return !!(\n 'ontouchstart' in window || // iOS & Android\n (navigator.msPointerEnabled && navigator.msMaxTouchPoints > 0) || // IE10\n (navigator.pointerEnabled && navigator.maxTouchPoints > 0)\n ); // IE11+\n }\n\n /**\n * Test for basic browser compatiliblity\n * @method basic\n * @static\n * @return {String} The error message, if fails\n */\n static basic() {\n if (!Features.canvas) {\n return 'Browser does not support canvas';\n } else if (!Features.webaudio && !Features.htmlAudio) {\n return 'Browser does not support WebAudio or HTMLAudio';\n }\n return null;\n }\n\n /**\n * See if the current bowser has the correct features\n * @method test\n * @static\n * @param {object} capabilities The capabilities\n * @param {object} [capabilities.features] The features\n * @param {object} [capabilities.features.webgl] WebGL required\n * @param {object} [capabilities.features.geolocation] Geolocation required\n * @param {object} [capabilities.features.webworkers] Web Workers API required\n * @param {object} [capabilities.features.webaudio] WebAudio API required\n * @param {object} [capabilities.features.websockets] WebSockets required\n * @param {object} [capabilities.sizes] The sizes\n * @param {Boolean} [capabilities.sizes.xsmall] Screens < 480\n * @param {Boolean} [capabilities.sizes.small] Screens < 768\n * @param {Boolean} [capabilities.sizes.medium] Screens < 992\n * @param {Boolean} [capabilities.sizes.large] Screens < 1200\n * @param {Boolean} [capabilities.sizes.xlarge] Screens >= 1200\n * @param {object} [capabilities.ui] The ui\n * @param {Boolean} [capabilities.ui.touch] Touch capable\n * @return {String|null} The error, or else returns null\n */\n static test(capabilities) {\n // check for basic compatibility\n const err = this.basic();\n if (err) {\n return err;\n }\n\n const features = capabilities.features;\n const ui = capabilities.ui;\n const sizes = capabilities.sizes;\n\n for (const name in features) {\n if (features[name] === true && !Features[name]) {\n // Failed built-in feature check\n return 'Browser does not support ' + name;\n }\n }\n\n // Failed negative touch requirement\n if (!ui.touch && Features.touch) {\n return 'Game does not support touch input';\n }\n\n // Check the sizes\n const size = Math.max(window.screen.width, window.screen.height);\n\n if (!sizes.xsmall && size < 480) {\n return 'Game doesn\\'t support extra small screens';\n }\n if (!sizes.small && size < 768) {\n return 'Game doesn\\'t support small screens';\n }\n if (!sizes.medium && size < 992) {\n return 'Game doesn\\'t support medium screens';\n }\n if (!sizes.large && size < 1200) {\n return 'Game doesn\\'t support large screens';\n }\n if (!sizes.xlarge && size >= 1200) {\n return 'Game doesn\\'t support extra large screens';\n }\n return null;\n }\n\n /**\n * Returns browser feature support info\n * @returns {string}\n */\n static get info() {\n return `Browser Feature Detection\n\t\t\t\tCanvas support ${Features.canvas ? '\\u2713' : '\\u00D7'}\n\t\t\t\tWebGL support ${Features.webgl ? '\\u2713' : '\\u00D7'}\n\t\t\t\tWebAudio support ${Features.webAudio ? '\\u2713' : '\\u00D7'}`;\n }\n}\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return createIterResultObject(undefined, true);\n point = charAt(string, index);\n state.index += point.length;\n return createIterResultObject(point, false);\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $find = require('../internals/array-iteration').find;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\nif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.find` method\n// https://tc39.es/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n","function t(t,e){return t(e={exports:{}},e.exports),e.exports}var e=t((function(t){function e(t){return(e=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function n(r){return\"function\"==typeof Symbol&&\"symbol\"===e(Symbol.iterator)?t.exports=n=function(t){return e(t)}:t.exports=n=function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":e(t)},n(r)}t.exports=n}));var n=function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")};function r(t,e){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:0;this._listeners[t]||(this._listeners[t]=[]),e._priority=parseInt(n)||0,-1===this._listeners[t].indexOf(e)&&(this._listeners[t].push(e),this._listeners[t].length>1&&this._listeners[t].sort(this.listenerSorter))}},{key:\"listenerSorter\",value:function(t,e){return t._priority-e._priority}},{key:\"off\",value:function(t,e){if(void 0!==this._listeners[t])if(void 0!==e){var n=this._listeners[t].indexOf(e);-11&&void 0!==arguments[1]?arguments[1]:{};if(\"string\"==typeof t&&(t={type:t,data:\"object\"===e(n)&&null!==n?n:{}}),void 0!==this._listeners[t.type])for(var r=this._listeners[t.type].length-1;r>=0;r--)this._listeners[t.type][r](t)}},{key:\"destroy\",value:function(){this._listeners={}}}]),t}(),s=t((function(t){var e=function(t){var e,n=Object.prototype,r=n.hasOwnProperty,o=\"function\"==typeof Symbol?Symbol:{},i=o.iterator||\"@@iterator\",s=o.asyncIterator||\"@@asyncIterator\",a=o.toStringTag||\"@@toStringTag\";function c(t,e,n,r){var o=e&&e.prototype instanceof d?e:d,i=Object.create(o.prototype),s=new S(r||[]);return i._invoke=function(t,e,n){var r=h;return function(o,i){if(r===f)throw new Error(\"Generator is already running\");if(r===p){if(\"throw\"===o)throw i;return P()}for(n.method=o,n.arg=i;;){var s=n.delegate;if(s){var a=O(s,n);if(a){if(a===y)continue;return a}}if(\"next\"===n.method)n.sent=n._sent=n.arg;else if(\"throw\"===n.method){if(r===h)throw r=p,n.arg;n.dispatchException(n.arg)}else\"return\"===n.method&&n.abrupt(\"return\",n.arg);r=f;var c=u(t,e,n);if(\"normal\"===c.type){if(r=n.done?p:l,c.arg===y)continue;return{value:c.arg,done:n.done}}\"throw\"===c.type&&(r=p,n.method=\"throw\",n.arg=c.arg)}}}(t,n,s),i}function u(t,e,n){try{return{type:\"normal\",arg:t.call(e,n)}}catch(t){return{type:\"throw\",arg:t}}}t.wrap=c;var h=\"suspendedStart\",l=\"suspendedYield\",f=\"executing\",p=\"completed\",y={};function d(){}function v(){}function g(){}var m={};m[i]=function(){return this};var w=Object.getPrototypeOf,b=w&&w(w(j([])));b&&b!==n&&r.call(b,i)&&(m=b);var _=g.prototype=d.prototype=Object.create(m);function x(t){[\"next\",\"throw\",\"return\"].forEach((function(e){t[e]=function(t){return this._invoke(e,t)}}))}function L(t){function e(n,o,i,s){var a=u(t[n],t,o);if(\"throw\"!==a.type){var c=a.arg,h=c.value;return h&&\"object\"==typeof h&&r.call(h,\"__await\")?Promise.resolve(h.__await).then((function(t){e(\"next\",t,i,s)}),(function(t){e(\"throw\",t,i,s)})):Promise.resolve(h).then((function(t){c.value=t,i(c)}),(function(t){return e(\"throw\",t,i,s)}))}s(a.arg)}var n;this._invoke=function(t,r){function o(){return new Promise((function(n,o){e(t,r,n,o)}))}return n=n?n.then(o,o):o()}}function O(t,n){var r=t.iterator[n.method];if(r===e){if(n.delegate=null,\"throw\"===n.method){if(t.iterator.return&&(n.method=\"return\",n.arg=e,O(t,n),\"throw\"===n.method))return y;n.method=\"throw\",n.arg=new TypeError(\"The iterator does not provide a 'throw' method\")}return y}var o=u(r,t.iterator,n.arg);if(\"throw\"===o.type)return n.method=\"throw\",n.arg=o.arg,n.delegate=null,y;var i=o.arg;return i?i.done?(n[t.resultName]=i.value,n.next=t.nextLoc,\"return\"!==n.method&&(n.method=\"next\",n.arg=e),n.delegate=null,y):i:(n.method=\"throw\",n.arg=new TypeError(\"iterator result is not an object\"),n.delegate=null,y)}function E(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function k(t){var e=t.completion||{};e.type=\"normal\",delete e.arg,t.completion=e}function S(t){this.tryEntries=[{tryLoc:\"root\"}],t.forEach(E,this),this.reset(!0)}function j(t){if(t){var n=t[i];if(n)return n.call(t);if(\"function\"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,s=function n(){for(;++o=0;--i){var s=this.tryEntries[i],a=s.completion;if(\"root\"===s.tryLoc)return o(\"end\");if(s.tryLoc<=this.prev){var c=r.call(s,\"catchLoc\"),u=r.call(s,\"finallyLoc\");if(c&&u){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,\"finallyLoc\")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),k(n),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if(\"throw\"===r.type){var o=r.arg;k(n)}return o}}throw new Error(\"illegal catch attempt\")},delegateYield:function(t,n,r){return this.delegate={iterator:j(t),resultName:n,nextLoc:r},\"next\"===this.method&&(this.arg=e),y}},t}(t.exports);try{regeneratorRuntime=e}catch(t){Function(\"r\",\"regeneratorRuntime = r\")(e)}}));var a=function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t};var c=function(t,n){return!n||\"object\"!==e(n)&&\"function\"!=typeof n?a(t):n},u=t((function(t){function e(n){return t.exports=e=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},e(n)}t.exports=e}));var h=function(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==(t=u(t)););return t},l=t((function(t){function e(n,r,o){return\"undefined\"!=typeof Reflect&&Reflect.get?t.exports=e=Reflect.get:t.exports=e=function(t,e,n){var r=h(t,e);if(r){var o=Object.getOwnPropertyDescriptor(r,e);return o.get?o.get.call(n):o.value}},e(n,r,o||n)}t.exports=e})),f=t((function(t){function e(n,r){return t.exports=e=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},e(n,r)}t.exports=e}));var p=function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&f(t,e)},y=function(t){function r(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:100*Math.random()|0;return n(this,r),(t=c(this,u(r).call(this))).id=\"BELLHOP:\".concat(e),t.connected=!1,t.isChild=!0,t.connecting=!1,t.debug=!1,t.origin=\"*\",t._sendLater=[],t.iframe=null,t.receive=t.receive.bind(a(t)),t}return p(r,i),o(r,[{key:\"receive\",value:function(t){if(this.target===t.source)if(this.logDebugMessage(!0,t),\"connected\"===t.data)this.onConnectionReceived(t.data);else{var n=t.data;if(\"string\"==typeof n)try{n=JSON.parse(n)}catch(t){console.warn(\"Bellhop error: \",t)}this.connected&&\"object\"===e(n)&&n.type&&this.trigger(n)}}},{key:\"onConnectionReceived\",value:function(t){if(this.connecting=!1,this.connected=!0,!this.isChild){if(!this.target)return;this.target.postMessage(t,this.origin)}for(var e=0;e1&&void 0!==arguments[1]?arguments[1]:\"*\";this.connecting||(this.disconnect(),this.connecting=!0,t instanceof HTMLIFrameElement&&(this.iframe=t),this.isChild=void 0===t,this.supported=!0,this.isChild&&(this.supported=window!=t),this.origin=e,window.addEventListener(\"message\",this.receive),this.isChild&&(window===this.target?this.trigger(\"failed\"):this.target.postMessage(\"connected\",this.origin)))}},{key:\"disconnect\",value:function(){this.connected=!1,this.connecting=!1,this.origin=null,this.iframe=null,this.isChild=!0,this._sendLater.length=0,window.removeEventListener(\"message\",this.receive)}},{key:\"send\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(\"string\"!=typeof t)throw\"The event type must be a string\";var n={type:t,data:e};this.logDebugMessage(!1,n),this.connecting?this._sendLater.push(n):this.target.postMessage(JSON.stringify(n),this.origin)}},{key:\"fetch\",value:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(!this.connecting&&!this.connected)throw\"No connection, please call connect() first\";var i=function t(r){o&&n.off(r.type,t),e(r)};this.on(t,i),this.send(t,r)}},{key:\"respond\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=this,o=function t(o){return s.async((function(i){for(;;)switch(i.prev=i.next){case 0:if(n&&r.off(o,t),\"function\"!=typeof e){i.next=10;break}return i.t0=r,i.t1=o.type,i.next=6,s.awrap(e());case 6:i.t2=i.sent,i.t0.send.call(i.t0,i.t1,i.t2),i.next=11;break;case 10:r.send(o.type,e);case 11:case\"end\":return i.stop()}}))};this.on(t,o)}},{key:\"logDebugMessage\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=arguments.length>1?arguments[1]:void 0;this.debug&&\"function\"==typeof this.debug?this.debug({isChild:this.isChild,received:t,message:e}):this.debug&&console.log(\"Bellhop Instance (\".concat(this.isChild?\"Child\":\"Parent\",\") \").concat(t?\"Receieved\":\"Sent\"),e)}},{key:\"destroy\",value:function(){l(u(r.prototype),\"destroy\",this).call(this),this.disconnect(),this._sendLater.length=0}},{key:\"target\",get:function(){return this.isChild?window.parent:this.iframe.contentWindow}}]),r}();export{y as Bellhop,i as BellhopEventDispatcher};\n//# sourceMappingURL=bellhop.js.map\n","/**\n * @typedef {import('./base-plugins/BasePlugin').BasePlugin} BasePlugin\n */\nimport { Bellhop } from 'bellhop-iframe';\n/**\n *\n *\n * @export\n * @class PluginManager\n */\nexport default class PluginManager {\n /**\n *Creates an instance of PluginManager.\n * @memberof PluginManager\n */\n constructor({ plugins = [] }) {\n this.client = new Bellhop();\n // @ts-ignore\n this.client.hidden = this.client.receive.bind(this.client);\n // @ts-ignore\n this.client.hiddenSend = this.client.send.bind(this.client);\n this.client.receive = function (event) {\n this.hidden(event);\n }.bind(this.client);\n this.client.send = function (event, data) {\n this.hiddenSend(event, data);\n }.bind(this.client);\n\n this.plugins = plugins;\n }\n\n /**\n *\n *\n * @returns\n * @memberof PluginManager\n */\n setupPlugins() {\n const preloads = [];\n for (let i = 0, l = this.plugins.length; i < l; i++) {\n if (!this.plugins[i].preload) {\n continue;\n }\n\n preloads.push(\n this.plugins[i].preload(this).catch(function preloadFail(error) {\n this.plugins[i].preloadFailed = true;\n console.warn(this.plugins[i].name, 'Preload Failed:', error);\n }.bind(this))\n );\n }\n\n // ~wait for all preloads to resolve\n return Promise.all(preloads).then(() => {\n // Remove plugins that fail to load.\n this.plugins = this.plugins.filter(\n plugin => plugin.preloadFailed !== true\n );\n\n //init\n this.plugins.forEach(plugin => {\n if (!plugin.init) {\n return;\n }\n\n plugin.init(this);\n });\n\n //start\n this.plugins.forEach(plugin => {\n if (!plugin.start) {\n return;\n }\n plugin.start(this);\n });\n });\n }\n\n /**\n * Registers a plugin to be used by PluginManagers, sorting it by priority order.\n * @param {BasePlugin} plugin The plugin to register.\n */\n uses(plugin) {\n this.plugins.push(plugin);\n }\n\n /**\n * Finds a plugin by name.\n * @param {string} name The name of the plugin.\n * @returns {BasePlugin}\n */\n getPlugin(name) {\n return this.plugins.find(function (plugin) {\n return plugin.name === name;\n });\n }\n}\n","import 'whatwg-fetch';\n\nimport { Features } from './Features';\nimport PluginManager from './PluginManager';\n// @ts-ignore\nimport { version } from '../package.json';\n\n/**\n * The application container\n * @class Container\n * @property {Bellhop} client Communication layer between the container and application\n * @property {boolean} loaded Check to see if a application is loaded\n * @property {boolean} loading Check to see if a application is loading\n * @property {object} release The current release data\n * @property {HTMLIFrameElement} iframe The DOM object for the iframe\n * @static @property {string} version The current version of the library\n */\nexport class Container extends PluginManager {\n /**\n *Creates an instance of Container.\n * @param {object} config\n * @param {string | HTMLIFrameElement} iframeOrSelector\n * @param {Array | null} [config.plugins]\n * @param {object | null} [config.context={}]\n * @memberof Container\n */\n constructor(iframeOrSelector, { plugins, context = {} } = {}) {\n super({ plugins });\n\n this.iframe = iframeOrSelector instanceof HTMLIFrameElement ? iframeOrSelector : document.querySelector(iframeOrSelector);\n\n if (null === this.iframe) {\n throw new Error('No iframe was found with the provided selector');\n }\n\n this.loaded = false;\n this.loading = false;\n this.release = null;\n\n // context object that plugins can pick up on\n this._context = context;\n\n this.onLoading = this.onLoading.bind(this);\n this.onLoadDone = this.onLoadDone.bind(this);\n this.onLoadDone = this.onLoadDone.bind(this);\n this.onEndGame = this.onEndGame.bind(this);\n this.onLocalError = this.onLocalError.bind(this);\n\n this.initClient();\n this.setupPlugins();\n }\n\n /**\n * The game is starting to load\n * @memberof Container\n */\n onLoading() {\n this.client.trigger('opening');\n }\n\n /**\n * Reset the mutes for audio and captions\n * @memberof Container\n */\n onLoadDone() {\n this.loading = false;\n this.loaded = true;\n this.iframe.classList.remove('loading');\n\n this.client.trigger('opened');\n }\n\n /**\n * The application ended and destroyed itself\n * @memberof Container\n */\n onEndGame() {\n this.reset();\n }\n /**\n * Handle the local errors\n * @method onLocalError\n * @private\n * @param {Event} $event Bellhop event\n */\n onLocalError($event) {\n console.error('SpringRoll Container error: ', $event, new Error().stack);\n }\n\n /**\n * Reset all the buttons back to their original setting\n * and clear the iframe.\n * @memberof Container\n */\n reset() {\n const wasLoaded = this.loaded || this.loading;\n\n if (wasLoaded) {\n this.client.trigger('closed');\n }\n\n // Reset state\n this.loaded = false;\n this.loading = false;\n\n // Clear the iframe src location\n this.iframe.setAttribute('src', '');\n this.iframe.classList.remove('loading');\n }\n\n /**\n * Set up communication layer between site and application.\n * May be called from subclasses if they create/destroy Bellhop instances.\n * @memberof Container\n */\n initClient() {\n //Handle bellhop events coming from the application\n this.client.on('loading', this.onLoading);\n this.client.on('loaded', this.onLoadDone);\n this.client.on('loadDone', this.onLoadDone);\n this.client.on('endGame', this.onEndGame);\n this.client.on('localError', this.onLocalError);\n // @ts-ignore\n this.client.connect(this.iframe);\n }\n\n /**\n * If there was an error when closing, reset the container\n * @memberof Container\n */\n _onCloseFailed() {\n this.reset(); // force close the app\n }\n\n /**\n * Open a application or path\n * @param {string} userPath The full path to the application to load\n * @param {object} [userOptions] The open options\n * @param {boolean} [userOptions.singlePlay=false] If we should play in single play mode\n * @param {object | null} [userOptions.playOptions=null] The optional play options\n * @memberof Container\n */\n _internalOpen(userPath, { singlePlay = false, playOptions = null } = {}) {\n const options = { singlePlay, playOptions };\n this.reset();\n\n this.loading = true;\n this.initClient();\n\n const err = Features.basic();\n if (err) {\n console.error('ERROR:', err);\n this.client.trigger('unsupported');\n }\n\n let path = userPath;\n if (null !== options.playOptions) {\n const playOptionsQueryString =\n 'playOptions=' +\n encodeURIComponent(JSON.stringify(options.playOptions));\n\n path =\n -1 === userPath.indexOf('?')\n ? `${userPath}?${playOptionsQueryString}`\n : `${userPath}&${playOptionsQueryString}`;\n }\n\n this.iframe.classList.add('loading');\n this.iframe.setAttribute('src', path);\n\n this.client.respond('singlePlay', singlePlay);\n this.client.respond('playOptions', playOptions);\n this.client.trigger('open');\n }\n\n /**\n *\n *\n * @param {string} path\n * @param {object} [options={}]\n * @memberof Container\n */\n openPath(path, options = {}) {\n // This should be deprecated, support for old function signature\n if ('object' !== typeof options) {\n console.warn(\n 'SpringRoll Container.openPath was passed a invalid options parameter. Using default parameters instead'\n );\n options = {};\n }\n\n this._internalOpen(\n path,\n Object.assign(\n {\n singlePlay: false,\n playOptions: {}\n },\n options\n )\n );\n }\n\n /**\n * Open application based on an API Call to SpringRoll Connect\n * @param {string} api\n * @param {object} options\n * @param {string} [options.query='']\n * @param {boolean} [options.singlePlay=false]\n * @param {null | object} [options.playOptions=null]\n * @returns {Promise}\n * @memberof Container\n */\n async openRemote(\n api,\n { query = '', singlePlay = false, playOptions = null } = {}\n ) {\n this.release = null;\n\n const response = await fetch(api, {\n headers: {\n 'Content-Type': 'application/json'\n }\n });\n\n const json = await response.json();\n\n // if SpringRollConnect denoted that something failed, send that error back\n if (!json.success) {\n throw new Error(json.error);\n }\n\n // If the browser doesn't support the capabilities requested by this game, also fail.\n const release = json.data;\n const error = Features.test(release.capabilities);\n if (error) {\n this.client.trigger('unsupported', { error });\n throw new Error(error);\n }\n\n // otherwise, open the game\n this.release = release;\n this._internalOpen(release.url + query, {\n singlePlay,\n playOptions\n });\n }\n\n /**\n * Destroy and don't use after this\n * @memberof Container\n */\n destroy() {\n this.reset();\n\n this.iframe = null;\n this.options = null;\n this.release = null;\n }\n\n /**\n * Tell the application to start closing\n * @memberof Container\n */\n close() {\n if (this.loading || this.loaded) {\n this.client.trigger('close');\n // Start the close\n this.client.send('close');\n } else {\n this.reset();\n }\n }\n\n /**\n * the current _context object\n * @readonly\n * @memberof Container\n * @return {object}\n */\n get context() {\n return this._context;\n }\n\n /**\n * sets _context object to new object\n * @param {object} context\n * @memberof Container\n */\n set context(newContext) {\n if (typeof newContext !== 'object') {\n console.error('[SpringRollContainer] Context: new context provided is not an object');\n return;\n }\n this._context = newContext;\n }\n\n\n\n /**\n * The current version of SpringRollContainer\n * @readonly\n * @static\n * @return {string}\n * @memberof Container\n */\n static get version() {\n return version;\n }\n}\n","/**\n * Handle the page visiblity change, if supported. Application uses one of these to\n * monitor page visibility. It is suggested that you listen to `pause`, `paused`,\n * or `resumed` events on the Application instead of using one of these yourself.\n *\n * @export\n * @class PageVisibility\n * @constructor\n * @param {Function} onFocus Callback when the page becomes visible\n * @param {Function} onBlur Callback when the page loses visibility\n */\nexport class PageVisibility {\n /**\n *Creates an instance of PageVisibility.\n * @param { function } [onFocus=function() {}]\n * @param { function } [onBlur=function() {}]\n * @memberof PageVisibility\n */\n constructor(onFocus = function() {}, onBlur = function() {}) {\n this._onFocus = onFocus;\n this._onBlur = onBlur;\n this.onFocus = function(e) {\n if (this.enabled) {\n this._onFocus(e);\n }\n }.bind(this);\n this.onBlur = function(e) {\n if (this.enabled) {\n this._onBlur(e);\n }\n }.bind(this);\n this._enabled = false;\n this.enabled = true;\n\n this.onToggle = this.onToggle.bind(this);\n }\n\n /**\n * Disable the detection\n * @memberof PageVisibility\n */\n destroy() {\n this.enabled = false;\n this.onToggle = null;\n this.onFocus = null;\n this.onBlur = null;\n }\n\n /**\n * The visibility toggle listener function\n * @param {Event} $event;\n * @memberof PageVisibility\n */\n onToggle($event) {\n if (this.enabled) {\n document.hidden ? this.onBlur($event) : this.onFocus($event);\n }\n }\n\n /**\n * If this object is enabled.\n * @returns {boolean}\n * @memberof PageVisibility\n */\n get enabled() {\n return this._enabled;\n }\n\n /**\n * Sets the state of the object\n * @memberof PageVisibility\n */\n set enabled(enable) {\n this._enabled = enable;\n\n document.removeEventListener('visibilitychange', this.onToggle, false);\n window.removeEventListener('blur', this.onBlur, false);\n window.removeEventListener('focus', this.onFocus, false);\n window.removeEventListener('pagehide', this.onBlur, false);\n window.removeEventListener('pageshow', this.onFocus, false);\n window.removeEventListener('visibilitychange', this.onToggle, false);\n\n if (this._enabled) {\n document.addEventListener('visibilitychange', this.onToggle, false);\n window.addEventListener('blur', this.onBlur, false);\n window.addEventListener('focus', this.onFocus, false);\n window.addEventListener('pagehide', this.onBlur, false);\n window.addEventListener('pageshow', this.onFocus, false);\n window.addEventListener('visibilitychange', this.onToggle, false);\n }\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar fails = require('../internals/fails');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// FF99+ bug\nvar BROKEN_ON_SPARSE = fails(function () {\n // eslint-disable-next-line es/no-array-prototype-includes -- detection\n return !Array(1).includes();\n});\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar whitespaces = require('../internals/whitespaces');\n\nvar replace = uncurryThis(''.replace);\nvar ltrim = RegExp('^[' + whitespaces + ']+');\nvar rtrim = RegExp('(^|[^' + whitespaces + '])[' + whitespaces + ']+$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = toString(requireObjectCoercible($this));\n if (TYPE & 1) string = replace(string, ltrim, '');\n if (TYPE & 2) string = replace(string, rtrim, '$1');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","var PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]()\n || non[METHOD_NAME]() !== non\n || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME);\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","var call = require('../internals/function-call');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar regExpFlags = require('../internals/regexp-flags');\n\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (R) {\n var flags = R.flags;\n return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R)\n ? call(regExpFlags, R) : flags;\n};\n","'use strict';\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar defineBuiltIn = require('../internals/define-built-in');\nvar anObject = require('../internals/an-object');\nvar $toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = PROPER_FUNCTION_NAME && nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n defineBuiltIn(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var pattern = $toString(R.source);\n var flags = $toString(getRegExpFlags(R));\n return '/' + pattern + '/' + flags;\n }, { unsafe: true });\n}\n","/**\n * The SavedData functions use localStorage and sessionStorage, with a cookie fallback.\n *\n * @class SavedData\n */\nexport class SavedData {\n\n /**\n * Constructor for IndexedDB work\n */\n constructor(dbName = '') {\n this.db = null;\n this.dbName = dbName;\n }\n /**\n * Remove a saved variable by name.\n * @method remove\n * @static\n * @param {String} name The name of the value to remove\n */\n static remove(name) {\n localStorage.removeItem(name);\n sessionStorage.removeItem(name);\n }\n\n /**\n * Save a variable.\n * @method write\n * @static\n * @param {string} name The name of the value to save\n * @param {string} value The value to save. This will be run through JSON.stringify().\n * @param {boolean} [tempOnly=false] If the value should be saved only in the current browser session.\n */\n static write(name, value, tempOnly = false) {\n\n return tempOnly\n ? sessionStorage.setItem(\n name,\n JSON.stringify('function' === typeof value ? value() : value)\n )\n : localStorage.setItem(\n name,\n JSON.stringify('function' === typeof value ? value() : value)\n );\n }\n\n /**\n * Read the value of a saved variable\n * @method read\n * @static\n * @param {String} name The name of the variable\n * @return {*} The value (run through `JSON.parse()`) or null if it doesn't exist\n */\n static read(name) {\n const value = localStorage.getItem(name) || sessionStorage.getItem(name);\n\n if ('string' === typeof value) {\n try {\n return JSON.parse(value);\n } catch (err) {\n return value;\n }\n } else {\n return value;\n }\n }\n\n /**\n * Open a connection with the IDB Database and optionally add or delete\n * Indexes and stores\n *\n * @param {string} dbName The name of your IndexedDB database\n * @param {string} dbVersion The version number of the database. Additions and deletions will be ignored if lower than current version number\n * @param {JSON} additions Any additions to the structure of the database\n * @param {array} additions.stores Any stores to be added into the database syntax: {storeName: '[name]', options: {[optionally add options]}}\n * @param {array} additions.indexes Any Indexes to be added to the database syntax: {storeName: '[name]', options: {[optionally add options]}}\n */\n IDBOpen( dbName, dbVersion = null, additions = {}, deletions = {}, callback ) {\n const request = dbVersion ? indexedDB.open(dbName, dbVersion) : indexedDB.open(dbName);\n\n request.onsuccess = e => {\n // Database successfully opened. This will run along with onupgradeneeded\n this.db = e.target.result;\n\n if (this.db.version == dbVersion | dbVersion == null) {\n callback({result: 'Success: IDBOpen', success: true});\n }\n };\n\n request.onerror = () => {\n callback({result: request.error.toString(), success: false});\n };\n\n // on upgrade needed fires only if the dbVersion is higher than the current version number\n request.onupgradeneeded = e => {\n // Ensure the proper database object is stored\n this.db = e.target.result;\n\n if (additions != null) {\n if (additions.stores) {\n additions.stores.forEach(store => {\n this.db.createObjectStore(store.storeName, store.options);\n });\n }\n if (additions.indexes != null) {\n additions.indexes.forEach(index => {\n // Add indexes last to avoid adding an index to a store that has yet to be created\n // Open a transaction returning a store object\n const storeObject = request.transaction.objectStore(index.storeName);\n storeObject.createIndex(index.indexName, index.keyPath, index.options);\n });\n }\n }\n\n if (deletions != null) {\n if (deletions.indexes != null) {\n // delete indexes first to avoid deleting an index to a store that has already to been deleted\n deletions.indexes.forEach((index) => {\n // Open a transaction returning a store object\n const storeObject = request.transaction.objectStore(index.storeName);\n storeObject.deleteIndex(index.indexName);\n });\n }\n if (deletions.stores) {\n deletions.stores.forEach((store) => {\n this.db.deleteObjectStore(store.storeName);\n });\n }\n }\n callback({result: 'Success: IDBOpen onupgradeneeded ran', success: true});\n };\n }\n\n /**\n * Delete a database and all records, stores, and indexes associated\n * @param {string} dbName Name of the database to delete\n * @param {object} options Optionally pass in options\n * @param {function} callback The callback to be run on success or error. One value will be passed into this function\n */\n IDBDeleteDB(dbName, options = null, callback = {}) {\n const request = options != null ? indexedDB.deleteDatabase(dbName, options): indexedDB.deleteDatabase(dbName);\n\n request.onsuccess = (e) => {\n callback({result: 'Success: Database Deleted, returned: ' + e.result, success: true});\n };\n request.onerror = () => {\n callback({result: request.error.toString(), success: false});\n };\n\n\n }\n\n /**\n * Add a record to a given store\n * @param {string} storeName The name of the store from which the record will be updated\n * @param {string} key the key of the record to be updated\n * @param {string} value The value for the record with the given key to be updated\n * @param {function} callback The method to call on success or failure. A single value will be passed in\n */\n IDBAdd(storeName, value, key, callback) {\n if ( !this.db && this.dbName != '') {\n this.IDBOpen(this.dbName);\n }\n\n const tx = this.db.transaction(storeName, 'readwrite');\n tx.onerror = () => callback({result: tx.error != null ? tx.error.toString() : 'Aborted: No error given, was the record already added?', success: false});\n tx.onabort = () => callback({result: tx.error != null ? tx.error.toString() : 'Aborted: No error given, was the record already added?', success: false});\n\n tx.oncomplete = () => callback({result: 'Success: Record Added', success: true});\n const store = tx.objectStore(storeName);\n store.add(value, key);\n }\n\n /**\n * Update a record in a given store\n * @param {string} storeName The name of the store from which the record will be updated\n * @param {string} key the key of the record to be updated\n * @param {string | object} value The altered object to be updated from the given store\n * @param {function} callback The method to call on success or failure. A single value will be passed in\n */\n IDBUpdate (storeName, key, value, callback) {\n if ( !this.db && this.dbName != '') {\n this.IDBOpen(this.dbName);\n }\n\n const tx = this.db.transaction(storeName, 'readwrite');\n const store = tx.objectStore(storeName);\n\n const updateRequest = store.put(value, key);\n\n updateRequest.onsuccess = () => {\n callback({result: 'Success: Record Updated', success: true});\n };\n\n updateRequest.onerror = () => callback({result: updateRequest.error.toString(), success: false});\n }\n\n /**\n * Delete a given record within a given store\n * @param {string} storeName The name of the store from which the record will be removed\n * @param {string} key the key of the record to be removed\n * @param {function} callback The method to call on success or failure. A single value will be passed in\n */\n IDBRemove(storeName, key, callback) {\n if ( !this.db && this.dbName != '') {\n this.IDBOpen(this.dbName);\n }\n\n const tx = this.db.transaction(storeName, 'readwrite');\n tx.onerror = () => callback({result: this.db.error.toString(), success: false});\n const store = tx.objectStore(storeName);\n store.delete(key);\n\n tx.oncomplete = () => callback({result: 'Removed Successfully', success: true});\n\n }\n\n /**\n * Return a record from a given store with a given key\n * @param {string} storeName the name of the store to read from\n * @param {string} key The key for the record in the given store\n * @param {function} callback The method to call on success or failure. A single value will be passed in\n */\n IDBRead(storeName, key, callback) {\n // Open transaction with a store\n const tx = this.db.transaction(storeName, 'readonly');\n // Get the store object from the transaction\n const store = tx.objectStore(storeName);\n\n tx.onerror = () => callback({result: this.db.error.toString(), success: false});\n\n const readRequest = store.get(key);\n\n readRequest.onsuccess = () => {\n callback({result: readRequest.result, success: readRequest.result != undefined ? true : false});\n };\n\n }\n\n /**\n * Get all keys with given index\n * @param {string} storeName the name of the store to be read from\n * @param {string} indexName the name of the index to be read from\n * @param {string} query Optionally give a keyRange of records to return\n * @param {string} count Optionally give a max limit on records to be returned\n * @param {function} callback The method to call on success or failure. A single value will be passed in as a parameter\n */\n IDBGetIndexKeys (storeName, indexName, query = null, count = null, callback = {}) {\n // Open transaction with a store\n const tx = this.db.transaction(storeName, 'readonly');\n // Get the store object from the transaction\n const store = tx.objectStore(storeName);\n\n let index;\n\n tx.onerror = () => callback({result: this.db.error.toString(), success: false});\n\n if (query && count) {\n index = store.index(indexName, query, count);\n } else if (query) {\n index = store.index(indexName, query);\n } else {\n index = store.index(indexName);\n }\n\n const getAllKeysRequest = index.getAllKeys();\n\n\n getAllKeysRequest.onsuccess = function(e) {\n callback({result : e.result, success: true});\n };\n }\n\n /**\n * Get all records from a store\n * @param {string} storeName The store to get all records from\n * @param {integer} count Optionally the count of records to return\n * @param {function} callback The method to call on success or failure. A single value will be passed in\n */\n IDBReadAll(storeName, count, callback) {\n // Open transaction with a store\n const tx = this.db.transaction(storeName, 'readonly');\n // Get the store object from the transaction\n const store = tx.objectStore(storeName);\n\n const readRequest = count != null ? store.getAll(null, count) : store.getAll();\n\n // const readRequest = store.getAll();\n\n tx.onerror = () => callback({result: tx.error.toString(), success: false});\n\n\n readRequest.onsuccess = () => {\n callback({result: readRequest.result, success: readRequest.result != undefined ? true : false});\n };\n }\n\n /**\n * Get the version number of a given database. This will create a database if it doesn't exist.\n * Do not call this after opening a connection with the database\n * @param {string} dbName The name of the database for which the version will be returned\n * @param {function} callback The method to call on success or failure. A single value will be passed in\n */\n IDBGetVersion(dbName, callback) {\n // Open the database\n const dBOpenRequest = window.indexedDB.open(dbName);\n\n // these two event handlers act on the database\n // being opened. successfully, or not\n dBOpenRequest.onerror = function() {\n callback({result: dBOpenRequest.error.toString(), success: false});\n };\n\n dBOpenRequest.onsuccess = function() {\n const db = dBOpenRequest.result;\n callback({result: db.version, success: true});\n };\n }\n\n /**\n * Closes the connection to the database if open\n * @param {function} callback The method to call on success or failure. A single value will be passed in\n */\n IDBClose(callback) {\n if ( this.db ) {\n this.db.close();\n callback({result: 'Success: Closed Database Connection', success: true});\n }\n }\n\n}\n","/* eslint-disable no-unused-vars */\nimport { SavedData } from '../SavedData';\nimport { Container } from '../Container';\n\n/**\n *\n *\n * @export\n * @class BasePlugin\n * @property {Bellhop} client\n * @property {string} name\n */\nexport class BasePlugin {\n /**\n *Creates an instance of BasePlugin.\n * @param {string} name\n * @memberof BasePlugin\n */\n constructor(name) {\n this.name = name;\n this.client = null;\n }\n\n /**\n *\n * @param {Container} [container]\n * @memberof BasePlugin\n * @returns {Promise}\n */\n async preload({ client }) {\n this.client = client;\n }\n\n /**\n *\n * @memberof BasePlugin\n */\n start() {\n this.client.on('loaded', this.sendAllProperties);\n this.client.on('loadDone', this.sendAllProperties);\n }\n\n /**\n *\n * @param {Container} [_]\n * @memberof BasePlugin\n */\n init(_) { }\n\n /**\n *\n *\n * @param {string} prop\n * @param {any} value\n * @param {Boolean} disableSend\n * @memberof BasePlugin\n */\n sendProperty(prop, value, disableSend = false) {\n SavedData.write(prop, value);\n if (disableSend) { return; }\n this.client.send(prop, value);\n }\n\n\n /**\n *\n * @param {Container} [_]\n * @memberof BasePlugin\n */\n sendAllProperties(_) { }\n\n /**\n *\n * @param {string} warningText\n * @memberof BasePlugin\n */\n warn(warningText) {\n console.warn(`[SpringRollContainer] ${this.name}: ${warningText}`);\n }\n}\n","/* eslint-disable no-unused-vars */\nimport { BasePlugin } from './BasePlugin';\nimport { Container } from '../Container';\n\n/**\n *\n *\n * @export\n * @class ButtonPlugin\n * @extends {BasePlugin}\n */\nexport class ButtonPlugin extends BasePlugin {\n /**\n *Creates an instance of ButtonPlugin.\n * @param {string} name\n *\n * @memberof ButtonPlugin\n */\n constructor(name) {\n super(name);\n this.sendMutes = false;\n }\n\n /**\n * @memberof ButtonPlugin\n * @param {Container} [container]\n */\n init(container) {\n // eslint-disable-line no-unused-vars\n this.sendMutes = true;\n }\n\n /**\n *\n * Applies the disabled class to the provided element\n * @param {HTMLButtonElement | Element} button\n * @memberof ButtonPlugin\n */\n _disableButton(button) {\n if (button instanceof HTMLButtonElement) {\n button.classList.remove('enabled');\n button.classList.add('disabled');\n }\n }\n\n /**\n *\n *\n * @memberof ButtonPlugin\n */\n reset() {\n this.sendMutes = false;\n }\n\n /**\n *\n *\n * @param {string} prop\n * @param {Element} button\n * @param {Boolean} muted\n * @param {Boolean} disableSend\n * @memberof ButtonPlugin\n */\n _setMuteProp(prop, button, muted, disableSend = false) {\n console.log('_setmuteprop', prop, muted, disableSend);\n if (Array.isArray(button)) {\n button.forEach(b => this.changeMutedState(b, muted));\n } else {\n this.changeMutedState(button, muted);\n }\n\n this.sendProperty(prop, muted, disableSend);\n }\n\n /**\n *\n *\n * @param {Element} button\n * @param {Boolean} muted\n * @returns\n * @memberof ButtonPlugin\n */\n changeMutedState(button, muted = false) {\n //most times button will be a Button class rather than an HTMLElement\n //But just in case the Button ui-element is not being used\n const htmlButton = button.button ? button.button : button;\n\n if (!(htmlButton instanceof HTMLElement)) {\n return;\n }\n\n htmlButton.classList.remove('unmuted');\n htmlButton.classList.remove('muted');\n htmlButton.classList.add(muted ? 'muted' : 'unmuted');\n }\n}\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","var isRegExp = require('../internals/is-regexp');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw $TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\nvar stringIndexOf = uncurryThis(''.indexOf);\n\n// `String.prototype.includes` method\n// https://tc39.es/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~stringIndexOf(\n toString(requireObjectCoercible(this)),\n toString(notARegExp(searchString)),\n arguments.length > 1 ? arguments[1] : undefined\n );\n }\n});\n","var toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\n\nvar $Array = Array;\nvar max = Math.max;\n\nmodule.exports = function (O, start, end) {\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = $Array(max(fin - k, 0));\n for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n};\n","/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice-simple');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return arraySlice(windowNames);\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) == 'Window'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","// FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it\nvar fails = require('../internals/fails');\n\nmodule.exports = fails(function () {\n if (typeof ArrayBuffer == 'function') {\n var buffer = new ArrayBuffer(8);\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-defineproperty -- safe\n if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 });\n }\n});\n","var fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar $isExtensible = Object.isExtensible;\nvar FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); });\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\nmodule.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) {\n if (!isObject(it)) return false;\n if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) == 'ArrayBuffer') return false;\n return $isExtensible ? $isExtensible(it) : true;\n} : $isExtensible;\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","var $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternalModule = require('../internals/object-get-own-property-names-external');\nvar isExtensible = require('../internals/object-is-extensible');\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar REQUIRED = false;\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + id++, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar enable = function () {\n meta.enable = function () { /* empty */ };\n REQUIRED = true;\n var getOwnPropertyNames = getOwnPropertyNamesModule.f;\n var splice = uncurryThis([].splice);\n var test = {};\n test[METADATA] = 1;\n\n // prevent exposing of metadata key\n if (getOwnPropertyNames(test).length) {\n getOwnPropertyNamesModule.f = function (it) {\n var result = getOwnPropertyNames(it);\n for (var i = 0, length = result.length; i < length; i++) {\n if (result[i] === METADATA) {\n splice(result, i, 1);\n break;\n }\n } return result;\n };\n\n $({ target: 'Object', stat: true, forced: true }, {\n getOwnPropertyNames: getOwnPropertyNamesExternalModule.f\n });\n }\n};\n\nvar meta = module.exports = {\n enable: enable,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","var isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]);\n defineBuiltIn(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n uncurriedNativeMethod(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n uncurriedNativeMethod(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.enable();\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, NativePrototype);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, constructor: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","var defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) defineBuiltIn(target, key, src[key], options);\n return target;\n};\n","'use strict';\nvar create = require('../internals/object-create');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n defineBuiltIns(Prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n defineBuiltIns(Prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineBuiltInAccessor(Prototype, 'size', {\n configurable: true,\n get: function () {\n return getInternalState(this).size;\n }\n });\n return Constructor;\n },\n setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n // return step by kind\n if (kind == 'keys') return createIterResultObject(entry.key, false);\n if (kind == 'values') return createIterResultObject(entry.value, false);\n return createIterResultObject([entry.key, entry.value], false);\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Set` constructor\n// https://tc39.es/ecma262/#sec-set-objects\ncollection('Set', function (init) {\n return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","var $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n keys: function keys(it) {\n return nativeKeys(toObject(it));\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n\n// `Array.prototype.map` method\n// https://tc39.es/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\nvar propertyIsEnumerable = uncurryThis($propertyIsEnumerable);\nvar push = uncurryThis([].push);\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || propertyIsEnumerable(O, key)) {\n push(result, TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.es/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.es/ecma262/#sec-object.values\n values: createMethod(false)\n};\n","var $ = require('../internals/export');\nvar $values = require('../internals/object-to-array').values;\n\n// `Object.values` method\n// https://tc39.es/ecma262/#sec-object.values\n$({ target: 'Object', stat: true }, {\n values: function values(O) {\n return $values(O);\n }\n});\n","import { BasePlugin } from '../base-plugins/BasePlugin';\n\n/**\n * @export\n * @class RadioGroup\n * @property {string} controlName\n * @property {string} featureName\n * @property {string} radioElements\n * @property {string} defaultValue\n */\nexport class RadioGroup extends BasePlugin {\n /**\n * creates an instance of RadioGroup\n * @constructor\n * @param {string} selector selector string for the radio group\n * @param {string} controlName the name of the control (used for warning logging only)\n * @param {string} [featureName='captionStyles'] the feature name used by Springroll. Defaults to captionStyles\n * @param {string} defaultValue the value attribute of the radio button that should be selected by default\n * @param {string} pluginName name of the plugin that instantiated the RadioGroup. Used for logging warnings\n * @memberof RadioGroupPlugin\n */\n constructor({selector, controlName, featureName = 'captionStyles', defaultValue, pluginName}) {\n super(pluginName);\n this.controlName = controlName;\n this.featureName = featureName;\n this.radioElements = document.querySelectorAll(selector);\n this.defaultValue = defaultValue;\n\n this.radioGroup = {};\n\n if (this.radioElements.length <= 0) {\n this.warn(`${this.controlName} RadioGroup found no HTMLElements with selector: ${selector}`);\n return;\n }\n\n this.radioElements.forEach(radio => {\n if (radio.type !== 'radio') {\n this.warn(`${this.controlName} was provided a non Radio Button element with selector: ${selector}`);\n return;\n }\n radio.value = radio.value.toLowerCase();\n\n this.radioGroup[radio.value] = radio;\n });\n\n if (!this.radioGroup[this.defaultValue]) {\n this.warn(`${this.controlName} RadioGroup for selector: ${selector} does not have a radio button with value ${this.defaultValue} to use as default value. Using first element as default`);\n this.defaultValue = this.radioElements[0].value.toLowerCase();\n }\n\n this.radioGroup[this.defaultValue].checked = true;\n }\n\n /**\n * @param {string[]} valuesArray Array of acceptable values to check against the radio group.\n * @return {boolean}\n * @memberof RadioGroup\n */\n hasOnly(valuesArray) {\n\n for (const key in this.radioGroup) {\n if (!valuesArray.includes(this.radioGroup[key].value)) {\n this.warn(`${this.controlName} radio button value: ${this.radioGroup[key].value} is not an accepted value. Skipping radio group`);\n return false;\n }\n }\n\n return true;\n }\n\n /**\n * @return {boolean}\n * @memberof RadioGroup\n */\n hasDuplicateValues() {\n return this.values.length !== [...new Set(this.values)].length;\n }\n\n /**\n * Adds change listeners to the radio buttons using the given callback function\n * @memberof RadioGroup\n * @param {Function} callBack event to fire on change\n */\n enableRadioEvents(callBack) {\n if (!this.radioGroup.length <= 0) {\n return;\n }\n\n const event = callBack;\n for (const radio in this.radioGroup) {\n this.radioGroup[radio].addEventListener('change', event);\n }\n }\n\n /**\n * removes the event listeners from the RadioGroup\n * @memberof RadioGroup\n * @param {Function} callBack event to fire on change\n */\n disableRadioEvents(callBack) {\n if (!this.radioGroup.length <= 0) {\n return;\n }\n for (const radio in this.radioGroup) {\n this.radioGroup[radio].removeEventListener('change', callBack);\n }\n }\n\n /**\n * enables display of the Radio buttons if the correct feature is present in the features list\n * @memberof RadioGroup\n * @param {object} data Object containing which features are enabled\n */\n displayRadios(data) {\n if (this.radioGroup.length <= 0 && data[this.featureName]) {\n this.warn(`${this.controlName} was not provided a valid input element or selector but '${this.featureName}' was included as a game feature`);\n return;\n }\n\n if (this.radioGroup.length <= 0) {\n return;\n }\n\n if (data[this.featureName]) {\n return;\n }\n\n for (const radio in this.radioGroup) {\n this.radioGroup[radio].style.display = 'none';\n }\n }\n\n /**\n * Reset the radio button states\n * @memberof RadioGroup\n */\n resetState() {\n this.radioGroup[this.defaultValue].checked = true;\n }\n\n /**\n * @readonly\n * @returns {number}\n * @memberof RadioGroup\n */\n get length() {\n return Object.keys(this.radioGroup).length;\n }\n\n /**\n * @readonly\n * @returns {number}\n * @memberof RadioGroup\n */\n get values() {\n return Object.values(this.radioGroup).map(radio => radio.value);\n }\n}\n","import { BasePlugin } from './BasePlugin';\nimport { RadioGroup } from '../ui-elements/RadioGroup';\n\n/**\n *\n *\n * @export\n * @class RadioGroupPlugin\n */\nexport class RadioGroupPlugin extends BasePlugin {\n /**\n *\n *Creates an instance of RadioGroupPlugin.\n * @constructor\n * @memberof RadioGroupPlugin\n * @param {string} name\n */\n constructor(cssSelector, name, {supportedValues, initialValue, controlName, featureName, radioCount}) {\n super(name);\n this.selectors = cssSelector ? cssSelector.split(',') : [];\n this.supportedValues = supportedValues;\n this.initialValue = supportedValues.includes(initialValue) ? initialValue : supportedValues[0];\n this.controlName = controlName;\n this.featureName = featureName;\n this.radioCount = radioCount;\n this.sendAllProperties = this.sendAllProperties.bind(this);\n\n this._currentValue = this.initialValue;\n\n this.radioGroups = this.setUpRadios(this.selectors);\n\n this.radioGroupsLength = this.radioGroups.length;\n }\n\n /**\n * @memberof RadioGroupPlugin\n * @param {string[]} selectors the separated selector strings used to target the radio button groups\n * @returns {RadioGroup[]}\n */\n setUpRadios(selectors) {\n const radioGroups = [];\n\n selectors.forEach((selector) => {\n const radioGroup = new RadioGroup({\n selector: selector.trim(),\n controlName: this.controlName,\n defaultValue: this.initialValue,\n pluginName: this.name,\n featureName: this.featureName\n });\n\n if (radioGroup.length !== this.radioCount) {\n this.warn(`Selector \"${selector}\" did not find exactly ${this.radioCount} radio buttons for ${this.controlName}. Skipping selector`);\n return;\n }\n\n if (!radioGroup.hasOnly(this.supportedValues)) {\n return;\n }\n\n if (radioGroup.hasDuplicateValues()) {\n this.warn(`Duplicate radio button values detected (values: ${radioGroup.values} ). Skipping radio group`);\n return;\n }\n\n radioGroups.push(radioGroup);\n });\n\n return radioGroups;\n }\n\n /**\n * @memberof RadioGroupPlugin\n */\n start() {\n this.client.on('loaded', this.sendAllProperties);\n this.client.on('loadDone', this.sendAllProperties);\n }\n\n /**\n *\n * Sends initial caption properties to the application\n * @memberof RadioGroupPlugin\n */\n sendAllProperties() {\n this.sendProperty(this.featureName, this.property);\n }\n\n /**\n * @memberof RadioGroupPlugin\n * @param {string} newValue\n */\n set currentValue(newValue) {\n if (!this.supportedValues.includes(newValue)) {\n return;\n }\n\n this._currentValue = newValue;\n\n for (let i = 0, l = this.radioGroups.length; i < l; i++) {\n this.radioGroups[i].radioGroup[newValue].checked = true;\n }\n }\n\n /**\n * @memberof RadioGroupPlugin\n * @return {string}\n */\n get currentValue() {\n return this._currentValue;\n }\n\n}\n","var uncurryThis = require('../internals/function-uncurry-this');\n\n// `thisNumberValue` abstract operation\n// https://tc39.es/ecma262/#sec-thisnumbervalue\nmodule.exports = uncurryThis(1.0.valueOf);\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar path = require('../internals/path');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar hasOwn = require('../internals/has-own-property');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isSymbol = require('../internals/is-symbol');\nvar toPrimitive = require('../internals/to-primitive');\nvar fails = require('../internals/fails');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar thisNumberValue = require('../internals/this-number-value');\nvar trim = require('../internals/string-trim').trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = global[NUMBER];\nvar PureNumberNamespace = path[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\nvar TypeError = global.TypeError;\nvar stringSlice = uncurryThis(''.slice);\nvar charCodeAt = uncurryThis(''.charCodeAt);\n\n// `ToNumeric` abstract operation\n// https://tc39.es/ecma262/#sec-tonumeric\nvar toNumeric = function (value) {\n var primValue = toPrimitive(value, 'number');\n return typeof primValue == 'bigint' ? primValue : toNumber(primValue);\n};\n\n// `ToNumber` abstract operation\n// https://tc39.es/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, 'number');\n var first, third, radix, maxCode, digits, length, index, code;\n if (isSymbol(it)) throw TypeError('Cannot convert a Symbol value to a number');\n if (typeof it == 'string' && it.length > 2) {\n it = trim(it);\n first = charCodeAt(it, 0);\n if (first === 43 || first === 45) {\n third = charCodeAt(it, 2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (charCodeAt(it, 1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i\n default: return +it;\n }\n digits = stringSlice(it, 2);\n length = digits.length;\n for (index = 0; index < length; index++) {\n code = charCodeAt(digits, index);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\nvar FORCED = isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'));\n\nvar calledWithNew = function (dummy) {\n // includes check on 1..constructor(foo) case\n return isPrototypeOf(NumberPrototype, dummy) && fails(function () { thisNumberValue(dummy); });\n};\n\n// `Number` constructor\n// https://tc39.es/ecma262/#sec-number-constructor\nvar NumberWrapper = function Number(value) {\n var n = arguments.length < 1 ? 0 : NativeNumber(toNumeric(value));\n return calledWithNew(this) ? inheritIfRequired(Object(n), this, NumberWrapper) : n;\n};\n\nNumberWrapper.prototype = NumberPrototype;\nif (FORCED && !IS_PURE) NumberPrototype.constructor = NumberWrapper;\n\n$({ global: true, constructor: true, wrap: true, forced: FORCED }, {\n Number: NumberWrapper\n});\n\n// Use `internal/copy-constructor-properties` helper in `core-js@4`\nvar copyConstructorProperties = function (target, source) {\n for (var keys = DESCRIPTORS ? getOwnPropertyNames(source) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES2015 (in case, if modules with ES2015 Number statics required before):\n 'EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,' +\n // ESNext\n 'fromString,range'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (hasOwn(source, key = keys[j]) && !hasOwn(target, key)) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n\nif (IS_PURE && PureNumberNamespace) copyConstructorProperties(path[NUMBER], PureNumberNamespace);\nif (FORCED || IS_PURE) copyConstructorProperties(path[NUMBER], NativeNumber);\n","import { SavedData } from '../SavedData';\n\n/**\n * @export\n * @class Slider\n */\nexport class Slider {\n /**\n *Creates an instance of Slider\n * @param {object} params\n * @param {string | HTMLInputElement} params.slider the slider element or a selector string\n * @param {string} params.control the feature that this slider controols\n * @param {number} [min=0] slider min value\n * @param {number} [max=1] slider max value\n * @param {number} [step=0.1] slider step value\n * @param {number} [defaultValue=1] slider starting value\n * @memberof SliderPlugin\n */\n constructor({\n slider,\n control,\n min = 0,\n max = 1,\n step = 0.1,\n defaultValue = 1\n }) {\n this.min = min;\n this.max = max;\n this.step = step;\n this.sliderValue = defaultValue;\n this.control = control;\n this.slider = this.setUpSlider(slider, control);\n }\n\n /**\n * @param {string | HTMLInputElement | HTMLElement} slider\n * @param {string} control The control element (sensitivity, difficulty, pointer size, etc) this slider will be controlling\n * @returns {Element | HTMLElement}\n * @memberof Slider\n */\n setUpSlider(slider, control) {\n if ('string' === typeof slider) {\n slider = document.querySelector(slider);\n }\n\n if (!slider || 'range' !== slider.type) {\n return null;\n }\n const value = SavedData.read(control);\n\n slider.min = this.min;\n slider.max = this.max;\n slider.step = this.step;\n\n if ((value || value === 0) && value.toString().trim().length > 0) {\n slider.value = value;\n this.sliderValue = value;\n } else {\n slider.value = this.sliderValue;\n }\n\n return slider;\n }\n\n /**\n * Controls the range of the slider\n * @param {number} i\n * @returns\n * @memberof Slider\n */\n sliderRange(i) {\n if (i < this.min) {\n return this.min;\n } else if (i > this.max) {\n return this.max;\n } else {\n return i;\n }\n }\n\n /**\n * Adds change and input listeners to the slider using the given callback function\n * @memberof Slider\n * @param {Function} callBack event to fire on change or input\n */\n enableSliderEvents(callBack) {\n if (!this.slider) {\n return;\n }\n\n const event = callBack;\n this.slider.addEventListener('change', event);\n this.slider.addEventListener('input', event);\n }\n\n /**\n * removes the event listeners from the given slider.\n * @memberof Slider\n * @param {Function} callBack event to fire on change or input\n */\n disableSliderEvents(callBack) {\n if (!this.slider) {\n return;\n }\n const event = callBack;\n this.slider.removeEventListener('change', event);\n this.slider.removeEventListener('input', event);\n }\n /**\n * enables display of the Slider if it is present in the features list\n * @memberof Slider\n * @param {object} data Object containing which features are enabled\n */\n displaySlider(data) {\n if (!this.slider && data[this.control]) {\n console.warn(`${this.control} was not provided a valid input element or selector but was included as a game feature`);\n }\n\n if (!this.slider) {\n return;\n }\n\n this.slider.style.display = data[this.control] ? '' : 'none';\n }\n\n /**\n * @param {Event} event the event to be fired on the slider\n * @memberof Slider\n */\n dispatchEvent(event) {\n this.slider.dispatchEvent(event);\n }\n\n /**\n * @readonly\n * @returns {string}\n * @memberof Slider\n */\n get value() {\n return this.slider.value;\n }\n\n /**\n * @memberof Slider\n */\n set value(value) {\n this.slider.value = value;\n }\n}\n","/**\n * @export\n * @class Button\n */\nexport class Button {\n /**\n *Creates an instance of Button\n * @param {object} params\n * @param {string | HTMLElement} params.button the button itself or a selector string\n * @param {Function} params.onClick the function to call when the button is clicked\n * @param {string} channel the feature this button controls\n * @memberof ButtonPlugin\n */\n constructor({ button, onClick, channel }) {\n this.button =\n button instanceof HTMLElement ? button : document.querySelector(button);\n this.onClick = onClick;\n this.channel = channel;\n\n if (this.button) {\n this.button.addEventListener('click', onClick);\n }\n }\n\n /**\n * enables display of the button if it is present in the features list\n * @memberof Button\n * @param {object} data Object containing which features are enabled\n */\n displayButton(data) {\n if (!(this.button instanceof HTMLElement)) {\n return;\n }\n\n this.button.style.display =\n data[this.channel] || this.channel === 'pause' || this.channel === 'hints'\n ? ''\n : 'none';\n }\n\n /**\n * enables display of the button\n * @memberof Button\n */\n enableButton() {\n if (!this.button) {\n return;\n }\n this.button.classList.remove('disabled');\n }\n\n /**\n * \n * @param {string} className The classname to be appended to the end of the class property\n */\n addClass(className) {\n this.button.className = this.button.className ? this.button.className + ` ${ className }` : ` ${ className }`;\n }\n}\n","import { BasePlugin } from './BasePlugin';\nimport { Slider } from '../ui-elements';\n\n/**\n *\n *\n * @export\n * @class SliderPlugin\n */\nexport class SliderPlugin extends BasePlugin {\n /**\n *\n *Creates an instance of SliderPlugin.\n * @constructor\n * @memberof SliderPlugin\n * @param {string} cssSelector\n * @param {string} name\n * @param {object} options\n * @param {string | number} [options.defaultValue='0.5']\n * @param {string | number} [options.minValue='0']\n * @param {string | number} [options.maxValue='1']\n * @param {string} [options.featureName] Springroll Core feature name that the plugin is supporting\n */\n constructor(cssSelector, name, {defaultValue = '0.5', minValue = '0', maxValue = '1', featureName }) {\n super(name);\n this.featureName = featureName;\n this.minValue = minValue;\n this.defaultValue = defaultValue;\n this.maxValue = maxValue;\n this._currentValue = defaultValue;\n this.sliders = this.setUpSliders(cssSelector);\n this.slidersLength = this.sliders.length;\n this.sendAllProperties = this.sendAllProperties.bind(this);\n\n if (0 >= this.slidersLength) {\n this.warn('Plugin was not provided any valid HTML Elements');\n return;\n }\n }\n\n /**\n * @memberof SliderPlugin\n * @param {string[]} selectors the selector strings used to target the input elements\n * @returns {Slider[]}\n */\n setUpSliders(selectors) {\n const sliders = [];\n\n if (selectors instanceof HTMLElement) {\n sliders.push(new Slider({\n slider: selectors,\n control: this.featureName,\n defaultValue: this.defaultValue,\n minValue: this.minValue,\n maxValue: this.maxValue\n }));\n } else {\n document.querySelectorAll(selectors).forEach((slider) => {\n sliders.push(new Slider({\n slider: slider,\n control: this.featureName,\n defaultValue: this.defaultValue,\n minValue: this.minValue,\n maxValue: this.maxValue\n }));\n });\n }\n\n return sliders;\n }\n\n /**\n * @memberof SliderPlugin\n */\n init() {\n this.client.on(\n 'features',\n function(features) {\n if (!features.data) {\n return;\n }\n\n for (let i = 0; i < this.slidersLength; i++) {\n this.sliders[i].displaySlider(features.data);\n }\n }.bind(this)\n );\n }\n\n /**\n * @memberof SliderPlugin\n */\n start() {\n this._currentValue = this.sliders[0].value; //update current value to the saved data value set in Slider.\n this.client.on('loaded', this.sendAllProperties);\n this.client.on('loadDone', this.sendAllProperties);\n }\n\n /**\n *\n * Sends initial caption properties to the application\n * @memberof SliderPlugin\n */\n sendAllProperties() {\n this.sendProperty(this.featureName, this.currentValue);\n }\n\n /**\n * @memberof SliderPlugin\n * @param {string} newValue\n */\n set currentValue(newValue) {\n\n //just use first slider to ensure the number is valid.\n this._currentValue = this.sliders[0].sliderRange(Number(newValue));\n\n for (let i = 0; i < this.slidersLength; i++) {\n this.sliders[i].value = newValue;\n }\n }\n\n /**\n * @memberof SliderPlugin\n * @return {string}\n */\n get currentValue() {\n return this._currentValue;\n }\n\n}\n","import { SavedData } from '../SavedData';\nimport { ButtonPlugin } from '../base-plugins';\nimport { RadioGroup } from '../ui-elements';\n\nconst DEFAULT_CAPTIONS_STYLES = {\n size: 'medium',\n background: 'black',\n color: 'white',\n edge: 'none',\n font: 'arial',\n align: 'top'\n};\n\nconst DEFAULT_COLOR_STYLE = {color: 'white', background: 'black'};\nconst INVERTED_COLOR_STYLE = {color: 'black', background: 'white'};\nconst FONT_SIZE_VALUES = ['small', 'medium', 'large'];\nconst COLOR_VALUES = ['default', 'inverted'];\nconst ALIGN_VALUES = ['top', 'bottom'];\n\n/**\n * @export\n * @class CaptionsStylePlugin\n * @property {object} captionsStyles The collection of captions styles\n * @property {string[]} fontSizeSelectors selector strings for the radio button groups\n * @property {string[]} colorSelectors selector strings for the radio button groups\n * @property {string[]} alignmentSelectors selector strings for the radio button groups\n * @property {Object[]} fontSizeRadios array that contains each radio group\n * @property {Object[]} colorRadios array that contains each radio group\n * @property {Object[]} alignmentRadios array that contains each radio group\n * @property {number} fontSizeRadiosLength Length of the fontSizeRadios array\n * @property {number} colorRadiosLength Length of the colorRadios array\n * @property {number} alignmentRadiosLength Length of the alignmentRadios array\n * @extends {ButtonPlugin}\n */\nexport class CaptionsStylePlugin extends ButtonPlugin {\n /**\n * Creates an instance of CaptionsStylePlugin.\n * @param {string} fontSizeRadios selector string for one or more radio groups for caption font size\n * @param {string} colorRadios selector string for one or more radio groups for caption font/background colors\n * @param {string} alignmentRadios selector string for one or more radio groups for caption position\n * @param {string} [defaultFontSize='medium'] Default selected font size\n * @param {string} [defaultColor='default'] Default selected color\n * @param {string} [defaultAlignment='top'] Default selected alignment\n * @memberof CaptionsStylePlugin\n */\n constructor(fontSizeRadios, colorRadios, alignmentRadios,\n { defaultFontSize = 'medium', defaultColor = 'default', defaultAlignment = 'top' } = {}\n ) {\n super('Caption-Style-Plugin');\n this.sendAllProperties = this.sendAllProperties.bind(this);\n this.captionsStyles = Object.assign(\n {},\n DEFAULT_CAPTIONS_STYLES,\n SavedData.read(CaptionsStylePlugin.captionStyleKey) || {}\n );\n\n //split the selector strings into individual selectors.\n //Helps keep the input style consistent across plugins.\n this.fontSizeSelectors = fontSizeRadios ? fontSizeRadios.split(',') : [];\n this.colorSelectors = colorRadios ? colorRadios.split(',') : [];\n this.alignmentSelectors = alignmentRadios ? alignmentRadios.split(',') : [];\n\n this.defaultFontSize = FONT_SIZE_VALUES.includes(defaultFontSize) ? defaultFontSize : FONT_SIZE_VALUES[0];\n this.defaultColor = COLOR_VALUES.includes(defaultColor) ? defaultColor : COLOR_VALUES[0];\n this.defaultAlignment = ALIGN_VALUES.includes(defaultAlignment) ? defaultAlignment : ALIGN_VALUES[0];\n\n this.fontSizeRadios = [];\n this.colorRadios = [];\n this.alignmentRadios = [];\n\n this.fontSizeRadios = this.setUpFontSizeRadios(this.fontSizeSelectors);\n this.colorRadios = this.setUpColorRadios(this.colorSelectors);\n this.alignmentRadios = this.setUpAlignmentRadios(this.alignmentSelectors);\n\n this._captionsMuted = false;\n\n this.alignmentRadiosLength = this.alignmentRadios.length;\n this.fontSizeRadiosLength = this.fontSizeRadios.length;\n this.colorRadiosLength = this.colorRadios.length;\n\n if (0 >= (this.alignmentRadiosLength + this.fontSizeRadiosLength + this.colorRadiosLength)) {\n this.warn(\n 'Plugin was not provided any input elements'\n );\n return;\n }\n\n //set up change events\n for (let i = 0; i < this.colorRadiosLength; i++) {\n this.colorRadios[i].enableRadioEvents(this.onColorChange.bind(this));\n }\n for (let i = 0; i < this.alignmentRadiosLength; i++) {\n this.alignmentRadios[i].enableRadioEvents(this.onAlignmentChange.bind(this));\n }\n for (let i = 0; i < this.fontSizeRadiosLength; i++) {\n this.fontSizeRadios[i].enableRadioEvents(this.onFontSizeChange.bind(this));\n }\n }\n\n /**\n * @memberof CaptionsStylePlugin\n * @param {string[]} selectors the separated selector strings used to target the radio button groups\n * @returns {RadioGroup[]}\n */\n setUpFontSizeRadios(selectors) {\n const radioGroups = [];\n\n selectors.forEach((selector) => {\n const radioGroup = new RadioGroup({\n selector: selector.trim(),\n controlName: 'Font Size',\n defaultValue: this.defaultFontSize,\n pluginName: 'Caption-Button-Plugin'\n });\n\n if (radioGroup.length !== 3) {\n this.warn(`Selector \"${selector}\" did not find exactly three(3) radio buttons for caption font size. Skipping selector`);\n return;\n }\n\n if (!radioGroup.hasOnly(FONT_SIZE_VALUES)) {\n return;\n }\n\n if (radioGroup.hasDuplicateValues()) {\n this.warn(`Duplicate radio button values detected (values: ${radioGroup.values} ). Skipping radio group`);\n return;\n }\n\n radioGroups.push(radioGroup);\n });\n\n return radioGroups;\n }\n\n /**\n * @memberof CaptionsStylePlugin\n * @param {string[]} selectors the separated selector strings used to target the radio button groups\n * @returns {RadioGroup[]}\n */\n setUpColorRadios(selectors) {\n const radioGroups = [];\n\n selectors.forEach((selector) => {\n const radioGroup = new RadioGroup({\n selector: selector.trim(),\n controlName: 'Color',\n defaultValue: this.defaultColor,\n pluginName: 'Caption-Button-Plugin'\n });\n\n if (radioGroup.length !== 2) {\n this.warn(`Selector \"${selector}\" did not find exactly two(2) radio buttons for caption colors. Skipping selector`);\n return;\n }\n\n if (!radioGroup.hasOnly(COLOR_VALUES)) {\n return;\n }\n\n if (radioGroup.hasDuplicateValues()) {\n this.warn(`Duplicate radio button values detected (values: ${radioGroup.values} ). Skipping radio group`);\n return;\n }\n\n radioGroups.push(radioGroup);\n });\n\n return radioGroups;\n }\n\n /**\n * @memberof CaptionsStylePlugin\n * @param {string[]} selectors the separated selector strings used to target the radio button groups\n * @returns {RadioGroup[]}\n */\n setUpAlignmentRadios(selectors) {\n const radioGroups = [];\n\n selectors.forEach((selector) => {\n const radioGroup = new RadioGroup({\n selector: selector.trim(),\n controlName: 'Alignment',\n defaultValue: this.defaultAlignment,\n pluginName: 'Caption-Button-Plugin'\n });\n if (radioGroup.length !== 2) {\n this.warn(`Selector \"${selector}\" did not find exactly two(2) radio buttons for caption alignment. Skipping selector`);\n return;\n }\n\n if (!radioGroup.hasOnly(ALIGN_VALUES)) {\n return;\n }\n\n if (radioGroup.hasDuplicateValues()) {\n this.warn(`Duplicate radio button values detected (values: ${radioGroup.values} ). Skipping radio group`);\n return;\n }\n\n radioGroups.push(radioGroup);\n });\n\n return radioGroups;\n }\n\n /**\n * @memberof CaptionsStylePlugin\n */\n init() {\n // Handle the features request\n this.client.on(\n 'features',\n function($event) {\n\n for (const radio of this.radios) {\n radio.displayRadios($event.data);\n }\n\n }.bind(this)\n );\n\n this.client.on(\n 'caption-set-style',\n function($event) {\n this.setCaptionsStyles($event.data || {});\n }.bind(this)\n );\n }\n /**\n * @memberof CaptionsStylePlugin\n */\n start() {\n this.setCaptionsStyles(SavedData.read(CaptionsStylePlugin.captionStyleKey));\n\n this.client.on('loaded', this.sendAllProperties);\n this.client.on('loadDone', this.sendAllProperties);\n }\n\n /**\n *\n * Sends initial caption properties to the application\n * @memberof CaptionsStylePlugin\n */\n sendAllProperties() {\n this.sendProperty(CaptionsStylePlugin.captionStyleKey, this.captionsStyles);\n }\n /**\n * Fired whenever the font size radios are updated\n * @param {Event} e\n * @memberof CaptionsStylePlugin\n */\n onFontSizeChange(e) {\n this.setCaptionsStyles('size', e.target.value);\n }\n\n /**\n * Fired whenever the alignment radios are updated\n * @param {Event} e\n * @memberof CaptionsStylePlugin\n */\n onAlignmentChange(e) {\n this.setCaptionsStyles('align', e.target.value);\n }\n\n /**\n * Fired whenever the color radios are updated\n * @param {Event} e\n * @memberof CaptionsStylePlugin\n */\n onColorChange(e) {\n const styles = e.target.value === 'default' ? DEFAULT_COLOR_STYLE : INVERTED_COLOR_STYLE;\n\n this.setCaptionsStyles(styles);\n }\n\n /**\n * Reset the captions styles\n * @param {Event} e\n * @memberof CaptionsStylePlugin\n */\n clearCaptionsStyles() {\n this.captionsStyles = Object.assign({}, DEFAULT_CAPTIONS_STYLES);\n this.setCaptionsStyles();\n\n for (const radio of this.radios) {\n radio.resetState();\n }\n }\n\n /**\n * Get the captions styles\n * @param {string} [prop] The optional property, values are \"size\", \"edge\", \"font\", \"background\", \"color\"\n * @return {object | string} The collection of styles, see setCaptionsStyles for more info.\n * @memberof CaptionsStylePlugin\n */\n getCaptionsStyles(prop) {\n return prop ? this.captionsStyles[prop] : this.captionsStyles;\n }\n\n /**\n * Set the captions styles\n *\n * @param {object} [styles] The style options or the name of the\n * property (e.g., \"color\", \"edge\", \"font\", \"background\", \"size\")\n * @param {string} [styles.color='white'] The text color, the default is white\n * @param {string} [styles.edge='none'] The edge style, default is none\n * @param {string} [styles.font='arial'] The font style, default is arial\n * @param {string} [styles.background='black'] The background style, black\n * @param {string} [styles.size='md'] The font style default is medium\n * @param {string} [styles.align='top'] The align style default is top of the window\n * @param {string} [value=''] If setting styles parameter as a string, this is the value of the property.\n * @memberof CaptionsStylePlugin\n */\n setCaptionsStyles(styles = DEFAULT_CAPTIONS_STYLES, value = '') {\n if (typeof styles === 'object') {\n Object.assign(this.captionsStyles, styles);\n } else if (typeof styles === 'string') {\n this.captionsStyles[styles] = value;\n }\n\n // update radios to match\n this.colorRadios.forEach((group) => {\n const style = this.captionsStyles.color === 'white' ? 'default' : 'inverted';\n group.radioGroup[style].checked = true;\n });\n this.alignmentRadios.forEach((group) => {\n group.radioGroup[this.captionsStyles.align].checked = true;\n });\n this.fontSizeRadios.forEach((group) => {\n group.radioGroup[this.captionsStyles.size].checked = true;\n });\n\n SavedData.write(CaptionsStylePlugin.captionStyleKey, this.captionsStyles);\n if (this.client) {\n this.client.send(CaptionsStylePlugin.captionStyleKey, this.captionsStyles);\n }\n }\n\n /**\n * @readonly\n * @returns {number}\n * @memberof RadioGroup\n */\n get radios() {\n return this.colorRadios\n .concat(this.alignmentRadios)\n .concat(this.fontSizeRadios);\n }\n /**\n * Get captionStyle Key\n * @readonly\n * @static\n * @memberof CaptionStyleKey\n * @returns {string}\n */\n static get captionStyleKey() {\n return 'captionsStyles';\n }\n\n}\n","import { SavedData } from '../SavedData';\nimport { ButtonPlugin } from '../base-plugins';\nimport { Button } from '../ui-elements';\n\n/**\n * @export\n * @class CaptionsTogglePlugin\n * @property {Button[]} _captionsButtons An array of caption mute buttons\n * @property {boolean} _captionsMuted True if captions are muted\n * @property {number} captionsButtonLength The length of the captionsButtons array\n * @extends {ButtonPlugin}\n */\nexport class CaptionsTogglePlugin extends ButtonPlugin {\n /**\n *Creates an instance of CaptionsTogglePlugin.\n * @param {string | HTMLElement} captionsButtons selector string for one or more captions mute buttons\n * @memberof CaptionsTogglePlugin\n */\n constructor(captionsButtons) {\n super('Caption-Button-Plugin');\n this.sendAllProperties = this.sendAllProperties.bind(this);\n\n this._captionsButtons = [];\n\n if ( captionsButtons instanceof HTMLElement ) {\n this._captionsButtons[0] = new Button({\n button: captionsButtons,\n onClick: this.captionsButtonClick.bind(this),\n channel: 'captions'\n });\n } else {\n document.querySelectorAll(captionsButtons).forEach((button) => {\n this._captionsButtons.push(new Button({\n button: button,\n onClick: this.captionsButtonClick.bind(this),\n channel: 'captions'\n }));\n });\n }\n\n this._captionsMuted = false;\n this.captionsButtonLength = this._captionsButtons.length;\n\n if (0 >= this.captionsButtonLength) {\n this.warn(\n 'Plugin was not provided any valid button or input elements'\n );\n return;\n }\n }\n\n /**\n * @memberof CaptionsTogglePlugin\n */\n init() {\n // Handle the features request\n this.client.on(\n 'features',\n function($event) {\n for (let i = 0; i < this.captionsButtonLength; i ++) {\n this._captionsButtons[i].displayButton($event.data);\n }\n\n if (null === SavedData.read(CaptionsTogglePlugin.captionsToggleKey)) {\n return;\n }\n\n const captionsMuted = !!SavedData.read(CaptionsTogglePlugin.captionsToggleKey);\n\n this.setMuteProp('captionsMuted', captionsMuted, this._captionsButtons, true);\n\n }.bind(this)\n );\n }\n /**\n * @memberof CaptionsTogglePlugin\n */\n start() {\n for (let i = 0; i < this.captionsButtonsLength; i++) {\n this.captionsButtons[i].enableButton();\n }\n this.client.on('loaded', this.sendAllProperties);\n this.client.on('loadDone', this.sendAllProperties);\n }\n\n /**\n *\n * Sends initial caption properties to the application\n * @memberof CaptionsTogglePlugin\n */\n sendAllProperties() {\n this.sendProperty(CaptionsTogglePlugin.captionsToggleKey, this.captionsMuted);\n }\n\n /**\n * @memberof CaptionsTogglePlugin\n */\n captionsButtonClick() {\n this.captionsMuted = !this.captionsMuted;\n }\n\n /**\n * @readonly\n * @memberof CaptionsTogglePlugin\n */\n get captionsMuted() {\n return this._captionsMuted;\n }\n\n /**\n * @param {boolean} muted\n * @memberof CaptionsTogglePlugin\n */\n set captionsMuted(muted) {\n this._captionsMuted = muted;\n this._setMuteProp(\n 'captionsMuted',\n this._captionsButtons,\n this._captionsMuted\n );\n }\n\n /**\n * Get CaptionToggle Key\n * @readonly\n * @static\n * @memberof captionsToggleKey\n * @returns {string}\n */\n static get captionsToggleKey() {\n return 'captionsMuted';\n }\n}\n","import { ButtonPlugin } from '../base-plugins';\nimport { Button } from '../ui-elements';\n\n/**\n * Requests a hint or help from the game\n * @class HelpPlugin\n * @property {boolean} paused\n * @property {boolean} _helpEnabled\n * @property {boolean} onPause\n * @property {number} helpButtonsLength\n * @extends {ButtonPlugin}\n * @export\n */\nexport class HelpPlugin extends ButtonPlugin {\n /**\n * Creates an instance of HelpPlugin.\n * @param {string | HTMLElement} helpButtons The selector or HTMLElement for the button\n * @memberof HelpPlugin\n */\n constructor(helpButtons) {\n super('Help-Button-Plugin');\n\n this._helpButtons = [];\n\n if (helpButtons instanceof HTMLElement) {\n this._helpButtons[0] = new Button({\n button: helpButtons,\n onClick: this.helpButtonClick.bind(this),\n channel: 'hints' // the check to see if this feature exists is different than most so passing this ensures it'll work the same.\n });\n } else {\n document.querySelectorAll(helpButtons).forEach((button) => {\n this._helpButtons.push(\n new Button({\n button: button,\n onClick: this.helpButtonClick.bind(this),\n channel: 'hints'\n })\n );\n });\n }\n\n this.paused = false;\n this._helpEnabled = false;\n this.onPause = this.onPause.bind(this);\n this.helpButtonsLength = this._helpButtons.length;\n\n if (this.helpButtonsLength <= 0) {\n this.warn('Plugin was not provided any valid button elements');\n }\n }\n /**\n * Called when the game is either paused or resumed\n * @param {object} $event\n * @memberof HelpPlugin\n */\n onPause($event) {\n this.paused = $event.data.paused;\n // Disable the help button when paused if it's active\n if (\n this.paused &&\n this.helpEnabled\n ) {\n for (let i = 0; i < this.helpButtonsLength; i++) {\n this._helpButtons[i].button.setAttribute('data-paused', 'true');\n }\n this.helpEnabled = false;\n } else {\n for (let i = 0; i < this.helpButtonsLength; i++) {\n if (this._helpButtons[i].button.getAttribute('data-paused')) {\n this._helpButtons[i].button.setAttribute('data-paused', '');\n this.helpEnabled = true;\n }\n }\n }\n }\n\n /**\n *\n *\n * @memberof HelpPlugin\n */\n helpButtonClick() {\n if (\n !this.paused &&\n this.helpEnabled\n ) {\n this.client.send('playHelp');\n }\n }\n\n /**\n * @memberof HelpPlugin\n */\n init() {\n // Handle pause\n this.client.on('paused', this.onPause);\n\n // Handle features changed\n this.client.on(\n 'features',\n function(features) {\n this.helpEnabled = features.data.hints;\n for (let i = 0; i < this.helpButtonsLength; i++) {\n this._helpButtons[i].displayButton(features.data);\n }\n }.bind(this)\n );\n\n this.client.on(\n 'helpEnabled',\n function(event) {\n this._helpEnabled = !!event.data;\n }.bind(this)\n );\n }\n\n /**\n * @memberof HelpPlugin\n */\n get helpEnabled() {\n return this._helpEnabled;\n }\n\n /**\n * Fired when the enabled status of the help button changes\n * @function helpEnabled\n * @param {boolean} enabled If the help button is enabled\n * @memberof HelpPlugin\n */\n set helpEnabled(enabled) {\n this._helpEnabled = enabled;\n for (let i = 0; i < this.helpButtonsLength; i++) {\n this._helpButtons[i].button.classList.remove('disabled');\n this._helpButtons[i].button.classList.remove('enabled');\n this._helpButtons[i].button.classList.add(enabled ? 'enabled' : 'disabled');\n }\n\n this.client.trigger('helpEnabled');\n }\n\n /**\n * @readonly\n * @static\n * @memberof HelpPlugin\n * @returns {string}\n */\n static get helpKey() {\n return 'help';\n }\n\n}\n","import { ButtonPlugin } from '../base-plugins';\nimport { PageVisibility } from '../PageVisibility';\nimport { Button } from '../ui-elements';\n/**\n * @class Container\n * @property {object[]} sliders an array of all slider objects attached to PausePlugin\n * @extends ButtonPlugin\n */\nexport class PausePlugin extends ButtonPlugin {\n /**\n * Creates an instance of PausePlugin.\n * @param {string | HTMLElement} pauseButton selector string or HTML Element for the input(s)\n * @param {boolean} manageOwnVisibility whether the plugin should manage container's visibility or some other source will handle it\n * @memberof PausePlugin\n */\n constructor(pauseButton, manageOwnVisibility = true) {\n super('Pause-Button-plugin');\n this._manageOwnVisibility = manageOwnVisibility;\n this._appBlurred = false;\n this._containerBlurred = false;\n this._focusTimer = null;\n this._isManualPause = false;\n this._keepFocus = false;\n this._paused = false;\n this.iframe = null;\n this.focusApp = this.focusApp.bind(this);\n this.manageFocus = this.manageFocus.bind(this);\n this.onKeepFocus = this.onKeepFocus.bind(this);\n this.onFocus = this.onFocus.bind(this);\n const onPauseToggle = this.onPauseToggle.bind(this);\n\n this.pauseDisabled = false;\n this._pauseButton = [];\n\n this.pageVisibility = new PageVisibility(\n this.onContainerFocus.bind(this),\n this.onContainerBlur.bind(this)\n );\n\n this.pageVisibility.enabled = this.manageOwnVisibility;\n\n if (pauseButton instanceof HTMLElement) {\n this._pauseButton[0] = new Button({\n button: pauseButton,\n onClick: onPauseToggle,\n channel: PausePlugin.pauseKey\n });\n } else {\n document.querySelectorAll(pauseButton).forEach((button) => {\n this._pauseButton.push(new Button({\n button: button,\n onClick: onPauseToggle,\n channel: PausePlugin.pauseKey\n }));\n });\n }\n }\n\n /**\n * updates _paused and also sends the pause event to the application\n * @memberof PausePlugin\n * @param {Boolean} paused\n */\n set pause(paused) {\n paused = !!paused;\n\n if (this.pauseDisabled) {\n return;\n }\n this._paused = paused;\n\n this.client.send(PausePlugin.pauseKey, paused);\n this.client.trigger(paused ? 'paused' : 'resumed', { paused });\n\n for (let i = 0, l = this._pauseButton.length; i < l; i++) {\n this._pauseButton[i].button.classList.remove('unpaused');\n this._pauseButton[i].button.classList.remove('paused');\n this._pauseButton[i].button.classList.add(paused ? 'paused' : 'unpaused');\n }\n }\n\n /**\n * @memberof PausePlugin\n * @returns {Boolean}\n */\n get pause() {\n return this._paused;\n }\n\n /**\n * updates _manageOwnVisibility and also re-enables pageVisibility\n * @memberof PausePlugin\n * @param {Boolean} manageOwnVisibility\n */\n set manageOwnVisibility(manageOwnVisibility) {\n this._manageOwnVisibility = manageOwnVisibility;\n\n this.pageVisibility.enabled = this._manageOwnVisibility;\n }\n\n /**\n * @memberof PausePlugin\n * @returns {Boolean}\n */\n get manageOwnVisibility() {\n return this._manageOwnVisibility;\n }\n\n /**\n * forces focus onto the iframe application window\n * @memberof PausePlugin\n */\n focusApp() {\n if (!this.hasDom) {\n // We don't have a dom with a content window, fail quietly\n return;\n }\n\n this.iframe.contentWindow.focus();\n }\n\n /**\n * blurs the application iframe window\n * @memberof PausePlugin\n */\n blurApp() {\n if (!this.hasDom) {\n return;\n }\n this.iframe.contentWindow.blur();\n }\n\n /**\n * Determines what pause state should be sent, if any, on focus or blur events.\n * @method manageFocus\n * @memberof PausePlugin\n */\n manageFocus() {\n if (!this.manageOwnVisibility) {\n return;\n }\n // Unfocus on the iframe\n if (this._keepFocus) {\n this.blurApp();\n }\n\n // we only need one delayed call, at the end of any\n // sequence of rapidly-fired blur/focus events\n if (this._focusTimer) {\n clearTimeout(this._focusTimer);\n }\n\n // Delay setting of 'paused' in case we get another focus event soon.\n // Focus events are sent to the container asynchronously, and this was\n // causing rapid toggling of the pause state and related issues,\n // especially in Internet Explorer\n this._focusTimer = setTimeout(\n function () {\n this._focusTimer = null;\n // A manual pause cannot be overriden by focus events.\n // User must click the resume button.\n if (this._isManualPause) {\n return;\n }\n\n this.pause = Boolean(this._containerBlurred && this._appBlurred);\n\n // Focus on the content window when blurring the app\n // but selecting the container\n if (this._keepFocus && !this._containerBlurred && this._appBlurred) {\n this.focusApp();\n }\n }.bind(this),\n 100\n );\n }\n\n /**\n * Handle the keep focus event for the window\n * @method onKeepFocus\n * @memberof PausePlugin\n * @private\n */\n onKeepFocus($event) {\n this._keepFocus = !!$event.data;\n this.manageFocus();\n }\n\n /**\n * Handle focus events sent from iFrame children\n * @method onFocus\n * @memberof PausePlugin\n * @private\n */\n onFocus($event) {\n this._appBlurred = !$event.data;\n this.manageFocus();\n }\n\n /**\n * Handle focus events sent from container's window\n * @method onContainerFocus\n * @memberof PausePlugin\n * @private\n */\n onContainerFocus() {\n this._containerBlurred = false;\n this.manageFocus();\n }\n\n /**\n * Handle blur events sent from container's window\n * @method onContainerBlur\n * @memberof PausePlugin\n * @private\n */\n onContainerBlur() {\n //Set both container and application to blurred,\n //because some blur events are only happening on the container.\n //If container is blurred because application area was just focused,\n //the application's focus event will override the blur imminently.\n this._containerBlurred = this._appBlurred = true;\n this.manageFocus();\n }\n\n /**\n * @memberof PausePlugin\n */\n onPauseToggle() {\n this._isManualPause = !this._isManualPause;\n this.pause = !this.pause;\n }\n\n /**\n * @param {Container} container\n * @memberof PausePlugin\n */\n init({ iframe }) {\n this.iframe = iframe;\n\n this.client.on(\n 'features',\n function (features) {\n if (features.disablePause) {\n this.pauseDisabled = true;\n }\n\n for (let i = 0, l = this._pauseButton.length; i < l; i++) {\n this._pauseButton[i].displayButton(features.data);\n }\n }.bind(this)\n );\n this.client.on('focus', this.onFocus);\n this.client.on('keepFocus', this.onKeepFocus);\n\n this.pause = this._paused;\n }\n\n /**\n * Function to check if we have a dom with a contentWindow\n * @readonly\n * @returns {boolean}\n * @memberof PausePlugin\n */\n get hasDom() {\n return Boolean(null !== this.iframe && this.iframe.contentWindow);\n }\n\n /**\n * @readonly\n * @memberof PausePlugin\n * @returns {HTMLButtonElement[]}\n */\n get pauseButton() {\n const buttons = [];\n for (let i = 0, l = this._pauseButton.length; i < l; i++) {\n buttons.push(this._pauseButton[i].button);\n }\n return buttons;\n }\n\n /**\n * @readonly\n * @static\n * @memberof PausePlugin\n * @returns {string}\n */\n static get pauseKey() {\n return 'pause';\n }\n}\n","import { SavedData } from '../SavedData';\nimport { ButtonPlugin } from '../base-plugins';\nimport { Slider, Button } from '../ui-elements';\n\n/**\n * @export\n * @class SoundPlugin\n * @extends {ButtonPlugin}\n *\n */\nexport class SoundPlugin extends ButtonPlugin {\n /**\n * Creates an instance of SoundPlugin.\n * @param {string | HTMLElement} [soundButtons] selector string or HTML Element for the input(s)\n * @param {string | HTMLElement} [musicButtons] selector string or HTML Element for the input(s)\n * @param {string | HTMLElement} [voButtons] selector string or HTML Element for the input(s)\n * @param {string | HTMLElement} [sfxButtons] selector string or HTML Element for the input(s)\n * @param {string | HTMLElement} [soundSliders] selector string or HTML Element for the input(s)\n * @param {string | HTMLElement} [musicSliders] selector string or HTML Element for the input(s)\n * @param {string | HTMLElement} [sfxSliders] selector string or HTML Element for the input(s)\n * @param {string | HTMLElement} [voSliders] selector string or HTML Element for the input(s)\n * @memberof SoundPlugin\n */\n constructor({\n soundButtons,\n musicButtons,\n sfxButtons,\n voButtons,\n soundSliders,\n musicSliders,\n sfxSliders,\n voSliders\n } = {}) {\n super('Sound-Button-Plugin');\n const saved = SavedData.read(SoundPlugin.soundMutedKey);\n this.sendAllProperties = this.sendAllProperties.bind(this);\n this._soundMuted = saved ? saved : false;\n this._musicMuted = false;\n this._voMuted = false;\n this._sfxMuted = false;\n\n this._musicMutedByUser = false;\n this._soundMutedByUser = false;\n this._sfxMutedByUser = false;\n this._voMutedByUser = false;\n\n this.soundMuteEnabled = false;\n this.musicMuteEnabled = false;\n this.sfxMuteEnabled = false;\n this.voMuteEnabled = false;\n\n this.soundVolume = 1;\n this.musicVolume = 1;\n this.sfxVolume = 1;\n this.voVolume = 1;\n\n this.soundSliders = [];\n this.musicSliders = [];\n this.sfxSliders = [];\n this.voSliders = [];\n\n this.soundButtons = [];\n this.musicButtons = [];\n this.sfxButtons = [];\n this.voButtons= [];\n\n if (soundSliders instanceof HTMLElement) {\n this.soundSliders[0] = new Slider({\n slider: soundSliders,\n control: SoundPlugin.soundVolumeKey,\n defaultValue: this.soundVolume\n });\n } else {\n document.querySelectorAll(soundSliders).forEach((slider) => {\n const newSlider = new Slider({\n slider: slider,\n control: SoundPlugin.soundVolumeKey,\n defaultValue: this.soundVolume\n });\n if (newSlider.slider) {\n this.soundSliders.push(newSlider);\n }\n });\n }\n if (musicSliders instanceof HTMLElement) {\n this.musicSliders[0] = new Slider({\n slider: musicSliders,\n control: SoundPlugin.musicVolumeKey,\n defaultValue: this.musicVolume\n });\n } else {\n document.querySelectorAll(musicSliders).forEach((slider) => {\n const newSlider = new Slider({\n slider: slider,\n control: SoundPlugin.musicVolumeKey,\n defaultValue: this.musicVolume\n });\n if (newSlider.slider) {\n this.musicSliders.push(newSlider);\n }\n });\n }\n if (sfxSliders instanceof HTMLElement) {\n this.sfxSliders[0] = new Slider({\n slider: sfxSliders,\n control: SoundPlugin.sfxVolumeKey,\n defaultValue: this.sfxVolume\n });\n } else {\n document.querySelectorAll(sfxSliders).forEach((slider) => {\n const newSlider = new Slider({\n slider: slider,\n control: SoundPlugin.sfxVolumeKey,\n defaultValue: this.sfxVolume\n });\n if (newSlider.slider) {\n this.sfxSliders.push(newSlider);\n }\n });\n }\n if (voSliders instanceof HTMLElement) {\n this.voSliders[0] = new Slider({\n slider: voSliders,\n control: SoundPlugin.voVolumeKey,\n defaultValue: this.voVolume\n });\n } else {\n document.querySelectorAll(voSliders).forEach((slider) => {\n const newSlider = new Slider({\n slider: slider,\n control: SoundPlugin.voVolumeKey,\n defaultValue: this.voVolume\n });\n if (newSlider.slider) {\n this.voSliders.push(newSlider);\n }\n });\n }\n\n if ( soundButtons instanceof HTMLElement ) {\n this.soundButtons[0] = new Button({\n button: soundButtons,\n onClick: this.onSoundToggle.bind(this),\n channel: SoundPlugin.soundKey\n });\n } else {\n document.querySelectorAll(soundButtons).forEach((button) => {\n this.soundButtons.push(new Button({\n button: button,\n onClick: this.onSoundToggle.bind(this),\n channel: SoundPlugin.soundKey\n }));\n });\n }\n if ( musicButtons instanceof HTMLElement ) {\n this.musicButtons[0] = new Button({\n button: musicButtons,\n onClick: this.onMusicToggle.bind(this),\n channel: 'music'\n });\n } else {\n document.querySelectorAll(musicButtons).forEach((button) => {\n this.musicButtons.push(new Button({\n button: button,\n onClick: this.onMusicToggle.bind(this),\n channel: 'music'\n }));\n });\n }\n if ( sfxButtons instanceof HTMLElement ) {\n this.sfxButtons[0] = new Button({\n button: sfxButtons,\n onClick: this.onSFXToggle.bind(this),\n channel: 'sfx'\n });\n } else {\n document.querySelectorAll(sfxButtons).forEach((button) => {\n this.sfxButtons.push(new Button({\n button: button,\n onClick: this.onSFXToggle.bind(this),\n channel: 'sfx'\n }));\n });\n }\n if ( voButtons instanceof HTMLElement ) {\n this.voButtons[0] = new Button({\n button: voButtons,\n onClick: this.onVOToggle.bind(this),\n channel: 'vo'\n });\n } else {\n document.querySelectorAll(voButtons).forEach((button) => {\n this.voButtons.push(new Button({\n button: button,\n onClick: this.onVOToggle.bind(this),\n channel: 'vo'\n }));\n });\n }\n\n this.soundSlidersLength = this.soundSliders.length;\n this.musicSlidersLength = this.musicSliders.length;\n this.sfxSlidersLength = this.sfxSliders.length;\n this.voSlidersLength = this.voSliders.length;\n this.soundButtonsLength = this.soundButtons.length;\n this.musicButtonsLength = this.musicButtons.length;\n this.sfxButtonsLength = this.sfxButtons.length;\n this.voButtonsLength = this.voButtons.length;\n\n if (0 >= (this.soundSlidersLength + this.musicSlidersLength + this.sfxSlidersLength + this.voSlidersLength + this.soundButtonsLength + this.musicButtonsLength + this.sfxButtonsLength + this.voButtonsLength)) {\n this.warn('Plugin was not provided any valid HTML Elements');\n return;\n }\n\n for (let i = 0; i < this.soundSlidersLength; i++) {\n this.soundSliders[i].enableSliderEvents(this.onSoundVolumeChange.bind(this));\n }\n for (let i = 0; i < this.musicSlidersLength; i++) {\n this.musicSliders[i].enableSliderEvents(this.onMusicVolumeChange.bind(this));\n }\n for (let i = 0; i < this.sfxSlidersLength; i++) {\n this.sfxSliders[i].enableSliderEvents(this.onSFXVolumeChange.bind(this));\n }\n for (let i = 0; i < this.voSlidersLength; i++) {\n this.voSliders[i].enableSliderEvents(this.onVOVolumeChange.bind(this));\n }\n\n if (this.soundSliders[0] && this.soundSliders[0].slider) {\n this.soundVolume = this.soundSliders[0].value;\n }\n if (this.musicSliders[0] && this.musicSliders[0].slider) {\n this.musicVolume = this.musicSliders[0].value;\n }\n if (this.sfxSliders[0] && this.sfxSliders[0].slider) {\n this.sfxVolume = this.sfxSliders[0].value;\n }\n if (this.voSliders[0] && this.voSliders[0].slider) {\n this.voVolume = this.voSliders[0].value;\n }\n }\n\n /**\n * @memberof SoundPlugin\n * @param {Event} e\n */\n onSoundVolumeChange(e) {\n if (this.soundSlidersLength <= 0) {\n this.soundVolume = e.target.value;\n return;\n }\n this.soundVolume = this.soundSliders[0].sliderRange(\n Number(e.target.value)\n );\n this.soundMuted = !this.soundVolume;\n\n if (!this._musicMutedByUser) {\n this.musicMuted = this.soundMuted;\n }\n if (!this._sfxMutedByUser) {\n this.sfxMuted = this.soundMuted;\n }\n if (!this._voMutedByUser) {\n this.voMuted = this.soundMuted;\n }\n\n this.sendProperty(SoundPlugin.soundVolumeKey, this.soundVolume);\n\n for (let i = 0; i < this.soundSlidersLength; i++) {\n this.soundSliders[i].value = this.soundVolume;\n }\n }\n\n /**\n * @memberof SoundPlugin\n * @param {Event} e\n */\n onMusicVolumeChange(e) {\n if (this.musicSlidersLength <= 0) {\n this.musicVolume = e.target.value;\n return;\n }\n\n this.musicVolume = this.musicSliders[0].sliderRange(\n Number(e.target.value)\n );\n\n this.musicMuted = !this.musicVolume;\n if (!this.musicMuted) { this._musicMutedByUser = false; }\n this._checkSoundMute();\n this.sendProperty(SoundPlugin.musicVolumeKey, this.musicVolume);\n\n for (let i = 0; i < this.musicSlidersLength; i++) {\n this.musicSliders[i].value = this.musicVolume;\n }\n }\n\n /**\n * @memberof SoundPlugin\n * @param {Event} e\n */\n onVOVolumeChange(e) {\n if (this.voSlidersLength <= 0) {\n this.voVolume = e.target.value;\n return;\n }\n this.voVolume = this.voSliders[0].sliderRange(Number(e.target.value));\n if (!this.voMuted) { this._voMutedByUser = false; }\n this.voMuted = !this.voVolume;\n this._checkSoundMute();\n\n this.sendProperty(SoundPlugin.voVolumeKey, this.voVolume);\n for (let i = 0; i < this.voSlidersLength; i++) {\n this.voSliders[i].value = this.voVolume;\n }\n }\n\n /**\n * @memberof SoundPlugin\n * @param {Event} e\n */\n onSFXVolumeChange(e) {\n if (this.sfxSlidersLength <= 0) {\n this.sfxVolume = e.target.value;\n return;\n }\n this.sfxVolume = this.sfxSliders[0].sliderRange(Number(e.target.value));\n if (!this.sfxMuted) { this._sfxMutedByUser = false; }\n this.sfxMuted = !this.sfxVolume;\n this._checkSoundMute();\n\n this.sendProperty(SoundPlugin.sfxVolumeKey, this.sfxVolume);\n\n for (let i = 0; i < this.sfxSlidersLength; i++) {\n this.sfxSliders[i].value = this.sfxVolume;\n }\n }\n\n /**\n * @memberof SoundPlugin\n */\n onSoundToggle() {\n const muted = !this.soundMuted;\n this.soundMuted = muted;\n\n if (!this._musicMutedByUser || muted) {\n this.musicMuted = muted;\n }\n if (!this._sfxMutedByUser || muted) {\n this.sfxMuted = muted;\n }\n if (!this._voMutedByUser || muted) {\n this.voMuted = muted;\n }\n }\n\n /**\n * @memberof SoundPlugin\n */\n onMusicToggle() {\n this.musicMuted = !this.musicMuted;\n this._musicMutedByUser = this.musicMuted;\n this._checkSoundMute();\n }\n\n /**\n * @memberof SoundPlugin\n */\n onVOToggle() {\n this.voMuted = !this.voMuted;\n this._voMutedByUser = this.voMuted;\n this._checkSoundMute();\n }\n\n /**\n * @memberof SoundPlugin\n */\n onSFXToggle() {\n this.sfxMuted = !this.sfxMuted;\n this._sfxMutedByUser = this.sfxMuted;\n this._checkSoundMute();\n }\n\n /**\n * @memberof SoundPlugin\n */\n _checkSoundMute() {\n this.soundMuted = this.sfxMuted && this.voMuted && this.musicMuted;\n }\n\n /**\n * @param {string} key\n * @param {*} value\n * @param {Element} element\n * @memberof SoundPlugin\n */\n setMuteProp(key, value, element, disableSend = false) {\n this['_' + key] = value;\n this._setMuteProp(key, element, value, disableSend);\n }\n\n /**\n * @memberof SoundPlugin\n */\n async preload({ client }) {\n this.client = client;\n console.log('sound plugin preload');\n this.client.on(\n 'features',\n function(features) {\n console.log('features!', features);\n if (!features.data) {\n return;\n }\n \n // Confirm that the mute features are supported\n this.soundMuteEnabled = !!features.data.sound;\n this.musicMuteEnabled = !!features.data.music;\n this.sfxMuteEnabled = !!features.data.sfx;\n this.voMuteEnabled = !!features.data.vo;\n \n this.soundVolumeEnabled = !!features.data.soundVolume;\n this.musicVolumeEnabled = !!features.data.musicVolume;\n this.sfxVolumeEnabled = !!features.data.sfxVolume;\n this.voVolumeEnabled = !!features.data.voVolume;\n \n for (let i = 0; i < this.soundButtonsLength; i++) {\n this.soundButtons[i].displayButton(features.data);\n }\n for (let i = 0; i < this.musicButtonsLength; i++) {\n this.musicButtons[i].displayButton(features.data);\n }\n for (let i = 0; i < this.sfxButtonsLength; i++) {\n this.sfxButtons[i].displayButton(features.data);\n }\n for (let i = 0; i < this.voButtonsLength; i++) {\n this.voButtons[i].displayButton(features.data);\n }\n for (let i = 0; i < this.soundSlidersLength; i++) {\n this.soundSliders[i].displaySlider(features.data);\n }\n for (let i = 0; i < this.musicSlidersLength; i++) {\n this.musicSliders[i].displaySlider(features.data);\n }\n for (let i = 0; i < this.sfxSlidersLength; i++) {\n this.sfxSliders[i].displaySlider(features.data);\n }\n for (let i = 0; i < this.voSlidersLength; i++) {\n this.voSliders[i].displaySlider(features.data);\n }\n\n\n console.log('setting the mute props for sound et all');\n const soundMuted = !!SavedData.read(SoundPlugin.soundMutedKey);\n const musicMuted = !!SavedData.read(SoundPlugin.musicMutedKey);\n const sfxMuted = !!SavedData.read(SoundPlugin.sfxMutedKey);\n const voMuted = !!SavedData.read(SoundPlugin.voMutedKey);\n\n // set the property in case buttons exist but disable the send here\n // properties will be sent in sendAllProperties\n this.setMuteProp('soundMuted', soundMuted, this.soundButtons, true);\n this.setMuteProp('musicMuted', musicMuted, this.musicButtons, true);\n this.setMuteProp('sfxMuted', sfxMuted, this.sfxButtons, true);\n this.setMuteProp('voMuted', voMuted, this.voButtons, true);\n }.bind(this)\n );\n }\n\n /**\n * @memberof SoundPlugin\n */\n start() {\n for (let i = 0; i < this.soundButtonsLength; i++) {\n this.soundButtons[i].enableButton();\n }\n for (let i = 0; i < this.musicButtonsLength; i++) {\n this.musicButtons[i].enableButton();\n }\n for (let i = 0; i < this.sfxButtonsLength; i++) {\n this.sfxButtons[i].enableButton();\n }\n for (let i = 0; i < this.voButtonsLength; i++) {\n this.voButtons[i].enableButton();\n }\n\n this.client.on('loaded', this.sendAllProperties);\n this.client.on('loadDone', this.sendAllProperties);\n }\n\n /**\n *\n * Saves the current state of all volume properties, and then sends them to the game\n * @memberof SoundPlugin\n */\n sendAllProperties() {\n\n if ( this.soundVolumeEnabled && this.soundSlidersLength > 0 ) {\n this.sendProperty(SoundPlugin.soundVolumeKey, this.soundVolume);\n }\n if ( this.musicVolumeEnabled && this.musicSlidersLength > 0 ) {\n this.sendProperty(SoundPlugin.musicVolumeKey, this.musicVolume);\n }\n if ( this.voVolumeEnabled && this.voSlidersLength > 0 ) {\n this.sendProperty(SoundPlugin.voVolumeKey, this.voVolume);\n }\n if ( this.sfxVolumeEnabled && this.sfxSlidersLength > 0 ) {\n this.sendProperty(SoundPlugin.sfxVolumeKey, this.sfxVolume);\n }\n\n // to avoid the mute property overwriting the volume on startup, mutes should only send if they're true\n // or the volume channel isn't enabled\n if ( (this.soundButtonsLength > 0 && this.soundMuteEnabled) && (this.soundMuted || !this.soundVolumeEnabled )) {\n this.sendProperty(SoundPlugin.soundMutedKey, this.soundMuted);\n }\n if ( (this.musicButtonsLength > 0 && this.musicMuteEnabled) && (this.musicMuted || !this.musicVolumeEnabled )) {\n this.sendProperty(SoundPlugin.musicMutedKey, this.musicMuted);\n }\n if ( (this.voButtonsLength > 0 && this.voMuteEnabled) && ( this.voMuted || !this.voVolumeEnabled )) {\n this.sendProperty(SoundPlugin.voMutedKey, this.voMuted);\n }\n if ( (this.sfxButtonsLength > 0 && this.sfxMuteEnabled) && (this.sfxMuted || !this.sfxVolumeEnabled )) {\n this.sendProperty(SoundPlugin.sfxMutedKey, this.sfxMuted);\n }\n }\n\n /**\n * @memberof SoundPlugin\n * @param {boolean} muted\n */\n set soundMuted(muted) {\n if (muted === this.soundMuted) {\n // have to do this to make sure it gets set up properly on start up\n this.setMuteProp('soundMuted', muted, this.soundButtons, true);\n return;\n }\n\n let disableSend = false;\n // if volume is enabled and the channel is becoming unmuted we update everything but only send the volume\n if (this.soundVolumeEnabled && !muted) {\n this.sendProperty(SoundPlugin.soundVolumeKey, this.soundVolume);\n disableSend = true;\n }\n this.setMuteProp('soundMuted', muted, this.soundButtons, disableSend);\n }\n\n /**\n * @memberof SoundPlugin\n */\n get soundMuted() {\n return this._soundMuted;\n }\n\n /**\n * @memberof SoundPlugin\n * @param {boolean} muted\n */\n set voMuted(muted) {\n let disableSend = false;\n if (this.voMuted === muted) {\n // have to do this to make sure it gets set up properly on start up\n this.setMuteProp('voMuted', muted, this.voButtons, true);\n return;\n }\n if ((this.voVolumeEnabled && !muted)) {\n this.sendProperty(SoundPlugin.voVolumeKey, this.voVolume);\n disableSend = true;\n }\n this.setMuteProp('voMuted', muted, this.voButtons, disableSend);\n }\n\n /**\n * @memberof SoundPlugin\n */\n get voMuted() {\n return this._voMuted;\n }\n\n /**\n * @memberof SoundPlugin\n * @param {boolean} muted\n */\n set musicMuted(muted) {\n if (this.musicMuted === muted) {\n // have to do this to make sure it gets set up properly on start up\n this.setMuteProp('musicMuted', muted, this.musicButtons, true);\n return; \n }\n let disableSend = false;\n if (this.musicVolumeEnabled && !muted) {\n this.sendProperty(SoundPlugin.musicVolumeKey, this.musicVolume);\n disableSend = true;\n }\n\n this.setMuteProp('musicMuted', muted, this.musicButtons, disableSend);\n }\n\n /**\n * @memberof SoundPlugin\n */\n get musicMuted() {\n return this._musicMuted;\n }\n\n /**\n * @memberof SoundPlugin\n * @param {boolean} muted\n */\n set sfxMuted(muted) {\n if (this.sfxMuted === muted) {\n // have to do this to make sure it gets set up properly on start up\n this.setMuteProp('sfxMuted', muted, this.sfxButtons, true);\n return;\n }\n let disableSend = false;\n if (this.sfxVolumeEnabled && !muted) {\n this.sendProperty(SoundPlugin.sfxVolumeKey, this.sfxVolume);\n disableSend = true;\n }\n this.setMuteProp('sfxMuted', muted, this.sfxButtons, disableSend);\n }\n\n /**\n * @memberof SoundPlugin\n */\n get sfxMuted() {\n return this._sfxMuted;\n }\n\n /**\n * @readonly\n * @static\n * @memberof SoundPlugin\n */\n static get soundMutedKey() {\n return 'soundMuted';\n }\n\n /**\n * @readonly\n * @static\n * @memberof SoundPlugin\n */\n static get voMutedKey() {\n return 'voMuted';\n }\n\n /**\n * @readonly\n * @static\n * @memberof SoundPlugin\n */\n static get musicMutedKey() {\n return 'musicMuted';\n }\n\n /**\n * @readonly\n * @static\n * @memberof SoundPlugin\n */\n static get sfxMutedKey() {\n return 'sfxMuted';\n }\n\n /**\n * @readonly\n * @static\n * @memberof SoundPlugin\n */\n static get soundVolumeKey() {\n return 'soundVolume';\n }\n\n /**\n * @readonly\n * @static\n * @memberof SoundPlugin\n */\n static get sfxVolumeKey() {\n return 'sfxVolume';\n }\n\n /**\n * @readonly\n * @static\n * @memberof SoundPlugin\n */\n static get voVolumeKey() {\n return 'voVolume';\n }\n\n /**\n * @readonly\n * @static\n * @memberof SoundPlugin\n */\n static get musicVolumeKey() {\n return 'musicVolume';\n }\n\n /**\n * @readonly\n * @memberof SoundPlugin\n */\n get soundButton() {\n return this._soundButton.button;\n }\n\n /**\n * @readonly\n * @memberof SoundPlugin\n */\n get musicButton() {\n return this._musicButton.button;\n }\n /**\n * @readonly\n * @memberof SoundPlugin\n */\n get sfxButton() {\n return this._sfxButton.button;\n }\n /**\n * @readonly\n * @memberof SoundPlugin\n */\n get voButton() {\n return this._voButton.button;\n }\n\n /**\n * @readonly\n * @static\n * @memberof SpeedScalePlugin\n * @return {string}\n */\n static get soundKey() {\n return 'sound';\n }\n}\n","import { SavedData } from './SavedData';\n/**\n * Default user data handler for the {{#crossLink \"springroll.Container\"}}Container{{/crossLink}} to save data using\n * the {{#crossLink \"springroll.SavedData\"}}SavedData{{/crossLink}} class.\n * @class SavedDataHandler\n */\nexport class SavedDataHandler {\n\n /**\n * \n */\n constructor() {\n this.dbName;\n this.savedData;\n }\n \n /**\n * Remove a data setting\n * @method remove\n * @static\n * @param {String} name The name of the property\n * @param {Function} [callback] Callback when remove is complete\n */\n static remove(name, callback) {\n SavedData.remove(name);\n callback();\n }\n\n /**\n * Write a custom setting\n * @method write\n * @static\n * @param {String} name The name of the property\n * @param {*} value The value to set the property to\n * @param {Function} [callback] Callback when write is complete\n */\n static write(name, value, callback) {\n SavedData.write(name, value);\n callback();\n }\n\n /**\n * Read a custom setting\n * @method read\n * @static\n * @param {String} name The name of the property\n * @param {Function} callback Callback when read is complete, returns the value\n */\n static read(name, callback) {\n callback(SavedData.read(name));\n }\n\n // ----------------------------------------------------------------\n // IndexedDB Manipulation \n // ----------------------------------------------------------------\n\n /**\n * Open a connection with the database\n * @param {string} dbName The name of your IndexedDB database\n * @param {string} dbVersion The version number of the database\n * @param {JSON} additions Any additions to the structure of the database\n * @param {array} additions.stores Any stores to be added into the database syntax: \n * {storeName: '[name]', options: {[optionally add options]}}\n * @param {array} additions.indexes Any Indexes to be added to the database syntax: \n * {storeName: '[name]', options: {[optionally add options]}}\n */\n IDBOpen( dbName, dbVersion = null, additions = {}, deletions = {}, callback = null) {\n // persisting the savedData object to keep the connection open\n this.savedData = new SavedData();\n this.savedData.IDBOpen( dbName, dbVersion, additions, deletions, callback);\n }\n\n /**\n * Add a record to a given store\n * @param {string} storeName The name of the store from which the record will be updated\n * @param {string} key the key of the record to be updated \n * @param {*} value The value for the record with the given key to be updated\n * @param {function} callback The method to call on success or failure. A single value will be passed in\n */\n IDBAdd(storeName, record, key, callback) {\n this.savedData.IDBAdd(storeName, record, key, callback);\n }\n \n /**\n * Update a record from a given store\n * @param {string} storeName The name of the store from which the record will be updated\n * @param {string} key the key of the record to be updated \n * @param {*} value The value for the record with the given key to be updated\n * @param {function} callback The method to call on success or failure. A single value will be passed in\n */\n IDBUpdate(storeName, key, value, callback) {\n this.savedData.IDBUpdate(storeName, key, value, callback);\n }\n\n /**\n * Remove a record from a store\n * @param {*} storeName The name of the store from which the record will be removed\n * @param {*} key the key of the record to be removed \n * @param {function} callback The method to call on success or failure. A single value will be passed in\n */\n IDBRemove(storeName, key, callback) {\n this.savedData.IDBRemove(storeName, key, callback);\n }\n\n /**\n * Return a record from a given store with a given key\n * @param {string} storeName The name of the store to read from\n * @param {string} key The key for the record in the given store \n * @param {function} callback The method to call on success or failure. A single value will be passed in\n */\n IDBRead(storeName, key, callback) {\n this.savedData.IDBRead(storeName, key, callback);\n }\n\n /**\n * Get all records from a store\n * @param {string} storeName The store to get all records from\n * @param {integer} count Optionally the count of records to return\n * @param {function} callback The method to call on success or failure. A single value will be passed in\n */\n IDBReadAll(storeName, count, callback) {\n this.savedData.IDBReadAll(storeName, count, callback);\n }\n\n /**\n * Get the version of a given database\n * @param {string} dbName The name of the database to return the version of\n * @param {function} callback The method to call on success or failure. A single value will be passed in\n */\n IDBGetVersion(dbName, callback) {\n const sd = new SavedData(dbName);\n\n sd.IDBGetVersion(dbName, callback);\n }\n\n /**\n * Closes the connection to the database\n * @param {function} callback The method to call on success or failure. A single value will be passed in\n */\n IDBClose(callback) {\n this.savedData.IDBClose(callback);\n }\n /**\n * Closes the connection to the database\n * @param {function} callback The method to call on success or failure. A single value will be passed in\n */\n IDBDeleteDB(dbName, options, callback) {\n const sd = new SavedData(dbName);\n sd.IDBDeleteDB(dbName, options, callback);\n }\n\n}\n","import { SavedDataHandler } from '../SavedDataHandler';\nimport { BasePlugin } from '../base-plugins';\n\n/**\n * @export\n * @class UserDataPlugin\n * @extends {BasePlugin}\n * @property {SavedDataHandler} SavedDataHandler The handler to work with the savedData class\n */\nexport class UserDataPlugin extends BasePlugin {\n /**\n * Creates an instance of UserDataPlugin.\n * @memberof UserDataPlugin\n */\n constructor() {\n super('UserData-Plugin');\n this.onUserDataRemove = this.onUserDataRemove.bind(this);\n this.onUserDataRead = this.onUserDataRead.bind(this);\n this.onUserDataWrite = this.onUserDataWrite.bind(this);\n\n this.onIDBAdd = this.onIDBAdd.bind(this);\n this.onIDBOpen = this.onIDBOpen.bind(this);\n this.onIDBRead = this.onIDBRead.bind(this);\n this.onIDBReadAll = this.onIDBReadAll.bind(this);\n this.onIDBRemove = this.onIDBRemove.bind(this);\n this.onIDBUpdate = this.onIDBUpdate.bind(this);\n this.onIDBUpdate = this.onIDBUpdate.bind(this);\n this.onIDBClose = this.onIDBClose.bind(this);\n this.IDBReadAll = this.onIDBReadAll.bind(this);\n this.onIDBGetVersion = this.onIDBGetVersion.bind(this);\n this.onIDBDeleteDB = this.onIDBDeleteDB.bind(this);\n\n this.savedDataHandler = null;\n }\n\n /**\n *\n * @memberof UserDataPlugin\n */\n init() {\n this.client.on('userDataRemove', this.onUserDataRemove);\n this.client.on('userDataRead', this.onUserDataRead);\n this.client.on('userDataWrite', this.onUserDataWrite);\n\n this.client.on('IDBOpen', this.onIDBOpen);\n this.client.on('IDBRead', this.onIDBRead);\n this.client.on('IDBReadAll', this.onIDBReadAll);\n this.client.on('IDBAdd', this.onIDBAdd);\n this.client.on('IDBRemove', this.onIDBRemove);\n this.client.on('IDBUpdate', this.onIDBUpdate);\n this.client.on('IDBClose', this.onIDBClose);\n this.client.on('IDBGetVersion', this.onIDBGetVersion);\n this.client.on('IDBDeleteDB', this.onIDBDeleteDB);\n }\n\n /**\n * Handler for the userDataRemove event\n * @method onUserDataRemove\n * @private\n * @param {string} data The name of the record to be removed\n * @param {string} type The type of listener for bellhop to send to\n */\n onUserDataRemove({ data, type }) {\n SavedDataHandler.remove(data, () => {\n this.client.send(type);\n });\n }\n\n /**\n * Handler for the userDataRead event\n * @method onUserDataRead\n * @private\n * @param {string} data The name of the record to be removed\n * @param {string} type The type of listener for bellhop to send to\n */\n onUserDataRead({ data, type }) {\n SavedDataHandler.read(data, value => this.client.send(type, value));\n }\n\n /**\n * Handler for the userDataWrite event\n * @method onUserDataWrite\n * @private\n * @param {string} type The type of listener for bellhop to send to\n * @param {string} data.name The name for the record. This is what is used to read or remove the record\n * @param {object | string} data.value The data object with the data and value for the record\n */\n onUserDataWrite({type, data: { name, value } }) {\n\n SavedDataHandler.write(name, value, () => this.client.send(type));\n }\n\n // ----------------------------------------------------------------\n // IndexedDB Manipulation\n // ----------------------------------------------------------------\n\n /**\n * Open a connection with the IDB Database and optionally add or delete\n * Indexes and stores\n * @param {string} dbName The name of your IndexedDB database\n * @param {string} [dbVersion] The version number of the database\n * @param {JSON} [additions] Any additions to the structure of the database\n * @param {array} [additions.stores] Any stores to be added into the database syntax:\n * @param {string} [additions.stores.storeName] The name of the store\n * @param {object} [additions.stores.options] Optionally, the option parameter for the createStore method\n * @param {array} [additions.indexes] Any Indexes to be added to the database syntax:\n * @param {string} [additions.indexes.storeName] The name of the store\n * @param {object} [additions.indexes.options] Optionally, the option parameter for the createIndex method\n * @param {string} type The type of listener for bellhop to send to\n */\n onIDBOpen({type, data: {dbName, dbVersion = null, additions = {}, deletions = {} }}) {\n // Keep an instance open to use on open\n this.savedDataHandler = new SavedDataHandler();\n this.savedDataHandler.IDBOpen( dbName, dbVersion, additions, deletions, value => this.client.send(type, value));\n }\n\n /**\n * Add a record to a given store\n * @param {string} type The type of listener for bellhop to send to\n * @param {string} storeName The name of the store from which the record will be updated\n * @param {*} value The value for the record with the given key to be updated\n * @param {string} key the key of the record to be updated\n */\n onIDBAdd({type, data: { storeName, value, key}}) {\n this.savedDataHandler.IDBAdd(storeName, value, key, value => this.client.send(type, value));\n }\n\n /**\n * Update a record from a given store\n * @param {string} type The type of listener for bellhop to send to\n * @param {string} storeName The name of the store with the record to update\n * @param {string} key The key of the record to be updated\n * @param {*} value The record value\n */\n onIDBUpdate({type, data: { storeName, key, value}}) {\n this.savedDataHandler.IDBUpdate(storeName, key, value, value => this.client.send(type, value));\n }\n\n /**\n * Remove a record from a store\n * @param {string} type The type of listener for bellhop to send to\n * @param {string} storeName The name of the store from which the record will be removed\n * @param {*} key the key of the record to be removed\n */\n onIDBRemove({type, data: {storeName, key}}) {\n this.savedDataHandler.IDBRemove(storeName, key, value => this.client.send(type, value));\n }\n\n /**\n * Return a record from a given store with a given key\n * @param {string} storeName The name of the store to read from\n * @param {string} key The key for the record in the given store\n * @param {string} type The type of listener for bellhop to send to\n */\n onIDBRead({type, data: {storeName, key}}) {\n this.savedDataHandler.IDBRead(storeName, key, value => this.client.send(type, value));\n }\n\n /**\n * Get all records from a store\n * @param {string} storeName The store to get all records from\n * @param {integer} count Optionally the number of records to return\n * @param {string} type The type of listener for bellhop to send to\n */\n onIDBReadAll({ type, data: {storeName, count} }) {\n this.savedDataHandler.IDBReadAll(storeName, count, value => this.client.send(type, value));\n }\n\n /**\n * Get the version of a given database\n * @param {string} dbName The name of the database to return the version of\n * @param {string} type The type of listener for bellhop to send to\n */\n onIDBGetVersion({type, data: {dbName}}) {\n // Create a new instance of savedDataHandler to avoid mutating the current instance\n const sdh = new SavedDataHandler();\n sdh.IDBGetVersion(dbName, value => this.client.send(type, value));\n }\n\n /**\n * Close the connection with the database\n * @param {string} type The type of listener for bellhop to send to\n */\n onIDBClose({type}) {\n this.savedDataHandler.IDBClose(value => this.client.send(type, value));\n }\n /**\n * Close the connection with the database\n * @param type - The type of request being sent\n */\n onIDBDeleteDB({type, data: {dbName, options }}) {\n const sdh = new SavedDataHandler();\n\n\n sdh.IDBDeleteDB(dbName, options, value => this.client.send(type, value));\n }\n}","import { SliderPlugin } from '../base-plugins';\n\n/**\n * @export\n * @class PointerSizePlugin\n * @extends {SliderPlugin}\n * @property {object[]} sliders an array of all slider objects attached to PointerSizePlugin\n * @extends SliderPlugin\n */\nexport class PointerSizePlugin extends SliderPlugin {\n /**\n * Creates an instance of PointerSizePlugin.\n * @param {string | HTMLElement} [pointerSliders] selector string or HTML Element for the input(s)\n * @param {number} [defaultPointerSize=0.5] The default value for the pointer size slider\n * @memberof PointerSizePlugin\n */\n constructor(pointerSliders, { defaultPointerSize = 0.5 } = {}) {\n super(pointerSliders, 'UISize-Pointer-Plugin', { defaultValue: defaultPointerSize, featureName: PointerSizePlugin.pointerSizeKey });\n\n for (let i = 0; i < this.slidersLength; i++) {\n this.sliders[i].enableSliderEvents(this.onPointerSizeChange.bind(this));\n }\n\n }\n\n /**\n * @memberof PointerSizePlugin\n * @param {Event} e\n */\n onPointerSizeChange(e) {\n this.currentValue = e.target.value;\n this.sendProperty(PointerSizePlugin.pointerSizeKey, this.currentValue);\n }\n\n\n /**\n * @readonly\n * @static\n * @memberof PointerSizePlugin\n * @return {string}\n */\n static get pointerSizeKey() {\n return 'pointerSize';\n }\n}\n","import { SliderPlugin } from '../base-plugins';\n\n/**\n * @export\n * @class ButtonSizePlugin\n * @property {object[]} sliders An array of slider objects given to ButtonSizePlugin\n * @property {number} currentValue The current button size value\n * @extends {SliderPlugin}\n */\nexport class ButtonSizePlugin extends SliderPlugin {\n /**\n * Creates an instance of ButtonSizePlugin.\n * @param {string | HTMLElement} buttonSliders selector string or html element(s) for the inputs\n * @param {object} options\n * @param {number} [options.defaultButtonSize=0.5]\n * @memberof ButtonSizePlugin\n */\n constructor(buttonSliders, { defaultButtonSize = 0.5 } = {}) {\n super(buttonSliders, 'UISize-Button-Plugin', { defaultValue: defaultButtonSize, featureName: ButtonSizePlugin.buttonSizeKey });\n\n for (let i = 0; i < this.slidersLength; i++) {\n this.sliders[i].enableSliderEvents(this.onButtonSizeChange.bind(this));\n }\n }\n\n /**\n * @memberof ButtonSizePlugin\n * @param {Event} e\n */\n onButtonSizeChange(e) {\n this.currentValue = e.target.value;\n this.sendProperty(ButtonSizePlugin.buttonSizeKey, this.currentValue);\n }\n\n /**\n * Get ButtonSize Key\n * @readonly\n * @static\n * @memberof ButtonSizePlugin\n * @returns {string}\n */\n static get buttonSizeKey() {\n return 'buttonSize';\n }\n}\n","import { SliderPlugin } from '../base-plugins';\n\n/**\n * @export\n * @class ControlSensitivityPlugin\n * @property {object[]} sliders an array of all slider objects attached to ControlSensitivityPlugin\n * @extends {SliderPlugin}\n */\nexport class ControlSensitivityPlugin extends SliderPlugin {\n /**\n * Creates an instance of ControlSensitivityPlugin.\n * @param {string | HTMLElement} sensitivitySliders\n * @param {number} [defaultSensitivity=0.5]\n * @memberof ControlSensitivityPlugin\n */\n constructor(sensitivitySliders, { defaultSensitivity = 0.5 } = {}) {\n super(sensitivitySliders, 'Control-Sensitivity-Plugin', {defaultValue: defaultSensitivity, featureName: ControlSensitivityPlugin.controlSensitivityKey});\n\n this.sendAllProperties = this.sendAllProperties.bind(this);\n\n for (let i = 0; i < this.slidersLength; i++) {\n this.sliders[i].enableSliderEvents(this.onControlSensitivityChange.bind(this));\n }\n }\n\n /**\n * @memberof ControlSensitivityPlugin\n * @param {Event} e\n */\n onControlSensitivityChange(e) {\n this.currentValue = e.target.value;\n this.sendProperty(ControlSensitivityPlugin.controlSensitivityKey, this.currentValue);\n }\n\n /**\n * @readonly\n * @static\n * @memberof ControlSensitivityPlugin\n * @returns {string}\n */\n static get controlSensitivityKey() {\n return 'controlSensitivity';\n }\n}\n","import { BasePlugin } from '../base-plugins';\nimport { SavedData } from '../SavedData';\n\n/**\n * @export\n * @class KeyboardMapPlugin\n * @extends {BasePlugin}\n */\nexport class KeyboardMapPlugin extends BasePlugin {\n /**\n * Creates an instance of KeyboardMapPlugin.\n * @param {string | HTMLElement} keyContainers div or similar container element that will contain the re-mappable keys\n * @param {string} [customClassName='springrollContainerKeyBinding__button'] A custom class name that will be applied to the container element\n * @memberof KeyboardMapPlugin\n */\n constructor(keyContainers, {customClassName = 'springrollContainerKeyBinding__button'} = {}) {\n super('Keyboard-Map-Plugin');\n\n this.sendAllProperties = this.sendAllProperties.bind(this);\n //Allows for removing and reading event listeners\n this.bindKey = this.bindKey.bind(this);\n this.onKeyButtonClick = this.onKeyButtonClick.bind(this);\n\n this.className = customClassName;\n\n this.keyContainers =\n keyContainers instanceof HTMLElement\n ? [keyContainers]\n : document.querySelectorAll(keyContainers);\n\n this.keyBindings = {};\n this.buttons = [];\n this.activekeyButton;\n\n this.sendAfterFetch = false;\n this.canEmit = false;\n\n this.keyContainersLength = this.keyContainers.length;\n\n if (this.keyContainersLength <= 0) {\n this.warn('plugin was not provided any valid key binding container elements');\n return;\n }\n }\n\n /**\n * @memberof KeyboardMapPlugin\n * @param {MouseEvent} e\n * Sets up a rebinding of a key once a key button is clicked.\n */\n onKeyButtonClick(e) {\n\n for (let i = 0, l = this.buttons.length; i < l; i++) {\n for (let j = 0; j < this.buttons[i].length; j++) {\n this.buttons[i][j].removeEventListener('click', this.onKeyButtonClick);\n }\n }\n this.activekeyButton = e.target;\n this.activekeyButton.textContent = 'Press Key to Map';\n document.addEventListener('keyup', this.bindKey);\n }\n\n /**\n * @memberof KeyboardMapPlugin\n * @param {KeyboardEvent} key\n * Actually updates the key binding and sends the value. Also\n * replicates the new key across the other keycontainers\n */\n bindKey(key) {\n key.preventDefault(); //prevents space bar from retriggering a keybinding when set.\n\n for (const actionName in this.keyBindings) {\n if (this.keyBindings[actionName].currentKey === key.key.toLowerCase()) {\n this.warn(`${key.key} is already bound`);\n return;\n }\n }\n\n this.activekeyButton.textContent = key.key === ' ' ? 'space' : key.key;\n for (let i = 0; i < this.buttons.length; i++) {\n for (let j = 0; j < this.buttons[i].length; j++) {\n if (this.buttons[i][j].value === this.activekeyButton.value) {\n this.buttons[i][j].textContent = this.activekeyButton.textContent;\n }\n }\n }\n\n this.keyBindings[this.activekeyButton.value].currentKey = key.key;\n\n document.removeEventListener('keyup', this.bindKey);\n for (let i = 0, l = this.buttons.length; i < l; i++) {\n for (let j = 0; j < this.buttons[i].length; j++) {\n this.buttons[i][j].addEventListener('click', this.onKeyButtonClick);\n }\n }\n\n this.sendProperty(KeyboardMapPlugin.keyBindingKey, this.keyBindings);\n }\n\n /**\n * @memberof KeyboardMapPlugin\n */\n init() {\n this.client.on(\n 'features',\n function(features) {\n if (!features.data) {\n return;\n }\n\n if (!features.data.keyBinding) {\n return;\n }\n\n const data = SavedData.read(KeyboardMapPlugin.keyBindingKey);\n\n this.client.fetch('keyBindings', result => {\n for (let j = 0; j < this.keyContainersLength; j++) {\n this.buttons[j] = [];\n\n for (let i = 0, l = result.data.length; i < l; i++) {\n let currentKey = result.data[i].defaultKey.toLowerCase();\n if (data) {\n if (data[result.data[i].actionName]) {\n currentKey = data[result.data[i].actionName].currentKey;\n }\n }\n //only needs to be set up once\n if (j === 0) {\n this.keyBindings[result.data[i].actionName] = {\n defaultKey: result.data[i].defaultKey.toLowerCase(),\n currentKey: currentKey,\n };\n }\n\n this.buttons[j][i] = document.createElement('button');\n this.buttons[j][i].classList.add(this.className);\n this.buttons[j][i].id = `keyBoardMapPlugin-${result.data[i].actionName}`;\n this.buttons[j][i].value = result.data[i].actionName;\n this.buttons[j][i].textContent = result.data[i].defaultKey;\n this.buttons[j][i].addEventListener('click', this.onKeyButtonClick);\n\n this.label = document.createElement('label');\n this.label.htmlFor = `keyBoardMapPlugin-${result.data[i].actionName}`;\n this.label.textContent = result.data[i].actionName;\n\n this.keyContainers[j].appendChild(this.label);\n this.keyContainers[j].appendChild(this.buttons[j][i]);\n }\n }\n\n this.canEmit = true;\n if (this.sendAfterFetch) {\n this.sendAllProperties();\n }\n });\n }.bind(this)\n );\n }\n\n /**\n*\n* Sends initial caption properties to the application\n* @memberof KeyboardMapPlugin\n*/\n sendAllProperties() {\n if (this.canEmit) {\n this.sendProperty(KeyboardMapPlugin.keyBindingKey, this.keyBindings);\n } else {\n this.sendAfterFetch = true;\n }\n }\n\n /**\n * @readonly\n * @static\n * @memberof KeyboardMapPlugin\n * @returns {string}\n */\n static get keyBindingKey() {\n return 'keyBinding';\n }\n}\n","import { SliderPlugin } from '../base-plugins';\n\n/**\n * @export\n * @class LayersPlugin\n * @property {object[]} sliders an array of all slider objects attached to LayersPlugin\n * @extends {SliderPlugin}\n */\nexport class LayersPlugin extends SliderPlugin {\n /**\n * Creates an instance of KeyboardMapPlugin.\n * @param {string | HTMLInputElement} layersSliders selector string or HTML Element for the input(s)\n * @param {number} [defaultValue=0] The default value for the slider\n */\n constructor(layersSliders, { defaultValue = 0 } = {}) {\n super(layersSliders, 'Layer-Plugin', { defaultValue: defaultValue, featureName: LayersPlugin.layersSliderKey });\n\n for (let i = 0; i < this.slidersLength; i++) {\n this.sliders[i].enableSliderEvents(this.onLayerValueChange.bind(this));\n }\n }\n\n /**\n * @memberof LayersPlugin\n * @param {Event} e\n */\n onLayerValueChange(e) {\n this.currentValue = e.target.value;\n this.sendProperty(LayersPlugin.layersSliderKey, this.currentValue);\n }\n\n /**\n * @readonly\n * @static\n * @memberof LayersPlugin\n * @returns {string}\n */\n static get layersSliderKey() {\n return 'removableLayers';\n }\n}\n","import { RadioGroupPlugin } from '../base-plugins';\nimport { SavedData } from '../SavedData';\n\nconst SUPPORTED_POSITIONS = ['top', 'bottom', 'left', 'right'];\n\n/**\n * @export\n * @class HUDPlugin\n * @extends {BasePlugin}\n */\nexport class HUDPlugin extends RadioGroupPlugin {\n /**\n * Creates an instance of HUDPlugin\n * @param {string} hudSelectorRadios selector string or for the input(s)\n * @param {string[]} [defaultValue='top'] default value for the HUD position\n * @memberof HUDPlugin\n */\n constructor(hudSelectorRadios, { defaultValue = SUPPORTED_POSITIONS[0] } = {}) {\n super(hudSelectorRadios, 'HUD-Layout-Plugin', {supportedValues: SUPPORTED_POSITIONS, initialValue: defaultValue, controlName: 'Hud Selector', featureName: HUDPlugin.hudPositionKey, radioCount: SUPPORTED_POSITIONS.length});\n\n this.sendAllProperties = this.sendAllProperties.bind(this);\n this.sendAfterFetch = false;\n this.canEmit = false;\n this.positions = [];\n\n if (this.radioGroupsLength <= 0) {\n this.warn('Plugin was not provided any valid HTML elements');\n }\n\n for (let i = 0; i < this.radioGroupsLength; i++) {\n this.radioGroups[i].enableRadioEvents(this.onHUDSelect.bind(this));\n }\n\n }\n\n /**\n * @memberof HUDPlugin\n * @param {Event} e\n */\n onHUDSelect(e) {\n //return if a radio button is programattically clicked when it is hidden\n if (!this.positions.includes(e.target.value)) {\n for (let i = 0; i < this.radioGroupsLength; i++) {\n this.radioGroups[i].radioGroup[this.currentValue].checked = true;\n }\n return;\n }\n\n this.currentValue = e.target.value;\n\n this.sendProperty(\n HUDPlugin.hudPositionKey,\n this.currentValue\n );\n }\n\n /**\n * @memberof HUDPlugin\n */\n init() {\n this.client.on(\n 'features',\n function(features) {\n if (!features.data || !features.data.hudPosition) {\n return;\n }\n\n if (this.radioGroupsLength <= 0) {\n return;\n }\n //get the game's reported HUD positions to build out positions array\n this.client.fetch('hudPositions', result => {\n for (let i = 0, l = result.data.length; i < l; i++) {\n if (\n !SUPPORTED_POSITIONS.includes(result.data[i].toLowerCase())\n ) {\n this.warn(`${result.data[i]} is an invalid position name`);\n continue;\n }\n\n this.positions.push(result.data[i].toLowerCase());\n }\n\n for (let i = 0; i < this.radioGroupsLength; i++) {\n //Hide any radio buttons that aren't in the game's position list.\n for (const key in this.radioGroups[i].radioGroup) {\n this.radioGroups[i].radioGroup[key].style.display = this.positions.includes(this.radioGroups[i].radioGroup[key].value) ? '' : 'none';\n }\n }\n\n this.canEmit = true;\n if (this.sendAfterFetch) {\n this.sendAllProperties();\n }\n });\n\n }.bind(this)\n );\n }\n\n /**\n * @memberof HUDPlugin\n */\n start() {\n const data = SavedData.read(HUDPlugin.hudPositionKey);\n\n if (SUPPORTED_POSITIONS.includes(data)) {\n this.currentValue = data;\n }\n this.client.on('loaded', this.sendAllProperties);\n this.client.on('loadDone', this.sendAllProperties);\n }\n\n /**\n *\n * Sends initial HUD position properties to the application\n * @memberof HUDPlugin\n */\n sendAllProperties() {\n if (this.canEmit) {\n this.sendProperty(HUDPlugin.hudPositionKey, this.currentValue);\n } else {\n this.sendAfterFetch = true;\n }\n }\n\n /**\n * @static\n * @readonly\n * @memberof HUDPlugin\n * @returns {string}\n */\n static get hudPositionKey() {\n return 'hudPosition';\n }\n}\n","import { RadioGroupPlugin } from '../base-plugins';\nimport { SavedData } from '../SavedData';\n\nconst COLOR_BLIND_TYPES = [\n 'none',\n 'protanopia',\n 'deuteranopia',\n 'tritanopia',\n 'achromatopsia'\n];\n\n/**\n * @export\n * @class ColorVisionPlugin\n * @property {boolean} sendAfterFetch Whether to send the properties after fetch or not\n * @property {boolean} canEmit Whether or not the plugin can send properties\n * @property {string} colors \n * @extends {RadioGroupPlugin}\n */\nexport class ColorVisionPlugin extends RadioGroupPlugin {\n /**\n * Creates an instance of ColorVisionPlugin.\n * @param {string | HTMLElement} colorSelects\n * @param {string } [defaultValue] Default selected value\n * @memberof ColorVision\n */\n constructor(colorVisionRadios, { defaultValue = COLOR_BLIND_TYPES[0] } = {}) {\n super(colorVisionRadios, 'Color-Filter-Plugin', {supportedValues: COLOR_BLIND_TYPES, initialValue: defaultValue, controlName: 'Color Vision Selector', featureName: ColorVisionPlugin.colorVisionKey, radioCount: COLOR_BLIND_TYPES.length});\n\n this.sendAllProperties = this.sendAllProperties.bind(this);\n this.sendAfterFetch = false;\n this.canEmit = false;\n this.colors = [];\n\n if (this.radioGroupsLength <= 0) {\n this.warn('Plugin was not provided any valid HTML elements');\n return;\n }\n\n for (let i = 0; i < this.radioGroupsLength; i++) {\n this.radioGroups[i].enableRadioEvents(this.onColorChange.bind(this));\n }\n }\n\n /**\n * @memberof ColorVisionPlugin\n * @param {Event} e\n */\n onColorChange(e) {\n //return if a radio button is programmatically clicked when it is hidden from the user\n if (!this.colors.includes(e.target.value) ) {\n for (let i = 0; i < this.radioGroupsLength; i++) {\n this.radioGroups[i].radioGroup[this.currentValue].checked = true;\n }\n return;\n }\n this.currentValue = e.target.value;\n\n this.sendProperty(\n ColorVisionPlugin.colorVisionKey,\n this.currentValue\n );\n }\n\n /**\n * @memberof ColorVisionPlugin\n */\n init() {\n this.client.on(\n 'features',\n function(features) {\n if (!features.data || !features.data.colorVision) {\n return;\n }\n if (this.colorDropdownsLength <= 0) {\n return;\n }\n\n //get the game's reported colors to build out accepted filters array\n this.client.fetch('colorFilters', result => {\n for (let i = 0, l = result.data.length; i < l; i++) {\n if (\n !COLOR_BLIND_TYPES.includes(result.data[i].toLowerCase())\n ) {\n this.warn(`${result.data[i]} is an invalid color vision name`);\n continue;\n }\n this.colors.push(result.data[i].toLowerCase());\n }\n\n this.defaultValue = this.colors[0];\n\n for (let i = 0; i < this.radioGroupsLength; i++) {\n //Hide any radio buttons that aren't in the game's filter list.\n for (const key in this.radioGroups[i].radioGroup) {\n this.radioGroups[i].radioGroup[key].style.display = this.colors.includes(this.radioGroups[i].radioGroup[key].value.toLowerCase()) ? '' : 'none';\n }\n }\n\n this.canEmit = true;\n\n if (this.sendAfterFetch) {\n this.sendAllProperties();\n }\n });\n\n }.bind(this)\n );\n }\n\n /**\n * @memberof ColorVisionPlugin\n */\n start() {\n const data = SavedData.read(ColorVisionPlugin.colorVisionKey);\n\n if (COLOR_BLIND_TYPES.includes(data)) {\n this.currentValue = data;\n }\n\n this.client.on('loaded', this.sendAllProperties);\n this.client.on('loadDone', this.sendAllProperties);\n }\n\n /**\n*\n* Sends initial caption properties to the application\n* @memberof ColorVisionPlugin\n*/\n sendAllProperties() {\n if (this.canEmit) {\n this.sendProperty(ColorVisionPlugin.colorVisionKey, this.currentValue);\n } else {\n this.sendAfterFetch = true;\n }\n }\n\n /**\n * Get the ColorVisionPlugin key\n * @readonly\n * @static\n * @memberof ColorVisionPlugin\n * @returns {string}\n */\n static get colorVisionKey() {\n return 'colorVision';\n }\n\n}\n","import { SliderPlugin } from '../base-plugins';\n\n/**\n * @export\n * @class HitAreaScalePlugin\n * @property {object[]} sliders an array of all slider objects attached to ControlSensitivityPlugin\n * @extends {SliderPlugin}\n * \n */\nexport class HitAreaScalePlugin extends SliderPlugin {\n /**\n * Creates an instance of HitAreaScalePlugin.\n * @param {string | HTMLElement} hitAreaScaleSliders The selector or HTMLElement for the slider\n * @param {number} [defaultHitAreaScale=0.5] The default hit area scale value\n * @memberof HitAreaScalePlugin\n */\n constructor(hitAreaScaleSliders, { defaultHitAreaScale = 0.5 } = {}) {\n super(hitAreaScaleSliders, 'Hit-Area-Scale-Plugin', { defaultValue: defaultHitAreaScale, featureName: HitAreaScalePlugin.hitAreaScaleKey });\n\n for (let i = 0; i < this.slidersLength; i++) {\n this.sliders[i].enableSliderEvents(this.onHitAreaScaleChange.bind(this));\n }\n }\n\n /**\n * @memberof HitAreaScalePlugin\n * @param {Event} target\n * @param {string} control\n */\n onHitAreaScaleChange(e) {\n this.currentValue = e.target.value;\n this.sendProperty(HitAreaScalePlugin.hitAreaScaleKey, this.currentValue);\n }\n\n /**\n * @readonly\n * @static\n * @memberof HitAreaScalePlugin\n * @returns {string}\n */\n static get hitAreaScaleKey() {\n return 'hitAreaScale';\n }\n}\n","import { SliderPlugin } from '../base-plugins';\n\n/**\n * @export\n * @class DragThresholdScalePlugin\n * @extends {SliderPlugin}\n */\nexport class DragThresholdScalePlugin extends SliderPlugin {\n /**\n * Creates an instance of DragThresholdScalePlugin.\n * @param {string | HTMLElement} params.dragThresholdScaleSliders\n * @param {number} [defaultDragThresholdScale=0.5]\n * @memberof DragThresholdScalePlugin\n */\n constructor(dragThresholdScaleSliders, { defaultDragThresholdScale = 0.5 } = {}) {\n super(dragThresholdScaleSliders, 'Drag-Threshold-Scale-Plugin', { defaultValue: defaultDragThresholdScale, featureName: DragThresholdScalePlugin.dragThresholdScaleKey });\n\n for (let i = 0; i < this.slidersLength; i++) {\n this.sliders[i].enableSliderEvents(this.onDragThresholdScaleChange.bind(this));\n }\n }\n\n /**\n * @memberof DragThresholdScalePlugin\n * @param {Event} target\n * @param {string} control\n */\n onDragThresholdScaleChange(e) {\n this.currentValue = e.target.value;\n this.sendProperty(DragThresholdScalePlugin.dragThresholdScaleKey, this.currentValue);\n }\n\n /**\n * @readonly\n * @static\n * @memberof DragThresholdScalePlugin\n * @returns {string}\n */\n static get dragThresholdScaleKey() {\n return 'dragThresholdScale';\n }\n}","import { SliderPlugin } from '../base-plugins';\n\n/**\n * @export\n * @class HealthPlugin\n * @extends {SliderPlugin}\n */\nexport class HealthPlugin extends SliderPlugin {\n /**\n * Creates an instance of HealthPlugin.\n * @param {string | HTMLElement} healthSliders\n * @param {number} [defaultHealth=0.5]\n * @memberof HealthPlugin\n */\n constructor(healthSliders, {defaultHealth = 0.5 } = {}) {\n super(healthSliders, 'Health-Scale-Plugin', { defaultValue:defaultHealth, featureName: HealthPlugin.healthKey });\n\n for (let i = 0; i < this.slidersLength; i++) {\n this.sliders[i].enableSliderEvents(this.onHealthChange.bind(this));\n }\n }\n\n /**\n * @memberof HealthPlugin\n * @param {Event} e\n */\n onHealthChange(e) {\n this.currentValue = e.target.value;\n this.sendProperty(HealthPlugin.healthKey, this.currentValue);\n }\n\n /**\n * @readonly\n * @static\n * @memberof HealthPlugin\n * @returns {string}\n */\n static get healthKey() {\n return 'health';\n }\n}","import { SliderPlugin } from '../base-plugins';\n\n/**\n * @export\n * @class ObjectCountPlugin\n * @property {object[]} sliders an array of all slider objects attached to ObjectCountPlugin\n * @extends {SliderPlugin}\n */\nexport class ObjectCountPlugin extends SliderPlugin {\n /**\n * Creates an instance of ObjectCountPlugin.\n * @param {string | HTMLElement} objectCountSliders selector string or HTML Element for the input(s)\n * @param {number} [defaultObjectCount=0.5] The default value for the slider\n * @memberof ObjectCountPlugin\n */\n constructor(objectCountSliders, { defaultObjectCount = 0.5 } = {}) {\n super(objectCountSliders, 'Object-Count-Plugin', { defaultValue: defaultObjectCount, featureName: ObjectCountPlugin.objectCountKey });\n\n for (let i = 0; i < this.slidersLength; i++) {\n this.sliders[i].enableSliderEvents(this.onObjectCountChange.bind(this));\n }\n }\n\n /**\n * @memberof ObjectCountPlugin\n * @param {Event} target\n * @param {string} control\n */\n onObjectCountChange(e) {\n this.currentValue = e.target.value;\n this.sendProperty(ObjectCountPlugin.objectCountKey, this.currentValue);\n }\n\n /**\n * @readonly\n * @static\n * @memberof ObjectCountPlugin\n * @returns {string}\n */\n static get objectCountKey() {\n return 'objectCount';\n }\n}","import { SliderPlugin } from '../base-plugins';\n\n/**\n * @export\n * @class CompletionPercentagePlugin\n * @property {object[]} sliders an array of all slider objects attached to CompletePercentagePlugin\n * @extends {SliderPlugin}\n */\nexport class CompletionPercentagePlugin extends SliderPlugin {\n /**\n * Creates an instance of CompletionPercentagePlugin.\n * @param {string | HTMLElement} completionPercentageSliders The selector or HTMLSliderElement of the slider\n * @param {number} [defaultCompletionPercentage=0.5] Default selected completion percentage\n * @memberof CompletionPercentagePlugin\n */\n constructor(completionPercentageSliders, { defaultCompletionPercentage = 0.5 } = {}) {\n super(completionPercentageSliders, 'Completion-Percentage-Plugin', { defaultValue: defaultCompletionPercentage, featureName: CompletionPercentagePlugin.completionPercentageKey });\n\n for (let i = 0; i < this.slidersLength; i++) {\n this.sliders[i].enableSliderEvents(this.onCompletionPercentageChange.bind(this));\n }\n }\n\n /**\n * @memberof CompletionPercentagePlugin\n * @param {Event} e\n */\n onCompletionPercentageChange(e) {\n this.currentValue = e.target.value;\n this.sendProperty(CompletionPercentagePlugin.completionPercentageKey, this.currentValue);\n }\n\n /**\n * @readonly\n * @static\n * @memberof CompletionPercentagePlugin\n * @returns {string}\n */\n static get completionPercentageKey() {\n return 'completionPercentage';\n }\n}","import { SliderPlugin } from '../base-plugins';\n\n/**\n * @export\n * @class SpeedScalePlugin\n * @extends {SliderPlugin}\n */\nexport class SpeedScalePlugin extends SliderPlugin {\n /**\n *Creates an instance of SpeedScalePlugin.\n * @param {string | HTMLElement} speedScaleSliders selector string or HTML Element for the input(s)\n * @param {number} [defaultSpeedScale=0.5] The default value for the speed scale slider\n * @memberof SpeedScalePlugin\n */\n constructor(speedScaleSliders, { defaultSpeedScale = 0.5 } = {}) {\n super(speedScaleSliders, 'Speed-Scale-Plugin', { defaultValue: defaultSpeedScale, featureName: SpeedScalePlugin.speedScaleKey });\n\n for (let i = 0; i < this.slidersLength; i++) {\n this.sliders[i].enableSliderEvents(this.onSpeedScaleChange.bind(this));\n }\n }\n\n /**\n * @memberof SpeedScalePlugin\n * @param {Event} e\n */\n onSpeedScaleChange(e) {\n this.currentValue = e.target.value;\n this.sendProperty(SpeedScalePlugin.speedScaleKey, this.currentValue);\n }\n\n /**\n * @readonly\n * @static\n * @memberof SpeedScalePlugin\n * @return {string}\n */\n static get speedScaleKey() {\n return 'speedScale';\n }\n}","import { SliderPlugin } from '../base-plugins';\n\n/**\n * @export\n * @class TimersScalePlugin\n * @property {number} currentValue\n * @extends {SliderPlugin}\n */\nexport class TimersScalePlugin extends SliderPlugin {\n /**\n * Creates an instance of TimersScalePlugin.\n * @param {string | HTMLElement} timersScaleSliders selector string or HTML Element for the input(s)\n * @param {number} [defaultTimersScale=0.5] Default Value for the timer scale slider\n * @memberof TimersScalePlugin\n */\n constructor(timersScaleSliders, { defaultTimersScale = 0.5 } = {}) {\n super(timersScaleSliders, 'Timers-Scale-Plugin', { defaultValue: defaultTimersScale, featureName: TimersScalePlugin.timersScaleKey });\n\n for (let i = 0; i < this.slidersLength; i++) {\n this.sliders[i].enableSliderEvents(this.onTimersScaleChange.bind(this));\n }\n }\n\n /**\n * @memberof TimersScalePlugin\n * @param {Event} e\n */\n onTimersScaleChange(e) {\n this.currentValue = e.target.value;\n this.sendProperty(TimersScalePlugin.timersScaleKey, this.currentValue);\n }\n\n /**\n * @readonly\n * @static\n * @memberof TimersScalePlugin\n * @return {string}\n */\n static get timersScaleKey() {\n return 'timersScale';\n }\n}","import { SliderPlugin } from '../base-plugins';\n\n/**\n * @export\n * @class InputCountPlugin\n * @property {object[]} sliders an array of all slider objects attached to InputCountPlugin\n * @extends {SliderPlugin}\n */\nexport class InputCountPlugin extends SliderPlugin {\n /**\n * Creates an instance of InputCountPlugin.\n * @param {string | HTMLElement} inputCountSliders selector string or HTML Element for the input(s)\n * @param {number} [defaultInputCount=0.5] The default value for the slider\n * @memberof InputCountPlugin\n */\n constructor(inputCountSliders, { defaultInputCount = 0.5 } = {}) {\n super(inputCountSliders, 'Input-Count-Plugin', { defaultValue: defaultInputCount, featureName: InputCountPlugin.inputCountKey });\n\n for (let i = 0; i < this.slidersLength; i++) {\n this.sliders[i].enableSliderEvents(this.onInputCountChange.bind(this));\n }\n }\n\n /**\n * @memberof InputCountPlugin\n * @param {Event} target\n * @param {string} control\n */\n onInputCountChange(e) {\n this.currentValue = e.target.value;\n this.sendProperty(InputCountPlugin.inputCountKey, this.currentValue);\n }\n\n /**\n * @readonly\n * @static\n * @memberof InputCountPlugin\n * @returns {string}\n */\n static get inputCountKey() {\n return 'inputCount';\n }\n}","import { ButtonPlugin } from '../base-plugins/ButtonPlugin';\nimport { Button } from '../ui-elements';\n\n/**\n * A Springroll plugin to easily set up togglable fullscreen\n */\nexport class FullScreenPlugin extends ButtonPlugin {\n \n /**\n * Creates an instance of FullscreenPlugin\n * \n * @param {string | string[]} buttonSelector The selector for the element to be made fullscreen\n */\n constructor(buttonSelector) {\n super({\n name: FullScreenPlugin.fullscreenKey\n }); \n\n this._toggleButtons = [];\n this.iFrame = null;\n\n this.sendAllProperties = this.sendAllProperties.bind(this);\n\n if (Array.isArray(buttonSelector)) {\n // If input is an array, join the selectors into one string\n buttonSelector = buttonSelector.join(', ');\n }\n\n console.log(buttonSelector);\n \n this.toggleButton = document.querySelectorAll(buttonSelector);\n\n\n this.toggleButton.forEach((button) => {\n this._toggleButtons.push(new Button({\n button: button,\n onClick: this.toggleFullScreen.bind(this),\n channel: FullScreenPlugin.fullscreenKey\n }));\n });\n \n\n document.addEventListener('fullscreenchange', () => {\n this.sendAllProperties();\n \n this._toggleButtons.forEach((button) => {\n button.button.classList.toggle('--fullScreen');\n });\n\n });\n }\n\n /**\n * @memberof FullScreenPlugin\n */\n init({ iframe }) {\n this.iFrame = iframe;\n // Handle the features request\n this.client.on(\n 'features',\n function($event) {\n for (let i = 0; i < this.fullscreenElement; i ++) {\n this._toggleButtons[i].displayButton($event.data);\n }\n\n }.bind(this)\n );\n }\n /**\n * @memberof FullScreenPlugin\n */\n start() {\n this.client.on('loaded', this.sendAllProperties);\n this.client.on('loadDone', this.sendAllProperties);\n }\n\n /**\n *\n * Sends initial fullScreen properties to the application\n * @memberof FullScreenTogglePlugin\n */\n sendAllProperties() {\n this.sendProperty(FullScreenPlugin.fullscreenKey, document.fullscreenElement != null ? 'true' : 'false');\n }\n\n /**\n * Toggles fullscreen on this.iFrame. Must be from a user generated event\n */\n toggleFullScreen() {\n if (!document.fullscreenElement) {\n this.iFrame.requestFullscreen().then(() => {\n this.sendAllProperties();\n }).catch((err) => {\n console.log(err);\n });\n } else {\n document.exitFullscreen();\n this.sendAllProperties();\n }\n }\n\n /**\n * Returns true if there is a fullscreen element and false if not\n * @returns { boolean } \n */\n get isFullScreen() {\n return (document.fullscreenElement || // basic\n document.webkitIsFullscreen || //Webkit browsers\n document.mozFullScreen ) // Firefox\n != true; // Ensure boolean output\n }\n\n /** \n * @readonly\n * @static\n * @memberof FullscreenPlugin\n */\n static get fullscreenKey() {\n return 'fullScreen';\n }\n}"],"names":["global","globalThis","self","support","Symbol","Blob","e","viewClasses","isArrayBufferView","ArrayBuffer","isView","obj","indexOf","Object","prototype","toString","call","normalizeName","name","String","test","TypeError","toLowerCase","normalizeValue","value","iteratorFor","items","iterator","next","shift","done","undefined","Headers","headers","this","map","forEach","append","Array","isArray","header","getOwnPropertyNames","consumed","body","bodyUsed","Promise","reject","fileReaderReady","reader","resolve","onload","result","onerror","error","readBlobAsArrayBuffer","blob","FileReader","promise","readAsArrayBuffer","bufferClone","buf","slice","view","Uint8Array","byteLength","set","buffer","Body","_initBody","_bodyInit","_bodyText","isPrototypeOf","_bodyBlob","FormData","_bodyFormData","URLSearchParams","DataView","_bodyArrayBuffer","get","type","rejected","Error","arrayBuffer","isConsumed","byteOffset","then","text","readAsText","readBlobAsText","chars","length","i","fromCharCode","join","readArrayBufferAsText","formData","decode","json","JSON","parse","oldValue","has","hasOwnProperty","callback","thisArg","keys","push","values","entries","methods","Request","input","options","url","credentials","method","mode","signal","upcased","toUpperCase","normalizeMethod","referrer","cache","reParamSearch","replace","Date","getTime","form","trim","split","bytes","decodeURIComponent","Response","bodyInit","status","ok","statusText","clone","response","redirectStatuses","redirect","RangeError","location","DOMException","err","message","stack","create","constructor","fetch","init","request","aborted","xhr","XMLHttpRequest","abortXhr","abort","rawHeaders","getAllResponseHeaders","substr","line","parts","key","responseURL","responseText","setTimeout","ontimeout","onabort","open","href","fixUrl","withCredentials","responseType","setRequestHeader","addEventListener","onreadystatechange","readyState","removeEventListener","send","polyfill","check","it","Math","window","Function","domIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","documentAll","document","all","documentAll_1","IS_HTMLDDA","require$$0","isCallable","argument","require$$1","isObject","EXISTS","createElement","documentCreateElement","classList","DOMTokenListPrototype","domTokenListPrototype","fails","exec","functionBindNative","bind","NATIVE_BIND","FunctionPrototype","uncurryThisWithBind","functionUncurryThis","fn","apply","arguments","uncurryThis","stringSlice","classofRaw","functionUncurryThisClause","$String","tryToString","$TypeError","aCallable","require$$2","functionBindContext","that","classof","$Object","indexedObject","propertyIsEnumerable","isNullOrUndefined","requireObjectCoercible","toObject","ceil","floor","mathTrunc","trunc","x","n","toIntegerOrInfinity","number","min","toLength","lengthOfArrayLike","defineProperty","defineGlobalProperty","configurable","writable","SHARED","sharedStore","store","sharedModule","version","copyright","license","source","match","hasOwnProperty_1","hasOwn","id","postfix","random","uid","engineUserAgent","navigator","userAgent","process","Deno","versions","v8","engineV8Version","V8_VERSION","symbolConstructorDetection","getOwnPropertySymbols","symbol","sham","useSymbolAsUid","shared","require$$3","NATIVE_SYMBOL","require$$4","USE_SYMBOL_AS_UID","require$$5","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","wellKnownSymbol","toStringTagSupport","TO_STRING_TAG_SUPPORT","TO_STRING_TAG","CORRECT_ARGUMENTS","O","tag","tryGet","callee","getBuiltIn","namespace","functionToString","inspectSource","noop","empty","construct","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","isConstructor","called","SPECIES","$Array","arraySpeciesConstructor","originalArray","C","arraySpeciesCreate","IndexedObject","createMethod","TYPE","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","$this","callbackfn","specificCreate","boundFunction","index","target","arrayIteration","filter","some","every","find","findIndex","filterReject","arrayMethodIsStrict","METHOD_NAME","$forEach","arrayForEach","descriptors","ie8DomDefine","a","v8PrototypeDefineBug","anObject","functionCall","objectIsPrototypeOf","isSymbol","$Symbol","getMethod","V","P","func","ordinaryToPrimitive","pref","val","valueOf","TO_PRIMITIVE","toPrimitive","exoticToPrim","toPropertyKey","DESCRIPTORS","IE8_DOM_DEFINE","V8_PROTOTYPE_DEFINE_BUG","$defineProperty","$getOwnPropertyDescriptor","getOwnPropertyDescriptor","ENUMERABLE","CONFIGURABLE","WRITABLE","objectDefineProperty","f","Attributes","current","enumerable","createPropertyDescriptor","bitmap","definePropertyModule","createNonEnumerableProperty","object","DOMIterables","handlePrototype","CollectionPrototype","COLLECTION_NAME","handlePrototype$1","toIndexedObject","max","toAbsoluteIndex","integer","IS_INCLUDES","el","fromIndex","arrayIncludes","includes","hiddenKeys","objectKeysInternal","names","enumBugKeys","internalObjectKeys","objectKeys","objectDefineProperties","defineProperties","Properties","props","activeXDocument","html","sharedKey","definePropertiesModule","PROTOTYPE","SCRIPT","IE_PROTO","require$$6","EmptyConstructor","scriptTag","content","LT","NullProtoObjectViaActiveX","write","close","temp","parentWindow","NullProtoObject","ActiveXObject","iframeDocument","iframe","JS","domain","style","display","appendChild","src","contentWindow","F","objectCreate","UNSCOPABLES","ArrayPrototype","addToUnscopables","iterators","WeakMap","NATIVE_WEAK_MAP","require$$7","OBJECT_ALREADY_INITIALIZED","state","metadata","facade","STATE","internalState","enforce","getterFor","$propertyIsEnumerable","NASHORN_BUG","objectPropertyIsEnumerable","descriptor","propertyIsEnumerableModule","objectGetOwnPropertyDescriptor","getDescriptor","functionName","PROPER","CONFIGURABLE_FUNCTION_NAME","enforceInternalState","getInternalState","CONFIGURABLE_LENGTH","TEMPLATE","makeBuiltIn","makeBuiltInModule","exports","getter","setter","arity","defineBuiltIn","simple","unsafe","nonConfigurable","nonWritable","concat","objectGetOwnPropertyNames","objectGetOwnPropertySymbols","IteratorPrototype","PrototypeOfArrayIteratorPrototype","arrayIterator","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","ownKeys","getOwnPropertyDescriptorModule","replacement","isForced","feature","detection","data","normalize","POLYFILL","NATIVE","string","isForced_1","copyConstructorProperties","exceptions","_export","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","dontCallGetSet","forced","correctPrototypeGetter","getPrototypeOf","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","objectGetPrototypeOf","ITERATOR","BUGGY_SAFARI_ITERATORS","NEW_ITERATOR_PROTOTYPE","iteratorsCore","setToStringTag","TAG","Iterators","returnThis","uncurryThisAccessor","aPossiblePrototype","objectSetPrototypeOf","setPrototypeOf","CORRECT_SETTER","proto","__proto__","$","createIteratorConstructor","IteratorConstructor","NAME","ENUMERABLE_NEXT","require$$8","require$$9","require$$10","require$$12","PROPER_FUNCTION_NAME","require$$13","require$$11","KEYS","VALUES","ENTRIES","iteratorDefine","Iterable","DEFAULT","IS_SET","FORCED","CurrentIteratorPrototype","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","createIterResultObject","InternalStateModule","defineIterator","ARRAY_ITERATOR","setInternalState","es_array_iterator","iterated","kind","Arguments","addToUnscopables$2","ArrayIteratorMethods","ArrayValues","path","$indexOf","nativeIndexOf","NEGATIVE_ZERO","searchElement","createProperty","propertyKey","arrayMethodHasSpeciesSupport","array","foo","Boolean","doesNotExceedSafeInteger","IS_CONCAT_SPREADABLE","IS_CONCAT_SPREADABLE_SUPPORT","isConcatSpreadable","spreadable","arg","k","len","E","A","$assign","assign","objectAssign","b","B","alphabet","chr","T","argumentsLength","S","j","$location","defer","channel","port","engineIsNode","defineBuiltInAccessor","setSpecies","CONSTRUCTOR_NAME","Constructor","anInstance","Prototype","aConstructor","functionApply","Reflect","arraySlice","engineIsIos","validateArgumentsLength","passed","required","IS_IOS","IS_NODE","setImmediate","clear","clearImmediate","Dispatch","MessageChannel","counter","queue","ONREADYSTATECHANGE","run","runner","eventListener","event","globalPostMessageDefer","postMessage","protocol","host","handler","args","nextTick","now","port2","port1","onmessage","importScripts","removeChild","task","Queue","head","tail","Queue$2","add","item","entry","notify","toggle","node","engineIsIosPebble","Pebble","engineIsWebosWebkit","macrotask","IS_IOS_PEBBLE","IS_WEBOS_WEBKIT","MutationObserver","WebKitMutationObserver","queueMicrotaskDescriptor","microtask","flush","parent","exit","enter","createTextNode","observe","characterData","microtask_1","perform","promiseNativeConstructor","engineIsDeno","engineIsBrowser","NativePromiseConstructor","IS_BROWSER","IS_DENO","NativePromiseConstructor$3","SUBCLASSING","NATIVE_PROMISE_REJECTION_EVENT","PromiseRejectionEvent","FORCED_PROMISE_CONSTRUCTOR","PROMISE_CONSTRUCTOR_SOURCE","GLOBAL_CORE_JS_PROMISE","FakePromise","promiseConstructorDetection","CONSTRUCTOR","REJECTION_EVENT","PromiseCapability","$$resolve","$$reject","newPromiseCapability","Internal","OwnPromiseCapability","nativeThen","speciesConstructor","defaultConstructor","require$$14","require$$15","hostReportErrors","console","require$$17","require$$18","require$$19","require$$20","newPromiseCapabilityModule","require$$22","PROMISE","require$$21","NATIVE_PROMISE_SUBCLASSING","getInternalPromiseState","NativePromisePrototype","PromiseConstructor","PromisePrototype","newGenericPromiseCapability","DISPATCH_EVENT","createEvent","dispatchEvent","UNHANDLED_REJECTION","isThenable","callReaction","reaction","exited","fail","rejection","onHandleUnhandled","isReject","notified","reactions","onUnhandled","reason","initEvent","isUnhandled","emit","unwrap","internalReject","internalResolve","wrapper","executor","onFulfilled","onRejected","PromiseWrapper","wrap","setSpecies$1","getIteratorMethod","isArrayIteratorMethod","getIterator","usingIterator","iteratorMethod","iteratorClose","innerResult","innerError","Result","stopped","ResultPrototype","iterate","iterable","unboundFunction","iterFn","step","AS_ENTRIES","IS_RECORD","IS_ITERATOR","INTERRUPTED","stop","condition","callFn","SAFE_CLOSING","iteratorWithReturn","return","from","checkCorrectnessOfIteration","SKIP_CLOSING","ITERATION_SUPPORT","promiseStaticsIncorrectIteration","capability","$promiseResolve","remaining","alreadyCalled","real","catch","race","r","promiseResolve","promiseCapability","re1","re2","regexpFlags","hasIndices","ignoreCase","multiline","dotAll","unicode","unicodeSets","sticky","$RegExp","RegExp","UNSUPPORTED_Y","re","lastIndex","MISSED_STICKY","regexpStickyHelpers","BROKEN_CARET","regexpUnsupportedDotAll","flags","regexpUnsupportedNcg","groups","stickyHelpers","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","nativeReplace","nativeExec","patchedExec","charAt","UPDATES_LAST_INDEX_WRONG","NPCG_INCLUDED","reCopy","group","str","raw","charsAdded","strCopy","Features","_classCallCheck","_createClass","canvas","getContext","Worker","msPointerEnabled","msMaxTouchPoints","pointerEnabled","maxTouchPoints","webaudio","htmlAudio","capabilities","basic","features","ui","sizes","touch","size","screen","width","height","xsmall","small","medium","large","xlarge","webgl","webAudio","charCodeAt","CONVERT_TO_STRING","pos","first","second","position","codeAt","STRING_ITERATOR","point","$filter","$find","FIND","SKIPS_HOLES","addToUnscopables$1","t","PluginManager","_ref","_ref$plugins","plugins","client","Bellhop","hidden","receive","hiddenSend","_this","preloads","_loop","preload","preloadFailed","warn","l","plugin","start","Container","_PluginManager","_inherits","_openRemote","_super","_createSuper","iframeOrSelector","_ref$context","context","HTMLIFrameElement","querySelector","loaded","loading","release","_context","onLoading","_assertThisInitialized","onLoadDone","onEndGame","onLocalError","initClient","setupPlugins","trigger","remove","reset","$event","setAttribute","on","connect","userPath","_ref2","_ref2$singlePlay","singlePlay","_ref2$playOptions","playOptions","playOptionsQueryString","encodeURIComponent","stringify","respond","_typeof","_internalOpen","_asyncToGenerator","_regeneratorRuntime","mark","_callee","api","_ref3","_ref3$query","query","_ref3$singlePlay","_ref3$playOptions","_args","prev","sent","success","_x","newContext","PageVisibility","onFocus","onBlur","_onFocus","_onBlur","enabled","_enabled","onToggle","enable","$includes","whitespaces","ltrim","rtrim","stringTrim","end","$trim","forcedStringTrimMethod","regExpFlags","RegExpPrototype","$toString","getRegExpFlags","R","TO_STRING","nativeToString","NOT_GENERIC","INCORRECT_NAME","SavedData","dbName","db","dbVersion","additions","deletions","indexedDB","onsuccess","onupgradeneeded","stores","createObjectStore","storeName","indexes","transaction","objectStore","createIndex","indexName","keyPath","deleteIndex","deleteObjectStore","deleteDatabase","IDBOpen","tx","oncomplete","updateRequest","put","_this2","delete","_this3","readRequest","_this4","count","getAllKeys","getAll","dBOpenRequest","localStorage","removeItem","sessionStorage","setItem","getItem","BasePlugin","_preload","sendAllProperties","_","prop","disableSend","warningText","ButtonPlugin","_BasePlugin","sendMutes","container","button","HTMLButtonElement","muted","log","changeMutedState","sendProperty","htmlButton","HTMLElement","MATCH","isRegExp","notARegExp","correctIsRegExpLogic","regexp","error1","error2","stringIndexOf","searchString","$getOwnPropertyNames","fin","windowNames","objectGetOwnPropertyNamesExternal","getWindowNames","arrayBufferNonExtensible","isExtensible","ARRAY_BUFFER_NON_EXTENSIBLE","$isExtensible","objectIsExtensible","freezing","preventExtensions","getOwnPropertyNamesExternalModule","FREEZING","REQUIRED","METADATA","setMetadata","objectID","weakData","meta","internalMetadataModule","splice","fastKey","getWeakData","onFreeze","inheritIfRequired","dummy","Wrapper","NewTarget","NewTargetPrototype","InternalMetadataModule","defineBuiltIns","internalStateGetterFor","collectionStrong","getConstructor","ADDER","last","define","previous","getEntry","removed","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","common","IS_WEAK","NativeConstructor","NativePrototype","exported","fixMethod","uncurriedNativeMethod","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","collection","nativeKeys","$map","TO_ENTRIES","$values","RadioGroup","selector","controlName","_ref$featureName","featureName","defaultValue","pluginName","radioElements","querySelectorAll","radioGroup","_possibleConstructorReturn","radio","checked","valuesArray","_toConsumableArray","Set","callBack","RadioGroupPlugin","cssSelector","supportedValues","initialValue","radioCount","selectors","_currentValue","radioGroups","setUpRadios","radioGroupsLength","hasOnly","hasDuplicateValues","property","newValue","thisNumberValue","require$$16","NUMBER","NativeNumber","NumberPrototype","toNumber","third","radix","maxCode","digits","code","NaN","parseInt","NumberWrapper","primValue","toNumeric","Number","Slider","slider","control","_ref$min","_ref$max","_ref$step","_ref$defaultValue","sliderValue","setUpSlider","read","Button","onClick","className","SliderPlugin","_ref$minValue","minValue","_ref$maxValue","maxValue","sliders","setUpSliders","slidersLength","displaySlider","currentValue","sliderRange","DEFAULT_CAPTIONS_STYLES","background","color","edge","font","align","DEFAULT_COLOR_STYLE","INVERTED_COLOR_STYLE","FONT_SIZE_VALUES","COLOR_VALUES","ALIGN_VALUES","CaptionsStylePlugin","_ButtonPlugin","fontSizeRadios","colorRadios","alignmentRadios","_ref$defaultFontSize","defaultFontSize","_ref$defaultColor","defaultColor","_ref$defaultAlignment","defaultAlignment","captionsStyles","captionStyleKey","fontSizeSelectors","colorSelectors","alignmentSelectors","setUpFontSizeRadios","setUpColorRadios","setUpAlignmentRadios","_captionsMuted","alignmentRadiosLength","fontSizeRadiosLength","colorRadiosLength","enableRadioEvents","onColorChange","onAlignmentChange","onFontSizeChange","_step","_iterator","_createForOfIteratorHelper","radios","s","displayRadios","setCaptionsStyles","styles","_step2","_iterator2","resetState","_this5","CaptionsTogglePlugin","captionsButtons","_captionsButtons","captionsButtonClick","captionsButtonLength","displayButton","captionsToggleKey","captionsMuted","setMuteProp","captionsButtonsLength","enableButton","_setMuteProp","HelpPlugin","helpButtons","_helpButtons","helpButtonClick","paused","_helpEnabled","onPause","helpButtonsLength","helpEnabled","getAttribute","hints","PausePlugin","pauseButton","manageOwnVisibility","_manageOwnVisibility","_appBlurred","_containerBlurred","_focusTimer","_isManualPause","_keepFocus","_paused","focusApp","manageFocus","onKeepFocus","onPauseToggle","pauseDisabled","_pauseButton","pageVisibility","onContainerFocus","onContainerBlur","pauseKey","hasDom","focus","blur","blurApp","clearTimeout","pause","disablePause","buttons","SoundPlugin","soundButtons","musicButtons","sfxButtons","voButtons","soundSliders","musicSliders","sfxSliders","voSliders","saved","soundMutedKey","_soundMuted","_musicMuted","_voMuted","_sfxMuted","_musicMutedByUser","_soundMutedByUser","_sfxMutedByUser","_voMutedByUser","soundMuteEnabled","musicMuteEnabled","sfxMuteEnabled","voMuteEnabled","soundVolume","musicVolume","sfxVolume","voVolume","soundVolumeKey","newSlider","musicVolumeKey","sfxVolumeKey","voVolumeKey","onSoundToggle","soundKey","onMusicToggle","onSFXToggle","onVOToggle","soundSlidersLength","musicSlidersLength","sfxSlidersLength","voSlidersLength","soundButtonsLength","musicButtonsLength","sfxButtonsLength","voButtonsLength","enableSliderEvents","onSoundVolumeChange","onMusicVolumeChange","onSFXVolumeChange","onVOVolumeChange","soundMuted","musicMuted","sfxMuted","voMuted","_checkSoundMute","element","sound","music","sfx","vo","soundVolumeEnabled","musicVolumeEnabled","sfxVolumeEnabled","voVolumeEnabled","musicMutedKey","sfxMutedKey","voMutedKey","_soundButton","_musicButton","_sfxButton","_voButton","SavedDataHandler","savedData","record","IDBAdd","IDBUpdate","IDBRemove","IDBRead","IDBReadAll","IDBGetVersion","IDBClose","IDBDeleteDB","UserDataPlugin","onUserDataRemove","onUserDataRead","onUserDataWrite","onIDBAdd","onIDBOpen","onIDBRead","onIDBReadAll","onIDBRemove","onIDBUpdate","onIDBClose","onIDBGetVersion","onIDBDeleteDB","savedDataHandler","_ref3$data","_ref4","_ref4$data","_ref4$data$dbVersion","_ref4$data$additions","_ref4$data$deletions","_ref5","_this6","_ref5$data","_ref6","_this7","_ref6$data","_ref7","_this8","_ref7$data","_ref8","_this9","_ref8$data","_ref9","_this10","_ref9$data","_ref10","_this11","_ref11","_this12","_ref12","_this13","_ref12$data","PointerSizePlugin","_SliderPlugin","pointerSliders","_ref$defaultPointerSi","defaultPointerSize","pointerSizeKey","onPointerSizeChange","ButtonSizePlugin","buttonSliders","_ref$defaultButtonSiz","defaultButtonSize","buttonSizeKey","onButtonSizeChange","ControlSensitivityPlugin","sensitivitySliders","_ref$defaultSensitivi","defaultSensitivity","controlSensitivityKey","onControlSensitivityChange","KeyboardMapPlugin","keyContainers","_ref$customClassName","customClassName","bindKey","onKeyButtonClick","keyBindings","activekeyButton","sendAfterFetch","canEmit","keyContainersLength","textContent","actionName","preventDefault","currentKey","keyBindingKey","keyBinding","defaultKey","label","htmlFor","LayersPlugin","layersSliders","layersSliderKey","onLayerValueChange","SUPPORTED_POSITIONS","HUDPlugin","_RadioGroupPlugin","hudSelectorRadios","hudPositionKey","positions","onHUDSelect","hudPosition","COLOR_BLIND_TYPES","ColorVisionPlugin","colorVisionRadios","colorVisionKey","colors","colorVision","colorDropdownsLength","HitAreaScalePlugin","hitAreaScaleSliders","_ref$defaultHitAreaSc","defaultHitAreaScale","hitAreaScaleKey","onHitAreaScaleChange","DragThresholdScalePlugin","dragThresholdScaleSliders","_ref$defaultDragThres","defaultDragThresholdScale","dragThresholdScaleKey","onDragThresholdScaleChange","HealthPlugin","healthSliders","_ref$defaultHealth","defaultHealth","healthKey","onHealthChange","ObjectCountPlugin","objectCountSliders","_ref$defaultObjectCou","defaultObjectCount","objectCountKey","onObjectCountChange","CompletionPercentagePlugin","completionPercentageSliders","_ref$defaultCompletio","defaultCompletionPercentage","completionPercentageKey","onCompletionPercentageChange","SpeedScalePlugin","speedScaleSliders","_ref$defaultSpeedScal","defaultSpeedScale","speedScaleKey","onSpeedScaleChange","TimersScalePlugin","timersScaleSliders","_ref$defaultTimersSca","defaultTimersScale","timersScaleKey","onTimersScaleChange","InputCountPlugin","inputCountSliders","_ref$defaultInputCoun","defaultInputCount","inputCountKey","onInputCountChange","FullScreenPlugin","buttonSelector","fullscreenKey","_toggleButtons","iFrame","toggleButton","toggleFullScreen","fullscreenElement","exitFullscreen","requestFullscreen","webkitIsFullscreen","mozFullScreen"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"SpringRoll-Container-umd.js","sources":["../node_modules/whatwg-fetch/fetch.js","../node_modules/core-js/internals/global.js","../node_modules/core-js/internals/dom-iterables.js","../node_modules/core-js/internals/document-all.js","../node_modules/core-js/internals/is-callable.js","../node_modules/core-js/internals/is-object.js","../node_modules/core-js/internals/document-create-element.js","../node_modules/core-js/internals/dom-token-list-prototype.js","../node_modules/core-js/internals/fails.js","../node_modules/core-js/internals/function-bind-native.js","../node_modules/core-js/internals/function-uncurry-this.js","../node_modules/core-js/internals/classof-raw.js","../node_modules/core-js/internals/function-uncurry-this-clause.js","../node_modules/core-js/internals/try-to-string.js","../node_modules/core-js/internals/a-callable.js","../node_modules/core-js/internals/function-bind-context.js","../node_modules/core-js/internals/indexed-object.js","../node_modules/core-js/internals/is-null-or-undefined.js","../node_modules/core-js/internals/require-object-coercible.js","../node_modules/core-js/internals/to-object.js","../node_modules/core-js/internals/math-trunc.js","../node_modules/core-js/internals/to-integer-or-infinity.js","../node_modules/core-js/internals/to-length.js","../node_modules/core-js/internals/length-of-array-like.js","../node_modules/core-js/internals/is-array.js","../node_modules/core-js/internals/define-global-property.js","../node_modules/core-js/internals/shared-store.js","../node_modules/core-js/internals/shared.js","../node_modules/core-js/internals/engine-v8-version.js","../node_modules/core-js/internals/has-own-property.js","../node_modules/core-js/internals/uid.js","../node_modules/core-js/internals/engine-user-agent.js","../node_modules/core-js/internals/symbol-constructor-detection.js","../node_modules/core-js/internals/use-symbol-as-uid.js","../node_modules/core-js/internals/well-known-symbol.js","../node_modules/core-js/internals/to-string-tag-support.js","../node_modules/core-js/internals/classof.js","../node_modules/core-js/internals/get-built-in.js","../node_modules/core-js/internals/inspect-source.js","../node_modules/core-js/internals/is-constructor.js","../node_modules/core-js/internals/array-species-constructor.js","../node_modules/core-js/internals/array-species-create.js","../node_modules/core-js/internals/array-iteration.js","../node_modules/core-js/internals/array-method-is-strict.js","../node_modules/core-js/internals/array-for-each.js","../node_modules/core-js/internals/descriptors.js","../node_modules/core-js/internals/ie8-dom-define.js","../node_modules/core-js/internals/v8-prototype-define-bug.js","../node_modules/core-js/internals/an-object.js","../node_modules/core-js/internals/function-call.js","../node_modules/core-js/internals/object-is-prototype-of.js","../node_modules/core-js/internals/is-symbol.js","../node_modules/core-js/internals/get-method.js","../node_modules/core-js/internals/ordinary-to-primitive.js","../node_modules/core-js/internals/to-primitive.js","../node_modules/core-js/internals/to-property-key.js","../node_modules/core-js/internals/object-define-property.js","../node_modules/core-js/internals/create-property-descriptor.js","../node_modules/core-js/internals/create-non-enumerable-property.js","../node_modules/core-js/modules/web.dom-collections.for-each.js","../node_modules/core-js/internals/to-indexed-object.js","../node_modules/core-js/internals/to-absolute-index.js","../node_modules/core-js/internals/array-includes.js","../node_modules/core-js/internals/hidden-keys.js","../node_modules/core-js/internals/object-keys-internal.js","../node_modules/core-js/internals/enum-bug-keys.js","../node_modules/core-js/internals/object-keys.js","../node_modules/core-js/internals/object-define-properties.js","../node_modules/core-js/internals/html.js","../node_modules/core-js/internals/object-create.js","../node_modules/core-js/internals/shared-key.js","../node_modules/core-js/internals/add-to-unscopables.js","../node_modules/core-js/internals/internal-state.js","../node_modules/core-js/internals/iterators.js","../node_modules/core-js/internals/weak-map-basic-detection.js","../node_modules/core-js/internals/object-property-is-enumerable.js","../node_modules/core-js/internals/object-get-own-property-descriptor.js","../node_modules/core-js/internals/function-name.js","../node_modules/core-js/internals/make-built-in.js","../node_modules/core-js/internals/define-built-in.js","../node_modules/core-js/internals/object-get-own-property-names.js","../node_modules/core-js/internals/object-get-own-property-symbols.js","../node_modules/core-js/internals/own-keys.js","../node_modules/core-js/internals/iterators-core.js","../node_modules/core-js/internals/copy-constructor-properties.js","../node_modules/core-js/internals/is-forced.js","../node_modules/core-js/internals/export.js","../node_modules/core-js/internals/correct-prototype-getter.js","../node_modules/core-js/internals/object-get-prototype-of.js","../node_modules/core-js/internals/set-to-string-tag.js","../node_modules/core-js/internals/iterator-create-constructor.js","../node_modules/core-js/internals/function-uncurry-this-accessor.js","../node_modules/core-js/internals/a-possible-prototype.js","../node_modules/core-js/internals/object-set-prototype-of.js","../node_modules/core-js/internals/iterator-define.js","../node_modules/core-js/internals/create-iter-result-object.js","../node_modules/core-js/modules/es.array.iterator.js","../node_modules/core-js/modules/web.dom-collections.iterator.js","../node_modules/core-js/internals/path.js","../node_modules/core-js/modules/es.array.index-of.js","../node_modules/core-js/internals/does-not-exceed-safe-integer.js","../node_modules/core-js/internals/create-property.js","../node_modules/core-js/internals/array-method-has-species-support.js","../node_modules/core-js/modules/es.array.concat.js","../node_modules/core-js/internals/object-assign.js","../node_modules/core-js/modules/es.object.assign.js","../node_modules/core-js/internals/object-to-string.js","../node_modules/core-js/modules/es.object.to-string.js","../node_modules/core-js/internals/engine-is-node.js","../node_modules/core-js/internals/task.js","../node_modules/core-js/internals/define-built-in-accessor.js","../node_modules/core-js/internals/set-species.js","../node_modules/core-js/internals/an-instance.js","../node_modules/core-js/internals/a-constructor.js","../node_modules/core-js/internals/species-constructor.js","../node_modules/core-js/internals/function-apply.js","../node_modules/core-js/internals/array-slice.js","../node_modules/core-js/internals/validate-arguments-length.js","../node_modules/core-js/internals/engine-is-ios.js","../node_modules/core-js/internals/queue.js","../node_modules/core-js/internals/microtask.js","../node_modules/core-js/internals/engine-is-ios-pebble.js","../node_modules/core-js/internals/engine-is-webos-webkit.js","../node_modules/core-js/internals/perform.js","../node_modules/core-js/internals/promise-native-constructor.js","../node_modules/core-js/internals/engine-is-deno.js","../node_modules/core-js/internals/engine-is-browser.js","../node_modules/core-js/internals/promise-constructor-detection.js","../node_modules/core-js/internals/new-promise-capability.js","../node_modules/core-js/modules/es.promise.constructor.js","../node_modules/core-js/internals/host-report-errors.js","../node_modules/core-js/internals/is-array-iterator-method.js","../node_modules/core-js/internals/get-iterator-method.js","../node_modules/core-js/internals/get-iterator.js","../node_modules/core-js/internals/iterator-close.js","../node_modules/core-js/internals/iterate.js","../node_modules/core-js/internals/check-correctness-of-iteration.js","../node_modules/core-js/internals/promise-statics-incorrect-iteration.js","../node_modules/core-js/modules/es.promise.all.js","../node_modules/core-js/modules/es.promise.catch.js","../node_modules/core-js/modules/es.promise.race.js","../node_modules/core-js/modules/es.promise.reject.js","../node_modules/core-js/internals/promise-resolve.js","../node_modules/core-js/modules/es.promise.resolve.js","../node_modules/core-js/internals/to-string.js","../node_modules/core-js/internals/regexp-exec.js","../node_modules/core-js/internals/regexp-flags.js","../node_modules/core-js/internals/regexp-sticky-helpers.js","../node_modules/core-js/internals/regexp-unsupported-dot-all.js","../node_modules/core-js/internals/regexp-unsupported-ncg.js","../node_modules/core-js/modules/es.regexp.exec.js","../src/Features.js","../node_modules/core-js/internals/string-multibyte.js","../node_modules/core-js/modules/es.string.iterator.js","../node_modules/core-js/modules/es.array.filter.js","../node_modules/core-js/modules/es.array.find.js","../node_modules/bellhop-iframe/dist/bellhop.js","../src/PluginManager.js","../src/Container.js","../src/PageVisibility.js","../node_modules/core-js/modules/es.array.includes.js","../node_modules/core-js/internals/whitespaces.js","../node_modules/core-js/internals/string-trim.js","../node_modules/core-js/internals/string-trim-forced.js","../node_modules/core-js/modules/es.string.trim.js","../node_modules/core-js/internals/regexp-get-flags.js","../node_modules/core-js/modules/es.regexp.to-string.js","../src/SavedData.js","../src/base-plugins/BasePlugin.js","../src/base-plugins/ButtonPlugin.js","../node_modules/core-js/internals/is-regexp.js","../node_modules/core-js/internals/not-a-regexp.js","../node_modules/core-js/internals/correct-is-regexp-logic.js","../node_modules/core-js/modules/es.string.includes.js","../node_modules/core-js/internals/array-slice-simple.js","../node_modules/core-js/internals/object-get-own-property-names-external.js","../node_modules/core-js/internals/array-buffer-non-extensible.js","../node_modules/core-js/internals/object-is-extensible.js","../node_modules/core-js/internals/freezing.js","../node_modules/core-js/internals/internal-metadata.js","../node_modules/core-js/internals/inherit-if-required.js","../node_modules/core-js/internals/collection.js","../node_modules/core-js/internals/define-built-ins.js","../node_modules/core-js/internals/collection-strong.js","../node_modules/core-js/modules/es.set.constructor.js","../node_modules/core-js/modules/es.object.keys.js","../node_modules/core-js/modules/es.array.map.js","../node_modules/core-js/internals/object-to-array.js","../node_modules/core-js/modules/es.object.values.js","../src/ui-elements/RadioGroup.js","../src/base-plugins/RadioGroupPlugin.js","../node_modules/core-js/internals/this-number-value.js","../node_modules/core-js/modules/es.number.constructor.js","../src/ui-elements/Slider.js","../src/ui-elements/Button.js","../src/base-plugins/SliderPlugin.js","../src/plugins/CaptionsStylePlugin.js","../src/plugins/CaptionsTogglePlugin.js","../src/plugins/HelpPlugin.js","../src/plugins/PausePlugin.js","../src/plugins/SoundPlugin.js","../src/SavedDataHandler.js","../src/plugins/UserDataPlugin.js","../src/plugins/PointerSizePlugin.js","../src/plugins/ButtonSizePlugin.js","../src/plugins/ControlSensitivityPlugin.js","../src/plugins/KeyboardMapPlugin.js","../src/plugins/LayersPlugin.js","../src/plugins/HUDPlugin.js","../src/plugins/ColorVisionPlugin.js","../src/plugins/HitAreaScalePlugin.js","../src/plugins/DragThresholdScalePlugin.js","../src/plugins/HealthPlugin.js","../src/plugins/ObjectCountPlugin.js","../src/plugins/CompletionPercentagePlugin.js","../src/plugins/SpeedScalePlugin.js","../src/plugins/TimersScalePlugin.js","../src/plugins/InputCountPlugin.js","../src/plugins/FullScreenPlugin.js"],"sourcesContent":["var global =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof self !== 'undefined' && self) ||\n (typeof global !== 'undefined' && global)\n\nvar support = {\n searchParams: 'URLSearchParams' in global,\n iterable: 'Symbol' in global && 'iterator' in Symbol,\n blob:\n 'FileReader' in global &&\n 'Blob' in global &&\n (function() {\n try {\n new Blob()\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in global,\n arrayBuffer: 'ArrayBuffer' in global\n}\n\nfunction isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n}\n\nif (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ]\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n }\n}\n\nfunction normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name)\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~!]/i.test(name) || name === '') {\n throw new TypeError('Invalid character in header field name: \"' + name + '\"')\n }\n return name.toLowerCase()\n}\n\nfunction normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value)\n }\n return value\n}\n\n// Build a destructive iterator for the value list\nfunction iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift()\n return {done: value === undefined, value: value}\n }\n }\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n }\n }\n\n return iterator\n}\n\nexport function Headers(headers) {\n this.map = {}\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value)\n }, this)\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1])\n }, this)\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name])\n }, this)\n }\n}\n\nHeaders.prototype.append = function(name, value) {\n name = normalizeName(name)\n value = normalizeValue(value)\n var oldValue = this.map[name]\n this.map[name] = oldValue ? oldValue + ', ' + value : value\n}\n\nHeaders.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)]\n}\n\nHeaders.prototype.get = function(name) {\n name = normalizeName(name)\n return this.has(name) ? this.map[name] : null\n}\n\nHeaders.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n}\n\nHeaders.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value)\n}\n\nHeaders.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this)\n }\n }\n}\n\nHeaders.prototype.keys = function() {\n var items = []\n this.forEach(function(value, name) {\n items.push(name)\n })\n return iteratorFor(items)\n}\n\nHeaders.prototype.values = function() {\n var items = []\n this.forEach(function(value) {\n items.push(value)\n })\n return iteratorFor(items)\n}\n\nHeaders.prototype.entries = function() {\n var items = []\n this.forEach(function(value, name) {\n items.push([name, value])\n })\n return iteratorFor(items)\n}\n\nif (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n}\n\nfunction consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true\n}\n\nfunction fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result)\n }\n reader.onerror = function() {\n reject(reader.error)\n }\n })\n}\n\nfunction readBlobAsArrayBuffer(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsArrayBuffer(blob)\n return promise\n}\n\nfunction readBlobAsText(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsText(blob)\n return promise\n}\n\nfunction readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf)\n var chars = new Array(view.length)\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i])\n }\n return chars.join('')\n}\n\nfunction bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength)\n view.set(new Uint8Array(buf))\n return view.buffer\n }\n}\n\nfunction Body() {\n this.bodyUsed = false\n\n this._initBody = function(body) {\n /*\n fetch-mock wraps the Response object in an ES6 Proxy to\n provide useful test harness features such as flush. However, on\n ES5 browsers without fetch or Proxy support pollyfills must be used;\n the proxy-pollyfill is unable to proxy an attribute unless it exists\n on the object before the Proxy is created. This change ensures\n Response.bodyUsed exists on the instance, while maintaining the\n semantic of setting Request.bodyUsed in the constructor before\n _initBody is called.\n */\n this.bodyUsed = this.bodyUsed\n this._bodyInit = body\n if (!body) {\n this._bodyText = ''\n } else if (typeof body === 'string') {\n this._bodyText = body\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString()\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer)\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer])\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body)\n } else {\n this._bodyText = body = Object.prototype.toString.call(body)\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8')\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type)\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n }\n }\n }\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n }\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n var isConsumed = consumed(this)\n if (isConsumed) {\n return isConsumed\n }\n if (ArrayBuffer.isView(this._bodyArrayBuffer)) {\n return Promise.resolve(\n this._bodyArrayBuffer.buffer.slice(\n this._bodyArrayBuffer.byteOffset,\n this._bodyArrayBuffer.byteOffset + this._bodyArrayBuffer.byteLength\n )\n )\n } else {\n return Promise.resolve(this._bodyArrayBuffer)\n }\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n }\n }\n\n this.text = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n }\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n }\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n }\n\n return this\n}\n\n// HTTP methods whose capitalization should be normalized\nvar methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\n\nfunction normalizeMethod(method) {\n var upcased = method.toUpperCase()\n return methods.indexOf(upcased) > -1 ? upcased : method\n}\n\nexport function Request(input, options) {\n if (!(this instanceof Request)) {\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n }\n\n options = options || {}\n var body = options.body\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url\n this.credentials = input.credentials\n if (!options.headers) {\n this.headers = new Headers(input.headers)\n }\n this.method = input.method\n this.mode = input.mode\n this.signal = input.signal\n if (!body && input._bodyInit != null) {\n body = input._bodyInit\n input.bodyUsed = true\n }\n } else {\n this.url = String(input)\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin'\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers)\n }\n this.method = normalizeMethod(options.method || this.method || 'GET')\n this.mode = options.mode || this.mode || null\n this.signal = options.signal || this.signal\n this.referrer = null\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body)\n\n if (this.method === 'GET' || this.method === 'HEAD') {\n if (options.cache === 'no-store' || options.cache === 'no-cache') {\n // Search for a '_' parameter in the query string\n var reParamSearch = /([?&])_=[^&]*/\n if (reParamSearch.test(this.url)) {\n // If it already exists then set the value with the current time\n this.url = this.url.replace(reParamSearch, '$1_=' + new Date().getTime())\n } else {\n // Otherwise add a new '_' parameter to the end with the current time\n var reQueryString = /\\?/\n this.url += (reQueryString.test(this.url) ? '&' : '?') + '_=' + new Date().getTime()\n }\n }\n }\n}\n\nRequest.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n}\n\nfunction decode(body) {\n var form = new FormData()\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=')\n var name = split.shift().replace(/\\+/g, ' ')\n var value = split.join('=').replace(/\\+/g, ' ')\n form.append(decodeURIComponent(name), decodeURIComponent(value))\n }\n })\n return form\n}\n\nfunction parseHeaders(rawHeaders) {\n var headers = new Headers()\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ')\n // Avoiding split via regex to work around a common IE11 bug with the core-js 3.6.0 regex polyfill\n // https://github.com/github/fetch/issues/748\n // https://github.com/zloirock/core-js/issues/751\n preProcessedHeaders\n .split('\\r')\n .map(function(header) {\n return header.indexOf('\\n') === 0 ? header.substr(1, header.length) : header\n })\n .forEach(function(line) {\n var parts = line.split(':')\n var key = parts.shift().trim()\n if (key) {\n var value = parts.join(':').trim()\n headers.append(key, value)\n }\n })\n return headers\n}\n\nBody.call(Request.prototype)\n\nexport function Response(bodyInit, options) {\n if (!(this instanceof Response)) {\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n }\n if (!options) {\n options = {}\n }\n\n this.type = 'default'\n this.status = options.status === undefined ? 200 : options.status\n this.ok = this.status >= 200 && this.status < 300\n this.statusText = options.statusText === undefined ? '' : '' + options.statusText\n this.headers = new Headers(options.headers)\n this.url = options.url || ''\n this._initBody(bodyInit)\n}\n\nBody.call(Response.prototype)\n\nResponse.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n}\n\nResponse.error = function() {\n var response = new Response(null, {status: 0, statusText: ''})\n response.type = 'error'\n return response\n}\n\nvar redirectStatuses = [301, 302, 303, 307, 308]\n\nResponse.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n}\n\nexport var DOMException = global.DOMException\ntry {\n new DOMException()\n} catch (err) {\n DOMException = function(message, name) {\n this.message = message\n this.name = name\n var error = Error(message)\n this.stack = error.stack\n }\n DOMException.prototype = Object.create(Error.prototype)\n DOMException.prototype.constructor = DOMException\n}\n\nexport function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init)\n\n if (request.signal && request.signal.aborted) {\n return reject(new DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest()\n\n function abortXhr() {\n xhr.abort()\n }\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n }\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n var body = 'response' in xhr ? xhr.response : xhr.responseText\n setTimeout(function() {\n resolve(new Response(body, options))\n }, 0)\n }\n\n xhr.onerror = function() {\n setTimeout(function() {\n reject(new TypeError('Network request failed'))\n }, 0)\n }\n\n xhr.ontimeout = function() {\n setTimeout(function() {\n reject(new TypeError('Network request failed'))\n }, 0)\n }\n\n xhr.onabort = function() {\n setTimeout(function() {\n reject(new DOMException('Aborted', 'AbortError'))\n }, 0)\n }\n\n function fixUrl(url) {\n try {\n return url === '' && global.location.href ? global.location.href : url\n } catch (e) {\n return url\n }\n }\n\n xhr.open(request.method, fixUrl(request.url), true)\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false\n }\n\n if ('responseType' in xhr) {\n if (support.blob) {\n xhr.responseType = 'blob'\n } else if (\n support.arrayBuffer &&\n request.headers.get('Content-Type') &&\n request.headers.get('Content-Type').indexOf('application/octet-stream') !== -1\n ) {\n xhr.responseType = 'arraybuffer'\n }\n }\n\n if (init && typeof init.headers === 'object' && !(init.headers instanceof Headers)) {\n Object.getOwnPropertyNames(init.headers).forEach(function(name) {\n xhr.setRequestHeader(name, normalizeValue(init.headers[name]))\n })\n } else {\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value)\n })\n }\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr)\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr)\n }\n }\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n })\n}\n\nfetch.polyfill = true\n\nif (!global.fetch) {\n global.fetch = fetch\n global.Headers = Headers\n global.Request = Request\n global.Response = Response\n}\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","var documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nvar IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = {\n all: documentAll,\n IS_HTMLDDA: IS_HTMLDDA\n};\n","var $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = $documentAll.IS_HTMLDDA ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","var isCallable = require('../internals/is-callable');\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\nmodule.exports = $documentAll.IS_HTMLDDA ? function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList`\nvar documentCreateElement = require('../internals/document-create-element');\n\nvar classList = documentCreateElement('span').classList;\nvar DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype;\n\nmodule.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype;\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n","var $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a function');\n};\n","var uncurryThis = require('../internals/function-uncurry-this-clause');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","var isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","var trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) == 'Array';\n};\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.28.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.28.0/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","module.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","var isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (isConstructor(C) && (C === $Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? $Array : C;\n};\n","var arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","var bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = uncurryThis([].push);\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var IS_FILTER_REJECT = TYPE == 7;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that);\n var length = lengthOfArrayLike(self);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push(target, value); // filterReject\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call -- required for testing\n method.call(null, argument || function () { return 1; }, 1);\n });\n};\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\nmodule.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n} : [].forEach;\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw $TypeError($String(argument) + ' is not an object');\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","var aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","var call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw $TypeError(\"Can't convert object to primitive value\");\n};\n","var call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar handlePrototype = function (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n if (DOMIterables[COLLECTION_NAME]) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype);\n }\n}\n\nhandlePrototype(DOMTokenListPrototype);\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","module.exports = {};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","var NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","module.exports = {};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","var isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n","var defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC) target = target.prototype;\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function (object, key, method) {\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n } catch (error) { /* empty */ }\n};\n","var isCallable = require('../internals/is-callable');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n if (kind == 'keys') return createIterResultObject(index, false);\n if (kind == 'values') return createIterResultObject(target[index], false);\n return createIterResultObject([index, target[index]], false);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nvar values = Iterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n// V8 ~ Chrome 45- bug\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n defineProperty(values, 'name', { value: 'values' });\n} catch (error) { /* empty */ }\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nvar handlePrototype = function (CollectionPrototype, COLLECTION_NAME) {\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype, COLLECTION_NAME);\n}\n\nhandlePrototype(DOMTokenListPrototype, 'DOMTokenList');\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","'use strict';\n/* eslint-disable es/no-array-prototype-indexof -- required for testing */\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar $indexOf = require('../internals/array-includes').indexOf;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeIndexOf = uncurryThis([].indexOf);\n\nvar NEGATIVE_ZERO = !!nativeIndexOf && 1 / nativeIndexOf([1], 1, -0) < 0;\nvar FORCED = NEGATIVE_ZERO || !arrayMethodIsStrict('indexOf');\n\n// `Array.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: FORCED }, {\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n var fromIndex = arguments.length > 1 ? arguments[1] : undefined;\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? nativeIndexOf(this, searchElement, fromIndex) || 0\n : $indexOf(this, searchElement, fromIndex);\n }\n});\n","var $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !arrayMethodHasSpeciesSupport('concat');\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = lengthOfArrayLike(E);\n doesNotExceedSafeInteger(n + len);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n doesNotExceedSafeInteger(n + 1);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\nvar concat = uncurryThis([].concat);\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es/no-symbol -- safe\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n// eslint-disable-next-line es/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, {\n assign: assign\n});\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n defineBuiltIn(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","var classof = require('../internals/classof-raw');\n\nmodule.exports = typeof process != 'undefined' && classof(process) == 'process';\n","var global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar Dispatch = global.Dispatch;\nvar Function = global.Function;\nvar MessageChannel = global.MessageChannel;\nvar String = global.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar $location, defer, channel, port;\n\nfails(function () {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n $location = global.location;\n});\n\nvar run = function (id) {\n if (hasOwn(queue, id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar eventListener = function (event) {\n run(event.data);\n};\n\nvar globalPostMessageDefer = function (id) {\n // old engines have not location.origin\n global.postMessage(String(id), $location.protocol + '//' + $location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(handler) {\n validateArgumentsLength(arguments.length, 1);\n var fn = isCallable(handler) ? handler : Function(handler);\n var args = arraySlice(arguments, 1);\n queue[++counter] = function () {\n apply(fn, undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = eventListener;\n defer = bind(port.postMessage, port);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n isCallable(global.postMessage) &&\n !global.importScripts &&\n $location && $location.protocol !== 'file:' &&\n !fails(globalPostMessageDefer)\n ) {\n defer = globalPostMessageDefer;\n global.addEventListener('message', eventListener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var makeBuiltIn = require('../internals/make-built-in');\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n return defineProperty.f(target, name, descriptor);\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineBuiltInAccessor(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","var isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw $TypeError('Incorrect invocation');\n};\n","var isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a constructor');\n};\n","var anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || isNullOrUndefined(S = anObject(C)[SPECIES]) ? defaultConstructor : aConstructor(S);\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","var $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw $TypeError('Not enough arguments');\n return passed;\n};\n","var userAgent = require('../internals/engine-user-agent');\n\n// eslint-disable-next-line redos/no-vulnerable -- safe\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","var Queue = function () {\n this.head = null;\n this.tail = null;\n};\n\nQueue.prototype = {\n add: function (item) {\n var entry = { item: item, next: null };\n var tail = this.tail;\n if (tail) tail.next = entry;\n else this.head = entry;\n this.tail = entry;\n },\n get: function () {\n var entry = this.head;\n if (entry) {\n var next = this.head = entry.next;\n if (next === null) this.tail = null;\n return entry.item;\n }\n }\n};\n\nmodule.exports = Queue;\n","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar macrotask = require('../internals/task').set;\nvar Queue = require('../internals/queue');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_IOS_PEBBLE = require('../internals/engine-is-ios-pebble');\nvar IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar document = global.document;\nvar process = global.process;\nvar Promise = global.Promise;\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar microtask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\nvar notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!microtask) {\n var queue = new Queue();\n\n var flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (fn = queue.get()) try {\n fn();\n } catch (error) {\n if (queue.head) notify();\n throw error;\n }\n if (parent) parent.enter();\n };\n\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n // workaround of WebKit ~ iOS Safari 10.1 bug\n promise.constructor = Promise;\n then = bind(promise.then, promise);\n notify = function () {\n then(flush);\n };\n // Node.js without promises\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessage\n // - onreadystatechange\n // - setTimeout\n } else {\n // `webpack` dev server bug on IE global methods - use bind(fn, global)\n macrotask = bind(macrotask, global);\n notify = function () {\n macrotask(flush);\n };\n }\n\n microtask = function (fn) {\n if (!queue.head) notify();\n queue.add(fn);\n };\n}\n\nmodule.exports = microtask;\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && typeof Pebble != 'undefined';\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","/* global Deno -- Deno case */\nmodule.exports = typeof Deno == 'object' && Deno && typeof Deno.version == 'object';\n","var IS_DENO = require('../internals/engine-is-deno');\nvar IS_NODE = require('../internals/engine-is-node');\n\nmodule.exports = !IS_DENO && !IS_NODE\n && typeof window == 'object'\n && typeof document == 'object';\n","var global = require('../internals/global');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar isCallable = require('../internals/is-callable');\nvar isForced = require('../internals/is-forced');\nvar inspectSource = require('../internals/inspect-source');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_DENO = require('../internals/engine-is-deno');\nvar IS_PURE = require('../internals/is-pure');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar SPECIES = wellKnownSymbol('species');\nvar SUBCLASSING = false;\nvar NATIVE_PROMISE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent);\n\nvar FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () {\n var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor);\n var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor);\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution\n if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['finally'])) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (!V8_VERSION || V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) {\n // Detect correctness of subclassing with @@species support\n var promise = new NativePromiseConstructor(function (resolve) { resolve(1); });\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n if (!SUBCLASSING) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n } return !GLOBAL_CORE_JS_PROMISE && (IS_BROWSER || IS_DENO) && !NATIVE_PROMISE_REJECTION_EVENT;\n});\n\nmodule.exports = {\n CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR,\n REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT,\n SUBCLASSING: SUBCLASSING\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar $TypeError = TypeError;\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw $TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar IS_NODE = require('../internals/engine-is-node');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar aCallable = require('../internals/a-callable');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar perform = require('../internals/perform');\nvar Queue = require('../internals/queue');\nvar InternalStateModule = require('../internals/internal-state');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar PromiseConstructorDetection = require('../internals/promise-constructor-detection');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\nvar PROMISE = 'Promise';\nvar FORCED_PROMISE_CONSTRUCTOR = PromiseConstructorDetection.CONSTRUCTOR;\nvar NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT;\nvar NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar setInternalState = InternalStateModule.set;\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar PromiseConstructor = NativePromiseConstructor;\nvar PromisePrototype = NativePromisePrototype;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\n\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\n\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && isCallable(then = it.then) ? then : false;\n};\n\nvar callReaction = function (reaction, state) {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n call(then, result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n microtask(function () {\n var reactions = state.reactions;\n var reaction;\n while (reaction = reactions.get()) {\n callReaction(reaction, state);\n }\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n call(then, value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED_PROMISE_CONSTRUCTOR) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromisePrototype);\n aCallable(executor);\n call(Internal, this);\n var state = getInternalPromiseState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n\n PromisePrototype = PromiseConstructor.prototype;\n\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: new Queue(),\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n state.parent = true;\n reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;\n reaction.fail = isCallable(onRejected) && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n if (state.state == PENDING) state.reactions.add(reaction);\n else microtask(function () {\n callReaction(reaction, state);\n });\n return reaction.promise;\n });\n\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalPromiseState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && isCallable(NativePromiseConstructor) && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n if (!NATIVE_PROMISE_SUBCLASSING) {\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n defineBuiltIn(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n call(nativeThen, that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n }\n\n // make `.constructor === Promise` work for native promise-based APIs\n try {\n delete NativePromisePrototype.constructor;\n } catch (error) { /* empty */ }\n\n // make `instanceof Promise` work for native promise-based APIs\n if (setPrototypeOf) {\n setPrototypeOf(NativePromisePrototype, PromisePrototype);\n }\n }\n}\n\n$({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n","module.exports = function (a, b) {\n try {\n // eslint-disable-next-line no-console -- safe\n arguments.length == 1 ? console.error(a) : console.error(a, b);\n } catch (error) { /* empty */ }\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","var call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw $TypeError(tryToString(argument) + ' is not iterable');\n};\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","var bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_RECORD = !!(options && options.IS_RECORD);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_RECORD) {\n iterator = iterable.iterator;\n } else if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw $TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = IS_RECORD ? iterable.next : iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\nmodule.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) {\n NativePromiseConstructor.all(iterable).then(undefined, function () { /* empty */ });\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.all` method\n// https://tc39.es/ecma262/#sec-promise.all\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call($promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// `Promise.prototype.catch` method\n// https://tc39.es/ecma262/#sec-promise.prototype.catch\n$({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR, real: true }, {\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n});\n\n// makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['catch'];\n if (NativePromisePrototype['catch'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'catch', method, { unsafe: true });\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.race` method\n// https://tc39.es/ecma262/#sec-promise.race\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n iterate(iterable, function (promise) {\n call($promiseResolve, C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\n// `Promise.reject` method\n// https://tc39.es/ecma262/#sec-promise.reject\n$({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n reject: function reject(r) {\n var capability = newPromiseCapabilityModule.f(this);\n call(capability.reject, undefined, r);\n return capability.promise;\n }\n});\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar promiseResolve = require('../internals/promise-resolve');\n\nvar PromiseConstructorWrapper = getBuiltIn('Promise');\nvar CHECK_WRAPPER = IS_PURE && !FORCED_PROMISE_CONSTRUCTOR;\n\n// `Promise.resolve` method\n// https://tc39.es/ecma262/#sec-promise.resolve\n$({ target: 'Promise', stat: true, forced: IS_PURE || FORCED_PROMISE_CONSTRUCTOR }, {\n resolve: function resolve(x) {\n return promiseResolve(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor : this, x);\n }\n});\n","var classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","'use strict';\n/* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */\n/* eslint-disable regexp/no-useless-quantifier -- testing */\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar regexpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar shared = require('../internals/shared');\nvar create = require('../internals/object-create');\nvar getInternalState = require('../internals/internal-state').get;\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar nativeReplace = shared('native-string-replace', String.prototype.replace);\nvar nativeExec = RegExp.prototype.exec;\nvar patchedExec = nativeExec;\nvar charAt = uncurryThis(''.charAt);\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n call(nativeExec, re1, 'a');\n call(nativeExec, re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG;\n\nif (PATCH) {\n patchedExec = function exec(string) {\n var re = this;\n var state = getInternalState(re);\n var str = toString(string);\n var raw = state.raw;\n var result, reCopy, lastIndex, match, i, object, group;\n\n if (raw) {\n raw.lastIndex = re.lastIndex;\n result = call(patchedExec, raw, str);\n re.lastIndex = raw.lastIndex;\n return result;\n }\n\n var groups = state.groups;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = call(regexpFlags, re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = replace(flags, 'y', '');\n if (indexOf(flags, 'g') === -1) {\n flags += 'g';\n }\n\n strCopy = stringSlice(str, re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt(str, re.lastIndex - 1) !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = call(nativeExec, sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = stringSlice(match.input, charsAdded);\n match[0] = stringSlice(match[0], charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn't work for /(.?)?/\n call(nativeReplace, match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n if (match && groups) {\n match.groups = object = create(null);\n for (i = 0; i < groups.length; i++) {\n group = groups[i];\n object[group[0]] = match[group[1]];\n }\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.hasIndices) result += 'd';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.unicodeSets) result += 'v';\n if (that.sticky) result += 'y';\n return result;\n};\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nvar UNSUPPORTED_Y = fails(function () {\n var re = $RegExp('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\n// UC Browser bug\n// https://github.com/zloirock/core-js/issues/1008\nvar MISSED_STICKY = UNSUPPORTED_Y || fails(function () {\n return !$RegExp('a', 'y').sticky;\n});\n\nvar BROKEN_CARET = UNSUPPORTED_Y || fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = $RegExp('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\n\nmodule.exports = {\n BROKEN_CARET: BROKEN_CARET,\n MISSED_STICKY: MISSED_STICKY,\n UNSUPPORTED_Y: UNSUPPORTED_Y\n};\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('.', 's');\n return !(re.dotAll && re.exec('\\n') && re.flags === 's');\n});\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('(?b)', 'g') -> /(?b)/g and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('(?b)', 'g');\n return re.exec('b').groups.a !== 'b' ||\n 'b'.replace(re, '$c') !== 'bc';\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n// `RegExp.prototype.exec` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","/**\n * Provide feature detection\n * @class Features\n */\nexport class Features {\n /**\n * If the browser has WebGL support\n * @property {boolean} webgl\n */\n static get webgl() {\n const canvas = document.createElement('canvas');\n\n return !!(\n canvas &&\n (canvas.getContext('webgl') || canvas.getContext('experimental-webgl'))\n );\n }\n\n /**\n * If the browser has Canvas support\n * @property {boolean} canvas\n */\n static get canvas() {\n const canvas = document.createElement('canvas');\n return !!(canvas !== null && canvas.getContext && canvas.getContext('2d'));\n }\n\n /**\n * If the browser has WebAudio API support\n * @property {boolean} webaudio\n */\n static get webaudio() {\n return 'webkitAudioContext' in window || 'AudioContext' in window;\n }\n\n /**\n * If the browser has HTMLAudio support\n * @property {boolean} htmlAudio\n */\n static get htmlAudio() {\n return 'HTMLAudioElement' in window;\n }\n\n /**\n * If the browser has Web Sockets API\n * @property {boolean} websockets\n */\n static get websockets() {\n return 'WebSocket' in window || 'MozWebSocket' in window;\n }\n\n /**\n * If the browser has Geolocation API\n * @property {boolean} geolocation\n */\n static get geolocation() {\n return 'geolocation' in navigator;\n }\n\n /**\n * If the browser has Web Workers API\n * @property {boolean} webworkers\n */\n static get webworkers() {\n return 'function' === typeof Worker;\n }\n\n /**\n * If the browser has touch\n * @property {boolean} touch\n */\n static get touch() {\n return !!(\n 'ontouchstart' in window || // iOS & Android\n (navigator.msPointerEnabled && navigator.msMaxTouchPoints > 0) || // IE10\n (navigator.pointerEnabled && navigator.maxTouchPoints > 0)\n ); // IE11+\n }\n\n /**\n * Test for basic browser compatiliblity\n * @method basic\n * @static\n * @return {String} The error message, if fails\n */\n static basic() {\n if (!Features.canvas) {\n return 'Browser does not support canvas';\n } else if (!Features.webaudio && !Features.htmlAudio) {\n return 'Browser does not support WebAudio or HTMLAudio';\n }\n return null;\n }\n\n /**\n * See if the current bowser has the correct features\n * @method test\n * @static\n * @param {object} capabilities The capabilities\n * @param {object} [capabilities.features] The features\n * @param {object} [capabilities.features.webgl] WebGL required\n * @param {object} [capabilities.features.geolocation] Geolocation required\n * @param {object} [capabilities.features.webworkers] Web Workers API required\n * @param {object} [capabilities.features.webaudio] WebAudio API required\n * @param {object} [capabilities.features.websockets] WebSockets required\n * @param {object} [capabilities.sizes] The sizes\n * @param {Boolean} [capabilities.sizes.xsmall] Screens < 480\n * @param {Boolean} [capabilities.sizes.small] Screens < 768\n * @param {Boolean} [capabilities.sizes.medium] Screens < 992\n * @param {Boolean} [capabilities.sizes.large] Screens < 1200\n * @param {Boolean} [capabilities.sizes.xlarge] Screens >= 1200\n * @param {object} [capabilities.ui] The ui\n * @param {Boolean} [capabilities.ui.touch] Touch capable\n * @return {String|null} The error, or else returns null\n */\n static test(capabilities) {\n // check for basic compatibility\n const err = this.basic();\n if (err) {\n return err;\n }\n\n const features = capabilities.features;\n const ui = capabilities.ui;\n const sizes = capabilities.sizes;\n\n for (const name in features) {\n if (features[name] === true && !Features[name]) {\n // Failed built-in feature check\n return 'Browser does not support ' + name;\n }\n }\n\n // Failed negative touch requirement\n if (!ui.touch && Features.touch) {\n return 'Game does not support touch input';\n }\n\n // Check the sizes\n const size = Math.max(window.screen.width, window.screen.height);\n\n if (!sizes.xsmall && size < 480) {\n return 'Game doesn\\'t support extra small screens';\n }\n if (!sizes.small && size < 768) {\n return 'Game doesn\\'t support small screens';\n }\n if (!sizes.medium && size < 992) {\n return 'Game doesn\\'t support medium screens';\n }\n if (!sizes.large && size < 1200) {\n return 'Game doesn\\'t support large screens';\n }\n if (!sizes.xlarge && size >= 1200) {\n return 'Game doesn\\'t support extra large screens';\n }\n return null;\n }\n\n /**\n * Returns browser feature support info\n * @returns {string}\n */\n static get info() {\n return `Browser Feature Detection\n\t\t\t\tCanvas support ${Features.canvas ? '\\u2713' : '\\u00D7'}\n\t\t\t\tWebGL support ${Features.webgl ? '\\u2713' : '\\u00D7'}\n\t\t\t\tWebAudio support ${Features.webAudio ? '\\u2713' : '\\u00D7'}`;\n }\n}\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return createIterResultObject(undefined, true);\n point = charAt(string, index);\n state.index += point.length;\n return createIterResultObject(point, false);\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $find = require('../internals/array-iteration').find;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\nif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.find` method\n// https://tc39.es/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n","function t(t,e){return t(e={exports:{}},e.exports),e.exports}var e=t((function(t){function e(t){return(e=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function n(r){return\"function\"==typeof Symbol&&\"symbol\"===e(Symbol.iterator)?t.exports=n=function(t){return e(t)}:t.exports=n=function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":e(t)},n(r)}t.exports=n}));var n=function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")};function r(t,e){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:0;this._listeners[t]||(this._listeners[t]=[]),e._priority=parseInt(n)||0,-1===this._listeners[t].indexOf(e)&&(this._listeners[t].push(e),this._listeners[t].length>1&&this._listeners[t].sort(this.listenerSorter))}},{key:\"listenerSorter\",value:function(t,e){return t._priority-e._priority}},{key:\"off\",value:function(t,e){if(void 0!==this._listeners[t])if(void 0!==e){var n=this._listeners[t].indexOf(e);-11&&void 0!==arguments[1]?arguments[1]:{};if(\"string\"==typeof t&&(t={type:t,data:\"object\"===e(n)&&null!==n?n:{}}),void 0!==this._listeners[t.type])for(var r=this._listeners[t.type].length-1;r>=0;r--)this._listeners[t.type][r](t)}},{key:\"destroy\",value:function(){this._listeners={}}}]),t}(),s=t((function(t){var e=function(t){var e,n=Object.prototype,r=n.hasOwnProperty,o=\"function\"==typeof Symbol?Symbol:{},i=o.iterator||\"@@iterator\",s=o.asyncIterator||\"@@asyncIterator\",a=o.toStringTag||\"@@toStringTag\";function c(t,e,n,r){var o=e&&e.prototype instanceof d?e:d,i=Object.create(o.prototype),s=new S(r||[]);return i._invoke=function(t,e,n){var r=h;return function(o,i){if(r===f)throw new Error(\"Generator is already running\");if(r===p){if(\"throw\"===o)throw i;return P()}for(n.method=o,n.arg=i;;){var s=n.delegate;if(s){var a=O(s,n);if(a){if(a===y)continue;return a}}if(\"next\"===n.method)n.sent=n._sent=n.arg;else if(\"throw\"===n.method){if(r===h)throw r=p,n.arg;n.dispatchException(n.arg)}else\"return\"===n.method&&n.abrupt(\"return\",n.arg);r=f;var c=u(t,e,n);if(\"normal\"===c.type){if(r=n.done?p:l,c.arg===y)continue;return{value:c.arg,done:n.done}}\"throw\"===c.type&&(r=p,n.method=\"throw\",n.arg=c.arg)}}}(t,n,s),i}function u(t,e,n){try{return{type:\"normal\",arg:t.call(e,n)}}catch(t){return{type:\"throw\",arg:t}}}t.wrap=c;var h=\"suspendedStart\",l=\"suspendedYield\",f=\"executing\",p=\"completed\",y={};function d(){}function v(){}function g(){}var m={};m[i]=function(){return this};var w=Object.getPrototypeOf,b=w&&w(w(j([])));b&&b!==n&&r.call(b,i)&&(m=b);var _=g.prototype=d.prototype=Object.create(m);function x(t){[\"next\",\"throw\",\"return\"].forEach((function(e){t[e]=function(t){return this._invoke(e,t)}}))}function L(t){function e(n,o,i,s){var a=u(t[n],t,o);if(\"throw\"!==a.type){var c=a.arg,h=c.value;return h&&\"object\"==typeof h&&r.call(h,\"__await\")?Promise.resolve(h.__await).then((function(t){e(\"next\",t,i,s)}),(function(t){e(\"throw\",t,i,s)})):Promise.resolve(h).then((function(t){c.value=t,i(c)}),(function(t){return e(\"throw\",t,i,s)}))}s(a.arg)}var n;this._invoke=function(t,r){function o(){return new Promise((function(n,o){e(t,r,n,o)}))}return n=n?n.then(o,o):o()}}function O(t,n){var r=t.iterator[n.method];if(r===e){if(n.delegate=null,\"throw\"===n.method){if(t.iterator.return&&(n.method=\"return\",n.arg=e,O(t,n),\"throw\"===n.method))return y;n.method=\"throw\",n.arg=new TypeError(\"The iterator does not provide a 'throw' method\")}return y}var o=u(r,t.iterator,n.arg);if(\"throw\"===o.type)return n.method=\"throw\",n.arg=o.arg,n.delegate=null,y;var i=o.arg;return i?i.done?(n[t.resultName]=i.value,n.next=t.nextLoc,\"return\"!==n.method&&(n.method=\"next\",n.arg=e),n.delegate=null,y):i:(n.method=\"throw\",n.arg=new TypeError(\"iterator result is not an object\"),n.delegate=null,y)}function E(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function k(t){var e=t.completion||{};e.type=\"normal\",delete e.arg,t.completion=e}function S(t){this.tryEntries=[{tryLoc:\"root\"}],t.forEach(E,this),this.reset(!0)}function j(t){if(t){var n=t[i];if(n)return n.call(t);if(\"function\"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,s=function n(){for(;++o=0;--i){var s=this.tryEntries[i],a=s.completion;if(\"root\"===s.tryLoc)return o(\"end\");if(s.tryLoc<=this.prev){var c=r.call(s,\"catchLoc\"),u=r.call(s,\"finallyLoc\");if(c&&u){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,\"finallyLoc\")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),k(n),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if(\"throw\"===r.type){var o=r.arg;k(n)}return o}}throw new Error(\"illegal catch attempt\")},delegateYield:function(t,n,r){return this.delegate={iterator:j(t),resultName:n,nextLoc:r},\"next\"===this.method&&(this.arg=e),y}},t}(t.exports);try{regeneratorRuntime=e}catch(t){Function(\"r\",\"regeneratorRuntime = r\")(e)}}));var a=function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t};var c=function(t,n){return!n||\"object\"!==e(n)&&\"function\"!=typeof n?a(t):n},u=t((function(t){function e(n){return t.exports=e=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},e(n)}t.exports=e}));var h=function(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==(t=u(t)););return t},l=t((function(t){function e(n,r,o){return\"undefined\"!=typeof Reflect&&Reflect.get?t.exports=e=Reflect.get:t.exports=e=function(t,e,n){var r=h(t,e);if(r){var o=Object.getOwnPropertyDescriptor(r,e);return o.get?o.get.call(n):o.value}},e(n,r,o||n)}t.exports=e})),f=t((function(t){function e(n,r){return t.exports=e=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},e(n,r)}t.exports=e}));var p=function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&f(t,e)},y=function(t){function r(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:100*Math.random()|0;return n(this,r),(t=c(this,u(r).call(this))).id=\"BELLHOP:\".concat(e),t.connected=!1,t.isChild=!0,t.connecting=!1,t.debug=!1,t.origin=\"*\",t._sendLater=[],t.iframe=null,t.receive=t.receive.bind(a(t)),t}return p(r,i),o(r,[{key:\"receive\",value:function(t){if(this.target===t.source)if(this.logDebugMessage(!0,t),\"connected\"===t.data)this.onConnectionReceived(t.data);else{var n=t.data;if(\"string\"==typeof n)try{n=JSON.parse(n)}catch(t){console.warn(\"Bellhop error: \",t)}this.connected&&\"object\"===e(n)&&n.type&&this.trigger(n)}}},{key:\"onConnectionReceived\",value:function(t){if(this.connecting=!1,this.connected=!0,!this.isChild){if(!this.target)return;this.target.postMessage(t,this.origin)}for(var e=0;e1&&void 0!==arguments[1]?arguments[1]:\"*\";this.connecting||(this.disconnect(),this.connecting=!0,t instanceof HTMLIFrameElement&&(this.iframe=t),this.isChild=void 0===t,this.supported=!0,this.isChild&&(this.supported=window!=t),this.origin=e,window.addEventListener(\"message\",this.receive),this.isChild&&(window===this.target?this.trigger(\"failed\"):this.target.postMessage(\"connected\",this.origin)))}},{key:\"disconnect\",value:function(){this.connected=!1,this.connecting=!1,this.origin=null,this.iframe=null,this.isChild=!0,this._sendLater.length=0,window.removeEventListener(\"message\",this.receive)}},{key:\"send\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(\"string\"!=typeof t)throw\"The event type must be a string\";var n={type:t,data:e};this.logDebugMessage(!1,n),this.connecting?this._sendLater.push(n):this.target.postMessage(JSON.stringify(n),this.origin)}},{key:\"fetch\",value:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(!this.connecting&&!this.connected)throw\"No connection, please call connect() first\";var i=function t(r){o&&n.off(r.type,t),e(r)};this.on(t,i),this.send(t,r)}},{key:\"respond\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=this,o=function t(o){return s.async((function(i){for(;;)switch(i.prev=i.next){case 0:if(n&&r.off(o,t),\"function\"!=typeof e){i.next=10;break}return i.t0=r,i.t1=o.type,i.next=6,s.awrap(e());case 6:i.t2=i.sent,i.t0.send.call(i.t0,i.t1,i.t2),i.next=11;break;case 10:r.send(o.type,e);case 11:case\"end\":return i.stop()}}))};this.on(t,o)}},{key:\"logDebugMessage\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=arguments.length>1?arguments[1]:void 0;this.debug&&\"function\"==typeof this.debug?this.debug({isChild:this.isChild,received:t,message:e}):this.debug&&console.log(\"Bellhop Instance (\".concat(this.isChild?\"Child\":\"Parent\",\") \").concat(t?\"Receieved\":\"Sent\"),e)}},{key:\"destroy\",value:function(){l(u(r.prototype),\"destroy\",this).call(this),this.disconnect(),this._sendLater.length=0}},{key:\"target\",get:function(){return this.isChild?window.parent:this.iframe.contentWindow}}]),r}();export{y as Bellhop,i as BellhopEventDispatcher};\n//# sourceMappingURL=bellhop.js.map\n","/**\n * @typedef {import('./base-plugins/BasePlugin').BasePlugin} BasePlugin\n */\nimport { Bellhop } from 'bellhop-iframe';\n/**\n *\n *\n * @export\n * @class PluginManager\n */\nexport default class PluginManager {\n /**\n *Creates an instance of PluginManager.\n * @memberof PluginManager\n */\n constructor({ plugins = [] }) {\n this.client = new Bellhop();\n // @ts-ignore\n this.client.hidden = this.client.receive.bind(this.client);\n // @ts-ignore\n this.client.hiddenSend = this.client.send.bind(this.client);\n this.client.receive = function (event) {\n this.hidden(event);\n }.bind(this.client);\n this.client.send = function (event, data) {\n this.hiddenSend(event, data);\n }.bind(this.client);\n\n this.plugins = plugins;\n }\n\n /**\n *\n *\n * @returns\n * @memberof PluginManager\n */\n setupPlugins() {\n const preloads = [];\n for (let i = 0, l = this.plugins.length; i < l; i++) {\n if (!this.plugins[i].preload) {\n continue;\n }\n\n preloads.push(\n this.plugins[i].preload(this).catch(function preloadFail(error) {\n this.plugins[i].preloadFailed = true;\n console.warn(this.plugins[i].name, 'Preload Failed:', error);\n }.bind(this))\n );\n }\n\n // ~wait for all preloads to resolve\n return Promise.all(preloads).then(() => {\n // Remove plugins that fail to load.\n this.plugins = this.plugins.filter(\n plugin => plugin.preloadFailed !== true\n );\n\n //init\n this.plugins.forEach(plugin => {\n if (!plugin.init) {\n return;\n }\n\n plugin.init(this);\n });\n\n //start\n this.plugins.forEach(plugin => {\n if (!plugin.start) {\n return;\n }\n plugin.start(this);\n });\n });\n }\n\n /**\n * Registers a plugin to be used by PluginManagers, sorting it by priority order.\n * @param {BasePlugin} plugin The plugin to register.\n */\n uses(plugin) {\n this.plugins.push(plugin);\n }\n\n /**\n * Finds a plugin by name.\n * @param {string} name The name of the plugin.\n * @returns {BasePlugin}\n */\n getPlugin(name) {\n return this.plugins.find(function (plugin) {\n return plugin.name === name;\n });\n }\n}\n","import 'whatwg-fetch';\n\nimport { Features } from './Features';\nimport PluginManager from './PluginManager';\n// @ts-ignore\nimport { version } from '../package.json';\n\n/**\n * The application container\n * @class Container\n * @property {Bellhop} client Communication layer between the container and application\n * @property {boolean} loaded Check to see if a application is loaded\n * @property {boolean} loading Check to see if a application is loading\n * @property {object} release The current release data\n * @property {HTMLIFrameElement} iframe The DOM object for the iframe\n * @static @property {string} version The current version of the library\n */\nexport class Container extends PluginManager {\n /**\n *Creates an instance of Container.\n * @param {object} config\n * @param {string | HTMLIFrameElement} iframeOrSelector\n * @param {Array | null} [config.plugins]\n * @param {object | null} [config.context={}]\n * @memberof Container\n */\n constructor(iframeOrSelector, { plugins, context = {} } = {}) {\n super({ plugins });\n\n this.iframe = iframeOrSelector instanceof HTMLIFrameElement ? iframeOrSelector : document.querySelector(iframeOrSelector);\n\n if (null === this.iframe) {\n throw new Error('No iframe was found with the provided selector');\n }\n\n this.loaded = false;\n this.loading = false;\n this.release = null;\n\n // context object that plugins can pick up on\n this._context = context;\n\n this.onLoading = this.onLoading.bind(this);\n this.onLoadDone = this.onLoadDone.bind(this);\n this.onLoadDone = this.onLoadDone.bind(this);\n this.onEndGame = this.onEndGame.bind(this);\n this.onLocalError = this.onLocalError.bind(this);\n\n this.initClient();\n this.setupPlugins();\n }\n\n /**\n * The game is starting to load\n * @memberof Container\n */\n onLoading() {\n this.client.trigger('opening');\n }\n\n /**\n * Reset the mutes for audio and captions\n * @memberof Container\n */\n onLoadDone() {\n this.loading = false;\n this.loaded = true;\n this.iframe.classList.remove('loading');\n\n this.client.trigger('opened');\n }\n\n /**\n * The application ended and destroyed itself\n * @memberof Container\n */\n onEndGame() {\n this.reset();\n }\n /**\n * Handle the local errors\n * @method onLocalError\n * @private\n * @param {Event} $event Bellhop event\n */\n onLocalError($event) {\n console.error('SpringRoll Container error: ', $event, new Error().stack);\n }\n\n /**\n * Reset all the buttons back to their original setting\n * and clear the iframe.\n * @memberof Container\n */\n reset() {\n const wasLoaded = this.loaded || this.loading;\n\n if (wasLoaded) {\n this.client.trigger('closed');\n }\n\n // Reset state\n this.loaded = false;\n this.loading = false;\n\n // Clear the iframe src location\n this.iframe.setAttribute('src', '');\n this.iframe.classList.remove('loading');\n }\n\n /**\n * Set up communication layer between site and application.\n * May be called from subclasses if they create/destroy Bellhop instances.\n * @memberof Container\n */\n initClient() {\n //Handle bellhop events coming from the application\n this.client.on('loading', this.onLoading);\n this.client.on('loaded', this.onLoadDone);\n this.client.on('loadDone', this.onLoadDone);\n this.client.on('endGame', this.onEndGame);\n this.client.on('localError', this.onLocalError);\n // @ts-ignore\n this.client.connect(this.iframe);\n }\n\n /**\n * If there was an error when closing, reset the container\n * @memberof Container\n */\n _onCloseFailed() {\n this.reset(); // force close the app\n }\n\n /**\n * Open a application or path\n * @param {string} userPath The full path to the application to load\n * @param {object} [userOptions] The open options\n * @param {boolean} [userOptions.singlePlay=false] If we should play in single play mode\n * @param {object | null} [userOptions.playOptions=null] The optional play options\n * @memberof Container\n */\n _internalOpen(userPath, { singlePlay = false, playOptions = null } = {}) {\n const options = { singlePlay, playOptions };\n this.reset();\n\n this.loading = true;\n this.initClient();\n\n const err = Features.basic();\n if (err) {\n console.error('ERROR:', err);\n this.client.trigger('unsupported');\n }\n\n let path = userPath;\n if (null !== options.playOptions) {\n const playOptionsQueryString =\n 'playOptions=' +\n encodeURIComponent(JSON.stringify(options.playOptions));\n\n path =\n -1 === userPath.indexOf('?')\n ? `${userPath}?${playOptionsQueryString}`\n : `${userPath}&${playOptionsQueryString}`;\n }\n\n this.iframe.classList.add('loading');\n this.iframe.setAttribute('src', path);\n\n this.client.respond('singlePlay', singlePlay);\n this.client.respond('playOptions', playOptions);\n this.client.trigger('open');\n }\n\n /**\n *\n *\n * @param {string} path\n * @param {object} [options={}]\n * @memberof Container\n */\n openPath(path, options = {}) {\n // This should be deprecated, support for old function signature\n if ('object' !== typeof options) {\n console.warn(\n 'SpringRoll Container.openPath was passed a invalid options parameter. Using default parameters instead'\n );\n options = {};\n }\n\n this._internalOpen(\n path,\n Object.assign(\n {\n singlePlay: false,\n playOptions: {}\n },\n options\n )\n );\n }\n\n /**\n * Open application based on an API Call to SpringRoll Connect\n * @param {string} api\n * @param {object} options\n * @param {string} [options.query='']\n * @param {boolean} [options.singlePlay=false]\n * @param {null | object} [options.playOptions=null]\n * @returns {Promise}\n * @memberof Container\n */\n async openRemote(\n api,\n { query = '', singlePlay = false, playOptions = null } = {}\n ) {\n this.release = null;\n\n const response = await fetch(api, {\n headers: {\n 'Content-Type': 'application/json'\n }\n });\n\n const json = await response.json();\n\n // if SpringRollConnect denoted that something failed, send that error back\n if (!json.success) {\n throw new Error(json.error);\n }\n\n // If the browser doesn't support the capabilities requested by this game, also fail.\n const release = json.data;\n const error = Features.test(release.capabilities);\n if (error) {\n this.client.trigger('unsupported', { error });\n throw new Error(error);\n }\n\n // otherwise, open the game\n this.release = release;\n this._internalOpen(release.url + query, {\n singlePlay,\n playOptions\n });\n }\n\n /**\n * Destroy and don't use after this\n * @memberof Container\n */\n destroy() {\n this.reset();\n\n this.iframe = null;\n this.options = null;\n this.release = null;\n }\n\n /**\n * Tell the application to start closing\n * @memberof Container\n */\n close() {\n if (this.loading || this.loaded) {\n this.client.trigger('close');\n // Start the close\n this.client.send('close');\n } else {\n this.reset();\n }\n }\n\n /**\n * the current _context object\n * @readonly\n * @memberof Container\n * @return {object}\n */\n get context() {\n return this._context;\n }\n\n /**\n * sets _context object to new object\n * @param {object} context\n * @memberof Container\n */\n set context(newContext) {\n if (typeof newContext !== 'object') {\n console.error('[SpringRollContainer] Context: new context provided is not an object');\n return;\n }\n this._context = newContext;\n }\n\n\n\n /**\n * The current version of SpringRollContainer\n * @readonly\n * @static\n * @return {string}\n * @memberof Container\n */\n static get version() {\n return version;\n }\n}\n","/**\n * Handle the page visiblity change, if supported. Application uses one of these to\n * monitor page visibility. It is suggested that you listen to `pause`, `paused`,\n * or `resumed` events on the Application instead of using one of these yourself.\n *\n * @export\n * @class PageVisibility\n * @constructor\n * @param {Function} onFocus Callback when the page becomes visible\n * @param {Function} onBlur Callback when the page loses visibility\n */\nexport class PageVisibility {\n /**\n *Creates an instance of PageVisibility.\n * @param { function } [onFocus=function() {}]\n * @param { function } [onBlur=function() {}]\n * @memberof PageVisibility\n */\n constructor(onFocus = function() {}, onBlur = function() {}) {\n this._onFocus = onFocus;\n this._onBlur = onBlur;\n this.onFocus = function(e) {\n if (this.enabled) {\n this._onFocus(e);\n }\n }.bind(this);\n this.onBlur = function(e) {\n if (this.enabled) {\n this._onBlur(e);\n }\n }.bind(this);\n this._enabled = false;\n this.enabled = true;\n\n this.onToggle = this.onToggle.bind(this);\n }\n\n /**\n * Disable the detection\n * @memberof PageVisibility\n */\n destroy() {\n this.enabled = false;\n this.onToggle = null;\n this.onFocus = null;\n this.onBlur = null;\n }\n\n /**\n * The visibility toggle listener function\n * @param {Event} $event;\n * @memberof PageVisibility\n */\n onToggle($event) {\n if (this.enabled) {\n document.hidden ? this.onBlur($event) : this.onFocus($event);\n }\n }\n\n /**\n * If this object is enabled.\n * @returns {boolean}\n * @memberof PageVisibility\n */\n get enabled() {\n return this._enabled;\n }\n\n /**\n * Sets the state of the object\n * @memberof PageVisibility\n */\n set enabled(enable) {\n this._enabled = enable;\n\n document.removeEventListener('visibilitychange', this.onToggle, false);\n window.removeEventListener('blur', this.onBlur, false);\n window.removeEventListener('focus', this.onFocus, false);\n window.removeEventListener('pagehide', this.onBlur, false);\n window.removeEventListener('pageshow', this.onFocus, false);\n window.removeEventListener('visibilitychange', this.onToggle, false);\n\n if (this._enabled) {\n document.addEventListener('visibilitychange', this.onToggle, false);\n window.addEventListener('blur', this.onBlur, false);\n window.addEventListener('focus', this.onFocus, false);\n window.addEventListener('pagehide', this.onBlur, false);\n window.addEventListener('pageshow', this.onFocus, false);\n window.addEventListener('visibilitychange', this.onToggle, false);\n }\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar fails = require('../internals/fails');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// FF99+ bug\nvar BROKEN_ON_SPARSE = fails(function () {\n // eslint-disable-next-line es/no-array-prototype-includes -- detection\n return !Array(1).includes();\n});\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar whitespaces = require('../internals/whitespaces');\n\nvar replace = uncurryThis(''.replace);\nvar ltrim = RegExp('^[' + whitespaces + ']+');\nvar rtrim = RegExp('(^|[^' + whitespaces + '])[' + whitespaces + ']+$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = toString(requireObjectCoercible($this));\n if (TYPE & 1) string = replace(string, ltrim, '');\n if (TYPE & 2) string = replace(string, rtrim, '$1');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","var PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]()\n || non[METHOD_NAME]() !== non\n || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME);\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","var call = require('../internals/function-call');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar regExpFlags = require('../internals/regexp-flags');\n\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (R) {\n var flags = R.flags;\n return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R)\n ? call(regExpFlags, R) : flags;\n};\n","'use strict';\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar defineBuiltIn = require('../internals/define-built-in');\nvar anObject = require('../internals/an-object');\nvar $toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = PROPER_FUNCTION_NAME && nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n defineBuiltIn(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var pattern = $toString(R.source);\n var flags = $toString(getRegExpFlags(R));\n return '/' + pattern + '/' + flags;\n }, { unsafe: true });\n}\n","/**\n * The SavedData functions use localStorage and sessionStorage, with a cookie fallback.\n *\n * @class SavedData\n */\nexport class SavedData {\n\n /**\n * Constructor for IndexedDB work\n */\n constructor(dbName = '') {\n this.db = null;\n this.dbName = dbName;\n }\n /**\n * Remove a saved variable by name.\n * @method remove\n * @static\n * @param {String} name The name of the value to remove\n */\n static remove(name) {\n localStorage.removeItem(name);\n sessionStorage.removeItem(name);\n }\n\n /**\n * Save a variable.\n * @method write\n * @static\n * @param {string} name The name of the value to save\n * @param {string} value The value to save. This will be run through JSON.stringify().\n * @param {boolean} [tempOnly=false] If the value should be saved only in the current browser session.\n */\n static write(name, value, tempOnly = false) {\n\n return tempOnly\n ? sessionStorage.setItem(\n name,\n JSON.stringify('function' === typeof value ? value() : value)\n )\n : localStorage.setItem(\n name,\n JSON.stringify('function' === typeof value ? value() : value)\n );\n }\n\n /**\n * Read the value of a saved variable\n * @method read\n * @static\n * @param {String} name The name of the variable\n * @return {*} The value (run through `JSON.parse()`) or null if it doesn't exist\n */\n static read(name) {\n const value = localStorage.getItem(name) || sessionStorage.getItem(name);\n\n if ('string' === typeof value) {\n try {\n return JSON.parse(value);\n } catch (err) {\n return value;\n }\n } else {\n return value;\n }\n }\n\n /**\n * Open a connection with the IDB Database and optionally add or delete\n * Indexes and stores\n *\n * @param {string} dbName The name of your IndexedDB database\n * @param {string} dbVersion The version number of the database. Additions and deletions will be ignored if lower than current version number\n * @param {JSON} additions Any additions to the structure of the database\n * @param {array} additions.stores Any stores to be added into the database syntax: {storeName: '[name]', options: {[optionally add options]}}\n * @param {array} additions.indexes Any Indexes to be added to the database syntax: {storeName: '[name]', options: {[optionally add options]}}\n */\n IDBOpen( dbName, dbVersion = null, additions = {}, deletions = {}, callback ) {\n const request = dbVersion ? indexedDB.open(dbName, dbVersion) : indexedDB.open(dbName);\n\n request.onsuccess = e => {\n // Database successfully opened. This will run along with onupgradeneeded\n this.db = e.target.result;\n\n if (this.db.version == dbVersion | dbVersion == null) {\n callback({result: 'Success: IDBOpen', success: true});\n }\n };\n\n request.onerror = () => {\n callback({result: request.error.toString(), success: false});\n };\n\n // on upgrade needed fires only if the dbVersion is higher than the current version number\n request.onupgradeneeded = e => {\n // Ensure the proper database object is stored\n this.db = e.target.result;\n\n if (additions != null) {\n if (additions.stores) {\n additions.stores.forEach(store => {\n this.db.createObjectStore(store.storeName, store.options);\n });\n }\n if (additions.indexes != null) {\n additions.indexes.forEach(index => {\n // Add indexes last to avoid adding an index to a store that has yet to be created\n // Open a transaction returning a store object\n const storeObject = request.transaction.objectStore(index.storeName);\n storeObject.createIndex(index.indexName, index.keyPath, index.options);\n });\n }\n }\n\n if (deletions != null) {\n if (deletions.indexes != null) {\n // delete indexes first to avoid deleting an index to a store that has already to been deleted\n deletions.indexes.forEach((index) => {\n // Open a transaction returning a store object\n const storeObject = request.transaction.objectStore(index.storeName);\n storeObject.deleteIndex(index.indexName);\n });\n }\n if (deletions.stores) {\n deletions.stores.forEach((store) => {\n this.db.deleteObjectStore(store.storeName);\n });\n }\n }\n callback({result: 'Success: IDBOpen onupgradeneeded ran', success: true});\n };\n }\n\n /**\n * Delete a database and all records, stores, and indexes associated\n * @param {string} dbName Name of the database to delete\n * @param {object} options Optionally pass in options\n * @param {function} callback The callback to be run on success or error. One value will be passed into this function\n */\n IDBDeleteDB(dbName, options = null, callback = {}) {\n const request = options != null ? indexedDB.deleteDatabase(dbName, options): indexedDB.deleteDatabase(dbName);\n\n request.onsuccess = (e) => {\n callback({result: 'Success: Database Deleted, returned: ' + e.result, success: true});\n };\n request.onerror = () => {\n callback({result: request.error.toString(), success: false});\n };\n\n\n }\n\n /**\n * Add a record to a given store\n * @param {string} storeName The name of the store from which the record will be updated\n * @param {string} key the key of the record to be updated\n * @param {string} value The value for the record with the given key to be updated\n * @param {function} callback The method to call on success or failure. A single value will be passed in\n */\n IDBAdd(storeName, value, key, callback) {\n if ( !this.db && this.dbName != '') {\n this.IDBOpen(this.dbName);\n }\n\n const tx = this.db.transaction(storeName, 'readwrite');\n tx.onerror = () => callback({result: tx.error != null ? tx.error.toString() : 'Aborted: No error given, was the record already added?', success: false});\n tx.onabort = () => callback({result: tx.error != null ? tx.error.toString() : 'Aborted: No error given, was the record already added?', success: false});\n\n tx.oncomplete = () => callback({result: 'Success: Record Added', success: true});\n const store = tx.objectStore(storeName);\n store.add(value, key);\n }\n\n /**\n * Update a record in a given store\n * @param {string} storeName The name of the store from which the record will be updated\n * @param {string} key the key of the record to be updated\n * @param {string | object} value The altered object to be updated from the given store\n * @param {function} callback The method to call on success or failure. A single value will be passed in\n */\n IDBUpdate (storeName, key, value, callback) {\n if ( !this.db && this.dbName != '') {\n this.IDBOpen(this.dbName);\n }\n\n const tx = this.db.transaction(storeName, 'readwrite');\n const store = tx.objectStore(storeName);\n\n const updateRequest = store.put(value, key);\n\n updateRequest.onsuccess = () => {\n callback({result: 'Success: Record Updated', success: true});\n };\n\n updateRequest.onerror = () => callback({result: updateRequest.error.toString(), success: false});\n }\n\n /**\n * Delete a given record within a given store\n * @param {string} storeName The name of the store from which the record will be removed\n * @param {string} key the key of the record to be removed\n * @param {function} callback The method to call on success or failure. A single value will be passed in\n */\n IDBRemove(storeName, key, callback) {\n if ( !this.db && this.dbName != '') {\n this.IDBOpen(this.dbName);\n }\n\n const tx = this.db.transaction(storeName, 'readwrite');\n tx.onerror = () => callback({result: this.db.error.toString(), success: false});\n const store = tx.objectStore(storeName);\n store.delete(key);\n\n tx.oncomplete = () => callback({result: 'Removed Successfully', success: true});\n\n }\n\n /**\n * Return a record from a given store with a given key\n * @param {string} storeName the name of the store to read from\n * @param {string} key The key for the record in the given store\n * @param {function} callback The method to call on success or failure. A single value will be passed in\n */\n IDBRead(storeName, key, callback) {\n // Open transaction with a store\n const tx = this.db.transaction(storeName, 'readonly');\n // Get the store object from the transaction\n const store = tx.objectStore(storeName);\n\n tx.onerror = () => callback({result: this.db.error.toString(), success: false});\n\n const readRequest = store.get(key);\n\n readRequest.onsuccess = () => {\n callback({result: readRequest.result, success: readRequest.result != undefined ? true : false});\n };\n\n }\n\n /**\n * Get all keys with given index\n * @param {string} storeName the name of the store to be read from\n * @param {string} indexName the name of the index to be read from\n * @param {string} query Optionally give a keyRange of records to return\n * @param {string} count Optionally give a max limit on records to be returned\n * @param {function} callback The method to call on success or failure. A single value will be passed in as a parameter\n */\n IDBGetIndexKeys (storeName, indexName, query = null, count = null, callback = {}) {\n // Open transaction with a store\n const tx = this.db.transaction(storeName, 'readonly');\n // Get the store object from the transaction\n const store = tx.objectStore(storeName);\n\n let index;\n\n tx.onerror = () => callback({result: this.db.error.toString(), success: false});\n\n if (query && count) {\n index = store.index(indexName, query, count);\n } else if (query) {\n index = store.index(indexName, query);\n } else {\n index = store.index(indexName);\n }\n\n const getAllKeysRequest = index.getAllKeys();\n\n\n getAllKeysRequest.onsuccess = function(e) {\n callback({result : e.result, success: true});\n };\n }\n\n /**\n * Get all records from a store\n * @param {string} storeName The store to get all records from\n * @param {integer} count Optionally the count of records to return\n * @param {function} callback The method to call on success or failure. A single value will be passed in\n */\n IDBReadAll(storeName, count, callback) {\n // Open transaction with a store\n const tx = this.db.transaction(storeName, 'readonly');\n // Get the store object from the transaction\n const store = tx.objectStore(storeName);\n\n const readRequest = count != null ? store.getAll(null, count) : store.getAll();\n\n // const readRequest = store.getAll();\n\n tx.onerror = () => callback({result: tx.error.toString(), success: false});\n\n\n readRequest.onsuccess = () => {\n callback({result: readRequest.result, success: readRequest.result != undefined ? true : false});\n };\n }\n\n /**\n * Get the version number of a given database. This will create a database if it doesn't exist.\n * Do not call this after opening a connection with the database\n * @param {string} dbName The name of the database for which the version will be returned\n * @param {function} callback The method to call on success or failure. A single value will be passed in\n */\n IDBGetVersion(dbName, callback) {\n // Open the database\n const dBOpenRequest = window.indexedDB.open(dbName);\n\n // these two event handlers act on the database\n // being opened. successfully, or not\n dBOpenRequest.onerror = function() {\n callback({result: dBOpenRequest.error.toString(), success: false});\n };\n\n dBOpenRequest.onsuccess = function() {\n const db = dBOpenRequest.result;\n callback({result: db.version, success: true});\n };\n }\n\n /**\n * Closes the connection to the database if open\n * @param {function} callback The method to call on success or failure. A single value will be passed in\n */\n IDBClose(callback) {\n if ( this.db ) {\n this.db.close();\n callback({result: 'Success: Closed Database Connection', success: true});\n }\n }\n\n}\n","/* eslint-disable no-unused-vars */\nimport { SavedData } from '../SavedData';\nimport { Container } from '../Container';\n\n/**\n *\n *\n * @export\n * @class BasePlugin\n * @property {Bellhop} client\n * @property {string} name\n */\nexport class BasePlugin {\n /**\n *Creates an instance of BasePlugin.\n * @param {string} name\n * @memberof BasePlugin\n */\n constructor(name) {\n this.name = name;\n this.client = null;\n }\n\n /**\n *\n * @param {Container} [container]\n * @memberof BasePlugin\n * @returns {Promise}\n */\n async preload({ client }) {\n this.client = client;\n }\n\n /**\n *\n * @memberof BasePlugin\n */\n start() {\n this.client.on('loaded', this.sendAllProperties);\n this.client.on('loadDone', this.sendAllProperties);\n }\n\n /**\n *\n * @param {Container} [_]\n * @memberof BasePlugin\n */\n init(_) { }\n\n /**\n *\n *\n * @param {string} prop\n * @param {any} value\n * @param {Boolean} disableSend\n * @memberof BasePlugin\n */\n sendProperty(prop, value, disableSend = false) {\n SavedData.write(prop, value);\n if (disableSend) { return; }\n this.client.send(prop, value);\n }\n\n\n /**\n *\n * @param {Container} [_]\n * @memberof BasePlugin\n */\n sendAllProperties(_) { }\n\n /**\n *\n * @param {string} warningText\n * @memberof BasePlugin\n */\n warn(warningText) {\n console.warn(`[SpringRollContainer] ${this.name}: ${warningText}`);\n }\n}\n","/* eslint-disable no-unused-vars */\nimport { BasePlugin } from './BasePlugin';\nimport { Container } from '../Container';\n\n/**\n *\n *\n * @export\n * @class ButtonPlugin\n * @extends {BasePlugin}\n */\nexport class ButtonPlugin extends BasePlugin {\n /**\n *Creates an instance of ButtonPlugin.\n * @param {string} name\n *\n * @memberof ButtonPlugin\n */\n constructor(name) {\n super(name);\n this.sendMutes = false;\n }\n\n /**\n * @memberof ButtonPlugin\n * @param {Container} [container]\n */\n init(container) {\n // eslint-disable-line no-unused-vars\n this.sendMutes = true;\n }\n\n /**\n *\n * Applies the disabled class to the provided element\n * @param {HTMLButtonElement | Element} button\n * @memberof ButtonPlugin\n */\n _disableButton(button) {\n if (button instanceof HTMLButtonElement) {\n button.classList.remove('enabled');\n button.classList.add('disabled');\n }\n }\n\n /**\n *\n *\n * @memberof ButtonPlugin\n */\n reset() {\n this.sendMutes = false;\n }\n\n /**\n *\n *\n * @param {string} prop\n * @param {Element} button\n * @param {Boolean} muted\n * @param {Boolean} disableSend\n * @memberof ButtonPlugin\n */\n _setMuteProp(prop, button, muted, disableSend = false) {\n console.log('_setmuteprop', prop, muted, disableSend);\n if (Array.isArray(button)) {\n button.forEach(b => this.changeMutedState(b, muted));\n } else {\n this.changeMutedState(button, muted);\n }\n\n this.sendProperty(prop, muted, disableSend);\n }\n\n /**\n *\n *\n * @param {Element} button\n * @param {Boolean} muted\n * @returns\n * @memberof ButtonPlugin\n */\n changeMutedState(button, muted = false) {\n //most times button will be a Button class rather than an HTMLElement\n //But just in case the Button ui-element is not being used\n const htmlButton = button.button ? button.button : button;\n\n if (!(htmlButton instanceof HTMLElement)) {\n return;\n }\n\n htmlButton.classList.remove('unmuted');\n htmlButton.classList.remove('muted');\n htmlButton.classList.add(muted ? 'muted' : 'unmuted');\n }\n}\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","var isRegExp = require('../internals/is-regexp');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw $TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\nvar stringIndexOf = uncurryThis(''.indexOf);\n\n// `String.prototype.includes` method\n// https://tc39.es/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~stringIndexOf(\n toString(requireObjectCoercible(this)),\n toString(notARegExp(searchString)),\n arguments.length > 1 ? arguments[1] : undefined\n );\n }\n});\n","var toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\n\nvar $Array = Array;\nvar max = Math.max;\n\nmodule.exports = function (O, start, end) {\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = $Array(max(fin - k, 0));\n for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n};\n","/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice-simple');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return arraySlice(windowNames);\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) == 'Window'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","// FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it\nvar fails = require('../internals/fails');\n\nmodule.exports = fails(function () {\n if (typeof ArrayBuffer == 'function') {\n var buffer = new ArrayBuffer(8);\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-defineproperty -- safe\n if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 });\n }\n});\n","var fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar $isExtensible = Object.isExtensible;\nvar FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); });\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\nmodule.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) {\n if (!isObject(it)) return false;\n if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) == 'ArrayBuffer') return false;\n return $isExtensible ? $isExtensible(it) : true;\n} : $isExtensible;\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","var $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternalModule = require('../internals/object-get-own-property-names-external');\nvar isExtensible = require('../internals/object-is-extensible');\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar REQUIRED = false;\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + id++, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar enable = function () {\n meta.enable = function () { /* empty */ };\n REQUIRED = true;\n var getOwnPropertyNames = getOwnPropertyNamesModule.f;\n var splice = uncurryThis([].splice);\n var test = {};\n test[METADATA] = 1;\n\n // prevent exposing of metadata key\n if (getOwnPropertyNames(test).length) {\n getOwnPropertyNamesModule.f = function (it) {\n var result = getOwnPropertyNames(it);\n for (var i = 0, length = result.length; i < length; i++) {\n if (result[i] === METADATA) {\n splice(result, i, 1);\n break;\n }\n } return result;\n };\n\n $({ target: 'Object', stat: true, forced: true }, {\n getOwnPropertyNames: getOwnPropertyNamesExternalModule.f\n });\n }\n};\n\nvar meta = module.exports = {\n enable: enable,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","var isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]);\n defineBuiltIn(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n uncurriedNativeMethod(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n uncurriedNativeMethod(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.enable();\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, NativePrototype);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, constructor: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","var defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) defineBuiltIn(target, key, src[key], options);\n return target;\n};\n","'use strict';\nvar create = require('../internals/object-create');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n defineBuiltIns(Prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n defineBuiltIns(Prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineBuiltInAccessor(Prototype, 'size', {\n configurable: true,\n get: function () {\n return getInternalState(this).size;\n }\n });\n return Constructor;\n },\n setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n // return step by kind\n if (kind == 'keys') return createIterResultObject(entry.key, false);\n if (kind == 'values') return createIterResultObject(entry.value, false);\n return createIterResultObject([entry.key, entry.value], false);\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Set` constructor\n// https://tc39.es/ecma262/#sec-set-objects\ncollection('Set', function (init) {\n return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","var $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n keys: function keys(it) {\n return nativeKeys(toObject(it));\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n\n// `Array.prototype.map` method\n// https://tc39.es/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\nvar propertyIsEnumerable = uncurryThis($propertyIsEnumerable);\nvar push = uncurryThis([].push);\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || propertyIsEnumerable(O, key)) {\n push(result, TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.es/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.es/ecma262/#sec-object.values\n values: createMethod(false)\n};\n","var $ = require('../internals/export');\nvar $values = require('../internals/object-to-array').values;\n\n// `Object.values` method\n// https://tc39.es/ecma262/#sec-object.values\n$({ target: 'Object', stat: true }, {\n values: function values(O) {\n return $values(O);\n }\n});\n","import { BasePlugin } from '../base-plugins/BasePlugin';\n\n/**\n * @export\n * @class RadioGroup\n * @property {string} controlName\n * @property {string} featureName\n * @property {string} radioElements\n * @property {string} defaultValue\n */\nexport class RadioGroup extends BasePlugin {\n /**\n * creates an instance of RadioGroup\n * @constructor\n * @param {string} selector selector string for the radio group\n * @param {string} controlName the name of the control (used for warning logging only)\n * @param {string} [featureName='captionStyles'] the feature name used by Springroll. Defaults to captionStyles\n * @param {string} defaultValue the value attribute of the radio button that should be selected by default\n * @param {string} pluginName name of the plugin that instantiated the RadioGroup. Used for logging warnings\n * @memberof RadioGroupPlugin\n */\n constructor({selector, controlName, featureName = 'captionStyles', defaultValue, pluginName}) {\n super(pluginName);\n this.controlName = controlName;\n this.featureName = featureName;\n this.radioElements = document.querySelectorAll(selector);\n this.defaultValue = defaultValue;\n\n this.radioGroup = {};\n\n if (this.radioElements.length <= 0) {\n this.warn(`${this.controlName} RadioGroup found no HTMLElements with selector: ${selector}`);\n return;\n }\n\n this.radioElements.forEach(radio => {\n if (radio.type !== 'radio') {\n this.warn(`${this.controlName} was provided a non Radio Button element with selector: ${selector}`);\n return;\n }\n radio.value = radio.value.toLowerCase();\n\n this.radioGroup[radio.value] = radio;\n });\n\n if (!this.radioGroup[this.defaultValue]) {\n this.warn(`${this.controlName} RadioGroup for selector: ${selector} does not have a radio button with value ${this.defaultValue} to use as default value. Using first element as default`);\n this.defaultValue = this.radioElements[0].value.toLowerCase();\n }\n\n this.radioGroup[this.defaultValue].checked = true;\n }\n\n /**\n * @param {string[]} valuesArray Array of acceptable values to check against the radio group.\n * @return {boolean}\n * @memberof RadioGroup\n */\n hasOnly(valuesArray) {\n\n for (const key in this.radioGroup) {\n if (!valuesArray.includes(this.radioGroup[key].value)) {\n this.warn(`${this.controlName} radio button value: ${this.radioGroup[key].value} is not an accepted value. Skipping radio group`);\n return false;\n }\n }\n\n return true;\n }\n\n /**\n * @return {boolean}\n * @memberof RadioGroup\n */\n hasDuplicateValues() {\n return this.values.length !== [...new Set(this.values)].length;\n }\n\n /**\n * Adds change listeners to the radio buttons using the given callback function\n * @memberof RadioGroup\n * @param {Function} callBack event to fire on change\n */\n enableRadioEvents(callBack) {\n if (!this.radioGroup.length <= 0) {\n return;\n }\n\n const event = callBack;\n for (const radio in this.radioGroup) {\n this.radioGroup[radio].addEventListener('change', event);\n }\n }\n\n /**\n * removes the event listeners from the RadioGroup\n * @memberof RadioGroup\n * @param {Function} callBack event to fire on change\n */\n disableRadioEvents(callBack) {\n if (!this.radioGroup.length <= 0) {\n return;\n }\n for (const radio in this.radioGroup) {\n this.radioGroup[radio].removeEventListener('change', callBack);\n }\n }\n\n /**\n * enables display of the Radio buttons if the correct feature is present in the features list\n * @memberof RadioGroup\n * @param {object} data Object containing which features are enabled\n */\n displayRadios(data) {\n if (this.radioGroup.length <= 0 && data[this.featureName]) {\n this.warn(`${this.controlName} was not provided a valid input element or selector but '${this.featureName}' was included as a game feature`);\n return;\n }\n\n if (this.radioGroup.length <= 0) {\n return;\n }\n\n if (data[this.featureName]) {\n return;\n }\n\n for (const radio in this.radioGroup) {\n this.radioGroup[radio].style.display = 'none';\n }\n }\n\n /**\n * Reset the radio button states\n * @memberof RadioGroup\n */\n resetState() {\n this.radioGroup[this.defaultValue].checked = true;\n }\n\n /**\n * @readonly\n * @returns {number}\n * @memberof RadioGroup\n */\n get length() {\n return Object.keys(this.radioGroup).length;\n }\n\n /**\n * @readonly\n * @returns {number}\n * @memberof RadioGroup\n */\n get values() {\n return Object.values(this.radioGroup).map(radio => radio.value);\n }\n}\n","import { BasePlugin } from './BasePlugin';\nimport { RadioGroup } from '../ui-elements/RadioGroup';\n\n/**\n *\n *\n * @export\n * @class RadioGroupPlugin\n */\nexport class RadioGroupPlugin extends BasePlugin {\n /**\n *\n *Creates an instance of RadioGroupPlugin.\n * @constructor\n * @memberof RadioGroupPlugin\n * @param {string} name\n */\n constructor(cssSelector, name, {supportedValues, initialValue, controlName, featureName, radioCount}) {\n super(name);\n this.selectors = cssSelector ? cssSelector.split(',') : [];\n this.supportedValues = supportedValues;\n this.initialValue = supportedValues.includes(initialValue) ? initialValue : supportedValues[0];\n this.controlName = controlName;\n this.featureName = featureName;\n this.radioCount = radioCount;\n this.sendAllProperties = this.sendAllProperties.bind(this);\n\n this._currentValue = this.initialValue;\n\n this.radioGroups = this.setUpRadios(this.selectors);\n\n this.radioGroupsLength = this.radioGroups.length;\n }\n\n /**\n * @memberof RadioGroupPlugin\n * @param {string[]} selectors the separated selector strings used to target the radio button groups\n * @returns {RadioGroup[]}\n */\n setUpRadios(selectors) {\n const radioGroups = [];\n\n selectors.forEach((selector) => {\n const radioGroup = new RadioGroup({\n selector: selector.trim(),\n controlName: this.controlName,\n defaultValue: this.initialValue,\n pluginName: this.name,\n featureName: this.featureName\n });\n\n if (radioGroup.length !== this.radioCount) {\n this.warn(`Selector \"${selector}\" did not find exactly ${this.radioCount} radio buttons for ${this.controlName}. Skipping selector`);\n return;\n }\n\n if (!radioGroup.hasOnly(this.supportedValues)) {\n return;\n }\n\n if (radioGroup.hasDuplicateValues()) {\n this.warn(`Duplicate radio button values detected (values: ${radioGroup.values} ). Skipping radio group`);\n return;\n }\n\n radioGroups.push(radioGroup);\n });\n\n return radioGroups;\n }\n\n /**\n * @memberof RadioGroupPlugin\n */\n start() {\n this.client.on('loaded', this.sendAllProperties);\n this.client.on('loadDone', this.sendAllProperties);\n }\n\n /**\n *\n * Sends initial caption properties to the application\n * @memberof RadioGroupPlugin\n */\n sendAllProperties() {\n this.sendProperty(this.featureName, this.property);\n }\n\n /**\n * @memberof RadioGroupPlugin\n * @param {string} newValue\n */\n set currentValue(newValue) {\n if (!this.supportedValues.includes(newValue)) {\n return;\n }\n\n this._currentValue = newValue;\n\n for (let i = 0, l = this.radioGroups.length; i < l; i++) {\n this.radioGroups[i].radioGroup[newValue].checked = true;\n }\n }\n\n /**\n * @memberof RadioGroupPlugin\n * @return {string}\n */\n get currentValue() {\n return this._currentValue;\n }\n\n}\n","var uncurryThis = require('../internals/function-uncurry-this');\n\n// `thisNumberValue` abstract operation\n// https://tc39.es/ecma262/#sec-thisnumbervalue\nmodule.exports = uncurryThis(1.0.valueOf);\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar path = require('../internals/path');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar hasOwn = require('../internals/has-own-property');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isSymbol = require('../internals/is-symbol');\nvar toPrimitive = require('../internals/to-primitive');\nvar fails = require('../internals/fails');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar thisNumberValue = require('../internals/this-number-value');\nvar trim = require('../internals/string-trim').trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = global[NUMBER];\nvar PureNumberNamespace = path[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\nvar TypeError = global.TypeError;\nvar stringSlice = uncurryThis(''.slice);\nvar charCodeAt = uncurryThis(''.charCodeAt);\n\n// `ToNumeric` abstract operation\n// https://tc39.es/ecma262/#sec-tonumeric\nvar toNumeric = function (value) {\n var primValue = toPrimitive(value, 'number');\n return typeof primValue == 'bigint' ? primValue : toNumber(primValue);\n};\n\n// `ToNumber` abstract operation\n// https://tc39.es/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, 'number');\n var first, third, radix, maxCode, digits, length, index, code;\n if (isSymbol(it)) throw TypeError('Cannot convert a Symbol value to a number');\n if (typeof it == 'string' && it.length > 2) {\n it = trim(it);\n first = charCodeAt(it, 0);\n if (first === 43 || first === 45) {\n third = charCodeAt(it, 2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (charCodeAt(it, 1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i\n default: return +it;\n }\n digits = stringSlice(it, 2);\n length = digits.length;\n for (index = 0; index < length; index++) {\n code = charCodeAt(digits, index);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\nvar FORCED = isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'));\n\nvar calledWithNew = function (dummy) {\n // includes check on 1..constructor(foo) case\n return isPrototypeOf(NumberPrototype, dummy) && fails(function () { thisNumberValue(dummy); });\n};\n\n// `Number` constructor\n// https://tc39.es/ecma262/#sec-number-constructor\nvar NumberWrapper = function Number(value) {\n var n = arguments.length < 1 ? 0 : NativeNumber(toNumeric(value));\n return calledWithNew(this) ? inheritIfRequired(Object(n), this, NumberWrapper) : n;\n};\n\nNumberWrapper.prototype = NumberPrototype;\nif (FORCED && !IS_PURE) NumberPrototype.constructor = NumberWrapper;\n\n$({ global: true, constructor: true, wrap: true, forced: FORCED }, {\n Number: NumberWrapper\n});\n\n// Use `internal/copy-constructor-properties` helper in `core-js@4`\nvar copyConstructorProperties = function (target, source) {\n for (var keys = DESCRIPTORS ? getOwnPropertyNames(source) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES2015 (in case, if modules with ES2015 Number statics required before):\n 'EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,' +\n // ESNext\n 'fromString,range'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (hasOwn(source, key = keys[j]) && !hasOwn(target, key)) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n\nif (IS_PURE && PureNumberNamespace) copyConstructorProperties(path[NUMBER], PureNumberNamespace);\nif (FORCED || IS_PURE) copyConstructorProperties(path[NUMBER], NativeNumber);\n","import { SavedData } from '../SavedData';\n\n/**\n * @export\n * @class Slider\n */\nexport class Slider {\n /**\n *Creates an instance of Slider\n * @param {object} params\n * @param {string | HTMLInputElement} params.slider the slider element or a selector string\n * @param {string} params.control the feature that this slider controols\n * @param {number} [min=0] slider min value\n * @param {number} [max=1] slider max value\n * @param {number} [step=0.1] slider step value\n * @param {number} [defaultValue=1] slider starting value\n * @memberof SliderPlugin\n */\n constructor({\n slider,\n control,\n min = 0,\n max = 1,\n step = 0.1,\n defaultValue = 1\n }) {\n this.min = min;\n this.max = max;\n this.step = step;\n this.sliderValue = defaultValue;\n this.control = control;\n this.slider = this.setUpSlider(slider, control);\n }\n\n /**\n * @param {string | HTMLInputElement | HTMLElement} slider\n * @param {string} control The control element (sensitivity, difficulty, pointer size, etc) this slider will be controlling\n * @returns {Element | HTMLElement}\n * @memberof Slider\n */\n setUpSlider(slider, control) {\n if ('string' === typeof slider) {\n slider = document.querySelector(slider);\n }\n\n if (!slider || 'range' !== slider.type) {\n return null;\n }\n const value = SavedData.read(control);\n\n slider.min = this.min;\n slider.max = this.max;\n slider.step = this.step;\n\n if ((value || value === 0) && value.toString().trim().length > 0) {\n slider.value = value;\n this.sliderValue = value;\n } else {\n slider.value = this.sliderValue;\n }\n\n return slider;\n }\n\n /**\n * Controls the range of the slider\n * @param {number} i\n * @returns\n * @memberof Slider\n */\n sliderRange(i) {\n if (i < this.min) {\n return this.min;\n } else if (i > this.max) {\n return this.max;\n } else {\n return i;\n }\n }\n\n /**\n * Adds change and input listeners to the slider using the given callback function\n * @memberof Slider\n * @param {Function} callBack event to fire on change or input\n */\n enableSliderEvents(callBack) {\n if (!this.slider) {\n return;\n }\n\n const event = callBack;\n this.slider.addEventListener('change', event);\n this.slider.addEventListener('input', event);\n }\n\n /**\n * removes the event listeners from the given slider.\n * @memberof Slider\n * @param {Function} callBack event to fire on change or input\n */\n disableSliderEvents(callBack) {\n if (!this.slider) {\n return;\n }\n const event = callBack;\n this.slider.removeEventListener('change', event);\n this.slider.removeEventListener('input', event);\n }\n /**\n * enables display of the Slider if it is present in the features list\n * @memberof Slider\n * @param {object} data Object containing which features are enabled\n */\n displaySlider(data) {\n if (!this.slider && data[this.control]) {\n console.warn(`${this.control} was not provided a valid input element or selector but was included as a game feature`);\n }\n\n if (!this.slider) {\n return;\n }\n\n this.slider.style.display = data[this.control] ? '' : 'none';\n }\n\n /**\n * @param {Event} event the event to be fired on the slider\n * @memberof Slider\n */\n dispatchEvent(event) {\n this.slider.dispatchEvent(event);\n }\n\n /**\n * @readonly\n * @returns {string}\n * @memberof Slider\n */\n get value() {\n return this.slider.value;\n }\n\n /**\n * @memberof Slider\n */\n set value(value) {\n this.slider.value = value;\n }\n}\n","/**\n * @export\n * @class Button\n */\nexport class Button {\n /**\n *Creates an instance of Button\n * @param {object} params\n * @param {string | HTMLElement} params.button the button itself or a selector string\n * @param {Function} params.onClick the function to call when the button is clicked\n * @param {string} channel the feature this button controls\n * @memberof ButtonPlugin\n */\n constructor({ button, onClick, channel }) {\n this.button =\n button instanceof HTMLElement ? button : document.querySelector(button);\n this.onClick = onClick;\n this.channel = channel;\n\n if (this.button) {\n this.button.addEventListener('click', onClick);\n }\n }\n\n /**\n * enables display of the button if it is present in the features list\n * @memberof Button\n * @param {object} data Object containing which features are enabled\n */\n displayButton(data) {\n if (!(this.button instanceof HTMLElement)) {\n return;\n }\n\n this.button.style.display =\n data[this.channel] || this.channel === 'pause' || this.channel === 'hints'\n ? ''\n : 'none';\n }\n\n /**\n * enables display of the button\n * @memberof Button\n */\n enableButton() {\n if (!this.button) {\n return;\n }\n this.button.classList.remove('disabled');\n }\n\n /**\n * \n * @param {string} className The classname to be appended to the end of the class property\n */\n addClass(className) {\n this.button.className = this.button.className ? this.button.className + ` ${ className }` : ` ${ className }`;\n }\n}\n","import { BasePlugin } from './BasePlugin';\nimport { Slider } from '../ui-elements';\n\n/**\n *\n *\n * @export\n * @class SliderPlugin\n */\nexport class SliderPlugin extends BasePlugin {\n /**\n *\n *Creates an instance of SliderPlugin.\n * @constructor\n * @memberof SliderPlugin\n * @param {string} cssSelector\n * @param {string} name\n * @param {object} options\n * @param {string | number} [options.defaultValue='0.5']\n * @param {string | number} [options.minValue='0']\n * @param {string | number} [options.maxValue='1']\n * @param {string} [options.featureName] Springroll Core feature name that the plugin is supporting\n */\n constructor(cssSelector, name, {defaultValue = '0.5', minValue = '0', maxValue = '1', featureName }) {\n super(name);\n this.featureName = featureName;\n this.minValue = minValue;\n this.defaultValue = defaultValue;\n this.maxValue = maxValue;\n this._currentValue = defaultValue;\n this.sliders = this.setUpSliders(cssSelector);\n this.slidersLength = this.sliders.length;\n this.sendAllProperties = this.sendAllProperties.bind(this);\n\n if (0 >= this.slidersLength) {\n this.warn('Plugin was not provided any valid HTML Elements');\n return;\n }\n }\n\n /**\n * @memberof SliderPlugin\n * @param {string[]} selectors the selector strings used to target the input elements\n * @returns {Slider[]}\n */\n setUpSliders(selectors) {\n const sliders = [];\n\n if (selectors instanceof HTMLElement) {\n sliders.push(new Slider({\n slider: selectors,\n control: this.featureName,\n defaultValue: this.defaultValue,\n minValue: this.minValue,\n maxValue: this.maxValue\n }));\n } else {\n document.querySelectorAll(selectors).forEach((slider) => {\n sliders.push(new Slider({\n slider: slider,\n control: this.featureName,\n defaultValue: this.defaultValue,\n minValue: this.minValue,\n maxValue: this.maxValue\n }));\n });\n }\n\n return sliders;\n }\n\n /**\n * @memberof SliderPlugin\n */\n init() {\n this.client.on(\n 'features',\n function(features) {\n if (!features.data) {\n return;\n }\n\n for (let i = 0; i < this.slidersLength; i++) {\n this.sliders[i].displaySlider(features.data);\n }\n }.bind(this)\n );\n }\n\n /**\n * @memberof SliderPlugin\n */\n start() {\n this._currentValue = this.sliders[0].value; //update current value to the saved data value set in Slider.\n this.client.on('loaded', this.sendAllProperties);\n this.client.on('loadDone', this.sendAllProperties);\n }\n\n /**\n *\n * Sends initial caption properties to the application\n * @memberof SliderPlugin\n */\n sendAllProperties() {\n this.sendProperty(this.featureName, this.currentValue);\n }\n\n /**\n * @memberof SliderPlugin\n * @param {string} newValue\n */\n set currentValue(newValue) {\n\n //just use first slider to ensure the number is valid.\n this._currentValue = this.sliders[0].sliderRange(Number(newValue));\n\n for (let i = 0; i < this.slidersLength; i++) {\n this.sliders[i].value = newValue;\n }\n }\n\n /**\n * @memberof SliderPlugin\n * @return {string}\n */\n get currentValue() {\n return this._currentValue;\n }\n\n}\n","import { SavedData } from '../SavedData';\nimport { ButtonPlugin } from '../base-plugins';\nimport { RadioGroup } from '../ui-elements';\n\nconst DEFAULT_CAPTIONS_STYLES = {\n size: 'medium',\n background: 'black',\n color: 'white',\n edge: 'none',\n font: 'arial',\n align: 'top'\n};\n\nconst DEFAULT_COLOR_STYLE = {color: 'white', background: 'black'};\nconst INVERTED_COLOR_STYLE = {color: 'black', background: 'white'};\nconst FONT_SIZE_VALUES = ['small', 'medium', 'large'];\nconst COLOR_VALUES = ['default', 'inverted'];\nconst ALIGN_VALUES = ['top', 'bottom'];\n\n/**\n * @export\n * @class CaptionsStylePlugin\n * @property {object} captionsStyles The collection of captions styles\n * @property {string[]} fontSizeSelectors selector strings for the radio button groups\n * @property {string[]} colorSelectors selector strings for the radio button groups\n * @property {string[]} alignmentSelectors selector strings for the radio button groups\n * @property {Object[]} fontSizeRadios array that contains each radio group\n * @property {Object[]} colorRadios array that contains each radio group\n * @property {Object[]} alignmentRadios array that contains each radio group\n * @property {number} fontSizeRadiosLength Length of the fontSizeRadios array\n * @property {number} colorRadiosLength Length of the colorRadios array\n * @property {number} alignmentRadiosLength Length of the alignmentRadios array\n * @extends {ButtonPlugin}\n */\nexport class CaptionsStylePlugin extends ButtonPlugin {\n /**\n * Creates an instance of CaptionsStylePlugin.\n * @param {string} fontSizeRadios selector string for one or more radio groups for caption font size\n * @param {string} colorRadios selector string for one or more radio groups for caption font/background colors\n * @param {string} alignmentRadios selector string for one or more radio groups for caption position\n * @param {string} [defaultFontSize='medium'] Default selected font size\n * @param {string} [defaultColor='default'] Default selected color\n * @param {string} [defaultAlignment='top'] Default selected alignment\n * @memberof CaptionsStylePlugin\n */\n constructor(fontSizeRadios, colorRadios, alignmentRadios,\n { defaultFontSize = 'medium', defaultColor = 'default', defaultAlignment = 'top' } = {}\n ) {\n super('Caption-Style-Plugin');\n this.sendAllProperties = this.sendAllProperties.bind(this);\n this.captionsStyles = Object.assign(\n {},\n DEFAULT_CAPTIONS_STYLES,\n SavedData.read(CaptionsStylePlugin.captionStyleKey) || {}\n );\n\n //split the selector strings into individual selectors.\n //Helps keep the input style consistent across plugins.\n this.fontSizeSelectors = fontSizeRadios ? fontSizeRadios.split(',') : [];\n this.colorSelectors = colorRadios ? colorRadios.split(',') : [];\n this.alignmentSelectors = alignmentRadios ? alignmentRadios.split(',') : [];\n\n this.defaultFontSize = FONT_SIZE_VALUES.includes(defaultFontSize) ? defaultFontSize : FONT_SIZE_VALUES[0];\n this.defaultColor = COLOR_VALUES.includes(defaultColor) ? defaultColor : COLOR_VALUES[0];\n this.defaultAlignment = ALIGN_VALUES.includes(defaultAlignment) ? defaultAlignment : ALIGN_VALUES[0];\n\n this.fontSizeRadios = [];\n this.colorRadios = [];\n this.alignmentRadios = [];\n\n this.fontSizeRadios = this.setUpFontSizeRadios(this.fontSizeSelectors);\n this.colorRadios = this.setUpColorRadios(this.colorSelectors);\n this.alignmentRadios = this.setUpAlignmentRadios(this.alignmentSelectors);\n\n this._captionsMuted = false;\n\n this.alignmentRadiosLength = this.alignmentRadios.length;\n this.fontSizeRadiosLength = this.fontSizeRadios.length;\n this.colorRadiosLength = this.colorRadios.length;\n\n if (0 >= (this.alignmentRadiosLength + this.fontSizeRadiosLength + this.colorRadiosLength)) {\n this.warn(\n 'Plugin was not provided any input elements'\n );\n return;\n }\n\n //set up change events\n for (let i = 0; i < this.colorRadiosLength; i++) {\n this.colorRadios[i].enableRadioEvents(this.onColorChange.bind(this));\n }\n for (let i = 0; i < this.alignmentRadiosLength; i++) {\n this.alignmentRadios[i].enableRadioEvents(this.onAlignmentChange.bind(this));\n }\n for (let i = 0; i < this.fontSizeRadiosLength; i++) {\n this.fontSizeRadios[i].enableRadioEvents(this.onFontSizeChange.bind(this));\n }\n }\n\n /**\n * @memberof CaptionsStylePlugin\n * @param {string[]} selectors the separated selector strings used to target the radio button groups\n * @returns {RadioGroup[]}\n */\n setUpFontSizeRadios(selectors) {\n const radioGroups = [];\n\n selectors.forEach((selector) => {\n const radioGroup = new RadioGroup({\n selector: selector.trim(),\n controlName: 'Font Size',\n defaultValue: this.defaultFontSize,\n pluginName: 'Caption-Button-Plugin'\n });\n\n if (radioGroup.length !== 3) {\n this.warn(`Selector \"${selector}\" did not find exactly three(3) radio buttons for caption font size. Skipping selector`);\n return;\n }\n\n if (!radioGroup.hasOnly(FONT_SIZE_VALUES)) {\n return;\n }\n\n if (radioGroup.hasDuplicateValues()) {\n this.warn(`Duplicate radio button values detected (values: ${radioGroup.values} ). Skipping radio group`);\n return;\n }\n\n radioGroups.push(radioGroup);\n });\n\n return radioGroups;\n }\n\n /**\n * @memberof CaptionsStylePlugin\n * @param {string[]} selectors the separated selector strings used to target the radio button groups\n * @returns {RadioGroup[]}\n */\n setUpColorRadios(selectors) {\n const radioGroups = [];\n\n selectors.forEach((selector) => {\n const radioGroup = new RadioGroup({\n selector: selector.trim(),\n controlName: 'Color',\n defaultValue: this.defaultColor,\n pluginName: 'Caption-Button-Plugin'\n });\n\n if (radioGroup.length !== 2) {\n this.warn(`Selector \"${selector}\" did not find exactly two(2) radio buttons for caption colors. Skipping selector`);\n return;\n }\n\n if (!radioGroup.hasOnly(COLOR_VALUES)) {\n return;\n }\n\n if (radioGroup.hasDuplicateValues()) {\n this.warn(`Duplicate radio button values detected (values: ${radioGroup.values} ). Skipping radio group`);\n return;\n }\n\n radioGroups.push(radioGroup);\n });\n\n return radioGroups;\n }\n\n /**\n * @memberof CaptionsStylePlugin\n * @param {string[]} selectors the separated selector strings used to target the radio button groups\n * @returns {RadioGroup[]}\n */\n setUpAlignmentRadios(selectors) {\n const radioGroups = [];\n\n selectors.forEach((selector) => {\n const radioGroup = new RadioGroup({\n selector: selector.trim(),\n controlName: 'Alignment',\n defaultValue: this.defaultAlignment,\n pluginName: 'Caption-Button-Plugin'\n });\n if (radioGroup.length !== 2) {\n this.warn(`Selector \"${selector}\" did not find exactly two(2) radio buttons for caption alignment. Skipping selector`);\n return;\n }\n\n if (!radioGroup.hasOnly(ALIGN_VALUES)) {\n return;\n }\n\n if (radioGroup.hasDuplicateValues()) {\n this.warn(`Duplicate radio button values detected (values: ${radioGroup.values} ). Skipping radio group`);\n return;\n }\n\n radioGroups.push(radioGroup);\n });\n\n return radioGroups;\n }\n\n /**\n * @memberof CaptionsStylePlugin\n */\n init() {\n // Handle the features request\n this.client.on(\n 'features',\n function($event) {\n\n for (const radio of this.radios) {\n radio.displayRadios($event.data);\n }\n\n }.bind(this)\n );\n\n this.client.on(\n 'caption-set-style',\n function($event) {\n this.setCaptionsStyles($event.data || {});\n }.bind(this)\n );\n }\n /**\n * @memberof CaptionsStylePlugin\n */\n start() {\n this.setCaptionsStyles(SavedData.read(CaptionsStylePlugin.captionStyleKey));\n\n this.client.on('loaded', this.sendAllProperties);\n this.client.on('loadDone', this.sendAllProperties);\n }\n\n /**\n *\n * Sends initial caption properties to the application\n * @memberof CaptionsStylePlugin\n */\n sendAllProperties() {\n this.sendProperty(CaptionsStylePlugin.captionStyleKey, this.captionsStyles);\n }\n /**\n * Fired whenever the font size radios are updated\n * @param {Event} e\n * @memberof CaptionsStylePlugin\n */\n onFontSizeChange(e) {\n this.setCaptionsStyles('size', e.target.value);\n }\n\n /**\n * Fired whenever the alignment radios are updated\n * @param {Event} e\n * @memberof CaptionsStylePlugin\n */\n onAlignmentChange(e) {\n this.setCaptionsStyles('align', e.target.value);\n }\n\n /**\n * Fired whenever the color radios are updated\n * @param {Event} e\n * @memberof CaptionsStylePlugin\n */\n onColorChange(e) {\n const styles = e.target.value === 'default' ? DEFAULT_COLOR_STYLE : INVERTED_COLOR_STYLE;\n\n this.setCaptionsStyles(styles);\n }\n\n /**\n * Reset the captions styles\n * @param {Event} e\n * @memberof CaptionsStylePlugin\n */\n clearCaptionsStyles() {\n this.captionsStyles = Object.assign({}, DEFAULT_CAPTIONS_STYLES);\n this.setCaptionsStyles();\n\n for (const radio of this.radios) {\n radio.resetState();\n }\n }\n\n /**\n * Get the captions styles\n * @param {string} [prop] The optional property, values are \"size\", \"edge\", \"font\", \"background\", \"color\"\n * @return {object | string} The collection of styles, see setCaptionsStyles for more info.\n * @memberof CaptionsStylePlugin\n */\n getCaptionsStyles(prop) {\n return prop ? this.captionsStyles[prop] : this.captionsStyles;\n }\n\n /**\n * Set the captions styles\n *\n * @param {object} [styles] The style options or the name of the\n * property (e.g., \"color\", \"edge\", \"font\", \"background\", \"size\")\n * @param {string} [styles.color='white'] The text color, the default is white\n * @param {string} [styles.edge='none'] The edge style, default is none\n * @param {string} [styles.font='arial'] The font style, default is arial\n * @param {string} [styles.background='black'] The background style, black\n * @param {string} [styles.size='md'] The font style default is medium\n * @param {string} [styles.align='top'] The align style default is top of the window\n * @param {string} [value=''] If setting styles parameter as a string, this is the value of the property.\n * @memberof CaptionsStylePlugin\n */\n setCaptionsStyles(styles = DEFAULT_CAPTIONS_STYLES, value = '') {\n if (typeof styles === 'object') {\n Object.assign(this.captionsStyles, styles);\n } else if (typeof styles === 'string') {\n this.captionsStyles[styles] = value;\n }\n\n // update radios to match\n this.colorRadios.forEach((group) => {\n const style = this.captionsStyles.color === 'white' ? 'default' : 'inverted';\n group.radioGroup[style].checked = true;\n });\n this.alignmentRadios.forEach((group) => {\n group.radioGroup[this.captionsStyles.align].checked = true;\n });\n this.fontSizeRadios.forEach((group) => {\n group.radioGroup[this.captionsStyles.size].checked = true;\n });\n\n SavedData.write(CaptionsStylePlugin.captionStyleKey, this.captionsStyles);\n if (this.client) {\n this.client.send(CaptionsStylePlugin.captionStyleKey, this.captionsStyles);\n }\n }\n\n /**\n * @readonly\n * @returns {number}\n * @memberof RadioGroup\n */\n get radios() {\n return this.colorRadios\n .concat(this.alignmentRadios)\n .concat(this.fontSizeRadios);\n }\n /**\n * Get captionStyle Key\n * @readonly\n * @static\n * @memberof CaptionStyleKey\n * @returns {string}\n */\n static get captionStyleKey() {\n return 'captionsStyles';\n }\n\n}\n","import { SavedData } from '../SavedData';\nimport { ButtonPlugin } from '../base-plugins';\nimport { Button } from '../ui-elements';\n\n/**\n * @export\n * @class CaptionsTogglePlugin\n * @property {Button[]} _captionsButtons An array of caption mute buttons\n * @property {boolean} _captionsMuted True if captions are muted\n * @property {number} captionsButtonLength The length of the captionsButtons array\n * @extends {ButtonPlugin}\n */\nexport class CaptionsTogglePlugin extends ButtonPlugin {\n /**\n *Creates an instance of CaptionsTogglePlugin.\n * @param {string | HTMLElement} captionsButtons selector string for one or more captions mute buttons\n * @memberof CaptionsTogglePlugin\n */\n constructor(captionsButtons) {\n super('Caption-Button-Plugin');\n this.sendAllProperties = this.sendAllProperties.bind(this);\n\n this._captionsButtons = [];\n\n if ( captionsButtons instanceof HTMLElement ) {\n this._captionsButtons[0] = new Button({\n button: captionsButtons,\n onClick: this.captionsButtonClick.bind(this),\n channel: 'captions'\n });\n } else {\n document.querySelectorAll(captionsButtons).forEach((button) => {\n this._captionsButtons.push(new Button({\n button: button,\n onClick: this.captionsButtonClick.bind(this),\n channel: 'captions'\n }));\n });\n }\n\n this._captionsMuted = false;\n this.captionsButtonLength = this._captionsButtons.length;\n\n if (0 >= this.captionsButtonLength) {\n this.warn(\n 'Plugin was not provided any valid button or input elements'\n );\n return;\n }\n }\n\n /**\n * @memberof CaptionsTogglePlugin\n */\n init() {\n // Handle the features request\n this.client.on(\n 'features',\n function($event) {\n for (let i = 0; i < this.captionsButtonLength; i ++) {\n this._captionsButtons[i].displayButton($event.data);\n }\n\n if (null === SavedData.read(CaptionsTogglePlugin.captionsToggleKey)) {\n return;\n }\n\n const captionsMuted = !!SavedData.read(CaptionsTogglePlugin.captionsToggleKey);\n\n this.setMuteProp('captionsMuted', captionsMuted, this._captionsButtons, true);\n\n }.bind(this)\n );\n }\n /**\n * @memberof CaptionsTogglePlugin\n */\n start() {\n for (let i = 0; i < this.captionsButtonsLength; i++) {\n this.captionsButtons[i].enableButton();\n }\n this.client.on('loaded', this.sendAllProperties);\n this.client.on('loadDone', this.sendAllProperties);\n }\n\n /**\n *\n * Sends initial caption properties to the application\n * @memberof CaptionsTogglePlugin\n */\n sendAllProperties() {\n this.sendProperty(CaptionsTogglePlugin.captionsToggleKey, this.captionsMuted);\n }\n\n /**\n * @memberof CaptionsTogglePlugin\n */\n captionsButtonClick() {\n this.captionsMuted = !this.captionsMuted;\n }\n\n /**\n * @readonly\n * @memberof CaptionsTogglePlugin\n */\n get captionsMuted() {\n return this._captionsMuted;\n }\n\n /**\n * @param {boolean} muted\n * @memberof CaptionsTogglePlugin\n */\n set captionsMuted(muted) {\n this._captionsMuted = muted;\n this._setMuteProp(\n 'captionsMuted',\n this._captionsButtons,\n this._captionsMuted\n );\n }\n\n /**\n * Get CaptionToggle Key\n * @readonly\n * @static\n * @memberof captionsToggleKey\n * @returns {string}\n */\n static get captionsToggleKey() {\n return 'captionsMuted';\n }\n}\n","import { ButtonPlugin } from '../base-plugins';\nimport { Button } from '../ui-elements';\n\n/**\n * Requests a hint or help from the game\n * @class HelpPlugin\n * @property {boolean} paused\n * @property {boolean} _helpEnabled\n * @property {boolean} onPause\n * @property {number} helpButtonsLength\n * @extends {ButtonPlugin}\n * @export\n */\nexport class HelpPlugin extends ButtonPlugin {\n /**\n * Creates an instance of HelpPlugin.\n * @param {string | HTMLElement} helpButtons The selector or HTMLElement for the button\n * @memberof HelpPlugin\n */\n constructor(helpButtons) {\n super('Help-Button-Plugin');\n\n this._helpButtons = [];\n\n if (helpButtons instanceof HTMLElement) {\n this._helpButtons[0] = new Button({\n button: helpButtons,\n onClick: this.helpButtonClick.bind(this),\n channel: 'hints' // the check to see if this feature exists is different than most so passing this ensures it'll work the same.\n });\n } else {\n document.querySelectorAll(helpButtons).forEach((button) => {\n this._helpButtons.push(\n new Button({\n button: button,\n onClick: this.helpButtonClick.bind(this),\n channel: 'hints'\n })\n );\n });\n }\n\n this.paused = false;\n this._helpEnabled = false;\n this.onPause = this.onPause.bind(this);\n this.helpButtonsLength = this._helpButtons.length;\n\n if (this.helpButtonsLength <= 0) {\n this.warn('Plugin was not provided any valid button elements');\n }\n }\n /**\n * Called when the game is either paused or resumed\n * @param {object} $event\n * @memberof HelpPlugin\n */\n onPause($event) {\n this.paused = $event.data.paused;\n // Disable the help button when paused if it's active\n if (\n this.paused &&\n this.helpEnabled\n ) {\n for (let i = 0; i < this.helpButtonsLength; i++) {\n this._helpButtons[i].button.setAttribute('data-paused', 'true');\n }\n this.helpEnabled = false;\n } else {\n for (let i = 0; i < this.helpButtonsLength; i++) {\n if (this._helpButtons[i].button.getAttribute('data-paused')) {\n this._helpButtons[i].button.setAttribute('data-paused', '');\n this.helpEnabled = true;\n }\n }\n }\n }\n\n /**\n *\n *\n * @memberof HelpPlugin\n */\n helpButtonClick() {\n if (\n !this.paused &&\n this.helpEnabled\n ) {\n this.client.send('playHelp');\n }\n }\n\n /**\n * @memberof HelpPlugin\n */\n init() {\n // Handle pause\n this.client.on('paused', this.onPause);\n\n // Handle features changed\n this.client.on(\n 'features',\n function(features) {\n this.helpEnabled = features.data.hints;\n for (let i = 0; i < this.helpButtonsLength; i++) {\n this._helpButtons[i].displayButton(features.data);\n }\n }.bind(this)\n );\n\n this.client.on(\n 'helpEnabled',\n function(event) {\n this._helpEnabled = !!event.data;\n }.bind(this)\n );\n }\n\n /**\n * @memberof HelpPlugin\n */\n get helpEnabled() {\n return this._helpEnabled;\n }\n\n /**\n * Fired when the enabled status of the help button changes\n * @function helpEnabled\n * @param {boolean} enabled If the help button is enabled\n * @memberof HelpPlugin\n */\n set helpEnabled(enabled) {\n this._helpEnabled = enabled;\n for (let i = 0; i < this.helpButtonsLength; i++) {\n this._helpButtons[i].button.classList.remove('disabled');\n this._helpButtons[i].button.classList.remove('enabled');\n this._helpButtons[i].button.classList.add(enabled ? 'enabled' : 'disabled');\n }\n\n this.client.trigger('helpEnabled');\n }\n\n /**\n * @readonly\n * @static\n * @memberof HelpPlugin\n * @returns {string}\n */\n static get helpKey() {\n return 'help';\n }\n\n}\n","import { ButtonPlugin } from '../base-plugins';\nimport { PageVisibility } from '../PageVisibility';\nimport { Button } from '../ui-elements';\n/**\n * @class Container\n * @property {object[]} sliders an array of all slider objects attached to PausePlugin\n * @extends ButtonPlugin\n */\nexport class PausePlugin extends ButtonPlugin {\n /**\n * Creates an instance of PausePlugin.\n * @param {string | HTMLElement} pauseButton selector string or HTML Element for the input(s)\n * @param {boolean} manageOwnVisibility whether the plugin should manage container's visibility or some other source will handle it\n * @memberof PausePlugin\n */\n constructor(pauseButton, manageOwnVisibility = true) {\n super('Pause-Button-plugin');\n this._manageOwnVisibility = manageOwnVisibility;\n this._appBlurred = false;\n this._containerBlurred = false;\n this._focusTimer = null;\n this._isManualPause = false;\n this._keepFocus = false;\n this._paused = false;\n this.iframe = null;\n this.focusApp = this.focusApp.bind(this);\n this.manageFocus = this.manageFocus.bind(this);\n this.onKeepFocus = this.onKeepFocus.bind(this);\n this.onFocus = this.onFocus.bind(this);\n const onPauseToggle = this.onPauseToggle.bind(this);\n\n this.pauseDisabled = false;\n this._pauseButton = [];\n\n this.pageVisibility = new PageVisibility(\n this.onContainerFocus.bind(this),\n this.onContainerBlur.bind(this)\n );\n\n this.pageVisibility.enabled = this.manageOwnVisibility;\n\n if (pauseButton instanceof HTMLElement) {\n this._pauseButton[0] = new Button({\n button: pauseButton,\n onClick: onPauseToggle,\n channel: PausePlugin.pauseKey\n });\n } else {\n document.querySelectorAll(pauseButton).forEach((button) => {\n this._pauseButton.push(new Button({\n button: button,\n onClick: onPauseToggle,\n channel: PausePlugin.pauseKey\n }));\n });\n }\n }\n\n /**\n * updates _paused and also sends the pause event to the application\n * @memberof PausePlugin\n * @param {Boolean} paused\n */\n set pause(paused) {\n paused = !!paused;\n\n if (this.pauseDisabled) {\n return;\n }\n this._paused = paused;\n\n this.client.send(PausePlugin.pauseKey, paused);\n this.client.trigger(paused ? 'paused' : 'resumed', { paused });\n\n for (let i = 0, l = this._pauseButton.length; i < l; i++) {\n this._pauseButton[i].button.classList.remove('unpaused');\n this._pauseButton[i].button.classList.remove('paused');\n this._pauseButton[i].button.classList.add(paused ? 'paused' : 'unpaused');\n }\n }\n\n /**\n * @memberof PausePlugin\n * @returns {Boolean}\n */\n get pause() {\n return this._paused;\n }\n\n /**\n * updates _manageOwnVisibility and also re-enables pageVisibility\n * @memberof PausePlugin\n * @param {Boolean} manageOwnVisibility\n */\n set manageOwnVisibility(manageOwnVisibility) {\n this._manageOwnVisibility = manageOwnVisibility;\n\n this.pageVisibility.enabled = this._manageOwnVisibility;\n }\n\n /**\n * @memberof PausePlugin\n * @returns {Boolean}\n */\n get manageOwnVisibility() {\n return this._manageOwnVisibility;\n }\n\n /**\n * forces focus onto the iframe application window\n * @memberof PausePlugin\n */\n focusApp() {\n if (!this.hasDom) {\n // We don't have a dom with a content window, fail quietly\n return;\n }\n\n this.iframe.contentWindow.focus();\n }\n\n /**\n * blurs the application iframe window\n * @memberof PausePlugin\n */\n blurApp() {\n if (!this.hasDom) {\n return;\n }\n this.iframe.contentWindow.blur();\n }\n\n /**\n * Determines what pause state should be sent, if any, on focus or blur events.\n * @method manageFocus\n * @memberof PausePlugin\n */\n manageFocus() {\n if (!this.manageOwnVisibility) {\n return;\n }\n // Unfocus on the iframe\n if (this._keepFocus) {\n this.blurApp();\n }\n\n // we only need one delayed call, at the end of any\n // sequence of rapidly-fired blur/focus events\n if (this._focusTimer) {\n clearTimeout(this._focusTimer);\n }\n\n // Delay setting of 'paused' in case we get another focus event soon.\n // Focus events are sent to the container asynchronously, and this was\n // causing rapid toggling of the pause state and related issues,\n // especially in Internet Explorer\n this._focusTimer = setTimeout(\n function () {\n this._focusTimer = null;\n // A manual pause cannot be overriden by focus events.\n // User must click the resume button.\n if (this._isManualPause) {\n return;\n }\n\n this.pause = Boolean(this._containerBlurred && this._appBlurred);\n\n // Focus on the content window when blurring the app\n // but selecting the container\n if (this._keepFocus && !this._containerBlurred && this._appBlurred) {\n this.focusApp();\n }\n }.bind(this),\n 100\n );\n }\n\n /**\n * Handle the keep focus event for the window\n * @method onKeepFocus\n * @memberof PausePlugin\n * @private\n */\n onKeepFocus($event) {\n this._keepFocus = !!$event.data;\n this.manageFocus();\n }\n\n /**\n * Handle focus events sent from iFrame children\n * @method onFocus\n * @memberof PausePlugin\n * @private\n */\n onFocus($event) {\n this._appBlurred = !$event.data;\n this.manageFocus();\n }\n\n /**\n * Handle focus events sent from container's window\n * @method onContainerFocus\n * @memberof PausePlugin\n * @private\n */\n onContainerFocus() {\n this._containerBlurred = false;\n this.manageFocus();\n }\n\n /**\n * Handle blur events sent from container's window\n * @method onContainerBlur\n * @memberof PausePlugin\n * @private\n */\n onContainerBlur() {\n //Set both container and application to blurred,\n //because some blur events are only happening on the container.\n //If container is blurred because application area was just focused,\n //the application's focus event will override the blur imminently.\n this._containerBlurred = this._appBlurred = true;\n this.manageFocus();\n }\n\n /**\n * @memberof PausePlugin\n */\n onPauseToggle() {\n this._isManualPause = !this._isManualPause;\n this.pause = !this.pause;\n }\n\n /**\n * @param {Container} container\n * @memberof PausePlugin\n */\n init({ iframe }) {\n this.iframe = iframe;\n\n this.client.on(\n 'features',\n function (features) {\n if (features.disablePause) {\n this.pauseDisabled = true;\n }\n\n for (let i = 0, l = this._pauseButton.length; i < l; i++) {\n this._pauseButton[i].displayButton(features.data);\n }\n }.bind(this)\n );\n this.client.on('focus', this.onFocus);\n this.client.on('keepFocus', this.onKeepFocus);\n\n this.pause = this._paused;\n }\n\n /**\n * Function to check if we have a dom with a contentWindow\n * @readonly\n * @returns {boolean}\n * @memberof PausePlugin\n */\n get hasDom() {\n return Boolean(null !== this.iframe && this.iframe.contentWindow);\n }\n\n /**\n * @readonly\n * @memberof PausePlugin\n * @returns {HTMLButtonElement[]}\n */\n get pauseButton() {\n const buttons = [];\n for (let i = 0, l = this._pauseButton.length; i < l; i++) {\n buttons.push(this._pauseButton[i].button);\n }\n return buttons;\n }\n\n /**\n * @readonly\n * @static\n * @memberof PausePlugin\n * @returns {string}\n */\n static get pauseKey() {\n return 'pause';\n }\n}\n","import { SavedData } from '../SavedData';\nimport { ButtonPlugin } from '../base-plugins';\nimport { Slider, Button } from '../ui-elements';\n\n/**\n * @export\n * @class SoundPlugin\n * @extends {ButtonPlugin}\n *\n */\nexport class SoundPlugin extends ButtonPlugin {\n /**\n * Creates an instance of SoundPlugin.\n * @param {string | HTMLElement} [soundButtons] selector string or HTML Element for the input(s)\n * @param {string | HTMLElement} [musicButtons] selector string or HTML Element for the input(s)\n * @param {string | HTMLElement} [voButtons] selector string or HTML Element for the input(s)\n * @param {string | HTMLElement} [sfxButtons] selector string or HTML Element for the input(s)\n * @param {string | HTMLElement} [soundSliders] selector string or HTML Element for the input(s)\n * @param {string | HTMLElement} [musicSliders] selector string or HTML Element for the input(s)\n * @param {string | HTMLElement} [sfxSliders] selector string or HTML Element for the input(s)\n * @param {string | HTMLElement} [voSliders] selector string or HTML Element for the input(s)\n * @memberof SoundPlugin\n */\n constructor({\n soundButtons,\n musicButtons,\n sfxButtons,\n voButtons,\n soundSliders,\n musicSliders,\n sfxSliders,\n voSliders\n } = {}) {\n super('Sound-Button-Plugin');\n const saved = SavedData.read(SoundPlugin.soundMutedKey);\n this.sendAllProperties = this.sendAllProperties.bind(this);\n this._soundMuted = saved ? saved : false;\n this._musicMuted = false;\n this._voMuted = false;\n this._sfxMuted = false;\n\n this._musicMutedByUser = false;\n this._soundMutedByUser = false;\n this._sfxMutedByUser = false;\n this._voMutedByUser = false;\n\n this.soundMuteEnabled = false;\n this.musicMuteEnabled = false;\n this.sfxMuteEnabled = false;\n this.voMuteEnabled = false;\n\n this.soundVolume = 1;\n this.musicVolume = 1;\n this.sfxVolume = 1;\n this.voVolume = 1;\n\n this.soundSliders = [];\n this.musicSliders = [];\n this.sfxSliders = [];\n this.voSliders = [];\n\n this.soundButtons = [];\n this.musicButtons = [];\n this.sfxButtons = [];\n this.voButtons= [];\n\n if (soundSliders instanceof HTMLElement) {\n this.soundSliders[0] = new Slider({\n slider: soundSliders,\n control: SoundPlugin.soundVolumeKey,\n defaultValue: this.soundVolume\n });\n } else {\n document.querySelectorAll(soundSliders).forEach((slider) => {\n const newSlider = new Slider({\n slider: slider,\n control: SoundPlugin.soundVolumeKey,\n defaultValue: this.soundVolume\n });\n if (newSlider.slider) {\n this.soundSliders.push(newSlider);\n }\n });\n }\n if (musicSliders instanceof HTMLElement) {\n this.musicSliders[0] = new Slider({\n slider: musicSliders,\n control: SoundPlugin.musicVolumeKey,\n defaultValue: this.musicVolume\n });\n } else {\n document.querySelectorAll(musicSliders).forEach((slider) => {\n const newSlider = new Slider({\n slider: slider,\n control: SoundPlugin.musicVolumeKey,\n defaultValue: this.musicVolume\n });\n if (newSlider.slider) {\n this.musicSliders.push(newSlider);\n }\n });\n }\n if (sfxSliders instanceof HTMLElement) {\n this.sfxSliders[0] = new Slider({\n slider: sfxSliders,\n control: SoundPlugin.sfxVolumeKey,\n defaultValue: this.sfxVolume\n });\n } else {\n document.querySelectorAll(sfxSliders).forEach((slider) => {\n const newSlider = new Slider({\n slider: slider,\n control: SoundPlugin.sfxVolumeKey,\n defaultValue: this.sfxVolume\n });\n if (newSlider.slider) {\n this.sfxSliders.push(newSlider);\n }\n });\n }\n if (voSliders instanceof HTMLElement) {\n this.voSliders[0] = new Slider({\n slider: voSliders,\n control: SoundPlugin.voVolumeKey,\n defaultValue: this.voVolume\n });\n } else {\n document.querySelectorAll(voSliders).forEach((slider) => {\n const newSlider = new Slider({\n slider: slider,\n control: SoundPlugin.voVolumeKey,\n defaultValue: this.voVolume\n });\n if (newSlider.slider) {\n this.voSliders.push(newSlider);\n }\n });\n }\n\n if ( soundButtons instanceof HTMLElement ) {\n this.soundButtons[0] = new Button({\n button: soundButtons,\n onClick: this.onSoundToggle.bind(this),\n channel: SoundPlugin.soundKey\n });\n } else {\n document.querySelectorAll(soundButtons).forEach((button) => {\n this.soundButtons.push(new Button({\n button: button,\n onClick: this.onSoundToggle.bind(this),\n channel: SoundPlugin.soundKey\n }));\n });\n }\n if ( musicButtons instanceof HTMLElement ) {\n this.musicButtons[0] = new Button({\n button: musicButtons,\n onClick: this.onMusicToggle.bind(this),\n channel: 'music'\n });\n } else {\n document.querySelectorAll(musicButtons).forEach((button) => {\n this.musicButtons.push(new Button({\n button: button,\n onClick: this.onMusicToggle.bind(this),\n channel: 'music'\n }));\n });\n }\n if ( sfxButtons instanceof HTMLElement ) {\n this.sfxButtons[0] = new Button({\n button: sfxButtons,\n onClick: this.onSFXToggle.bind(this),\n channel: 'sfx'\n });\n } else {\n document.querySelectorAll(sfxButtons).forEach((button) => {\n this.sfxButtons.push(new Button({\n button: button,\n onClick: this.onSFXToggle.bind(this),\n channel: 'sfx'\n }));\n });\n }\n if ( voButtons instanceof HTMLElement ) {\n this.voButtons[0] = new Button({\n button: voButtons,\n onClick: this.onVOToggle.bind(this),\n channel: 'vo'\n });\n } else {\n document.querySelectorAll(voButtons).forEach((button) => {\n this.voButtons.push(new Button({\n button: button,\n onClick: this.onVOToggle.bind(this),\n channel: 'vo'\n }));\n });\n }\n\n this.soundSlidersLength = this.soundSliders.length;\n this.musicSlidersLength = this.musicSliders.length;\n this.sfxSlidersLength = this.sfxSliders.length;\n this.voSlidersLength = this.voSliders.length;\n this.soundButtonsLength = this.soundButtons.length;\n this.musicButtonsLength = this.musicButtons.length;\n this.sfxButtonsLength = this.sfxButtons.length;\n this.voButtonsLength = this.voButtons.length;\n\n if (0 >= (this.soundSlidersLength + this.musicSlidersLength + this.sfxSlidersLength + this.voSlidersLength + this.soundButtonsLength + this.musicButtonsLength + this.sfxButtonsLength + this.voButtonsLength)) {\n this.warn('Plugin was not provided any valid HTML Elements');\n return;\n }\n\n for (let i = 0; i < this.soundSlidersLength; i++) {\n this.soundSliders[i].enableSliderEvents(this.onSoundVolumeChange.bind(this));\n }\n for (let i = 0; i < this.musicSlidersLength; i++) {\n this.musicSliders[i].enableSliderEvents(this.onMusicVolumeChange.bind(this));\n }\n for (let i = 0; i < this.sfxSlidersLength; i++) {\n this.sfxSliders[i].enableSliderEvents(this.onSFXVolumeChange.bind(this));\n }\n for (let i = 0; i < this.voSlidersLength; i++) {\n this.voSliders[i].enableSliderEvents(this.onVOVolumeChange.bind(this));\n }\n\n if (this.soundSliders[0] && this.soundSliders[0].slider) {\n this.soundVolume = this.soundSliders[0].value;\n }\n if (this.musicSliders[0] && this.musicSliders[0].slider) {\n this.musicVolume = this.musicSliders[0].value;\n }\n if (this.sfxSliders[0] && this.sfxSliders[0].slider) {\n this.sfxVolume = this.sfxSliders[0].value;\n }\n if (this.voSliders[0] && this.voSliders[0].slider) {\n this.voVolume = this.voSliders[0].value;\n }\n }\n\n /**\n * @memberof SoundPlugin\n * @param {Event} e\n */\n onSoundVolumeChange(e) {\n if (this.soundSlidersLength <= 0) {\n this.soundVolume = e.target.value;\n return;\n }\n this.soundVolume = this.soundSliders[0].sliderRange(\n Number(e.target.value)\n );\n this.soundMuted = !this.soundVolume;\n\n if (!this._musicMutedByUser) {\n this.musicMuted = this.soundMuted;\n }\n if (!this._sfxMutedByUser) {\n this.sfxMuted = this.soundMuted;\n }\n if (!this._voMutedByUser) {\n this.voMuted = this.soundMuted;\n }\n\n this.sendProperty(SoundPlugin.soundVolumeKey, this.soundVolume);\n\n for (let i = 0; i < this.soundSlidersLength; i++) {\n this.soundSliders[i].value = this.soundVolume;\n }\n }\n\n /**\n * @memberof SoundPlugin\n * @param {Event} e\n */\n onMusicVolumeChange(e) {\n if (this.musicSlidersLength <= 0) {\n this.musicVolume = e.target.value;\n return;\n }\n\n this.musicVolume = this.musicSliders[0].sliderRange(\n Number(e.target.value)\n );\n\n this.musicMuted = !this.musicVolume;\n if (!this.musicMuted) { this._musicMutedByUser = false; }\n this._checkSoundMute();\n this.sendProperty(SoundPlugin.musicVolumeKey, this.musicVolume);\n\n for (let i = 0; i < this.musicSlidersLength; i++) {\n this.musicSliders[i].value = this.musicVolume;\n }\n }\n\n /**\n * @memberof SoundPlugin\n * @param {Event} e\n */\n onVOVolumeChange(e) {\n if (this.voSlidersLength <= 0) {\n this.voVolume = e.target.value;\n return;\n }\n this.voVolume = this.voSliders[0].sliderRange(Number(e.target.value));\n if (!this.voMuted) { this._voMutedByUser = false; }\n this.voMuted = !this.voVolume;\n this._checkSoundMute();\n\n this.sendProperty(SoundPlugin.voVolumeKey, this.voVolume);\n for (let i = 0; i < this.voSlidersLength; i++) {\n this.voSliders[i].value = this.voVolume;\n }\n }\n\n /**\n * @memberof SoundPlugin\n * @param {Event} e\n */\n onSFXVolumeChange(e) {\n if (this.sfxSlidersLength <= 0) {\n this.sfxVolume = e.target.value;\n return;\n }\n this.sfxVolume = this.sfxSliders[0].sliderRange(Number(e.target.value));\n if (!this.sfxMuted) { this._sfxMutedByUser = false; }\n this.sfxMuted = !this.sfxVolume;\n this._checkSoundMute();\n\n this.sendProperty(SoundPlugin.sfxVolumeKey, this.sfxVolume);\n\n for (let i = 0; i < this.sfxSlidersLength; i++) {\n this.sfxSliders[i].value = this.sfxVolume;\n }\n }\n\n /**\n * @memberof SoundPlugin\n */\n onSoundToggle() {\n const muted = !this.soundMuted;\n this.soundMuted = muted;\n\n if (!this._musicMutedByUser || muted) {\n this.musicMuted = muted;\n }\n if (!this._sfxMutedByUser || muted) {\n this.sfxMuted = muted;\n }\n if (!this._voMutedByUser || muted) {\n this.voMuted = muted;\n }\n }\n\n /**\n * @memberof SoundPlugin\n */\n onMusicToggle() {\n this.musicMuted = !this.musicMuted;\n this._musicMutedByUser = this.musicMuted;\n this._checkSoundMute();\n }\n\n /**\n * @memberof SoundPlugin\n */\n onVOToggle() {\n this.voMuted = !this.voMuted;\n this._voMutedByUser = this.voMuted;\n this._checkSoundMute();\n }\n\n /**\n * @memberof SoundPlugin\n */\n onSFXToggle() {\n this.sfxMuted = !this.sfxMuted;\n this._sfxMutedByUser = this.sfxMuted;\n this._checkSoundMute();\n }\n\n /**\n * @memberof SoundPlugin\n */\n _checkSoundMute() {\n this.soundMuted = this.sfxMuted && this.voMuted && this.musicMuted;\n }\n\n /**\n * @param {string} key\n * @param {*} value\n * @param {Element} element\n * @memberof SoundPlugin\n */\n setMuteProp(key, value, element, disableSend = false) {\n this['_' + key] = value;\n this._setMuteProp(key, element, value, disableSend);\n }\n\n /**\n * @memberof SoundPlugin\n */\n async preload({ client }) {\n this.client = client;\n this.client.on(\n 'features',\n function(features) {\n if (!features.data) {\n return;\n }\n \n // Confirm that the mute features are supported\n this.soundMutedEnabled = !!features.data.sound;\n this.musicMutedEnabled = !!features.data.music;\n this.sfxMutedEnabled = !!features.data.sfx;\n this.voMutedEnabled = !!features.data.vo;\n \n this.soundVolumeEnabled = !!features.data.soundVolume;\n this.musicVolumeEnabled = !!features.data.musicVolume;\n this.sfxVolumeEnabled = !!features.data.sfxVolume;\n this.voVolumeEnabled = !!features.data.voVolume;\n \n for (let i = 0; i < this.soundButtonsLength; i++) {\n this.soundButtons[i].displayButton(features.data);\n }\n for (let i = 0; i < this.musicButtonsLength; i++) {\n this.musicButtons[i].displayButton(features.data);\n }\n for (let i = 0; i < this.sfxButtonsLength; i++) {\n this.sfxButtons[i].displayButton(features.data);\n }\n for (let i = 0; i < this.voButtonsLength; i++) {\n this.voButtons[i].displayButton(features.data);\n }\n for (let i = 0; i < this.soundSlidersLength; i++) {\n this.soundSliders[i].displaySlider(features.data);\n }\n for (let i = 0; i < this.musicSlidersLength; i++) {\n this.musicSliders[i].displaySlider(features.data);\n }\n for (let i = 0; i < this.sfxSlidersLength; i++) {\n this.sfxSliders[i].displaySlider(features.data);\n }\n for (let i = 0; i < this.voSlidersLength; i++) {\n this.voSliders[i].displaySlider(features.data);\n }\n\n const soundMuted = !!SavedData.read(SoundPlugin.soundMutedKey);\n const musicMuted = !!SavedData.read(SoundPlugin.musicMutedKey);\n const sfxMuted = !!SavedData.read(SoundPlugin.sfxMutedKey);\n const voMuted = !!SavedData.read(SoundPlugin.voMutedKey);\n\n // set the property in case buttons exist but disable the send here\n // properties will be sent in sendAllProperties\n this.setMuteProp('soundMuted', soundMuted, this.soundButtons, true);\n this.setMuteProp('musicMuted', musicMuted, this.musicButtons, true);\n this.setMuteProp('sfxMuted', sfxMuted, this.sfxButtons, true);\n this.setMuteProp('voMuted', voMuted, this.voButtons, true);\n }.bind(this)\n );\n }\n\n /**\n * @memberof SoundPlugin\n */\n start() {\n for (let i = 0; i < this.soundButtonsLength; i++) {\n this.soundButtons[i].enableButton();\n }\n for (let i = 0; i < this.musicButtonsLength; i++) {\n this.musicButtons[i].enableButton();\n }\n for (let i = 0; i < this.sfxButtonsLength; i++) {\n this.sfxButtons[i].enableButton();\n }\n for (let i = 0; i < this.voButtonsLength; i++) {\n this.voButtons[i].enableButton();\n }\n\n this.client.on('loaded', this.sendAllProperties);\n this.client.on('loadDone', this.sendAllProperties);\n }\n\n /**\n *\n * Saves the current state of all volume properties, and then sends them to the game\n * @memberof SoundPlugin\n */\n sendAllProperties() {\n\n if ( this.soundVolumeEnabled && this.soundSlidersLength > 0 ) {\n this.sendProperty(SoundPlugin.soundVolumeKey, this.soundVolume);\n }\n if ( this.musicVolumeEnabled && this.musicSlidersLength > 0 ) {\n this.sendProperty(SoundPlugin.musicVolumeKey, this.musicVolume);\n }\n if ( this.voVolumeEnabled && this.voSlidersLength > 0 ) {\n this.sendProperty(SoundPlugin.voVolumeKey, this.voVolume);\n }\n if ( this.sfxVolumeEnabled && this.sfxSlidersLength > 0 ) {\n this.sendProperty(SoundPlugin.sfxVolumeKey, this.sfxVolume);\n }\n\n // to avoid the mute property overwriting the volume on startup, mutes should only send if they're true\n // or the volume channel isn't enabled\n if ( (this.soundButtonsLength > 0 && this.soundMuteEnabled) && (this.soundMuted || !this.soundVolumeEnabled )) {\n this.sendProperty(SoundPlugin.soundMutedKey, this.soundMuted);\n }\n if ( (this.musicButtonsLength > 0 && this.musicMuteEnabled) && (this.musicMuted || !this.musicVolumeEnabled )) {\n this.sendProperty(SoundPlugin.musicMutedKey, this.musicMuted);\n }\n if ( (this.voButtonsLength > 0 && this.voMuteEnabled) && ( this.voMuted || !this.voVolumeEnabled )) {\n this.sendProperty(SoundPlugin.voMutedKey, this.voMuted);\n }\n if ( (this.sfxButtonsLength > 0 && this.sfxMuteEnabled) && (this.sfxMuted || !this.sfxVolumeEnabled )) {\n this.sendProperty(SoundPlugin.sfxMutedKey, this.sfxMuted);\n }\n }\n\n /**\n * @memberof SoundPlugin\n * @param {boolean} muted\n */\n set soundMuted(muted) {\n if (muted === this.soundMuted) {\n // have to do this to make sure it gets set up properly on start up\n this.setMuteProp('soundMuted', muted, this.soundButtons, true);\n return;\n }\n\n let disableSend = false;\n // if volume is enabled and the channel is becoming unmuted we update everything but only send the volume\n if (this.soundVolumeEnabled && !muted) {\n this.sendProperty(SoundPlugin.soundVolumeKey, this.soundVolume);\n disableSend = true;\n }\n this.setMuteProp('soundMuted', muted, this.soundButtons, disableSend);\n }\n\n /**\n * @memberof SoundPlugin\n */\n get soundMuted() {\n return this._soundMuted;\n }\n\n /**\n * @memberof SoundPlugin\n * @param {boolean} muted\n */\n set voMuted(muted) {\n let disableSend = false;\n if (this.voMuted === muted) {\n // have to do this to make sure it gets set up properly on start up\n this.setMuteProp('voMuted', muted, this.voButtons, true);\n return;\n }\n if ((this.voVolumeEnabled && !muted)) {\n this.sendProperty(SoundPlugin.voVolumeKey, this.voVolume);\n disableSend = true;\n }\n this.setMuteProp('voMuted', muted, this.voButtons, disableSend);\n }\n\n /**\n * @memberof SoundPlugin\n */\n get voMuted() {\n return this._voMuted;\n }\n\n /**\n * @memberof SoundPlugin\n * @param {boolean} muted\n */\n set musicMuted(muted) {\n if (this.musicMuted === muted) {\n // have to do this to make sure it gets set up properly on start up\n this.setMuteProp('musicMuted', muted, this.musicButtons, true);\n return; \n }\n let disableSend = false;\n if (this.musicVolumeEnabled && !muted) {\n this.sendProperty(SoundPlugin.musicVolumeKey, this.musicVolume);\n disableSend = true;\n }\n\n this.setMuteProp('musicMuted', muted, this.musicButtons, disableSend);\n }\n\n /**\n * @memberof SoundPlugin\n */\n get musicMuted() {\n return this._musicMuted;\n }\n\n /**\n * @memberof SoundPlugin\n * @param {boolean} muted\n */\n set sfxMuted(muted) {\n if (this.sfxMuted === muted) {\n // have to do this to make sure it gets set up properly on start up\n this.setMuteProp('sfxMuted', muted, this.sfxButtons, true);\n return;\n }\n let disableSend = false;\n if (this.sfxVolumeEnabled && !muted) {\n this.sendProperty(SoundPlugin.sfxVolumeKey, this.sfxVolume);\n disableSend = true;\n }\n this.setMuteProp('sfxMuted', muted, this.sfxButtons, disableSend);\n }\n\n /**\n * @memberof SoundPlugin\n */\n get sfxMuted() {\n return this._sfxMuted;\n }\n\n /**\n * @readonly\n * @static\n * @memberof SoundPlugin\n */\n static get soundMutedKey() {\n return 'soundMuted';\n }\n\n /**\n * @readonly\n * @static\n * @memberof SoundPlugin\n */\n static get voMutedKey() {\n return 'voMuted';\n }\n\n /**\n * @readonly\n * @static\n * @memberof SoundPlugin\n */\n static get musicMutedKey() {\n return 'musicMuted';\n }\n\n /**\n * @readonly\n * @static\n * @memberof SoundPlugin\n */\n static get sfxMutedKey() {\n return 'sfxMuted';\n }\n\n /**\n * @readonly\n * @static\n * @memberof SoundPlugin\n */\n static get soundVolumeKey() {\n return 'soundVolume';\n }\n\n /**\n * @readonly\n * @static\n * @memberof SoundPlugin\n */\n static get sfxVolumeKey() {\n return 'sfxVolume';\n }\n\n /**\n * @readonly\n * @static\n * @memberof SoundPlugin\n */\n static get voVolumeKey() {\n return 'voVolume';\n }\n\n /**\n * @readonly\n * @static\n * @memberof SoundPlugin\n */\n static get musicVolumeKey() {\n return 'musicVolume';\n }\n\n /**\n * @readonly\n * @memberof SoundPlugin\n */\n get soundButton() {\n return this._soundButton.button;\n }\n\n /**\n * @readonly\n * @memberof SoundPlugin\n */\n get musicButton() {\n return this._musicButton.button;\n }\n /**\n * @readonly\n * @memberof SoundPlugin\n */\n get sfxButton() {\n return this._sfxButton.button;\n }\n /**\n * @readonly\n * @memberof SoundPlugin\n */\n get voButton() {\n return this._voButton.button;\n }\n\n /**\n * @readonly\n * @static\n * @memberof SpeedScalePlugin\n * @return {string}\n */\n static get soundKey() {\n return 'sound';\n }\n}\n","import { SavedData } from './SavedData';\n/**\n * Default user data handler for the {{#crossLink \"springroll.Container\"}}Container{{/crossLink}} to save data using\n * the {{#crossLink \"springroll.SavedData\"}}SavedData{{/crossLink}} class.\n * @class SavedDataHandler\n */\nexport class SavedDataHandler {\n\n /**\n * \n */\n constructor() {\n this.dbName;\n this.savedData;\n }\n \n /**\n * Remove a data setting\n * @method remove\n * @static\n * @param {String} name The name of the property\n * @param {Function} [callback] Callback when remove is complete\n */\n static remove(name, callback) {\n SavedData.remove(name);\n callback();\n }\n\n /**\n * Write a custom setting\n * @method write\n * @static\n * @param {String} name The name of the property\n * @param {*} value The value to set the property to\n * @param {Function} [callback] Callback when write is complete\n */\n static write(name, value, callback) {\n SavedData.write(name, value);\n callback();\n }\n\n /**\n * Read a custom setting\n * @method read\n * @static\n * @param {String} name The name of the property\n * @param {Function} callback Callback when read is complete, returns the value\n */\n static read(name, callback) {\n callback(SavedData.read(name));\n }\n\n // ----------------------------------------------------------------\n // IndexedDB Manipulation \n // ----------------------------------------------------------------\n\n /**\n * Open a connection with the database\n * @param {string} dbName The name of your IndexedDB database\n * @param {string} dbVersion The version number of the database\n * @param {JSON} additions Any additions to the structure of the database\n * @param {array} additions.stores Any stores to be added into the database syntax: \n * {storeName: '[name]', options: {[optionally add options]}}\n * @param {array} additions.indexes Any Indexes to be added to the database syntax: \n * {storeName: '[name]', options: {[optionally add options]}}\n */\n IDBOpen( dbName, dbVersion = null, additions = {}, deletions = {}, callback = null) {\n // persisting the savedData object to keep the connection open\n this.savedData = new SavedData();\n this.savedData.IDBOpen( dbName, dbVersion, additions, deletions, callback);\n }\n\n /**\n * Add a record to a given store\n * @param {string} storeName The name of the store from which the record will be updated\n * @param {string} key the key of the record to be updated \n * @param {*} value The value for the record with the given key to be updated\n * @param {function} callback The method to call on success or failure. A single value will be passed in\n */\n IDBAdd(storeName, record, key, callback) {\n this.savedData.IDBAdd(storeName, record, key, callback);\n }\n \n /**\n * Update a record from a given store\n * @param {string} storeName The name of the store from which the record will be updated\n * @param {string} key the key of the record to be updated \n * @param {*} value The value for the record with the given key to be updated\n * @param {function} callback The method to call on success or failure. A single value will be passed in\n */\n IDBUpdate(storeName, key, value, callback) {\n this.savedData.IDBUpdate(storeName, key, value, callback);\n }\n\n /**\n * Remove a record from a store\n * @param {*} storeName The name of the store from which the record will be removed\n * @param {*} key the key of the record to be removed \n * @param {function} callback The method to call on success or failure. A single value will be passed in\n */\n IDBRemove(storeName, key, callback) {\n this.savedData.IDBRemove(storeName, key, callback);\n }\n\n /**\n * Return a record from a given store with a given key\n * @param {string} storeName The name of the store to read from\n * @param {string} key The key for the record in the given store \n * @param {function} callback The method to call on success or failure. A single value will be passed in\n */\n IDBRead(storeName, key, callback) {\n this.savedData.IDBRead(storeName, key, callback);\n }\n\n /**\n * Get all records from a store\n * @param {string} storeName The store to get all records from\n * @param {integer} count Optionally the count of records to return\n * @param {function} callback The method to call on success or failure. A single value will be passed in\n */\n IDBReadAll(storeName, count, callback) {\n this.savedData.IDBReadAll(storeName, count, callback);\n }\n\n /**\n * Get the version of a given database\n * @param {string} dbName The name of the database to return the version of\n * @param {function} callback The method to call on success or failure. A single value will be passed in\n */\n IDBGetVersion(dbName, callback) {\n const sd = new SavedData(dbName);\n\n sd.IDBGetVersion(dbName, callback);\n }\n\n /**\n * Closes the connection to the database\n * @param {function} callback The method to call on success or failure. A single value will be passed in\n */\n IDBClose(callback) {\n this.savedData.IDBClose(callback);\n }\n /**\n * Closes the connection to the database\n * @param {function} callback The method to call on success or failure. A single value will be passed in\n */\n IDBDeleteDB(dbName, options, callback) {\n const sd = new SavedData(dbName);\n sd.IDBDeleteDB(dbName, options, callback);\n }\n\n}\n","import { SavedDataHandler } from '../SavedDataHandler';\nimport { BasePlugin } from '../base-plugins';\n\n/**\n * @export\n * @class UserDataPlugin\n * @extends {BasePlugin}\n * @property {SavedDataHandler} SavedDataHandler The handler to work with the savedData class\n */\nexport class UserDataPlugin extends BasePlugin {\n /**\n * Creates an instance of UserDataPlugin.\n * @memberof UserDataPlugin\n */\n constructor() {\n super('UserData-Plugin');\n this.onUserDataRemove = this.onUserDataRemove.bind(this);\n this.onUserDataRead = this.onUserDataRead.bind(this);\n this.onUserDataWrite = this.onUserDataWrite.bind(this);\n\n this.onIDBAdd = this.onIDBAdd.bind(this);\n this.onIDBOpen = this.onIDBOpen.bind(this);\n this.onIDBRead = this.onIDBRead.bind(this);\n this.onIDBReadAll = this.onIDBReadAll.bind(this);\n this.onIDBRemove = this.onIDBRemove.bind(this);\n this.onIDBUpdate = this.onIDBUpdate.bind(this);\n this.onIDBUpdate = this.onIDBUpdate.bind(this);\n this.onIDBClose = this.onIDBClose.bind(this);\n this.IDBReadAll = this.onIDBReadAll.bind(this);\n this.onIDBGetVersion = this.onIDBGetVersion.bind(this);\n this.onIDBDeleteDB = this.onIDBDeleteDB.bind(this);\n\n this.savedDataHandler = null;\n }\n\n /**\n *\n * @memberof UserDataPlugin\n */\n init() {\n this.client.on('userDataRemove', this.onUserDataRemove);\n this.client.on('userDataRead', this.onUserDataRead);\n this.client.on('userDataWrite', this.onUserDataWrite);\n\n this.client.on('IDBOpen', this.onIDBOpen);\n this.client.on('IDBRead', this.onIDBRead);\n this.client.on('IDBReadAll', this.onIDBReadAll);\n this.client.on('IDBAdd', this.onIDBAdd);\n this.client.on('IDBRemove', this.onIDBRemove);\n this.client.on('IDBUpdate', this.onIDBUpdate);\n this.client.on('IDBClose', this.onIDBClose);\n this.client.on('IDBGetVersion', this.onIDBGetVersion);\n this.client.on('IDBDeleteDB', this.onIDBDeleteDB);\n }\n\n /**\n * Handler for the userDataRemove event\n * @method onUserDataRemove\n * @private\n * @param {string} data The name of the record to be removed\n * @param {string} type The type of listener for bellhop to send to\n */\n onUserDataRemove({ data, type }) {\n SavedDataHandler.remove(data, () => {\n this.client.send(type);\n });\n }\n\n /**\n * Handler for the userDataRead event\n * @method onUserDataRead\n * @private\n * @param {string} data The name of the record to be removed\n * @param {string} type The type of listener for bellhop to send to\n */\n onUserDataRead({ data, type }) {\n SavedDataHandler.read(data, value => this.client.send(type, value));\n }\n\n /**\n * Handler for the userDataWrite event\n * @method onUserDataWrite\n * @private\n * @param {string} type The type of listener for bellhop to send to\n * @param {string} data.name The name for the record. This is what is used to read or remove the record\n * @param {object | string} data.value The data object with the data and value for the record\n */\n onUserDataWrite({type, data: { name, value } }) {\n\n SavedDataHandler.write(name, value, () => this.client.send(type));\n }\n\n // ----------------------------------------------------------------\n // IndexedDB Manipulation\n // ----------------------------------------------------------------\n\n /**\n * Open a connection with the IDB Database and optionally add or delete\n * Indexes and stores\n * @param {string} dbName The name of your IndexedDB database\n * @param {string} [dbVersion] The version number of the database\n * @param {JSON} [additions] Any additions to the structure of the database\n * @param {array} [additions.stores] Any stores to be added into the database syntax:\n * @param {string} [additions.stores.storeName] The name of the store\n * @param {object} [additions.stores.options] Optionally, the option parameter for the createStore method\n * @param {array} [additions.indexes] Any Indexes to be added to the database syntax:\n * @param {string} [additions.indexes.storeName] The name of the store\n * @param {object} [additions.indexes.options] Optionally, the option parameter for the createIndex method\n * @param {string} type The type of listener for bellhop to send to\n */\n onIDBOpen({type, data: {dbName, dbVersion = null, additions = {}, deletions = {} }}) {\n // Keep an instance open to use on open\n this.savedDataHandler = new SavedDataHandler();\n this.savedDataHandler.IDBOpen( dbName, dbVersion, additions, deletions, value => this.client.send(type, value));\n }\n\n /**\n * Add a record to a given store\n * @param {string} type The type of listener for bellhop to send to\n * @param {string} storeName The name of the store from which the record will be updated\n * @param {*} value The value for the record with the given key to be updated\n * @param {string} key the key of the record to be updated\n */\n onIDBAdd({type, data: { storeName, value, key}}) {\n this.savedDataHandler.IDBAdd(storeName, value, key, value => this.client.send(type, value));\n }\n\n /**\n * Update a record from a given store\n * @param {string} type The type of listener for bellhop to send to\n * @param {string} storeName The name of the store with the record to update\n * @param {string} key The key of the record to be updated\n * @param {*} value The record value\n */\n onIDBUpdate({type, data: { storeName, key, value}}) {\n this.savedDataHandler.IDBUpdate(storeName, key, value, value => this.client.send(type, value));\n }\n\n /**\n * Remove a record from a store\n * @param {string} type The type of listener for bellhop to send to\n * @param {string} storeName The name of the store from which the record will be removed\n * @param {*} key the key of the record to be removed\n */\n onIDBRemove({type, data: {storeName, key}}) {\n this.savedDataHandler.IDBRemove(storeName, key, value => this.client.send(type, value));\n }\n\n /**\n * Return a record from a given store with a given key\n * @param {string} storeName The name of the store to read from\n * @param {string} key The key for the record in the given store\n * @param {string} type The type of listener for bellhop to send to\n */\n onIDBRead({type, data: {storeName, key}}) {\n this.savedDataHandler.IDBRead(storeName, key, value => this.client.send(type, value));\n }\n\n /**\n * Get all records from a store\n * @param {string} storeName The store to get all records from\n * @param {integer} count Optionally the number of records to return\n * @param {string} type The type of listener for bellhop to send to\n */\n onIDBReadAll({ type, data: {storeName, count} }) {\n this.savedDataHandler.IDBReadAll(storeName, count, value => this.client.send(type, value));\n }\n\n /**\n * Get the version of a given database\n * @param {string} dbName The name of the database to return the version of\n * @param {string} type The type of listener for bellhop to send to\n */\n onIDBGetVersion({type, data: {dbName}}) {\n // Create a new instance of savedDataHandler to avoid mutating the current instance\n const sdh = new SavedDataHandler();\n sdh.IDBGetVersion(dbName, value => this.client.send(type, value));\n }\n\n /**\n * Close the connection with the database\n * @param {string} type The type of listener for bellhop to send to\n */\n onIDBClose({type}) {\n this.savedDataHandler.IDBClose(value => this.client.send(type, value));\n }\n /**\n * Close the connection with the database\n * @param type - The type of request being sent\n */\n onIDBDeleteDB({type, data: {dbName, options }}) {\n const sdh = new SavedDataHandler();\n\n\n sdh.IDBDeleteDB(dbName, options, value => this.client.send(type, value));\n }\n}","import { SliderPlugin } from '../base-plugins';\n\n/**\n * @export\n * @class PointerSizePlugin\n * @extends {SliderPlugin}\n * @property {object[]} sliders an array of all slider objects attached to PointerSizePlugin\n * @extends SliderPlugin\n */\nexport class PointerSizePlugin extends SliderPlugin {\n /**\n * Creates an instance of PointerSizePlugin.\n * @param {string | HTMLElement} [pointerSliders] selector string or HTML Element for the input(s)\n * @param {number} [defaultPointerSize=0.5] The default value for the pointer size slider\n * @memberof PointerSizePlugin\n */\n constructor(pointerSliders, { defaultPointerSize = 0.5 } = {}) {\n super(pointerSliders, 'UISize-Pointer-Plugin', { defaultValue: defaultPointerSize, featureName: PointerSizePlugin.pointerSizeKey });\n\n for (let i = 0; i < this.slidersLength; i++) {\n this.sliders[i].enableSliderEvents(this.onPointerSizeChange.bind(this));\n }\n\n }\n\n /**\n * @memberof PointerSizePlugin\n * @param {Event} e\n */\n onPointerSizeChange(e) {\n this.currentValue = e.target.value;\n this.sendProperty(PointerSizePlugin.pointerSizeKey, this.currentValue);\n }\n\n\n /**\n * @readonly\n * @static\n * @memberof PointerSizePlugin\n * @return {string}\n */\n static get pointerSizeKey() {\n return 'pointerSize';\n }\n}\n","import { SliderPlugin } from '../base-plugins';\n\n/**\n * @export\n * @class ButtonSizePlugin\n * @property {object[]} sliders An array of slider objects given to ButtonSizePlugin\n * @property {number} currentValue The current button size value\n * @extends {SliderPlugin}\n */\nexport class ButtonSizePlugin extends SliderPlugin {\n /**\n * Creates an instance of ButtonSizePlugin.\n * @param {string | HTMLElement} buttonSliders selector string or html element(s) for the inputs\n * @param {object} options\n * @param {number} [options.defaultButtonSize=0.5]\n * @memberof ButtonSizePlugin\n */\n constructor(buttonSliders, { defaultButtonSize = 0.5 } = {}) {\n super(buttonSliders, 'UISize-Button-Plugin', { defaultValue: defaultButtonSize, featureName: ButtonSizePlugin.buttonSizeKey });\n\n for (let i = 0; i < this.slidersLength; i++) {\n this.sliders[i].enableSliderEvents(this.onButtonSizeChange.bind(this));\n }\n }\n\n /**\n * @memberof ButtonSizePlugin\n * @param {Event} e\n */\n onButtonSizeChange(e) {\n this.currentValue = e.target.value;\n this.sendProperty(ButtonSizePlugin.buttonSizeKey, this.currentValue);\n }\n\n /**\n * Get ButtonSize Key\n * @readonly\n * @static\n * @memberof ButtonSizePlugin\n * @returns {string}\n */\n static get buttonSizeKey() {\n return 'buttonSize';\n }\n}\n","import { SliderPlugin } from '../base-plugins';\n\n/**\n * @export\n * @class ControlSensitivityPlugin\n * @property {object[]} sliders an array of all slider objects attached to ControlSensitivityPlugin\n * @extends {SliderPlugin}\n */\nexport class ControlSensitivityPlugin extends SliderPlugin {\n /**\n * Creates an instance of ControlSensitivityPlugin.\n * @param {string | HTMLElement} sensitivitySliders\n * @param {number} [defaultSensitivity=0.5]\n * @memberof ControlSensitivityPlugin\n */\n constructor(sensitivitySliders, { defaultSensitivity = 0.5 } = {}) {\n super(sensitivitySliders, 'Control-Sensitivity-Plugin', {defaultValue: defaultSensitivity, featureName: ControlSensitivityPlugin.controlSensitivityKey});\n\n this.sendAllProperties = this.sendAllProperties.bind(this);\n\n for (let i = 0; i < this.slidersLength; i++) {\n this.sliders[i].enableSliderEvents(this.onControlSensitivityChange.bind(this));\n }\n }\n\n /**\n * @memberof ControlSensitivityPlugin\n * @param {Event} e\n */\n onControlSensitivityChange(e) {\n this.currentValue = e.target.value;\n this.sendProperty(ControlSensitivityPlugin.controlSensitivityKey, this.currentValue);\n }\n\n /**\n * @readonly\n * @static\n * @memberof ControlSensitivityPlugin\n * @returns {string}\n */\n static get controlSensitivityKey() {\n return 'controlSensitivity';\n }\n}\n","import { BasePlugin } from '../base-plugins';\nimport { SavedData } from '../SavedData';\n\n/**\n * @export\n * @class KeyboardMapPlugin\n * @extends {BasePlugin}\n */\nexport class KeyboardMapPlugin extends BasePlugin {\n /**\n * Creates an instance of KeyboardMapPlugin.\n * @param {string | HTMLElement} keyContainers div or similar container element that will contain the re-mappable keys\n * @param {string} [customClassName='springrollContainerKeyBinding__button'] A custom class name that will be applied to the container element\n * @memberof KeyboardMapPlugin\n */\n constructor(keyContainers, {customClassName = 'springrollContainerKeyBinding__button'} = {}) {\n super('Keyboard-Map-Plugin');\n\n this.sendAllProperties = this.sendAllProperties.bind(this);\n //Allows for removing and reading event listeners\n this.bindKey = this.bindKey.bind(this);\n this.onKeyButtonClick = this.onKeyButtonClick.bind(this);\n\n this.className = customClassName;\n\n this.keyContainers =\n keyContainers instanceof HTMLElement\n ? [keyContainers]\n : document.querySelectorAll(keyContainers);\n\n this.keyBindings = {};\n this.buttons = [];\n this.activekeyButton;\n\n this.sendAfterFetch = false;\n this.canEmit = false;\n\n this.keyContainersLength = this.keyContainers.length;\n\n if (this.keyContainersLength <= 0) {\n this.warn('plugin was not provided any valid key binding container elements');\n return;\n }\n }\n\n /**\n * @memberof KeyboardMapPlugin\n * @param {MouseEvent} e\n * Sets up a rebinding of a key once a key button is clicked.\n */\n onKeyButtonClick(e) {\n\n for (let i = 0, l = this.buttons.length; i < l; i++) {\n for (let j = 0; j < this.buttons[i].length; j++) {\n this.buttons[i][j].removeEventListener('click', this.onKeyButtonClick);\n }\n }\n this.activekeyButton = e.target;\n this.activekeyButton.textContent = 'Press Key to Map';\n document.addEventListener('keyup', this.bindKey);\n }\n\n /**\n * @memberof KeyboardMapPlugin\n * @param {KeyboardEvent} key\n * Actually updates the key binding and sends the value. Also\n * replicates the new key across the other keycontainers\n */\n bindKey(key) {\n key.preventDefault(); //prevents space bar from retriggering a keybinding when set.\n\n for (const actionName in this.keyBindings) {\n if (this.keyBindings[actionName].currentKey === key.key.toLowerCase()) {\n this.warn(`${key.key} is already bound`);\n return;\n }\n }\n\n this.activekeyButton.textContent = key.key === ' ' ? 'space' : key.key;\n for (let i = 0; i < this.buttons.length; i++) {\n for (let j = 0; j < this.buttons[i].length; j++) {\n if (this.buttons[i][j].value === this.activekeyButton.value) {\n this.buttons[i][j].textContent = this.activekeyButton.textContent;\n }\n }\n }\n\n this.keyBindings[this.activekeyButton.value].currentKey = key.key;\n\n document.removeEventListener('keyup', this.bindKey);\n for (let i = 0, l = this.buttons.length; i < l; i++) {\n for (let j = 0; j < this.buttons[i].length; j++) {\n this.buttons[i][j].addEventListener('click', this.onKeyButtonClick);\n }\n }\n\n this.sendProperty(KeyboardMapPlugin.keyBindingKey, this.keyBindings);\n }\n\n /**\n * @memberof KeyboardMapPlugin\n */\n init() {\n this.client.on(\n 'features',\n function(features) {\n if (!features.data) {\n return;\n }\n\n if (!features.data.keyBinding) {\n return;\n }\n\n const data = SavedData.read(KeyboardMapPlugin.keyBindingKey);\n\n this.client.fetch('keyBindings', result => {\n for (let j = 0; j < this.keyContainersLength; j++) {\n this.buttons[j] = [];\n\n for (let i = 0, l = result.data.length; i < l; i++) {\n let currentKey = result.data[i].defaultKey.toLowerCase();\n if (data) {\n if (data[result.data[i].actionName]) {\n currentKey = data[result.data[i].actionName].currentKey;\n }\n }\n //only needs to be set up once\n if (j === 0) {\n this.keyBindings[result.data[i].actionName] = {\n defaultKey: result.data[i].defaultKey.toLowerCase(),\n currentKey: currentKey,\n };\n }\n\n this.buttons[j][i] = document.createElement('button');\n this.buttons[j][i].classList.add(this.className);\n this.buttons[j][i].id = `keyBoardMapPlugin-${result.data[i].actionName}`;\n this.buttons[j][i].value = result.data[i].actionName;\n this.buttons[j][i].textContent = result.data[i].defaultKey;\n this.buttons[j][i].addEventListener('click', this.onKeyButtonClick);\n\n this.label = document.createElement('label');\n this.label.htmlFor = `keyBoardMapPlugin-${result.data[i].actionName}`;\n this.label.textContent = result.data[i].actionName;\n\n this.keyContainers[j].appendChild(this.label);\n this.keyContainers[j].appendChild(this.buttons[j][i]);\n }\n }\n\n this.canEmit = true;\n if (this.sendAfterFetch) {\n this.sendAllProperties();\n }\n });\n }.bind(this)\n );\n }\n\n /**\n*\n* Sends initial caption properties to the application\n* @memberof KeyboardMapPlugin\n*/\n sendAllProperties() {\n if (this.canEmit) {\n this.sendProperty(KeyboardMapPlugin.keyBindingKey, this.keyBindings);\n } else {\n this.sendAfterFetch = true;\n }\n }\n\n /**\n * @readonly\n * @static\n * @memberof KeyboardMapPlugin\n * @returns {string}\n */\n static get keyBindingKey() {\n return 'keyBinding';\n }\n}\n","import { SliderPlugin } from '../base-plugins';\n\n/**\n * @export\n * @class LayersPlugin\n * @property {object[]} sliders an array of all slider objects attached to LayersPlugin\n * @extends {SliderPlugin}\n */\nexport class LayersPlugin extends SliderPlugin {\n /**\n * Creates an instance of KeyboardMapPlugin.\n * @param {string | HTMLInputElement} layersSliders selector string or HTML Element for the input(s)\n * @param {number} [defaultValue=0] The default value for the slider\n */\n constructor(layersSliders, { defaultValue = 0 } = {}) {\n super(layersSliders, 'Layer-Plugin', { defaultValue: defaultValue, featureName: LayersPlugin.layersSliderKey });\n\n for (let i = 0; i < this.slidersLength; i++) {\n this.sliders[i].enableSliderEvents(this.onLayerValueChange.bind(this));\n }\n }\n\n /**\n * @memberof LayersPlugin\n * @param {Event} e\n */\n onLayerValueChange(e) {\n this.currentValue = e.target.value;\n this.sendProperty(LayersPlugin.layersSliderKey, this.currentValue);\n }\n\n /**\n * @readonly\n * @static\n * @memberof LayersPlugin\n * @returns {string}\n */\n static get layersSliderKey() {\n return 'removableLayers';\n }\n}\n","import { RadioGroupPlugin } from '../base-plugins';\nimport { SavedData } from '../SavedData';\n\nconst SUPPORTED_POSITIONS = ['top', 'bottom', 'left', 'right'];\n\n/**\n * @export\n * @class HUDPlugin\n * @extends {BasePlugin}\n */\nexport class HUDPlugin extends RadioGroupPlugin {\n /**\n * Creates an instance of HUDPlugin\n * @param {string} hudSelectorRadios selector string or for the input(s)\n * @param {string[]} [defaultValue='top'] default value for the HUD position\n * @memberof HUDPlugin\n */\n constructor(hudSelectorRadios, { defaultValue = SUPPORTED_POSITIONS[0] } = {}) {\n super(hudSelectorRadios, 'HUD-Layout-Plugin', {supportedValues: SUPPORTED_POSITIONS, initialValue: defaultValue, controlName: 'Hud Selector', featureName: HUDPlugin.hudPositionKey, radioCount: SUPPORTED_POSITIONS.length});\n\n this.sendAllProperties = this.sendAllProperties.bind(this);\n this.sendAfterFetch = false;\n this.canEmit = false;\n this.positions = [];\n\n if (this.radioGroupsLength <= 0) {\n this.warn('Plugin was not provided any valid HTML elements');\n }\n\n for (let i = 0; i < this.radioGroupsLength; i++) {\n this.radioGroups[i].enableRadioEvents(this.onHUDSelect.bind(this));\n }\n\n }\n\n /**\n * @memberof HUDPlugin\n * @param {Event} e\n */\n onHUDSelect(e) {\n //return if a radio button is programattically clicked when it is hidden\n if (!this.positions.includes(e.target.value)) {\n for (let i = 0; i < this.radioGroupsLength; i++) {\n this.radioGroups[i].radioGroup[this.currentValue].checked = true;\n }\n return;\n }\n\n this.currentValue = e.target.value;\n\n this.sendProperty(\n HUDPlugin.hudPositionKey,\n this.currentValue\n );\n }\n\n /**\n * @memberof HUDPlugin\n */\n init() {\n this.client.on(\n 'features',\n function(features) {\n if (!features.data || !features.data.hudPosition) {\n return;\n }\n\n if (this.radioGroupsLength <= 0) {\n return;\n }\n //get the game's reported HUD positions to build out positions array\n this.client.fetch('hudPositions', result => {\n for (let i = 0, l = result.data.length; i < l; i++) {\n if (\n !SUPPORTED_POSITIONS.includes(result.data[i].toLowerCase())\n ) {\n this.warn(`${result.data[i]} is an invalid position name`);\n continue;\n }\n\n this.positions.push(result.data[i].toLowerCase());\n }\n\n for (let i = 0; i < this.radioGroupsLength; i++) {\n //Hide any radio buttons that aren't in the game's position list.\n for (const key in this.radioGroups[i].radioGroup) {\n this.radioGroups[i].radioGroup[key].style.display = this.positions.includes(this.radioGroups[i].radioGroup[key].value) ? '' : 'none';\n }\n }\n\n this.canEmit = true;\n if (this.sendAfterFetch) {\n this.sendAllProperties();\n }\n });\n\n }.bind(this)\n );\n }\n\n /**\n * @memberof HUDPlugin\n */\n start() {\n const data = SavedData.read(HUDPlugin.hudPositionKey);\n\n if (SUPPORTED_POSITIONS.includes(data)) {\n this.currentValue = data;\n }\n this.client.on('loaded', this.sendAllProperties);\n this.client.on('loadDone', this.sendAllProperties);\n }\n\n /**\n *\n * Sends initial HUD position properties to the application\n * @memberof HUDPlugin\n */\n sendAllProperties() {\n if (this.canEmit) {\n this.sendProperty(HUDPlugin.hudPositionKey, this.currentValue);\n } else {\n this.sendAfterFetch = true;\n }\n }\n\n /**\n * @static\n * @readonly\n * @memberof HUDPlugin\n * @returns {string}\n */\n static get hudPositionKey() {\n return 'hudPosition';\n }\n}\n","import { RadioGroupPlugin } from '../base-plugins';\nimport { SavedData } from '../SavedData';\n\nconst COLOR_BLIND_TYPES = [\n 'none',\n 'protanopia',\n 'deuteranopia',\n 'tritanopia',\n 'achromatopsia'\n];\n\n/**\n * @export\n * @class ColorVisionPlugin\n * @property {boolean} sendAfterFetch Whether to send the properties after fetch or not\n * @property {boolean} canEmit Whether or not the plugin can send properties\n * @property {string} colors \n * @extends {RadioGroupPlugin}\n */\nexport class ColorVisionPlugin extends RadioGroupPlugin {\n /**\n * Creates an instance of ColorVisionPlugin.\n * @param {string | HTMLElement} colorSelects\n * @param {string } [defaultValue] Default selected value\n * @memberof ColorVision\n */\n constructor(colorVisionRadios, { defaultValue = COLOR_BLIND_TYPES[0] } = {}) {\n super(colorVisionRadios, 'Color-Filter-Plugin', {supportedValues: COLOR_BLIND_TYPES, initialValue: defaultValue, controlName: 'Color Vision Selector', featureName: ColorVisionPlugin.colorVisionKey, radioCount: COLOR_BLIND_TYPES.length});\n\n this.sendAllProperties = this.sendAllProperties.bind(this);\n this.sendAfterFetch = false;\n this.canEmit = false;\n this.colors = [];\n\n if (this.radioGroupsLength <= 0) {\n this.warn('Plugin was not provided any valid HTML elements');\n return;\n }\n\n for (let i = 0; i < this.radioGroupsLength; i++) {\n this.radioGroups[i].enableRadioEvents(this.onColorChange.bind(this));\n }\n }\n\n /**\n * @memberof ColorVisionPlugin\n * @param {Event} e\n */\n onColorChange(e) {\n //return if a radio button is programmatically clicked when it is hidden from the user\n if (!this.colors.includes(e.target.value) ) {\n for (let i = 0; i < this.radioGroupsLength; i++) {\n this.radioGroups[i].radioGroup[this.currentValue].checked = true;\n }\n return;\n }\n this.currentValue = e.target.value;\n\n this.sendProperty(\n ColorVisionPlugin.colorVisionKey,\n this.currentValue\n );\n }\n\n /**\n * @memberof ColorVisionPlugin\n */\n init() {\n this.client.on(\n 'features',\n function(features) {\n if (!features.data || !features.data.colorVision) {\n return;\n }\n if (this.colorDropdownsLength <= 0) {\n return;\n }\n\n //get the game's reported colors to build out accepted filters array\n this.client.fetch('colorFilters', result => {\n for (let i = 0, l = result.data.length; i < l; i++) {\n if (\n !COLOR_BLIND_TYPES.includes(result.data[i].toLowerCase())\n ) {\n this.warn(`${result.data[i]} is an invalid color vision name`);\n continue;\n }\n this.colors.push(result.data[i].toLowerCase());\n }\n\n this.defaultValue = this.colors[0];\n\n for (let i = 0; i < this.radioGroupsLength; i++) {\n //Hide any radio buttons that aren't in the game's filter list.\n for (const key in this.radioGroups[i].radioGroup) {\n this.radioGroups[i].radioGroup[key].style.display = this.colors.includes(this.radioGroups[i].radioGroup[key].value.toLowerCase()) ? '' : 'none';\n }\n }\n\n this.canEmit = true;\n\n if (this.sendAfterFetch) {\n this.sendAllProperties();\n }\n });\n\n }.bind(this)\n );\n }\n\n /**\n * @memberof ColorVisionPlugin\n */\n start() {\n const data = SavedData.read(ColorVisionPlugin.colorVisionKey);\n\n if (COLOR_BLIND_TYPES.includes(data)) {\n this.currentValue = data;\n }\n\n this.client.on('loaded', this.sendAllProperties);\n this.client.on('loadDone', this.sendAllProperties);\n }\n\n /**\n*\n* Sends initial caption properties to the application\n* @memberof ColorVisionPlugin\n*/\n sendAllProperties() {\n if (this.canEmit) {\n this.sendProperty(ColorVisionPlugin.colorVisionKey, this.currentValue);\n } else {\n this.sendAfterFetch = true;\n }\n }\n\n /**\n * Get the ColorVisionPlugin key\n * @readonly\n * @static\n * @memberof ColorVisionPlugin\n * @returns {string}\n */\n static get colorVisionKey() {\n return 'colorVision';\n }\n\n}\n","import { SliderPlugin } from '../base-plugins';\n\n/**\n * @export\n * @class HitAreaScalePlugin\n * @property {object[]} sliders an array of all slider objects attached to ControlSensitivityPlugin\n * @extends {SliderPlugin}\n * \n */\nexport class HitAreaScalePlugin extends SliderPlugin {\n /**\n * Creates an instance of HitAreaScalePlugin.\n * @param {string | HTMLElement} hitAreaScaleSliders The selector or HTMLElement for the slider\n * @param {number} [defaultHitAreaScale=0.5] The default hit area scale value\n * @memberof HitAreaScalePlugin\n */\n constructor(hitAreaScaleSliders, { defaultHitAreaScale = 0.5 } = {}) {\n super(hitAreaScaleSliders, 'Hit-Area-Scale-Plugin', { defaultValue: defaultHitAreaScale, featureName: HitAreaScalePlugin.hitAreaScaleKey });\n\n for (let i = 0; i < this.slidersLength; i++) {\n this.sliders[i].enableSliderEvents(this.onHitAreaScaleChange.bind(this));\n }\n }\n\n /**\n * @memberof HitAreaScalePlugin\n * @param {Event} target\n * @param {string} control\n */\n onHitAreaScaleChange(e) {\n this.currentValue = e.target.value;\n this.sendProperty(HitAreaScalePlugin.hitAreaScaleKey, this.currentValue);\n }\n\n /**\n * @readonly\n * @static\n * @memberof HitAreaScalePlugin\n * @returns {string}\n */\n static get hitAreaScaleKey() {\n return 'hitAreaScale';\n }\n}\n","import { SliderPlugin } from '../base-plugins';\n\n/**\n * @export\n * @class DragThresholdScalePlugin\n * @extends {SliderPlugin}\n */\nexport class DragThresholdScalePlugin extends SliderPlugin {\n /**\n * Creates an instance of DragThresholdScalePlugin.\n * @param {string | HTMLElement} params.dragThresholdScaleSliders\n * @param {number} [defaultDragThresholdScale=0.5]\n * @memberof DragThresholdScalePlugin\n */\n constructor(dragThresholdScaleSliders, { defaultDragThresholdScale = 0.5 } = {}) {\n super(dragThresholdScaleSliders, 'Drag-Threshold-Scale-Plugin', { defaultValue: defaultDragThresholdScale, featureName: DragThresholdScalePlugin.dragThresholdScaleKey });\n\n for (let i = 0; i < this.slidersLength; i++) {\n this.sliders[i].enableSliderEvents(this.onDragThresholdScaleChange.bind(this));\n }\n }\n\n /**\n * @memberof DragThresholdScalePlugin\n * @param {Event} target\n * @param {string} control\n */\n onDragThresholdScaleChange(e) {\n this.currentValue = e.target.value;\n this.sendProperty(DragThresholdScalePlugin.dragThresholdScaleKey, this.currentValue);\n }\n\n /**\n * @readonly\n * @static\n * @memberof DragThresholdScalePlugin\n * @returns {string}\n */\n static get dragThresholdScaleKey() {\n return 'dragThresholdScale';\n }\n}","import { SliderPlugin } from '../base-plugins';\n\n/**\n * @export\n * @class HealthPlugin\n * @extends {SliderPlugin}\n */\nexport class HealthPlugin extends SliderPlugin {\n /**\n * Creates an instance of HealthPlugin.\n * @param {string | HTMLElement} healthSliders\n * @param {number} [defaultHealth=0.5]\n * @memberof HealthPlugin\n */\n constructor(healthSliders, {defaultHealth = 0.5 } = {}) {\n super(healthSliders, 'Health-Scale-Plugin', { defaultValue:defaultHealth, featureName: HealthPlugin.healthKey });\n\n for (let i = 0; i < this.slidersLength; i++) {\n this.sliders[i].enableSliderEvents(this.onHealthChange.bind(this));\n }\n }\n\n /**\n * @memberof HealthPlugin\n * @param {Event} e\n */\n onHealthChange(e) {\n this.currentValue = e.target.value;\n this.sendProperty(HealthPlugin.healthKey, this.currentValue);\n }\n\n /**\n * @readonly\n * @static\n * @memberof HealthPlugin\n * @returns {string}\n */\n static get healthKey() {\n return 'health';\n }\n}","import { SliderPlugin } from '../base-plugins';\n\n/**\n * @export\n * @class ObjectCountPlugin\n * @property {object[]} sliders an array of all slider objects attached to ObjectCountPlugin\n * @extends {SliderPlugin}\n */\nexport class ObjectCountPlugin extends SliderPlugin {\n /**\n * Creates an instance of ObjectCountPlugin.\n * @param {string | HTMLElement} objectCountSliders selector string or HTML Element for the input(s)\n * @param {number} [defaultObjectCount=0.5] The default value for the slider\n * @memberof ObjectCountPlugin\n */\n constructor(objectCountSliders, { defaultObjectCount = 0.5 } = {}) {\n super(objectCountSliders, 'Object-Count-Plugin', { defaultValue: defaultObjectCount, featureName: ObjectCountPlugin.objectCountKey });\n\n for (let i = 0; i < this.slidersLength; i++) {\n this.sliders[i].enableSliderEvents(this.onObjectCountChange.bind(this));\n }\n }\n\n /**\n * @memberof ObjectCountPlugin\n * @param {Event} target\n * @param {string} control\n */\n onObjectCountChange(e) {\n this.currentValue = e.target.value;\n this.sendProperty(ObjectCountPlugin.objectCountKey, this.currentValue);\n }\n\n /**\n * @readonly\n * @static\n * @memberof ObjectCountPlugin\n * @returns {string}\n */\n static get objectCountKey() {\n return 'objectCount';\n }\n}","import { SliderPlugin } from '../base-plugins';\n\n/**\n * @export\n * @class CompletionPercentagePlugin\n * @property {object[]} sliders an array of all slider objects attached to CompletePercentagePlugin\n * @extends {SliderPlugin}\n */\nexport class CompletionPercentagePlugin extends SliderPlugin {\n /**\n * Creates an instance of CompletionPercentagePlugin.\n * @param {string | HTMLElement} completionPercentageSliders The selector or HTMLSliderElement of the slider\n * @param {number} [defaultCompletionPercentage=0.5] Default selected completion percentage\n * @memberof CompletionPercentagePlugin\n */\n constructor(completionPercentageSliders, { defaultCompletionPercentage = 0.5 } = {}) {\n super(completionPercentageSliders, 'Completion-Percentage-Plugin', { defaultValue: defaultCompletionPercentage, featureName: CompletionPercentagePlugin.completionPercentageKey });\n\n for (let i = 0; i < this.slidersLength; i++) {\n this.sliders[i].enableSliderEvents(this.onCompletionPercentageChange.bind(this));\n }\n }\n\n /**\n * @memberof CompletionPercentagePlugin\n * @param {Event} e\n */\n onCompletionPercentageChange(e) {\n this.currentValue = e.target.value;\n this.sendProperty(CompletionPercentagePlugin.completionPercentageKey, this.currentValue);\n }\n\n /**\n * @readonly\n * @static\n * @memberof CompletionPercentagePlugin\n * @returns {string}\n */\n static get completionPercentageKey() {\n return 'completionPercentage';\n }\n}","import { SliderPlugin } from '../base-plugins';\n\n/**\n * @export\n * @class SpeedScalePlugin\n * @extends {SliderPlugin}\n */\nexport class SpeedScalePlugin extends SliderPlugin {\n /**\n *Creates an instance of SpeedScalePlugin.\n * @param {string | HTMLElement} speedScaleSliders selector string or HTML Element for the input(s)\n * @param {number} [defaultSpeedScale=0.5] The default value for the speed scale slider\n * @memberof SpeedScalePlugin\n */\n constructor(speedScaleSliders, { defaultSpeedScale = 0.5 } = {}) {\n super(speedScaleSliders, 'Speed-Scale-Plugin', { defaultValue: defaultSpeedScale, featureName: SpeedScalePlugin.speedScaleKey });\n\n for (let i = 0; i < this.slidersLength; i++) {\n this.sliders[i].enableSliderEvents(this.onSpeedScaleChange.bind(this));\n }\n }\n\n /**\n * @memberof SpeedScalePlugin\n * @param {Event} e\n */\n onSpeedScaleChange(e) {\n this.currentValue = e.target.value;\n this.sendProperty(SpeedScalePlugin.speedScaleKey, this.currentValue);\n }\n\n /**\n * @readonly\n * @static\n * @memberof SpeedScalePlugin\n * @return {string}\n */\n static get speedScaleKey() {\n return 'speedScale';\n }\n}","import { SliderPlugin } from '../base-plugins';\n\n/**\n * @export\n * @class TimersScalePlugin\n * @property {number} currentValue\n * @extends {SliderPlugin}\n */\nexport class TimersScalePlugin extends SliderPlugin {\n /**\n * Creates an instance of TimersScalePlugin.\n * @param {string | HTMLElement} timersScaleSliders selector string or HTML Element for the input(s)\n * @param {number} [defaultTimersScale=0.5] Default Value for the timer scale slider\n * @memberof TimersScalePlugin\n */\n constructor(timersScaleSliders, { defaultTimersScale = 0.5 } = {}) {\n super(timersScaleSliders, 'Timers-Scale-Plugin', { defaultValue: defaultTimersScale, featureName: TimersScalePlugin.timersScaleKey });\n\n for (let i = 0; i < this.slidersLength; i++) {\n this.sliders[i].enableSliderEvents(this.onTimersScaleChange.bind(this));\n }\n }\n\n /**\n * @memberof TimersScalePlugin\n * @param {Event} e\n */\n onTimersScaleChange(e) {\n this.currentValue = e.target.value;\n this.sendProperty(TimersScalePlugin.timersScaleKey, this.currentValue);\n }\n\n /**\n * @readonly\n * @static\n * @memberof TimersScalePlugin\n * @return {string}\n */\n static get timersScaleKey() {\n return 'timersScale';\n }\n}","import { SliderPlugin } from '../base-plugins';\n\n/**\n * @export\n * @class InputCountPlugin\n * @property {object[]} sliders an array of all slider objects attached to InputCountPlugin\n * @extends {SliderPlugin}\n */\nexport class InputCountPlugin extends SliderPlugin {\n /**\n * Creates an instance of InputCountPlugin.\n * @param {string | HTMLElement} inputCountSliders selector string or HTML Element for the input(s)\n * @param {number} [defaultInputCount=0.5] The default value for the slider\n * @memberof InputCountPlugin\n */\n constructor(inputCountSliders, { defaultInputCount = 0.5 } = {}) {\n super(inputCountSliders, 'Input-Count-Plugin', { defaultValue: defaultInputCount, featureName: InputCountPlugin.inputCountKey });\n\n for (let i = 0; i < this.slidersLength; i++) {\n this.sliders[i].enableSliderEvents(this.onInputCountChange.bind(this));\n }\n }\n\n /**\n * @memberof InputCountPlugin\n * @param {Event} target\n * @param {string} control\n */\n onInputCountChange(e) {\n this.currentValue = e.target.value;\n this.sendProperty(InputCountPlugin.inputCountKey, this.currentValue);\n }\n\n /**\n * @readonly\n * @static\n * @memberof InputCountPlugin\n * @returns {string}\n */\n static get inputCountKey() {\n return 'inputCount';\n }\n}","import { ButtonPlugin } from '../base-plugins/ButtonPlugin';\nimport { Button } from '../ui-elements';\n\n/**\n * A Springroll plugin to easily set up togglable fullscreen\n */\nexport class FullScreenPlugin extends ButtonPlugin {\n \n /**\n * Creates an instance of FullscreenPlugin\n * \n * @param {string | string[]} buttonSelector The selector for the element to be made fullscreen\n */\n constructor(buttonSelector) {\n super({\n name: FullScreenPlugin.fullscreenKey\n }); \n\n this._toggleButtons = [];\n this.iFrame = null;\n\n this.sendAllProperties = this.sendAllProperties.bind(this);\n\n if (Array.isArray(buttonSelector)) {\n // If input is an array, join the selectors into one string\n buttonSelector = buttonSelector.join(', ');\n }\n\n console.log(buttonSelector);\n \n this.toggleButton = document.querySelectorAll(buttonSelector);\n\n\n this.toggleButton.forEach((button) => {\n this._toggleButtons.push(new Button({\n button: button,\n onClick: this.toggleFullScreen.bind(this),\n channel: FullScreenPlugin.fullscreenKey\n }));\n });\n \n\n document.addEventListener('fullscreenchange', () => {\n this.sendAllProperties();\n \n this._toggleButtons.forEach((button) => {\n button.button.classList.toggle('--fullScreen');\n });\n\n });\n }\n\n /**\n * @memberof FullScreenPlugin\n */\n init({ iframe }) {\n this.iFrame = iframe;\n // Handle the features request\n this.client.on(\n 'features',\n function($event) {\n for (let i = 0; i < this.fullscreenElement; i ++) {\n this._toggleButtons[i].displayButton($event.data);\n }\n\n }.bind(this)\n );\n }\n /**\n * @memberof FullScreenPlugin\n */\n start() {\n this.client.on('loaded', this.sendAllProperties);\n this.client.on('loadDone', this.sendAllProperties);\n }\n\n /**\n *\n * Sends initial fullScreen properties to the application\n * @memberof FullScreenTogglePlugin\n */\n sendAllProperties() {\n this.sendProperty(FullScreenPlugin.fullscreenKey, document.fullscreenElement != null ? 'true' : 'false');\n }\n\n /**\n * Toggles fullscreen on this.iFrame. Must be from a user generated event\n */\n toggleFullScreen() {\n if (!document.fullscreenElement) {\n this.iFrame.requestFullscreen().then(() => {\n this.sendAllProperties();\n }).catch((err) => {\n console.log(err);\n });\n } else {\n document.exitFullscreen();\n this.sendAllProperties();\n }\n }\n\n /**\n * Returns true if there is a fullscreen element and false if not\n * @returns { boolean } \n */\n get isFullScreen() {\n return (document.fullscreenElement || // basic\n document.webkitIsFullscreen || //Webkit browsers\n document.mozFullScreen ) // Firefox\n != true; // Ensure boolean output\n }\n\n /** \n * @readonly\n * @static\n * @memberof FullscreenPlugin\n */\n static get fullscreenKey() {\n return 'fullScreen';\n }\n}"],"names":["global","globalThis","self","support","Symbol","Blob","e","viewClasses","isArrayBufferView","ArrayBuffer","isView","obj","indexOf","Object","prototype","toString","call","normalizeName","name","String","test","TypeError","toLowerCase","normalizeValue","value","iteratorFor","items","iterator","next","shift","done","undefined","Headers","headers","this","map","forEach","append","Array","isArray","header","getOwnPropertyNames","consumed","body","bodyUsed","Promise","reject","fileReaderReady","reader","resolve","onload","result","onerror","error","readBlobAsArrayBuffer","blob","FileReader","promise","readAsArrayBuffer","bufferClone","buf","slice","view","Uint8Array","byteLength","set","buffer","Body","_initBody","_bodyInit","_bodyText","isPrototypeOf","_bodyBlob","FormData","_bodyFormData","URLSearchParams","DataView","_bodyArrayBuffer","get","type","rejected","Error","arrayBuffer","isConsumed","byteOffset","then","text","readAsText","readBlobAsText","chars","length","i","fromCharCode","join","readArrayBufferAsText","formData","decode","json","JSON","parse","oldValue","has","hasOwnProperty","callback","thisArg","keys","push","values","entries","methods","Request","input","options","url","credentials","method","mode","signal","upcased","toUpperCase","normalizeMethod","referrer","cache","reParamSearch","replace","Date","getTime","form","trim","split","bytes","decodeURIComponent","Response","bodyInit","status","ok","statusText","clone","response","redirectStatuses","redirect","RangeError","location","DOMException","err","message","stack","create","constructor","fetch","init","request","aborted","xhr","XMLHttpRequest","abortXhr","abort","rawHeaders","getAllResponseHeaders","substr","line","parts","key","responseURL","responseText","setTimeout","ontimeout","onabort","open","href","fixUrl","withCredentials","responseType","setRequestHeader","addEventListener","onreadystatechange","readyState","removeEventListener","send","polyfill","check","it","Math","window","Function","domIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","documentAll","document","all","documentAll_1","IS_HTMLDDA","require$$0","isCallable","argument","require$$1","isObject","EXISTS","createElement","documentCreateElement","classList","DOMTokenListPrototype","domTokenListPrototype","fails","exec","functionBindNative","bind","NATIVE_BIND","FunctionPrototype","uncurryThisWithBind","functionUncurryThis","fn","apply","arguments","uncurryThis","stringSlice","classofRaw","functionUncurryThisClause","$String","tryToString","$TypeError","aCallable","require$$2","functionBindContext","that","classof","$Object","indexedObject","propertyIsEnumerable","isNullOrUndefined","requireObjectCoercible","toObject","ceil","floor","mathTrunc","trunc","x","n","toIntegerOrInfinity","number","min","toLength","lengthOfArrayLike","defineProperty","defineGlobalProperty","configurable","writable","SHARED","sharedStore","store","sharedModule","version","copyright","license","source","match","hasOwnProperty_1","hasOwn","id","postfix","random","uid","engineUserAgent","navigator","userAgent","process","Deno","versions","v8","engineV8Version","V8_VERSION","symbolConstructorDetection","getOwnPropertySymbols","symbol","sham","useSymbolAsUid","shared","require$$3","NATIVE_SYMBOL","require$$4","USE_SYMBOL_AS_UID","require$$5","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","wellKnownSymbol","toStringTagSupport","TO_STRING_TAG_SUPPORT","TO_STRING_TAG","CORRECT_ARGUMENTS","O","tag","tryGet","callee","getBuiltIn","namespace","functionToString","inspectSource","noop","empty","construct","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","isConstructor","called","SPECIES","$Array","arraySpeciesConstructor","originalArray","C","arraySpeciesCreate","IndexedObject","createMethod","TYPE","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","$this","callbackfn","specificCreate","boundFunction","index","target","arrayIteration","filter","some","every","find","findIndex","filterReject","arrayMethodIsStrict","METHOD_NAME","$forEach","arrayForEach","descriptors","ie8DomDefine","a","v8PrototypeDefineBug","anObject","functionCall","objectIsPrototypeOf","isSymbol","$Symbol","getMethod","V","P","func","ordinaryToPrimitive","pref","val","valueOf","TO_PRIMITIVE","toPrimitive","exoticToPrim","toPropertyKey","DESCRIPTORS","IE8_DOM_DEFINE","V8_PROTOTYPE_DEFINE_BUG","$defineProperty","$getOwnPropertyDescriptor","getOwnPropertyDescriptor","ENUMERABLE","CONFIGURABLE","WRITABLE","objectDefineProperty","f","Attributes","current","enumerable","createPropertyDescriptor","bitmap","definePropertyModule","createNonEnumerableProperty","object","DOMIterables","handlePrototype","CollectionPrototype","COLLECTION_NAME","handlePrototype$1","toIndexedObject","max","toAbsoluteIndex","integer","IS_INCLUDES","el","fromIndex","arrayIncludes","includes","hiddenKeys","objectKeysInternal","names","enumBugKeys","internalObjectKeys","objectKeys","objectDefineProperties","defineProperties","Properties","props","activeXDocument","html","sharedKey","definePropertiesModule","PROTOTYPE","SCRIPT","IE_PROTO","require$$6","EmptyConstructor","scriptTag","content","LT","NullProtoObjectViaActiveX","write","close","temp","parentWindow","NullProtoObject","ActiveXObject","iframeDocument","iframe","JS","domain","style","display","appendChild","src","contentWindow","F","objectCreate","UNSCOPABLES","ArrayPrototype","addToUnscopables","iterators","WeakMap","NATIVE_WEAK_MAP","require$$7","OBJECT_ALREADY_INITIALIZED","state","metadata","facade","STATE","internalState","enforce","getterFor","$propertyIsEnumerable","NASHORN_BUG","objectPropertyIsEnumerable","descriptor","propertyIsEnumerableModule","objectGetOwnPropertyDescriptor","getDescriptor","functionName","PROPER","CONFIGURABLE_FUNCTION_NAME","enforceInternalState","getInternalState","CONFIGURABLE_LENGTH","TEMPLATE","makeBuiltIn","makeBuiltInModule","exports","getter","setter","arity","defineBuiltIn","simple","unsafe","nonConfigurable","nonWritable","concat","objectGetOwnPropertyNames","objectGetOwnPropertySymbols","IteratorPrototype","PrototypeOfArrayIteratorPrototype","arrayIterator","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","ownKeys","getOwnPropertyDescriptorModule","replacement","isForced","feature","detection","data","normalize","POLYFILL","NATIVE","string","isForced_1","copyConstructorProperties","exceptions","_export","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","dontCallGetSet","forced","correctPrototypeGetter","getPrototypeOf","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","objectGetPrototypeOf","ITERATOR","BUGGY_SAFARI_ITERATORS","NEW_ITERATOR_PROTOTYPE","iteratorsCore","setToStringTag","TAG","Iterators","returnThis","uncurryThisAccessor","aPossiblePrototype","objectSetPrototypeOf","setPrototypeOf","CORRECT_SETTER","proto","__proto__","$","createIteratorConstructor","IteratorConstructor","NAME","ENUMERABLE_NEXT","require$$8","require$$9","require$$10","require$$12","PROPER_FUNCTION_NAME","require$$13","require$$11","KEYS","VALUES","ENTRIES","iteratorDefine","Iterable","DEFAULT","IS_SET","FORCED","CurrentIteratorPrototype","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","createIterResultObject","InternalStateModule","defineIterator","ARRAY_ITERATOR","setInternalState","es_array_iterator","iterated","kind","Arguments","addToUnscopables$2","ArrayIteratorMethods","ArrayValues","path","$indexOf","nativeIndexOf","NEGATIVE_ZERO","searchElement","createProperty","propertyKey","arrayMethodHasSpeciesSupport","array","foo","Boolean","doesNotExceedSafeInteger","IS_CONCAT_SPREADABLE","IS_CONCAT_SPREADABLE_SUPPORT","isConcatSpreadable","spreadable","arg","k","len","E","A","$assign","assign","objectAssign","b","B","alphabet","chr","T","argumentsLength","S","j","$location","defer","channel","port","engineIsNode","defineBuiltInAccessor","setSpecies","CONSTRUCTOR_NAME","Constructor","anInstance","Prototype","aConstructor","functionApply","Reflect","arraySlice","engineIsIos","validateArgumentsLength","passed","required","IS_IOS","IS_NODE","setImmediate","clear","clearImmediate","Dispatch","MessageChannel","counter","queue","ONREADYSTATECHANGE","run","runner","eventListener","event","globalPostMessageDefer","postMessage","protocol","host","handler","args","nextTick","now","port2","port1","onmessage","importScripts","removeChild","task","Queue","head","tail","Queue$2","add","item","entry","notify","toggle","node","engineIsIosPebble","Pebble","engineIsWebosWebkit","macrotask","IS_IOS_PEBBLE","IS_WEBOS_WEBKIT","MutationObserver","WebKitMutationObserver","queueMicrotaskDescriptor","microtask","flush","parent","exit","enter","createTextNode","observe","characterData","microtask_1","perform","promiseNativeConstructor","engineIsDeno","engineIsBrowser","NativePromiseConstructor","IS_BROWSER","IS_DENO","NativePromiseConstructor$3","SUBCLASSING","NATIVE_PROMISE_REJECTION_EVENT","PromiseRejectionEvent","FORCED_PROMISE_CONSTRUCTOR","PROMISE_CONSTRUCTOR_SOURCE","GLOBAL_CORE_JS_PROMISE","FakePromise","promiseConstructorDetection","CONSTRUCTOR","REJECTION_EVENT","PromiseCapability","$$resolve","$$reject","newPromiseCapability","Internal","OwnPromiseCapability","nativeThen","speciesConstructor","defaultConstructor","require$$14","require$$15","hostReportErrors","console","require$$17","require$$18","require$$19","require$$20","newPromiseCapabilityModule","require$$22","PROMISE","require$$21","NATIVE_PROMISE_SUBCLASSING","getInternalPromiseState","NativePromisePrototype","PromiseConstructor","PromisePrototype","newGenericPromiseCapability","DISPATCH_EVENT","createEvent","dispatchEvent","UNHANDLED_REJECTION","isThenable","callReaction","reaction","exited","fail","rejection","onHandleUnhandled","isReject","notified","reactions","onUnhandled","reason","initEvent","isUnhandled","emit","unwrap","internalReject","internalResolve","wrapper","executor","onFulfilled","onRejected","PromiseWrapper","wrap","setSpecies$1","getIteratorMethod","isArrayIteratorMethod","getIterator","usingIterator","iteratorMethod","iteratorClose","innerResult","innerError","Result","stopped","ResultPrototype","iterate","iterable","unboundFunction","iterFn","step","AS_ENTRIES","IS_RECORD","IS_ITERATOR","INTERRUPTED","stop","condition","callFn","SAFE_CLOSING","iteratorWithReturn","return","from","checkCorrectnessOfIteration","SKIP_CLOSING","ITERATION_SUPPORT","promiseStaticsIncorrectIteration","capability","$promiseResolve","remaining","alreadyCalled","real","catch","race","r","promiseResolve","promiseCapability","re1","re2","regexpFlags","hasIndices","ignoreCase","multiline","dotAll","unicode","unicodeSets","sticky","$RegExp","RegExp","UNSUPPORTED_Y","re","lastIndex","MISSED_STICKY","regexpStickyHelpers","BROKEN_CARET","regexpUnsupportedDotAll","flags","regexpUnsupportedNcg","groups","stickyHelpers","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","nativeReplace","nativeExec","patchedExec","charAt","UPDATES_LAST_INDEX_WRONG","NPCG_INCLUDED","reCopy","group","str","raw","charsAdded","strCopy","Features","_classCallCheck","_createClass","canvas","getContext","Worker","msPointerEnabled","msMaxTouchPoints","pointerEnabled","maxTouchPoints","webaudio","htmlAudio","capabilities","basic","features","ui","sizes","touch","size","screen","width","height","xsmall","small","medium","large","xlarge","webgl","webAudio","charCodeAt","CONVERT_TO_STRING","pos","first","second","position","codeAt","STRING_ITERATOR","point","$filter","$find","FIND","SKIPS_HOLES","addToUnscopables$1","t","PluginManager","_ref","_ref$plugins","plugins","client","Bellhop","hidden","receive","hiddenSend","_this","preloads","_loop","preload","preloadFailed","warn","l","plugin","start","Container","_PluginManager","_inherits","_openRemote","_super","_createSuper","iframeOrSelector","_ref$context","context","HTMLIFrameElement","querySelector","loaded","loading","release","_context","onLoading","_assertThisInitialized","onLoadDone","onEndGame","onLocalError","initClient","setupPlugins","trigger","remove","reset","$event","setAttribute","on","connect","userPath","_ref2","_ref2$singlePlay","singlePlay","_ref2$playOptions","playOptions","playOptionsQueryString","encodeURIComponent","stringify","respond","_typeof","_internalOpen","_asyncToGenerator","_regeneratorRuntime","mark","_callee","api","_ref3","_ref3$query","query","_ref3$singlePlay","_ref3$playOptions","_args","prev","sent","success","_x","newContext","PageVisibility","onFocus","onBlur","_onFocus","_onBlur","enabled","_enabled","onToggle","enable","$includes","whitespaces","ltrim","rtrim","stringTrim","end","$trim","forcedStringTrimMethod","regExpFlags","RegExpPrototype","$toString","getRegExpFlags","R","TO_STRING","nativeToString","NOT_GENERIC","INCORRECT_NAME","SavedData","dbName","db","dbVersion","additions","deletions","indexedDB","onsuccess","onupgradeneeded","stores","createObjectStore","storeName","indexes","transaction","objectStore","createIndex","indexName","keyPath","deleteIndex","deleteObjectStore","deleteDatabase","IDBOpen","tx","oncomplete","updateRequest","put","_this2","delete","_this3","readRequest","_this4","count","getAllKeys","getAll","dBOpenRequest","localStorage","removeItem","sessionStorage","setItem","getItem","BasePlugin","_preload","sendAllProperties","_","prop","disableSend","warningText","ButtonPlugin","_BasePlugin","sendMutes","container","button","HTMLButtonElement","muted","log","changeMutedState","sendProperty","htmlButton","HTMLElement","MATCH","isRegExp","notARegExp","correctIsRegExpLogic","regexp","error1","error2","stringIndexOf","searchString","$getOwnPropertyNames","fin","windowNames","objectGetOwnPropertyNamesExternal","getWindowNames","arrayBufferNonExtensible","isExtensible","ARRAY_BUFFER_NON_EXTENSIBLE","$isExtensible","objectIsExtensible","freezing","preventExtensions","getOwnPropertyNamesExternalModule","FREEZING","REQUIRED","METADATA","setMetadata","objectID","weakData","meta","internalMetadataModule","splice","fastKey","getWeakData","onFreeze","inheritIfRequired","dummy","Wrapper","NewTarget","NewTargetPrototype","InternalMetadataModule","defineBuiltIns","internalStateGetterFor","collectionStrong","getConstructor","ADDER","last","define","previous","getEntry","removed","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","common","IS_WEAK","NativeConstructor","NativePrototype","exported","fixMethod","uncurriedNativeMethod","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","collection","nativeKeys","$map","TO_ENTRIES","$values","RadioGroup","selector","controlName","_ref$featureName","featureName","defaultValue","pluginName","radioElements","querySelectorAll","radioGroup","_possibleConstructorReturn","radio","checked","valuesArray","_toConsumableArray","Set","callBack","RadioGroupPlugin","cssSelector","supportedValues","initialValue","radioCount","selectors","_currentValue","radioGroups","setUpRadios","radioGroupsLength","hasOnly","hasDuplicateValues","property","newValue","thisNumberValue","require$$16","NUMBER","NativeNumber","NumberPrototype","toNumber","third","radix","maxCode","digits","code","NaN","parseInt","NumberWrapper","primValue","toNumeric","Number","Slider","slider","control","_ref$min","_ref$max","_ref$step","_ref$defaultValue","sliderValue","setUpSlider","read","Button","onClick","className","SliderPlugin","_ref$minValue","minValue","_ref$maxValue","maxValue","sliders","setUpSliders","slidersLength","displaySlider","currentValue","sliderRange","DEFAULT_CAPTIONS_STYLES","background","color","edge","font","align","DEFAULT_COLOR_STYLE","INVERTED_COLOR_STYLE","FONT_SIZE_VALUES","COLOR_VALUES","ALIGN_VALUES","CaptionsStylePlugin","_ButtonPlugin","fontSizeRadios","colorRadios","alignmentRadios","_ref$defaultFontSize","defaultFontSize","_ref$defaultColor","defaultColor","_ref$defaultAlignment","defaultAlignment","captionsStyles","captionStyleKey","fontSizeSelectors","colorSelectors","alignmentSelectors","setUpFontSizeRadios","setUpColorRadios","setUpAlignmentRadios","_captionsMuted","alignmentRadiosLength","fontSizeRadiosLength","colorRadiosLength","enableRadioEvents","onColorChange","onAlignmentChange","onFontSizeChange","_step","_iterator","_createForOfIteratorHelper","radios","s","displayRadios","setCaptionsStyles","styles","_step2","_iterator2","resetState","_this5","CaptionsTogglePlugin","captionsButtons","_captionsButtons","captionsButtonClick","captionsButtonLength","displayButton","captionsToggleKey","captionsMuted","setMuteProp","captionsButtonsLength","enableButton","_setMuteProp","HelpPlugin","helpButtons","_helpButtons","helpButtonClick","paused","_helpEnabled","onPause","helpButtonsLength","helpEnabled","getAttribute","hints","PausePlugin","pauseButton","manageOwnVisibility","_manageOwnVisibility","_appBlurred","_containerBlurred","_focusTimer","_isManualPause","_keepFocus","_paused","focusApp","manageFocus","onKeepFocus","onPauseToggle","pauseDisabled","_pauseButton","pageVisibility","onContainerFocus","onContainerBlur","pauseKey","hasDom","focus","blur","blurApp","clearTimeout","pause","disablePause","buttons","SoundPlugin","soundButtons","musicButtons","sfxButtons","voButtons","soundSliders","musicSliders","sfxSliders","voSliders","saved","soundMutedKey","_soundMuted","_musicMuted","_voMuted","_sfxMuted","_musicMutedByUser","_soundMutedByUser","_sfxMutedByUser","_voMutedByUser","soundMuteEnabled","musicMuteEnabled","sfxMuteEnabled","voMuteEnabled","soundVolume","musicVolume","sfxVolume","voVolume","soundVolumeKey","newSlider","musicVolumeKey","sfxVolumeKey","voVolumeKey","onSoundToggle","soundKey","onMusicToggle","onSFXToggle","onVOToggle","soundSlidersLength","musicSlidersLength","sfxSlidersLength","voSlidersLength","soundButtonsLength","musicButtonsLength","sfxButtonsLength","voButtonsLength","enableSliderEvents","onSoundVolumeChange","onMusicVolumeChange","onSFXVolumeChange","onVOVolumeChange","soundMuted","musicMuted","sfxMuted","voMuted","_checkSoundMute","element","soundMutedEnabled","sound","musicMutedEnabled","music","sfxMutedEnabled","sfx","voMutedEnabled","vo","soundVolumeEnabled","musicVolumeEnabled","sfxVolumeEnabled","voVolumeEnabled","musicMutedKey","sfxMutedKey","voMutedKey","_soundButton","_musicButton","_sfxButton","_voButton","SavedDataHandler","savedData","record","IDBAdd","IDBUpdate","IDBRemove","IDBRead","IDBReadAll","IDBGetVersion","IDBClose","IDBDeleteDB","UserDataPlugin","onUserDataRemove","onUserDataRead","onUserDataWrite","onIDBAdd","onIDBOpen","onIDBRead","onIDBReadAll","onIDBRemove","onIDBUpdate","onIDBClose","onIDBGetVersion","onIDBDeleteDB","savedDataHandler","_ref3$data","_ref4","_ref4$data","_ref4$data$dbVersion","_ref4$data$additions","_ref4$data$deletions","_ref5","_this6","_ref5$data","_ref6","_this7","_ref6$data","_ref7","_this8","_ref7$data","_ref8","_this9","_ref8$data","_ref9","_this10","_ref9$data","_ref10","_this11","_ref11","_this12","_ref12","_this13","_ref12$data","PointerSizePlugin","_SliderPlugin","pointerSliders","_ref$defaultPointerSi","defaultPointerSize","pointerSizeKey","onPointerSizeChange","ButtonSizePlugin","buttonSliders","_ref$defaultButtonSiz","defaultButtonSize","buttonSizeKey","onButtonSizeChange","ControlSensitivityPlugin","sensitivitySliders","_ref$defaultSensitivi","defaultSensitivity","controlSensitivityKey","onControlSensitivityChange","KeyboardMapPlugin","keyContainers","_ref$customClassName","customClassName","bindKey","onKeyButtonClick","keyBindings","activekeyButton","sendAfterFetch","canEmit","keyContainersLength","textContent","actionName","preventDefault","currentKey","keyBindingKey","keyBinding","defaultKey","label","htmlFor","LayersPlugin","layersSliders","layersSliderKey","onLayerValueChange","SUPPORTED_POSITIONS","HUDPlugin","_RadioGroupPlugin","hudSelectorRadios","hudPositionKey","positions","onHUDSelect","hudPosition","COLOR_BLIND_TYPES","ColorVisionPlugin","colorVisionRadios","colorVisionKey","colors","colorVision","colorDropdownsLength","HitAreaScalePlugin","hitAreaScaleSliders","_ref$defaultHitAreaSc","defaultHitAreaScale","hitAreaScaleKey","onHitAreaScaleChange","DragThresholdScalePlugin","dragThresholdScaleSliders","_ref$defaultDragThres","defaultDragThresholdScale","dragThresholdScaleKey","onDragThresholdScaleChange","HealthPlugin","healthSliders","_ref$defaultHealth","defaultHealth","healthKey","onHealthChange","ObjectCountPlugin","objectCountSliders","_ref$defaultObjectCou","defaultObjectCount","objectCountKey","onObjectCountChange","CompletionPercentagePlugin","completionPercentageSliders","_ref$defaultCompletio","defaultCompletionPercentage","completionPercentageKey","onCompletionPercentageChange","SpeedScalePlugin","speedScaleSliders","_ref$defaultSpeedScal","defaultSpeedScale","speedScaleKey","onSpeedScaleChange","TimersScalePlugin","timersScaleSliders","_ref$defaultTimersSca","defaultTimersScale","timersScaleKey","onTimersScaleChange","InputCountPlugin","inputCountSliders","_ref$defaultInputCoun","defaultInputCount","inputCountKey","onInputCountChange","FullScreenPlugin","buttonSelector","fullscreenKey","_toggleButtons","iFrame","toggleButton","toggleFullScreen","fullscreenElement","exitFullscreen","requestFullscreen","webkitIsFullscreen","mozFullScreen"],"mappings":"gQAAA,IAAIA,EACqB,oBAAfC,YAA8BA,YACrB,oBAATC,MAAwBA,WACb,IAAXF,GAA0BA,EAEhCG,EACY,oBAAqBH,EADjCG,EAEQ,WAAYH,GAAU,aAAcI,OAF5CD,EAIA,eAAgBH,GAChB,SAAUA,GACT,WACC,IAEE,OADA,IAAIK,MACG,CACR,CAAC,MAAOC,GACP,OAAO,CACT,CACF,CAPC,GANDH,EAcQ,aAAcH,EAdtBG,EAeW,gBAAiBH,EAOhC,GAAIG,EACF,IAAII,EAAc,CAChB,qBACA,sBACA,6BACA,sBACA,uBACA,sBACA,uBACA,wBACA,yBAGEC,EACFC,YAAYC,QACZ,SAASC,GACP,OAAOA,GAAOJ,EAAYK,QAAQC,OAAOC,UAAUC,SAASC,KAAKL,KAAS,GAIhF,SAASM,EAAcC,GAIrB,GAHoB,iBAATA,IACTA,EAAOC,OAAOD,IAEZ,6BAA6BE,KAAKF,IAAkB,KAATA,EAC7C,MAAM,IAAIG,UAAU,4CAA8CH,EAAO,KAE3E,OAAOA,EAAKI,aACd,CAEA,SAASC,EAAeC,GAItB,MAHqB,iBAAVA,IACTA,EAAQL,OAAOK,IAEVA,CACT,CAGA,SAASC,EAAYC,GACnB,IAAIC,EAAW,CACbC,KAAM,WACJ,IAAIJ,EAAQE,EAAMG,QAClB,MAAO,CAACC,UAAgBC,IAAVP,EAAqBA,MAAOA,EAC5C,GASF,OANIrB,IACFwB,EAASvB,OAAOuB,UAAY,WAC1B,OAAOA,IAIJA,CACT,CAEO,SAASK,EAAQC,GACtBC,KAAKC,IAAM,GAEPF,aAAmBD,EACrBC,EAAQG,SAAQ,SAASZ,EAAON,GAC9BgB,KAAKG,OAAOnB,EAAMM,EACnB,GAAEU,MACMI,MAAMC,QAAQN,GACvBA,EAAQG,SAAQ,SAASI,GACvBN,KAAKG,OAAOG,EAAO,GAAIA,EAAO,GAC/B,GAAEN,MACMD,GACTpB,OAAO4B,oBAAoBR,GAASG,SAAQ,SAASlB,GACnDgB,KAAKG,OAAOnB,EAAMe,EAAQf,GAC3B,GAAEgB,KAEP,CA8DA,SAASQ,EAASC,GAChB,GAAIA,EAAKC,SACP,OAAOC,QAAQC,OAAO,IAAIzB,UAAU,iBAEtCsB,EAAKC,UAAW,CAClB,CAEA,SAASG,EAAgBC,GACvB,OAAO,IAAIH,SAAQ,SAASI,EAASH,GACnCE,EAAOE,OAAS,WACdD,EAAQD,EAAOG,SAEjBH,EAAOI,QAAU,WACfN,EAAOE,EAAOK,OAElB,GACF,CAEA,SAASC,EAAsBC,GAC7B,IAAIP,EAAS,IAAIQ,WACbC,EAAUV,EAAgBC,GAE9B,OADAA,EAAOU,kBAAkBH,GAClBE,CACT,CAmBA,SAASE,EAAYC,GACnB,GAAIA,EAAIC,MACN,OAAOD,EAAIC,MAAM,GAEjB,IAAIC,EAAO,IAAIC,WAAWH,EAAII,YAE9B,OADAF,EAAKG,IAAI,IAAIF,WAAWH,IACjBE,EAAKI,MAEhB,CAEA,SAASC,IAkHP,OAjHAjC,KAAKU,UAAW,EAEhBV,KAAKkC,UAAY,SAASzB,GAhM5B,IAAoBhC,EA2MhBuB,KAAKU,SAAWV,KAAKU,SACrBV,KAAKmC,UAAY1B,EACZA,EAEsB,iBAATA,EAChBT,KAAKoC,UAAY3B,EACRxC,GAAgBE,KAAKS,UAAUyD,cAAc5B,GACtDT,KAAKsC,UAAY7B,EACRxC,GAAoBsE,SAAS3D,UAAUyD,cAAc5B,GAC9DT,KAAKwC,cAAgB/B,EACZxC,GAAwBwE,gBAAgB7D,UAAUyD,cAAc5B,GACzET,KAAKoC,UAAY3B,EAAK5B,WACbZ,GAAuBA,KAvNlBQ,EAuN6CgC,IAtNjDiC,SAAS9D,UAAUyD,cAAc5D,KAuN3CuB,KAAK2C,iBAAmBlB,EAAYhB,EAAKuB,QAEzChC,KAAKmC,UAAY,IAAIhE,KAAK,CAAC6B,KAAK2C,oBACvB1E,IAAwBM,YAAYK,UAAUyD,cAAc5B,IAASnC,EAAkBmC,IAChGT,KAAK2C,iBAAmBlB,EAAYhB,GAEpCT,KAAKoC,UAAY3B,EAAO9B,OAAOC,UAAUC,SAASC,KAAK2B,GAhBvDT,KAAKoC,UAAY,GAmBdpC,KAAKD,QAAQ6C,IAAI,kBACA,iBAATnC,EACTT,KAAKD,QAAQgC,IAAI,eAAgB,4BACxB/B,KAAKsC,WAAatC,KAAKsC,UAAUO,KAC1C7C,KAAKD,QAAQgC,IAAI,eAAgB/B,KAAKsC,UAAUO,MACvC5E,GAAwBwE,gBAAgB7D,UAAUyD,cAAc5B,IACzET,KAAKD,QAAQgC,IAAI,eAAgB,qDAKnC9D,IACF+B,KAAKqB,KAAO,WACV,IAAIyB,EAAWtC,EAASR,MACxB,GAAI8C,EACF,OAAOA,EAGT,GAAI9C,KAAKsC,UACP,OAAO3B,QAAQI,QAAQf,KAAKsC,WACvB,GAAItC,KAAK2C,iBACd,OAAOhC,QAAQI,QAAQ,IAAI5C,KAAK,CAAC6B,KAAK2C,oBACjC,GAAI3C,KAAKwC,cACd,MAAM,IAAIO,MAAM,wCAEhB,OAAOpC,QAAQI,QAAQ,IAAI5C,KAAK,CAAC6B,KAAKoC,cAI1CpC,KAAKgD,YAAc,WACjB,GAAIhD,KAAK2C,iBAAkB,CACzB,IAAIM,EAAazC,EAASR,MAC1B,OAAIiD,IAGA1E,YAAYC,OAAOwB,KAAK2C,kBACnBhC,QAAQI,QACbf,KAAK2C,iBAAiBX,OAAOL,MAC3B3B,KAAK2C,iBAAiBO,WACtBlD,KAAK2C,iBAAiBO,WAAalD,KAAK2C,iBAAiBb,aAItDnB,QAAQI,QAAQf,KAAK2C,kBAEhC,CACE,OAAO3C,KAAKqB,OAAO8B,KAAK/B,KAK9BpB,KAAKoD,KAAO,WACV,IAAIN,EAAWtC,EAASR,MACxB,GAAI8C,EACF,OAAOA,EAGT,GAAI9C,KAAKsC,UACP,OAzHN,SAAwBjB,GACtB,IAAIP,EAAS,IAAIQ,WACbC,EAAUV,EAAgBC,GAE9B,OADAA,EAAOuC,WAAWhC,GACXE,CACT,CAoHa+B,CAAetD,KAAKsC,WACtB,GAAItC,KAAK2C,iBACd,OAAOhC,QAAQI,QApHrB,SAA+BW,GAI7B,IAHA,IAAIE,EAAO,IAAIC,WAAWH,GACtB6B,EAAQ,IAAInD,MAAMwB,EAAK4B,QAElBC,EAAI,EAAGA,EAAI7B,EAAK4B,OAAQC,IAC/BF,EAAME,GAAKxE,OAAOyE,aAAa9B,EAAK6B,IAEtC,OAAOF,EAAMI,KAAK,GACpB,CA4G6BC,CAAsB5D,KAAK2C,mBAC7C,GAAI3C,KAAKwC,cACd,MAAM,IAAIO,MAAM,wCAEhB,OAAOpC,QAAQI,QAAQf,KAAKoC,YAI5BnE,IACF+B,KAAK6D,SAAW,WACd,OAAO7D,KAAKoD,OAAOD,KAAKW,KAI5B9D,KAAK+D,KAAO,WACV,OAAO/D,KAAKoD,OAAOD,KAAKa,KAAKC,QAGxBjE,IACT,CAnOAF,EAAQlB,UAAUuB,OAAS,SAASnB,EAAMM,GACxCN,EAAOD,EAAcC,GACrBM,EAAQD,EAAeC,GACvB,IAAI4E,EAAWlE,KAAKC,IAAIjB,GACxBgB,KAAKC,IAAIjB,GAAQkF,EAAWA,EAAW,KAAO5E,EAAQA,CACxD,EAEAQ,EAAQlB,UAAkB,OAAI,SAASI,UAC9BgB,KAAKC,IAAIlB,EAAcC,GAChC,EAEAc,EAAQlB,UAAUgE,IAAM,SAAS5D,GAE/B,OADAA,EAAOD,EAAcC,GACdgB,KAAKmE,IAAInF,GAAQgB,KAAKC,IAAIjB,GAAQ,IAC3C,EAEAc,EAAQlB,UAAUuF,IAAM,SAASnF,GAC/B,OAAOgB,KAAKC,IAAImE,eAAerF,EAAcC,GAC/C,EAEAc,EAAQlB,UAAUmD,IAAM,SAAS/C,EAAMM,GACrCU,KAAKC,IAAIlB,EAAcC,IAASK,EAAeC,EACjD,EAEAQ,EAAQlB,UAAUsB,QAAU,SAASmE,EAAUC,GAC7C,IAAK,IAAItF,KAAQgB,KAAKC,IAChBD,KAAKC,IAAImE,eAAepF,IAC1BqF,EAASvF,KAAKwF,EAAStE,KAAKC,IAAIjB,GAAOA,EAAMgB,KAGnD,EAEAF,EAAQlB,UAAU2F,KAAO,WACvB,IAAI/E,EAAQ,GAIZ,OAHAQ,KAAKE,SAAQ,SAASZ,EAAON,GAC3BQ,EAAMgF,KAAKxF,EACb,IACOO,EAAYC,EACrB,EAEAM,EAAQlB,UAAU6F,OAAS,WACzB,IAAIjF,EAAQ,GAIZ,OAHAQ,KAAKE,SAAQ,SAASZ,GACpBE,EAAMgF,KAAKlF,EACb,IACOC,EAAYC,EACrB,EAEAM,EAAQlB,UAAU8F,QAAU,WAC1B,IAAIlF,EAAQ,GAIZ,OAHAQ,KAAKE,SAAQ,SAASZ,EAAON,GAC3BQ,EAAMgF,KAAK,CAACxF,EAAMM,GACpB,IACOC,EAAYC,EACrB,EAEIvB,IACF6B,EAAQlB,UAAUV,OAAOuB,UAAYK,EAAQlB,UAAU8F,SA6KzD,IAAIC,EAAU,CAAC,SAAU,MAAO,OAAQ,UAAW,OAAQ,OAOpD,SAASC,EAAQC,EAAOC,GAC7B,KAAM9E,gBAAgB4E,GACpB,MAAM,IAAIzF,UAAU,8FAItB,IAAIsB,GADJqE,EAAUA,GAAW,IACFrE,KAEnB,GAAIoE,aAAiBD,EAAS,CAC5B,GAAIC,EAAMnE,SACR,MAAM,IAAIvB,UAAU,gBAEtBa,KAAK+E,IAAMF,EAAME,IACjB/E,KAAKgF,YAAcH,EAAMG,YACpBF,EAAQ/E,UACXC,KAAKD,QAAU,IAAID,EAAQ+E,EAAM9E,UAEnCC,KAAKiF,OAASJ,EAAMI,OACpBjF,KAAKkF,KAAOL,EAAMK,KAClBlF,KAAKmF,OAASN,EAAMM,OACf1E,GAA2B,MAAnBoE,EAAM1C,YACjB1B,EAAOoE,EAAM1C,UACb0C,EAAMnE,UAAW,EAErB,MACEV,KAAK+E,IAAM9F,OAAO4F,GAYpB,GATA7E,KAAKgF,YAAcF,EAAQE,aAAehF,KAAKgF,aAAe,eAC1DF,EAAQ/E,SAAYC,KAAKD,UAC3BC,KAAKD,QAAU,IAAID,EAAQgF,EAAQ/E,UAErCC,KAAKiF,OArCP,SAAyBA,GACvB,IAAIG,EAAUH,EAAOI,cACrB,OAAOV,EAAQjG,QAAQ0G,IAAY,EAAIA,EAAUH,CACnD,CAkCgBK,CAAgBR,EAAQG,QAAUjF,KAAKiF,QAAU,OAC/DjF,KAAKkF,KAAOJ,EAAQI,MAAQlF,KAAKkF,MAAQ,KACzClF,KAAKmF,OAASL,EAAQK,QAAUnF,KAAKmF,OACrCnF,KAAKuF,SAAW,MAEK,QAAhBvF,KAAKiF,QAAoC,SAAhBjF,KAAKiF,SAAsBxE,EACvD,MAAM,IAAItB,UAAU,6CAItB,GAFAa,KAAKkC,UAAUzB,KAEK,QAAhBT,KAAKiF,QAAoC,SAAhBjF,KAAKiF,QACV,aAAlBH,EAAQU,OAA0C,aAAlBV,EAAQU,OAAsB,CAEhE,IAAIC,EAAgB,gBACpB,GAAIA,EAAcvG,KAAKc,KAAK+E,KAE1B/E,KAAK+E,IAAM/E,KAAK+E,IAAIW,QAAQD,EAAe,QAAS,IAAIE,MAAOC,eAC1D,CAGL5F,KAAK+E,MADe,KACO7F,KAAKc,KAAK+E,KAAO,IAAM,KAAO,MAAO,IAAIY,MAAOC,SAC7E,CACF,CAEJ,CAMA,SAAS9B,EAAOrD,GACd,IAAIoF,EAAO,IAAItD,SAYf,OAXA9B,EACGqF,OACAC,MAAM,KACN7F,SAAQ,SAAS8F,GAChB,GAAIA,EAAO,CACT,IAAID,EAAQC,EAAMD,MAAM,KACpB/G,EAAO+G,EAAMpG,QAAQ+F,QAAQ,MAAO,KACpCpG,EAAQyG,EAAMpC,KAAK,KAAK+B,QAAQ,MAAO,KAC3CG,EAAK1F,OAAO8F,mBAAmBjH,GAAOiH,mBAAmB3G,GAC3D,CACF,IACKuG,CACT,CA4BO,SAASK,EAASC,EAAUrB,GACjC,KAAM9E,gBAAgBkG,GACpB,MAAM,IAAI/G,UAAU,8FAEjB2F,IACHA,EAAU,CAAA,GAGZ9E,KAAK6C,KAAO,UACZ7C,KAAKoG,YAA4BvG,IAAnBiF,EAAQsB,OAAuB,IAAMtB,EAAQsB,OAC3DpG,KAAKqG,GAAKrG,KAAKoG,QAAU,KAAOpG,KAAKoG,OAAS,IAC9CpG,KAAKsG,gBAAoCzG,IAAvBiF,EAAQwB,WAA2B,GAAK,GAAKxB,EAAQwB,WACvEtG,KAAKD,QAAU,IAAID,EAAQgF,EAAQ/E,SACnCC,KAAK+E,IAAMD,EAAQC,KAAO,GAC1B/E,KAAKkC,UAAUiE,EACjB,CA7DAvB,EAAQhG,UAAU2H,MAAQ,WACxB,OAAO,IAAI3B,EAAQ5E,KAAM,CAACS,KAAMT,KAAKmC,WACvC,EA0CAF,EAAKnD,KAAK8F,EAAQhG,WAmBlBqD,EAAKnD,KAAKoH,EAAStH,WAEnBsH,EAAStH,UAAU2H,MAAQ,WACzB,OAAO,IAAIL,EAASlG,KAAKmC,UAAW,CAClCiE,OAAQpG,KAAKoG,OACbE,WAAYtG,KAAKsG,WACjBvG,QAAS,IAAID,EAAQE,KAAKD,SAC1BgF,IAAK/E,KAAK+E,KAEd,EAEAmB,EAAS/E,MAAQ,WACf,IAAIqF,EAAW,IAAIN,EAAS,KAAM,CAACE,OAAQ,EAAGE,WAAY,KAE1D,OADAE,EAAS3D,KAAO,QACT2D,CACT,EAEA,IAAIC,EAAmB,CAAC,IAAK,IAAK,IAAK,IAAK,KAE5CP,EAASQ,SAAW,SAAS3B,EAAKqB,GAChC,IAA0C,IAAtCK,EAAiB/H,QAAQ0H,GAC3B,MAAM,IAAIO,WAAW,uBAGvB,OAAO,IAAIT,EAAS,KAAM,CAACE,OAAQA,EAAQrG,QAAS,CAAC6G,SAAU7B,IACjE,EAEO,IAAI8B,EAAe/I,EAAO+I,aACjC,IACE,IAAIA,CACN,CAAE,MAAOC,IACPD,EAAe,SAASE,EAAS/H,GAC/BgB,KAAK+G,QAAUA,EACf/G,KAAKhB,KAAOA,EACZ,IAAImC,EAAQ4B,MAAMgE,GAClB/G,KAAKgH,MAAQ7F,EAAM6F,QAERpI,UAAYD,OAAOsI,OAAOlE,MAAMnE,WAC7CiI,EAAajI,UAAUsI,YAAcL,CACvC,CAEO,SAASM,EAAMtC,EAAOuC,GAC3B,OAAO,IAAIzG,SAAQ,SAASI,EAASH,GACnC,IAAIyG,EAAU,IAAIzC,EAAQC,EAAOuC,GAEjC,GAAIC,EAAQlC,QAAUkC,EAAQlC,OAAOmC,QACnC,OAAO1G,EAAO,IAAIiG,EAAa,UAAW,eAG5C,IAAIU,EAAM,IAAIC,eAEd,SAASC,IACPF,EAAIG,OACN,CAEAH,EAAIvG,OAAS,WACX,IAnGgB2G,EAChB5H,EAkGI+E,EAAU,CACZsB,OAAQmB,EAAInB,OACZE,WAAYiB,EAAIjB,WAChBvG,SAtGc4H,EAsGQJ,EAAIK,yBAA2B,GArGvD7H,EAAU,IAAID,EAGQ6H,EAAWjC,QAAQ,eAAgB,KAK1DK,MAAM,MACN9F,KAAI,SAASK,GACZ,OAAgC,IAAzBA,EAAO5B,QAAQ,MAAc4B,EAAOuH,OAAO,EAAGvH,EAAOkD,QAAUlD,CACxE,IACCJ,SAAQ,SAAS4H,GAChB,IAAIC,EAAQD,EAAK/B,MAAM,KACnBiC,EAAMD,EAAMpI,QAAQmG,OACxB,GAAIkC,EAAK,CACP,IAAI1I,EAAQyI,EAAMpE,KAAK,KAAKmC,OAC5B/F,EAAQI,OAAO6H,EAAK1I,EACtB,CACF,IACKS,IAmFH+E,EAAQC,IAAM,gBAAiBwC,EAAMA,EAAIU,YAAcnD,EAAQ/E,QAAQ6C,IAAI,iBAC3E,IAAInC,EAAO,aAAc8G,EAAMA,EAAIf,SAAWe,EAAIW,aAClDC,YAAW,WACTpH,EAAQ,IAAImF,EAASzF,EAAMqE,GAC5B,GAAE,IAGLyC,EAAIrG,QAAU,WACZiH,YAAW,WACTvH,EAAO,IAAIzB,UAAU,0BACtB,GAAE,IAGLoI,EAAIa,UAAY,WACdD,YAAW,WACTvH,EAAO,IAAIzB,UAAU,0BACtB,GAAE,IAGLoI,EAAIc,QAAU,WACZF,YAAW,WACTvH,EAAO,IAAIiG,EAAa,UAAW,cACpC,GAAE,IAWLU,EAAIe,KAAKjB,EAAQpC,OARjB,SAAgBF,GACd,IACE,MAAe,KAARA,GAAcjH,EAAO8I,SAAS2B,KAAOzK,EAAO8I,SAAS2B,KAAOxD,CACpE,CAAC,MAAO3G,GACP,OAAO2G,CACT,CACF,CAEyByD,CAAOnB,EAAQtC,MAAM,GAElB,YAAxBsC,EAAQrC,YACVuC,EAAIkB,iBAAkB,EACW,SAAxBpB,EAAQrC,cACjBuC,EAAIkB,iBAAkB,GAGpB,iBAAkBlB,IAChBtJ,EACFsJ,EAAImB,aAAe,OAEnBzK,GACAoJ,EAAQtH,QAAQ6C,IAAI,kBACyD,IAA7EyE,EAAQtH,QAAQ6C,IAAI,gBAAgBlE,QAAQ,8BAE5C6I,EAAImB,aAAe,iBAInBtB,GAAgC,iBAAjBA,EAAKrH,SAA0BqH,EAAKrH,mBAAmBD,EAKxEuH,EAAQtH,QAAQG,SAAQ,SAASZ,EAAON,GACtCuI,EAAIoB,iBAAiB3J,EAAMM,EAC7B,IANAX,OAAO4B,oBAAoB6G,EAAKrH,SAASG,SAAQ,SAASlB,GACxDuI,EAAIoB,iBAAiB3J,EAAMK,EAAe+H,EAAKrH,QAAQf,IACzD,IAOEqI,EAAQlC,SACVkC,EAAQlC,OAAOyD,iBAAiB,QAASnB,GAEzCF,EAAIsB,mBAAqB,WAEA,IAAnBtB,EAAIuB,YACNzB,EAAQlC,OAAO4D,oBAAoB,QAAStB,KAKlDF,EAAIyB,UAAkC,IAAtB3B,EAAQlF,UAA4B,KAAOkF,EAAQlF,UACrE,GACF,CAEAgF,EAAM8B,UAAW,EAEZnL,EAAOqJ,QACVrJ,EAAOqJ,MAAQA,EACfrJ,EAAOgC,QAAUA,EACjBhC,EAAO8G,QAAUA,EACjB9G,EAAOoI,SAAWA,wJC3lBhBgD,EAAQ,SAAUC,GACpB,OAAOA,GAAMA,EAAGC,MAAQA,MAAQD,CAClC,EAGArL,EAEEoL,EAA2B,iBAAdnL,YAA0BA,aACvCmL,EAAuB,iBAAVG,QAAsBA,SAEnCH,EAAqB,iBAARlL,MAAoBA,OACjCkL,EAAuB,iBAAVpL,GAAsBA,IAElC,WAAc,OAAOkC,IAAO,CAA5B,IAAmCsJ,SAAS,cAATA,GCXtCC,EAAiB,CACfC,YAAa,EACbC,oBAAqB,EACrBC,aAAc,EACdC,eAAgB,EAChBC,YAAa,EACbC,cAAe,EACfC,aAAc,EACdC,qBAAsB,EACtBC,SAAU,EACVC,kBAAmB,EACnBC,eAAgB,EAChBC,gBAAiB,EACjBC,kBAAmB,EACnBC,UAAW,EACXC,cAAe,EACfC,aAAc,EACdC,SAAU,EACVC,iBAAkB,EAClBC,OAAQ,EACRC,YAAa,EACbC,cAAe,EACfC,cAAe,EACfC,eAAgB,EAChBC,aAAc,EACdC,cAAe,EACfC,iBAAkB,EAClBC,iBAAkB,EAClBC,eAAgB,EAChBC,iBAAkB,EAClBC,cAAe,EACfC,UAAW,GCjCTC,EAAiC,iBAAZC,UAAwBA,SAASC,IAM1DC,EAAiB,CACfD,IAAKF,EACLI,gBAJqC,IAAfJ,QAA8C1L,IAAhB0L,GCFlDA,EAFeK,EAEYH,IAI/BI,EANmBD,EAMWD,WAAa,SAAUG,GACnD,MAA0B,mBAAZA,GAA0BA,IAAaP,CACvD,EAAI,SAAUO,GACZ,MAA0B,mBAAZA,CAChB,ECVID,EAAaD,EAGbL,EAFeQ,EAEYN,IAE/BO,EAJmBD,EAIWJ,WAAa,SAAUxC,GACnD,MAAoB,iBAANA,EAAwB,OAAPA,EAAc0C,EAAW1C,IAAOA,IAAOoC,CACxE,EAAI,SAAUpC,GACZ,MAAoB,iBAANA,EAAwB,OAAPA,EAAc0C,EAAW1C,EAC1D,ECRI6C,EAAWD,EAEXP,EAHSI,EAGSJ,SAElBS,EAASD,EAASR,IAAaQ,EAASR,EAASU,eAErDC,EAAiB,SAAUhD,GACzB,OAAO8C,EAAST,EAASU,cAAc/C,GAAM,CAAA,CAC/C,ECNIiD,EAFwBR,EAEU,QAAQQ,UAC1CC,EAAwBD,GAAaA,EAAUlF,aAAekF,EAAUlF,YAAYtI,UAExF0N,EAAiBD,IAA0B1N,OAAOC,eAAYiB,EAAYwM,ECN1EE,EAAiB,SAAUC,GACzB,IACE,QAASA,GACV,CAAC,MAAOrL,GACP,OAAO,CACR,CACH,ECJAsL,GAFYb,GAEY,WAEtB,IAAI1M,EAAQ,aAA6BwN,OAEzC,MAAsB,mBAARxN,GAAsBA,EAAKkF,eAAe,YAC1D,ICPIuI,EAAcf,EAEdgB,EAAoBtD,SAAS1K,UAC7BE,EAAO8N,EAAkB9N,KACzB+N,EAAsBF,GAAeC,EAAkBF,KAAKA,KAAK5N,EAAMA,GAE3EgO,EAAiBH,EAAcE,EAAsB,SAAUE,GAC7D,OAAO,WACL,OAAOjO,EAAKkO,MAAMD,EAAIE,WAE1B,ECVIC,EAActB,EAEd/M,EAAWqO,EAAY,GAAGrO,UAC1BsO,EAAcD,EAAY,GAAGvL,OAEjCyL,EAAiB,SAAUjE,GACzB,OAAOgE,EAAYtO,EAASsK,GAAK,GAAI,EACvC,ECPIiE,GAAaxB,EACbsB,GAAcnB,EAElBsB,GAAiB,SAAUN,GAIzB,GAAuB,aAAnBK,GAAWL,GAAoB,OAAOG,GAAYH,EACxD,ECRIO,GAAUrO,OAEdsO,GAAiB,SAAUzB,GACzB,IACE,OAAOwB,GAAQxB,EAChB,CAAC,MAAO3K,GACP,MAAO,QACR,CACH,ECRI0K,GAAaD,EACb2B,GAAcxB,GAEdyB,GAAarO,UAGjBsO,GAAiB,SAAU3B,GACzB,GAAID,GAAWC,GAAW,OAAOA,EACjC,MAAM0B,GAAWD,GAAYzB,GAAY,qBAC3C,ECRI2B,GAAY1B,GACZY,GAAce,EAEdhB,GAJcd,MAIiBc,MAGnCiB,GAAiB,SAAUZ,EAAIa,GAE7B,OADAH,GAAUV,QACMlN,IAAT+N,EAAqBb,EAAKJ,GAAcD,GAAKK,EAAIa,GAAQ,WAC9D,OAAOb,EAAGC,MAAMY,EAAMX,WAE1B,ECXIV,GAAQR,EACR8B,GAAUH,EAEVI,GAAUnP,OACVoH,GALc6F,EAKM,GAAG7F,OAG3BgI,GAAiBxB,IAAM,WAGrB,OAAQuB,GAAQ,KAAKE,qBAAqB,EAC5C,IAAK,SAAU7E,GACb,MAAsB,UAAf0E,GAAQ1E,GAAkBpD,GAAMoD,EAAI,IAAM2E,GAAQ3E,EAC3D,EAAI2E,GCZJG,GAAiB,SAAU9E,GACzB,OAAOA,OACT,ECJI8E,GAAoBrC,GAEpB4B,GAAarO,UAIjB+O,GAAiB,SAAU/E,GACzB,GAAI8E,GAAkB9E,GAAK,MAAMqE,GAAW,wBAA0BrE,GACtE,OAAOA,CACT,ECTI+E,GAAyBtC,GAEzBkC,GAAUnP,OAIdwP,GAAiB,SAAUrC,GACzB,OAAOgC,GAAQI,GAAuBpC,GACxC,ECRIsC,GAAOhF,KAAKgF,KACZC,GAAQjF,KAAKiF,MAKjBC,GAAiBlF,KAAKmF,OAAS,SAAeC,GAC5C,IAAIC,GAAKD,EACT,OAAQC,EAAI,EAAIJ,GAAQD,IAAMK,EAChC,ECTIF,GAAQ3C,GAIZ8C,GAAiB,SAAU5C,GACzB,IAAI6C,GAAU7C,EAEd,OAAO6C,GAAWA,GAAqB,IAAXA,EAAe,EAAIJ,GAAMI,EACvD,ECRID,GAAsB9C,GAEtBgD,GAAMxF,KAAKwF,ICFXC,GDMa,SAAU/C,GACzB,OAAOA,EAAW,EAAI8C,GAAIF,GAAoB5C,GAAW,kBAAoB,CAC/E,ECJAgD,GAAiB,SAAUrQ,GACzB,OAAOoQ,GAASpQ,EAAI+E,OACtB,ECNIqK,GAAUjC,EAKdvL,GAAiBD,MAAMC,SAAW,SAAiByL,GACjD,MAA4B,SAArB+B,GAAQ/B,EACjB,kBCPIhO,GAAS8N,EAGTmD,GAAiBpQ,OAAOoQ,eAE5BC,GAAiB,SAAUhH,EAAK1I,GAC9B,IACEyP,GAAejR,GAAQkK,EAAK,CAAE1I,MAAOA,EAAO2P,cAAc,EAAMC,UAAU,GAC3E,CAAC,MAAO/N,GACPrD,GAAOkK,GAAO1I,CACf,CAAC,OAAOA,CACX,ECVI0P,GAAuBjD,GAEvBoD,GAAS,qBAGbC,GANaxD,EAIMuD,KAAWH,GAAqBG,GAAQ,CAAA,GCHvDE,GAAQtD,IAEXuD,WAAiB,SAAUtH,EAAK1I,GAC/B,OAAO+P,GAAMrH,KAASqH,GAAMrH,QAAiBnI,IAAVP,EAAsBA,EAAQ,CAAA,EACnE,GAAG,WAAY,IAAIkF,KAAK,CACtB+K,QAAS,SACTrK,KAAyB,SACzBsK,UAAW,4CACXC,QAAS,2DACTC,OAAQ,4CCHNC,GAAOJ,iBCNPpB,GAAWpC,GAEX3H,GAHcwH,EAGe,GAAGxH,gBAKpCwL,GAAiBjR,OAAOkR,QAAU,SAAgB1G,EAAInB,GACpD,OAAO5D,GAAe+J,GAAShF,GAAKnB,EACtC,ECVIkF,GAActB,EAEdkE,GAAK,EACLC,GAAU3G,KAAK4G,SACfnR,GAAWqO,GAAY,GAAIrO,UAE/BoR,GAAiB,SAAUjI,GACzB,MAAO,gBAAqBnI,IAARmI,EAAoB,GAAKA,GAAO,KAAOnJ,KAAWiR,GAAKC,GAAS,GACtF,ECRAG,GAAqC,oBAAbC,WAA4BlR,OAAOkR,UAAUC,YAAc,GHA/EtS,GAAS8N,EACTwE,GAAYrE,GAEZsE,GAAUvS,GAAOuS,QACjBC,GAAOxS,GAAOwS,KACdC,GAAWF,IAAWA,GAAQE,UAAYD,IAAQA,GAAKf,QACvDiB,GAAKD,IAAYA,GAASC,GAG1BA,KAIFjB,IAHAI,GAAQa,GAAGzK,MAAM,MAGD,GAAK,GAAK4J,GAAM,GAAK,EAAI,IAAMA,GAAM,GAAKA,GAAM,MAK7DJ,IAAWa,OACdT,GAAQS,GAAUT,MAAM,iBACVA,GAAM,IAAM,MACxBA,GAAQS,GAAUT,MAAM,oBACbJ,IAAWI,GAAM,IAIhC,IAAAc,GAAiBlB,GIzBbmB,GAAa9E,GACbW,GAAQR,EAGZ4E,KAAmBhS,OAAOiS,wBAA0BrE,IAAM,WACxD,IAAIsE,EAAS3S,SAGb,OAAQe,OAAO4R,MAAalS,OAAOkS,aAAmB3S,UAEnDA,OAAO4S,MAAQJ,IAAcA,GAAa,EAC/C,ICTAK,GAFoBnF,KAGd1N,OAAO4S,MACkB,iBAAnB5S,OAAOuB,SCJfuR,GAASjF,GACT8D,GAASnC,GACTuC,GAAMgB,GACNC,GAAgBC,GAChBC,GAAoBC,GAEpBnT,GAPS0N,EAOO1N,OAChBoT,GAAwBN,GAAO,OAC/BO,GAAwBH,GAAoBlT,GAAY,KAAKA,GAASA,IAAUA,GAAOsT,eAAiBvB,GAE5GwB,GAAiB,SAAUzS,GAKvB,OAJG6Q,GAAOyB,GAAuBtS,KACjCsS,GAAsBtS,GAAQkS,IAAiBrB,GAAO3R,GAAQc,GAC1Dd,GAAOc,GACPuS,GAAsB,UAAYvS,IAC/BsS,GAAsBtS,EACjC,ECdIE,GAAO,CAAA,EAEXA,GALsB0M,GAEc,gBAGd,IAEtB,IAAA8F,GAAkC,eAAjBzS,OAAOC,ICPpByS,GAAwB/F,GACxBC,GAAaE,EACbqB,GAAaM,EAGbkE,GAFkBX,GAEc,eAChCnD,GAAUnP,OAGVkT,GAAuE,aAAnDzE,GAAW,WAAc,OAAOH,SAAY,CAAjC,IAUnCY,GAAiB8D,GAAwBvE,GAAa,SAAUjE,GAC9D,IAAI2I,EAAGC,EAAK9Q,EACZ,YAAcpB,IAAPsJ,EAAmB,YAAqB,OAAPA,EAAc,OAEO,iBAAjD4I,EAXD,SAAU5I,EAAInB,GACzB,IACE,OAAOmB,EAAGnB,EACd,CAAI,MAAO7G,GAAsB,CACjC,CAOoB6Q,CAAOF,EAAIhE,GAAQ3E,GAAKyI,KAA8BG,EAEpEF,GAAoBzE,GAAW0E,GAEH,WAA3B7Q,EAASmM,GAAW0E,KAAmBjG,GAAWiG,EAAEG,QAAU,YAAchR,CACnF,EC5BInD,GAAS8N,EACTC,GAAaE,EAMjBmG,GAAiB,SAAUC,EAAWlN,GACpC,OAAOgI,UAAUzJ,OAAS,GALFsI,EAKgBhO,GAAOqU,GAJxCtG,GAAWC,GAAYA,OAAWjM,GAIoB/B,GAAOqU,IAAcrU,GAAOqU,GAAWlN,GALtF,IAAU6G,CAM1B,ECRID,GAAaE,EACbsD,GAAQ3B,GAER0E,GAJcxG,EAIiBtC,SAASzK,UAGvCgN,GAAWwD,GAAMgD,iBACpBhD,GAAMgD,cAAgB,SAAUlJ,GAC9B,OAAOiJ,GAAiBjJ,SAI5BkJ,GAAiBhD,GAAMgD,cCbnBnF,GAActB,EACdW,GAAQR,EACRF,GAAa6B,EACbG,GAAUoD,GAEVoB,GAAgBhB,GAEhBiB,GAAO,WAAY,EACnBC,GAAQ,GACRC,GALarB,GAKU,UAAW,aAClCsB,GAAoB,2BACpBjG,GAAOU,GAAYuF,GAAkBjG,MACrCkG,IAAuBD,GAAkBjG,KAAK8F,IAE9CK,GAAsB,SAAuB7G,GAC/C,IAAKD,GAAWC,GAAW,OAAO,EAClC,IAEE,OADA0G,GAAUF,GAAMC,GAAOzG,IAChB,CACR,CAAC,MAAO3K,GACP,OAAO,CACR,CACH,EAEIyR,GAAsB,SAAuB9G,GAC/C,IAAKD,GAAWC,GAAW,OAAO,EAClC,OAAQ+B,GAAQ/B,IACd,IAAK,gBACL,IAAK,oBACL,IAAK,yBAA0B,OAAO,EAExC,IAIE,OAAO4G,MAAyBlG,GAAKiG,GAAmBJ,GAAcvG,GACvE,CAAC,MAAO3K,GACP,OAAO,CACR,CACH,EAEAyR,GAAoB9B,MAAO,EAI3B,IAAA+B,IAAkBL,IAAajG,IAAM,WACnC,IAAIuG,EACJ,OAAOH,GAAoBA,GAAoB7T,QACzC6T,GAAoBhU,UACpBgU,IAAoB,WAAcG,GAAS,CAAO,KACnDA,CACP,IAAKF,GAAsBD,GCnDvBtS,GAAUuL,GACViH,GAAgB9G,GAChBC,GAAW0B,EAGXqF,GAFkB9B,GAEQ,WAC1B+B,GAAS5S,MCNT6S,GDUa,SAAUC,GACzB,IAAIC,EASF,OARE9S,GAAQ6S,KACVC,EAAID,EAAchM,aAEd2L,GAAcM,KAAOA,IAAMH,IAAU3S,GAAQ8S,EAAEvU,aAC1CoN,GAASmH,IAEN,QADVA,EAAIA,EAAEJ,QAFwDI,OAAItT,SAKvDA,IAANsT,EAAkBH,GAASG,CACtC,ECjBAC,GAAiB,SAAUF,EAAe1P,GACxC,OAAO,IAAKyP,GAAwBC,GAA7B,CAAwD,IAAX1P,EAAe,EAAIA,EACzE,ECNIkJ,GAAOd,GAEPyH,GAAgB3F,GAChBS,GAAW8C,GACXnC,GAAoBqC,GACpBiC,GAAqB/B,GAErB7M,GANcuH,EAMK,GAAGvH,MAGtB8O,GAAe,SAAUC,GAC3B,IAAIC,EAAiB,GAARD,EACTE,EAAoB,GAARF,EACZG,EAAkB,GAARH,EACVI,EAAmB,GAARJ,EACXK,EAAwB,GAARL,EAChBM,EAA2B,GAARN,EACnBO,EAAmB,GAARP,GAAaK,EAC5B,OAAO,SAAUG,EAAOC,EAAYpG,EAAMqG,GASxC,IARA,IAOI3U,EAAO2B,EAPP6Q,EAAI3D,GAAS4F,GACb/V,EAAOqV,GAAcvB,GACrBoC,EAAgBxH,GAAKsH,EAAYpG,GACjCpK,EAASsL,GAAkB9Q,GAC3BmW,EAAQ,EACRlN,EAASgN,GAAkBb,GAC3BgB,EAASZ,EAASvM,EAAO8M,EAAOvQ,GAAUiQ,GAAaI,EAAmB5M,EAAO8M,EAAO,QAAKlU,EAE3F2D,EAAS2Q,EAAOA,IAAS,IAAIL,GAAYK,KAASnW,KAEtDiD,EAASiT,EADT5U,EAAQtB,EAAKmW,GACiBA,EAAOrC,GACjCyB,GACF,GAAIC,EAAQY,EAAOD,GAASlT,OACvB,GAAIA,EAAQ,OAAQsS,GACvB,KAAK,EAAG,OAAO,EACf,KAAK,EAAG,OAAOjU,EACf,KAAK,EAAG,OAAO6U,EACf,KAAK,EAAG3P,GAAK4P,EAAQ9U,QAChB,OAAQiU,GACb,KAAK,EAAG,OAAO,EACf,KAAK,EAAG/O,GAAK4P,EAAQ9U,GAI3B,OAAOsU,GAAiB,EAAIF,GAAWC,EAAWA,EAAWS,EAEjE,EAEAC,GAAiB,CAGfnU,QAASoT,GAAa,GAGtBrT,IAAKqT,GAAa,GAGlBgB,OAAQhB,GAAa,GAGrBiB,KAAMjB,GAAa,GAGnBkB,MAAOlB,GAAa,GAGpBmB,KAAMnB,GAAa,GAGnBoB,UAAWpB,GAAa,GAGxBqB,aAAcrB,GAAa,ICtEzB/G,GAAQX,EAEZgJ,GAAiB,SAAUC,EAAa/I,GACtC,IAAI7G,EAAS,GAAG4P,GAChB,QAAS5P,GAAUsH,IAAM,WAEvBtH,EAAOnG,KAAK,KAAMgN,GAAY,WAAc,OAAO,CAAI,EAAE,EAC7D,GACA,ECRIgJ,GAAWlJ,GAAwC1L,QAOvD6U,GAN0BhJ,GAEc,WAOpC,GAAG7L,QAH2B,SAAiB8T,GACjD,OAAOc,GAAS9U,KAAMgU,EAAY/G,UAAUzJ,OAAS,EAAIyJ,UAAU,QAAKpN,EAE1E,ECRAmV,IAHYpJ,GAGY,WAEtB,OAA8E,GAAvEjN,OAAOoQ,eAAe,CAAE,EAAE,EAAG,CAAEnM,IAAK,WAAc,OAAO,CAAI,IAAI,EAC1E,UCJIsJ,GAAgBwB,EAGpBuH,IALkBrJ,KACNG,GAI4B,WAEtC,OAEQ,GAFDpN,OAAOoQ,eAAe7C,GAAc,OAAQ,IAAK,CACtDtJ,IAAK,WAAc,OAAO,CAAI,IAC7BsS,CACL,ICLAC,GALkBvJ,IACNG,GAI0B,WAEpC,OAGgB,IAHTpN,OAAOoQ,gBAAe,WAAY,GAAiB,YAAa,CACrEzP,MAAO,GACP4P,UAAU,IACTtQ,SACL,ICXIoN,GAAWJ,EAEX0B,GAAUrO,OACVuO,GAAarO,UAGjBiW,GAAiB,SAAUtJ,GACzB,GAAIE,GAASF,GAAW,OAAOA,EAC/B,MAAM0B,GAAWF,GAAQxB,GAAY,oBACvC,ECTIa,GAAcf,EAEd9M,GAAOwK,SAAS1K,UAAUE,KAE9BuW,GAAiB1I,GAAc7N,GAAK4N,KAAK5N,IAAQ,WAC/C,OAAOA,GAAKkO,MAAMlO,GAAMmO,UAC1B,ECJAqI,GAFkB1J,EAEW,CAAE,EAACvJ,eCF5B6P,GAAatG,GACbC,GAAaE,EACb1J,GAAgBqL,GAGhBI,GAAUnP,OAEd4W,GAJwBtE,GAIa,SAAU9H,GAC7C,MAAoB,iBAANA,CAChB,EAAI,SAAUA,GACZ,IAAIqM,EAAUtD,GAAW,UACzB,OAAOrG,GAAW2J,IAAYnT,GAAcmT,EAAQ5W,UAAWkP,GAAQ3E,GACzE,ECZIsE,GAAY7B,GACZqC,GAAoBlC,GAIxB0J,GAAiB,SAAUC,EAAGC,GAC5B,IAAIC,EAAOF,EAAEC,GACb,OAAO1H,GAAkB2H,QAAQ/V,EAAY4N,GAAUmI,EACzD,ECRI9W,GAAO8M,GACPC,GAAaE,EACbC,GAAW0B,EAEXF,GAAarO,UCJbL,GAAO8M,GACPI,GAAWD,EACXwJ,GAAW7H,GACX+H,GAAYxE,GACZ4E,GDIa,SAAUhR,EAAOiR,GAChC,IAAI/I,EAAIgJ,EACR,GAAa,WAATD,GAAqBjK,GAAWkB,EAAKlI,EAAMhG,YAAcmN,GAAS+J,EAAMjX,GAAKiO,EAAIlI,IAAS,OAAOkR,EACrG,GAAIlK,GAAWkB,EAAKlI,EAAMmR,WAAahK,GAAS+J,EAAMjX,GAAKiO,EAAIlI,IAAS,OAAOkR,EAC/E,GAAa,WAATD,GAAqBjK,GAAWkB,EAAKlI,EAAMhG,YAAcmN,GAAS+J,EAAMjX,GAAKiO,EAAIlI,IAAS,OAAOkR,EACrG,MAAMvI,GAAW,0CACnB,ECPIA,GAAarO,UACb8W,GAHkB5E,GAGa,eAInC6E,GAAiB,SAAUrR,EAAOiR,GAChC,IAAK9J,GAASnH,IAAU0Q,GAAS1Q,GAAQ,OAAOA,EAChD,IACI5D,EADAkV,EAAeV,GAAU5Q,EAAOoR,IAEpC,GAAIE,EAAc,CAGhB,QAFatW,IAATiW,IAAoBA,EAAO,WAC/B7U,EAASnC,GAAKqX,EAActR,EAAOiR,IAC9B9J,GAAS/K,IAAWsU,GAAStU,GAAS,OAAOA,EAClD,MAAMuM,GAAW,0CAClB,CAED,YADa3N,IAATiW,IAAoBA,EAAO,UACxBD,GAAoBhR,EAAOiR,EACpC,ECxBII,GAActK,GACd2J,GAAWxJ,GAIfqK,GAAiB,SAAUtK,GACzB,IAAI9D,EAAMkO,GAAYpK,EAAU,UAChC,OAAOyJ,GAASvN,GAAOA,EAAMA,EAAM,EACrC,ECRIqO,GAAczK,GACd0K,GAAiBvK,GACjBwK,GAA0B7I,GAC1B0H,GAAWnE,GACXmF,GAAgBjF,GAEhB3D,GAAarO,UAEbqX,GAAkB7X,OAAOoQ,eAEzB0H,GAA4B9X,OAAO+X,yBACnCC,GAAa,aACbC,GAAe,eACfC,GAAW,WAIfC,GAAAC,EAAYV,GAAcE,GAA0B,SAAwBzE,EAAG6D,EAAGqB,GAIhF,GAHA5B,GAAStD,GACT6D,EAAIS,GAAcT,GAClBP,GAAS4B,GACQ,mBAANlF,GAA0B,cAAN6D,GAAqB,UAAWqB,GAAcH,MAAYG,IAAeA,EAAWH,IAAW,CAC5H,IAAII,EAAUR,GAA0B3E,EAAG6D,GACvCsB,GAAWA,EAAQJ,MACrB/E,EAAE6D,GAAKqB,EAAW1X,MAClB0X,EAAa,CACX/H,aAAc2H,MAAgBI,EAAaA,EAAWJ,IAAgBK,EAAQL,IAC9EM,WAAYP,MAAcK,EAAaA,EAAWL,IAAcM,EAAQN,IACxEzH,UAAU,GAGf,CAAC,OAAOsH,GAAgB1E,EAAG6D,EAAGqB,EACjC,EAAIR,GAAkB,SAAwB1E,EAAG6D,EAAGqB,GAIlD,GAHA5B,GAAStD,GACT6D,EAAIS,GAAcT,GAClBP,GAAS4B,GACLV,GAAgB,IAClB,OAAOE,GAAgB1E,EAAG6D,EAAGqB,EACjC,CAAI,MAAO7V,GAAsB,CAC/B,GAAI,QAAS6V,GAAc,QAASA,EAAY,MAAMxJ,GAAW,2BAEjE,MADI,UAAWwJ,IAAYlF,EAAE6D,GAAKqB,EAAW1X,OACtCwS,CACT,EC1CA,IAAAqF,GAAiB,SAAUC,EAAQ9X,GACjC,MAAO,CACL4X,aAAuB,EAATE,GACdnI,eAAyB,EAATmI,GAChBlI,WAAqB,EAATkI,GACZ9X,MAAOA,EAEX,ECNI+X,GAAuBtL,GACvBoL,GAA2BzJ,GAE/B4J,GAJkB1L,GAIa,SAAU2L,EAAQvP,EAAK1I,GACpD,OAAO+X,GAAqBN,EAAEQ,EAAQvP,EAAKmP,GAAyB,EAAG7X,GACzE,EAAI,SAAUiY,EAAQvP,EAAK1I,GAEzB,OADAiY,EAAOvP,GAAO1I,EACPiY,CACT,ECTIzZ,GAAS8N,EACT4L,GAAezL,EACfM,GAAwBqB,EACxBxN,GAAU+Q,GACVqG,GAA8BnG,GAE9BsG,GAAkB,SAAUC,GAE9B,GAAIA,GAAuBA,EAAoBxX,UAAYA,GAAS,IAClEoX,GAA4BI,EAAqB,UAAWxX,GAC7D,CAAC,MAAOiB,GACPuW,EAAoBxX,QAAUA,EAC/B,CACH,EAEA,IAAK,IAAIyX,MAAmBH,GACtBA,GAAaG,KACfF,GAAgB3Z,GAAO6Z,KAAoB7Z,GAAO6Z,IAAiB/Y,WAIxDgZ,GAACvL,ICpBhB,IAAIgH,GAAgBzH,GAChBsC,GAAyBnC,GAE7B8L,GAAiB,SAAU1O,GACzB,OAAOkK,GAAcnF,GAAuB/E,GAC9C,QCNIuF,GAAsB9C,GAEtBkM,GAAM1O,KAAK0O,IACXlJ,GAAMxF,KAAKwF,IAKfmJ,GAAiB,SAAU5D,EAAO3Q,GAChC,IAAIwU,EAAUtJ,GAAoByF,GAClC,OAAO6D,EAAU,EAAIF,GAAIE,EAAUxU,EAAQ,GAAKoL,GAAIoJ,EAASxU,EAC/D,ECXIqU,GAAkBjM,GAClBmM,GAAkBhM,GAClB+C,GAAoBpB,GAGpB4F,GAAe,SAAU2E,GAC3B,OAAO,SAAUlE,EAAOmE,EAAIC,GAC1B,IAGI7Y,EAHAwS,EAAI+F,GAAgB9D,GACpBvQ,EAASsL,GAAkBgD,GAC3BqC,EAAQ4D,GAAgBI,EAAW3U,GAIvC,GAAIyU,GAAeC,GAAMA,GAAI,KAAO1U,EAAS2Q,GAG3C,IAFA7U,EAAQwS,EAAEqC,OAEG7U,EAAO,OAAO,OAEtB,KAAMkE,EAAS2Q,EAAOA,IAC3B,IAAK8D,GAAe9D,KAASrC,IAAMA,EAAEqC,KAAW+D,EAAI,OAAOD,GAAe9D,GAAS,EACnF,OAAQ8D,IAAgB,EAE9B,EAEAG,GAAiB,CAGfC,SAAU/E,IAAa,GAGvB5U,QAAS4U,IAAa,IC9BxBgF,GAAiB,CAAE,ECCfzI,GAAS9D,GACT8L,GAAkBnK,GAClBhP,GAAUuS,GAAuCvS,QACjD4Z,GAAanH,GAEb3M,GANcoH,EAMK,GAAGpH,MAE1B+T,GAAiB,SAAUhB,EAAQiB,GACjC,IAGIxQ,EAHA8J,EAAI+F,GAAgBN,GACpB9T,EAAI,EACJxC,EAAS,GAEb,IAAK+G,KAAO8J,GAAIjC,GAAOyI,GAAYtQ,IAAQ6H,GAAOiC,EAAG9J,IAAQxD,GAAKvD,EAAQ+G,GAE1E,KAAOwQ,EAAMhV,OAASC,GAAOoM,GAAOiC,EAAG9J,EAAMwQ,EAAM/U,SAChD/E,GAAQuC,EAAQ+G,IAAQxD,GAAKvD,EAAQ+G,IAExC,OAAO/G,CACT,EClBAwX,GAAiB,CACf,cACA,iBACA,gBACA,uBACA,iBACA,WACA,WCREC,GAAqB9M,GACrB6M,GAAc1M,GAKlB4M,GAAiBha,OAAO4F,MAAQ,SAAcuN,GAC5C,OAAO4G,GAAmB5G,EAAG2G,GAC/B,ECRIpC,GAAczK,GACd2K,GAA0BxK,GAC1BsL,GAAuB3J,GACvB0H,GAAWnE,GACX4G,GAAkB1G,GAClBwH,GAAatH,GAKjBuH,GAAA7B,EAAYV,KAAgBE,GAA0B5X,OAAOka,iBAAmB,SAA0B/G,EAAGgH,GAC3G1D,GAAStD,GAMT,IALA,IAII9J,EAJA+Q,EAAQlB,GAAgBiB,GACxBvU,EAAOoU,GAAWG,GAClBtV,EAASe,EAAKf,OACd2Q,EAAQ,EAEL3Q,EAAS2Q,GAAOkD,GAAqBN,EAAEjF,EAAG9J,EAAMzD,EAAK4P,KAAU4E,EAAM/Q,IAC5E,OAAO8J,CACT,ECnBA,ICoDIkH,GDlDJC,GAFiBrN,GAEW,WAAY,mBEDpCqE,GAAMlE,GAENxH,GAHSqH,GAGK,QAElBsN,GAAiB,SAAUlR,GACzB,OAAOzD,GAAKyD,KAASzD,GAAKyD,GAAOiI,GAAIjI,GACvC,EDNIoN,GAAWxJ,GACXuN,GAAyBpN,GACzB0M,GAAc/K,GACd4K,GAAarH,GACbgI,GAAO9H,GACPhF,GAAwBkF,EAKxB+H,GAAY,YACZC,GAAS,SACTC,GANYC,GAMS,YAErBC,GAAmB,WAAY,EAE/BC,GAAY,SAAUC,GACxB,MARO,IAQKL,GATL,IASmBK,EAAnBC,KAAwCN,GATxC,GAUT,EAGIO,GAA4B,SAAUZ,GACxCA,EAAgBa,MAAMJ,GAAU,KAChCT,EAAgBc,QAChB,IAAIC,EAAOf,EAAgBgB,aAAarb,OAExC,OADAqa,EAAkB,KACXe,CACT,EAyBIE,GAAkB,WACpB,IACEjB,GAAkB,IAAIkB,cAAc,WACxC,CAAI,MAAO/Y,GAAuB,CAzBH,IAIzBgZ,EAFAC,EACAC,EAuBJJ,GAAqC,oBAAZzO,SACrBA,SAAS8O,QAAUtB,GACjBY,GAA0BZ,KA1B5BoB,EAASjO,GAAsB,UAC/BkO,EAAK,OAAShB,GAAS,IAE3Be,EAAOG,MAAMC,QAAU,OACvBvB,GAAKwB,YAAYL,GAEjBA,EAAOM,IAAMzb,OAAOob,IACpBF,EAAiBC,EAAOO,cAAcnP,UACvBlD,OACf6R,EAAeN,MAAMJ,GAAU,sBAC/BU,EAAeL,QACRK,EAAeS,GAiBlBhB,GAA0BZ,IAE9B,IADA,IAAIxV,EAASiV,GAAYjV,OAClBA,YAAiByW,GAAgBb,IAAWX,GAAYjV,IAC/D,OAAOyW,IACT,EAEA3B,GAAWgB,KAAY,MAKvBuB,GAAiBlc,OAAOsI,QAAU,SAAgB6K,EAAGgH,GACnD,IAAI7X,EAQJ,OAPU,OAAN6Q,GACF0H,GAAiBJ,IAAahE,GAAStD,GACvC7Q,EAAS,IAAIuY,GACbA,GAAiBJ,IAAa,KAE9BnY,EAAOqY,IAAYxH,GACd7Q,EAASgZ,UACMpa,IAAfiZ,EAA2B7X,EAASkY,GAAuBpC,EAAE9V,EAAQ6X,EAC9E,EElFIrH,GAAkB7F,GAClB3E,GAAS8E,GACTgD,GAAiBrB,GAA+CqJ,EAEhE+D,GAAcrJ,GAAgB,eAC9BsJ,GAAiB3a,MAAMxB,UAIQiB,MAA/Bkb,GAAeD,KACjB/L,GAAegM,GAAgBD,GAAa,CAC1C7L,cAAc,EACd3P,MAAO2H,GAAO,YCAdlF,GAAKa,GAAKuB,GDKd6W,GAAiB,SAAUhT,GACzB+S,GAAeD,IAAa9S,IAAO,CACrC,EEnBAiT,GAAiB,CAAE,ECCfpP,GAAaE,EAEbmP,GAHStP,EAGQsP,QFHjBC,GEKatP,GAAWqP,KAAY,cAAchc,KAAKD,OAAOic,KFJ9Dpd,GAASiO,EACTC,GAAW0B,EACX4J,GAA8BrG,GAC9BpB,GAASsB,GACTH,GAASK,GACT6H,GAAYK,GACZjB,GAAa8C,GAEbC,GAA6B,6BAC7Blc,GAAYrB,GAAOqB,UACnB+b,GAAUpd,GAAOod,QAgBrB,GAAIC,IAAmBnK,GAAOsK,MAAO,CACnC,IAAIjM,GAAQ2B,GAAOsK,QAAUtK,GAAOsK,MAAQ,IAAIJ,IAEhD7L,GAAMzM,IAAMyM,GAAMzM,IAClByM,GAAMlL,IAAMkL,GAAMlL,IAClBkL,GAAMtN,IAAMsN,GAAMtN,IAElBA,GAAM,SAAUoH,EAAIoS,GAClB,GAAIlM,GAAMlL,IAAIgF,GAAK,MAAMhK,GAAUkc,IAGnC,OAFAE,EAASC,OAASrS,EAClBkG,GAAMtN,IAAIoH,EAAIoS,GACPA,GAET3Y,GAAM,SAAUuG,GACd,OAAOkG,GAAMzM,IAAIuG,IAAO,CAAA,GAE1BhF,GAAM,SAAUgF,GACd,OAAOkG,GAAMlL,IAAIgF,GAErB,KAAO,CACL,IAAIsS,GAAQvC,GAAU,SACtBZ,GAAWmD,KAAS,EACpB1Z,GAAM,SAAUoH,EAAIoS,GAClB,GAAI1L,GAAO1G,EAAIsS,IAAQ,MAAMtc,GAAUkc,IAGvC,OAFAE,EAASC,OAASrS,EAClBmO,GAA4BnO,EAAIsS,GAAOF,GAChCA,GAET3Y,GAAM,SAAUuG,GACd,OAAO0G,GAAO1G,EAAIsS,IAAStS,EAAGsS,IAAS,IAEzCtX,GAAM,SAAUgF,GACd,OAAO0G,GAAO1G,EAAIsS,IAEtB,CAEA,IAAAC,GAAiB,CACf3Z,IAAKA,GACLa,IAAKA,GACLuB,IAAKA,GACLwX,QArDY,SAAUxS,GACtB,OAAOhF,GAAIgF,GAAMvG,GAAIuG,GAAMpH,GAAIoH,EAAI,CAAA,EACrC,EAoDEyS,UAlDc,SAAUrI,GACxB,OAAO,SAAUpK,GACf,IAAImS,EACJ,IAAKtP,GAAS7C,KAAQmS,EAAQ1Y,GAAIuG,IAAKtG,OAAS0Q,EAC9C,MAAMpU,GAAU,0BAA4BoU,EAAO,aACnD,OAAO+H,EAEb,eGxBIO,GAAwB,CAAE,EAAC7N,qBAE3B0I,GAA2B/X,OAAO+X,yBAGlCoF,GAAcpF,KAA6BmF,GAAsB/c,KAAK,CAAE,EAAG,GAAK,GAIpFid,GAAAhF,EAAY+E,GAAc,SAA8BpG,GACtD,IAAIsG,EAAatF,GAAyB1W,KAAM0V,GAChD,QAASsG,GAAcA,EAAW9E,UACpC,EAAI2E,GCbJ,IAAIxF,GAAczK,GACd9M,GAAOiN,GACPkQ,GAA6BvO,GAC7ByJ,GAA2BlG,GAC3B4G,GAAkB1G,GAClBiF,GAAgB/E,GAChBxB,GAAS0J,GACTjD,GAAiB8E,GAGjB3E,GAA4B9X,OAAO+X,yBAI9BwF,GAAAnF,EAAGV,GAAcI,GAA4B,SAAkC3E,EAAG6D,GAGzF,GAFA7D,EAAI+F,GAAgB/F,GACpB6D,EAAIS,GAAcT,GACdW,GAAgB,IAClB,OAAOG,GAA0B3E,EAAG6D,EACxC,CAAI,MAAOxU,GAAsB,CAC/B,GAAI0O,GAAOiC,EAAG6D,GAAI,OAAOwB,IAA0BrY,GAAKmd,GAA2BlF,EAAGjF,EAAG6D,GAAI7D,EAAE6D,GACjG,sBCrBIU,GAAczK,GACdiE,GAAS9D,GAETa,GAAoBtD,SAAS1K,UAE7Bud,GAAgB9F,IAAe1X,OAAO+X,yBAEtCzK,GAAS4D,GAAOjD,GAAmB,QAKvCwP,GAAiB,CACfnQ,OAAQA,GACRoQ,OALWpQ,IAA0D,cAA/C,WAAqB,EAAiBjN,KAM5D4X,aALiB3K,MAAYoK,IAAgBA,IAAe8F,GAAcvP,GAAmB,QAAQqC,eCVnG/B,GAActB,EACdW,GAAQR,EACRF,GAAa6B,EACbmC,GAASoB,GACToF,GAAclF,GACdmL,GAA6BjL,GAAsCuF,aACnEvE,GAAgBkH,GAGhBgD,GAFsBnB,GAEqBO,QAC3Ca,GAHsBpB,GAGiBxY,IACvC0K,GAAUrO,OAEV8P,GAAiBpQ,OAAOoQ,eACxB5B,GAAcD,GAAY,GAAGvL,OAC7B+D,GAAUwH,GAAY,GAAGxH,SACzB/B,GAAOuJ,GAAY,GAAGvJ,MAEtB8Y,GAAsBpG,KAAgB9J,IAAM,WAC9C,OAAsF,IAA/EwC,IAAe,WAA2B,GAAE,SAAU,CAAEzP,MAAO,IAAKkE,MAC7E,IAEIkZ,GAAWzd,OAAOA,QAAQ8G,MAAM,UAEhC4W,GAAcC,GAAAC,QAAiB,SAAUvd,EAAON,EAAM8F,GACf,YAArCqI,GAAYG,GAAQtO,GAAO,EAAG,KAChCA,EAAO,IAAM0G,GAAQ4H,GAAQtO,GAAO,qBAAsB,MAAQ,KAEhE8F,GAAWA,EAAQgY,SAAQ9d,EAAO,OAASA,GAC3C8F,GAAWA,EAAQiY,SAAQ/d,EAAO,OAASA,KAC1C6Q,GAAOvQ,EAAO,SAAYgd,IAA8Bhd,EAAMN,OAASA,KACtEqX,GAAatH,GAAezP,EAAO,OAAQ,CAAEA,MAAON,EAAMiQ,cAAc,IACvE3P,EAAMN,KAAOA,GAEhByd,IAAuB3X,GAAW+K,GAAO/K,EAAS,UAAYxF,EAAMkE,SAAWsB,EAAQkY,OACzFjO,GAAezP,EAAO,SAAU,CAAEA,MAAOwF,EAAQkY,QAEnD,IACMlY,GAAW+K,GAAO/K,EAAS,gBAAkBA,EAAQoC,YACnDmP,IAAatH,GAAezP,EAAO,YAAa,CAAE4P,UAAU,IAEvD5P,EAAMV,YAAWU,EAAMV,eAAYiB,EAClD,CAAI,MAAOsB,GAAsB,CAC/B,IAAIma,EAAQiB,GAAqBjd,GAG/B,OAFGuQ,GAAOyL,EAAO,YACjBA,EAAM5L,OAAS/L,GAAK+Y,GAAyB,iBAAR1d,EAAmBA,EAAO,KACxDM,CACX,EAIAgK,SAAS1K,UAAUC,SAAW8d,IAAY,WACxC,OAAO9Q,GAAW7L,OAASwc,GAAiBxc,MAAM0P,QAAU2C,GAAcrS,KAC5E,GAAG,8BCrDC6L,GAAaD,EACbyL,GAAuBtL,GACvB4Q,GAAcjP,GACdsB,GAAuBiC,GAE3BgM,GAAiB,SAAUnL,EAAG9J,EAAK1I,EAAOwF,GACnCA,IAASA,EAAU,IACxB,IAAIoY,EAASpY,EAAQoS,WACjBlY,OAAwBa,IAAjBiF,EAAQ9F,KAAqB8F,EAAQ9F,KAAOgJ,EAEvD,GADI6D,GAAWvM,IAAQqd,GAAYrd,EAAON,EAAM8F,GAC5CA,EAAQhH,OACNof,EAAQpL,EAAE9J,GAAO1I,EAChB0P,GAAqBhH,EAAK1I,OAC1B,CACL,IACOwF,EAAQqY,OACJrL,EAAE9J,KAAMkV,GAAS,UADEpL,EAAE9J,EAEpC,CAAM,MAAO7G,GAAsB,CAC3B+b,EAAQpL,EAAE9J,GAAO1I,EAChB+X,GAAqBN,EAAEjF,EAAG9J,EAAK,CAClC1I,MAAOA,EACP4X,YAAY,EACZjI,cAAenK,EAAQsY,gBACvBlO,UAAWpK,EAAQuY,aAEtB,CAAC,OAAOvL,CACX,QC1BI4G,GAAqB9M,GAGrB0M,GAFcvM,GAEWuR,OAAO,SAAU,aAKrCC,GAAAxG,EAAGpY,OAAO4B,qBAAuB,SAA6BuR,GACrE,OAAO4G,GAAmB5G,EAAGwG,GAC/B,YCTSkF,GAAAzG,EAAGpY,OAAOiS,sBCDnB,ICeI6M,GAAmBC,GAAmCC,GDftDzL,GAAatG,GAEbgS,GAA4BlQ,GAC5BmQ,GAA8B5M,GAC9BmE,GAAWjE,GAEXmM,GALcvR,EAKO,GAAGuR,QAG5BQ,GAAiB5L,GAAW,UAAW,YAAc,SAAiB/I,GACpE,IAAI5E,EAAOqZ,GAA0B7G,EAAE3B,GAASjM,IAC5CyH,EAAwBiN,GAA4B9G,EACxD,OAAOnG,EAAwB0M,GAAO/Y,EAAMqM,EAAsBzH,IAAO5E,CAC3E,EEbIsL,GAASjE,GACTkS,GAAU/R,GACVgS,GAAiCrQ,GACjC2J,GAAuBpG,GCHvB1E,GAAQX,EACRC,GAAaE,EAEbiS,GAAc,kBAEdC,GAAW,SAAUC,EAASC,GAChC,IAAI7e,EAAQ8e,GAAKC,GAAUH,IAC3B,OAAO5e,GAASgf,IACZhf,GAASif,KACT1S,GAAWsS,GAAa5R,GAAM4R,KAC5BA,EACR,EAEIE,GAAYJ,GAASI,UAAY,SAAUG,GAC7C,OAAOvf,OAAOuf,GAAQ9Y,QAAQsY,GAAa,KAAK5e,aAClD,EAEIgf,GAAOH,GAASG,KAAO,GACvBG,GAASN,GAASM,OAAS,IAC3BD,GAAWL,GAASK,SAAW,IAEnCG,GAAiBR,GCrBbngB,GAAS8N,EACT8K,GAA2B3K,GAA2DgL,EACtFO,GAA8B5J,GAC9BuP,GAAgBhM,GAChBjC,GAAuBmC,GACvBuN,GFAa,SAAUtK,EAAQ1E,EAAQiP,GAIzC,IAHA,IAAIpa,EAAOuZ,GAAQpO,GACfX,EAAiBsI,GAAqBN,EACtCL,EAA2BqH,GAA+BhH,EACrDtT,EAAI,EAAGA,EAAIc,EAAKf,OAAQC,IAAK,CACpC,IAAIuE,EAAMzD,EAAKd,GACVoM,GAAOuE,EAAQpM,IAAU2W,GAAc9O,GAAO8O,EAAY3W,IAC7D+G,EAAeqF,EAAQpM,EAAK0O,EAAyBhH,EAAQ1H,GAEhE,CACH,EETIiW,GAAW1E,GAiBfqF,GAAiB,SAAU9Z,EAAS4K,GAClC,IAGY0E,EAAQpM,EAAK6W,EAAgBC,EAAgB9C,EAHrD+C,EAASja,EAAQsP,OACjB4K,EAASla,EAAQhH,OACjBmhB,EAASna,EAAQoa,KASrB,GANE9K,EADE4K,EACOlhB,GACAmhB,EACAnhB,GAAOihB,IAAW/P,GAAqB+P,EAAQ,CAAA,IAE9CjhB,GAAOihB,IAAW,CAAA,GAAIngB,UAEtB,IAAKoJ,KAAO0H,EAAQ,CAQ9B,GAPAoP,EAAiBpP,EAAO1H,GAGtB6W,EAFE/Z,EAAQqa,gBACVnD,EAAatF,GAAyBtC,EAAQpM,KACfgU,EAAW1c,MACpB8U,EAAOpM,IACtBiW,GAASe,EAAShX,EAAM+W,GAAUE,EAAS,IAAM,KAAOjX,EAAKlD,EAAQsa,cAE5Cvf,IAAnBgf,EAA8B,CAC3C,UAAWC,UAAyBD,EAAgB,SACpDH,GAA0BI,EAAgBD,EAC3C,EAEG/Z,EAAQgM,MAAS+N,GAAkBA,EAAe/N,OACpDwG,GAA4BwH,EAAgB,QAAQ,GAEtD7B,GAAc7I,EAAQpM,EAAK8W,EAAgBha,EAC5C,CACH,ECnDAua,IAFYzT,GAEY,WACtB,SAASgP,IAAmB,CAG5B,OAFAA,EAAEhc,UAAUsI,YAAc,KAEnBvI,OAAO2gB,eAAe,IAAI1E,KAASA,EAAEhc,SAC9C,ICPIiR,GAASjE,GACTC,GAAaE,EACboC,GAAWT,GAEX6R,GAA2BpO,GAE3BmI,GAHYrI,GAGS,YACrBnD,GAAUnP,OACV6gB,GAAkB1R,GAAQlP,UAK9B6gB,GAAiBF,GAA2BzR,GAAQwR,eAAiB,SAAUxN,GAC7E,IAAIyF,EAASpJ,GAAS2D,GACtB,GAAIjC,GAAO0H,EAAQ+B,IAAW,OAAO/B,EAAO+B,IAC5C,IAAIpS,EAAcqQ,EAAOrQ,YACzB,OAAI2E,GAAW3E,IAAgBqQ,aAAkBrQ,EACxCA,EAAYtI,UACZ2Y,aAAkBzJ,GAAU0R,GAAkB,IACzD,ELnBIjT,GAAQX,EACRC,GAAaE,EACbC,GAAW0B,EAEX4R,GAAiBnO,GACjB8L,GAAgB5L,GAIhBqO,GAHkBnG,GAGS,YAC3BoG,IAAyB,EAOzB,GAAGpb,OAGC,SAFNoZ,GAAgB,GAAGpZ,SAIjBmZ,GAAoC4B,GAAeA,GAAe3B,QACxBhf,OAAOC,YAAW6e,GAAoBC,IAHlDiC,IAAyB,GAO3D,IAAIC,IAA0B5T,GAASyR,KAAsBlR,IAAM,WACjE,IAAIrN,EAAO,CAAA,EAEX,OAAOue,GAAkBiC,IAAU5gB,KAAKI,KAAUA,CACpD,IAEI0gB,KAAwBnC,GAAoB,IAK3C5R,GAAW4R,GAAkBiC,MAChCzC,GAAcQ,GAAmBiC,IAAU,WACzC,OAAO1f,IACX,IAGA,IAAA6f,GAAiB,CACfpC,kBAAmBA,GACnBkC,uBAAwBA,IM/CtB5Q,GAAiBnD,GAA+CmL,EAChElH,GAAS9D,GAGT6F,GAFkBlE,GAEc,eAEpCoS,GAAiB,SAAU1L,EAAQ2L,EAAKd,GAClC7K,IAAW6K,IAAQ7K,EAASA,EAAOxV,WACnCwV,IAAWvE,GAAOuE,EAAQxC,KAC5B7C,GAAeqF,EAAQxC,GAAe,CAAE3C,cAAc,EAAM3P,MAAOygB,GAEvE,ECVItC,GAAoB7R,GAAuC6R,kBAC3DxW,GAAS8E,GACToL,GAA2BzJ,GAC3BoS,GAAiB7O,GACjB+O,GAAY7O,GAEZ8O,GAAa,WAAc,OAAOjgB,MCPlCkN,GAActB,EACd6B,GAAY1B,GCDZF,GAAaD,EAEb0B,GAAUrO,OACVuO,GAAarO,UCFb+gB,GFEa,SAAU3I,EAAQvP,EAAK/C,GACtC,IAEE,OAAOiI,GAAYO,GAAU9O,OAAO+X,yBAAyBa,EAAQvP,GAAK/C,IAC9E,CAAI,MAAO9D,GAAsB,CACjC,EENIiU,GAAWrJ,GACXoU,GDEa,SAAUrU,GACzB,GAAuB,iBAAZA,GAAwBD,GAAWC,GAAW,OAAOA,EAChE,MAAM0B,GAAW,aAAeF,GAAQxB,GAAY,kBACtD,ECCAsU,GAAiBzhB,OAAO0hB,iBAAmB,aAAe,CAAE,EAAG,WAC7D,IAEItD,EAFAuD,GAAiB,EACjBphB,EAAO,CAAA,EAEX,KACE6d,EAASmD,GAAoBvhB,OAAOC,UAAW,YAAa,QACrDM,EAAM,IACbohB,EAAiBphB,aAAgBkB,KACrC,CAAI,MAAOe,GAAsB,CAC/B,OAAO,SAAwB2Q,EAAGyO,GAKhC,OAJAnL,GAAStD,GACTqO,GAAmBI,GACfD,EAAgBvD,EAAOjL,EAAGyO,GACzBzO,EAAE0O,UAAYD,EACZzO,EAEX,CAhB+D,QAgBzDjS,GCxBF4gB,GAAI7U,GACJ9M,GAAOiN,GAGPF,GAAasF,EACbuP,GJGa,SAAUC,EAAqBC,EAAMlhB,EAAMmhB,GAC1D,IAAIjP,EAAgBgP,EAAO,YAI3B,OAHAD,EAAoB/hB,UAAYqI,GAAOwW,GAAmB,CAAE/d,KAAMyX,KAA2B0J,EAAiBnhB,KAC9GogB,GAAea,EAAqB/O,GAAe,GACnDoO,GAAUpO,GAAiBqO,GACpBU,CACT,EIRIrB,GAAiB/F,GACjB8G,GAAiBjF,GACjB0E,GAAiBgB,GACjBxJ,GAA8ByJ,GAC9B9D,GAAgB+D,GAEhBhB,GAAYiB,GAGZC,GAZejQ,GAYqBoL,OACpCC,GAberL,GAa2B2F,aAC1C6G,GAJgB0D,GAIkB1D,kBAClCkC,GALgBwB,GAKuBxB,uBACvCD,GARkB0B,GAQS,YAC3BC,GAAO,OACPC,GAAS,SACTC,GAAU,UAEVtB,GAAa,WAAc,OAAOjgB,MAEtCwhB,GAAiB,SAAUC,EAAUb,EAAMD,EAAqBjhB,EAAMgiB,EAASC,EAAQC,GACrFlB,GAA0BC,EAAqBC,EAAMlhB,GAErD,IAkBImiB,EAA0Bld,EAASmd,EAlBnCC,EAAqB,SAAUC,GACjC,GAAIA,IAASN,GAAWO,EAAiB,OAAOA,EAChD,IAAKtC,IAA0BqC,KAAQE,EAAmB,OAAOA,EAAkBF,GACnF,OAAQA,GACN,KAAKX,GACL,KAAKC,GACL,KAAKC,GAAS,OAAO,WAAqB,OAAO,IAAIZ,EAAoB3gB,KAAMgiB,IAC/E,OAAO,WAAc,OAAO,IAAIrB,EAAoB3gB,QAGpD4R,EAAgBgP,EAAO,YACvBuB,GAAwB,EACxBD,EAAoBT,EAAS7iB,UAC7BwjB,EAAiBF,EAAkBxC,KAClCwC,EAAkB,eAClBR,GAAWQ,EAAkBR,GAC9BO,GAAmBtC,IAA0ByC,GAAkBL,EAAmBL,GAClFW,EAA4B,SAARzB,GAAkBsB,EAAkBxd,SAA4B0d,EA+BxF,GA3BIC,IACFR,EAA2BvC,GAAe+C,EAAkBvjB,KAAK,IAAI2iB,OACpC9iB,OAAOC,WAAaijB,EAAyBniB,OAC5D4f,GAAeuC,KAA8BpE,KACvD4C,GACFA,GAAewB,EAA0BpE,IAC/B5R,GAAWgW,EAAyBnC,MAC9CzC,GAAc4E,EAA0BnC,GAAUO,KAItDH,GAAe+B,EAA0BjQ,GAAe,IAMxDsP,IAAwBQ,GAAWJ,IAAUc,GAAkBA,EAAepjB,OAASsiB,KACzEhF,GACdhF,GAA4B4K,EAAmB,OAAQZ,KAEvDa,GAAwB,EACxBF,EAAkB,WAAoB,OAAOnjB,GAAKsjB,EAAgBpiB,SAKlE0hB,EAMF,GALA/c,EAAU,CACRF,OAAQsd,EAAmBT,IAC3B/c,KAAMod,EAASM,EAAkBF,EAAmBV,IACpD3c,QAASqd,EAAmBR,KAE1BK,EAAQ,IAAKE,KAAOnd,GAClBgb,IAA0BwC,KAA2BL,KAAOI,KAC9DjF,GAAciF,EAAmBJ,EAAKnd,EAAQmd,SAE3CrB,GAAE,CAAErM,OAAQwM,EAAML,OAAO,EAAMnB,OAAQO,IAA0BwC,GAAyBxd,GASnG,OAL4Bud,EAAkBxC,MAAcuC,GAC1DhF,GAAciF,EAAmBxC,GAAUuC,EAAiB,CAAEjjB,KAAM0iB,IAEtE1B,GAAUY,GAAQqB,EAEXtd,CACT,EChGA2d,GAAiB,SAAUhjB,EAAOM,GAChC,MAAO,CAAEN,MAAOA,EAAOM,KAAMA,EAC/B,ECHIiY,GAAkBjM,GAClBoP,GAAmBjP,GACnBiU,GAAYtS,GACZ6U,GAAsBtR,GACtBlC,GAAiBoC,GAA+C4F,EAChEyL,GAAiBnR,GACjBiR,GAAyB/I,GAEzBlD,GAAcyK,GAEd2B,GAAiB,iBACjBC,GAAmBH,GAAoBxgB,IACvCya,GAAmB+F,GAAoB3G,UAAU6G,IAYrDE,GAAiBH,GAAepiB,MAAO,SAAS,SAAUwiB,EAAUC,GAClEH,GAAiB1iB,KAAM,CACrB6C,KAAM4f,GACNrO,OAAQyD,GAAgB+K,GACxBzO,MAAO,EACP0O,KAAMA,GAIV,IAAG,WACD,IAAIvH,EAAQkB,GAAiBxc,MACzBoU,EAASkH,EAAMlH,OACfyO,EAAOvH,EAAMuH,KACb1O,EAAQmH,EAAMnH,QAClB,OAAKC,GAAUD,GAASC,EAAO5Q,QAC7B8X,EAAMlH,YAASvU,EACRyiB,QAAuBziB,GAAW,IAEhByiB,GAAf,QAARO,EAA8C1O,EACtC,UAAR0O,EAAgDzO,EAAOD,GAC7B,CAACA,EAAOC,EAAOD,KAFY,EAG3D,GAAG,UAKC1P,GAASub,GAAU8C,UAAY9C,GAAU5f,MAQ7C,GALgB2iB,GAAC,QACDA,GAAC,UACDA,GAAC,WAGD1M,IAA+B,WAAhB5R,GAAOzF,KAAmB,IACvD+P,GAAetK,GAAQ,OAAQ,CAAEnF,MAAO,UAC1C,CAAE,MAAO6B,GAAO,CC7DhB,IAAIrD,GAAS8N,EACT4L,GAAezL,EACfM,GAAwBqB,EACxBsV,GAAuB/R,GACvBqG,GAA8BnG,GAC9BM,GAAkBJ,GAElBqO,GAAWjO,GAAgB,YAC3BG,GAAgBH,GAAgB,eAChCwR,GAAcD,GAAqBve,OAEnCgT,GAAkB,SAAUC,EAAqBC,GACnD,GAAID,EAAqB,CAEvB,GAAIA,EAAoBgI,MAAcuD,GAAa,IACjD3L,GAA4BI,EAAqBgI,GAAUuD,GAC5D,CAAC,MAAO9hB,GACPuW,EAAoBgI,IAAYuD,EACjC,CAID,GAHKvL,EAAoB9F,KACvB0F,GAA4BI,EAAqB9F,GAAe+F,GAE9DH,GAAaG,GAAkB,IAAK,IAAI9C,KAAemO,GAEzD,GAAItL,EAAoB7C,KAAiBmO,GAAqBnO,GAAc,IAC1EyC,GAA4BI,EAAqB7C,EAAamO,GAAqBnO,GACpF,CAAC,MAAO1T,GACPuW,EAAoB7C,GAAemO,GAAqBnO,EACzD,CAEJ,CACH,EAEA,IAAK,IAAI8C,MAAmBH,GAC1BC,GAAgB3Z,GAAO6Z,KAAoB7Z,GAAO6Z,IAAiB/Y,UAAW+Y,IAGhFF,GAAgBpL,GAAuB,gBCrCvC,IAEA6W,GAFatX,8xUCEb,IAAI6U,GAAI7U,GAEJuX,GAAWzV,GAAuChP,QAClDkW,GAAsB3D,GAEtBmS,GAJcrX,GAIc,GAAGrN,SAE/B2kB,KAAkBD,IAAiB,EAAIA,GAAc,CAAC,GAAI,GAAI,GAAK,EAKvE3C,GAAE,CAAErM,OAAQ,QAASmM,OAAO,EAAMnB,OAJrBiE,KAAkBzO,GAAoB,YAIC,CAClDlW,QAAS,SAAiB4kB,GACxB,IAAInL,EAAYlL,UAAUzJ,OAAS,EAAIyJ,UAAU,QAAKpN,EACtD,OAAOwjB,GAEHD,GAAcpjB,KAAMsjB,EAAenL,IAAc,EACjDgL,GAASnjB,KAAMsjB,EAAenL,EACnC,ICrBH,IAAI3K,GAAarO,UCCbiX,GAAgBxK,GAChByL,GAAuBtL,GACvBoL,GAA2BzJ,GAE/B6V,GAAiB,SAAUhM,EAAQvP,EAAK1I,GACtC,IAAIkkB,EAAcpN,GAAcpO,GAC5Bwb,KAAejM,EAAQF,GAAqBN,EAAEQ,EAAQiM,EAAarM,GAAyB,EAAG7X,IAC9FiY,EAAOiM,GAAelkB,CAC7B,ECTIiN,GAAQX,EAER8E,GAAahD,GAEbqF,GAHkBhH,GAGQ,WAE9B0X,GAAiB,SAAU5O,GAIzB,OAAOnE,IAAc,KAAOnE,IAAM,WAChC,IAAImX,EAAQ,GAKZ,OAJkBA,EAAMxc,YAAc,IAC1B6L,IAAW,WACrB,MAAO,CAAE4Q,IAAK,IAE2B,IAApCD,EAAM7O,GAAa+O,SAASD,GACvC,GACA,ECjBIlD,GAAI7U,GACJW,GAAQR,EACR1L,GAAUqN,GACV1B,GAAWiF,EACX9C,GAAWgD,GACXrC,GAAoBuC,GACpBwS,GHJa,SAAU1a,GACzB,GAAIA,EAHiB,iBAGM,MAAMqE,GAAW,kCAC5C,OAAOrE,CACT,EGEIoa,GAAiBnI,GACjBhI,GAAqB0N,GACrB2C,GAA+B1C,GAE/BrQ,GAAa0Q,GAEb0C,GAHkB9C,GAGqB,sBAKvC+C,GAA+BrT,IAAc,KAAOnE,IAAM,WAC5D,IAAImX,EAAQ,GAEZ,OADAA,EAAMI,KAAwB,EACvBJ,EAAMpG,SAAS,KAAOoG,CAC/B,IAEIM,GAAqB,SAAUlS,GACjC,IAAK9F,GAAS8F,GAAI,OAAO,EACzB,IAAImS,EAAanS,EAAEgS,IACnB,YAAsBjkB,IAAfokB,IAA6BA,EAAa5jB,GAAQyR,EAC3D,EAOA2O,GAAE,CAAErM,OAAQ,QAASmM,OAAO,EAAMvD,MAAO,EAAGoC,QAL9B2E,KAAiCN,GAA6B,WAKd,CAE5DnG,OAAQ,SAAgB4G,GACtB,IAGIzgB,EAAG0gB,EAAG3gB,EAAQ4gB,EAAKC,EAHnBvS,EAAI3D,GAASnO,MACbskB,EAAIlR,GAAmBtB,EAAG,GAC1BrD,EAAI,EAER,IAAKhL,GAAK,EAAGD,EAASyJ,UAAUzJ,OAAQC,EAAID,EAAQC,IAElD,GAAIugB,GADJK,GAAW,IAAP5gB,EAAWqO,EAAI7E,UAAUxJ,IAI3B,IAFA2gB,EAAMtV,GAAkBuV,GACxBR,GAAyBpV,EAAI2V,GACxBD,EAAI,EAAGA,EAAIC,EAAKD,IAAK1V,IAAS0V,KAAKE,GAAGd,GAAee,EAAG7V,EAAG4V,EAAEF,SAElEN,GAAyBpV,EAAI,GAC7B8U,GAAee,EAAG7V,IAAK4V,GAI3B,OADAC,EAAE9gB,OAASiL,EACJ6V,CACR,ICvDH,IAAIjO,GAAczK,GACdsB,GAAcnB,EACdjN,GAAO4O,GACPnB,GAAQ0E,EACR0H,GAAaxH,GACb0M,GAA8BxM,GAC9B4K,GAA6B1C,GAC7BpL,GAAWiN,GACX/H,GAAgByN,GAGhByD,GAAU5lB,OAAO6lB,OAEjBzV,GAAiBpQ,OAAOoQ,eACxBuO,GAASpQ,GAAY,GAAGoQ,QAI5BmH,IAAkBF,IAAWhY,IAAM,WAEjC,GAAI8J,IAQiB,IARFkO,GAAQ,CAAEG,EAAG,GAAKH,GAAQxV,GAAe,CAAE,EAAE,IAAK,CACnEmI,YAAY,EACZtU,IAAK,WACHmM,GAAe/O,KAAM,IAAK,CACxBV,MAAO,EACP4X,YAAY,GAEf,IACC,CAAEwN,EAAG,KAAMA,EAAS,OAAO,EAE/B,IAAIJ,EAAI,CAAA,EACJK,EAAI,CAAA,EAEJ9T,EAAS3S,SACT0mB,EAAW,uBAGf,OAFAN,EAAEzT,GAAU,EACZ+T,EAAS7e,MAAM,IAAI7F,SAAQ,SAAU2kB,GAAOF,EAAEE,GAAOA,CAAM,IAC1B,GAA1BN,GAAQ,CAAA,EAAID,GAAGzT,IAAgB8H,GAAW4L,GAAQ,CAAA,EAAII,IAAIhhB,KAAK,KAAOihB,CAC/E,IAAK,SAAgBxQ,EAAQ1E,GAM3B,IALA,IAAIoV,EAAI3W,GAASiG,GACb2Q,EAAkB9X,UAAUzJ,OAC5B2Q,EAAQ,EACRvD,EAAwBiN,GAA4B9G,EACpD/I,EAAuBiO,GAA2BlF,EAC/CgO,EAAkB5Q,GAMvB,IALA,IAIInM,EAJAgd,EAAI3R,GAAcpG,UAAUkH,MAC5B5P,EAAOqM,EAAwB0M,GAAO3E,GAAWqM,GAAIpU,EAAsBoU,IAAMrM,GAAWqM,GAC5FxhB,EAASe,EAAKf,OACdyhB,EAAI,EAEDzhB,EAASyhB,GACdjd,EAAMzD,EAAK0gB,KACN5O,KAAevX,GAAKkP,EAAsBgX,EAAGhd,KAAM8c,EAAE9c,GAAOgd,EAAEhd,IAErE,OAAO8c,CACX,EAAIP,GCvDAC,GAASzY,GADLH,GAMN,CAAEwI,OAAQ,SAAU8K,MAAM,EAAMlC,MAAO,EAAGoC,OAAQzgB,OAAO6lB,SAAWA,IAAU,CAC9EA,OAAQA,KCNV,IACI3W,GAAU9B,GCAVlN,GDDwB+M,GAKa,CAAA,EAAG/M,SAAW,WACrD,MAAO,WAAagP,GAAQ7N,MAAQ,GACtC,ECR4B4L,IACRG,GAMJpN,OAAOC,UAAW,WAAYC,GAAU,CAAEse,QAAQ,ICPlE,ICuBI+H,GAAWC,GAAOC,GAASC,GDrB/BC,GAAmC,oBAAXjV,SAA8C,WAFxDzE,EAE4CyE,SEFtDsM,GAAc/Q,GACdmD,GAAiBhD,GAErBwZ,GAAiB,SAAUnR,EAAQpV,EAAMgd,GAGvC,OAFIA,EAAWpZ,KAAK+Z,GAAYX,EAAWpZ,IAAK5D,EAAM,CAAE8d,QAAQ,IAC5Dd,EAAWja,KAAK4a,GAAYX,EAAWja,IAAK/C,EAAM,CAAE+d,QAAQ,IACzDhO,GAAegI,EAAE3C,EAAQpV,EAAMgd,EACxC,ECNI9J,GAAatG,GACb2Z,GAAwBxZ,GAExBsK,GAAcpF,GAEd8B,GAHkBrF,GAGQ,WAE9B8X,GAAiB,SAAUC,GACzB,IAAIC,EAAcxT,GAAWuT,GAEzBpP,IAAeqP,IAAgBA,EAAY3S,KAC7CwS,GAAsBG,EAAa3S,GAAS,CAC1C9D,cAAc,EACdrM,IAAK,WAAc,OAAO5C,IAAO,GAGvC,ECjBIqC,GAAgBuJ,GAEhB4B,GAAarO,UAEjBwmB,GAAiB,SAAUxc,EAAIyc,GAC7B,GAAIvjB,GAAcujB,EAAWzc,GAAK,OAAOA,EACzC,MAAMqE,GAAW,uBACnB,ECPIqF,GAAgBjH,GAChB2B,GAAcxB,GAEdyB,GAAarO,UCHbiW,GAAWxJ,GACXia,GDKa,SAAU/Z,GACzB,GAAI+G,GAAc/G,GAAW,OAAOA,EACpC,MAAM0B,GAAWD,GAAYzB,GAAY,wBAC3C,ECPImC,GAAoBP,GAGpBqF,GAFkB9B,GAEQ,WCL1BtE,GAAcf,EAEdgB,GAAoBtD,SAAS1K,UAC7BoO,GAAQJ,GAAkBI,MAC1BlO,GAAO8N,GAAkB9N,KAG7BgnB,GAAmC,iBAAXC,SAAuBA,QAAQ/Y,QAAUL,GAAc7N,GAAK4N,KAAKM,IAAS,WAChG,OAAOlO,GAAKkO,MAAMA,GAAOC,UAC3B,GCPA+Y,GAFkBpa,EAEW,GAAGjK,OCF5B6L,GAAarO,UCGjB8mB,GAAiB,qCAAqC/mB,KAHtC0M,ITAZ9N,GAAS8N,EACToB,GAAQjB,GACRW,GAAOgB,GACP7B,GAAaoF,EACbpB,GAASsB,GACT5E,GAAQ8E,EACR4H,GAAOM,GACPyM,GAAa5K,GACblP,GAAgB4U,EAChBoF,GQPa,SAAUC,EAAQC,GACjC,GAAID,EAASC,EAAU,MAAM5Y,GAAW,wBACxC,OAAO2Y,CACT,ERKIE,GAASrF,GACTsF,GAAUlF,GAEVrf,GAAMjE,GAAOyoB,aACbC,GAAQ1oB,GAAO2oB,eACfpW,GAAUvS,GAAOuS,QACjBqW,GAAW5oB,GAAO4oB,SAClBpd,GAAWxL,GAAOwL,SAClBqd,GAAiB7oB,GAAO6oB,eACxB1nB,GAASnB,GAAOmB,OAChB2nB,GAAU,EACVC,GAAQ,CAAA,EACRC,GAAqB,qBAGzBva,IAAM,WAEJ2Y,GAAYpnB,GAAO8I,QACrB,IAEA,IAAImgB,GAAM,SAAUjX,GAClB,GAAID,GAAOgX,GAAO/W,GAAK,CACrB,IAAI/C,EAAK8Z,GAAM/W,UACR+W,GAAM/W,GACb/C,GACD,CACH,EAEIia,GAAS,SAAUlX,GACrB,OAAO,WACLiX,GAAIjX,GAER,EAEImX,GAAgB,SAAUC,GAC5BH,GAAIG,EAAM9I,KACZ,EAEI+I,GAAyB,SAAUrX,GAErChS,GAAOspB,YAAYnoB,GAAO6Q,GAAKoV,GAAUmC,SAAW,KAAOnC,GAAUoC,KACvE,EAGKvlB,IAAQykB,KACXzkB,GAAM,SAAsBwlB,GAC1BrB,GAAwBjZ,UAAUzJ,OAAQ,GAC1C,IAAIuJ,EAAKlB,GAAW0b,GAAWA,EAAUje,GAASie,GAC9CC,EAAOxB,GAAW/Y,UAAW,GAKjC,OAJA4Z,KAAQD,IAAW,WACjB5Z,GAAMD,OAAIlN,EAAW2nB,IAEvBrC,GAAMyB,IACCA,IAETJ,GAAQ,SAAwB1W,UACvB+W,GAAM/W,IAGXwW,GACFnB,GAAQ,SAAUrV,GAChBO,GAAQoX,SAAST,GAAOlX,KAGjB4W,IAAYA,GAASgB,IAC9BvC,GAAQ,SAAUrV,GAChB4W,GAASgB,IAAIV,GAAOlX,KAIb6W,KAAmBN,IAE5BhB,IADAD,GAAU,IAAIuB,IACCgB,MACfvC,GAAQwC,MAAMC,UAAYZ,GAC1B9B,GAAQzY,GAAK2Y,GAAK+B,YAAa/B,KAI/BvnB,GAAO8K,kBACPiD,GAAW/N,GAAOspB,eACjBtpB,GAAOgqB,eACR5C,IAAoC,UAAvBA,GAAUmC,WACtB9a,GAAM4a,KAEPhC,GAAQgC,GACRrpB,GAAO8K,iBAAiB,UAAWqe,IAAe,IAGlD9B,GADS2B,MAAsB5a,GAAc,UACrC,SAAU4D,GAChBmJ,GAAKwB,YAAYvO,GAAc,WAAW4a,IAAsB,WAC9D7N,GAAK8O,YAAY/nB,MACjB+mB,GAAIjX,KAKA,SAAUA,GAChB3H,WAAW6e,GAAOlX,GAAK,KAK7B,IAAAkY,GAAiB,CACfjmB,IAAKA,GACLykB,MAAOA,IUlHLyB,GAAQ,WACVjoB,KAAKkoB,KAAO,KACZloB,KAAKmoB,KAAO,IACd,EAEKC,GAACxpB,UAAY,CAChBypB,IAAK,SAAUC,GACb,IAAIC,EAAQ,CAAED,KAAMA,EAAM5oB,KAAM,MAC5ByoB,EAAOnoB,KAAKmoB,KACZA,EAAMA,EAAKzoB,KAAO6oB,EACjBvoB,KAAKkoB,KAAOK,EACjBvoB,KAAKmoB,KAAOI,CACb,EACD3lB,IAAK,WACH,IAAI2lB,EAAQvoB,KAAKkoB,KACjB,GAAIK,EAGF,OADa,QADFvoB,KAAKkoB,KAAOK,EAAM7oB,QACVM,KAAKmoB,KAAO,MACxBI,EAAMD,IAEhB,GAGH,ICNIE,GAAQC,GAAQC,GAAMnnB,GAAS4B,GDMnC0jB,GAAiBoB,GErBjBU,GAAiB,oBAAoBzpB,KAFrB0M,KAEyD,oBAAVgd,OCA/DC,GAAiB,qBAAqB3pB,KAFtB0M,IFAZ9N,GAAS8N,EACTc,GAAOX,GACP2K,GAA2BhJ,GAA2DqJ,EACtF+R,GAAY7X,GAA6BlP,IACzCkmB,GAAQ9W,GACRkV,GAAShV,GACT0X,GAAgBxP,GAChByP,GAAkB5N,GAClBkL,GAAUxF,GAEVmI,GAAmBnrB,GAAOmrB,kBAAoBnrB,GAAOorB,uBACrD1d,GAAW1N,GAAO0N,SAClB6E,GAAUvS,GAAOuS,QACjB1P,GAAU7C,GAAO6C,QAEjBwoB,GAA2BzS,GAAyB5Y,GAAQ,kBAC5DsrB,GAAYD,IAA4BA,GAAyB7pB,MAIrE,IAAK8pB,GAAW,CACd,IAAIvC,GAAQ,IAAIoB,GAEZoB,GAAQ,WACV,IAAIC,EAAQvc,EAEZ,IADIuZ,KAAYgD,EAASjZ,GAAQiK,SAASgP,EAAOC,OAC1Cxc,EAAK8Z,GAAMjkB,WAChBmK,GACD,CAAC,MAAO5L,GAEP,MADI0lB,GAAMqB,MAAMM,KACVrnB,CACP,CACGmoB,GAAQA,EAAOE,SAKhBnD,IAAWC,IAAY0C,KAAmBC,KAAoBzd,IAQvDud,IAAiBpoB,IAAWA,GAAQI,UAE9CQ,GAAUZ,GAAQI,aAAQlB,IAElBqH,YAAcvG,GACtBwC,GAAOuJ,GAAKnL,GAAQ4B,KAAM5B,IAC1BinB,GAAS,WACPrlB,GAAKkmB,MAGE/C,GACTkC,GAAS,WACPnY,GAAQoX,SAAS4B,MAUnBP,GAAYpc,GAAKoc,GAAWhrB,IAC5B0qB,GAAS,WACPM,GAAUO,OA/BZZ,IAAS,EACTC,GAAOld,GAASie,eAAe,IAC/B,IAAIR,GAAiBI,IAAOK,QAAQhB,GAAM,CAAEiB,eAAe,IAC3DnB,GAAS,WACPE,GAAKtK,KAAOqK,IAAUA,KA+B1BW,GAAY,SAAUrc,GACf8Z,GAAMqB,MAAMM,KACjB3B,GAAMwB,IAAItb,GAEd,CAEA,IAAA6c,GAAiBR,GG/EjBS,GAAiB,SAAUrd,GACzB,IACE,MAAO,CAAErL,OAAO,EAAO7B,MAAOkN,IAC/B,CAAC,MAAOrL,GACP,MAAO,CAAEA,OAAO,EAAM7B,MAAO6B,EAC9B,CACH,ECJA2oB,GAFale,EAEWjL,QCDxBopB,GAAgC,iBAARzZ,MAAoBA,MAA+B,iBAAhBA,KAAKf,QCEhEya,IAHcpe,KACAG,IAGQ,iBAAV1C,QACY,iBAAZmC,SCLR1N,GAAS8N,EACTqe,GAA2Ble,GAC3BF,GAAa6B,EACbuQ,GAAWhN,GACXoB,GAAgBlB,GAChBM,GAAkBJ,GAClB6Y,GAAa3Q,GACb4Q,GAAU/O,GAEV1K,GAAaqQ,GAEoCqJ,IAAIH,GAAyBrrB,UAClF,IAAImU,GAAUtB,GAAgB,WAC1B4Y,IAAc,EACdC,GAAiCze,GAAW/N,GAAOysB,uBAEnDC,GAA6BvM,GAAS,WAAW,WACnD,IAAIwM,EAA6BpY,GAAc4X,IAC3CS,EAAyBD,IAA+BxrB,OAAOgrB,IAInE,IAAKS,GAAyC,KAAfha,GAAmB,OAAO,EAMzD,IAAKA,IAAcA,GAAa,KAAO,cAAcxR,KAAKurB,GAA6B,CAErF,IAAIlpB,EAAU,IAAI0oB,IAAyB,SAAUlpB,GAAWA,EAAQ,EAAG,IACvE4pB,EAAc,SAAUne,GAC1BA,GAAK,WAAY,IAAiB,WAAY,KAKhD,IAHkBjL,EAAQ2F,YAAc,IAC5B6L,IAAW4X,IACvBN,GAAc9oB,EAAQ4B,MAAK,WAA2B,cAAawnB,GACjD,OAAO,CAE7B,CAAI,OAAQD,IAA2BR,IAAcC,MAAaG,EAClE,IAEAM,GAAiB,CACfC,YAAaL,GACbM,gBAAiBR,GACjBD,YAAaA,UC5CX5c,GAAY7B,GAEZ4B,GAAarO,UAEb4rB,GAAoB,SAAU5X,GAChC,IAAIpS,EAASH,EACbZ,KAAKuB,QAAU,IAAI4R,GAAE,SAAU6X,EAAWC,GACxC,QAAgBprB,IAAZkB,QAAoClB,IAAXe,EAAsB,MAAM4M,GAAW,2BACpEzM,EAAUiqB,EACVpqB,EAASqqB,CACb,IACEjrB,KAAKe,QAAU0M,GAAU1M,GACzBf,KAAKY,OAAS6M,GAAU7M,EAC1B,EAIgBsqB,GAAAnU,EAAG,SAAU5D,GAC3B,OAAO,IAAI4X,GAAkB5X,EAC/B,ECnBA,IAgDIgY,GAAUC,GAAsCC,GAhDhD5K,GAAI7U,GAEJ0a,GAAU5Y,GACV5P,GAASmT,EACTnS,GAAOqS,GACP8L,GAAgB5L,GAChBgP,GAAiB9G,GACjBuG,GAAiB1E,GACjBoK,GAAa1E,GACbrT,GAAYsT,GACZlV,GAAamV,EACbhV,GAAWoV,EACXuE,GAAa1E,GACbqK,GfLa,SAAUxZ,EAAGyZ,GAC5B,IACIvG,EADA7R,EAAIiC,GAAStD,GAAG5K,YAEpB,YAAarH,IAANsT,GAAmBlF,GAAkB+W,EAAI5P,GAASjC,GAAGJ,KAAYwY,EAAqB1F,GAAab,EAC5G,EeEIgD,GAAOwD,GAA6BzpB,IACpCqnB,GAAYqC,GACZC,GCjBa,SAAUxW,EAAGwP,GAC5B,IAEsB,GAApBzX,UAAUzJ,OAAcmoB,QAAQxqB,MAAM+T,GAAKyW,QAAQxqB,MAAM+T,EAAGwP,EAChE,CAAI,MAAOvjB,GAAsB,CACjC,EDaI0oB,GAAU+B,GACV3D,GAAQ4D,GACRtJ,GAAsBuJ,GACtB7B,GAA2B8B,GAE3BC,GAA6BC,GAE7BC,GAAU,UACV1B,GAJ8B2B,GAI2BtB,YACzDP,GAL8B6B,GAK+BrB,gBAC7DsB,GAN8BD,GAM2B9B,YACzDgC,GAA0B9J,GAAoB3G,UAAUsQ,IACxDxJ,GAAmBH,GAAoBxgB,IACvCuqB,GAAyBrC,IAA4BA,GAAyBrrB,UAC9E2tB,GAAqBtC,GACrBuC,GAAmBF,GACnBntB,GAAYrB,GAAOqB,UACnBqM,GAAW1N,GAAO0N,SAClB6E,GAAUvS,GAAOuS,QACjB6a,GAAuBc,GAA2BjV,EAClD0V,GAA8BvB,GAE9BwB,MAAoBlhB,IAAYA,GAASmhB,aAAe7uB,GAAO8uB,eAC/DC,GAAsB,qBAWtBC,GAAa,SAAU3jB,GACzB,IAAIhG,EACJ,SAAO6I,GAAS7C,KAAO0C,GAAW1I,EAAOgG,EAAGhG,QAAQA,CACtD,EAEI4pB,GAAe,SAAUC,EAAU1R,GACrC,IAMIra,EAAQkC,EAAM8pB,EANd3tB,EAAQgc,EAAMhc,MACd+G,EAfU,GAeLiV,EAAMA,MACXiM,EAAUlhB,EAAK2mB,EAAS3mB,GAAK2mB,EAASE,KACtCnsB,EAAUisB,EAASjsB,QACnBH,EAASosB,EAASpsB,OAClB0Z,EAAS0S,EAAS1S,OAEtB,IACMiN,GACGlhB,IApBK,IAqBJiV,EAAM6R,WAAyBC,GAAkB9R,GACrDA,EAAM6R,UAvBA,IAyBQ,IAAZ5F,EAAkBtmB,EAAS3B,GAEzBgb,GAAQA,EAAOkP,QACnBvoB,EAASsmB,EAAQjoB,GACbgb,IACFA,EAAOiP,OACP0D,GAAS,IAGThsB,IAAW+rB,EAASzrB,QACtBX,EAAOzB,GAAU,yBACRgE,EAAO2pB,GAAW7rB,IAC3BnC,GAAKqE,EAAMlC,EAAQF,EAASH,GACvBG,EAAQE,IACVL,EAAOtB,EACf,CAAC,MAAO6B,GACHmZ,IAAW2S,GAAQ3S,EAAOiP,OAC9B3oB,EAAOO,EACR,CACH,EAEIqnB,GAAS,SAAUlN,EAAO+R,GACxB/R,EAAMgS,WACVhS,EAAMgS,UAAW,EACjBlE,IAAU,WAGR,IAFA,IACI4D,EADAO,EAAYjS,EAAMiS,UAEfP,EAAWO,EAAU3qB,OAC1BmqB,GAAaC,EAAU1R,GAEzBA,EAAMgS,UAAW,EACbD,IAAa/R,EAAM6R,WAAWK,GAAYlS,EAClD,IACA,EAEIsR,GAAgB,SAAU5tB,EAAMuC,EAASksB,GAC3C,IAAIvG,EAAOK,EACPmF,KACFxF,EAAQ1b,GAASmhB,YAAY,UACvBprB,QAAUA,EAChB2lB,EAAMuG,OAASA,EACfvG,EAAMwG,UAAU1uB,GAAM,GAAO,GAC7BlB,GAAO8uB,cAAc1F,IAChBA,EAAQ,CAAE3lB,QAASA,EAASksB,OAAQA,IACtCnD,KAAmC/C,EAAUzpB,GAAO,KAAOkB,IAAQuoB,EAAQL,GACvEloB,IAAS6tB,IAAqBnB,GAAiB,8BAA+B+B,EACzF,EAEID,GAAc,SAAUlS,GAC1Bxc,GAAKkpB,GAAMlqB,IAAQ,WACjB,IAGImD,EAHAM,EAAU+Z,EAAME,OAChBlc,EAAQgc,EAAMhc,MAGlB,GAFmBquB,GAAYrS,KAG7Bra,EAAS4oB,IAAQ,WACXvD,GACFjW,GAAQud,KAAK,qBAAsBtuB,EAAOiC,GACrCqrB,GAAcC,GAAqBtrB,EAASjC,EAC3D,IAEMgc,EAAM6R,UAAY7G,IAAWqH,GAAYrS,GArF/B,EADF,EAuFJra,EAAOE,OAAO,MAAMF,EAAO3B,KAErC,GACA,EAEIquB,GAAc,SAAUrS,GAC1B,OA7FY,IA6FLA,EAAM6R,YAA0B7R,EAAMgO,MAC/C,EAEI8D,GAAoB,SAAU9R,GAChCxc,GAAKkpB,GAAMlqB,IAAQ,WACjB,IAAIyD,EAAU+Z,EAAME,OAChB8K,GACFjW,GAAQud,KAAK,mBAAoBrsB,GAC5BqrB,GAzGa,mBAyGoBrrB,EAAS+Z,EAAMhc,MAC3D,GACA,EAEIoN,GAAO,SAAUK,EAAIuO,EAAOuS,GAC9B,OAAO,SAAUvuB,GACfyN,EAAGuO,EAAOhc,EAAOuuB,GAErB,EAEIC,GAAiB,SAAUxS,EAAOhc,EAAOuuB,GACvCvS,EAAM1b,OACV0b,EAAM1b,MAAO,EACTiuB,IAAQvS,EAAQuS,GACpBvS,EAAMhc,MAAQA,EACdgc,EAAMA,MArHO,EAsHbkN,GAAOlN,GAAO,GAChB,EAEIyS,GAAkB,SAAUzS,EAAOhc,EAAOuuB,GAC5C,IAAIvS,EAAM1b,KAAV,CACA0b,EAAM1b,MAAO,EACTiuB,IAAQvS,EAAQuS,GACpB,IACE,GAAIvS,EAAME,SAAWlc,EAAO,MAAMH,GAAU,oCAC5C,IAAIgE,EAAO2pB,GAAWxtB,GAClB6D,EACFimB,IAAU,WACR,IAAI4E,EAAU,CAAEpuB,MAAM,GACtB,IACEd,GAAKqE,EAAM7D,EACToN,GAAKqhB,GAAiBC,EAAS1S,GAC/B5O,GAAKohB,GAAgBE,EAAS1S,GAEjC,CAAC,MAAOna,GACP2sB,GAAeE,EAAS7sB,EAAOma,EAChC,CACT,KAEMA,EAAMhc,MAAQA,EACdgc,EAAMA,MA/II,EAgJVkN,GAAOlN,GAAO,GAEjB,CAAC,MAAOna,GACP2sB,GAAe,CAAEluB,MAAM,GAASuB,EAAOma,EACxC,CAzBe,CA0BlB,EAGA,GAAIkP,KAcFgC,IAZAD,GAAqB,SAAiB0B,GACpCtI,GAAW3lB,KAAMwsB,IACjB/e,GAAUwgB,GACVnvB,GAAKqsB,GAAUnrB,MACf,IAAIsb,EAAQ+Q,GAAwBrsB,MACpC,IACEiuB,EAASvhB,GAAKqhB,GAAiBzS,GAAQ5O,GAAKohB,GAAgBxS,GAC7D,CAAC,MAAOna,GACP2sB,GAAexS,EAAOna,EACvB,IAGmCvC,WAGtCusB,GAAW,SAAiB8C,GAC1BvL,GAAiB1iB,KAAM,CACrB6C,KAAMqpB,GACNtsB,MAAM,EACN0tB,UAAU,EACVhE,QAAQ,EACRiE,UAAW,IAAItF,GACfkF,WAAW,EACX7R,MAlLQ,EAmLRhc,WAAOO,MAMFjB,UAAYqe,GAAcuP,GAAkB,QAAQ,SAAc0B,EAAaC,GACtF,IAAI7S,EAAQ+Q,GAAwBrsB,MAChCgtB,EAAW9B,GAAqBI,GAAmBtrB,KAAMusB,KAS7D,OARAjR,EAAMgO,QAAS,EACf0D,EAAS3mB,IAAKwF,GAAWqiB,IAAeA,EACxClB,EAASE,KAAOrhB,GAAWsiB,IAAeA,EAC1CnB,EAAS1S,OAASgM,GAAUjW,GAAQiK,YAASza,EA/LnC,GAgMNyb,EAAMA,MAAkBA,EAAMiS,UAAUlF,IAAI2E,GAC3C5D,IAAU,WACb2D,GAAaC,EAAU1R,EAC7B,IACW0R,EAASzrB,OACpB,IAEE6pB,GAAuB,WACrB,IAAI7pB,EAAU,IAAI4pB,GACd7P,EAAQ+Q,GAAwB9qB,GACpCvB,KAAKuB,QAAUA,EACfvB,KAAKe,QAAU2L,GAAKqhB,GAAiBzS,GACrCtb,KAAKY,OAAS8L,GAAKohB,GAAgBxS,IAGrC0Q,GAA2BjV,EAAImU,GAAuB,SAAU/X,GAC9D,OAAOA,IAAMoZ,IA1MmB6B,YA0MGjb,EAC/B,IAAIiY,GAAqBjY,GACzBsZ,GAA4BtZ,IAGlBtH,GAAWoe,KAA6BqC,KAA2B3tB,OAAOC,WAAW,CACnGysB,GAAaiB,GAAuBnpB,KAE/BipB,IAEHnP,GAAcqP,GAAwB,QAAQ,SAAc4B,EAAaC,GACvE,IAAIvgB,EAAO5N,KACX,OAAO,IAAIusB,IAAmB,SAAUxrB,EAASH,GAC/C9B,GAAKusB,GAAYzd,EAAM7M,EAASH,EACjC,IAAEuC,KAAK+qB,EAAaC,EAE7B,GAAS,CAAEhR,QAAQ,IAIf,WACSmP,GAAuBplB,WACpC,CAAM,MAAO/F,GAAsB,CAG3Bkf,IACFA,GAAeiM,GAAwBE,GAE1C,CAGH/L,GAAE,CAAE3iB,QAAQ,EAAMoJ,aAAa,EAAMmnB,MAAM,EAAMjP,OAAQoL,IAA8B,CACrF7pB,QAAS4rB,KAGXzM,GAAeyM,GAAoBL,IAAS,GAClCoC,GAACpC,IE/RX,IACIlM,GAAYjU,GAEZ2T,GAHkB9T,GAGS,YAC3BmP,GAAiB3a,MAAMxB,UCJvBiP,GAAUjC,GACV6J,GAAY1J,GACZkC,GAAoBP,GACpBsS,GAAY/O,GAGZyO,GAFkBvO,GAES,YAE/Bod,GAAiB,SAAUplB,GACzB,IAAK8E,GAAkB9E,GAAK,OAAOsM,GAAUtM,EAAIuW,KAC5CjK,GAAUtM,EAAI,eACd6W,GAAUnS,GAAQ1E,GACzB,ECZIrK,GAAO8M,GACP6B,GAAY1B,GACZqJ,GAAW1H,GACXH,GAAc0D,GACdsd,GAAoBpd,GAEpB3D,GAAarO,UCNbL,GAAO8M,GACPwJ,GAAWrJ,GACX0J,GAAY/H,GCFZhB,GAAOd,GACP9M,GAAOiN,GACPqJ,GAAW1H,GACXH,GAAc0D,GACdud,GJGa,SAAUrlB,GACzB,YAActJ,IAAPsJ,IAAqB6W,GAAU5f,QAAU+I,GAAM4R,GAAe2E,MAAcvW,EACrF,EIJI2F,GAAoBuC,GACpBhP,GAAgBkX,GAChBkV,GFCa,SAAU3iB,EAAU4iB,GACnC,IAAIC,EAAiB1hB,UAAUzJ,OAAS,EAAI+qB,GAAkBziB,GAAY4iB,EAC1E,GAAIjhB,GAAUkhB,GAAiB,OAAOvZ,GAAStW,GAAK6vB,EAAgB7iB,IACpE,MAAM0B,GAAWD,GAAYzB,GAAY,mBAC3C,EEJIyiB,GAAoBzN,GACpB8N,GDLa,SAAUnvB,EAAUojB,EAAMvjB,GACzC,IAAIuvB,EAAaC,EACjB1Z,GAAS3V,GACT,IAEE,KADAovB,EAAcpZ,GAAUhW,EAAU,WAChB,CAChB,GAAa,UAATojB,EAAkB,MAAMvjB,EAC5B,OAAOA,CACR,CACDuvB,EAAc/vB,GAAK+vB,EAAapvB,EACjC,CAAC,MAAO0B,GACP2tB,GAAa,EACbD,EAAc1tB,CACf,CACD,GAAa,UAAT0hB,EAAkB,MAAMvjB,EAC5B,GAAIwvB,EAAY,MAAMD,EAEtB,OADAzZ,GAASyZ,GACFvvB,CACT,ECXIkO,GAAarO,UAEb4vB,GAAS,SAAUC,EAAS/tB,GAC9BjB,KAAKgvB,QAAUA,EACfhvB,KAAKiB,OAASA,CAChB,EAEIguB,GAAkBF,GAAOnwB,UAE7BswB,GAAiB,SAAUC,EAAUC,EAAiBtqB,GACpD,IAMIrF,EAAU4vB,EAAQlb,EAAO3Q,EAAQvC,EAAQvB,EAAM4vB,EAN/C1hB,EAAO9I,GAAWA,EAAQ8I,KAC1B2hB,KAAgBzqB,IAAWA,EAAQyqB,YACnCC,KAAe1qB,IAAWA,EAAQ0qB,WAClCC,KAAiB3qB,IAAWA,EAAQ2qB,aACpCC,KAAiB5qB,IAAWA,EAAQ4qB,aACpC3iB,EAAKL,GAAK0iB,EAAiBxhB,GAG3B+hB,EAAO,SAAUC,GAEnB,OADInwB,GAAUmvB,GAAcnvB,EAAU,SAAUmwB,GACzC,IAAIb,IAAO,EAAMa,IAGtBC,EAAS,SAAUvwB,GACrB,OAAIiwB,GACFna,GAAS9V,GACFowB,EAAc3iB,EAAGzN,EAAM,GAAIA,EAAM,GAAIqwB,GAAQ5iB,EAAGzN,EAAM,GAAIA,EAAM,KAChEowB,EAAc3iB,EAAGzN,EAAOqwB,GAAQ5iB,EAAGzN,IAG9C,GAAIkwB,EACF/vB,EAAW0vB,EAAS1vB,cACf,GAAIgwB,EACThwB,EAAW0vB,MACN,CAEL,KADAE,EAASd,GAAkBY,IACd,MAAM3hB,GAAWD,GAAY4hB,GAAY,oBAEtD,GAAIX,GAAsBa,GAAS,CACjC,IAAKlb,EAAQ,EAAG3Q,EAASsL,GAAkBqgB,GAAW3rB,EAAS2Q,EAAOA,IAEpE,IADAlT,EAAS4uB,EAAOV,EAAShb,MACX9R,GAAc4sB,GAAiBhuB,GAAS,OAAOA,EAC7D,OAAO,IAAI8tB,IAAO,EACrB,CACDtvB,EAAWgvB,GAAYU,EAAUE,EAClC,CAGD,IADA3vB,EAAO8vB,EAAYL,EAASzvB,KAAOD,EAASC,OACnC4vB,EAAOxwB,GAAKY,EAAMD,IAAWG,MAAM,CAC1C,IACEqB,EAAS4uB,EAAOP,EAAKhwB,MACtB,CAAC,MAAO6B,GACPytB,GAAcnvB,EAAU,QAAS0B,EAClC,CACD,GAAqB,iBAAVF,GAAsBA,GAAUoB,GAAc4sB,GAAiBhuB,GAAS,OAAOA,CAC9F,CAAI,OAAO,IAAI8tB,IAAO,EACtB,ECjEIrP,GAFkB9T,GAES,YAC3BkkB,IAAe,EAEnB,IACE,IAAIhd,GAAS,EACTid,GAAqB,CACvBrwB,KAAM,WACJ,MAAO,CAAEE,OAAQkT,KAClB,EACDkd,OAAU,WACRF,IAAe,CAChB,GAEHC,GAAmBrQ,IAAY,WAC7B,OAAO1f,MAGTI,MAAM6vB,KAAKF,IAAoB,WAAc,MAAM,CAAE,GACvD,CAAE,MAAO5uB,GAAsB,CAE/B,IAAA+uB,GAAiB,SAAU1jB,EAAM2jB,GAC/B,IAAKA,IAAiBL,GAAc,OAAO,EAC3C,IAAIM,GAAoB,EACxB,IACE,IAAI7Y,EAAS,CAAA,EACbA,EAAOmI,IAAY,WACjB,MAAO,CACLhgB,KAAM,WACJ,MAAO,CAAEE,KAAMwwB,GAAoB,EACpC,IAGL5jB,EAAK+K,EACT,CAAI,MAAOpW,GAAsB,CAC/B,OAAOivB,CACT,ECrCInG,GAA2Bre,GAI/BykB,GAFiC3iB,GAAsDmd,cADrD9e,IAG0C,SAAUojB,GACpFlF,GAAyBxe,IAAI0jB,GAAUhsB,UAAKtD,GAAW,WAAY,GACrE,ICJIf,GAAOiN,GACP0B,GAAYC,GACZse,GAA6B/a,GAC7B4Y,GAAU1Y,GACV+d,GAAU7d,GALNzF,GAUN,CAAEwI,OAAQ,UAAW8K,MAAM,EAAME,OAJO7F,IAIwC,CAChF9N,IAAK,SAAa0jB,GAChB,IAAIhc,EAAInT,KACJswB,EAAatE,GAA2BjV,EAAE5D,GAC1CpS,EAAUuvB,EAAWvvB,QACrBH,EAAS0vB,EAAW1vB,OACpBK,EAAS4oB,IAAQ,WACnB,IAAI0G,EAAkB9iB,GAAU0F,EAAEpS,SAC9B0D,EAAS,GACTmiB,EAAU,EACV4J,EAAY,EAChBtB,GAAQC,GAAU,SAAU5tB,GAC1B,IAAI4S,EAAQyS,IACR6J,GAAgB,EACpBD,IACA1xB,GAAKyxB,EAAiBpd,EAAG5R,GAAS4B,MAAK,SAAU7D,GAC3CmxB,IACJA,GAAgB,EAChBhsB,EAAO0P,GAAS7U,IACdkxB,GAAazvB,EAAQ0D,GACxB,GAAE7D,EACX,MACQ4vB,GAAazvB,EAAQ0D,EAC7B,IAEI,OADIxD,EAAOE,OAAOP,EAAOK,EAAO3B,OACzBgxB,EAAW/uB,OACnB,ICpCH,IAAIkf,GAAI7U,GAEJ4e,GAA6B9c,GAAsDmd,YACnFZ,GAA2BhZ,GAC3BiB,GAAaf,GACbtF,GAAawF,EACb4L,GAAgB1D,GAEhB+S,GAAyBrC,IAA4BA,GAAyBrrB,UAWlF,GAPA6hB,GAAE,CAAErM,OAAQ,UAAWmM,OAAO,EAAMnB,OAAQoL,GAA4BkG,MAAM,GAAQ,CACpFC,MAAS,SAAUxC,GACjB,OAAOnuB,KAAKmD,UAAKtD,EAAWsuB,EAC7B,IAIatiB,GAAWoe,IAA2B,CACpD,IAAIhlB,GAASiN,GAAW,WAAWtT,UAAiB,MAChD0tB,GAA8B,QAAMrnB,IACtCgY,GAAcqP,GAAwB,QAASrnB,GAAQ,CAAEkY,QAAQ,GAErE,CCxBA,IACIre,GAAOiN,GACP0B,GAAYC,GACZse,GAA6B/a,GAC7B4Y,GAAU1Y,GACV+d,GAAU7d,GALNzF,GAUN,CAAEwI,OAAQ,UAAW8K,MAAM,EAAME,OAJO7F,IAIwC,CAChFqX,KAAM,SAAczB,GAClB,IAAIhc,EAAInT,KACJswB,EAAatE,GAA2BjV,EAAE5D,GAC1CvS,EAAS0vB,EAAW1vB,OACpBK,EAAS4oB,IAAQ,WACnB,IAAI0G,EAAkB9iB,GAAU0F,EAAEpS,SAClCmuB,GAAQC,GAAU,SAAU5tB,GAC1BzC,GAAKyxB,EAAiBpd,EAAG5R,GAAS4B,KAAKmtB,EAAWvvB,QAASH,EACnE,GACA,IAEI,OADIK,EAAOE,OAAOP,EAAOK,EAAO3B,OACzBgxB,EAAW/uB,OACnB,ICvBH,IACIzC,GAAOiN,GACPigB,GAA6Bte,GAFzB9B,GAON,CAAEwI,OAAQ,UAAW8K,MAAM,EAAME,OAJFnO,GAAsD4Z,aAId,CACvEjqB,OAAQ,SAAgBiwB,GACtB,IAAIP,EAAatE,GAA2BjV,EAAE/W,MAE9C,OADAlB,GAAKwxB,EAAW1vB,YAAQf,EAAWgxB,GAC5BP,EAAW/uB,OACnB,ICbH,IAAI6T,GAAWxJ,GACXI,GAAWD,EACXmf,GAAuBxd,GCDvB+S,GAAI7U,GAIJ4e,GAA6BrZ,GAAsD0Z,YACnFiG,GDFa,SAAU3d,EAAG3E,GAE5B,GADA4G,GAASjC,GACLnH,GAASwC,IAAMA,EAAEtH,cAAgBiM,EAAG,OAAO3E,EAC/C,IAAIuiB,EAAoB7F,GAAqBnU,EAAE5D,GAG/C,OADApS,EADcgwB,EAAkBhwB,SACxByN,GACDuiB,EAAkBxvB,OAC3B,ECTiBwK,GAM0B,WAK3C0U,GAAE,CAAErM,OAAQ,UAAW8K,MAAM,EAAME,OAAmBoL,IAA8B,CAClFzpB,QAAS,SAAiByN,GACxB,OAAOsiB,GAAgG9wB,KAAMwO,EAC9G,IChBH,ICuBMwiB,GACAC,GDxBFpjB,GAAUjC,GAEV0B,GAAUrO,OAEdJ,GAAiB,SAAUiN,GACzB,GAA0B,WAAtB+B,GAAQ/B,GAAwB,MAAM3M,UAAU,6CACpD,OAAOmO,GAAQxB,EACjB,EENIsJ,GAAWxJ,GAIfslB,GAAiB,WACf,IAAItjB,EAAOwH,GAASpV,MAChBiB,EAAS,GASb,OARI2M,EAAKujB,aAAYlwB,GAAU,KAC3B2M,EAAK9P,SAAQmD,GAAU,KACvB2M,EAAKwjB,aAAYnwB,GAAU,KAC3B2M,EAAKyjB,YAAWpwB,GAAU,KAC1B2M,EAAK0jB,SAAQrwB,GAAU,KACvB2M,EAAK2jB,UAAStwB,GAAU,KACxB2M,EAAK4jB,cAAavwB,GAAU,KAC5B2M,EAAK6jB,SAAQxwB,GAAU,KACpBA,CACT,ECjBIsL,GAAQX,EAIR8lB,GAHS3lB,EAGQ4lB,OAEjBC,GAAgBrlB,IAAM,WACxB,IAAIslB,EAAKH,GAAQ,IAAK,KAEtB,OADAG,EAAGC,UAAY,EACW,MAAnBD,EAAGrlB,KAAK,OACjB,IAIIulB,GAAgBH,IAAiBrlB,IAAM,WACzC,OAAQmlB,GAAQ,IAAK,KAAKD,MAC5B,IASAO,GAAiB,CACfC,aARiBL,IAAiBrlB,IAAM,WAExC,IAAIslB,EAAKH,GAAQ,KAAM,MAEvB,OADAG,EAAGC,UAAY,EACU,MAAlBD,EAAGrlB,KAAK,MACjB,IAIEulB,cAAeA,GACfH,cAAeA,IC5BbrlB,GAAQX,EAIR8lB,GAHS3lB,EAGQ4lB,OAErBO,GAAiB3lB,IAAM,WACrB,IAAIslB,EAAKH,GAAQ,IAAK,KACtB,QAASG,EAAGP,QAAUO,EAAGrlB,KAAK,OAAsB,MAAbqlB,EAAGM,MAC5C,ICTI5lB,GAAQX,EAIR8lB,GAHS3lB,EAGQ4lB,OAErBS,GAAiB7lB,IAAM,WACrB,IAAIslB,EAAKH,GAAQ,UAAW,KAC5B,MAAiC,MAA1BG,EAAGrlB,KAAK,KAAK6lB,OAAOnd,GACI,OAA7B,IAAIxP,QAAQmsB,EAAI,QACpB,IJPI/yB,GAAO8M,GACPsB,GAAcnB,EACdlN,GAAW6O,GACXwjB,GAAcjgB,GACdqhB,GAAgBnhB,GAEhBlK,GAASsS,GACTiD,GAAmBpB,GAAuCxY,IAC1D2vB,GAAsBzR,GACtB0R,GAAkBzR,GAElB0R,GANSphB,GAMc,wBAAyBpS,OAAOL,UAAU8G,SACjEgtB,GAAaf,OAAO/yB,UAAU4N,KAC9BmmB,GAAcD,GACdE,GAAS1lB,GAAY,GAAG0lB,QACxBl0B,GAAUwO,GAAY,GAAGxO,SACzBgH,GAAUwH,GAAY,GAAGxH,SACzByH,GAAcD,GAAY,GAAGvL,OAE7BkxB,IAEE5B,GAAM,MACVnyB,GAAK4zB,GAFD1B,GAAM,IAEY,KACtBlyB,GAAK4zB,GAAYzB,GAAK,KACG,IAAlBD,GAAIc,WAAqC,IAAlBb,GAAIa,WAGhCF,GAAgBU,GAAcL,aAG9Ba,QAAuCjzB,IAAvB,OAAO2M,KAAK,IAAI,IAExBqmB,IAA4BC,IAAiBlB,IAAiBW,IAAuBC,MAG/FG,GAAc,SAAcnU,GAC1B,IAIIvd,EAAQ8xB,EAAQjB,EAAWniB,EAAOlM,EAAG8T,EAAQyb,EAJ7CnB,EAAK7xB,KACLsb,EAAQkB,GAAiBqV,GACzBoB,EAAMp0B,GAAS2f,GACf0U,EAAM5X,EAAM4X,IAGhB,GAAIA,EAIF,OAHAA,EAAIpB,UAAYD,EAAGC,UACnB7wB,EAASnC,GAAK6zB,GAAaO,EAAKD,GAChCpB,EAAGC,UAAYoB,EAAIpB,UACZ7wB,EAGT,IAAIoxB,EAAS/W,EAAM+W,OACfZ,EAASG,IAAiBC,EAAGJ,OAC7BU,EAAQrzB,GAAKoyB,GAAaW,GAC1BniB,EAASmiB,EAAGniB,OACZyjB,EAAa,EACbC,EAAUH,EA+Cd,GA7CIxB,IACFU,EAAQzsB,GAAQysB,EAAO,IAAK,KACC,IAAzBzzB,GAAQyzB,EAAO,OACjBA,GAAS,KAGXiB,EAAUjmB,GAAY8lB,EAAKpB,EAAGC,WAE1BD,EAAGC,UAAY,KAAOD,EAAGR,WAAaQ,EAAGR,WAA+C,OAAlCuB,GAAOK,EAAKpB,EAAGC,UAAY,MACnFpiB,EAAS,OAASA,EAAS,IAC3B0jB,EAAU,IAAMA,EAChBD,KAIFJ,EAAS,IAAIpB,OAAO,OAASjiB,EAAS,IAAKyiB,IAGzCW,KACFC,EAAS,IAAIpB,OAAO,IAAMjiB,EAAS,WAAYyiB,IAE7CU,KAA0Bf,EAAYD,EAAGC,WAE7CniB,EAAQ7Q,GAAK4zB,GAAYjB,EAASsB,EAASlB,EAAIuB,GAE3C3B,EACE9hB,GACFA,EAAM9K,MAAQsI,GAAYwC,EAAM9K,MAAOsuB,GACvCxjB,EAAM,GAAKxC,GAAYwC,EAAM,GAAIwjB,GACjCxjB,EAAMwE,MAAQ0d,EAAGC,UACjBD,EAAGC,WAAaniB,EAAM,GAAGnM,QACpBquB,EAAGC,UAAY,EACbe,IAA4BljB,IACrCkiB,EAAGC,UAAYD,EAAG/zB,OAAS6R,EAAMwE,MAAQxE,EAAM,GAAGnM,OAASsuB,GAEzDgB,IAAiBnjB,GAASA,EAAMnM,OAAS,GAG3C1E,GAAK2zB,GAAe9iB,EAAM,GAAIojB,GAAQ,WACpC,IAAKtvB,EAAI,EAAGA,EAAIwJ,UAAUzJ,OAAS,EAAGC,SACf5D,IAAjBoN,UAAUxJ,KAAkBkM,EAAMlM,QAAK5D,EAErD,IAGQ8P,GAAS0iB,EAEX,IADA1iB,EAAM0iB,OAAS9a,EAAStQ,GAAO,MAC1BxD,EAAI,EAAGA,EAAI4uB,EAAO7uB,OAAQC,IAE7B8T,GADAyb,EAAQX,EAAO5uB,IACF,IAAMkM,EAAMqjB,EAAM,IAInC,OAAOrjB,IK/GH/D,GAKN,CAAEwI,OAAQ,SAAUmM,OAAO,EAAMnB,OAAQ,IAAI5S,OL8G9BmmB,IK9G+C,CAC9DnmB,KL6GemmB,KMhHJU,IAAAA,GAAQ,WAAA,SAAAA,IAAAC,QAAAD,EAAA,CAoKlB,OApKkBE,GAAAF,EAAA,KAAA,CAAA,CAAArrB,IAAA,QAAApF,IAKnB,WACE,IAAM4wB,EAAShoB,SAASU,cAAc,UAEtC,SACEsnB,IACCA,EAAOC,WAAW,WAAYD,EAAOC,WAAW,sBAErD,GAEA,CAAAzrB,IAAA,SAAApF,IAIA,WACE,IAAM4wB,EAAShoB,SAASU,cAAc,UACtC,QAAqB,OAAXsnB,IAAmBA,EAAOC,aAAcD,EAAOC,WAAW,MACtE,GAEA,CAAAzrB,IAAA,WAAApF,IAIA,WACE,MAAO,uBAAwByG,QAAU,iBAAkBA,MAC7D,GAEA,CAAArB,IAAA,YAAApF,IAIA,WACE,MAAO,qBAAsByG,MAC/B,GAEA,CAAArB,IAAA,aAAApF,IAIA,WACE,MAAO,cAAeyG,QAAU,iBAAkBA,MACpD,GAEA,CAAArB,IAAA,cAAApF,IAIA,WACE,MAAO,gBAAiBuN,SAC1B,GAEA,CAAAnI,IAAA,aAAApF,IAIA,WACE,MAAO,mBAAsB8wB,MAC/B,GAEA,CAAA1rB,IAAA,QAAApF,IAIA,WACE,SACE,iBAAkByG,QACjB8G,UAAUwjB,kBAAoBxjB,UAAUyjB,iBAAmB,GAC3DzjB,UAAU0jB,gBAAkB1jB,UAAU2jB,eAAiB,EAE5D,GAEA,CAAA9rB,IAAA,QAAA1I,MAMA,WACE,OAAK+zB,EAASG,OAEFH,EAASU,UAAaV,EAASW,UAGpC,KAFE,iDAFA,iCAKX,GAEA,CAAAhsB,IAAA,OAAA1I,MAqBA,SAAY20B,GAEV,IAAMntB,EAAM9G,KAAKk0B,QACjB,GAAIptB,EACF,OAAOA,EAGT,IAAMqtB,EAAWF,EAAaE,SACxBC,EAAKH,EAAaG,GAClBC,EAAQJ,EAAaI,MAE3B,IAAK,IAAMr1B,KAAQm1B,EACjB,IAAuB,IAAnBA,EAASn1B,KAAmBq0B,EAASr0B,GAEvC,MAAO,4BAA8BA,EAKzC,IAAKo1B,EAAGE,OAASjB,EAASiB,MACxB,MAAO,oCAIT,IAAMC,EAAOnrB,KAAK0O,IAAIzO,OAAOmrB,OAAOC,MAAOprB,OAAOmrB,OAAOE,QAEzD,OAAKL,EAAMM,QAAUJ,EAAO,IACnB,4CAEJF,EAAMO,OAASL,EAAO,IAClB,sCAEJF,EAAMQ,QAAUN,EAAO,IACnB,uCAEJF,EAAMS,OAASP,EAAO,KAClB,sCAEJF,EAAMU,QAAUR,GAAQ,KACpB,2CAEF,IACT,GAEA,CAAAvsB,IAAA,OAAApF,IAIA,WACE,MAAA,qDAAA0a,OACiB+V,EAASG,OAAS,IAAW,IAAQ,4BAAAlW,OACtC+V,EAAS2B,MAAQ,IAAW,IAAQ,+BAAA1X,OACjC+V,EAAS4B,SAAW,IAAW,IACpD,KAAC5B,CAAA,CApKkB,GCJjBnmB,GAActB,EACd8C,GAAsB3C,GACtBlN,GAAW6O,GACXQ,GAAyB+C,GAEzB2hB,GAAS1lB,GAAY,GAAG0lB,QACxBsC,GAAahoB,GAAY,GAAGgoB,YAC5B/nB,GAAcD,GAAY,GAAGvL,OAE7B2R,GAAe,SAAU6hB,GAC3B,OAAO,SAAUphB,EAAOqhB,GACtB,IAGIC,EAAOC,EAHPtQ,EAAInmB,GAASqP,GAAuB6F,IACpCwhB,EAAW7mB,GAAoB0mB,GAC/Bb,EAAOvP,EAAExhB,OAEb,OAAI+xB,EAAW,GAAKA,GAAYhB,EAAaY,EAAoB,QAAKt1B,GACtEw1B,EAAQH,GAAWlQ,EAAGuQ,IACP,OAAUF,EAAQ,OAAUE,EAAW,IAAMhB,IACtDe,EAASJ,GAAWlQ,EAAGuQ,EAAW,IAAM,OAAUD,EAAS,MAC3DH,EACEvC,GAAO5N,EAAGuQ,GACVF,EACFF,EACEhoB,GAAY6X,EAAGuQ,EAAUA,EAAW,GACVD,EAAS,OAAlCD,EAAQ,OAAU,IAA0B,MAEzD,ECzBIzC,GD2Ba,CAGf4C,OAAQliB,IAAa,GAGrBsf,OAAQtf,IAAa,ICjC+Bsf,OAClD/zB,GAAWkN,GACXwW,GAAsB7U,GACtB8U,GAAiBvR,GACjBqR,GAAyBnR,GAEzBskB,GAAkB,kBAClB/S,GAAmBH,GAAoBxgB,IACvCya,GAAmB+F,GAAoB3G,UAAU6Z,IAIrDjT,GAAevjB,OAAQ,UAAU,SAAU2jB,GACzCF,GAAiB1iB,KAAM,CACrB6C,KAAM4yB,GACNjX,OAAQ3f,GAAS+jB,GACjBzO,MAAO,GAIX,IAAG,WACD,IAGIuhB,EAHApa,EAAQkB,GAAiBxc,MACzBwe,EAASlD,EAAMkD,OACfrK,EAAQmH,EAAMnH,MAElB,OAAIA,GAASqK,EAAOhb,OAAe8e,QAAuBziB,GAAW,IACrE61B,EAAQ9C,GAAOpU,EAAQrK,GACvBmH,EAAMnH,OAASuhB,EAAMlyB,OACd8e,GAAuBoT,GAAO,GACvC,IC7BA,IACIC,GAAU5pB,GAAwCuI,OAD9C1I,GASN,CAAEwI,OAAQ,QAASmM,OAAO,EAAMnB,QAPC1R,GAEoB,WAKW,CAChE4G,OAAQ,SAAgBN,GACtB,OAAO2hB,GAAQ31B,KAAMgU,EAAY/G,UAAUzJ,OAAS,EAAIyJ,UAAU,QAAKpN,EACxE,ICZH,IAAI4gB,GAAI7U,GACJgqB,GAAQ7pB,GAAwC0I,KAChDuG,GAAmBtN,GAEnBmoB,GAAO,OACPC,IAAc,gEAGdD,KAAQ,IAAIz1B,MAAM,GAAGy1B,KAAM,WAAcC,IAAc,CAAM,IAIjErV,GAAE,CAAErM,OAAQ,QAASmM,OAAO,EAAMnB,OAAQ0W,IAAe,CACvDrhB,KAAM,SAAcT,GAClB,OAAO4hB,GAAM51B,KAAMgU,EAAY/G,UAAUzJ,OAAS,EAAIyJ,UAAU,QAAKpN,EACtE,IAIak2B,GAACF,2BCpBRz3B,SAAAA,EAAS43B,GAAA,OAAkF53B,EAArD,mBAAXF,QAAoD,iBAApBA,OAAOuB,SAAoC,SAAkBu2B,GAAA,cAAqBA,CAAA,EAA4B,SAAkBA,GAAA,OAAcA,GAAyB,mBAAX93B,QAAyB83B,EAAI9uB,cAAgBhJ,QAAU83B,IAAQ93B,OAAOU,UAAY,gBAAkBo3B,CAAA,GAA0BA,EAAA,CAAA,SAErVvnB,EAAQoiB,GAAA,MACO,mBAAX3yB,QAAuD,WAA9BE,EAASF,OAAOuB,UAClDu2B,EAAAnZ,QAAiBpO,EAAU,SAAiBunB,GAAA,OACnC53B,EAAS43B,EAGlBA,EAAAA,EAAAnZ,QAAiBpO,EAAU,SAAiBunB,GAAA,OACnCA,GAAyB,mBAAX93B,QAAyB83B,EAAI9uB,cAAgBhJ,QAAU83B,IAAQ93B,OAAOU,UAAY,SAAWR,EAAS43B,IAIxHvnB,EAAQoiB,EAAA,CAGjBmF,EAAAnZ,QAAiBpO,CAAA,mqXCNIwnB,GAAa,WAKhC,SAAAA,EAAAC,GAA8B,IAAAC,EAAAD,EAAhBE,QAAAA,OAAU,IAAHD,EAAG,GAAEA,EAAA7C,QAAA2C,GACxBj2B,KAAKq2B,OAAS,IAAIC,GAElBt2B,KAAKq2B,OAAOE,OAASv2B,KAAKq2B,OAAOG,QAAQ9pB,KAAK1M,KAAKq2B,QAEnDr2B,KAAKq2B,OAAOI,WAAaz2B,KAAKq2B,OAAOrtB,KAAK0D,KAAK1M,KAAKq2B,QACpDr2B,KAAKq2B,OAAOG,QAAU,SAAUtP,GAC9BlnB,KAAKu2B,OAAOrP,EACd,EAAExa,KAAK1M,KAAKq2B,QACZr2B,KAAKq2B,OAAOrtB,KAAO,SAAUke,EAAO9I,GAClCpe,KAAKy2B,WAAWvP,EAAO9I,EACzB,EAAE1R,KAAK1M,KAAKq2B,QAEZr2B,KAAKo2B,QAAUA,CACjB,CAkEC,OAhED7C,GAAA0C,EAAA,CAAA,CAAAjuB,IAAA,eAAA1I,MAMA,WAEE,IAFa,IAAAo3B,EAAA12B,KACP22B,EAAW,GAAGC,EAAA,SAAAnzB,GAElB,IAAKizB,EAAKN,QAAQ3yB,GAAGozB,QAAS,MAAA,WAI9BF,EAASnyB,KACPkyB,EAAKN,QAAQ3yB,GAAGozB,QAAQH,GAAM/F,MAAM,SAAqBxvB,GACvDnB,KAAKo2B,QAAQ3yB,GAAGqzB,eAAgB,EAChCnL,QAAQoL,KAAK/2B,KAAKo2B,QAAQ3yB,GAAGzE,KAAM,kBAAmBmC,EACxD,EAAEuL,KAAKgqB,MATFjzB,EAAI,EAAGuzB,EAAIh3B,KAAKo2B,QAAQ5yB,OAAQC,EAAIuzB,EAAGvzB,IAAGmzB,EAAAnzB,GAcnD,OAAO9C,QAAQ8K,IAAIkrB,GAAUxzB,MAAK,WAEhCuzB,EAAKN,QAAUM,EAAKN,QAAQ9hB,QAC1B,SAAA2iB,GAAM,OAA6B,IAAzBA,EAAOH,iBAInBJ,EAAKN,QAAQl2B,SAAQ,SAAA+2B,GACdA,EAAO7vB,MAIZ6vB,EAAO7vB,KAAKsvB,EACd,IAGAA,EAAKN,QAAQl2B,SAAQ,SAAA+2B,GACdA,EAAOC,OAGZD,EAAOC,MAAMR,EACf,GACF,GACF,GAEA,CAAA1uB,IAAA,OAAA1I,MAIA,SAAK23B,GACHj3B,KAAKo2B,QAAQ5xB,KAAKyyB,EACpB,GAEA,CAAAjvB,IAAA,YAAA1I,MAKA,SAAUN,GACR,OAAOgB,KAAKo2B,QAAQ3hB,MAAK,SAAUwiB,GACjC,OAAOA,EAAOj4B,OAASA,CACzB,GACF,KAACi3B,CAAA,CArF+B,GCOrBkB,YAASC,GAAAC,GAAAF,EAAAC,GAAA,IA0LpBE,EA1LoBC,EAAAC,GAAAL,GASpB,SAAAA,EAAYM,GAAkD,IAAAf,EAAAR,EAAAjpB,UAAAzJ,OAAA,QAAA3D,IAAAoN,UAAA,GAAAA,UAAA,GAAJ,CAAE,EAA5BmpB,EAAOF,EAAPE,QAAOsB,EAAAxB,EAAEyB,QAAAA,OAAO,IAAAD,EAAG,CAAA,EAAEA,EAKnD,GALmDpE,QAAA6D,IACnDT,EAAAa,EAAAz4B,KAAMkB,KAAA,CAAEo2B,QAAAA,KAEHhc,OAASqd,aAA4BG,kBAAoBH,EAAmBjsB,SAASqsB,cAAcJ,GAEpG,OAASf,EAAKtc,OAChB,MAAM,IAAIrX,MAAM,kDAiBE,OAdpB2zB,EAAKoB,QAAS,EACdpB,EAAKqB,SAAU,EACfrB,EAAKsB,QAAU,KAGftB,EAAKuB,SAAWN,EAEhBjB,EAAKwB,UAAYxB,EAAKwB,UAAUxrB,KAAIyrB,GAAAzB,IACpCA,EAAK0B,WAAa1B,EAAK0B,WAAW1rB,KAAIyrB,GAAAzB,IACtCA,EAAK0B,WAAa1B,EAAK0B,WAAW1rB,KAAIyrB,GAAAzB,IACtCA,EAAK2B,UAAY3B,EAAK2B,UAAU3rB,KAAIyrB,GAAAzB,IACpCA,EAAK4B,aAAe5B,EAAK4B,aAAa5rB,KAAIyrB,GAAAzB,IAE1CA,EAAK6B,aACL7B,EAAK8B,eAAe9B,CACtB,CAkQC,OAhQDnD,GAAA4D,EAAA,CAAA,CAAAnvB,IAAA,YAAA1I,MAIA,WACEU,KAAKq2B,OAAOoC,QAAQ,UACtB,GAEA,CAAAzwB,IAAA,aAAA1I,MAIA,WACEU,KAAK+3B,SAAU,EACf/3B,KAAK83B,QAAS,EACd93B,KAAKoa,OAAOhO,UAAUssB,OAAO,WAE7B14B,KAAKq2B,OAAOoC,QAAQ,SACtB,GAEA,CAAAzwB,IAAA,YAAA1I,MAIA,WACEU,KAAK24B,OACP,GACA,CAAA3wB,IAAA,eAAA1I,MAMA,SAAas5B,GACXjN,QAAQxqB,MAAM,+BAAgCy3B,GAAQ,IAAI71B,OAAQiE,MACpE,GAEA,CAAAgB,IAAA,QAAA1I,MAKA,YACoBU,KAAK83B,QAAU93B,KAAK+3B,UAGpC/3B,KAAKq2B,OAAOoC,QAAQ,UAItBz4B,KAAK83B,QAAS,EACd93B,KAAK+3B,SAAU,EAGf/3B,KAAKoa,OAAOye,aAAa,MAAO,IAChC74B,KAAKoa,OAAOhO,UAAUssB,OAAO,UAC/B,GAEA,CAAA1wB,IAAA,aAAA1I,MAKA,WAEEU,KAAKq2B,OAAOyC,GAAG,UAAW94B,KAAKk4B,WAC/Bl4B,KAAKq2B,OAAOyC,GAAG,SAAU94B,KAAKo4B,YAC9Bp4B,KAAKq2B,OAAOyC,GAAG,WAAY94B,KAAKo4B,YAChCp4B,KAAKq2B,OAAOyC,GAAG,UAAW94B,KAAKq4B,WAC/Br4B,KAAKq2B,OAAOyC,GAAG,aAAc94B,KAAKs4B,cAElCt4B,KAAKq2B,OAAO0C,QAAQ/4B,KAAKoa,OAC3B,GAEA,CAAApS,IAAA,iBAAA1I,MAIA,WACEU,KAAK24B,OACP,GAEA,CAAA3wB,IAAA,gBAAA1I,MAQA,SAAc05B,GAA2D,IAAAC,EAAAhsB,UAAAzJ,OAAA,QAAA3D,IAAAoN,UAAA,GAAAA,UAAA,GAAJ,CAAE,EAAAisB,EAAAD,EAA7CE,WAAAA,OAAa,IAAHD,GAAQA,EAAAE,EAAAH,EAAEI,YAAAA,OAAc,IAAHD,EAAG,KAAIA,EACxDt0B,EAAU,CAAEq0B,WAAAA,EAAYE,YAAAA,GAC9Br5B,KAAK24B,QAEL34B,KAAK+3B,SAAU,EACf/3B,KAAKu4B,aAEL,IAAMzxB,EAAMusB,GAASa,QACjBptB,IACF6kB,QAAQxqB,MAAM,SAAU2F,GACxB9G,KAAKq2B,OAAOoC,QAAQ,gBAGtB,IAAIvV,EAAO8V,EACX,GAAI,OAASl0B,EAAQu0B,YAAa,CAChC,IAAMC,EACJ,eACAC,mBAAmBv1B,KAAKw1B,UAAU10B,EAAQu0B,cAE5CnW,GACG,IAAM8V,EAASt6B,QAAQ,KAAI,GAAA4e,OACrB0b,EAAQ1b,KAAAA,OAAIgc,GAAsBhc,GAAAA,OAClC0b,EAAQ1b,KAAAA,OAAIgc,EACvB,CAEAt5B,KAAKoa,OAAOhO,UAAUic,IAAI,WAC1BroB,KAAKoa,OAAOye,aAAa,MAAO3V,GAEhCljB,KAAKq2B,OAAOoD,QAAQ,aAAcN,GAClCn5B,KAAKq2B,OAAOoD,QAAQ,cAAeJ,GACnCr5B,KAAKq2B,OAAOoC,QAAQ,OACtB,GAEA,CAAAzwB,IAAA,WAAA1I,MAOA,SAAS4jB,GAAoB,IAAdpe,EAAOmI,UAAAzJ,OAAA,QAAA3D,IAAAoN,UAAA,GAAAA,UAAA,GAAG,CAAA,EAEnB,WAAQysB,GAAY50B,KACtB6mB,QAAQoL,KACN,0GAEFjyB,EAAU,CAAA,GAGZ9E,KAAK25B,cACHzW,EACAvkB,OAAO6lB,OACL,CACE2U,YAAY,EACZE,YAAa,CAAC,GAEhBv0B,GAGN,GAEA,CAAAkD,IAAA,aAAA1I,OAAAg4B,EAAAsC,GAAAC,KAAAC,MAUA,SAAAC,EACEC,GAAG,IAAAC,EAAAC,EAAAC,EAAAC,EAAAjB,EAAAkB,EAAAhB,EAAA7yB,EAAAzC,EAAAi0B,EAAA72B,EAAAm5B,EAAArtB,UAAA,OAAA4sB,KAAAxL,MAAA,SAAA4J,GAAA,cAAAA,EAAAsC,KAAAtC,EAAAv4B,MAAA,KAAA,EAGiB,OAFuCw6B,GADxDD,EAAAK,EAAA92B,OAAA,QAAA3D,IAAAy6B,EAAAz6B,GAAAy6B,EACsD,GAAA,CAAA,GAAvDH,MAAAA,OAAQ,IAAHD,EAAG,GAAEA,EAAAE,EAAAH,EAAEd,WAAAA,OAAa,IAAHiB,GAAQA,EAAAC,EAAAJ,EAAEZ,YAAAA,OAAW,IAAAgB,EAAG,KAAIA,EAEpDr6B,KAAKg4B,QAAU,KAAKC,EAAAv4B,KAAA,EAEGyH,MAAM6yB,EAAK,CAChCj6B,QAAS,CACP,eAAgB,sBAElB,KAAA,EAJY,OAARyG,EAAQyxB,EAAAuC,KAAAvC,EAAAv4B,KAAA,EAMK8G,EAASzC,OAAM,KAAA,EAAxB,IAAJA,EAAIk0B,EAAAuC,MAGAC,QAAO,CAAAxC,EAAAv4B,KAAA,GAAA,KAAA,CAAA,MACT,IAAIqD,MAAMgB,EAAK5C,OAAM,KAAA,GAKoB,GAD3C62B,EAAUj0B,EAAKqa,OACfjd,EAAQkyB,GAASn0B,KAAK84B,EAAQ/D,eAC3B,CAAAgE,EAAAv4B,KAAA,GAAA,KAAA,CACuC,MAA9CM,KAAKq2B,OAAOoC,QAAQ,cAAe,CAAEt3B,MAAAA,IAC/B,IAAI4B,MAAM5B,GAAM,KAAA,GAIxBnB,KAAKg4B,QAAUA,EACfh4B,KAAK25B,cAAc3B,EAAQjzB,IAAMo1B,EAAO,CACtChB,WAAAA,EACAE,YAAAA,IACC,KAAA,GAAA,IAAA,MAAA,OAAApB,EAAAtI,OAAA,GAAAoK,EAAA/5B,KACJ,KAAA,SAAA06B,GAAA,OAAApD,EAAAtqB,MAAAhN,KAAAiN,UAAA,IAED,CAAAjF,IAAA,UAAA1I,MAIA,WACEU,KAAK24B,QAEL34B,KAAKoa,OAAS,KACdpa,KAAK8E,QAAU,KACf9E,KAAKg4B,QAAU,IACjB,GAEA,CAAAhwB,IAAA,QAAA1I,MAIA,WACMU,KAAK+3B,SAAW/3B,KAAK83B,QACvB93B,KAAKq2B,OAAOoC,QAAQ,SAEpBz4B,KAAKq2B,OAAOrtB,KAAK,UAEjBhJ,KAAK24B,OAET,GAEA,CAAA3wB,IAAA,UAAApF,IAMA,WACE,OAAO5C,KAAKi4B,QACd,EAEAl2B,IAKA,SAAY44B,GACgB,WAAtBjB,GAAOiB,GAIX36B,KAAKi4B,SAAW0C,EAHdhP,QAAQxqB,MAAM,uEAIlB,IAIA,CAAA,CAAA6G,IAAA,UAAApF,IAOA,WACE,aACF,KAACu0B,CAAA,EAnS4BlB,ICNlB2E,GAAc,WAOzB,SAAAA,IAA6D,IAAjDC,EAAO5tB,UAAAzJ,OAAAyJ,QAAApN,IAAAoN,UAAApN,GAAAoN,UAAG,GAAA,WAAW,EAAI6tB,EAAM7tB,UAAAzJ,OAAAyJ,QAAApN,IAAAoN,UAAApN,GAAAoN,UAAG,GAAA,WAAW,EAAEqmB,QAAAsH,GACzD56B,KAAK+6B,SAAWF,EAChB76B,KAAKg7B,QAAUF,EACf96B,KAAK66B,QAAU,SAASz8B,GAClB4B,KAAKi7B,SACPj7B,KAAK+6B,SAAS38B,EAElB,EAAEsO,KAAK1M,MACPA,KAAK86B,OAAS,SAAS18B,GACjB4B,KAAKi7B,SACPj7B,KAAKg7B,QAAQ58B,EAEjB,EAAEsO,KAAK1M,MACPA,KAAKk7B,UAAW,EAChBl7B,KAAKi7B,SAAU,EAEfj7B,KAAKm7B,SAAWn7B,KAAKm7B,SAASzuB,KAAK1M,KACrC,CAuDC,OArDDuzB,GAAAqH,EAAA,CAAA,CAAA5yB,IAAA,UAAA1I,MAIA,WACEU,KAAKi7B,SAAU,EACfj7B,KAAKm7B,SAAW,KAChBn7B,KAAK66B,QAAU,KACf76B,KAAK86B,OAAS,IAChB,GAEA,CAAA9yB,IAAA,WAAA1I,MAKA,SAASs5B,GACH54B,KAAKi7B,UACPzvB,SAAS+qB,OAASv2B,KAAK86B,OAAOlC,GAAU54B,KAAK66B,QAAQjC,GAEzD,GAEA,CAAA5wB,IAAA,UAAApF,IAKA,WACE,OAAO5C,KAAKk7B,QACd,EAEAn5B,IAIA,SAAYq5B,GACVp7B,KAAKk7B,SAAWE,EAEhB5vB,SAASzC,oBAAoB,mBAAoB/I,KAAKm7B,UAAU,GAChE9xB,OAAON,oBAAoB,OAAQ/I,KAAK86B,QAAQ,GAChDzxB,OAAON,oBAAoB,QAAS/I,KAAK66B,SAAS,GAClDxxB,OAAON,oBAAoB,WAAY/I,KAAK86B,QAAQ,GACpDzxB,OAAON,oBAAoB,WAAY/I,KAAK66B,SAAS,GACrDxxB,OAAON,oBAAoB,mBAAoB/I,KAAKm7B,UAAU,GAE1Dn7B,KAAKk7B,WACP1vB,SAAS5C,iBAAiB,mBAAoB5I,KAAKm7B,UAAU,GAC7D9xB,OAAOT,iBAAiB,OAAQ5I,KAAK86B,QAAQ,GAC7CzxB,OAAOT,iBAAiB,QAAS5I,KAAK66B,SAAS,GAC/CxxB,OAAOT,iBAAiB,WAAY5I,KAAK86B,QAAQ,GACjDzxB,OAAOT,iBAAiB,WAAY5I,KAAK66B,SAAS,GAClDxxB,OAAOT,iBAAiB,mBAAoB5I,KAAKm7B,UAAU,GAE/D,KAACP,CAAA,CA/EwB,GCTvBS,GAAYtvB,GAAuCsM,SAEnD2C,GAAmB/J,GAHfrF,GAaN,CAAEwI,OAAQ,QAASmM,OAAO,EAAMnB,OAXtB1R,GAIiB,WAE3B,OAAQtN,MAAM,GAAGiY,UACnB,KAI8D,CAC5DA,SAAU,SAAkBH,GAC1B,OAAOmjB,GAAUr7B,KAAMkY,EAAIjL,UAAUzJ,OAAS,EAAIyJ,UAAU,QAAKpN,EAClE,IAIHmb,GAAiB,YCpBjB,IAAAsgB,GAAiB,gDCAbptB,GAAyBnC,GACzBlN,GAAW6O,GACX4tB,GAAcrqB,GAEdvL,GALckG,EAKQ,GAAGlG,SACzB61B,GAAQ5J,OAAO,KAAO2J,GAAc,MACpCE,GAAQ7J,OAAO,QAAU2J,GAAc,MAAQA,GAAc,OAG7DhoB,GAAe,SAAUC,GAC3B,OAAO,SAAUQ,GACf,IAAIyK,EAAS3f,GAASqP,GAAuB6F,IAG7C,OAFW,EAAPR,IAAUiL,EAAS9Y,GAAQ8Y,EAAQ+c,GAAO,KACnC,EAAPhoB,IAAUiL,EAAS9Y,GAAQ8Y,EAAQgd,GAAO,OACvChd,EAEX,EAEAid,GAAiB,CAGfvE,MAAO5jB,GAAa,GAGpBooB,IAAKpoB,GAAa,GAGlBxN,KAAMwN,GAAa,IC5BjB4N,GAAuBtV,GAAsCyQ,OAC7D9P,GAAQR,EACRuvB,GAAc5tB,GCAdiuB,GAAQ5vB,GAAoCjG,KADxC8F,GAMN,CAAEwI,OAAQ,SAAUmM,OAAO,EAAMnB,ODClB,SAAUvK,GACzB,OAAOtI,IAAM,WACX,QAAS+uB,GAAYzmB,MANf,cAOGA,MACHqM,IAAwBoa,GAAYzmB,GAAa7V,OAAS6V,CACpE,GACA,CCP2C+mB,CAAuB,SAAW,CAC3E91B,KAAM,WACJ,OAAO61B,GAAM37B,KACd,ICVH,IAAIlB,GAAO8M,GACPiE,GAAS9D,GACT1J,GAAgBqL,GAChBmuB,GAAc5qB,GAEd6qB,GAAkBnK,OAAO/yB,UCJzBsiB,GAAuBtV,GAAsCyQ,OAC7DY,GAAgBlR,GAChBqJ,GAAW1H,GACXquB,GAAY9qB,GACZ1E,GAAQ4E,EACR6qB,GDCa,SAAUC,GACzB,IAAI9J,EAAQ8J,EAAE9J,MACd,YAAiBtyB,IAAVsyB,GAAyB,UAAW2J,IAAqBjsB,GAAOosB,EAAG,WAAY55B,GAAcy5B,GAAiBG,GAC1F9J,EAAvBrzB,GAAK+8B,GAAaI,EACxB,ECHIC,GAAY,WAEZC,GADkBxK,OAAO/yB,UACQs9B,IAEjCE,GAAc7vB,IAAM,WAAc,MAA2D,QAApD4vB,GAAer9B,KAAK,CAAE4Q,OAAQ,IAAKyiB,MAAO,KAAmB,IAEtGkK,GAAiBnb,IAAwBib,GAAen9B,MAAQk9B,IAIhEE,IAAeC,KACjBpf,GAAc0U,OAAO/yB,UAAWs9B,IAAW,WACzC,IAAID,EAAI7mB,GAASpV,MAGjB,MAAO,IAFO+7B,GAAUE,EAAEvsB,QAEH,IADXqsB,GAAUC,GAAeC,GAEzC,GAAK,CAAE9e,QAAQ,ICnBFmf,IAAAA,GAAS,WAKpB,SAAAA,IAAyB,IAAbC,EAAMtvB,UAAAzJ,OAAA,QAAA3D,IAAAoN,UAAA,GAAAA,UAAA,GAAG,GAAEqmB,QAAAgJ,GACrBt8B,KAAKw8B,GAAK,KACVx8B,KAAKu8B,OAASA,CAChB,CAoDC,OAnDDhJ,GAAA+I,EAAA,CAAA,CAAAt0B,IAAA,UAAA1I,MA+DA,SAASi9B,GAAqE,IAAA7F,EAAA12B,KAA7Dy8B,EAASxvB,UAAAzJ,OAAA,QAAA3D,IAAAoN,UAAA,GAAAA,UAAA,GAAG,KAAMyvB,EAASzvB,UAAAzJ,OAAA,QAAA3D,IAAAoN,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAI0vB,EAAS1vB,UAAAzJ,OAAA,QAAA3D,IAAAoN,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAI5I,EAAQ4I,UAAAzJ,OAAAyJ,EAAAA,kBAAApN,EACnEwH,EAAUo1B,EAAYG,UAAUt0B,KAAKi0B,EAAQE,GAAaG,UAAUt0B,KAAKi0B,GAE/El1B,EAAQw1B,UAAY,SAAAz+B,GAElBs4B,EAAK8F,GAAKp+B,EAAEgW,OAAOnT,OAEfy1B,EAAK8F,GAAGjtB,SAAWktB,EAAyB,MAAbA,GACjCp4B,EAAS,CAACpD,OAAQ,mBAAoBw5B,SAAS,KAInDpzB,EAAQnG,QAAU,WAChBmD,EAAS,CAACpD,OAAQoG,EAAQlG,MAAMtC,WAAY47B,SAAS,KAIvDpzB,EAAQy1B,gBAAkB,SAAA1+B,GAExBs4B,EAAK8F,GAAKp+B,EAAEgW,OAAOnT,OAEF,MAAby7B,IACEA,EAAUK,QACZL,EAAUK,OAAO78B,SAAQ,SAAAmP,GACvBqnB,EAAK8F,GAAGQ,kBAAkB3tB,EAAM4tB,UAAW5tB,EAAMvK,QACnD,IAEuB,MAArB43B,EAAUQ,SACZR,EAAUQ,QAAQh9B,SAAQ,SAAAiU,GAGJ9M,EAAQ81B,YAAYC,YAAYjpB,EAAM8oB,WAC9CI,YAAYlpB,EAAMmpB,UAAWnpB,EAAMopB,QAASppB,EAAMrP,QAChE,KAIa,MAAb63B,IACuB,MAArBA,EAAUO,SAEZP,EAAUO,QAAQh9B,SAAQ,SAACiU,GAEL9M,EAAQ81B,YAAYC,YAAYjpB,EAAM8oB,WAC9CO,YAAYrpB,EAAMmpB,UAChC,IAEEX,EAAUI,QACZJ,EAAUI,OAAO78B,SAAQ,SAACmP,GACxBqnB,EAAK8F,GAAGiB,kBAAkBpuB,EAAM4tB,UAClC,KAGJ54B,EAAS,CAACpD,OAAQ,uCAAwCw5B,SAAS,IAEvE,GAEA,CAAAzyB,IAAA,cAAA1I,MAMA,SAAYi9B,GAAuC,IAA/Bz3B,EAAOmI,UAAAzJ,OAAA,QAAA3D,IAAAoN,UAAA,GAAAA,UAAA,GAAG,KAAM5I,EAAQ4I,UAAAzJ,OAAA,QAAA3D,IAAAoN,UAAA,GAAAA,UAAA,GAAG,CAAA,EACvC5F,EAAqB,MAAXvC,EAAkB83B,UAAUc,eAAenB,EAAQz3B,GAAU83B,UAAUc,eAAenB,GAEtGl1B,EAAQw1B,UAAY,SAACz+B,GACnBiG,EAAS,CAACpD,OAAQ,wCAA0C7C,EAAE6C,OAAQw5B,SAAS,KAEjFpzB,EAAQnG,QAAU,WAChBmD,EAAS,CAACpD,OAAQoG,EAAQlG,MAAMtC,WAAY47B,SAAS,IAIzD,GAEA,CAAAzyB,IAAA,SAAA1I,MAOA,SAAO29B,EAAW39B,EAAO0I,EAAK3D,GACtBrE,KAAKw8B,IAAqB,IAAfx8B,KAAKu8B,QACpBv8B,KAAK29B,QAAQ39B,KAAKu8B,QAGpB,IAAMqB,EAAK59B,KAAKw8B,GAAGW,YAAYF,EAAW,aAC1CW,EAAG18B,QAAU,WAAA,OAAMmD,EAAS,CAACpD,OAAoB,MAAZ28B,EAAGz8B,MAAgBy8B,EAAGz8B,MAAMtC,WAAa,yDAA0D47B,SAAS,GAAO,EACxJmD,EAAGv1B,QAAU,WAAA,OAAMhE,EAAS,CAACpD,OAAoB,MAAZ28B,EAAGz8B,MAAgBy8B,EAAGz8B,MAAMtC,WAAa,yDAA0D47B,SAAS,GAAO,EAExJmD,EAAGC,WAAa,WAAA,OAAMx5B,EAAS,CAACpD,OAAQ,wBAAyBw5B,SAAS,GAAM,EAClEmD,EAAGR,YAAYH,GACvB5U,IAAI/oB,EAAO0I,EACnB,GAEA,CAAAA,IAAA,YAAA1I,MAOA,SAAW29B,EAAWj1B,EAAK1I,EAAO+E,GAC1BrE,KAAKw8B,IAAqB,IAAfx8B,KAAKu8B,QACpBv8B,KAAK29B,QAAQ39B,KAAKu8B,QAGpB,IAGMuB,EAHK99B,KAAKw8B,GAAGW,YAAYF,EAAW,aACzBG,YAAYH,GAEDc,IAAIz+B,EAAO0I,GAEvC81B,EAAcjB,UAAY,WACxBx4B,EAAS,CAACpD,OAAQ,0BAA2Bw5B,SAAS,KAGxDqD,EAAc58B,QAAU,WAAA,OAAMmD,EAAS,CAACpD,OAAQ68B,EAAc38B,MAAMtC,WAAY47B,SAAS,GAAO,CAClG,GAEA,CAAAzyB,IAAA,YAAA1I,MAMA,SAAU29B,EAAWj1B,EAAK3D,GAAU,IAAA25B,EAAAh+B,KAC5BA,KAAKw8B,IAAqB,IAAfx8B,KAAKu8B,QACpBv8B,KAAK29B,QAAQ39B,KAAKu8B,QAGpB,IAAMqB,EAAK59B,KAAKw8B,GAAGW,YAAYF,EAAW,aAC1CW,EAAG18B,QAAU,WAAA,OAAMmD,EAAS,CAACpD,OAAQ+8B,EAAKxB,GAAGr7B,MAAMtC,WAAY47B,SAAS,GAAO,EACjEmD,EAAGR,YAAYH,GACvBgB,OAAOj2B,GAEb41B,EAAGC,WAAa,WAAA,OAAMx5B,EAAS,CAACpD,OAAQ,uBAAwBw5B,SAAS,GAAM,CAEjF,GAEA,CAAAzyB,IAAA,UAAA1I,MAMA,SAAQ29B,EAAWj1B,EAAK3D,GAAU,IAAA65B,EAAAl+B,KAE1B49B,EAAK59B,KAAKw8B,GAAGW,YAAYF,EAAW,YAEpC5tB,EAAQuuB,EAAGR,YAAYH,GAE7BW,EAAG18B,QAAU,WAAA,OAAMmD,EAAS,CAACpD,OAAQi9B,EAAK1B,GAAGr7B,MAAMtC,WAAY47B,SAAS,GAAO,EAE/E,IAAM0D,EAAc9uB,EAAMzM,IAAIoF,GAE9Bm2B,EAAYtB,UAAY,WACtBx4B,EAAS,CAACpD,OAAQk9B,EAAYl9B,OAAQw5B,QAA+B56B,MAAtBs+B,EAAYl9B,SAG/D,GAEA,CAAA+G,IAAA,kBAAA1I,MAQA,SAAiB29B,EAAWK,GAAsD,IAAAc,EAAAp+B,KAA3Cm6B,EAAKltB,UAAAzJ,OAAA,QAAA3D,IAAAoN,UAAA,GAAAA,UAAA,GAAG,KAAMoxB,EAAKpxB,UAAAzJ,OAAA,QAAA3D,IAAAoN,UAAA,GAAAA,UAAA,GAAG,KAAM5I,EAAQ4I,UAAAzJ,OAAA,QAAA3D,IAAAoN,UAAA,GAAAA,UAAA,GAAG,CAAA,EAEtE2wB,EAAK59B,KAAKw8B,GAAGW,YAAYF,EAAW,YAEpC5tB,EAAQuuB,EAAGR,YAAYH,GAI7BW,EAAG18B,QAAU,WAAA,OAAMmD,EAAS,CAACpD,OAAQm9B,EAAK5B,GAAGr7B,MAAMtC,WAAY47B,SAAS,GAAO,GAE3EN,GAASkE,EACHhvB,EAAM8E,MAAMmpB,EAAWnD,EAAOkE,GAC7BlE,EACD9qB,EAAM8E,MAAMmpB,EAAWnD,GAEvB9qB,EAAM8E,MAAMmpB,IAGUgB,aAGdzB,UAAY,SAASz+B,GACrCiG,EAAS,CAACpD,OAAS7C,EAAE6C,OAAQw5B,SAAS,IAE1C,GAEA,CAAAzyB,IAAA,aAAA1I,MAMA,SAAW29B,EAAWoB,EAAOh6B,GAE3B,IAAMu5B,EAAK59B,KAAKw8B,GAAGW,YAAYF,EAAW,YAEpC5tB,EAAQuuB,EAAGR,YAAYH,GAEvBkB,EAAuB,MAATE,EAAgBhvB,EAAMkvB,OAAO,KAAMF,GAAShvB,EAAMkvB,SAItEX,EAAG18B,QAAU,WAAA,OAAMmD,EAAS,CAACpD,OAAQ28B,EAAGz8B,MAAMtC,WAAY47B,SAAS,GAAO,EAG1E0D,EAAYtB,UAAY,WACtBx4B,EAAS,CAACpD,OAAQk9B,EAAYl9B,OAAQw5B,QAA+B56B,MAAtBs+B,EAAYl9B,SAE/D,GAEA,CAAA+G,IAAA,gBAAA1I,MAMA,SAAci9B,EAAQl4B,GAEpB,IAAMm6B,EAAgBn1B,OAAOuzB,UAAUt0B,KAAKi0B,GAI5CiC,EAAct9B,QAAU,WACtBmD,EAAS,CAACpD,OAAQu9B,EAAcr9B,MAAMtC,WAAY47B,SAAS,KAG7D+D,EAAc3B,UAAY,WACxB,IAAML,EAAKgC,EAAcv9B,OACzBoD,EAAS,CAACpD,OAAQu7B,EAAGjtB,QAASkrB,SAAS,IAE3C,GAEA,CAAAzyB,IAAA,WAAA1I,MAIA,SAAS+E,GACFrE,KAAKw8B,KACRx8B,KAAKw8B,GAAG1iB,QACRzV,EAAS,CAACpD,OAAQ,sCAAuCw5B,SAAS,IAEtE,IAAC,CAAA,CAAAzyB,IAAA,SAAA1I,MApTD,SAAcN,GACZy/B,aAAaC,WAAW1/B,GACxB2/B,eAAeD,WAAW1/B,EAC5B,GAEA,CAAAgJ,IAAA,QAAA1I,MAQA,SAAaN,EAAMM,GAEjB,OAFgC2N,UAAAzJ,OAAA,QAAA3D,IAAAoN,UAAA,IAAAA,UAAA,GAG5B0xB,eAAeC,QACf5/B,EACAgF,KAAKw1B,UAAU,mBAAsBl6B,EAAQA,IAAUA,IAEvDm/B,aAAaG,QACb5/B,EACAgF,KAAKw1B,UAAU,mBAAsBl6B,EAAQA,IAAUA,GAE7D,GAEA,CAAA0I,IAAA,OAAA1I,MAOA,SAAYN,GACV,IAAMM,EAAQm/B,aAAaI,QAAQ7/B,IAAS2/B,eAAeE,QAAQ7/B,GAEnE,GAAI,iBAAoBM,EAOtB,OAAOA,EANP,IACE,OAAO0E,KAAKC,MAAM3E,EACnB,CAAC,MAAOwH,GACP,OAAOxH,CACT,CAIJ,KAACg9B,CAAA,CA5DmB,GCOTwC,GAAU,WAMrB,SAAAA,EAAY9/B,GAAMs0B,QAAAwL,GAChB9+B,KAAKhB,KAAOA,EACZgB,KAAKq2B,OAAS,IAChB,CAEA,IAAA0I,EAuDC,OAvDDxL,GAAAuL,EAAA,CAAA,CAAA92B,IAAA,UAAA1I,OAAAy/B,EAAAnF,GAAAC,KAAAC,MAMA,SAAAC,EAAA7D,GAAA,IAAAG,EAAA,OAAAwD,KAAAxL,MAAA,SAAA4J,GAAA,cAAAA,EAAAsC,KAAAtC,EAAAv4B,MAAA,KAAA,EAAgB22B,EAAMH,EAANG,OACdr2B,KAAKq2B,OAASA,EAAO,KAAA,EAAA,IAAA,MAAA,OAAA4B,EAAAtI,OAAA,GAAAoK,EAAA/5B,KACtB,KAAA,SAAA06B,GAAA,OAAAqE,EAAA/xB,MAAAhN,KAAAiN,UAAA,IAED,CAAAjF,IAAA,QAAA1I,MAIA,WACEU,KAAKq2B,OAAOyC,GAAG,SAAU94B,KAAKg/B,mBAC9Bh/B,KAAKq2B,OAAOyC,GAAG,WAAY94B,KAAKg/B,kBAClC,GAEA,CAAAh3B,IAAA,OAAA1I,MAKA,SAAK2/B,GAAK,GAEV,CAAAj3B,IAAA,eAAA1I,MAQA,SAAa4/B,EAAM5/B,GAA4B,IAArB6/B,EAAWlyB,UAAAzJ,OAAA,QAAA3D,IAAAoN,UAAA,IAAAA,UAAA,GACnCqvB,GAAUziB,MAAMqlB,EAAM5/B,GAClB6/B,GACJn/B,KAAKq2B,OAAOrtB,KAAKk2B,EAAM5/B,EACzB,GAGA,CAAA0I,IAAA,oBAAA1I,MAKA,SAAkB2/B,GAAK,GAEvB,CAAAj3B,IAAA,OAAA1I,MAKA,SAAK8/B,GACHzT,QAAQoL,KAAIzZ,yBAAAA,OAA0Btd,KAAKhB,KAAIse,MAAAA,OAAK8hB,GACtD,KAACN,CAAA,CAlEoB,GCDVO,YAAYC,GAAAjI,GAAAgI,EAAAC,GAAA,IAAA/H,EAAAC,GAAA6H,GAOvB,SAAAA,EAAYrgC,GAAM,IAAA03B,EAEO,OAFPpD,QAAA+L,IAChB3I,EAAAa,EAAAz4B,UAAME,IACDugC,WAAY,EAAM7I,CACzB,CAyEC,OAvEDnD,GAAA8L,EAAA,CAAA,CAAAr3B,IAAA,OAAA1I,MAIA,SAAKkgC,GAEHx/B,KAAKu/B,WAAY,CACnB,GAEA,CAAAv3B,IAAA,iBAAA1I,MAMA,SAAemgC,GACTA,aAAkBC,oBACpBD,EAAOrzB,UAAUssB,OAAO,WACxB+G,EAAOrzB,UAAUic,IAAI,YAEzB,GAEA,CAAArgB,IAAA,QAAA1I,MAKA,WACEU,KAAKu/B,WAAY,CACnB,GAEA,CAAAv3B,IAAA,eAAA1I,MASA,SAAa4/B,EAAMO,EAAQE,GAA4B,IAAA3B,EAAAh+B,KAArBm/B,EAAWlyB,UAAAzJ,OAAA,QAAA3D,IAAAoN,UAAA,IAAAA,UAAA,GAC3C0e,QAAQiU,IAAI,eAAgBV,EAAMS,EAAOR,GACrC/+B,MAAMC,QAAQo/B,GAChBA,EAAOv/B,SAAQ,SAAAwkB,GAAC,OAAIsZ,EAAK6B,iBAAiBnb,EAAGib,MAE7C3/B,KAAK6/B,iBAAiBJ,EAAQE,GAGhC3/B,KAAK8/B,aAAaZ,EAAMS,EAAOR,EACjC,GAEA,CAAAn3B,IAAA,mBAAA1I,MAQA,SAAiBmgC,GAAuB,IAAfE,EAAK1yB,UAAAzJ,OAAA,QAAA3D,IAAAoN,UAAA,IAAAA,UAAA,GAGtB8yB,EAAaN,EAAOA,OAASA,EAAOA,OAASA,EAE7CM,aAAsBC,cAI5BD,EAAW3zB,UAAUssB,OAAO,WAC5BqH,EAAW3zB,UAAUssB,OAAO,SAC5BqH,EAAW3zB,UAAUic,IAAIsX,EAAQ,QAAU,WAC7C,KAACN,CAAA,EAnF+BP,ICX9B9yB,GAAWJ,EACXiC,GAAU9B,EAGVk0B,GAFkBvyB,GAEM,SCJxBwyB,GDQa,SAAU/2B,GACzB,IAAI+2B,EACJ,OAAOl0B,GAAS7C,UAAmCtJ,KAA1BqgC,EAAW/2B,EAAG82B,OAA0BC,EAA0B,UAAfryB,GAAQ1E,GACtF,ECTIqE,GAAarO,UCAb8gC,GAFkBr0B,GAEM,SCDxB6U,GAAI7U,GAEJu0B,GFCa,SAAUh3B,GACzB,GAAI+2B,GAAS/2B,GACX,MAAMqE,GAAW,iDACjB,OAAOrE,CACX,EEJI+E,GAAyB+C,GACzBpS,GAAWsS,GACXivB,GDFa,SAAUvrB,GACzB,IAAIwrB,EAAS,IACb,IACE,MAAMxrB,GAAawrB,EACpB,CAAC,MAAOC,GACP,IAEE,OADAD,EAAOJ,KAAS,EACT,MAAMprB,GAAawrB,EAChC,CAAM,MAAOE,GAAuB,CACjC,CAAC,OAAO,CACX,ECNIC,GANcz0B,EAMc,GAAGrN,SAInC+hB,GAAE,CAAErM,OAAQ,SAAUmM,OAAO,EAAMnB,QAASghB,GAAqB,aAAe,CAC9E/nB,SAAU,SAAkBooB,GAC1B,SAAUD,GACR3hC,GAASqP,GAAuBlO,OAChCnB,GAASshC,GAAWM,IACpBxzB,UAAUzJ,OAAS,EAAIyJ,UAAU,QAAKpN,EAEzC,8BCnBCkY,GAAkBnM,GAClBkD,GAAoB/C,GACpBwX,GAAiB7V,GAEjBsF,GAAS5S,MACT0X,GAAM1O,KAAK0O,ICJXjK,GAAUjC,EACViM,GAAkB9L,GAClB20B,GAAuBhzB,GAAsDqJ,EAC7EiP,GDGa,SAAUlU,EAAGolB,EAAOwE,GAKnC,IAJA,IAAIl4B,EAASsL,GAAkBgD,GAC3BqS,EAAIpM,GAAgBmf,EAAO1zB,GAC3Bm9B,EAAM5oB,QAAwBlY,IAAR67B,EAAoBl4B,EAASk4B,EAAKl4B,GACxDvC,EAAS+R,GAAO8E,GAAI6oB,EAAMxc,EAAG,IACxB1V,EAAI,EAAG0V,EAAIwc,EAAKxc,IAAK1V,IAAK8U,GAAetiB,EAAQwN,EAAGqD,EAAEqS,IAE/D,OADAljB,EAAOuC,OAASiL,EACTxN,CACT,ECTI2/B,GAA+B,iBAAVv3B,QAAsBA,QAAU1K,OAAO4B,oBAC5D5B,OAAO4B,oBAAoB8I,QAAU,GAWzCw3B,GAAA9pB,EAAmB,SAA6B5N,GAC9C,OAAOy3B,IAA8B,UAAf/yB,GAAQ1E,GAVX,SAAUA,GAC7B,IACE,OAAOu3B,GAAqBv3B,EAC7B,CAAC,MAAOhI,GACP,OAAO6kB,GAAW4a,GACnB,CACH,CAKME,CAAe33B,GACfu3B,GAAqB7oB,GAAgB1O,GAC3C,ECrBA,IAEA43B,GAFYn1B,GAEW,WACrB,GAA0B,mBAAfrN,YAA2B,CACpC,IAAIyD,EAAS,IAAIzD,YAAY,GAEzBI,OAAOqiC,aAAah/B,IAASrD,OAAOoQ,eAAe/M,EAAQ,IAAK,CAAE1C,MAAO,GAC9E,CACH,ICTIiN,GAAQX,EACRI,GAAWD,EACX8B,GAAUH,EACVuzB,GAA8BhwB,GAG9BiwB,GAAgBviC,OAAOqiC,aAK3BG,GAJ0B50B,IAAM,WAAc20B,GAAc,EAAG,KAItBD,GAA+B,SAAsB93B,GAC5F,QAAK6C,GAAS7C,OACV83B,IAA8C,eAAfpzB,GAAQ1E,OACpC+3B,IAAgBA,GAAc/3B,IACvC,EAAI+3B,GCbJE,IAFYx1B,GAEY,WAEtB,OAAOjN,OAAOqiC,aAAariC,OAAO0iC,kBAAkB,CAAA,GACtD,ICLI5gB,GAAI7U,GACJsB,GAAcnB,EACduM,GAAa5K,GACb1B,GAAWiF,EACXpB,GAASsB,GACTpC,GAAiBsC,GAA+C0F,EAChE6G,GAA4BrE,GAC5B+nB,GAAoClmB,GACpC4lB,GAAelgB,GAEfygB,GAAWvgB,GAEXwgB,IAAW,EACXC,GAJM1gB,GAIS,QACfjR,GAAK,EAEL4xB,GAAc,SAAUv4B,GAC1B4F,GAAe5F,EAAIs4B,GAAU,CAAEniC,MAAO,CACpCqiC,SAAU,IAAM7xB,KAChB8xB,SAAU,CAAE,IAEhB,EA4DIC,GAAOC,GAAAjlB,QAAiB,CAC1Bue,OA3BW,WACXyG,GAAKzG,OAAS,aACdoG,IAAW,EACX,IAAIjhC,EAAsBqd,GAA0B7G,EAChDgrB,EAAS70B,GAAY,GAAG60B,QACxB7iC,EAAO,CAAA,EACXA,EAAKuiC,IAAY,EAGblhC,EAAoBrB,GAAMsE,SAC5Boa,GAA0B7G,EAAI,SAAU5N,GAEtC,IADA,IAAIlI,EAASV,EAAoB4I,GACxB1F,EAAI,EAAGD,EAASvC,EAAOuC,OAAQC,EAAID,EAAQC,IAClD,GAAIxC,EAAOwC,KAAOg+B,GAAU,CAC1BM,EAAO9gC,EAAQwC,EAAG,GAClB,KACD,CACD,OAAOxC,GAGXwf,GAAE,CAAErM,OAAQ,SAAU8K,MAAM,EAAME,QAAQ,GAAQ,CAChD7e,oBAAqB+gC,GAAkCvqB,IAG7D,EAIEirB,QA5DY,SAAU74B,EAAIlC,GAE1B,IAAK+E,GAAS7C,GAAK,MAAoB,iBAANA,EAAiBA,GAAmB,iBAANA,EAAiB,IAAM,KAAOA,EAC7F,IAAK0G,GAAO1G,EAAIs4B,IAAW,CAEzB,IAAKT,GAAa73B,GAAK,MAAO,IAE9B,IAAKlC,EAAQ,MAAO,IAEpBy6B,GAAYv4B,EAEb,CAAC,OAAOA,EAAGs4B,IAAUE,QACxB,EAiDEM,YA/CgB,SAAU94B,EAAIlC,GAC9B,IAAK4I,GAAO1G,EAAIs4B,IAAW,CAEzB,IAAKT,GAAa73B,GAAK,OAAO,EAE9B,IAAKlC,EAAQ,OAAO,EAEpBy6B,GAAYv4B,EAEb,CAAC,OAAOA,EAAGs4B,IAAUG,QACxB,EAsCEM,SAnCa,SAAU/4B,GAEvB,OADIo4B,IAAYC,IAAYR,GAAa73B,KAAQ0G,GAAO1G,EAAIs4B,KAAWC,GAAYv4B,GAC5EA,CACT,GAmCAmP,GAAWmpB,KAAY,oBCxFnB51B,GAAaD,EACbI,GAAWD,EACXsU,GAAiB3S,GAGrBy0B,GAAiB,SAAUpuB,EAAOquB,EAAOC,GACvC,IAAIC,EAAWC,EAUf,OAPEliB,IAEAxU,GAAWy2B,EAAYF,EAAMl7B,cAC7Bo7B,IAAcD,GACdr2B,GAASu2B,EAAqBD,EAAU1jC,YACxC2jC,IAAuBF,EAAQzjC,WAC/ByhB,GAAetM,EAAOwuB,GACjBxuB,CACT,EChBI0M,GAAI7U,GACJ9N,GAASiO,EACTmB,GAAcQ,EACduQ,GAAWhN,GACXgM,GAAgB9L,GAChBqxB,GAAyBnxB,GACzB6d,GAAU3V,GACVoM,GAAavK,GACbvP,GAAaiV,EACb7S,GAAoB8S,GACpB/U,GAAWgV,EACXzU,GAAQ6U,EACR8O,GAA8BjP,GAC9BnB,GAAiBqB,GACjBghB,GAAoB3W,GCfpBvO,GAAgBrR,GCChB3E,GAAS2E,GACT2Z,GAAwBxZ,GACxB02B,GDDa,SAAUruB,EAAQsG,EAAK5V,GACtC,IAAK,IAAIkD,KAAO0S,EAAKuC,GAAc7I,EAAQpM,EAAK0S,EAAI1S,GAAMlD,GAC1D,OAAOsP,CACT,ECDI1H,GAAOuE,GACP0U,GAAaxU,GACblD,GAAoBoD,GACpB6d,GAAU3V,GACViJ,GAAiBpH,GACjBkH,GAAyBxB,GACzB0E,GAAazE,GACb1K,GAAc2K,GACdghB,GAAU5gB,GAA0C4gB,QAGpDtf,GAFsBzB,GAEiBlf,IACvC2gC,GAHsBzhB,GAGuBrF,UAEjD+mB,GAAiB,CACfC,eAAgB,SAAU5U,EAASvI,EAAkBjS,EAAQqvB,GAC3D,IAAInd,EAAcsI,GAAQ,SAAUpgB,EAAMuhB,GACxCxJ,GAAW/X,EAAMgY,GACjBlD,GAAiB9U,EAAM,CACrB/K,KAAM4iB,EACNtR,MAAOlN,GAAO,MACdouB,WAAOx1B,EACPijC,UAAMjjC,EACN00B,KAAM,IAEHle,KAAazI,EAAK2mB,KAAO,GACzBtmB,GAAkBkhB,IAAWD,GAAQC,EAAUvhB,EAAKi1B,GAAQ,CAAEj1B,KAAMA,EAAM2hB,WAAY/b,GACjG,IAEQoS,EAAYF,EAAY9mB,UAExB4d,EAAmBkmB,GAAuBjd,GAE1Csd,EAAS,SAAUn1B,EAAM5F,EAAK1I,GAChC,IAEI0jC,EAAU7uB,EAFVmH,EAAQkB,EAAiB5O,GACzB2a,EAAQ0a,EAASr1B,EAAM5F,GAqBzB,OAlBEugB,EACFA,EAAMjpB,MAAQA,GAGdgc,EAAMwnB,KAAOva,EAAQ,CACnBpU,MAAOA,EAAQ6tB,GAAQh6B,GAAK,GAC5BA,IAAKA,EACL1I,MAAOA,EACP0jC,SAAUA,EAAW1nB,EAAMwnB,KAC3BpjC,UAAMG,EACNqjC,SAAS,GAEN5nB,EAAM+Z,QAAO/Z,EAAM+Z,MAAQ9M,GAC5Bya,IAAUA,EAAStjC,KAAO6oB,GAC1BlS,GAAaiF,EAAMiZ,OAClB3mB,EAAK2mB,OAEI,MAAVpgB,IAAemH,EAAMnH,MAAMA,GAASoU,IACjC3a,GAGPq1B,EAAW,SAAUr1B,EAAM5F,GAC7B,IAGIugB,EAHAjN,EAAQkB,EAAiB5O,GAEzBuG,EAAQ6tB,GAAQh6B,GAEpB,GAAc,MAAVmM,EAAe,OAAOmH,EAAMnH,MAAMA,GAEtC,IAAKoU,EAAQjN,EAAM+Z,MAAO9M,EAAOA,EAAQA,EAAM7oB,KAC7C,GAAI6oB,EAAMvgB,KAAOA,EAAK,OAAOugB,GAyFjC,OArFAka,GAAe7c,EAAW,CAIxBY,MAAO,WAKL,IAJA,IACIlL,EAAQkB,EADDxc,MAEPoe,EAAO9C,EAAMnH,MACboU,EAAQjN,EAAM+Z,MACX9M,GACLA,EAAM2a,SAAU,EACZ3a,EAAMya,WAAUza,EAAMya,SAAWza,EAAMya,SAAStjC,UAAOG,UACpDue,EAAKmK,EAAMpU,OAClBoU,EAAQA,EAAM7oB,KAEhB4b,EAAM+Z,MAAQ/Z,EAAMwnB,UAAOjjC,EACvBwW,GAAaiF,EAAMiZ,KAAO,EAXnBv0B,KAYDu0B,KAAO,CAClB,EAID0J,OAAU,SAAUj2B,GAClB,IAAI4F,EAAO5N,KACPsb,EAAQkB,EAAiB5O,GACzB2a,EAAQ0a,EAASr1B,EAAM5F,GAC3B,GAAIugB,EAAO,CACT,IAAI7oB,EAAO6oB,EAAM7oB,KACb66B,EAAOhS,EAAMya,gBACV1nB,EAAMnH,MAAMoU,EAAMpU,OACzBoU,EAAM2a,SAAU,EACZ3I,IAAMA,EAAK76B,KAAOA,GAClBA,IAAMA,EAAKsjC,SAAWzI,GACtBjf,EAAM+Z,OAAS9M,IAAOjN,EAAM+Z,MAAQ31B,GACpC4b,EAAMwnB,MAAQva,IAAOjN,EAAMwnB,KAAOvI,GAClClkB,GAAaiF,EAAMiZ,OAClB3mB,EAAK2mB,MACpB,CAAU,QAAShM,CACZ,EAIDroB,QAAS,SAAiB8T,GAIxB,IAHA,IAEIuU,EAFAjN,EAAQkB,EAAiBxc,MACzBkU,EAAgBxH,GAAKsH,EAAY/G,UAAUzJ,OAAS,EAAIyJ,UAAU,QAAKpN,GAEpE0oB,EAAQA,EAAQA,EAAM7oB,KAAO4b,EAAM+Z,OAGxC,IAFAnhB,EAAcqU,EAAMjpB,MAAOipB,EAAMvgB,IAAKhI,MAE/BuoB,GAASA,EAAM2a,SAAS3a,EAAQA,EAAMya,QAEhD,EAID7+B,IAAK,SAAa6D,GAChB,QAASi7B,EAASjjC,KAAMgI,EACzB,IAGHy6B,GAAe7c,EAAWpS,EAAS,CAGjC5Q,IAAK,SAAaoF,GAChB,IAAIugB,EAAQ0a,EAASjjC,KAAMgI,GAC3B,OAAOugB,GAASA,EAAMjpB,KACvB,EAGDyC,IAAK,SAAaiG,EAAK1I,GACrB,OAAOyjC,EAAO/iC,KAAc,IAARgI,EAAY,EAAIA,EAAK1I,EAC1C,GACC,CAGF+oB,IAAK,SAAa/oB,GAChB,OAAOyjC,EAAO/iC,KAAMV,EAAkB,IAAVA,EAAc,EAAIA,EAAOA,EACtD,IAEC+W,IAAakP,GAAsBK,EAAW,OAAQ,CACxD3W,cAAc,EACdrM,IAAK,WACH,OAAO4Z,EAAiBxc,MAAMu0B,IAC/B,IAEI7O,CACR,EACDyd,UAAW,SAAUzd,EAAaD,EAAkBjS,GAClD,IAAI4vB,EAAgB3d,EAAmB,YACnC4d,EAA6BX,GAAuBjd,GACpD6d,EAA2BZ,GAAuBU,GAUtD5gB,GAAekD,EAAaD,GAAkB,SAAU7C,EAAUC,GAChEH,GAAiB1iB,KAAM,CACrB6C,KAAMugC,EACNhvB,OAAQwO,EACRtH,MAAO+nB,EAA2BzgB,GAClCC,KAAMA,EACNigB,UAAMjjC,GAEd,IAAO,WAKD,IAJA,IAAIyb,EAAQgoB,EAAyBtjC,MACjC6iB,EAAOvH,EAAMuH,KACb0F,EAAQjN,EAAMwnB,KAEXva,GAASA,EAAM2a,SAAS3a,EAAQA,EAAMya,SAE7C,OAAK1nB,EAAMlH,SAAYkH,EAAMwnB,KAAOva,EAAQA,EAAQA,EAAM7oB,KAAO4b,EAAMA,MAAM+Z,OAMlD/S,GAAf,QAARO,EAA8C0F,EAAMvgB,IAC5C,UAAR6a,EAAgD0F,EAAMjpB,MAC5B,CAACipB,EAAMvgB,IAAKugB,EAAMjpB,QAFa,IAJ3Dgc,EAAMlH,YAASvU,EACRyiB,QAAuBziB,GAAW,MAM1C2T,EAAS,UAAY,UAAWA,GAAQ,GAK3CgS,GAAWC,EACZ,IF5Lc,SAAUA,EAAkBuI,EAASuV,GACpD,IAAI/vB,GAA8C,IAArCiS,EAAiB/mB,QAAQ,OAClC8kC,GAAgD,IAAtC/d,EAAiB/mB,QAAQ,QACnCmkC,EAAQrvB,EAAS,MAAQ,MACzBiwB,EAAoB3lC,GAAO2nB,GAC3Bie,EAAkBD,GAAqBA,EAAkB7kC,UACzD8mB,EAAc+d,EACdE,EAAW,CAAA,EAEXC,EAAY,SAAU9hB,GACxB,IAAI+hB,EAAwB32B,GAAYw2B,EAAgB5hB,IACxD7E,GAAcymB,EAAiB5hB,EACtB,OAAPA,EAAe,SAAaxiB,GAE1B,OADAukC,EAAsB7jC,KAAgB,IAAVV,EAAc,EAAIA,GACvCU,IACf,EAAiB,UAAP8hB,EAAkB,SAAU9Z,GAC9B,QAAOw7B,IAAYx3B,GAAShE,KAAe67B,EAAsB7jC,KAAc,IAARgI,EAAY,EAAIA,EACxF,EAAU,OAAP8Z,EAAe,SAAa9Z,GAC9B,OAAOw7B,IAAYx3B,GAAShE,QAAOnI,EAAYgkC,EAAsB7jC,KAAc,IAARgI,EAAY,EAAIA,EAC5F,EAAU,OAAP8Z,EAAe,SAAa9Z,GAC9B,QAAOw7B,IAAYx3B,GAAShE,KAAe67B,EAAsB7jC,KAAc,IAARgI,EAAY,EAAIA,EAC/F,EAAU,SAAaA,EAAK1I,GAEpB,OADAukC,EAAsB7jC,KAAc,IAARgI,EAAY,EAAIA,EAAK1I,GAC1CU,IACR,IAWL,GAPcie,GACZwH,GACC5Z,GAAW43B,MAAwBD,GAAWE,EAAgBxjC,UAAYqM,IAAM,YAC/E,IAAIk3B,GAAoB/+B,UAAUhF,MACnC,MAKDgmB,EAAc6d,EAAOX,eAAe5U,EAASvI,EAAkBjS,EAAQqvB,GACvEL,GAAuBpH,cAClB,GAAInd,GAASwH,GAAkB,GAAO,CAC3C,IAAIqe,EAAW,IAAIpe,EAEfqe,EAAiBD,EAASjB,GAAOW,EAAU,CAAE,GAAI,EAAG,IAAMM,EAE1DE,EAAuBz3B,IAAM,WAAcu3B,EAAS3/B,IAAI,EAAG,IAG3D8/B,EAAmB/T,IAA4B,SAAUf,GAAY,IAAIsU,EAAkBtU,EAAU,IAErG+U,GAAcV,GAAWj3B,IAAM,WAIjC,IAFA,IAAI43B,EAAY,IAAIV,EAChBtvB,EAAQ,EACLA,KAASgwB,EAAUtB,GAAO1uB,EAAOA,GACxC,OAAQgwB,EAAUhgC,KAAK,EAC7B,IAES8/B,KACHve,EAAcsI,GAAQ,SAAUoU,EAAOjT,GACrCxJ,GAAWyc,EAAOsB,GAClB,IAAI91B,EAAOu0B,GAAkB,IAAIsB,EAAqBrB,EAAO1c,GAE7D,OADKzX,GAAkBkhB,IAAWD,GAAQC,EAAUvhB,EAAKi1B,GAAQ,CAAEj1B,KAAMA,EAAM2hB,WAAY/b,IACpF5F,CACf,KACkBhP,UAAY8kC,EACxBA,EAAgBx8B,YAAcwe,IAG5Bse,GAAwBE,KAC1BN,EAAU,UACVA,EAAU,OACVpwB,GAAUowB,EAAU,SAGlBM,GAAcH,IAAgBH,EAAUf,GAGxCW,GAAWE,EAAgBld,cAAckd,EAAgBld,KAC9D,CAEDmd,EAASle,GAAoBC,EAC7BjF,GAAE,CAAE3iB,QAAQ,EAAMoJ,aAAa,EAAMkY,OAAQsG,GAAe+d,GAAqBE,GAEjF7jB,GAAe4F,EAAaD,GAEvB+d,GAASD,EAAOJ,UAAUzd,EAAaD,EAAkBjS,EAGhE,EGnGA4wB,CAAW,OAAO,SAAUh9B,GAC1B,OAAO,WAAiB,OAAOA,EAAKpH,KAAMiN,UAAUzJ,OAASyJ,UAAU,QAAKpN,GAC9E,GANuBkM,ICFvB,IACIoC,GAAWpC,GACXs4B,GAAa32B,GAFT9B,GASN,CAAEwI,OAAQ,SAAU8K,MAAM,EAAME,OANtBnO,GAEoB,WAAcozB,GAAW,EAAG,KAIK,CAC/D9/B,KAAM,SAAc4E,GAClB,OAAOk7B,GAAWl2B,GAAShF,GAC5B,ICXH,IACIm7B,GAAOv4B,GAAwC9L,IAD3C2L,GASN,CAAEwI,OAAQ,QAASmM,OAAO,EAAMnB,QAPC1R,GAEoB,QAKW,CAChEzN,IAAK,SAAa+T,GAChB,OAAOswB,GAAKtkC,KAAMgU,EAAY/G,UAAUzJ,OAAS,EAAIyJ,UAAU,QAAKpN,EACrE,ICbH,IAAIwW,GAAczK,GACdsB,GAAcnB,EACd4M,GAAajL,GACbmK,GAAkB5G,GAGlBjD,GAAuBd,GAFCiE,GAAsD4F,GAG9EvS,GAAO0I,GAAY,GAAG1I,MAGtB8O,GAAe,SAAUixB,GAC3B,OAAO,SAAUp7B,GAOf,IANA,IAKInB,EALA8J,EAAI+F,GAAgB1O,GACpB5E,EAAOoU,GAAW7G,GAClBtO,EAASe,EAAKf,OACdC,EAAI,EACJxC,EAAS,GAENuC,EAASC,GACduE,EAAMzD,EAAKd,KACN4S,KAAerI,GAAqB8D,EAAG9J,IAC1CxD,GAAKvD,EAAQsjC,EAAa,CAACv8B,EAAK8J,EAAE9J,IAAQ8J,EAAE9J,IAGhD,OAAO/G,EAEX,ECzBIujC,GD2Ba,CAGf9/B,QAAS4O,IAAa,GAGtB7O,OAAQ6O,IAAa,ICjC+B7O,OAD9CmH,GAKN,CAAEwI,OAAQ,SAAU8K,MAAM,GAAQ,CAClCza,OAAQ,SAAgBqN,GACtB,OAAO0yB,GAAQ1yB,EAChB,ICEU2yB,IAAAA,YAAUnF,GAAAjI,GAAAoN,EAAAnF,GAAA,IAAA/H,EAAAC,GAAAiN,GAWrB,SAAAA,EAAAvO,GAA8F,IAAAQ,EAAjFgO,EAAQxO,EAARwO,SAAUC,EAAWzO,EAAXyO,YAAWC,EAAA1O,EAAE2O,YAAAA,OAAc,IAAHD,EAAG,gBAAeA,EAAEE,EAAY5O,EAAZ4O,aAAcC,EAAU7O,EAAV6O,WAS/E,OATyFzR,QAAAmR,IACzF/N,EAAAa,EAAAz4B,UAAMimC,IACDJ,YAAcA,EACnBjO,EAAKmO,YAAcA,EACnBnO,EAAKsO,cAAgBx5B,SAASy5B,iBAAiBP,GAC/ChO,EAAKoO,aAAeA,EAEpBpO,EAAKwO,WAAa,GAEdxO,EAAKsO,cAAcxhC,QAAU,GAC/BkzB,EAAKK,KAAIzZ,GAAAA,OAAIoZ,EAAKiO,YAAWrnB,qDAAAA,OAAoDonB,IACjFS,GAAAzO,KAGFA,EAAKsO,cAAc9kC,SAAQ,SAAAklC,GACN,UAAfA,EAAMviC,MAIVuiC,EAAM9lC,MAAQ8lC,EAAM9lC,MAAMF,cAE1Bs3B,EAAKwO,WAAWE,EAAM9lC,OAAS8lC,GAL7B1O,EAAKK,KAAIzZ,GAAAA,OAAIoZ,EAAKiO,YAAWrnB,4DAAAA,OAA2DonB,GAM5F,IAEKhO,EAAKwO,WAAWxO,EAAKoO,gBACxBpO,EAAKK,KAAI,GAAAzZ,OAAIoZ,EAAKiO,YAAW,8BAAArnB,OAA6BonB,EAAQpnB,6CAAAA,OAA4CoZ,EAAKoO,aAAuE,6DAC1LpO,EAAKoO,aAAepO,EAAKsO,cAAc,GAAG1lC,MAAMF,eAGlDs3B,EAAKwO,WAAWxO,EAAKoO,cAAcO,SAAU,EAAK3O,EACpD,CAyGC,OAvGDnD,GAAAkR,EAAA,CAAA,CAAAz8B,IAAA,UAAA1I,MAKA,SAAQgmC,GAEN,IAAK,IAAMt9B,KAAOhI,KAAKklC,WACrB,IAAKI,EAAYjtB,SAASrY,KAAKklC,WAAWl9B,GAAK1I,OAE7C,OADAU,KAAK+2B,KAAI,GAAAzZ,OAAItd,KAAK2kC,YAAW,yBAAArnB,OAAwBtd,KAAKklC,WAAWl9B,GAAK1I,MAAuD,qDAC1H,EAIX,OAAO,CACT,GAEA,CAAA0I,IAAA,qBAAA1I,MAIA,WACE,OAAOU,KAAKyE,OAAOjB,SAAW+hC,GAAI,IAAIC,IAAIxlC,KAAKyE,SAASjB,MAC1D,GAEA,CAAAwE,IAAA,oBAAA1I,MAKA,SAAkBmmC,GAChB,MAAKzlC,KAAKklC,WAAW1hC,QAAU,GAA/B,CAIA,IAAM0jB,EAAQue,EACd,IAAK,IAAML,KAASplC,KAAKklC,WACvBllC,KAAKklC,WAAWE,GAAOx8B,iBAAiB,SAAUse,EAJpD,CAMF,GAEA,CAAAlf,IAAA,qBAAA1I,MAKA,SAAmBmmC,GACjB,MAAKzlC,KAAKklC,WAAW1hC,QAAU,GAG/B,IAAK,IAAM4hC,KAASplC,KAAKklC,WACvBllC,KAAKklC,WAAWE,GAAOr8B,oBAAoB,SAAU08B,EAEzD,GAEA,CAAAz9B,IAAA,gBAAA1I,MAKA,SAAc8e,GACZ,GAAIpe,KAAKklC,WAAW1hC,QAAU,GAAK4a,EAAKpe,KAAK6kC,aAC3C7kC,KAAK+2B,KAAIzZ,GAAAA,OAAItd,KAAK2kC,YAAW,6DAAArnB,OAA4Dtd,KAAK6kC,YAA8C,0CAI9I,KAAI7kC,KAAKklC,WAAW1hC,QAAU,GAI1B4a,EAAKpe,KAAK6kC,cAId,IAAK,IAAMO,KAASplC,KAAKklC,WACvBllC,KAAKklC,WAAWE,GAAO7qB,MAAMC,QAAU,MAE3C,GAEA,CAAAxS,IAAA,aAAA1I,MAIA,WACEU,KAAKklC,WAAWllC,KAAK8kC,cAAcO,SAAU,CAC/C,GAEA,CAAAr9B,IAAA,SAAApF,IAKA,WACE,OAAOjE,OAAO4F,KAAKvE,KAAKklC,YAAY1hC,MACtC,GAEA,CAAAwE,IAAA,SAAApF,IAKA,WACE,OAAOjE,OAAO8F,OAAOzE,KAAKklC,YAAYjlC,KAAI,SAAAmlC,GAAK,OAAIA,EAAM9lC,QAC3D,KAACmlC,CAAA,EAlJ6B3F,ICDnB4G,YAAgBpG,GAAAjI,GAAAqO,EAAApG,GAAA,IAAA/H,EAAAC,GAAAkO,GAQ3B,SAAAA,EAAYC,EAAa3mC,EAAIk3B,GAAyE,IAAAQ,EAAtEkP,EAAe1P,EAAf0P,gBAAiBC,EAAY3P,EAAZ2P,aAAclB,EAAWzO,EAAXyO,YAAaE,EAAW3O,EAAX2O,YAAaiB,EAAU5P,EAAV4P,WActC,OAdgDxS,QAAAoS,IACjGhP,EAAAa,EAAAz4B,UAAME,IACD+mC,UAAYJ,EAAcA,EAAY5/B,MAAM,KAAO,GACxD2wB,EAAKkP,gBAAkBA,EACvBlP,EAAKmP,aAAeD,EAAgBvtB,SAASwtB,GAAgBA,EAAeD,EAAgB,GAC5FlP,EAAKiO,YAAcA,EACnBjO,EAAKmO,YAAcA,EACnBnO,EAAKoP,WAAaA,EAClBpP,EAAKsI,kBAAoBtI,EAAKsI,kBAAkBtyB,KAAIyrB,GAAAzB,IAEpDA,EAAKsP,cAAgBtP,EAAKmP,aAE1BnP,EAAKuP,YAAcvP,EAAKwP,YAAYxP,EAAKqP,WAEzCrP,EAAKyP,kBAAoBzP,EAAKuP,YAAYziC,OAAOkzB,CACnD,CAsEC,OApEDnD,GAAAmS,EAAA,CAAA,CAAA19B,IAAA,cAAA1I,MAKA,SAAYymC,GAAW,IAAA/H,EAAAh+B,KACfimC,EAAc,GA4BpB,OA1BAF,EAAU7lC,SAAQ,SAACwkC,GACjB,IAAMQ,EAAa,IAAIT,GAAW,CAChCC,SAAUA,EAAS5+B,OACnB6+B,YAAa3G,EAAK2G,YAClBG,aAAc9G,EAAK6H,aACnBd,WAAY/G,EAAKh/B,KACjB6lC,YAAa7G,EAAK6G,cAGhBK,EAAW1hC,SAAWw6B,EAAK8H,WAK1BZ,EAAWkB,QAAQpI,EAAK4H,mBAIzBV,EAAWmB,qBACbrI,EAAKjH,KAAIzZ,mDAAAA,OAAoD4nB,EAAWzgC,OAAiC,6BAI3GwhC,EAAYzhC,KAAK0gC,IAbflH,EAAKjH,KAAI,aAAAzZ,OAAconB,6BAAQpnB,OAA0B0gB,EAAK8H,WAAUxoB,uBAAAA,OAAsB0gB,EAAK2G,YAAiC,uBAcxI,IAEOsB,CACT,GAEA,CAAAj+B,IAAA,QAAA1I,MAGA,WACEU,KAAKq2B,OAAOyC,GAAG,SAAU94B,KAAKg/B,mBAC9Bh/B,KAAKq2B,OAAOyC,GAAG,WAAY94B,KAAKg/B,kBAClC,GAEA,CAAAh3B,IAAA,oBAAA1I,MAKA,WACEU,KAAK8/B,aAAa9/B,KAAK6kC,YAAa7kC,KAAKsmC,SAC3C,GAEA,CAAAt+B,IAAA,eAAApF,IAoBA,WACE,OAAO5C,KAAKgmC,aACb,EAAAjkC,IAlBD,SAAiBwkC,GACf,GAAKvmC,KAAK4lC,gBAAgBvtB,SAASkuB,GAAnC,CAIAvmC,KAAKgmC,cAAgBO,EAErB,IAAK,IAAI9iC,EAAI,EAAGuzB,EAAIh3B,KAAKimC,YAAYziC,OAAQC,EAAIuzB,EAAGvzB,IAClDzD,KAAKimC,YAAYxiC,GAAGyhC,WAAWqB,GAAUlB,SAAU,CALrD,CAOF,KAACK,CAAA,EA7FmC5G,ICLtC0H,GAJkB56B,EAIW,GAAIoK,SCH7ByK,GAAI7U,GAEJyK,GAAc3I,GACd5P,GAASmT,EACTiS,GAAO/R,GACPjE,GAAcmE,EACd4M,GAAW1E,GACX1J,GAASuL,GACT+mB,GAAoBrhB,GACpBze,GAAgB0e,GAChBxL,GAAWyL,GACX9K,GAAckL,GACd7U,GAAQ0U,EACR1gB,GAAsB4gB,GAAsDpK,EAC5EL,GAA2B8U,GAA2DzU,EACtFhI,GAAiB0c,GAA+C1U,EAChEyvB,GAAkBC,GAClB3gC,GAAO8lB,GAAoC9lB,KAE3C4gC,GAAS,SACTC,GAAe7oC,GAAO4oC,IACAxjB,GAAKwjB,IAC/B,IAAIE,GAAkBD,GAAa/nC,UAC/BO,GAAYrB,GAAOqB,UACnBgO,GAAcD,GAAY,GAAGvL,OAC7BuzB,GAAahoB,GAAY,GAAGgoB,YAW5B2R,GAAW,SAAU/6B,GACvB,IACIupB,EAAOyR,EAAOC,EAAOC,EAASC,EAAQzjC,EAAQ2Q,EAAO+yB,EADrD/9B,EAAK+M,GAAYpK,EAAU,UAE/B,GAAIyJ,GAASpM,GAAK,MAAMhK,GAAU,6CAClC,GAAiB,iBAANgK,GAAkBA,EAAG3F,OAAS,EAGvC,GAFA2F,EAAKrD,GAAKqD,GAEI,MADdksB,EAAQH,GAAW/rB,EAAI,KACO,KAAVksB,GAElB,GAAc,MADdyR,EAAQ5R,GAAW/rB,EAAI,KACO,MAAV29B,EAAe,OAAOK,SACrC,GAAc,KAAV9R,EAAc,CACvB,OAAQH,GAAW/rB,EAAI,IACrB,KAAK,GAAI,KAAK,GAAI49B,EAAQ,EAAGC,EAAU,GAAI,MAC3C,KAAK,GAAI,KAAK,IAAKD,EAAQ,EAAGC,EAAU,GAAI,MAC5C,QAAS,OAAQ79B,EAInB,IADA3F,GADAyjC,EAAS95B,GAAYhE,EAAI,IACT3F,OACX2Q,EAAQ,EAAGA,EAAQ3Q,EAAQ2Q,IAI9B,IAHA+yB,EAAOhS,GAAW+R,EAAQ9yB,IAGf,IAAM+yB,EAAOF,EAAS,OAAOG,IACxC,OAAOC,SAASH,EAAQF,EAC3B,CACD,OAAQ59B,CACZ,EAEIyY,GAAS3D,GAASyoB,IAASC,GAAa,UAAYA,GAAa,QAAUA,GAAa,SASxFU,GAAgB,SAAgB/nC,GAClC,IAR4B8iC,EAQxB3zB,EAAIxB,UAAUzJ,OAAS,EAAI,EAAImjC,GA7CrB,SAAUrnC,GACxB,IAAIgoC,EAAYpxB,GAAY5W,EAAO,UACnC,MAA2B,iBAAbgoC,EAAwBA,EAAYT,GAASS,EAC7D,CA0CkDC,CAAUjoC,IAC1D,OAPO+C,GAAcukC,GAFOxE,EASPpiC,OAP2BuM,IAAM,WAAci6B,GAAgBpE,EAAO,IAO9DD,GAAkBxjC,OAAO8P,GAAIzO,KAAMqnC,IAAiB54B,CACnF,EAEA44B,GAAczoC,UAAYgoC,GACtBhlB,KAAoBglB,GAAgB1/B,YAAcmgC,IAEtD5mB,GAAE,CAAE3iB,QAAQ,EAAMoJ,aAAa,EAAMmnB,MAAM,EAAMjP,OAAQwC,IAAU,CACjE4lB,OAAQH,KAoBNzlB,IAhB4B,SAAUxN,EAAQ1E,GAChD,IAAK,IAOgB1H,EAPZzD,EAAO8R,GAAc9V,GAAoBmP,GAAU,oLAO1D3J,MAAM,KAAMkf,EAAI,EAAQ1gB,EAAKf,OAASyhB,EAAGA,IACrCpV,GAAOH,EAAQ1H,EAAMzD,EAAK0gB,MAAQpV,GAAOuE,EAAQpM,IACnD+G,GAAeqF,EAAQpM,EAAK0O,GAAyBhH,EAAQ1H,GAGnE,CAGuB0W,CAA0BwE,GAAKwjB,IAASC,ICjGlDc,IAAAA,GAAM,WAYjB,SAAAA,EAAAvR,GAOG,IANDwR,EAAMxR,EAANwR,OACAC,EAAOzR,EAAPyR,QAAOC,EAAA1R,EACPtnB,IAAAA,OAAM,IAAHg5B,EAAG,EAACA,EAAAC,EAAA3R,EACPpe,IAAAA,OAAM,IAAH+vB,EAAG,EAACA,EAAAC,EAAA5R,EACP5G,KAAAA,OAAO,IAAHwY,EAAG,GAAGA,EAAAC,EAAA7R,EACV4O,aAAAA,OAAe,IAAHiD,EAAG,EAACA,EAAAzU,QAAAmU,GAEhBznC,KAAK4O,IAAMA,EACX5O,KAAK8X,IAAMA,EACX9X,KAAKsvB,KAAOA,EACZtvB,KAAKgoC,YAAclD,EACnB9kC,KAAK2nC,QAAUA,EACf3nC,KAAK0nC,OAAS1nC,KAAKioC,YAAYP,EAAQC,EACzC,CAmHC,OAjHDpU,GAAAkU,EAAA,CAAA,CAAAz/B,IAAA,cAAA1I,MAMA,SAAYooC,EAAQC,GAKlB,GAJI,iBAAoBD,IACtBA,EAASl8B,SAASqsB,cAAc6P,KAG7BA,GAAU,UAAYA,EAAO7kC,KAChC,OAAO,KAET,IAAMvD,EAAQg9B,GAAU4L,KAAKP,GAa7B,OAXAD,EAAO94B,IAAM5O,KAAK4O,IAClB84B,EAAO5vB,IAAM9X,KAAK8X,IAClB4vB,EAAOpY,KAAOtvB,KAAKsvB,MAEdhwB,GAAmB,IAAVA,IAAgBA,EAAMT,WAAWiH,OAAOtC,OAAS,GAC7DkkC,EAAOpoC,MAAQA,EACfU,KAAKgoC,YAAc1oC,GAEnBooC,EAAOpoC,MAAQU,KAAKgoC,YAGfN,CACT,GAEA,CAAA1/B,IAAA,cAAA1I,MAMA,SAAYmE,GACV,OAAIA,EAAIzD,KAAK4O,IACJ5O,KAAK4O,IACHnL,EAAIzD,KAAK8X,IACX9X,KAAK8X,IAELrU,CAEX,GAEA,CAAAuE,IAAA,qBAAA1I,MAKA,SAAmBmmC,GACjB,GAAKzlC,KAAK0nC,OAAV,CAIA,IAAMxgB,EAAQue,EACdzlC,KAAK0nC,OAAO9+B,iBAAiB,SAAUse,GACvClnB,KAAK0nC,OAAO9+B,iBAAiB,QAASse,EAJtC,CAKF,GAEA,CAAAlf,IAAA,sBAAA1I,MAKA,SAAoBmmC,GAClB,GAAKzlC,KAAK0nC,OAAV,CAGA,IAAMxgB,EAAQue,EACdzlC,KAAK0nC,OAAO3+B,oBAAoB,SAAUme,GAC1ClnB,KAAK0nC,OAAO3+B,oBAAoB,QAASme,EAHzC,CAIF,GACA,CAAAlf,IAAA,gBAAA1I,MAKA,SAAc8e,IACPpe,KAAK0nC,QAAUtpB,EAAKpe,KAAK2nC,UAC5Bhc,QAAQoL,KAAIzZ,GAAAA,OAAItd,KAAK2nC,QAAgG,2FAGlH3nC,KAAK0nC,SAIV1nC,KAAK0nC,OAAOntB,MAAMC,QAAU4D,EAAKpe,KAAK2nC,SAAW,GAAK,OACxD,GAEA,CAAA3/B,IAAA,gBAAA1I,MAIA,SAAc4nB,GACZlnB,KAAK0nC,OAAO9a,cAAc1F,EAC5B,GAEA,CAAAlf,IAAA,QAAApF,IAKA,WACE,OAAO5C,KAAK0nC,OAAOpoC,KACrB,EAEAyC,IAGA,SAAUzC,GACRU,KAAK0nC,OAAOpoC,MAAQA,CACtB,KAACmoC,CAAA,CA7IgB,GCFNU,GAAM,WASjB,SAAAA,EAAAjS,GAA0C,IAA5BuJ,EAAMvJ,EAANuJ,OAAQ2I,EAAOlS,EAAPkS,QAAShjB,EAAO8Q,EAAP9Q,QAAOkO,QAAA6U,GACpCnoC,KAAKy/B,OACHA,aAAkBO,YAAcP,EAASj0B,SAASqsB,cAAc4H,GAClEz/B,KAAKooC,QAAUA,EACfpoC,KAAKolB,QAAUA,EAEXplB,KAAKy/B,QACPz/B,KAAKy/B,OAAO72B,iBAAiB,QAASw/B,EAE1C,CAmCC,OAjCD7U,GAAA4U,EAAA,CAAA,CAAAngC,IAAA,gBAAA1I,MAKA,SAAc8e,GACNpe,KAAKy/B,kBAAkBO,cAI7BhgC,KAAKy/B,OAAOllB,MAAMC,QAChB4D,EAAKpe,KAAKolB,UAA6B,UAAjBplB,KAAKolB,SAAwC,UAAjBplB,KAAKolB,QACnD,GACA,OACR,GAEA,CAAApd,IAAA,eAAA1I,MAIA,WACOU,KAAKy/B,QAGVz/B,KAAKy/B,OAAOrzB,UAAUssB,OAAO,WAC/B,GAEA,CAAA1wB,IAAA,WAAA1I,MAIA,SAAS+oC,GACProC,KAAKy/B,OAAO4I,UAAYroC,KAAKy/B,OAAO4I,UAAYroC,KAAKy/B,OAAO4I,UAAS,IAAA/qB,OAAQ+qB,GAAY/qB,IAAAA,OAAQ+qB,EACnG,KAACF,CAAA,CArDgB,GCKNG,YAAYhJ,GAAAjI,GAAAiR,EAAAhJ,GAAA,IAAA/H,EAAAC,GAAA8Q,GAcvB,SAAAA,EAAY3C,EAAa3mC,EAAIk3B,GAAwE,IAAAQ,EAAAqR,EAAA7R,EAArE4O,aAAAA,OAAe,IAAHiD,EAAG,MAAKA,EAAAQ,EAAArS,EAAEsS,SAAAA,OAAW,IAAHD,EAAG,IAAGA,EAAAE,EAAAvS,EAAEwS,SAAAA,OAAW,IAAHD,EAAG,IAAGA,EAAE5D,EAAW3O,EAAX2O,YAWpF,OAX+FvR,QAAAgV,IAC/F5R,EAAAa,EAAAz4B,UAAME,IACD6lC,YAAcA,EACnBnO,EAAK8R,SAAWA,EAChB9R,EAAKoO,aAAeA,EACpBpO,EAAKgS,SAAWA,EAChBhS,EAAKsP,cAAgBlB,EACrBpO,EAAKiS,QAAUjS,EAAKkS,aAAajD,GACjCjP,EAAKmS,cAAgBnS,EAAKiS,QAAQnlC,OAClCkzB,EAAKsI,kBAAoBtI,EAAKsI,kBAAkBtyB,KAAIyrB,GAAAzB,IAEhD,GAAKA,EAAKmS,eACZnS,EAAKK,KAAK,mDACVoO,GAAAzO,IACDA,CACH,CAiFC,OA/EDnD,GAAA+U,EAAA,CAAA,CAAAtgC,IAAA,eAAA1I,MAKA,SAAaymC,GAAW,IAAA/H,EAAAh+B,KAChB2oC,EAAU,GAsBhB,OApBI5C,aAAqB/F,YACvB2I,EAAQnkC,KAAK,IAAIijC,GAAO,CACtBC,OAAQ3B,EACR4B,QAAS3nC,KAAK6kC,YACdC,aAAc9kC,KAAK8kC,aACnB0D,SAAUxoC,KAAKwoC,SACfE,SAAU1oC,KAAK0oC,YAGjBl9B,SAASy5B,iBAAiBc,GAAW7lC,SAAQ,SAACwnC,GAC5CiB,EAAQnkC,KAAK,IAAIijC,GAAO,CACtBC,OAAQA,EACRC,QAAS3J,EAAK6G,YACdC,aAAc9G,EAAK8G,aACnB0D,SAAUxK,EAAKwK,SACfE,SAAU1K,EAAK0K,WAEnB,IAGKC,CACT,GAEA,CAAA3gC,IAAA,OAAA1I,MAGA,WACEU,KAAKq2B,OAAOyC,GACV,WACA,SAAS3E,GACP,GAAKA,EAAS/V,KAId,IAAK,IAAI3a,EAAI,EAAGA,EAAIzD,KAAK6oC,cAAeplC,IACtCzD,KAAK2oC,QAAQllC,GAAGqlC,cAAc3U,EAAS/V,KAE3C,EAAE1R,KAAK1M,MAEX,GAEA,CAAAgI,IAAA,QAAA1I,MAGA,WACEU,KAAKgmC,cAAgBhmC,KAAK2oC,QAAQ,GAAGrpC,MACrCU,KAAKq2B,OAAOyC,GAAG,SAAU94B,KAAKg/B,mBAC9Bh/B,KAAKq2B,OAAOyC,GAAG,WAAY94B,KAAKg/B,kBAClC,GAEA,CAAAh3B,IAAA,oBAAA1I,MAKA,WACEU,KAAK8/B,aAAa9/B,KAAK6kC,YAAa7kC,KAAK+oC,aAC3C,GAEA,CAAA/gC,IAAA,eAAApF,IAkBA,WACE,OAAO5C,KAAKgmC,aACb,EAAAjkC,IAhBD,SAAiBwkC,GAGfvmC,KAAKgmC,cAAgBhmC,KAAK2oC,QAAQ,GAAGK,YAAYxB,OAAOjB,IAExD,IAAK,IAAI9iC,EAAI,EAAGA,EAAIzD,KAAK6oC,cAAeplC,IACtCzD,KAAK2oC,QAAQllC,GAAGnE,MAAQinC,CAE5B,KAAC+B,CAAA,EA9G+BxJ,ICL5BmK,GAA0B,CAC9B1U,KAAM,SACN2U,WAAY,QACZC,MAAO,QACPC,KAAM,OACNC,KAAM,QACNC,MAAO,OAGHC,GAAsB,CAACJ,MAAO,QAASD,WAAY,SACnDM,GAAuB,CAACL,MAAO,QAASD,WAAY,SACpDO,GAAmB,CAAC,QAAS,SAAU,SACvCC,GAAe,CAAC,UAAW,YAC3BC,GAAe,CAAC,MAAO,UAiBhBC,YAAmBC,GAAAxS,GAAAuS,EAAAC,GAAA,IAAAtS,EAAAC,GAAAoS,GAW9B,SAAAA,EAAYE,EAAgBC,EAAaC,GAEvC,IAAAtT,EAAAR,EAAAjpB,UAAAzJ,OAAA,QAAA3D,IAAAoN,UAAA,GAAAA,UAAA,GADqF,CAAE,EAAAg9B,EAAA/T,EAArFgU,gBAAAA,OAAkB,IAAHD,EAAG,SAAQA,EAAAE,EAAAjU,EAAEkU,aAAAA,OAAe,IAAHD,EAAG,UAASA,EAAAE,EAAAnU,EAAEoU,iBAAAA,OAAmB,IAAHD,EAAG,MAAKA,EAkChF,GAlCgF/W,QAAAsW,IAEhFlT,EAAAa,EAAAz4B,UAAM,yBACDkgC,kBAAoBtI,EAAKsI,kBAAkBtyB,KAAIyrB,GAAAzB,IACpDA,EAAK6T,eAAiB5rC,OAAO6lB,OAC3B,CAAA,EACAykB,GACA3M,GAAU4L,KAAK0B,EAAoBY,kBAAoB,CAAE,GAK3D9T,EAAK+T,kBAAoBX,EAAiBA,EAAe/jC,MAAM,KAAO,GACtE2wB,EAAKgU,eAAiBX,EAAcA,EAAYhkC,MAAM,KAAO,GAC7D2wB,EAAKiU,mBAAqBX,EAAkBA,EAAgBjkC,MAAM,KAAO,GAEzE2wB,EAAKwT,gBAAkBT,GAAiBpxB,SAAS6xB,GAAmBA,EAAkBT,GAAiB,GACvG/S,EAAK0T,aAAeV,GAAarxB,SAAS+xB,GAAgBA,EAAeV,GAAa,GACtFhT,EAAK4T,iBAAmBX,GAAatxB,SAASiyB,GAAoBA,EAAmBX,GAAa,GAElGjT,EAAKoT,eAAiB,GACtBpT,EAAKqT,YAAc,GACnBrT,EAAKsT,gBAAkB,GAEvBtT,EAAKoT,eAAiBpT,EAAKkU,oBAAoBlU,EAAK+T,mBACpD/T,EAAKqT,YAAcrT,EAAKmU,iBAAiBnU,EAAKgU,gBAC9ChU,EAAKsT,gBAAkBtT,EAAKoU,qBAAqBpU,EAAKiU,oBAEtDjU,EAAKqU,gBAAiB,EAEtBrU,EAAKsU,sBAAwBtU,EAAKsT,gBAAgBxmC,OAClDkzB,EAAKuU,qBAAuBvU,EAAKoT,eAAetmC,OAChDkzB,EAAKwU,kBAAoBxU,EAAKqT,YAAYvmC,OAEtC,GAAMkzB,EAAKsU,sBAAwBtU,EAAKuU,qBAAuBvU,EAAKwU,kBAItE,OAHAxU,EAAKK,KACH,8CAEFoO,GAAAzO,GAIF,IAAK,IAAIjzB,EAAI,EAAGA,EAAIizB,EAAKwU,kBAAmBznC,IAC1CizB,EAAKqT,YAAYtmC,GAAG0nC,kBAAkBzU,EAAK0U,cAAc1+B,KAAIyrB,GAAAzB,KAE/D,IAAK,IAAIjzB,EAAI,EAAGA,EAAIizB,EAAKsU,sBAAuBvnC,IAC9CizB,EAAKsT,gBAAgBvmC,GAAG0nC,kBAAkBzU,EAAK2U,kBAAkB3+B,KAAIyrB,GAAAzB,KAEvE,IAAK,IAAIjzB,EAAI,EAAGA,EAAIizB,EAAKuU,qBAAsBxnC,IAC7CizB,EAAKoT,eAAermC,GAAG0nC,kBAAkBzU,EAAK4U,iBAAiB5+B,KAAIyrB,GAAAzB,KACpE,OAAAA,CACH,CAqQC,OAnQDnD,GAAAqW,EAAA,CAAA,CAAA5hC,IAAA,sBAAA1I,MAKA,SAAoBymC,GAAW,IAAA/H,EAAAh+B,KACvBimC,EAAc,GA2BpB,OAzBAF,EAAU7lC,SAAQ,SAACwkC,GACjB,IAAMQ,EAAa,IAAIT,GAAW,CAChCC,SAAUA,EAAS5+B,OACnB6+B,YAAa,YACbG,aAAc9G,EAAKkM,gBACnBnF,WAAY,0BAGY,IAAtBG,EAAW1hC,OAKV0hC,EAAWkB,QAAQqD,MAIpBvE,EAAWmB,qBACbrI,EAAKjH,KAAIzZ,mDAAAA,OAAoD4nB,EAAWzgC,OAAiC,6BAI3GwhC,EAAYzhC,KAAK0gC,IAbflH,EAAKjH,KAAI,aAAAzZ,OAAconB,EAAiG,0FAc5H,IAEOuB,CACT,GAEA,CAAAj+B,IAAA,mBAAA1I,MAKA,SAAiBymC,GAAW,IAAA7H,EAAAl+B,KACpBimC,EAAc,GA2BpB,OAzBAF,EAAU7lC,SAAQ,SAACwkC,GACjB,IAAMQ,EAAa,IAAIT,GAAW,CAChCC,SAAUA,EAAS5+B,OACnB6+B,YAAa,QACbG,aAAc5G,EAAKkM,aACnBrF,WAAY,0BAGY,IAAtBG,EAAW1hC,OAKV0hC,EAAWkB,QAAQsD,MAIpBxE,EAAWmB,qBACbnI,EAAKnH,KAAIzZ,mDAAAA,OAAoD4nB,EAAWzgC,OAAiC,6BAI3GwhC,EAAYzhC,KAAK0gC,IAbfhH,EAAKnH,KAAI,aAAAzZ,OAAconB,EAA4F,qFAcvH,IAEOuB,CACT,GAEA,CAAAj+B,IAAA,uBAAA1I,MAKA,SAAqBymC,GAAW,IAAA3H,EAAAp+B,KACxBimC,EAAc,GA0BpB,OAxBAF,EAAU7lC,SAAQ,SAACwkC,GACjB,IAAMQ,EAAa,IAAIT,GAAW,CAChCC,SAAUA,EAAS5+B,OACnB6+B,YAAa,YACbG,aAAc1G,EAAKkM,iBACnBvF,WAAY,0BAEY,IAAtBG,EAAW1hC,OAKV0hC,EAAWkB,QAAQuD,MAIpBzE,EAAWmB,qBACbjI,EAAKrH,KAAIzZ,mDAAAA,OAAoD4nB,EAAWzgC,OAAiC,6BAI3GwhC,EAAYzhC,KAAK0gC,IAbf9G,EAAKrH,KAAI,aAAAzZ,OAAconB,EAA+F,wFAc1H,IAEOuB,CACT,GAEA,CAAAj+B,IAAA,OAAA1I,MAGA,WAEEU,KAAKq2B,OAAOyC,GACV,WACA,SAASF,GAAQ,IAEgB2S,EAFhBC,EAAAC,GAEKzrC,KAAK0rC,QAAM,IAA/B,IAAAF,EAAAG,MAAAJ,EAAAC,EAAA/8B,KAAA7O,MAAiC,CAAjB2rC,EAAAjsC,MACRssC,cAAchT,EAAOxa,KAC7B,CAAC,CAAA,MAAAtX,GAAA0kC,EAAAptC,EAAA0I,EAAA,CAAA,QAAA0kC,EAAAz0B,GAAA,CAEH,EAAErK,KAAK1M,OAGTA,KAAKq2B,OAAOyC,GACV,oBACA,SAASF,GACP54B,KAAK6rC,kBAAkBjT,EAAOxa,MAAQ,CAAE,EAC1C,EAAE1R,KAAK1M,MAEX,GACA,CAAAgI,IAAA,QAAA1I,MAGA,WACEU,KAAK6rC,kBAAkBvP,GAAU4L,KAAK0B,EAAoBY,kBAE1DxqC,KAAKq2B,OAAOyC,GAAG,SAAU94B,KAAKg/B,mBAC9Bh/B,KAAKq2B,OAAOyC,GAAG,WAAY94B,KAAKg/B,kBAClC,GAEA,CAAAh3B,IAAA,oBAAA1I,MAKA,WACEU,KAAK8/B,aAAa8J,EAAoBY,gBAAiBxqC,KAAKuqC,eAC9D,GACA,CAAAviC,IAAA,mBAAA1I,MAKA,SAAiBlB,GACf4B,KAAK6rC,kBAAkB,OAAQztC,EAAEgW,OAAO9U,MAC1C,GAEA,CAAA0I,IAAA,oBAAA1I,MAKA,SAAkBlB,GAChB4B,KAAK6rC,kBAAkB,QAASztC,EAAEgW,OAAO9U,MAC3C,GAEA,CAAA0I,IAAA,gBAAA1I,MAKA,SAAclB,GACZ,IAAM0tC,EAA4B,YAAnB1tC,EAAEgW,OAAO9U,MAAsBiqC,GAAsBC,GAEpExpC,KAAK6rC,kBAAkBC,EACzB,GAEA,CAAA9jC,IAAA,sBAAA1I,MAKA,WACEU,KAAKuqC,eAAiB5rC,OAAO6lB,OAAO,CAAE,EAAEykB,IACxCjpC,KAAK6rC,oBAAoB,IAEME,EAFNC,EAAAP,GAELzrC,KAAK0rC,QAAM,IAA/B,IAAAM,EAAAL,MAAAI,EAAAC,EAAAv9B,KAAA7O,MAAiC,CAAjBmsC,EAAAzsC,MACR2sC,YACR,CAAC,CAAA,MAAAnlC,GAAAklC,EAAA5tC,EAAA0I,EAAA,CAAA,QAAAklC,EAAAj1B,GAAA,CACH,GAEA,CAAA/O,IAAA,oBAAA1I,MAMA,SAAkB4/B,GAChB,OAAOA,EAAOl/B,KAAKuqC,eAAerL,GAAQl/B,KAAKuqC,cACjD,GAEA,CAAAviC,IAAA,oBAAA1I,MAcA,WAAgE,IAAA4sC,EAAAlsC,KAA9C8rC,EAAM7+B,UAAAzJ,OAAA,QAAA3D,IAAAoN,UAAA,GAAAA,UAAA,GAAGg8B,GAAyB3pC,EAAK2N,UAAAzJ,OAAA,QAAA3D,IAAAoN,UAAA,GAAAA,UAAA,GAAG,GACpC,WAAlBysB,GAAOoS,GACTntC,OAAO6lB,OAAOxkB,KAAKuqC,eAAgBuB,GACR,iBAAXA,IAChB9rC,KAAKuqC,eAAeuB,GAAUxsC,GAIhCU,KAAK+pC,YAAY7pC,SAAQ,SAAC8yB,GACxB,IAAMzY,EAAsC,UAA9B2xB,EAAK3B,eAAepB,MAAoB,UAAY,WAClEnW,EAAMkS,WAAW3qB,GAAO8qB,SAAU,CACpC,IACArlC,KAAKgqC,gBAAgB9pC,SAAQ,SAAC8yB,GAC5BA,EAAMkS,WAAWgH,EAAK3B,eAAejB,OAAOjE,SAAU,CACxD,IACArlC,KAAK8pC,eAAe5pC,SAAQ,SAAC8yB,GAC3BA,EAAMkS,WAAWgH,EAAK3B,eAAehW,MAAM8Q,SAAU,CACvD,IAEA/I,GAAUziB,MAAM+vB,EAAoBY,gBAAiBxqC,KAAKuqC,gBACtDvqC,KAAKq2B,QACPr2B,KAAKq2B,OAAOrtB,KAAK4gC,EAAoBY,gBAAiBxqC,KAAKuqC,eAE/D,GAEA,CAAAviC,IAAA,SAAApF,IAKA,WACE,OAAO5C,KAAK+pC,YACTzsB,OAAOtd,KAAKgqC,iBACZ1sB,OAAOtd,KAAK8pC,eACjB,IACA,CAAA,CAAA9hC,IAAA,kBAAApF,IAOA,WACE,MAAO,gBACT,KAACgnC,CAAA,EApUsCvK,ICtB5B8M,YAAoBtC,GAAAxS,GAAA8U,EAAAtC,GAAA,IAAAtS,EAAAC,GAAA2U,GAM/B,SAAAA,EAAYC,GAAiB,IAAA1V,EAyB3B,OAzB2BpD,QAAA6Y,IAC3BzV,EAAAa,EAAAz4B,UAAM,0BACDkgC,kBAAoBtI,EAAKsI,kBAAkBtyB,KAAIyrB,GAAAzB,IAEpDA,EAAK2V,iBAAmB,GAEnBD,aAA2BpM,YAC9BtJ,EAAK2V,iBAAiB,GAAK,IAAIlE,GAAO,CACpC1I,OAAQ2M,EACRhE,QAAS1R,EAAK4V,oBAAoB5/B,KAAIyrB,GAAAzB,IACtCtR,QAAS,aAGX5Z,SAASy5B,iBAAiBmH,GAAiBlsC,SAAQ,SAACu/B,GAClD/I,EAAK2V,iBAAiB7nC,KAAK,IAAI2jC,GAAO,CACpC1I,OAAQA,EACR2I,QAAS1R,EAAK4V,oBAAoB5/B,KAAIyrB,GAAAzB,IACtCtR,QAAS,aAEb,IAGFsR,EAAKqU,gBAAiB,EACtBrU,EAAK6V,qBAAuB7V,EAAK2V,iBAAiB7oC,OAE9C,GAAKkzB,EAAK6V,sBACZ7V,EAAKK,KACH,8DAEFoO,GAAAzO,IACDA,CACH,CAkFC,OAhFDnD,GAAA4Y,EAAA,CAAA,CAAAnkC,IAAA,OAAA1I,MAGA,WAEEU,KAAKq2B,OAAOyC,GACV,WACA,SAASF,GACP,IAAK,IAAIn1B,EAAI,EAAGA,EAAIzD,KAAKusC,qBAAsB9oC,IAC7CzD,KAAKqsC,iBAAiB5oC,GAAG+oC,cAAc5T,EAAOxa,MAGhD,GAAI,OAASke,GAAU4L,KAAKiE,EAAqBM,mBAAjD,CAIA,IAAMC,IAAkBpQ,GAAU4L,KAAKiE,EAAqBM,mBAE5DzsC,KAAK2sC,YAAY,gBAAiBD,EAAe1sC,KAAKqsC,kBAAkB,EAJxE,CAMF,EAAE3/B,KAAK1M,MAEX,GACA,CAAAgI,IAAA,QAAA1I,MAGA,WACE,IAAK,IAAImE,EAAI,EAAGA,EAAIzD,KAAK4sC,sBAAuBnpC,IAC9CzD,KAAKosC,gBAAgB3oC,GAAGopC,eAE1B7sC,KAAKq2B,OAAOyC,GAAG,SAAU94B,KAAKg/B,mBAC9Bh/B,KAAKq2B,OAAOyC,GAAG,WAAY94B,KAAKg/B,kBAClC,GAEA,CAAAh3B,IAAA,oBAAA1I,MAKA,WACEU,KAAK8/B,aAAaqM,EAAqBM,kBAAmBzsC,KAAK0sC,cACjE,GAEA,CAAA1kC,IAAA,sBAAA1I,MAGA,WACEU,KAAK0sC,eAAiB1sC,KAAK0sC,aAC7B,GAEA,CAAA1kC,IAAA,gBAAApF,IAIA,WACE,OAAO5C,KAAK+qC,cACd,EAEAhpC,IAIA,SAAkB49B,GAChB3/B,KAAK+qC,eAAiBpL,EACtB3/B,KAAK8sC,aACH,gBACA9sC,KAAKqsC,iBACLrsC,KAAK+qC,eAET,IAEA,CAAA,CAAA/iC,IAAA,oBAAApF,IAOA,WACE,MAAO,eACT,KAACupC,CAAA,EAvHuC9M,ICC7B0N,YAAUlD,GAAAxS,GAAA0V,EAAAlD,GAAA,IAAAtS,EAAAC,GAAAuV,GAMrB,SAAAA,EAAYC,GAAa,IAAAtW,EA8BtB,OA9BsBpD,QAAAyZ,IACvBrW,EAAAa,EAAAz4B,UAAM,uBAEDmuC,aAAe,GAEhBD,aAAuBhN,YACzBtJ,EAAKuW,aAAa,GAAK,IAAI9E,GAAO,CAChC1I,OAAQuN,EACR5E,QAAS1R,EAAKwW,gBAAgBxgC,KAAIyrB,GAAAzB,IAClCtR,QAAS,UAGX5Z,SAASy5B,iBAAiB+H,GAAa9sC,SAAQ,SAACu/B,GAC9C/I,EAAKuW,aAAazoC,KAChB,IAAI2jC,GAAO,CACT1I,OAAQA,EACR2I,QAAS1R,EAAKwW,gBAAgBxgC,KAAIyrB,GAAAzB,IAClCtR,QAAS,UAGf,IAGFsR,EAAKyW,QAAS,EACdzW,EAAK0W,cAAe,EACpB1W,EAAK2W,QAAU3W,EAAK2W,QAAQ3gC,KAAIyrB,GAAAzB,IAChCA,EAAK4W,kBAAoB5W,EAAKuW,aAAazpC,OAEvCkzB,EAAK4W,mBAAqB,GAC5B5W,EAAKK,KAAK,qDACXL,CACH,CAmGC,OAlGDnD,GAAAwZ,EAAA,CAAA,CAAA/kC,IAAA,UAAA1I,MAKA,SAAQs5B,GAGN,GAFA54B,KAAKmtC,OAASvU,EAAOxa,KAAK+uB,OAGxBntC,KAAKmtC,QACLntC,KAAKutC,YACL,CACA,IAAK,IAAI9pC,EAAI,EAAGA,EAAIzD,KAAKstC,kBAAmB7pC,IAC1CzD,KAAKitC,aAAaxpC,GAAGg8B,OAAO5G,aAAa,cAAe,QAE1D74B,KAAKutC,aAAc,CACrB,MACE,IAAK,IAAI9pC,EAAI,EAAGA,EAAIzD,KAAKstC,kBAAmB7pC,IACtCzD,KAAKitC,aAAaxpC,GAAGg8B,OAAO+N,aAAa,iBAC3CxtC,KAAKitC,aAAaxpC,GAAGg8B,OAAO5G,aAAa,cAAe,IACxD74B,KAAKutC,aAAc,EAI3B,GAEA,CAAAvlC,IAAA,kBAAA1I,MAKA,YAEKU,KAAKmtC,QACNntC,KAAKutC,aAELvtC,KAAKq2B,OAAOrtB,KAAK,WAErB,GAEA,CAAAhB,IAAA,OAAA1I,MAGA,WAEEU,KAAKq2B,OAAOyC,GAAG,SAAU94B,KAAKqtC,SAG9BrtC,KAAKq2B,OAAOyC,GACV,WACA,SAAS3E,GACPn0B,KAAKutC,YAAcpZ,EAAS/V,KAAKqvB,MACjC,IAAK,IAAIhqC,EAAI,EAAGA,EAAIzD,KAAKstC,kBAAmB7pC,IAC1CzD,KAAKitC,aAAaxpC,GAAG+oC,cAAcrY,EAAS/V,KAEhD,EAAE1R,KAAK1M,OAGTA,KAAKq2B,OAAOyC,GACV,cACA,SAAS5R,GACPlnB,KAAKotC,eAAiBlmB,EAAM9I,IAC9B,EAAE1R,KAAK1M,MAEX,GAEA,CAAAgI,IAAA,cAAApF,IAGA,WACE,OAAO5C,KAAKotC,YACd,EAEArrC,IAMA,SAAgBk5B,GACdj7B,KAAKotC,aAAenS,EACpB,IAAK,IAAIx3B,EAAI,EAAGA,EAAIzD,KAAKstC,kBAAmB7pC,IAC1CzD,KAAKitC,aAAaxpC,GAAGg8B,OAAOrzB,UAAUssB,OAAO,YAC7C14B,KAAKitC,aAAaxpC,GAAGg8B,OAAOrzB,UAAUssB,OAAO,WAC7C14B,KAAKitC,aAAaxpC,GAAGg8B,OAAOrzB,UAAUic,IAAI4S,EAAU,UAAY,YAGlEj7B,KAAKq2B,OAAOoC,QAAQ,cACtB,IAEA,CAAA,CAAAzwB,IAAA,UAAApF,IAMA,WACE,MAAO,MACT,KAACmqC,CAAA,EAxI6B1N,ICLnBqO,YAAW7D,GAAAxS,GAAAqW,EAAA7D,GAAA,IAAAtS,EAAAC,GAAAkW,GAOtB,SAAAA,EAAYC,GAAyC,IAAAjX,EAA5BkX,IAAmB3gC,UAAAzJ,OAAA,QAAA3D,IAAAoN,UAAA,KAAAA,UAAA,GAAOqmB,QAAAoa,IACjDhX,EAAAa,EAAAz4B,UAAM,wBACD+uC,qBAAuBD,EAC5BlX,EAAKoX,aAAc,EACnBpX,EAAKqX,mBAAoB,EACzBrX,EAAKsX,YAAc,KACnBtX,EAAKuX,gBAAiB,EACtBvX,EAAKwX,YAAa,EAClBxX,EAAKyX,SAAU,EACfzX,EAAKtc,OAAS,KACdsc,EAAK0X,SAAW1X,EAAK0X,SAAS1hC,KAAIyrB,GAAAzB,IAClCA,EAAK2X,YAAc3X,EAAK2X,YAAY3hC,KAAIyrB,GAAAzB,IACxCA,EAAK4X,YAAc5X,EAAK4X,YAAY5hC,KAAIyrB,GAAAzB,IACxCA,EAAKmE,QAAUnE,EAAKmE,QAAQnuB,KAAIyrB,GAAAzB,IAChC,IAAM6X,EAAgB7X,EAAK6X,cAAc7hC,KAAIyrB,GAAAzB,IA0B5C,OAxBDA,EAAK8X,eAAgB,EACrB9X,EAAK+X,aAAe,GAEpB/X,EAAKgY,eAAiB,IAAI9T,GACxBlE,EAAKiY,iBAAiBjiC,KAAIyrB,GAAAzB,IAC1BA,EAAKkY,gBAAgBliC,KAAIyrB,GAAAzB,KAG3BA,EAAKgY,eAAezT,QAAUvE,EAAKkX,oBAE/BD,aAAuB3N,YACzBtJ,EAAK+X,aAAa,GAAK,IAAItG,GAAO,CAChC1I,OAAQkO,EACRvF,QAASmG,EACTnpB,QAASsoB,EAAYmB,WAGvBrjC,SAASy5B,iBAAiB0I,GAAaztC,SAAQ,SAACu/B,GAC9C/I,EAAK+X,aAAajqC,KAAK,IAAI2jC,GAAO,CAChC1I,OAAQA,EACR2I,QAASmG,EACTnpB,QAASsoB,EAAYmB,WAEzB,IACDnY,CACH,CAyOC,OAvODnD,GAAAma,EAAA,CAAA,CAAA1lC,IAAA,QAAApF,IA2BA,WACE,OAAO5C,KAAKmuC,OACd,EAEApsC,IA1BA,SAAUorC,GAGR,GAFAA,IAAWA,GAEPntC,KAAKwuC,cAAT,CAGAxuC,KAAKmuC,QAAUhB,EAEfntC,KAAKq2B,OAAOrtB,KAAK0kC,EAAYmB,SAAU1B,GACvCntC,KAAKq2B,OAAOoC,QAAQ0U,EAAS,SAAW,UAAW,CAAEA,OAAAA,IAErD,IAAK,IAAI1pC,EAAI,EAAGuzB,EAAIh3B,KAAKyuC,aAAajrC,OAAQC,EAAIuzB,EAAGvzB,IACnDzD,KAAKyuC,aAAahrC,GAAGg8B,OAAOrzB,UAAUssB,OAAO,YAC7C14B,KAAKyuC,aAAahrC,GAAGg8B,OAAOrzB,UAAUssB,OAAO,UAC7C14B,KAAKyuC,aAAahrC,GAAGg8B,OAAOrzB,UAAUic,IAAI8kB,EAAS,SAAW,WAThE,CAWF,GAAC,CAAAnlC,IAAA,sBAAApF,IAyBD,WACE,OAAO5C,KAAK6tC,oBACd,EAEA9rC,IAdA,SAAwB6rC,GACtB5tC,KAAK6tC,qBAAuBD,EAE5B5tC,KAAK0uC,eAAezT,QAAUj7B,KAAK6tC,oBACrC,GAAC,CAAA7lC,IAAA,WAAA1I,MAcD,WACOU,KAAK8uC,QAKV9uC,KAAKoa,OAAOO,cAAco0B,OAC5B,GAEA,CAAA/mC,IAAA,UAAA1I,MAIA,WACOU,KAAK8uC,QAGV9uC,KAAKoa,OAAOO,cAAcq0B,MAC5B,GAEA,CAAAhnC,IAAA,cAAA1I,MAKA,WACOU,KAAK4tC,sBAIN5tC,KAAKkuC,YACPluC,KAAKivC,UAKHjvC,KAAKguC,aACPkB,aAAalvC,KAAKguC,aAOpBhuC,KAAKguC,YAAc7lC,WACjB,WACEnI,KAAKguC,YAAc,KAGfhuC,KAAKiuC,iBAITjuC,KAAKmvC,MAAQvrB,QAAQ5jB,KAAK+tC,mBAAqB/tC,KAAK8tC,aAIhD9tC,KAAKkuC,aAAeluC,KAAK+tC,mBAAqB/tC,KAAK8tC,aACrD9tC,KAAKouC,WAER,EAAC1hC,KAAK1M,MACP,KAEJ,GAEA,CAAAgI,IAAA,cAAA1I,MAMA,SAAYs5B,GACV54B,KAAKkuC,aAAetV,EAAOxa,KAC3Bpe,KAAKquC,aACP,GAEA,CAAArmC,IAAA,UAAA1I,MAMA,SAAQs5B,GACN54B,KAAK8tC,aAAelV,EAAOxa,KAC3Bpe,KAAKquC,aACP,GAEA,CAAArmC,IAAA,mBAAA1I,MAMA,WACEU,KAAK+tC,mBAAoB,EACzB/tC,KAAKquC,aACP,GAEA,CAAArmC,IAAA,kBAAA1I,MAMA,WAKEU,KAAK+tC,kBAAoB/tC,KAAK8tC,aAAc,EAC5C9tC,KAAKquC,aACP,GAEA,CAAArmC,IAAA,gBAAA1I,MAGA,WACEU,KAAKiuC,gBAAkBjuC,KAAKiuC,eAC5BjuC,KAAKmvC,OAASnvC,KAAKmvC,KACrB,GAEA,CAAAnnC,IAAA,OAAA1I,MAIA,SAAA42B,GAAiB,IAAV9b,EAAM8b,EAAN9b,OACLpa,KAAKoa,OAASA,EAEdpa,KAAKq2B,OAAOyC,GACV,WACA,SAAU3E,GACJA,EAASib,eACXpvC,KAAKwuC,eAAgB,GAGvB,IAAK,IAAI/qC,EAAI,EAAGuzB,EAAIh3B,KAAKyuC,aAAajrC,OAAQC,EAAIuzB,EAAGvzB,IACnDzD,KAAKyuC,aAAahrC,GAAG+oC,cAAcrY,EAAS/V,KAEhD,EAAE1R,KAAK1M,OAETA,KAAKq2B,OAAOyC,GAAG,QAAS94B,KAAK66B,SAC7B76B,KAAKq2B,OAAOyC,GAAG,YAAa94B,KAAKsuC,aAEjCtuC,KAAKmvC,MAAQnvC,KAAKmuC,OACpB,GAEA,CAAAnmC,IAAA,SAAApF,IAMA,WACE,OAAOghB,QAAQ,OAAS5jB,KAAKoa,QAAUpa,KAAKoa,OAAOO,cACrD,GAEA,CAAA3S,IAAA,cAAApF,IAKA,WAEE,IADA,IAAMysC,EAAU,GACP5rC,EAAI,EAAGuzB,EAAIh3B,KAAKyuC,aAAajrC,OAAQC,EAAIuzB,EAAGvzB,IACnD4rC,EAAQ7qC,KAAKxE,KAAKyuC,aAAahrC,GAAGg8B,QAEpC,OAAO4P,CACT,IAEA,CAAA,CAAArnC,IAAA,WAAApF,IAMA,WACE,MAAO,OACT,KAAC8qC,CAAA,EAzR8BrO,ICEpBiQ,YAAWzF,GAAAxS,GAAAiY,EAAAzF,GAAA,IAsYtB9K,EAtYsBxH,EAAAC,GAAA8X,GAatB,SAAAA,IASQ,IAAA5Y,EAAAR,EAAAjpB,UAAAzJ,OAAA,QAAA3D,IAAAoN,UAAA,GAAAA,UAAA,GAAJ,CAAE,EARJsiC,EAAYrZ,EAAZqZ,aACAC,EAAYtZ,EAAZsZ,aACAC,EAAUvZ,EAAVuZ,WACAC,EAASxZ,EAATwZ,UACAC,EAAYzZ,EAAZyZ,aACAC,EAAY1Z,EAAZ0Z,aACAC,EAAU3Z,EAAV2Z,WACAC,EAAS5Z,EAAT4Z,UAASxc,QAAAgc,GAET5Y,EAAAa,EAAAz4B,UAAM,uBACN,IAAMixC,EAAQzT,GAAU4L,KAAKoH,EAAYU,eA+KzC,GA9KAtZ,EAAKsI,kBAAoBtI,EAAKsI,kBAAkBtyB,KAAIyrB,GAAAzB,IACpDA,EAAKuZ,YAAcF,IAAgB,EACnCrZ,EAAKwZ,aAAc,EACnBxZ,EAAKyZ,UAAW,EAChBzZ,EAAK0Z,WAAY,EAEjB1Z,EAAK2Z,mBAAoB,EACzB3Z,EAAK4Z,mBAAoB,EACzB5Z,EAAK6Z,iBAAkB,EACvB7Z,EAAK8Z,gBAAiB,EAEtB9Z,EAAK+Z,kBAAmB,EACxB/Z,EAAKga,kBAAmB,EACxBha,EAAKia,gBAAiB,EACtBja,EAAKka,eAAgB,EAErBla,EAAKma,YAAc,EACnBna,EAAKoa,YAAc,EACnBpa,EAAKqa,UAAY,EACjBra,EAAKsa,SAAW,EAEhBta,EAAKiZ,aAAe,GACpBjZ,EAAKkZ,aAAe,GACpBlZ,EAAKmZ,WAAa,GAClBnZ,EAAKoZ,UAAY,GAEjBpZ,EAAK6Y,aAAe,GACpB7Y,EAAK8Y,aAAe,GACpB9Y,EAAK+Y,WAAa,GAClB/Y,EAAKgZ,UAAW,GAEZC,aAAwB3P,YAC1BtJ,EAAKiZ,aAAa,GAAK,IAAIlI,GAAO,CAChCC,OAAQiI,EACRhI,QAAS2H,EAAY2B,eACrBnM,aAAcpO,EAAKma,cAGrBrlC,SAASy5B,iBAAiB0K,GAAczvC,SAAQ,SAACwnC,GAC/C,IAAMwJ,EAAY,IAAIzJ,GAAO,CAC3BC,OAAQA,EACRC,QAAS2H,EAAY2B,eACrBnM,aAAcpO,EAAKma,cAEjBK,EAAUxJ,QACZhR,EAAKiZ,aAAanrC,KAAK0sC,EAE3B,IAEEtB,aAAwB5P,YAC1BtJ,EAAKkZ,aAAa,GAAK,IAAInI,GAAO,CAChCC,OAAQkI,EACRjI,QAAS2H,EAAY6B,eACrBrM,aAAcpO,EAAKoa,cAGrBtlC,SAASy5B,iBAAiB2K,GAAc1vC,SAAQ,SAACwnC,GAC/C,IAAMwJ,EAAY,IAAIzJ,GAAO,CAC3BC,OAAQA,EACRC,QAAS2H,EAAY6B,eACrBrM,aAAcpO,EAAKoa,cAEjBI,EAAUxJ,QACZhR,EAAKkZ,aAAaprC,KAAK0sC,EAE3B,IAEErB,aAAsB7P,YACxBtJ,EAAKmZ,WAAW,GAAK,IAAIpI,GAAO,CAC9BC,OAAQmI,EACRlI,QAAS2H,EAAY8B,aACrBtM,aAAcpO,EAAKqa,YAGrBvlC,SAASy5B,iBAAiB4K,GAAY3vC,SAAQ,SAACwnC,GAC7C,IAAMwJ,EAAY,IAAIzJ,GAAO,CAC3BC,OAAQA,EACRC,QAAS2H,EAAY8B,aACrBtM,aAAcpO,EAAKqa,YAEjBG,EAAUxJ,QACZhR,EAAKmZ,WAAWrrC,KAAK0sC,EAEzB,IAEEpB,aAAqB9P,YACvBtJ,EAAKoZ,UAAU,GAAK,IAAIrI,GAAO,CAC7BC,OAAQoI,EACRnI,QAAS2H,EAAY+B,YACrBvM,aAAcpO,EAAKsa,WAGrBxlC,SAASy5B,iBAAiB6K,GAAW5vC,SAAQ,SAACwnC,GAC5C,IAAMwJ,EAAY,IAAIzJ,GAAO,CAC3BC,OAAQA,EACRC,QAAS2H,EAAY+B,YACrBvM,aAAcpO,EAAKsa,WAEjBE,EAAUxJ,QACZhR,EAAKoZ,UAAUtrC,KAAK0sC,EAExB,IAGG3B,aAAwBvP,YAC3BtJ,EAAK6Y,aAAa,GAAK,IAAIpH,GAAO,CAChC1I,OAAQ8P,EACRnH,QAAS1R,EAAK4a,cAAc5kC,KAAIyrB,GAAAzB,IAChCtR,QAASkqB,EAAYiC,WAGvB/lC,SAASy5B,iBAAiBsK,GAAcrvC,SAAQ,SAACu/B,GAC/C/I,EAAK6Y,aAAa/qC,KAAK,IAAI2jC,GAAO,CAChC1I,OAAQA,EACR2I,QAAS1R,EAAK4a,cAAc5kC,KAAIyrB,GAAAzB,IAChCtR,QAASkqB,EAAYiC,WAEzB,IAEG/B,aAAwBxP,YAC3BtJ,EAAK8Y,aAAa,GAAK,IAAIrH,GAAO,CAChC1I,OAAQ+P,EACRpH,QAAS1R,EAAK8a,cAAc9kC,KAAIyrB,GAAAzB,IAChCtR,QAAS,UAGX5Z,SAASy5B,iBAAiBuK,GAActvC,SAAQ,SAACu/B,GAC/C/I,EAAK8Y,aAAahrC,KAAK,IAAI2jC,GAAO,CAChC1I,OAAQA,EACR2I,QAAS1R,EAAK8a,cAAc9kC,KAAIyrB,GAAAzB,IAChCtR,QAAS,UAEb,IAEGqqB,aAAsBzP,YACzBtJ,EAAK+Y,WAAW,GAAK,IAAItH,GAAO,CAC9B1I,OAAQgQ,EACRrH,QAAS1R,EAAK+a,YAAY/kC,KAAIyrB,GAAAzB,IAC9BtR,QAAS,QAGX5Z,SAASy5B,iBAAiBwK,GAAYvvC,SAAQ,SAACu/B,GAC7C/I,EAAK+Y,WAAWjrC,KAAK,IAAI2jC,GAAO,CAC9B1I,OAAQA,EACR2I,QAAS1R,EAAK+a,YAAY/kC,KAAIyrB,GAAAzB,IAC9BtR,QAAS,QAEb,IAEGsqB,aAAqB1P,YACxBtJ,EAAKgZ,UAAU,GAAK,IAAIvH,GAAO,CAC7B1I,OAAQiQ,EACRtH,QAAS1R,EAAKgb,WAAWhlC,KAAIyrB,GAAAzB,IAC7BtR,QAAS,OAGX5Z,SAASy5B,iBAAiByK,GAAWxvC,SAAQ,SAACu/B,GAC5C/I,EAAKgZ,UAAUlrC,KAAK,IAAI2jC,GAAO,CAC7B1I,OAAQA,EACR2I,QAAS1R,EAAKgb,WAAWhlC,KAAIyrB,GAAAzB,IAC7BtR,QAAS,OAEb,IAGFsR,EAAKib,mBAAqBjb,EAAKiZ,aAAansC,OAC5CkzB,EAAKkb,mBAAqBlb,EAAKkZ,aAAapsC,OAC5CkzB,EAAKmb,iBAAmBnb,EAAKmZ,WAAWrsC,OACxCkzB,EAAKob,gBAAkBpb,EAAKoZ,UAAUtsC,OACtCkzB,EAAKqb,mBAAqBrb,EAAK6Y,aAAa/rC,OAC5CkzB,EAAKsb,mBAAqBtb,EAAK8Y,aAAahsC,OAC5CkzB,EAAKub,iBAAmBvb,EAAK+Y,WAAWjsC,OACxCkzB,EAAKwb,gBAAkBxb,EAAKgZ,UAAUlsC,OAElC,GAAMkzB,EAAKib,mBAAqBjb,EAAKkb,mBAAqBlb,EAAKmb,iBAAmBnb,EAAKob,gBAAkBpb,EAAKqb,mBAAqBrb,EAAKsb,mBAAqBtb,EAAKub,iBAAmBvb,EAAKwb,gBAE5L,OADAxb,EAAKK,KAAK,mDACVoO,GAAAzO,GAGF,IAAK,IAAIjzB,EAAI,EAAGA,EAAIizB,EAAKib,mBAAoBluC,IAC3CizB,EAAKiZ,aAAalsC,GAAG0uC,mBAAmBzb,EAAK0b,oBAAoB1lC,KAAIyrB,GAAAzB,KAEvE,IAAK,IAAIjzB,EAAI,EAAGA,EAAIizB,EAAKkb,mBAAoBnuC,IAC3CizB,EAAKkZ,aAAansC,GAAG0uC,mBAAmBzb,EAAK2b,oBAAoB3lC,KAAIyrB,GAAAzB,KAEvE,IAAK,IAAIjzB,EAAI,EAAGA,EAAIizB,EAAKmb,iBAAkBpuC,IACzCizB,EAAKmZ,WAAWpsC,GAAG0uC,mBAAmBzb,EAAK4b,kBAAkB5lC,KAAIyrB,GAAAzB,KAEnE,IAAK,IAAIjzB,EAAI,EAAGA,EAAIizB,EAAKob,gBAAiBruC,IACxCizB,EAAKoZ,UAAUrsC,GAAG0uC,mBAAmBzb,EAAK6b,iBAAiB7lC,KAAIyrB,GAAAzB,KAchE,OAXGA,EAAKiZ,aAAa,IAAMjZ,EAAKiZ,aAAa,GAAGjI,SAC/ChR,EAAKma,YAAcna,EAAKiZ,aAAa,GAAGrwC,OAEtCo3B,EAAKkZ,aAAa,IAAMlZ,EAAKkZ,aAAa,GAAGlI,SAC/ChR,EAAKoa,YAAcpa,EAAKkZ,aAAa,GAAGtwC,OAEtCo3B,EAAKmZ,WAAW,IAAMnZ,EAAKmZ,WAAW,GAAGnI,SAC3ChR,EAAKqa,UAAYra,EAAKmZ,WAAW,GAAGvwC,OAElCo3B,EAAKoZ,UAAU,IAAMpZ,EAAKoZ,UAAU,GAAGpI,SACzChR,EAAKsa,SAAWta,EAAKoZ,UAAU,GAAGxwC,OACnCo3B,CACH,CA8eC,OA5eDnD,GAAA+b,EAAA,CAAA,CAAAtnC,IAAA,sBAAA1I,MAIA,SAAoBlB,GAClB,GAAI4B,KAAK2xC,oBAAsB,EAC7B3xC,KAAK6wC,YAAczyC,EAAEgW,OAAO9U,UAD9B,CAIAU,KAAK6wC,YAAc7wC,KAAK2vC,aAAa,GAAG3G,YACtCxB,OAAOppC,EAAEgW,OAAO9U,QAElBU,KAAKwyC,YAAcxyC,KAAK6wC,YAEnB7wC,KAAKqwC,oBACRrwC,KAAKyyC,WAAazyC,KAAKwyC,YAEpBxyC,KAAKuwC,kBACRvwC,KAAK0yC,SAAW1yC,KAAKwyC,YAElBxyC,KAAKwwC,iBACRxwC,KAAK2yC,QAAU3yC,KAAKwyC,YAGtBxyC,KAAK8/B,aAAawP,EAAY2B,eAAgBjxC,KAAK6wC,aAEnD,IAAK,IAAIptC,EAAI,EAAGA,EAAIzD,KAAK2xC,mBAAoBluC,IAC3CzD,KAAK2vC,aAAalsC,GAAGnE,MAAQU,KAAK6wC,WAnBpC,CAqBF,GAEA,CAAA7oC,IAAA,sBAAA1I,MAIA,SAAoBlB,GAClB,GAAI4B,KAAK4xC,oBAAsB,EAC7B5xC,KAAK8wC,YAAc1yC,EAAEgW,OAAO9U,UAD9B,CAKAU,KAAK8wC,YAAc9wC,KAAK4vC,aAAa,GAAG5G,YACtCxB,OAAOppC,EAAEgW,OAAO9U,QAGlBU,KAAKyyC,YAAczyC,KAAK8wC,YACnB9wC,KAAKyyC,aAAczyC,KAAKqwC,mBAAoB,GACjDrwC,KAAK4yC,kBACL5yC,KAAK8/B,aAAawP,EAAY6B,eAAgBnxC,KAAK8wC,aAEnD,IAAK,IAAIrtC,EAAI,EAAGA,EAAIzD,KAAK4xC,mBAAoBnuC,IAC3CzD,KAAK4vC,aAAansC,GAAGnE,MAAQU,KAAK8wC,WAZpC,CAcF,GAEA,CAAA9oC,IAAA,mBAAA1I,MAIA,SAAiBlB,GACf,GAAI4B,KAAK8xC,iBAAmB,EAC1B9xC,KAAKgxC,SAAW5yC,EAAEgW,OAAO9U,UAD3B,CAIAU,KAAKgxC,SAAWhxC,KAAK8vC,UAAU,GAAG9G,YAAYxB,OAAOppC,EAAEgW,OAAO9U,QACzDU,KAAK2yC,UAAW3yC,KAAKwwC,gBAAiB,GAC3CxwC,KAAK2yC,SAAW3yC,KAAKgxC,SACrBhxC,KAAK4yC,kBAEL5yC,KAAK8/B,aAAawP,EAAY+B,YAAarxC,KAAKgxC,UAChD,IAAK,IAAIvtC,EAAI,EAAGA,EAAIzD,KAAK8xC,gBAAiBruC,IACxCzD,KAAK8vC,UAAUrsC,GAAGnE,MAAQU,KAAKgxC,QARjC,CAUF,GAEA,CAAAhpC,IAAA,oBAAA1I,MAIA,SAAkBlB,GAChB,GAAI4B,KAAK6xC,kBAAoB,EAC3B7xC,KAAK+wC,UAAY3yC,EAAEgW,OAAO9U,UAD5B,CAIAU,KAAK+wC,UAAY/wC,KAAK6vC,WAAW,GAAG7G,YAAYxB,OAAOppC,EAAEgW,OAAO9U,QAC3DU,KAAK0yC,WAAY1yC,KAAKuwC,iBAAkB,GAC7CvwC,KAAK0yC,UAAY1yC,KAAK+wC,UACtB/wC,KAAK4yC,kBAEL5yC,KAAK8/B,aAAawP,EAAY8B,aAAcpxC,KAAK+wC,WAEjD,IAAK,IAAIttC,EAAI,EAAGA,EAAIzD,KAAK6xC,iBAAkBpuC,IACzCzD,KAAK6vC,WAAWpsC,GAAGnE,MAAQU,KAAK+wC,SATlC,CAWF,GAEA,CAAA/oC,IAAA,gBAAA1I,MAGA,WACE,IAAMqgC,GAAS3/B,KAAKwyC,WACpBxyC,KAAKwyC,WAAa7S,EAEb3/B,KAAKqwC,oBAAqB1Q,IAC7B3/B,KAAKyyC,WAAa9S,GAEf3/B,KAAKuwC,kBAAmB5Q,IAC3B3/B,KAAK0yC,SAAW/S,GAEb3/B,KAAKwwC,iBAAkB7Q,IAC1B3/B,KAAK2yC,QAAUhT,EAEnB,GAEA,CAAA33B,IAAA,gBAAA1I,MAGA,WACEU,KAAKyyC,YAAczyC,KAAKyyC,WACxBzyC,KAAKqwC,kBAAoBrwC,KAAKyyC,WAC9BzyC,KAAK4yC,iBACP,GAEA,CAAA5qC,IAAA,aAAA1I,MAGA,WACEU,KAAK2yC,SAAW3yC,KAAK2yC,QACrB3yC,KAAKwwC,eAAiBxwC,KAAK2yC,QAC3B3yC,KAAK4yC,iBACP,GAEA,CAAA5qC,IAAA,cAAA1I,MAGA,WACEU,KAAK0yC,UAAY1yC,KAAK0yC,SACtB1yC,KAAKuwC,gBAAkBvwC,KAAK0yC,SAC5B1yC,KAAK4yC,iBACP,GAEA,CAAA5qC,IAAA,kBAAA1I,MAGA,WACEU,KAAKwyC,WAAaxyC,KAAK0yC,UAAY1yC,KAAK2yC,SAAW3yC,KAAKyyC,UAC1D,GAEA,CAAAzqC,IAAA,cAAA1I,MAMA,SAAY0I,EAAK1I,EAAOuzC,GAA8B,IAArB1T,EAAWlyB,UAAAzJ,OAAA,QAAA3D,IAAAoN,UAAA,IAAAA,UAAA,GAC1CjN,KAAK,IAAMgI,GAAO1I,EAClBU,KAAK8sC,aAAa9kC,EAAK6qC,EAASvzC,EAAO6/B,EACzC,GAEA,CAAAn3B,IAAA,UAAA1I,OAAAy/B,EAAAnF,GAAAC,KAAAC,MAGA,SAAAC,EAAAd,GAAA,IAAA5C,EAAA,OAAAwD,KAAAxL,MAAA,SAAA4J,GAAA,cAAAA,EAAAsC,KAAAtC,EAAAv4B,MAAA,KAAA,EAAgB22B,EAAM4C,EAAN5C,OACdr2B,KAAKq2B,OAASA,EACdr2B,KAAKq2B,OAAOyC,GACV,WACA,SAAS3E,GACP,GAAKA,EAAS/V,KAAd,CAKApe,KAAK8yC,oBAAsB3e,EAAS/V,KAAK20B,MACzC/yC,KAAKgzC,oBAAsB7e,EAAS/V,KAAK60B,MACzCjzC,KAAKkzC,kBAAoB/e,EAAS/V,KAAK+0B,IACvCnzC,KAAKozC,iBAAmBjf,EAAS/V,KAAKi1B,GAEtCrzC,KAAKszC,qBAAuBnf,EAAS/V,KAAKyyB,YAC1C7wC,KAAKuzC,qBAAuBpf,EAAS/V,KAAK0yB,YAC1C9wC,KAAKwzC,mBAAqBrf,EAAS/V,KAAK2yB,UACxC/wC,KAAKyzC,kBAAoBtf,EAAS/V,KAAK4yB,SAEvC,IAAK,IAAIvtC,EAAI,EAAGA,EAAIzD,KAAK+xC,mBAAoBtuC,IAC3CzD,KAAKuvC,aAAa9rC,GAAG+oC,cAAcrY,EAAS/V,MAE9C,IAAK,IAAI3a,EAAI,EAAGA,EAAIzD,KAAKgyC,mBAAoBvuC,IAC3CzD,KAAKwvC,aAAa/rC,GAAG+oC,cAAcrY,EAAS/V,MAE9C,IAAK,IAAI3a,EAAI,EAAGA,EAAIzD,KAAKiyC,iBAAkBxuC,IACzCzD,KAAKyvC,WAAWhsC,GAAG+oC,cAAcrY,EAAS/V,MAE5C,IAAK,IAAI3a,EAAI,EAAGA,EAAIzD,KAAKkyC,gBAAiBzuC,IACxCzD,KAAK0vC,UAAUjsC,GAAG+oC,cAAcrY,EAAS/V,MAE3C,IAAK,IAAI3a,EAAI,EAAGA,EAAIzD,KAAK2xC,mBAAoBluC,IAC3CzD,KAAK2vC,aAAalsC,GAAGqlC,cAAc3U,EAAS/V,MAE9C,IAAK,IAAI3a,EAAI,EAAGA,EAAIzD,KAAK4xC,mBAAoBnuC,IAC3CzD,KAAK4vC,aAAansC,GAAGqlC,cAAc3U,EAAS/V,MAE9C,IAAK,IAAI3a,EAAI,EAAGA,EAAIzD,KAAK6xC,iBAAkBpuC,IACzCzD,KAAK6vC,WAAWpsC,GAAGqlC,cAAc3U,EAAS/V,MAE5C,IAAK,IAAI3a,EAAI,EAAGA,EAAIzD,KAAK8xC,gBAAiBruC,IACxCzD,KAAK8vC,UAAUrsC,GAAGqlC,cAAc3U,EAAS/V,MAG3C,IAAMo0B,IAAelW,GAAU4L,KAAKoH,EAAYU,eAC1CyC,IAAenW,GAAU4L,KAAKoH,EAAYoE,eAC1ChB,IAAapW,GAAU4L,KAAKoH,EAAYqE,aACxChB,IAAYrW,GAAU4L,KAAKoH,EAAYsE,YAI7C5zC,KAAK2sC,YAAY,aAAc6F,EAAYxyC,KAAKuvC,cAAc,GAC9DvvC,KAAK2sC,YAAY,aAAc8F,EAAYzyC,KAAKwvC,cAAc,GAC9DxvC,KAAK2sC,YAAY,WAAY+F,EAAU1yC,KAAKyvC,YAAY,GACxDzvC,KAAK2sC,YAAY,UAAWgG,EAAS3yC,KAAK0vC,WAAW,EAhDrD,CAiDF,EAAEhjC,KAAK1M,OACP,KAAA,EAAA,IAAA,MAAA,OAAAi4B,EAAAtI,OAAA,GAAAoK,EAAA/5B,KACH,KAAA,SAAA06B,GAAA,OAAAqE,EAAA/xB,MAAAhN,KAAAiN,UAAA,IAED,CAAAjF,IAAA,QAAA1I,MAGA,WACE,IAAK,IAAImE,EAAI,EAAGA,EAAIzD,KAAK+xC,mBAAoBtuC,IAC3CzD,KAAKuvC,aAAa9rC,GAAGopC,eAEvB,IAAK,IAAIppC,EAAI,EAAGA,EAAIzD,KAAKgyC,mBAAoBvuC,IAC3CzD,KAAKwvC,aAAa/rC,GAAGopC,eAEvB,IAAK,IAAIppC,EAAI,EAAGA,EAAIzD,KAAKiyC,iBAAkBxuC,IACzCzD,KAAKyvC,WAAWhsC,GAAGopC,eAErB,IAAK,IAAIppC,EAAI,EAAGA,EAAIzD,KAAKkyC,gBAAiBzuC,IACxCzD,KAAK0vC,UAAUjsC,GAAGopC,eAGpB7sC,KAAKq2B,OAAOyC,GAAG,SAAU94B,KAAKg/B,mBAC9Bh/B,KAAKq2B,OAAOyC,GAAG,WAAY94B,KAAKg/B,kBAClC,GAEA,CAAAh3B,IAAA,oBAAA1I,MAKA,WAEOU,KAAKszC,oBAAsBtzC,KAAK2xC,mBAAqB,GACxD3xC,KAAK8/B,aAAawP,EAAY2B,eAAgBjxC,KAAK6wC,aAEhD7wC,KAAKuzC,oBAAsBvzC,KAAK4xC,mBAAqB,GACxD5xC,KAAK8/B,aAAawP,EAAY6B,eAAgBnxC,KAAK8wC,aAEhD9wC,KAAKyzC,iBAAmBzzC,KAAK8xC,gBAAkB,GAClD9xC,KAAK8/B,aAAawP,EAAY+B,YAAarxC,KAAKgxC,UAE7ChxC,KAAKwzC,kBAAoBxzC,KAAK6xC,iBAAmB,GACpD7xC,KAAK8/B,aAAawP,EAAY8B,aAAcpxC,KAAK+wC,WAK7C/wC,KAAK+xC,mBAAqB,GAAK/xC,KAAKywC,mBAAsBzwC,KAAKwyC,aAAexyC,KAAKszC,qBACvFtzC,KAAK8/B,aAAawP,EAAYU,cAAehwC,KAAKwyC,YAE9CxyC,KAAKgyC,mBAAqB,GAAKhyC,KAAK0wC,mBAAsB1wC,KAAKyyC,aAAezyC,KAAKuzC,qBACvFvzC,KAAK8/B,aAAawP,EAAYoE,cAAe1zC,KAAKyyC,YAE9CzyC,KAAKkyC,gBAAkB,GAAKlyC,KAAK4wC,gBAAoB5wC,KAAK2yC,UAAY3yC,KAAKyzC,kBAC/EzzC,KAAK8/B,aAAawP,EAAYsE,WAAY5zC,KAAK2yC,SAE3C3yC,KAAKiyC,iBAAmB,GAAKjyC,KAAK2wC,iBAAoB3wC,KAAK0yC,WAAa1yC,KAAKwzC,mBACjFxzC,KAAK8/B,aAAawP,EAAYqE,YAAa3zC,KAAK0yC,SAEpD,GAEA,CAAA1qC,IAAA,aAAApF,IAuBA,WACE,OAAO5C,KAAKiwC,WACd,EAEAluC,IAvBA,SAAe49B,GACb,GAAIA,IAAU3/B,KAAKwyC,WAAnB,CAMA,IAAIrT,GAAc,EAEdn/B,KAAKszC,qBAAuB3T,IAC9B3/B,KAAK8/B,aAAawP,EAAY2B,eAAgBjxC,KAAK6wC,aACnD1R,GAAc,GAEhBn/B,KAAK2sC,YAAY,aAAchN,EAAO3/B,KAAKuvC,aAAcpQ,EARzD,MAFEn/B,KAAK2sC,YAAY,aAAchN,EAAO3/B,KAAKuvC,cAAc,EAW7D,GAAC,CAAAvnC,IAAA,UAAApF,IA8BD,WACE,OAAO5C,KAAKmwC,QACd,EAEApuC,IArBA,SAAY49B,GACV,IAAIR,GAAc,EACdn/B,KAAK2yC,UAAYhT,GAKhB3/B,KAAKyzC,kBAAoB9T,IAC5B3/B,KAAK8/B,aAAawP,EAAY+B,YAAarxC,KAAKgxC,UAChD7R,GAAc,GAEhBn/B,KAAK2sC,YAAY,UAAWhN,EAAO3/B,KAAK0vC,UAAWvQ,IAPjDn/B,KAAK2sC,YAAY,UAAWhN,EAAO3/B,KAAK0vC,WAAW,EAQvD,GAAC,CAAA1nC,IAAA,aAAApF,IA+BD,WACE,OAAO5C,KAAKkwC,WACd,EAEAnuC,IAtBA,SAAe49B,GACb,GAAI3/B,KAAKyyC,aAAe9S,EAAxB,CAKA,IAAIR,GAAc,EACdn/B,KAAKuzC,qBAAuB5T,IAC9B3/B,KAAK8/B,aAAawP,EAAY6B,eAAgBnxC,KAAK8wC,aACnD3R,GAAc,GAGhBn/B,KAAK2sC,YAAY,aAAchN,EAAO3/B,KAAKwvC,aAAcrQ,EAPzD,MAFEn/B,KAAK2sC,YAAY,aAAchN,EAAO3/B,KAAKwvC,cAAc,EAU7D,GAAC,CAAAxnC,IAAA,WAAApF,IA8BD,WACE,OAAO5C,KAAKowC,SACd,EAEAruC,IArBA,SAAa49B,GACX,GAAI3/B,KAAK0yC,WAAa/S,EAAtB,CAKA,IAAIR,GAAc,EACdn/B,KAAKwzC,mBAAqB7T,IAC5B3/B,KAAK8/B,aAAawP,EAAY8B,aAAcpxC,KAAK+wC,WACjD5R,GAAc,GAEhBn/B,KAAK2sC,YAAY,WAAYhN,EAAO3/B,KAAKyvC,WAAYtQ,EANrD,MAFEn/B,KAAK2sC,YAAY,WAAYhN,EAAO3/B,KAAKyvC,YAAY,EASzD,GAAC,CAAAznC,IAAA,cAAApF,IAqFD,WACE,OAAO5C,KAAK6zC,aAAapU,MAC3B,GAEA,CAAAz3B,IAAA,cAAApF,IAIA,WACE,OAAO5C,KAAK8zC,aAAarU,MAC3B,GACA,CAAAz3B,IAAA,YAAApF,IAIA,WACE,OAAO5C,KAAK+zC,WAAWtU,MACzB,GACA,CAAAz3B,IAAA,WAAApF,IAIA,WACE,OAAO5C,KAAKg0C,UAAUvU,MACxB,IAEA,CAAA,CAAAz3B,IAAA,gBAAApF,IAjGA,WACE,MAAO,YACT,GAEA,CAAAoF,IAAA,aAAApF,IAKA,WACE,MAAO,SACT,GAEA,CAAAoF,IAAA,gBAAApF,IAKA,WACE,MAAO,YACT,GAEA,CAAAoF,IAAA,cAAApF,IAKA,WACE,MAAO,UACT,GAEA,CAAAoF,IAAA,iBAAApF,IAKA,WACE,MAAO,aACT,GAEA,CAAAoF,IAAA,eAAApF,IAKA,WACE,MAAO,WACT,GAEA,CAAAoF,IAAA,cAAApF,IAKA,WACE,MAAO,UACT,GAEA,CAAAoF,IAAA,iBAAApF,IAKA,WACE,MAAO,aACT,GAAC,CAAAoF,IAAA,WAAApF,IAsCD,WACE,MAAO,OACT,KAAC0sC,CAAA,EAntB8BjQ,ICJpB4U,GAAgB,WAK3B,SAAAA,IAAc3gB,QAAA2gB,GACZj0C,KAAKu8B,OACLv8B,KAAKk0C,SACP,CAoCC,OAlCD3gB,GAAA0gB,EAAA,CAAA,CAAAjsC,IAAA,UAAA1I,MAkDA,SAASi9B,GAA2E,IAAnEE,EAASxvB,UAAAzJ,OAAA,QAAA3D,IAAAoN,UAAA,GAAAA,UAAA,GAAG,KAAMyvB,EAASzvB,UAAAzJ,OAAA,QAAA3D,IAAAoN,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAI0vB,EAAS1vB,UAAAzJ,OAAA,QAAA3D,IAAAoN,UAAA,GAAAA,UAAA,GAAG,CAAA,EAAI5I,EAAQ4I,UAAAzJ,OAAA,QAAA3D,IAAAoN,UAAA,GAAAA,UAAA,GAAG,KAE5EjN,KAAKk0C,UAAY,IAAI5X,GACrBt8B,KAAKk0C,UAAUvW,QAASpB,EAAQE,EAAWC,EAAWC,EAAWt4B,EACnE,GAEA,CAAA2D,IAAA,SAAA1I,MAOA,SAAO29B,EAAWkX,EAAQnsC,EAAK3D,GAC7BrE,KAAKk0C,UAAUE,OAAOnX,EAAWkX,EAAQnsC,EAAK3D,EAChD,GAEA,CAAA2D,IAAA,YAAA1I,MAOA,SAAU29B,EAAWj1B,EAAK1I,EAAO+E,GAC/BrE,KAAKk0C,UAAUG,UAAUpX,EAAWj1B,EAAK1I,EAAO+E,EAClD,GAEA,CAAA2D,IAAA,YAAA1I,MAMA,SAAU29B,EAAWj1B,EAAK3D,GACxBrE,KAAKk0C,UAAUI,UAAUrX,EAAWj1B,EAAK3D,EAC3C,GAEA,CAAA2D,IAAA,UAAA1I,MAMA,SAAQ29B,EAAWj1B,EAAK3D,GACtBrE,KAAKk0C,UAAUK,QAAQtX,EAAWj1B,EAAK3D,EACzC,GAEA,CAAA2D,IAAA,aAAA1I,MAMA,SAAW29B,EAAWoB,EAAOh6B,GAC3BrE,KAAKk0C,UAAUM,WAAWvX,EAAWoB,EAAOh6B,EAC9C,GAEA,CAAA2D,IAAA,gBAAA1I,MAKA,SAAci9B,EAAQl4B,GACT,IAAIi4B,GAAUC,GAEtBkY,cAAclY,EAAQl4B,EAC3B,GAEA,CAAA2D,IAAA,WAAA1I,MAIA,SAAS+E,GACPrE,KAAKk0C,UAAUQ,SAASrwC,EAC1B,GACA,CAAA2D,IAAA,cAAA1I,MAIA,SAAYi9B,EAAQz3B,EAAST,GAChB,IAAIi4B,GAAUC,GACtBoY,YAAYpY,EAAQz3B,EAAST,EAClC,IAAC,CAAA,CAAA2D,IAAA,SAAA1I,MA9HD,SAAcN,EAAMqF,GAClBi4B,GAAU5D,OAAO15B,GACjBqF,GACF,GAEA,CAAA2D,IAAA,QAAA1I,MAQA,SAAaN,EAAMM,EAAO+E,GACxBi4B,GAAUziB,MAAM7a,EAAMM,GACtB+E,GACF,GAEA,CAAA2D,IAAA,OAAA1I,MAOA,SAAYN,EAAMqF,GAChBA,EAASi4B,GAAU4L,KAAKlpC,GAC1B,KAACi1C,CAAA,CA5C0B,GCGhBW,YAActV,GAAAjI,GAAAud,EAAAtV,GAAA,IAAA/H,EAAAC,GAAAod,GAKzB,SAAAA,IAAc,IAAAle,EAkBiB,OAlBjBpD,QAAAshB,IACZle,EAAAa,EAAAz4B,UAAM,oBACD+1C,iBAAmBne,EAAKme,iBAAiBnoC,KAAIyrB,GAAAzB,IAClDA,EAAKoe,eAAiBpe,EAAKoe,eAAepoC,KAAIyrB,GAAAzB,IAC9CA,EAAKqe,gBAAkBre,EAAKqe,gBAAgBroC,KAAIyrB,GAAAzB,IAEhDA,EAAKse,SAAWte,EAAKse,SAAStoC,KAAIyrB,GAAAzB,IAClCA,EAAKue,UAAYve,EAAKue,UAAUvoC,KAAIyrB,GAAAzB,IACpCA,EAAKwe,UAAYxe,EAAKwe,UAAUxoC,KAAIyrB,GAAAzB,IACpCA,EAAKye,aAAeze,EAAKye,aAAazoC,KAAIyrB,GAAAzB,IAC1CA,EAAK0e,YAAc1e,EAAK0e,YAAY1oC,KAAIyrB,GAAAzB,IACxCA,EAAK2e,YAAc3e,EAAK2e,YAAY3oC,KAAIyrB,GAAAzB,IACxCA,EAAK2e,YAAc3e,EAAK2e,YAAY3oC,KAAIyrB,GAAAzB,IACxCA,EAAK4e,WAAa5e,EAAK4e,WAAW5oC,KAAIyrB,GAAAzB,IACtCA,EAAK8d,WAAa9d,EAAKye,aAAazoC,KAAIyrB,GAAAzB,IACxCA,EAAK6e,gBAAkB7e,EAAK6e,gBAAgB7oC,KAAIyrB,GAAAzB,IAChDA,EAAK8e,cAAgB9e,EAAK8e,cAAc9oC,KAAIyrB,GAAAzB,IAE5CA,EAAK+e,iBAAmB,KAAK/e,CAC/B,CAkKC,OAhKDnD,GAAAqhB,EAAA,CAAA,CAAA5sC,IAAA,OAAA1I,MAIA,WACEU,KAAKq2B,OAAOyC,GAAG,iBAAkB94B,KAAK60C,kBACtC70C,KAAKq2B,OAAOyC,GAAG,eAAgB94B,KAAK80C,gBACpC90C,KAAKq2B,OAAOyC,GAAG,gBAAiB94B,KAAK+0C,iBAErC/0C,KAAKq2B,OAAOyC,GAAG,UAAW94B,KAAKi1C,WAC/Bj1C,KAAKq2B,OAAOyC,GAAG,UAAW94B,KAAKk1C,WAC/Bl1C,KAAKq2B,OAAOyC,GAAG,aAAc94B,KAAKm1C,cAClCn1C,KAAKq2B,OAAOyC,GAAG,SAAU94B,KAAKg1C,UAC9Bh1C,KAAKq2B,OAAOyC,GAAG,YAAa94B,KAAKo1C,aACjCp1C,KAAKq2B,OAAOyC,GAAG,YAAa94B,KAAKq1C,aACjCr1C,KAAKq2B,OAAOyC,GAAG,WAAY94B,KAAKs1C,YAChCt1C,KAAKq2B,OAAOyC,GAAG,gBAAiB94B,KAAKu1C,iBACrCv1C,KAAKq2B,OAAOyC,GAAG,cAAe94B,KAAKw1C,cACrC,GAEA,CAAAxtC,IAAA,mBAAA1I,MAOA,SAAA42B,GAAiC,IAAA8H,EAAAh+B,KAAdoe,EAAI8X,EAAJ9X,KAAMvb,EAAIqzB,EAAJrzB,KACvBoxC,GAAiBvb,OAAOta,GAAM,WAC5B4f,EAAK3H,OAAOrtB,KAAKnG,EACnB,GACF,GAEA,CAAAmF,IAAA,iBAAA1I,MAOA,SAAA25B,GAA+B,IAAAiF,EAAAl+B,KAAdoe,EAAI6a,EAAJ7a,KAAMvb,EAAIo2B,EAAJp2B,KACrBoxC,GAAiB/L,KAAK9pB,GAAM,SAAA9e,GAAK,OAAI4+B,EAAK7H,OAAOrtB,KAAKnG,EAAMvD,KAC9D,GAEA,CAAA0I,IAAA,kBAAA1I,MAQA,SAAA26B,GAAgD,IAAAmE,EAAAp+B,KAA/B6C,EAAIo3B,EAAJp3B,KAAI6yC,EAAAzb,EAAE7b,KAAQpf,EAAI02C,EAAJ12C,KAAMM,EAAKo2C,EAALp2C,MAEnC20C,GAAiBp6B,MAAM7a,EAAMM,GAAQ,WAAA,OAAM8+B,EAAK/H,OAAOrtB,KAAKnG,KAC9D,GAMA,CAAAmF,IAAA,YAAA1I,MAcA,SAAAq2C,GAAqF,IAAAzJ,EAAAlsC,KAA1E6C,EAAI8yC,EAAJ9yC,KAAI+yC,EAAAD,EAAEv3B,KAAOme,EAAMqZ,EAANrZ,OAAMsZ,EAAAD,EAAEnZ,UAAAA,OAAY,IAAHoZ,EAAG,KAAIA,EAAAC,EAAAF,EAAElZ,UAAAA,OAAS,IAAAoZ,EAAG,CAAE,EAAAA,EAAAC,EAAAH,EAAEjZ,UAAAA,OAAS,IAAAoZ,EAAG,CAAA,EAAEA,EAE9E/1C,KAAKy1C,iBAAmB,IAAIxB,GAC5Bj0C,KAAKy1C,iBAAiB9X,QAASpB,EAAQE,EAAWC,EAAWC,GAAW,SAAAr9B,GAAK,OAAI4sC,EAAK7V,OAAOrtB,KAAKnG,EAAMvD,KAC1G,GAEA,CAAA0I,IAAA,WAAA1I,MAOA,SAAA02C,GAAiD,IAAAC,EAAAj2C,KAAvC6C,EAAImzC,EAAJnzC,KAAIqzC,EAAAF,EAAE53B,KAAQ6e,EAASiZ,EAATjZ,UAAW39B,EAAK42C,EAAL52C,MAAO0I,EAAGkuC,EAAHluC,IACxChI,KAAKy1C,iBAAiBrB,OAAOnX,EAAW39B,EAAO0I,GAAK,SAAA1I,GAAK,OAAI22C,EAAK5f,OAAOrtB,KAAKnG,EAAMvD,KACtF,GAEA,CAAA0I,IAAA,cAAA1I,MAOA,SAAA62C,GAAoD,IAAAC,EAAAp2C,KAAvC6C,EAAIszC,EAAJtzC,KAAIwzC,EAAAF,EAAE/3B,KAAQ6e,EAASoZ,EAATpZ,UAAWj1B,EAAGquC,EAAHruC,IAAK1I,EAAK+2C,EAAL/2C,MACzCU,KAAKy1C,iBAAiBpB,UAAUpX,EAAWj1B,EAAK1I,GAAO,SAAAA,GAAK,OAAI82C,EAAK/f,OAAOrtB,KAAKnG,EAAMvD,KACzF,GAEA,CAAA0I,IAAA,cAAA1I,MAMA,SAAAg3C,GAA4C,IAAAC,EAAAv2C,KAA/B6C,EAAIyzC,EAAJzzC,KAAI2zC,EAAAF,EAAEl4B,KAAO6e,EAASuZ,EAATvZ,UAAWj1B,EAAGwuC,EAAHxuC,IACnChI,KAAKy1C,iBAAiBnB,UAAUrX,EAAWj1B,GAAK,SAAA1I,GAAK,OAAIi3C,EAAKlgB,OAAOrtB,KAAKnG,EAAMvD,KAClF,GAEA,CAAA0I,IAAA,YAAA1I,MAMA,SAAAm3C,GAA0C,IAAAC,EAAA12C,KAA/B6C,EAAI4zC,EAAJ5zC,KAAI8zC,EAAAF,EAAEr4B,KAAO6e,EAAS0Z,EAAT1Z,UAAWj1B,EAAG2uC,EAAH3uC,IACjChI,KAAKy1C,iBAAiBlB,QAAQtX,EAAWj1B,GAAK,SAAA1I,GAAK,OAAIo3C,EAAKrgB,OAAOrtB,KAAKnG,EAAMvD,KAChF,GAEA,CAAA0I,IAAA,eAAA1I,MAMA,SAAAs3C,GAAiD,IAAAC,EAAA72C,KAAlC6C,EAAI+zC,EAAJ/zC,KAAIi0C,EAAAF,EAAEx4B,KAAO6e,EAAS6Z,EAAT7Z,UAAWoB,EAAKyY,EAALzY,MACrCr+B,KAAKy1C,iBAAiBjB,WAAWvX,EAAWoB,GAAO,SAAA/+B,GAAK,OAAIu3C,EAAKxgB,OAAOrtB,KAAKnG,EAAMvD,KACrF,GAEA,CAAA0I,IAAA,kBAAA1I,MAKA,SAAAy3C,GAAwC,IAAAC,EAAAh3C,KAAvB6C,EAAIk0C,EAAJl0C,KAAa05B,EAAMwa,EAAb34B,KAAOme,QAEhB,IAAI0X,IACZQ,cAAclY,GAAQ,SAAAj9B,GAAK,OAAI03C,EAAK3gB,OAAOrtB,KAAKnG,EAAMvD,KAC5D,GAEA,CAAA0I,IAAA,aAAA1I,MAIA,SAAA23C,GAAmB,IAAAC,EAAAl3C,KAAP6C,EAAIo0C,EAAJp0C,KACV7C,KAAKy1C,iBAAiBf,UAAS,SAAAp1C,GAAK,OAAI43C,EAAK7gB,OAAOrtB,KAAKnG,EAAMvD,KACjE,GACA,CAAA0I,IAAA,gBAAA1I,MAIA,SAAA63C,GAAgD,IAAAC,EAAAp3C,KAAjC6C,EAAIs0C,EAAJt0C,KAAIw0C,EAAAF,EAAE/4B,KAAOme,EAAM8a,EAAN9a,OAAQz3B,EAAOuyC,EAAPvyC,SACtB,IAAImvC,IAGZU,YAAYpY,EAAQz3B,GAAS,SAAAxF,GAAK,OAAI83C,EAAK/gB,OAAOrtB,KAAKnG,EAAMvD,KACnE,KAACs1C,CAAA,EA1LiC9V,ICAvBwY,YAAiBC,GAAAlgB,GAAAigB,EAAAC,GAAA,IAAAhgB,EAAAC,GAAA8f,GAO5B,SAAAA,EAAYE,GAAmD,IAAA9gB,EAAF+gB,GAAExqC,UAAAzJ,OAAA,QAAA3D,IAAAoN,UAAA,GAAAA,UAAA,GAAJ,CAAE,GAA/ByqC,mBAAAA,OAAqB,IAAHD,EAAG,GAAGA,EAAAnkB,QAAAgkB,GACpD5gB,EAAAa,EAAAz4B,UAAM04C,EAAgB,wBAAyB,CAAE1S,aAAc4S,EAAoB7S,YAAayS,EAAkBK,iBAElH,IAAK,IAAIl0C,EAAI,EAAGA,EAAIizB,EAAKmS,cAAeplC,IACtCizB,EAAKiS,QAAQllC,GAAG0uC,mBAAmBzb,EAAKkhB,oBAAoBlrC,KAAIyrB,GAAAzB,KACjE,OAAAA,CAEH,CAoBC,OAlBDnD,GAAA+jB,EAAA,CAAA,CAAAtvC,IAAA,sBAAA1I,MAIA,SAAoBlB,GAClB4B,KAAK+oC,aAAe3qC,EAAEgW,OAAO9U,MAC7BU,KAAK8/B,aAAawX,EAAkBK,eAAgB33C,KAAK+oC,aAC3D,IAGA,CAAA,CAAA/gC,IAAA,iBAAApF,IAMA,WACE,MAAO,aACT,KAAC00C,CAAA,EAlCoChP,ICA1BuP,YAAgBN,GAAAlgB,GAAAwgB,EAAAN,GAAA,IAAAhgB,EAAAC,GAAAqgB,GAQ3B,SAAAA,EAAYC,GAAiD,IAAAphB,EAAFqhB,GAAE9qC,UAAAzJ,OAAA,QAAA3D,IAAAoN,UAAA,GAAAA,UAAA,GAAJ,CAAE,GAA9B+qC,kBAAAA,OAAoB,IAAHD,EAAG,GAAGA,EAAAzkB,QAAAukB,GAClDnhB,EAAAa,EAAAz4B,UAAMg5C,EAAe,uBAAwB,CAAEhT,aAAckT,EAAmBnT,YAAagT,EAAiBI,gBAE9G,IAAK,IAAIx0C,EAAI,EAAGA,EAAIizB,EAAKmS,cAAeplC,IACtCizB,EAAKiS,QAAQllC,GAAG0uC,mBAAmBzb,EAAKwhB,mBAAmBxrC,KAAIyrB,GAAAzB,KAChE,OAAAA,CACH,CAoBC,OAlBDnD,GAAAskB,EAAA,CAAA,CAAA7vC,IAAA,qBAAA1I,MAIA,SAAmBlB,GACjB4B,KAAK+oC,aAAe3qC,EAAEgW,OAAO9U,MAC7BU,KAAK8/B,aAAa+X,EAAiBI,cAAej4C,KAAK+oC,aACzD,IAEA,CAAA,CAAA/gC,IAAA,gBAAApF,IAOA,WACE,MAAO,YACT,KAACi1C,CAAA,EAlCmCvP,ICDzB6P,YAAwBZ,GAAAlgB,GAAA8gB,EAAAZ,GAAA,IAAAhgB,EAAAC,GAAA2gB,GAOnC,SAAAA,EAAYC,GAAuD,IAAA1hB,EAAF2hB,GAAEprC,UAAAzJ,OAAA,QAAA3D,IAAAoN,UAAA,GAAAA,UAAA,GAAJ,CAAE,GAA/BqrC,mBAAAA,OAAqB,IAAHD,EAAG,GAAGA,EAAA/kB,QAAA6kB,IACxDzhB,EAAAa,EAAAz4B,UAAMs5C,EAAoB,6BAA8B,CAACtT,aAAcwT,EAAoBzT,YAAasT,EAAyBI,yBAE5HvZ,kBAAoBtI,EAAKsI,kBAAkBtyB,KAAIyrB,GAAAzB,IAEpD,IAAK,IAAIjzB,EAAI,EAAGA,EAAIizB,EAAKmS,cAAeplC,IACtCizB,EAAKiS,QAAQllC,GAAG0uC,mBAAmBzb,EAAK8hB,2BAA2B9rC,KAAIyrB,GAAAzB,KACxE,OAAAA,CACH,CAmBC,OAjBDnD,GAAA4kB,EAAA,CAAA,CAAAnwC,IAAA,6BAAA1I,MAIA,SAA2BlB,GACzB4B,KAAK+oC,aAAe3qC,EAAEgW,OAAO9U,MAC7BU,KAAK8/B,aAAaqY,EAAyBI,sBAAuBv4C,KAAK+oC,aACzE,IAEA,CAAA,CAAA/gC,IAAA,wBAAApF,IAMA,WACE,MAAO,oBACT,KAACu1C,CAAA,EAlC2C7P,ICAjCmQ,YAAiBnZ,GAAAjI,GAAAohB,EAAAnZ,GAAA,IAAA/H,EAAAC,GAAAihB,GAO5B,SAAAA,EAAYC,GAAiF,IAAAhiB,EAAFiiB,GAAE1rC,UAAAzJ,OAAA,QAAA3D,IAAAoN,UAAA,GAAAA,UAAA,GAAJ,CAAE,GAA/D2rC,gBAAAA,OAAkB,IAAHD,EAAG,wCAAuCA,EAwBnF,OAxBmFrlB,QAAAmlB,IACnF/hB,EAAAa,EAAAz4B,UAAM,wBAEDkgC,kBAAoBtI,EAAKsI,kBAAkBtyB,KAAIyrB,GAAAzB,IAEpDA,EAAKmiB,QAAUniB,EAAKmiB,QAAQnsC,KAAIyrB,GAAAzB,IAChCA,EAAKoiB,iBAAmBpiB,EAAKoiB,iBAAiBpsC,KAAIyrB,GAAAzB,IAElDA,EAAK2R,UAAYuQ,EAEjBliB,EAAKgiB,cACHA,aAAyB1Y,YACrB,CAAC0Y,GACDltC,SAASy5B,iBAAiByT,GAEhChiB,EAAKqiB,YAAc,GACnBriB,EAAK2Y,QAAU,GACf3Y,EAAKsiB,gBAELtiB,EAAKuiB,gBAAiB,EACtBviB,EAAKwiB,SAAU,EAEfxiB,EAAKyiB,oBAAsBziB,EAAKgiB,cAAcl1C,OAE1CkzB,EAAKyiB,qBAAuB,GAC9BziB,EAAKK,KAAK,oEACVoO,GAAAzO,IACDA,CACH,CA0IC,OAxIDnD,GAAAklB,EAAA,CAAA,CAAAzwC,IAAA,mBAAA1I,MAKA,SAAiBlB,GAEf,IAAK,IAAIqF,EAAI,EAAGuzB,EAAIh3B,KAAKqvC,QAAQ7rC,OAAQC,EAAIuzB,EAAGvzB,IAC9C,IAAK,IAAIwhB,EAAI,EAAGA,EAAIjlB,KAAKqvC,QAAQ5rC,GAAGD,OAAQyhB,IAC1CjlB,KAAKqvC,QAAQ5rC,GAAGwhB,GAAGlc,oBAAoB,QAAS/I,KAAK84C,kBAGzD94C,KAAKg5C,gBAAkB56C,EAAEgW,OACzBpU,KAAKg5C,gBAAgBI,YAAc,mBACnC5tC,SAAS5C,iBAAiB,QAAS5I,KAAK64C,QAC1C,GAEA,CAAA7wC,IAAA,UAAA1I,MAMA,SAAQ0I,GAGN,IAAK,IAAMqxC,KAFXrxC,EAAIsxC,iBAEqBt5C,KAAK+4C,YAC5B,GAAI/4C,KAAK+4C,YAAYM,GAAYE,aAAevxC,EAAIA,IAAI5I,cAEtD,YADAY,KAAK+2B,KAAIzZ,GAAAA,OAAItV,EAAIA,IAAuB,sBAK5ChI,KAAKg5C,gBAAgBI,YAA0B,MAAZpxC,EAAIA,IAAc,QAAUA,EAAIA,IACnE,IAAK,IAAIvE,EAAI,EAAGA,EAAIzD,KAAKqvC,QAAQ7rC,OAAQC,IACvC,IAAK,IAAIwhB,EAAI,EAAGA,EAAIjlB,KAAKqvC,QAAQ5rC,GAAGD,OAAQyhB,IACtCjlB,KAAKqvC,QAAQ5rC,GAAGwhB,GAAG3lB,QAAUU,KAAKg5C,gBAAgB15C,QACpDU,KAAKqvC,QAAQ5rC,GAAGwhB,GAAGm0B,YAAcp5C,KAAKg5C,gBAAgBI,aAK5Dp5C,KAAK+4C,YAAY/4C,KAAKg5C,gBAAgB15C,OAAOi6C,WAAavxC,EAAIA,IAE9DwD,SAASzC,oBAAoB,QAAS/I,KAAK64C,SAC3C,IAAK,IAAIp1C,EAAI,EAAGuzB,EAAIh3B,KAAKqvC,QAAQ7rC,OAAQC,EAAIuzB,EAAGvzB,IAC9C,IAAK,IAAIwhB,EAAI,EAAGA,EAAIjlB,KAAKqvC,QAAQ5rC,GAAGD,OAAQyhB,IAC1CjlB,KAAKqvC,QAAQ5rC,GAAGwhB,GAAGrc,iBAAiB,QAAS5I,KAAK84C,kBAItD94C,KAAK8/B,aAAa2Y,EAAkBe,cAAex5C,KAAK+4C,YAC1D,GAEA,CAAA/wC,IAAA,OAAA1I,MAGA,WACEU,KAAKq2B,OAAOyC,GACV,WACA,SAAS3E,GAAU,IAAA6J,EAAAh+B,KACjB,GAAKm0B,EAAS/V,MAIT+V,EAAS/V,KAAKq7B,WAAnB,CAIA,IAAMr7B,EAAOke,GAAU4L,KAAKuQ,EAAkBe,eAE9Cx5C,KAAKq2B,OAAOlvB,MAAM,eAAe,SAAAlG,GAC/B,IAAK,IAAIgkB,EAAI,EAAGA,EAAI+Y,EAAKmb,oBAAqBl0B,IAAK,CACjD+Y,EAAKqR,QAAQpqB,GAAK,GAElB,IAAK,IAAIxhB,EAAI,EAAGuzB,EAAI/1B,EAAOmd,KAAK5a,OAAQC,EAAIuzB,EAAGvzB,IAAK,CAClD,IAAI81C,EAAat4C,EAAOmd,KAAK3a,GAAGi2C,WAAWt6C,cACvCgf,GACEA,EAAKnd,EAAOmd,KAAK3a,GAAG41C,cACtBE,EAAan7B,EAAKnd,EAAOmd,KAAK3a,GAAG41C,YAAYE,YAIvC,IAANt0B,IACF+Y,EAAK+a,YAAY93C,EAAOmd,KAAK3a,GAAG41C,YAAc,CAC5CK,WAAYz4C,EAAOmd,KAAK3a,GAAGi2C,WAAWt6C,cACtCm6C,WAAYA,IAIhBvb,EAAKqR,QAAQpqB,GAAGxhB,GAAK+H,SAASU,cAAc,UAC5C8xB,EAAKqR,QAAQpqB,GAAGxhB,GAAG2I,UAAUic,IAAI2V,EAAKqK,WACtCrK,EAAKqR,QAAQpqB,GAAGxhB,GAAGqM,wBAAEwN,OAAwBrc,EAAOmd,KAAK3a,GAAG41C,YAC5Drb,EAAKqR,QAAQpqB,GAAGxhB,GAAGnE,MAAQ2B,EAAOmd,KAAK3a,GAAG41C,WAC1Crb,EAAKqR,QAAQpqB,GAAGxhB,GAAG21C,YAAcn4C,EAAOmd,KAAK3a,GAAGi2C,WAChD1b,EAAKqR,QAAQpqB,GAAGxhB,GAAGmF,iBAAiB,QAASo1B,EAAK8a,kBAElD9a,EAAK2b,MAAQnuC,SAASU,cAAc,SACpC8xB,EAAK2b,MAAMC,6BAAOt8B,OAAwBrc,EAAOmd,KAAK3a,GAAG41C,YACzDrb,EAAK2b,MAAMP,YAAcn4C,EAAOmd,KAAK3a,GAAG41C,WAExCrb,EAAK0a,cAAczzB,GAAGxK,YAAYujB,EAAK2b,OACvC3b,EAAK0a,cAAczzB,GAAGxK,YAAYujB,EAAKqR,QAAQpqB,GAAGxhB,GACpD,CACF,CAEAu6B,EAAKkb,SAAU,EACXlb,EAAKib,gBACPjb,EAAKgB,mBAET,GA3CA,CA4CF,EAAEtyB,KAAK1M,MAEX,GAEA,CAAAgI,IAAA,oBAAA1I,MAKA,WACMU,KAAKk5C,QACPl5C,KAAK8/B,aAAa2Y,EAAkBe,cAAex5C,KAAK+4C,aAExD/4C,KAAKi5C,gBAAiB,CAE1B,IAEA,CAAA,CAAAjxC,IAAA,gBAAApF,IAMA,WACE,MAAO,YACT,KAAC61C,CAAA,EA7KoC3Z,ICA1B+a,YAAYtC,GAAAlgB,GAAAwiB,EAAAtC,GAAA,IAAAhgB,EAAAC,GAAAqiB,GAMvB,SAAAA,EAAYC,GAA0C,IAAApjB,EAAFqR,GAAE96B,UAAAzJ,OAAA,QAAA3D,IAAAoN,UAAA,GAAAA,UAAA,GAAJ,CAAE,GAAvB63B,aAAAA,OAAe,IAAHiD,EAAG,EAACA,EAAAzU,QAAAumB,GAC3CnjB,EAAAa,EAAAz4B,UAAMg7C,EAAe,eAAgB,CAAEhV,aAAcA,EAAcD,YAAagV,EAAaE,kBAE7F,IAAK,IAAIt2C,EAAI,EAAGA,EAAIizB,EAAKmS,cAAeplC,IACtCizB,EAAKiS,QAAQllC,GAAG0uC,mBAAmBzb,EAAKsjB,mBAAmBttC,KAAIyrB,GAAAzB,KAChE,OAAAA,CACH,CAmBC,OAjBDnD,GAAAsmB,EAAA,CAAA,CAAA7xC,IAAA,qBAAA1I,MAIA,SAAmBlB,GACjB4B,KAAK+oC,aAAe3qC,EAAEgW,OAAO9U,MAC7BU,KAAK8/B,aAAa+Z,EAAaE,gBAAiB/5C,KAAK+oC,aACvD,IAEA,CAAA,CAAA/gC,IAAA,kBAAApF,IAMA,WACE,MAAO,iBACT,KAACi3C,CAAA,EA/B+BvR,ICL5B2R,GAAsB,CAAC,MAAO,SAAU,OAAQ,SAOzCC,YAASC,GAAA9iB,GAAA6iB,EAAAC,GAAA,IAAA5iB,EAAAC,GAAA0iB,GAOpB,SAAAA,EAAYE,GAAmE,IAAA1jB,EAAFqR,GAAE96B,UAAAzJ,OAAA,QAAA3D,IAAAoN,UAAA,GAAAA,UAAA,GAAJ,CAAE,GAA5C63B,aAAAA,OAAemV,IAAHlS,EAAGkS,GAAoB,GAAElS,EAAAzU,QAAA4mB,IACpExjB,EAAAa,EAAAz4B,UAAMs7C,EAAmB,oBAAqB,CAACxU,gBAAiBqU,GAAqBpU,aAAcf,EAAcH,YAAa,eAAgBE,YAAaqV,EAAUG,eAAgBvU,WAAYmU,GAAoBz2C,UAEhNw7B,kBAAoBtI,EAAKsI,kBAAkBtyB,KAAIyrB,GAAAzB,IACpDA,EAAKuiB,gBAAiB,EACtBviB,EAAKwiB,SAAU,EACfxiB,EAAK4jB,UAAY,GAEb5jB,EAAKyP,mBAAqB,GAC5BzP,EAAKK,KAAK,mDAGZ,IAAK,IAAItzB,EAAI,EAAGA,EAAIizB,EAAKyP,kBAAmB1iC,IAC1CizB,EAAKuP,YAAYxiC,GAAG0nC,kBAAkBzU,EAAK6jB,YAAY7tC,KAAIyrB,GAAAzB,KAC5D,OAAAA,CAEH,CAqGC,OAnGDnD,GAAA2mB,EAAA,CAAA,CAAAlyC,IAAA,cAAA1I,MAIA,SAAYlB,GAEV,GAAK4B,KAAKs6C,UAAUjiC,SAASja,EAAEgW,OAAO9U,OAOtCU,KAAK+oC,aAAe3qC,EAAEgW,OAAO9U,MAE7BU,KAAK8/B,aACHoa,EAAUG,eACVr6C,KAAK+oC,mBAVL,IAAK,IAAItlC,EAAI,EAAGA,EAAIzD,KAAKmmC,kBAAmB1iC,IAC1CzD,KAAKimC,YAAYxiC,GAAGyhC,WAAWllC,KAAK+oC,cAAc1D,SAAU,CAWlE,GAEA,CAAAr9B,IAAA,OAAA1I,MAGA,WACEU,KAAKq2B,OAAOyC,GACV,WACA,SAAS3E,GAAU,IAAA6J,EAAAh+B,KACZm0B,EAAS/V,MAAS+V,EAAS/V,KAAKo8B,cAIjCx6C,KAAKmmC,mBAAqB,GAI9BnmC,KAAKq2B,OAAOlvB,MAAM,gBAAgB,SAAAlG,GAChC,IAAK,IAAIwC,EAAI,EAAGuzB,EAAI/1B,EAAOmd,KAAK5a,OAAQC,EAAIuzB,EAAGvzB,IAE1Cw2C,GAAoB5hC,SAASpX,EAAOmd,KAAK3a,GAAGrE,eAM/C4+B,EAAKsc,UAAU91C,KAAKvD,EAAOmd,KAAK3a,GAAGrE,eAJjC4+B,EAAKjH,KAAI,GAAAzZ,OAAIrc,EAAOmd,KAAK3a,GAAiC,iCAO9D,IAAK,IAAIA,EAAI,EAAGA,EAAIu6B,EAAKmI,kBAAmB1iC,IAE1C,IAAK,IAAMuE,KAAOg2B,EAAKiI,YAAYxiC,GAAGyhC,WACpClH,EAAKiI,YAAYxiC,GAAGyhC,WAAWl9B,GAAKuS,MAAMC,QAAUwjB,EAAKsc,UAAUjiC,SAAS2lB,EAAKiI,YAAYxiC,GAAGyhC,WAAWl9B,GAAK1I,OAAS,GAAK,OAIlI0+B,EAAKkb,SAAU,EACXlb,EAAKib,gBACPjb,EAAKgB,mBAET,IAEF,EAAEtyB,KAAK1M,MAEX,GAEA,CAAAgI,IAAA,QAAA1I,MAGA,WACE,IAAM8e,EAAOke,GAAU4L,KAAKgS,EAAUG,gBAElCJ,GAAoB5hC,SAAS+F,KAC/Bpe,KAAK+oC,aAAe3qB,GAEtBpe,KAAKq2B,OAAOyC,GAAG,SAAU94B,KAAKg/B,mBAC9Bh/B,KAAKq2B,OAAOyC,GAAG,WAAY94B,KAAKg/B,kBAClC,GAEA,CAAAh3B,IAAA,oBAAA1I,MAKA,WACMU,KAAKk5C,QACPl5C,KAAK8/B,aAAaoa,EAAUG,eAAgBr6C,KAAK+oC,cAEjD/oC,KAAKi5C,gBAAiB,CAE1B,IAEA,CAAA,CAAAjxC,IAAA,iBAAApF,IAMA,WACE,MAAO,aACT,KAACs3C,CAAA,EA5H4BxU,ICPzB+U,GAAoB,CACxB,OACA,aACA,eACA,aACA,iBAWWC,YAAiBP,GAAA9iB,GAAAqjB,EAAAP,GAAA,IAAA5iB,EAAAC,GAAAkjB,GAO5B,SAAAA,EAAYC,GAAiE,IAAAjkB,EAAFqR,GAAE96B,UAAAzJ,OAAA,QAAA3D,IAAAoN,UAAA,GAAAA,UAAA,GAAJ,CAAE,GAA1C63B,aAAAA,OAAe2V,IAAH1S,EAAG0S,GAAkB,GAAE1S,EAQlE,GARkEzU,QAAAonB,IAClEhkB,EAAAa,EAAAz4B,UAAM67C,EAAmB,sBAAuB,CAAC/U,gBAAiB6U,GAAmB5U,aAAcf,EAAcH,YAAa,wBAAyBE,YAAa6V,EAAkBE,eAAgB9U,WAAY2U,GAAkBj3C,UAE/Nw7B,kBAAoBtI,EAAKsI,kBAAkBtyB,KAAIyrB,GAAAzB,IACpDA,EAAKuiB,gBAAiB,EACtBviB,EAAKwiB,SAAU,EACfxiB,EAAKmkB,OAAS,GAEVnkB,EAAKyP,mBAAqB,EAE5B,OADAzP,EAAKK,KAAK,mDACVoO,GAAAzO,GAGF,IAAK,IAAIjzB,EAAI,EAAGA,EAAIizB,EAAKyP,kBAAmB1iC,IAC1CizB,EAAKuP,YAAYxiC,GAAG0nC,kBAAkBzU,EAAK0U,cAAc1+B,KAAIyrB,GAAAzB,KAC9D,OAAAA,CACH,CAwGC,OAtGDnD,GAAAmnB,EAAA,CAAA,CAAA1yC,IAAA,gBAAA1I,MAIA,SAAclB,GAEZ,GAAK4B,KAAK66C,OAAOxiC,SAASja,EAAEgW,OAAO9U,OAMnCU,KAAK+oC,aAAe3qC,EAAEgW,OAAO9U,MAE7BU,KAAK8/B,aACH4a,EAAkBE,eAClB56C,KAAK+oC,mBATL,IAAK,IAAItlC,EAAI,EAAGA,EAAIzD,KAAKmmC,kBAAmB1iC,IAC1CzD,KAAKimC,YAAYxiC,GAAGyhC,WAAWllC,KAAK+oC,cAAc1D,SAAU,CAUlE,GAEA,CAAAr9B,IAAA,OAAA1I,MAGA,WACEU,KAAKq2B,OAAOyC,GACV,WACA,SAAS3E,GAAU,IAAA6J,EAAAh+B,KACZm0B,EAAS/V,MAAS+V,EAAS/V,KAAK08B,cAGjC96C,KAAK+6C,sBAAwB,GAKjC/6C,KAAKq2B,OAAOlvB,MAAM,gBAAgB,SAAAlG,GAChC,IAAK,IAAIwC,EAAI,EAAGuzB,EAAI/1B,EAAOmd,KAAK5a,OAAQC,EAAIuzB,EAAGvzB,IAE1Cg3C,GAAkBpiC,SAASpX,EAAOmd,KAAK3a,GAAGrE,eAK7C4+B,EAAK6c,OAAOr2C,KAAKvD,EAAOmd,KAAK3a,GAAGrE,eAH9B4+B,EAAKjH,KAAI,GAAAzZ,OAAIrc,EAAOmd,KAAK3a,GAAqC,qCAMlEu6B,EAAK8G,aAAe9G,EAAK6c,OAAO,GAEhC,IAAK,IAAIp3C,EAAI,EAAGA,EAAIu6B,EAAKmI,kBAAmB1iC,IAE1C,IAAK,IAAMuE,KAAOg2B,EAAKiI,YAAYxiC,GAAGyhC,WACpClH,EAAKiI,YAAYxiC,GAAGyhC,WAAWl9B,GAAKuS,MAAMC,QAAUwjB,EAAK6c,OAAOxiC,SAAS2lB,EAAKiI,YAAYxiC,GAAGyhC,WAAWl9B,GAAK1I,MAAMF,eAAiB,GAAK,OAI7I4+B,EAAKkb,SAAU,EAEXlb,EAAKib,gBACPjb,EAAKgB,mBAET,IAEF,EAAEtyB,KAAK1M,MAEX,GAEA,CAAAgI,IAAA,QAAA1I,MAGA,WACE,IAAM8e,EAAOke,GAAU4L,KAAKwS,EAAkBE,gBAE1CH,GAAkBpiC,SAAS+F,KAC7Bpe,KAAK+oC,aAAe3qB,GAGtBpe,KAAKq2B,OAAOyC,GAAG,SAAU94B,KAAKg/B,mBAC9Bh/B,KAAKq2B,OAAOyC,GAAG,WAAY94B,KAAKg/B,kBAClC,GAEA,CAAAh3B,IAAA,oBAAA1I,MAKA,WACMU,KAAKk5C,QACPl5C,KAAK8/B,aAAa4a,EAAkBE,eAAgB56C,KAAK+oC,cAEzD/oC,KAAKi5C,gBAAiB,CAE1B,IAEA,CAAA,CAAAjxC,IAAA,iBAAApF,IAOA,WACE,MAAO,aACT,KAAC83C,CAAA,EA/HoChV,ICV1BsV,YAAkBzD,GAAAlgB,GAAA2jB,EAAAzD,GAAA,IAAAhgB,EAAAC,GAAAwjB,GAO7B,SAAAA,EAAYC,GAAyD,IAAAvkB,EAAFwkB,GAAEjuC,UAAAzJ,OAAA,QAAA3D,IAAAoN,UAAA,GAAAA,UAAA,GAAJ,CAAE,GAAhCkuC,oBAAAA,OAAsB,IAAHD,EAAG,GAAGA,EAAA5nB,QAAA0nB,GAC1DtkB,EAAAa,EAAAz4B,UAAMm8C,EAAqB,wBAAyB,CAAEnW,aAAcqW,EAAqBtW,YAAamW,EAAmBI,kBAEzH,IAAK,IAAI33C,EAAI,EAAGA,EAAIizB,EAAKmS,cAAeplC,IACtCizB,EAAKiS,QAAQllC,GAAG0uC,mBAAmBzb,EAAK2kB,qBAAqB3uC,KAAIyrB,GAAAzB,KAClE,OAAAA,CACH,CAoBC,OAlBDnD,GAAAynB,EAAA,CAAA,CAAAhzC,IAAA,uBAAA1I,MAKA,SAAqBlB,GACnB4B,KAAK+oC,aAAe3qC,EAAEgW,OAAO9U,MAC7BU,KAAK8/B,aAAakb,EAAmBI,gBAAiBp7C,KAAK+oC,aAC7D,IAEA,CAAA,CAAA/gC,IAAA,kBAAApF,IAMA,WACE,MAAO,cACT,KAACo4C,CAAA,EAjCqC1S,ICF3BgT,YAAwB/D,GAAAlgB,GAAAikB,EAAA/D,GAAA,IAAAhgB,EAAAC,GAAA8jB,GAOnC,SAAAA,EAAYC,GAAqE,IAAA7kB,EAAF8kB,GAAEvuC,UAAAzJ,OAAA,QAAA3D,IAAAoN,UAAA,GAAAA,UAAA,GAAJ,CAAE,GAAtCwuC,0BAAAA,OAA4B,IAAHD,EAAG,GAAGA,EAAAloB,QAAAgoB,GACtE5kB,EAAAa,EAAAz4B,UAAMy8C,EAA2B,8BAA+B,CAAEzW,aAAc2W,EAA2B5W,YAAayW,EAAyBI,wBAEjJ,IAAK,IAAIj4C,EAAI,EAAGA,EAAIizB,EAAKmS,cAAeplC,IACtCizB,EAAKiS,QAAQllC,GAAG0uC,mBAAmBzb,EAAKilB,2BAA2BjvC,KAAIyrB,GAAAzB,KACxE,OAAAA,CACH,CAoBC,OAlBDnD,GAAA+nB,EAAA,CAAA,CAAAtzC,IAAA,6BAAA1I,MAKA,SAA2BlB,GACzB4B,KAAK+oC,aAAe3qC,EAAEgW,OAAO9U,MAC7BU,KAAK8/B,aAAawb,EAAyBI,sBAAuB17C,KAAK+oC,aACzE,IAEA,CAAA,CAAA/gC,IAAA,wBAAApF,IAMA,WACE,MAAO,oBACT,KAAC04C,CAAA,EAjC2ChT,ICAjCsT,YAAYrE,GAAAlgB,GAAAukB,EAAArE,GAAA,IAAAhgB,EAAAC,GAAAokB,GAOvB,SAAAA,EAAYC,GAA4C,IAAAnlB,EAAFolB,GAAE7uC,UAAAzJ,OAAA,QAAA3D,IAAAoN,UAAA,GAAAA,UAAA,GAAJ,CAAE,GAA1B8uC,cAAAA,OAAgB,IAAHD,EAAG,GAAGA,EAAAxoB,QAAAsoB,GAC7CllB,EAAAa,EAAAz4B,UAAM+8C,EAAe,sBAAuB,CAAE/W,aAAaiX,EAAelX,YAAa+W,EAAaI,YAEpG,IAAK,IAAIv4C,EAAI,EAAGA,EAAIizB,EAAKmS,cAAeplC,IACtCizB,EAAKiS,QAAQllC,GAAG0uC,mBAAmBzb,EAAKulB,eAAevvC,KAAIyrB,GAAAzB,KAC5D,OAAAA,CACH,CAmBC,OAjBDnD,GAAAqoB,EAAA,CAAA,CAAA5zC,IAAA,iBAAA1I,MAIA,SAAelB,GACb4B,KAAK+oC,aAAe3qC,EAAEgW,OAAO9U,MAC7BU,KAAK8/B,aAAa8b,EAAaI,UAAWh8C,KAAK+oC,aACjD,IAEA,CAAA,CAAA/gC,IAAA,YAAApF,IAMA,WACE,MAAO,QACT,KAACg5C,CAAA,EAhC+BtT,ICCrB4T,YAAiB3E,GAAAlgB,GAAA6kB,EAAA3E,GAAA,IAAAhgB,EAAAC,GAAA0kB,GAO5B,SAAAA,EAAYC,GAAuD,IAAAzlB,EAAF0lB,GAAEnvC,UAAAzJ,OAAA,QAAA3D,IAAAoN,UAAA,GAAAA,UAAA,GAAJ,CAAE,GAA/BovC,mBAAAA,OAAqB,IAAHD,EAAG,GAAGA,EAAA9oB,QAAA4oB,GACxDxlB,EAAAa,EAAAz4B,UAAMq9C,EAAoB,sBAAuB,CAAErX,aAAcuX,EAAoBxX,YAAaqX,EAAkBI,iBAEpH,IAAK,IAAI74C,EAAI,EAAGA,EAAIizB,EAAKmS,cAAeplC,IACtCizB,EAAKiS,QAAQllC,GAAG0uC,mBAAmBzb,EAAK6lB,oBAAoB7vC,KAAIyrB,GAAAzB,KACjE,OAAAA,CACH,CAoBC,OAlBDnD,GAAA2oB,EAAA,CAAA,CAAAl0C,IAAA,sBAAA1I,MAKA,SAAoBlB,GAClB4B,KAAK+oC,aAAe3qC,EAAEgW,OAAO9U,MAC7BU,KAAK8/B,aAAaoc,EAAkBI,eAAgBt8C,KAAK+oC,aAC3D,IAEA,CAAA,CAAA/gC,IAAA,iBAAApF,IAMA,WACE,MAAO,aACT,KAACs5C,CAAA,EAjCoC5T,ICA1BkU,YAA0BjF,GAAAlgB,GAAAmlB,EAAAjF,GAAA,IAAAhgB,EAAAC,GAAAglB,GAOrC,SAAAA,EAAYC,GAAyE,IAAA/lB,EAAFgmB,GAAEzvC,UAAAzJ,OAAA,QAAA3D,IAAAoN,UAAA,GAAAA,UAAA,GAAJ,CAAE,GAAxC0vC,4BAAAA,OAA8B,IAAHD,EAAG,GAAGA,EAAAppB,QAAAkpB,GAC1E9lB,EAAAa,EAAAz4B,UAAM29C,EAA6B,+BAAgC,CAAE3X,aAAc6X,EAA6B9X,YAAa2X,EAA2BI,0BAExJ,IAAK,IAAIn5C,EAAI,EAAGA,EAAIizB,EAAKmS,cAAeplC,IACtCizB,EAAKiS,QAAQllC,GAAG0uC,mBAAmBzb,EAAKmmB,6BAA6BnwC,KAAIyrB,GAAAzB,KAC1E,OAAAA,CACH,CAmBC,OAjBDnD,GAAAipB,EAAA,CAAA,CAAAx0C,IAAA,+BAAA1I,MAIA,SAA6BlB,GAC3B4B,KAAK+oC,aAAe3qC,EAAEgW,OAAO9U,MAC7BU,KAAK8/B,aAAa0c,EAA2BI,wBAAyB58C,KAAK+oC,aAC7E,IAEA,CAAA,CAAA/gC,IAAA,0BAAApF,IAMA,WACE,MAAO,sBACT,KAAC45C,CAAA,EAhC6ClU,ICDnCwU,YAAgBvF,GAAAlgB,GAAAylB,EAAAvF,GAAA,IAAAhgB,EAAAC,GAAAslB,GAO3B,SAAAA,EAAYC,GAAqD,IAAArmB,EAAFsmB,GAAE/vC,UAAAzJ,OAAA,QAAA3D,IAAAoN,UAAA,GAAAA,UAAA,GAAJ,CAAE,GAA9BgwC,kBAAAA,OAAoB,IAAHD,EAAG,GAAGA,EAAA1pB,QAAAwpB,GACtDpmB,EAAAa,EAAAz4B,UAAMi+C,EAAmB,qBAAsB,CAAEjY,aAAcmY,EAAmBpY,YAAaiY,EAAiBI,gBAEhH,IAAK,IAAIz5C,EAAI,EAAGA,EAAIizB,EAAKmS,cAAeplC,IACtCizB,EAAKiS,QAAQllC,GAAG0uC,mBAAmBzb,EAAKymB,mBAAmBzwC,KAAIyrB,GAAAzB,KAChE,OAAAA,CACH,CAmBC,OAjBDnD,GAAAupB,EAAA,CAAA,CAAA90C,IAAA,qBAAA1I,MAIA,SAAmBlB,GACjB4B,KAAK+oC,aAAe3qC,EAAEgW,OAAO9U,MAC7BU,KAAK8/B,aAAagd,EAAiBI,cAAel9C,KAAK+oC,aACzD,IAEA,CAAA,CAAA/gC,IAAA,gBAAApF,IAMA,WACE,MAAO,YACT,KAACk6C,CAAA,EAhCmCxU,ICCzB8U,YAAiB7F,GAAAlgB,GAAA+lB,EAAA7F,GAAA,IAAAhgB,EAAAC,GAAA4lB,GAO5B,SAAAA,EAAYC,GAAuD,IAAA3mB,EAAF4mB,GAAErwC,UAAAzJ,OAAA,QAAA3D,IAAAoN,UAAA,GAAAA,UAAA,GAAJ,CAAE,GAA/BswC,mBAAAA,OAAqB,IAAHD,EAAG,GAAGA,EAAAhqB,QAAA8pB,GACxD1mB,EAAAa,EAAAz4B,UAAMu+C,EAAoB,sBAAuB,CAAEvY,aAAcyY,EAAoB1Y,YAAauY,EAAkBI,iBAEpH,IAAK,IAAI/5C,EAAI,EAAGA,EAAIizB,EAAKmS,cAAeplC,IACtCizB,EAAKiS,QAAQllC,GAAG0uC,mBAAmBzb,EAAK+mB,oBAAoB/wC,KAAIyrB,GAAAzB,KACjE,OAAAA,CACH,CAmBC,OAjBDnD,GAAA6pB,EAAA,CAAA,CAAAp1C,IAAA,sBAAA1I,MAIA,SAAoBlB,GAClB4B,KAAK+oC,aAAe3qC,EAAEgW,OAAO9U,MAC7BU,KAAK8/B,aAAasd,EAAkBI,eAAgBx9C,KAAK+oC,aAC3D,IAEA,CAAA,CAAA/gC,IAAA,iBAAApF,IAMA,WACE,MAAO,aACT,KAACw6C,CAAA,EAhCoC9U,ICA1BoV,YAAgBnG,GAAAlgB,GAAAqmB,EAAAnG,GAAA,IAAAhgB,EAAAC,GAAAkmB,GAO3B,SAAAA,EAAYC,GAAqD,IAAAjnB,EAAFknB,GAAE3wC,UAAAzJ,OAAA,QAAA3D,IAAAoN,UAAA,GAAAA,UAAA,GAAJ,CAAE,GAA9B4wC,kBAAAA,OAAoB,IAAHD,EAAG,GAAGA,EAAAtqB,QAAAoqB,GACtDhnB,EAAAa,EAAAz4B,UAAM6+C,EAAmB,qBAAsB,CAAE7Y,aAAc+Y,EAAmBhZ,YAAa6Y,EAAiBI,gBAEhH,IAAK,IAAIr6C,EAAI,EAAGA,EAAIizB,EAAKmS,cAAeplC,IACtCizB,EAAKiS,QAAQllC,GAAG0uC,mBAAmBzb,EAAKqnB,mBAAmBrxC,KAAIyrB,GAAAzB,KAChE,OAAAA,CACH,CAoBC,OAlBDnD,GAAAmqB,EAAA,CAAA,CAAA11C,IAAA,qBAAA1I,MAKA,SAAmBlB,GACjB4B,KAAK+oC,aAAe3qC,EAAEgW,OAAO9U,MAC7BU,KAAK8/B,aAAa4d,EAAiBI,cAAe99C,KAAK+oC,aACzD,IAEA,CAAA,CAAA/gC,IAAA,gBAAApF,IAMA,WACE,MAAO,YACT,KAAC86C,CAAA,EAjCmCpV,ICFzB0V,YAAgBnU,GAAAxS,GAAA2mB,EAAAnU,GAAA,IAAAtS,EAAAC,GAAAwmB,GAO3B,SAAAA,EAAYC,GAAgB,IAAAvnB,EAoCvB,OApCuBpD,QAAA0qB,IAC1BtnB,EAAAa,EAAAz4B,KAAMkB,KAAA,CACJhB,KAAMg/C,EAAiBE,iBAGpBC,eAAiB,GACtBznB,EAAK0nB,OAAS,KAEd1nB,EAAKsI,kBAAoBtI,EAAKsI,kBAAkBtyB,KAAIyrB,GAAAzB,IAEhDt2B,MAAMC,QAAQ49C,KAEhBA,EAAiBA,EAAet6C,KAAK,OAGvCgoB,QAAQiU,IAAIqe,GAEZvnB,EAAK2nB,aAAe7yC,SAASy5B,iBAAiBgZ,GAG9CvnB,EAAK2nB,aAAan+C,SAAQ,SAACu/B,GACzB/I,EAAKynB,eAAe35C,KAAK,IAAI2jC,GAAO,CAClC1I,OAAQA,EACR2I,QAAS1R,EAAK4nB,iBAAiB5xC,KAAIyrB,GAAAzB,IACnCtR,QAAS44B,EAAiBE,gBAE9B,IAGA1yC,SAAS5C,iBAAiB,oBAAqB,WAC7C8tB,EAAKsI,oBAELtI,EAAKynB,eAAej+C,SAAQ,SAACu/B,GAC3BA,EAAOA,OAAOrzB,UAAUqc,OAAO,eACjC,GAEF,IAAGiO,CACL,CAqEC,OAnEDnD,GAAAyqB,EAAA,CAAA,CAAAh2C,IAAA,OAAA1I,MAGA,SAAA42B,GAAiB,IAAV9b,EAAM8b,EAAN9b,OACLpa,KAAKo+C,OAAShkC,EAEdpa,KAAKq2B,OAAOyC,GACV,WACA,SAASF,GACP,IAAK,IAAIn1B,EAAI,EAAGA,EAAIzD,KAAKu+C,kBAAmB96C,IAC1CzD,KAAKm+C,eAAe16C,GAAG+oC,cAAc5T,EAAOxa,KAGhD,EAAE1R,KAAK1M,MAEX,GACA,CAAAgI,IAAA,QAAA1I,MAGA,WACEU,KAAKq2B,OAAOyC,GAAG,SAAU94B,KAAKg/B,mBAC9Bh/B,KAAKq2B,OAAOyC,GAAG,WAAY94B,KAAKg/B,kBAClC,GAEA,CAAAh3B,IAAA,oBAAA1I,MAKA,WACEU,KAAK8/B,aAAake,EAAiBE,cAA6C,MAA9B1yC,SAAS+yC,kBAA4B,OAAS,QAClG,GAEA,CAAAv2C,IAAA,mBAAA1I,MAGA,WAAmB,IAAA0+B,EAAAh+B,KACZwL,SAAS+yC,mBAOZ/yC,SAASgzC,iBACTx+C,KAAKg/B,qBAPLh/B,KAAKo+C,OAAOK,oBAAoBt7C,MAAK,WACnC66B,EAAKgB,mBACP,IAAGrO,OAAM,SAAC7pB,GACR6kB,QAAQiU,IAAI94B,EACd,GAKJ,GAEA,CAAAkB,IAAA,eAAApF,IAIA,WACE,OAGK,IAHG4I,SAAS+yC,mBACf/yC,SAASkzC,oBACTlzC,SAASmzC,cAEb,IAEA,CAAA,CAAA32C,IAAA,gBAAApF,IAKA,WACE,MAAO,YACT,KAACo7C,CAAA,EAjHmC3e"} \ No newline at end of file diff --git a/dist/index.js b/dist/index.js index 31b25c2..1f0834f 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1,2 +1,2 @@ -var t="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof self&&self||void 0!==t&&t,e="URLSearchParams"in t,n="Symbol"in t&&"iterator"in Symbol,r="FileReader"in t&&"Blob"in t&&function(){try{return new Blob,!0}catch(t){return!1}}(),o="FormData"in t,i="ArrayBuffer"in t;if(i)var s=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],a=ArrayBuffer.isView||function(t){return t&&s.indexOf(Object.prototype.toString.call(t))>-1};function u(t){if("string"!=typeof t&&(t=String(t)),/[^a-z0-9\-#$%&'*+.^_`|~!]/i.test(t)||""===t)throw new TypeError('Invalid character in header field name: "'+t+'"');return t.toLowerCase()}function l(t){return"string"!=typeof t&&(t=String(t)),t}function c(t){var e={next:function(){var e=t.shift();return{done:void 0===e,value:e}}};return n&&(e[Symbol.iterator]=function(){return e}),e}function d(t){this.map={},t instanceof d?t.forEach((function(t,e){this.append(e,t)}),this):Array.isArray(t)?t.forEach((function(t){this.append(t[0],t[1])}),this):t&&Object.getOwnPropertyNames(t).forEach((function(e){this.append(e,t[e])}),this)}function h(t){if(t.bodyUsed)return Promise.reject(new TypeError("Already read"));t.bodyUsed=!0}function f(t){return new Promise((function(e,n){t.onload=function(){e(t.result)},t.onerror=function(){n(t.error)}}))}function p(t){var e=new FileReader,n=f(e);return e.readAsArrayBuffer(t),n}function v(t){if(t.slice)return t.slice(0);var e=new Uint8Array(t.byteLength);return e.set(new Uint8Array(t)),e.buffer}function y(){return this.bodyUsed=!1,this._initBody=function(t){var n;this.bodyUsed=this.bodyUsed,this._bodyInit=t,t?"string"==typeof t?this._bodyText=t:r&&Blob.prototype.isPrototypeOf(t)?this._bodyBlob=t:o&&FormData.prototype.isPrototypeOf(t)?this._bodyFormData=t:e&&URLSearchParams.prototype.isPrototypeOf(t)?this._bodyText=t.toString():i&&r&&((n=t)&&DataView.prototype.isPrototypeOf(n))?(this._bodyArrayBuffer=v(t.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):i&&(ArrayBuffer.prototype.isPrototypeOf(t)||a(t))?this._bodyArrayBuffer=v(t):this._bodyText=t=Object.prototype.toString.call(t):this._bodyText="",this.headers.get("content-type")||("string"==typeof t?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):e&&URLSearchParams.prototype.isPrototypeOf(t)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},r&&(this.blob=function(){var t=h(this);if(t)return t;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){if(this._bodyArrayBuffer){var t=h(this);return t||(ArrayBuffer.isView(this._bodyArrayBuffer)?Promise.resolve(this._bodyArrayBuffer.buffer.slice(this._bodyArrayBuffer.byteOffset,this._bodyArrayBuffer.byteOffset+this._bodyArrayBuffer.byteLength)):Promise.resolve(this._bodyArrayBuffer))}return this.blob().then(p)}),this.text=function(){var t=h(this);if(t)return t;if(this._bodyBlob)return function(t){var e=new FileReader,n=f(e);return e.readAsText(t),n}(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(function(t){for(var e=new Uint8Array(t),n=new Array(e.length),r=0;r-1?e:t}(e.method||this.method||"GET"),this.mode=e.mode||this.mode||null,this.signal=e.signal||this.signal,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&n)throw new TypeError("Body not allowed for GET or HEAD requests");if(this._initBody(n),!("GET"!==this.method&&"HEAD"!==this.method||"no-store"!==e.cache&&"no-cache"!==e.cache)){var r=/([?&])_=[^&]*/;if(r.test(this.url))this.url=this.url.replace(r,"$1_="+(new Date).getTime());else{this.url+=(/\?/.test(this.url)?"&":"?")+"_="+(new Date).getTime()}}}function b(t){var e=new FormData;return t.trim().split("&").forEach((function(t){if(t){var n=t.split("="),r=n.shift().replace(/\+/g," "),o=n.join("=").replace(/\+/g," ");e.append(decodeURIComponent(r),decodeURIComponent(o))}})),e}function S(t,e){if(!(this instanceof S))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');e||(e={}),this.type="default",this.status=void 0===e.status?200:e.status,this.ok=this.status>=200&&this.status<300,this.statusText=void 0===e.statusText?"":""+e.statusText,this.headers=new d(e.headers),this.url=e.url||"",this._initBody(t)}m.prototype.clone=function(){return new m(this,{body:this._bodyInit})},y.call(m.prototype),y.call(S.prototype),S.prototype.clone=function(){return new S(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new d(this.headers),url:this.url})},S.error=function(){var t=new S(null,{status:0,statusText:""});return t.type="error",t};var w=[301,302,303,307,308];S.redirect=function(t,e){if(-1===w.indexOf(e))throw new RangeError("Invalid status code");return new S(null,{status:e,headers:{location:t}})};var k=t.DOMException;try{new k}catch(t){(k=function(t,e){this.message=t,this.name=e;var n=Error(t);this.stack=n.stack}).prototype=Object.create(Error.prototype),k.prototype.constructor=k}function E(e,n){return new Promise((function(o,s){var a=new m(e,n);if(a.signal&&a.signal.aborted)return s(new k("Aborted","AbortError"));var u=new XMLHttpRequest;function c(){u.abort()}u.onload=function(){var t,e,n={status:u.status,statusText:u.statusText,headers:(t=u.getAllResponseHeaders()||"",e=new d,t.replace(/\r?\n[\t ]+/g," ").split("\r").map((function(t){return 0===t.indexOf("\n")?t.substr(1,t.length):t})).forEach((function(t){var n=t.split(":"),r=n.shift().trim();if(r){var o=n.join(":").trim();e.append(r,o)}})),e)};n.url="responseURL"in u?u.responseURL:n.headers.get("X-Request-URL");var r="response"in u?u.response:u.responseText;setTimeout((function(){o(new S(r,n))}),0)},u.onerror=function(){setTimeout((function(){s(new TypeError("Network request failed"))}),0)},u.ontimeout=function(){setTimeout((function(){s(new TypeError("Network request failed"))}),0)},u.onabort=function(){setTimeout((function(){s(new k("Aborted","AbortError"))}),0)},u.open(a.method,function(e){try{return""===e&&t.location.href?t.location.href:e}catch(t){return e}}(a.url),!0),"include"===a.credentials?u.withCredentials=!0:"omit"===a.credentials&&(u.withCredentials=!1),"responseType"in u&&(r?u.responseType="blob":i&&a.headers.get("Content-Type")&&-1!==a.headers.get("Content-Type").indexOf("application/octet-stream")&&(u.responseType="arraybuffer")),!n||"object"!=typeof n.headers||n.headers instanceof d?a.headers.forEach((function(t,e){u.setRequestHeader(e,t)})):Object.getOwnPropertyNames(n.headers).forEach((function(t){u.setRequestHeader(t,l(n.headers[t]))})),a.signal&&(a.signal.addEventListener("abort",c),u.onreadystatechange=function(){4===u.readyState&&a.signal.removeEventListener("abort",c)}),u.send(void 0===a._bodyInit?null:a._bodyInit)}))}E.polyfill=!0,t.fetch||(t.fetch=E,t.Headers=d,t.Request=m,t.Response=S);var B="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},x=function(t){return t&&t.Math==Math&&t},P=x("object"==typeof globalThis&&globalThis)||x("object"==typeof window&&window)||x("object"==typeof self&&self)||x("object"==typeof B&&B)||function(){return this}()||Function("return this")(),L={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0},_="object"==typeof document&&document.all,O={all:_,IS_HTMLDDA:void 0===_&&void 0!==_},A=O.all,V=O.IS_HTMLDDA?function(t){return"function"==typeof t||t===A}:function(t){return"function"==typeof t},C=V,D=O.all,M=O.IS_HTMLDDA?function(t){return"object"==typeof t?null!==t:C(t)||t===D}:function(t){return"object"==typeof t?null!==t:C(t)},T=M,I=P.document,R=T(I)&&T(I.createElement),j=function(t){return R?I.createElement(t):{}},N=j("span").classList,K=N&&N.constructor&&N.constructor.prototype,F=K===Object.prototype?void 0:K,G=function(t){try{return!!t()}catch(t){return!0}},U=!G((function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")})),H=U,z=Function.prototype,q=z.call,W=H&&z.bind.bind(q,q),X=H?W:function(t){return function(){return q.apply(t,arguments)}},Y=X,J=Y({}.toString),$=Y("".slice),Q=function(t){return $(J(t),8,-1)},Z=Q,tt=X,et=function(t){if("Function"===Z(t))return tt(t)},nt=String,rt=function(t){try{return nt(t)}catch(t){return"Object"}},ot=V,it=rt,st=TypeError,at=function(t){if(ot(t))return t;throw st(it(t)+" is not a function")},ut=at,lt=U,ct=et(et.bind),dt=function(t,e){return ut(t),void 0===e?t:lt?ct(t,e):function(){return t.apply(e,arguments)}},ht=G,ft=Q,pt=Object,vt=X("".split),yt=ht((function(){return!pt("z").propertyIsEnumerable(0)}))?function(t){return"String"==ft(t)?vt(t,""):pt(t)}:pt,gt=function(t){return null==t},mt=gt,bt=TypeError,St=function(t){if(mt(t))throw bt("Can't call method on "+t);return t},wt=St,kt=Object,Et=function(t){return kt(wt(t))},Bt=Math.ceil,xt=Math.floor,Pt=Math.trunc||function(t){var e=+t;return(e>0?xt:Bt)(e)},Lt=Pt,_t=function(t){var e=+t;return e!=e||0===e?0:Lt(e)},Ot=_t,At=Math.min,Vt=function(t){return t>0?At(Ot(t),9007199254740991):0},Ct=function(t){return Vt(t.length)},Dt=Q,Mt=Array.isArray||function(t){return"Array"==Dt(t)},Tt={exports:{}},It=P,Rt=Object.defineProperty,jt=function(t,e){try{Rt(It,t,{value:e,configurable:!0,writable:!0})}catch(n){It[t]=e}return e},Nt=jt,Kt="__core-js_shared__",Ft=P[Kt]||Nt(Kt,{}),Gt=Ft;(Tt.exports=function(t,e){return Gt[t]||(Gt[t]=void 0!==e?e:{})})("versions",[]).push({version:"3.28.0",mode:"global",copyright:"© 2014-2023 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.28.0/LICENSE",source:"https://github.com/zloirock/core-js"});var Ut,Ht,zt=Tt.exports,qt=Et,Wt=X({}.hasOwnProperty),Xt=Object.hasOwn||function(t,e){return Wt(qt(t),e)},Yt=X,Jt=0,$t=Math.random(),Qt=Yt(1..toString),Zt=function(t){return"Symbol("+(void 0===t?"":t)+")_"+Qt(++Jt+$t,36)},te="undefined"!=typeof navigator&&String(navigator.userAgent)||"",ee=P,ne=te,re=ee.process,oe=ee.Deno,ie=re&&re.versions||oe&&oe.version,se=ie&&ie.v8;se&&(Ht=(Ut=se.split("."))[0]>0&&Ut[0]<4?1:+(Ut[0]+Ut[1])),!Ht&&ne&&(!(Ut=ne.match(/Edge\/(\d+)/))||Ut[1]>=74)&&(Ut=ne.match(/Chrome\/(\d+)/))&&(Ht=+Ut[1]);var ae=Ht,ue=ae,le=G,ce=!!Object.getOwnPropertySymbols&&!le((function(){var t=Symbol();return!String(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&ue&&ue<41})),de=ce&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,he=zt,fe=Xt,pe=Zt,ve=ce,ye=de,ge=P.Symbol,me=he("wks"),be=ye?ge.for||ge:ge&&ge.withoutSetter||pe,Se=function(t){return fe(me,t)||(me[t]=ve&&fe(ge,t)?ge[t]:be("Symbol."+t)),me[t]},we={};we[Se("toStringTag")]="z";var ke="[object z]"===String(we),Ee=ke,Be=V,xe=Q,Pe=Se("toStringTag"),Le=Object,_e="Arguments"==xe(function(){return arguments}()),Oe=Ee?xe:function(t){var e,n,r;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(t){}}(e=Le(t),Pe))?n:_e?xe(e):"Object"==(r=xe(e))&&Be(e.callee)?"Arguments":r},Ae=P,Ve=V,Ce=function(t,e){return arguments.length<2?(n=Ae[t],Ve(n)?n:void 0):Ae[t]&&Ae[t][e];var n},De=V,Me=Ft,Te=X(Function.toString);De(Me.inspectSource)||(Me.inspectSource=function(t){return Te(t)});var Ie=Me.inspectSource,Re=X,je=G,Ne=V,Ke=Oe,Fe=Ie,Ge=function(){},Ue=[],He=Ce("Reflect","construct"),ze=/^\s*(?:class|function)\b/,qe=Re(ze.exec),We=!ze.exec(Ge),Xe=function(t){if(!Ne(t))return!1;try{return He(Ge,Ue,t),!0}catch(t){return!1}},Ye=function(t){if(!Ne(t))return!1;switch(Ke(t)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return We||!!qe(ze,Fe(t))}catch(t){return!0}};Ye.sham=!0;var Je=!He||je((function(){var t;return Xe(Xe.call)||!Xe(Object)||!Xe((function(){t=!0}))||t}))?Ye:Xe,$e=Mt,Qe=Je,Ze=M,tn=Se("species"),en=Array,nn=function(t){var e;return $e(t)&&(e=t.constructor,(Qe(e)&&(e===en||$e(e.prototype))||Ze(e)&&null===(e=e[tn]))&&(e=void 0)),void 0===e?en:e},rn=function(t,e){return new(nn(t))(0===e?0:e)},on=dt,sn=yt,an=Et,un=Ct,ln=rn,cn=X([].push),dn=function(t){var e=1==t,n=2==t,r=3==t,o=4==t,i=6==t,s=7==t,a=5==t||i;return function(u,l,c,d){for(var h,f,p=an(u),v=sn(p),y=on(l,c),g=un(v),m=0,b=d||ln,S=e?b(u,g):n||s?b(u,0):void 0;g>m;m++)if((a||m in v)&&(f=y(h=v[m],m,p),t))if(e)S[m]=f;else if(f)switch(t){case 3:return!0;case 5:return h;case 6:return m;case 2:cn(S,h)}else switch(t){case 4:return!1;case 7:cn(S,h)}return i?-1:r||o?o:S}},hn={forEach:dn(0),map:dn(1),filter:dn(2),some:dn(3),every:dn(4),find:dn(5),findIndex:dn(6),filterReject:dn(7)},fn=G,pn=function(t,e){var n=[][t];return!!n&&fn((function(){n.call(null,e||function(){return 1},1)}))},vn=hn.forEach,yn=pn("forEach")?[].forEach:function(t){return vn(this,t,arguments.length>1?arguments[1]:void 0)},gn=!G((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),mn={},bn=j,Sn=!gn&&!G((function(){return 7!=Object.defineProperty(bn("div"),"a",{get:function(){return 7}}).a})),wn=gn&&G((function(){return 42!=Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype})),kn=M,En=String,Bn=TypeError,xn=function(t){if(kn(t))return t;throw Bn(En(t)+" is not an object")},Pn=U,Ln=Function.prototype.call,_n=Pn?Ln.bind(Ln):function(){return Ln.apply(Ln,arguments)},On=X({}.isPrototypeOf),An=Ce,Vn=V,Cn=On,Dn=Object,Mn=de?function(t){return"symbol"==typeof t}:function(t){var e=An("Symbol");return Vn(e)&&Cn(e.prototype,Dn(t))},Tn=at,In=gt,Rn=function(t,e){var n=t[e];return In(n)?void 0:Tn(n)},jn=_n,Nn=V,Kn=M,Fn=TypeError,Gn=_n,Un=M,Hn=Mn,zn=Rn,qn=function(t,e){var n,r;if("string"===e&&Nn(n=t.toString)&&!Kn(r=jn(n,t)))return r;if(Nn(n=t.valueOf)&&!Kn(r=jn(n,t)))return r;if("string"!==e&&Nn(n=t.toString)&&!Kn(r=jn(n,t)))return r;throw Fn("Can't convert object to primitive value")},Wn=TypeError,Xn=Se("toPrimitive"),Yn=function(t,e){if(!Un(t)||Hn(t))return t;var n,r=zn(t,Xn);if(r){if(void 0===e&&(e="default"),n=Gn(r,t,e),!Un(n)||Hn(n))return n;throw Wn("Can't convert object to primitive value")}return void 0===e&&(e="number"),qn(t,e)},Jn=Yn,$n=Mn,Qn=function(t){var e=Jn(t,"string");return $n(e)?e:e+""},Zn=gn,tr=Sn,er=wn,nr=xn,rr=Qn,or=TypeError,ir=Object.defineProperty,sr=Object.getOwnPropertyDescriptor,ar="enumerable",ur="configurable",lr="writable";mn.f=Zn?er?function(t,e,n){if(nr(t),e=rr(e),nr(n),"function"==typeof t&&"prototype"===e&&"value"in n&&lr in n&&!n[lr]){var r=sr(t,e);r&&r[lr]&&(t[e]=n.value,n={configurable:ur in n?n[ur]:r[ur],enumerable:ar in n?n[ar]:r[ar],writable:!1})}return ir(t,e,n)}:ir:function(t,e,n){if(nr(t),e=rr(e),nr(n),tr)try{return ir(t,e,n)}catch(t){}if("get"in n||"set"in n)throw or("Accessors not supported");return"value"in n&&(t[e]=n.value),t};var cr=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}},dr=mn,hr=cr,fr=gn?function(t,e,n){return dr.f(t,e,hr(1,n))}:function(t,e,n){return t[e]=n,t},pr=P,vr=L,yr=F,gr=yn,mr=fr,br=function(t){if(t&&t.forEach!==gr)try{mr(t,"forEach",gr)}catch(e){t.forEach=gr}};for(var Sr in vr)vr[Sr]&&br(pr[Sr]&&pr[Sr].prototype);br(yr);var wr=yt,kr=St,Er=function(t){return wr(kr(t))},Br={},xr=_t,Pr=Math.max,Lr=Math.min,_r=function(t,e){var n=xr(t);return n<0?Pr(n+e,0):Lr(n,e)},Or=Er,Ar=_r,Vr=Ct,Cr=function(t){return function(e,n,r){var o,i=Or(e),s=Vr(i),a=Ar(r,s);if(t&&n!=n){for(;s>a;)if((o=i[a++])!=o)return!0}else for(;s>a;a++)if((t||a in i)&&i[a]===n)return t||a||0;return!t&&-1}},Dr={includes:Cr(!0),indexOf:Cr(!1)},Mr={},Tr=Xt,Ir=Er,Rr=Dr.indexOf,jr=Mr,Nr=X([].push),Kr=function(t,e){var n,r=Ir(t),o=0,i=[];for(n in r)!Tr(jr,n)&&Tr(r,n)&&Nr(i,n);for(;e.length>o;)Tr(r,n=e[o++])&&(~Rr(i,n)||Nr(i,n));return i},Fr=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],Gr=Kr,Ur=Fr,Hr=Object.keys||function(t){return Gr(t,Ur)},zr=gn,qr=wn,Wr=mn,Xr=xn,Yr=Er,Jr=Hr;Br.f=zr&&!qr?Object.defineProperties:function(t,e){Xr(t);for(var n,r=Yr(e),o=Jr(e),i=o.length,s=0;i>s;)Wr.f(t,n=o[s++],r[n]);return t};var $r,Qr=Ce("document","documentElement"),Zr=Zt,to=zt("keys"),eo=function(t){return to[t]||(to[t]=Zr(t))},no=xn,ro=Br,oo=Fr,io=Mr,so=Qr,ao=j,uo="prototype",lo="script",co=eo("IE_PROTO"),ho=function(){},fo=function(t){return"<"+lo+">"+t+""},po=function(t){t.write(fo("")),t.close();var e=t.parentWindow.Object;return t=null,e},vo=function(){try{$r=new ActiveXObject("htmlfile")}catch(t){}var t,e,n;vo="undefined"!=typeof document?document.domain&&$r?po($r):(e=ao("iframe"),n="java"+lo+":",e.style.display="none",so.appendChild(e),e.src=String(n),(t=e.contentWindow.document).open(),t.write(fo("document.F=Object")),t.close(),t.F):po($r);for(var r=oo.length;r--;)delete vo[uo][oo[r]];return vo()};io[co]=!0;var yo=Object.create||function(t,e){var n;return null!==t?(ho[uo]=no(t),n=new ho,ho[uo]=null,n[co]=t):n=vo(),void 0===e?n:ro.f(n,e)},go=Se,mo=yo,bo=mn.f,So=go("unscopables"),wo=Array.prototype;null==wo[So]&&bo(wo,So,{configurable:!0,value:mo(null)});var ko,Eo,Bo,xo=function(t){wo[So][t]=!0},Po={},Lo=V,_o=P.WeakMap,Oo=Lo(_o)&&/native code/.test(String(_o)),Ao=P,Vo=M,Co=fr,Do=Xt,Mo=Ft,To=eo,Io=Mr,Ro="Object already initialized",jo=Ao.TypeError,No=Ao.WeakMap;if(Oo||Mo.state){var Ko=Mo.state||(Mo.state=new No);Ko.get=Ko.get,Ko.has=Ko.has,Ko.set=Ko.set,ko=function(t,e){if(Ko.has(t))throw jo(Ro);return e.facade=t,Ko.set(t,e),e},Eo=function(t){return Ko.get(t)||{}},Bo=function(t){return Ko.has(t)}}else{var Fo=To("state");Io[Fo]=!0,ko=function(t,e){if(Do(t,Fo))throw jo(Ro);return e.facade=t,Co(t,Fo,e),e},Eo=function(t){return Do(t,Fo)?t[Fo]:{}},Bo=function(t){return Do(t,Fo)}}var Go={set:ko,get:Eo,has:Bo,enforce:function(t){return Bo(t)?Eo(t):ko(t,{})},getterFor:function(t){return function(e){var n;if(!Vo(e)||(n=Eo(e)).type!==t)throw jo("Incompatible receiver, "+t+" required");return n}}},Uo={},Ho={},zo={}.propertyIsEnumerable,qo=Object.getOwnPropertyDescriptor,Wo=qo&&!zo.call({1:2},1);Ho.f=Wo?function(t){var e=qo(this,t);return!!e&&e.enumerable}:zo;var Xo=gn,Yo=_n,Jo=Ho,$o=cr,Qo=Er,Zo=Qn,ti=Xt,ei=Sn,ni=Object.getOwnPropertyDescriptor;Uo.f=Xo?ni:function(t,e){if(t=Qo(t),e=Zo(e),ei)try{return ni(t,e)}catch(t){}if(ti(t,e))return $o(!Yo(Jo.f,t,e),t[e])};var ri={exports:{}},oi=gn,ii=Xt,si=Function.prototype,ai=oi&&Object.getOwnPropertyDescriptor,ui=ii(si,"name"),li={EXISTS:ui,PROPER:ui&&"something"===function(){}.name,CONFIGURABLE:ui&&(!oi||oi&&ai(si,"name").configurable)},ci=X,di=G,hi=V,fi=Xt,pi=gn,vi=li.CONFIGURABLE,yi=Ie,gi=Go.enforce,mi=Go.get,bi=String,Si=Object.defineProperty,wi=ci("".slice),ki=ci("".replace),Ei=ci([].join),Bi=pi&&!di((function(){return 8!==Si((function(){}),"length",{value:8}).length})),xi=String(String).split("String"),Pi=ri.exports=function(t,e,n){"Symbol("===wi(bi(e),0,7)&&(e="["+ki(bi(e),/^Symbol\(([^)]*)\)/,"$1")+"]"),n&&n.getter&&(e="get "+e),n&&n.setter&&(e="set "+e),(!fi(t,"name")||vi&&t.name!==e)&&(pi?Si(t,"name",{value:e,configurable:!0}):t.name=e),Bi&&n&&fi(n,"arity")&&t.length!==n.arity&&Si(t,"length",{value:n.arity});try{n&&fi(n,"constructor")&&n.constructor?pi&&Si(t,"prototype",{writable:!1}):t.prototype&&(t.prototype=void 0)}catch(t){}var r=gi(t);return fi(r,"source")||(r.source=Ei(xi,"string"==typeof e?e:"")),t};Function.prototype.toString=Pi((function(){return hi(this)&&mi(this).source||yi(this)}),"toString");var Li=ri.exports,_i=V,Oi=mn,Ai=Li,Vi=jt,Ci=function(t,e,n,r){r||(r={});var o=r.enumerable,i=void 0!==r.name?r.name:e;if(_i(n)&&Ai(n,i,r),r.global)o?t[e]=n:Vi(e,n);else{try{r.unsafe?t[e]&&(o=!0):delete t[e]}catch(t){}o?t[e]=n:Oi.f(t,e,{value:n,enumerable:!1,configurable:!r.nonConfigurable,writable:!r.nonWritable})}return t},Di={},Mi=Kr,Ti=Fr.concat("length","prototype");Di.f=Object.getOwnPropertyNames||function(t){return Mi(t,Ti)};var Ii={};Ii.f=Object.getOwnPropertySymbols;var Ri,ji,Ni,Ki=Ce,Fi=Di,Gi=Ii,Ui=xn,Hi=X([].concat),zi=Ki("Reflect","ownKeys")||function(t){var e=Fi.f(Ui(t)),n=Gi.f;return n?Hi(e,n(t)):e},qi=Xt,Wi=zi,Xi=Uo,Yi=mn,Ji=G,$i=V,Qi=/#|\.prototype\./,Zi=function(t,e){var n=es[ts(t)];return n==rs||n!=ns&&($i(e)?Ji(e):!!e)},ts=Zi.normalize=function(t){return String(t).replace(Qi,".").toLowerCase()},es=Zi.data={},ns=Zi.NATIVE="N",rs=Zi.POLYFILL="P",os=Zi,is=P,ss=Uo.f,as=fr,us=Ci,ls=jt,cs=function(t,e,n){for(var r=Wi(e),o=Yi.f,i=Xi.f,s=0;s=e.length?(t.target=void 0,Ea(void 0,!0)):Ea("keys"==n?r:"values"==n?e[r]:[r,e[r]],!1)}),"values"),Oa=ba.Arguments=ba.Array;if(ma("keys"),ma("values"),ma("entries"),Ba&&"values"!==Oa.name)try{wa(Oa,"name",{value:"values"})}catch(t){}var Aa=P,Va=L,Ca=F,Da=_a,Ma=fr,Ta=Se,Ia=Ta("iterator"),Ra=Ta("toStringTag"),ja=Da.values,Na=function(t,e){if(t){if(t[Ia]!==ja)try{Ma(t,Ia,ja)}catch(e){t[Ia]=ja}if(t[Ra]||Ma(t,Ra,e),Va[e])for(var n in Da)if(t[n]!==Da[n])try{Ma(t,n,Da[n])}catch(e){t[n]=Da[n]}}};for(var Ka in Va)Na(Aa[Ka]&&Aa[Ka].prototype,Ka);Na(Ca,"DOMTokenList");var Fa=P;function Ga(){Ga=function(){return t};var t={},e=Object.prototype,n=e.hasOwnProperty,r=Object.defineProperty||function(t,e,n){t[e]=n.value},o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",s=o.asyncIterator||"@@asyncIterator",a=o.toStringTag||"@@toStringTag";function u(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{u({},"")}catch(t){u=function(t,e,n){return t[e]=n}}function l(t,e,n,o){var i=e&&e.prototype instanceof h?e:h,s=Object.create(i.prototype),a=new x(o||[]);return r(s,"_invoke",{value:w(t,n,a)}),s}function c(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}t.wrap=l;var d={};function h(){}function f(){}function p(){}var v={};u(v,i,(function(){return this}));var y=Object.getPrototypeOf,g=y&&y(y(P([])));g&&g!==e&&n.call(g,i)&&(v=g);var m=p.prototype=h.prototype=Object.create(v);function b(t){["next","throw","return"].forEach((function(e){u(t,e,(function(t){return this._invoke(e,t)}))}))}function S(t,e){function o(r,i,s,a){var u=c(t[r],t,i);if("throw"!==u.type){var l=u.arg,d=l.value;return d&&"object"==typeof d&&n.call(d,"__await")?e.resolve(d.__await).then((function(t){o("next",t,s,a)}),(function(t){o("throw",t,s,a)})):e.resolve(d).then((function(t){l.value=t,s(l)}),(function(t){return o("throw",t,s,a)}))}a(u.arg)}var i;r(this,"_invoke",{value:function(t,n){function r(){return new e((function(e,r){o(t,n,e,r)}))}return i=i?i.then(r,r):r()}})}function w(t,e,n){var r="suspendedStart";return function(o,i){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===o)throw i;return L()}for(n.method=o,n.arg=i;;){var s=n.delegate;if(s){var a=k(s,n);if(a){if(a===d)continue;return a}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var u=c(t,e,n);if("normal"===u.type){if(r=n.done?"completed":"suspendedYield",u.arg===d)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(r="completed",n.method="throw",n.arg=u.arg)}}}function k(t,e){var n=e.method,r=t.iterator[n];if(void 0===r)return e.delegate=null,"throw"===n&&t.iterator.return&&(e.method="return",e.arg=void 0,k(t,e),"throw"===e.method)||"return"!==n&&(e.method="throw",e.arg=new TypeError("The iterator does not provide a '"+n+"' method")),d;var o=c(r,t.iterator,e.arg);if("throw"===o.type)return e.method="throw",e.arg=o.arg,e.delegate=null,d;var i=o.arg;return i?i.done?(e[t.resultName]=i.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,d):i:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,d)}function E(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function B(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function x(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(E,this),this.reset(!0)}function P(t){if(t){var e=t[i];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,o=function e(){for(;++r=0;--o){var i=this.tryEntries[o],s=i.completion;if("root"===i.tryLoc)return r("end");if(i.tryLoc<=this.prev){var a=n.call(i,"catchLoc"),u=n.call(i,"finallyLoc");if(a&&u){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),B(n),d}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var o=r.arg;B(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,n){return this.delegate={iterator:P(t),resultName:e,nextLoc:n},"next"===this.method&&(this.arg=void 0),d}},t}function Ua(t){return Ua="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ua(t)}function Ha(t,e,n,r,o,i,s){try{var a=t[i](s),u=a.value}catch(t){return void n(t)}a.done?e(u):Promise.resolve(u).then(r,o)}function za(t){return function(){var e=this,n=arguments;return new Promise((function(r,o){var i=t.apply(e,n);function s(t){Ha(i,r,o,s,a,"next",t)}function a(t){Ha(i,r,o,s,a,"throw",t)}s(void 0)}))}}function qa(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function Wa(t,e){for(var n=0;nt.length)&&(e=t.length);for(var n=0,r=new Array(e);n=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,a=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return s=t.done,t},e:function(t){a=!0,i=t},f:function(){try{s||null==n.return||n.return()}finally{if(a)throw i}}}}var iu=hs,su=Dr.indexOf,au=pn,uu=et([].indexOf),lu=!!uu&&1/uu([1],1,-0)<0;iu({target:"Array",proto:!0,forced:lu||!au("indexOf")},{indexOf:function(t){var e=arguments.length>1?arguments[1]:void 0;return lu?uu(this,t,e)||0:su(this,t,e)}});var cu=TypeError,du=Qn,hu=mn,fu=cr,pu=function(t,e,n){var r=du(e);r in t?hu.f(t,r,fu(0,n)):t[r]=n},vu=G,yu=ae,gu=Se("species"),mu=function(t){return yu>=51||!vu((function(){var e=[];return(e.constructor={})[gu]=function(){return{foo:1}},1!==e[t](Boolean).foo}))},bu=hs,Su=G,wu=Mt,ku=M,Eu=Et,Bu=Ct,xu=function(t){if(t>9007199254740991)throw cu("Maximum allowed index exceeded");return t},Pu=pu,Lu=rn,_u=mu,Ou=ae,Au=Se("isConcatSpreadable"),Vu=Ou>=51||!Su((function(){var t=[];return t[Au]=!1,t.concat()[0]!==t})),Cu=function(t){if(!ku(t))return!1;var e=t[Au];return void 0!==e?!!e:wu(t)};bu({target:"Array",proto:!0,arity:1,forced:!Vu||!_u("concat")},{concat:function(t){var e,n,r,o,i,s=Eu(this),a=Lu(s,0),u=0;for(e=-1,r=arguments.length;eo;)for(var a,u=Fu(arguments[o++]),l=i?Hu(Ru(u),i(u)):Ru(u),c=l.length,d=0;c>d;)a=l[d++],Du&&!Tu(s,u,a)||(n[a]=u[a]);return n}:Gu,qu=zu;hs({target:"Object",stat:!0,arity:2,forced:Object.assign!==qu},{assign:qu});var Wu=Oe,Xu=ke?{}.toString:function(){return"[object "+Wu(this)+"]"};ke||Ci(Object.prototype,"toString",Xu,{unsafe:!0});var Yu,Ju,$u,Qu,Zu="undefined"!=typeof process&&"process"==Q(process),tl=Li,el=mn,nl=function(t,e,n){return n.get&&tl(n.get,e,{getter:!0}),n.set&&tl(n.set,e,{setter:!0}),el.f(t,e,n)},rl=Ce,ol=nl,il=gn,sl=Se("species"),al=function(t){var e=rl(t);il&&e&&!e[sl]&&ol(e,sl,{configurable:!0,get:function(){return this}})},ul=On,ll=TypeError,cl=function(t,e){if(ul(e,t))return t;throw ll("Incorrect invocation")},dl=Je,hl=rt,fl=TypeError,pl=xn,vl=function(t){if(dl(t))return t;throw fl(hl(t)+" is not a constructor")},yl=gt,gl=Se("species"),ml=U,bl=Function.prototype,Sl=bl.apply,wl=bl.call,kl="object"==typeof Reflect&&Reflect.apply||(ml?wl.bind(Sl):function(){return wl.apply(Sl,arguments)}),El=X([].slice),Bl=TypeError,xl=/(?:ipad|iphone|ipod).*applewebkit/i.test(te),Pl=P,Ll=kl,_l=dt,Ol=V,Al=Xt,Vl=G,Cl=Qr,Dl=El,Ml=j,Tl=function(t,e){if(ti;i++)if((a=g(t[i]))&&ph(Sh,a))return a;return new bh(!1)}r=vh(t,o)}for(u=h?t.next:r.next;!(l=lh(u,r)).done;){try{a=g(l.value)}catch(t){gh(r,"throw",t)}if("object"==typeof a&&a&&ph(Sh,a))return a}return new bh(!1)},kh=Se("iterator"),Eh=!1;try{var Bh=0,xh={next:function(){return{done:!!Bh++}},return:function(){Eh=!0}};xh[kh]=function(){return this},Array.from(xh,(function(){throw 2}))}catch(t){}var Ph=function(t,e){if(!e&&!Eh)return!1;var n=!1;try{var r={};r[kh]=function(){return{next:function(){return{done:n=!0}}}},t(r)}catch(t){}return n},Lh=Lc,_h=Uc.CONSTRUCTOR||!Ph((function(t){Lh.all(t).then(void 0,(function(){}))})),Oh=_n,Ah=at,Vh=Hc,Ch=Pc,Dh=wh;hs({target:"Promise",stat:!0,forced:_h},{all:function(t){var e=this,n=Vh.f(e),r=n.resolve,o=n.reject,i=Ch((function(){var n=Ah(e.resolve),i=[],s=0,a=1;Dh(t,(function(t){var u=s++,l=!1;a++,Oh(n,e,t).then((function(t){l||(l=!0,i[u]=t,--a||r(i))}),o)})),--a||r(i)}));return i.error&&o(i.value),n.promise}});var Mh=hs,Th=Uc.CONSTRUCTOR,Ih=Lc,Rh=Ce,jh=V,Nh=Ci,Kh=Ih&&Ih.prototype;if(Mh({target:"Promise",proto:!0,forced:Th,real:!0},{catch:function(t){return this.then(void 0,t)}}),jh(Ih)){var Fh=Rh("Promise").prototype.catch;Kh.catch!==Fh&&Nh(Kh,"catch",Fh,{unsafe:!0})}var Gh=_n,Uh=at,Hh=Hc,zh=Pc,qh=wh;hs({target:"Promise",stat:!0,forced:_h},{race:function(t){var e=this,n=Hh.f(e),r=n.reject,o=zh((function(){var o=Uh(e.resolve);qh(t,(function(t){Gh(o,e,t).then(n.resolve,r)}))}));return o.error&&r(o.value),n.promise}});var Wh=_n,Xh=Hc;hs({target:"Promise",stat:!0,forced:Uc.CONSTRUCTOR},{reject:function(t){var e=Xh.f(this);return Wh(e.reject,void 0,t),e.promise}});var Yh=xn,Jh=M,$h=Hc,Qh=hs,Zh=Uc.CONSTRUCTOR,tf=function(t,e){if(Yh(t),Jh(e)&&e.constructor===t)return e;var n=$h.f(t);return(0,n.resolve)(e),n.promise};Ce("Promise"),Qh({target:"Promise",stat:!0,forced:Zh},{resolve:function(t){return tf(this,t)}});var ef,nf,rf=Oe,of=String,sf=function(t){if("Symbol"===rf(t))throw TypeError("Cannot convert a Symbol value to a string");return of(t)},af=xn,uf=function(){var t=af(this),e="";return t.hasIndices&&(e+="d"),t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.dotAll&&(e+="s"),t.unicode&&(e+="u"),t.unicodeSets&&(e+="v"),t.sticky&&(e+="y"),e},lf=G,cf=P.RegExp,df=lf((function(){var t=cf("a","y");return t.lastIndex=2,null!=t.exec("abcd")})),hf=df||lf((function(){return!cf("a","y").sticky})),ff={BROKEN_CARET:df||lf((function(){var t=cf("^r","gy");return t.lastIndex=2,null!=t.exec("str")})),MISSED_STICKY:hf,UNSUPPORTED_Y:df},pf=G,vf=P.RegExp,yf=pf((function(){var t=vf(".","s");return!(t.dotAll&&t.exec("\n")&&"s"===t.flags)})),gf=G,mf=P.RegExp,bf=gf((function(){var t=mf("(?b)","g");return"b"!==t.exec("b").groups.a||"bc"!=="b".replace(t,"$c")})),Sf=_n,wf=X,kf=sf,Ef=uf,Bf=ff,xf=yo,Pf=Go.get,Lf=yf,_f=bf,Of=zt("native-string-replace",String.prototype.replace),Af=RegExp.prototype.exec,Vf=Af,Cf=wf("".charAt),Df=wf("".indexOf),Mf=wf("".replace),Tf=wf("".slice),If=(nf=/b*/g,Sf(Af,ef=/a/,"a"),Sf(Af,nf,"a"),0!==ef.lastIndex||0!==nf.lastIndex),Rf=Bf.BROKEN_CARET,jf=void 0!==/()??/.exec("")[1];(If||jf||Rf||Lf||_f)&&(Vf=function(t){var e,n,r,o,i,s,a,u=this,l=Pf(u),c=kf(t),d=l.raw;if(d)return d.lastIndex=u.lastIndex,e=Sf(Vf,d,c),u.lastIndex=d.lastIndex,e;var h=l.groups,f=Rf&&u.sticky,p=Sf(Ef,u),v=u.source,y=0,g=c;if(f&&(p=Mf(p,"y",""),-1===Df(p,"g")&&(p+="g"),g=Tf(c,u.lastIndex),u.lastIndex>0&&(!u.multiline||u.multiline&&"\n"!==Cf(c,u.lastIndex-1))&&(v="(?: "+v+")",g=" "+g,y++),n=new RegExp("^(?:"+v+")",p)),jf&&(n=new RegExp("^"+v+"$(?!\\s)",p)),If&&(r=u.lastIndex),o=Sf(Af,f?n:u,g),f?o?(o.input=Tf(o.input,y),o[0]=Tf(o[0],y),o.index=u.lastIndex,u.lastIndex+=o[0].length):u.lastIndex=0:If&&o&&(u.lastIndex=u.global?o.index+o[0].length:r),jf&&o&&o.length>1&&Sf(Of,o[0],n,(function(){for(i=1;i0||navigator.pointerEnabled&&navigator.maxTouchPoints>0)}},{key:"basic",value:function(){return t.canvas?t.webaudio||t.htmlAudio?null:"Browser does not support WebAudio or HTMLAudio":"Browser does not support canvas"}},{key:"test",value:function(e){var n=this.basic();if(n)return n;var r=e.features,o=e.ui,i=e.sizes;for(var s in r)if(!0===r[s]&&!t[s])return"Browser does not support "+s;if(!o.touch&&t.touch)return"Game does not support touch input";var a=Math.max(window.screen.width,window.screen.height);return!i.xsmall&&a<480?"Game doesn't support extra small screens":!i.small&&a<768?"Game doesn't support small screens":!i.medium&&a<992?"Game doesn't support medium screens":!i.large&&a<1200?"Game doesn't support large screens":!i.xlarge&&a>=1200?"Game doesn't support extra large screens":null}},{key:"info",get:function(){return"Browser Feature Detection\n\t\t\t\tCanvas support ".concat(t.canvas?"✓":"×","\n\t\t\t\tWebGL support ").concat(t.webgl?"✓":"×","\n\t\t\t\tWebAudio support ").concat(t.webAudio?"✓":"×")}}]),t}(),Kf=X,Ff=_t,Gf=sf,Uf=St,Hf=Kf("".charAt),zf=Kf("".charCodeAt),qf=Kf("".slice),Wf=function(t){return function(e,n){var r,o,i=Gf(Uf(e)),s=Ff(n),a=i.length;return s<0||s>=a?t?"":void 0:(r=zf(i,s))<55296||r>56319||s+1===a||(o=zf(i,s+1))<56320||o>57343?t?Hf(i,s):r:t?qf(i,s,s+2):o-56320+(r-55296<<10)+65536}},Xf={codeAt:Wf(!1),charAt:Wf(!0)}.charAt,Yf=sf,Jf=Go,$f=va,Qf=ya,Zf="String Iterator",tp=Jf.set,ep=Jf.getterFor(Zf);$f(String,"String",(function(t){tp(this,{type:Zf,string:Yf(t),index:0})}),(function(){var t,e=ep(this),n=e.string,r=e.index;return r>=n.length?Qf(void 0,!0):(t=Xf(n,r),e.index+=t.length,Qf(t,!1))}));var np=hn.filter;hs({target:"Array",proto:!0,forced:!mu("filter")},{filter:function(t){return np(this,t,arguments.length>1?arguments[1]:void 0)}});var rp=hs,op=hn.find,ip=xo,sp="find",ap=!0;function up(t,e){return t(e={exports:{}},e.exports),e.exports}sp in[]&&Array(1)[sp]((function(){ap=!1})),rp({target:"Array",proto:!0,forced:ap},{find:function(t){return op(this,t,arguments.length>1?arguments[1]:void 0)}}),ip(sp);var lp=up((function(t){function e(t){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function n(r){return"function"==typeof Symbol&&"symbol"===e(Symbol.iterator)?t.exports=n=function(t){return e(t)}:t.exports=n=function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":e(t)},n(r)}t.exports=n})),cp=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")};function dp(t,e){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:0;this._listeners[t]||(this._listeners[t]=[]),e._priority=parseInt(n)||0,-1===this._listeners[t].indexOf(e)&&(this._listeners[t].push(e),this._listeners[t].length>1&&this._listeners[t].sort(this.listenerSorter))}},{key:"listenerSorter",value:function(t,e){return t._priority-e._priority}},{key:"off",value:function(t,e){if(void 0!==this._listeners[t])if(void 0!==e){var n=this._listeners[t].indexOf(e);-11&&void 0!==arguments[1]?arguments[1]:{};if("string"==typeof t&&(t={type:t,data:"object"===lp(e)&&null!==e?e:{}}),void 0!==this._listeners[t.type])for(var n=this._listeners[t.type].length-1;n>=0;n--)this._listeners[t.type][n](t)}},{key:"destroy",value:function(){this._listeners={}}}]),t}(),pp=up((function(t){var e=function(t){var e,n=Object.prototype,r=n.hasOwnProperty,o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",s=o.asyncIterator||"@@asyncIterator",a=o.toStringTag||"@@toStringTag";function u(t,e,n,r){var o=e&&e.prototype instanceof v?e:v,i=Object.create(o.prototype),s=new L(r||[]);return i._invoke=function(t,e,n){var r=c;return function(o,i){if(r===h)throw new Error("Generator is already running");if(r===f){if("throw"===o)throw i;return O()}for(n.method=o,n.arg=i;;){var s=n.delegate;if(s){var a=B(s,n);if(a){if(a===p)continue;return a}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(r===c)throw r=f,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r=h;var u=l(t,e,n);if("normal"===u.type){if(r=n.done?f:d,u.arg===p)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(r=f,n.method="throw",n.arg=u.arg)}}}(t,n,s),i}function l(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}t.wrap=u;var c="suspendedStart",d="suspendedYield",h="executing",f="completed",p={};function v(){}function y(){}function g(){}var m={};m[i]=function(){return this};var b=Object.getPrototypeOf,S=b&&b(b(_([])));S&&S!==n&&r.call(S,i)&&(m=S);var w=g.prototype=v.prototype=Object.create(m);function k(t){["next","throw","return"].forEach((function(e){t[e]=function(t){return this._invoke(e,t)}}))}function E(t){function e(n,o,i,s){var a=l(t[n],t,o);if("throw"!==a.type){var u=a.arg,c=u.value;return c&&"object"==typeof c&&r.call(c,"__await")?Promise.resolve(c.__await).then((function(t){e("next",t,i,s)}),(function(t){e("throw",t,i,s)})):Promise.resolve(c).then((function(t){u.value=t,i(u)}),(function(t){return e("throw",t,i,s)}))}s(a.arg)}var n;this._invoke=function(t,r){function o(){return new Promise((function(n,o){e(t,r,n,o)}))}return n=n?n.then(o,o):o()}}function B(t,n){var r=t.iterator[n.method];if(r===e){if(n.delegate=null,"throw"===n.method){if(t.iterator.return&&(n.method="return",n.arg=e,B(t,n),"throw"===n.method))return p;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return p}var o=l(r,t.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,p;var i=o.arg;return i?i.done?(n[t.resultName]=i.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,p):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,p)}function x(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function P(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function L(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(x,this),this.reset(!0)}function _(t){if(t){var n=t[i];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,s=function n(){for(;++o=0;--i){var s=this.tryEntries[i],a=s.completion;if("root"===s.tryLoc)return o("end");if(s.tryLoc<=this.prev){var u=r.call(s,"catchLoc"),l=r.call(s,"finallyLoc");if(u&&l){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),P(n),p}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var o=r.arg;P(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:_(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),p}},t}(t.exports);try{regeneratorRuntime=e}catch(t){Function("r","regeneratorRuntime = r")(e)}})),vp=function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t},yp=function(t,e){return!e||"object"!==lp(e)&&"function"!=typeof e?vp(t):e},gp=up((function(t){function e(n){return t.exports=e=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},e(n)}t.exports=e})),mp=up((function(t){function e(n,r,o){return"undefined"!=typeof Reflect&&Reflect.get?t.exports=e=Reflect.get:t.exports=e=function(t,e,n){var r=function(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==(t=gp(t)););return t}(t,e);if(r){var o=Object.getOwnPropertyDescriptor(r,e);return o.get?o.get.call(n):o.value}},e(n,r,o||n)}t.exports=e})),bp=up((function(t){function e(n,r){return t.exports=e=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},e(n,r)}t.exports=e})),Sp=function(t){function e(){var t,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:100*Math.random()|0;return cp(this,e),(t=yp(this,gp(e).call(this))).id="BELLHOP:".concat(n),t.connected=!1,t.isChild=!0,t.connecting=!1,t.debug=!1,t.origin="*",t._sendLater=[],t.iframe=null,t.receive=t.receive.bind(vp(t)),t}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&bp(t,e)}(e,fp),hp(e,[{key:"receive",value:function(t){if(this.target===t.source)if(this.logDebugMessage(!0,t),"connected"===t.data)this.onConnectionReceived(t.data);else{var e=t.data;if("string"==typeof e)try{e=JSON.parse(e)}catch(t){console.warn("Bellhop error: ",t)}this.connected&&"object"===lp(e)&&e.type&&this.trigger(e)}}},{key:"onConnectionReceived",value:function(t){if(this.connecting=!1,this.connected=!0,!this.isChild){if(!this.target)return;this.target.postMessage(t,this.origin)}for(var e=0;e1&&void 0!==arguments[1]?arguments[1]:"*";this.connecting||(this.disconnect(),this.connecting=!0,t instanceof HTMLIFrameElement&&(this.iframe=t),this.isChild=void 0===t,this.supported=!0,this.isChild&&(this.supported=window!=t),this.origin=e,window.addEventListener("message",this.receive),this.isChild&&(window===this.target?this.trigger("failed"):this.target.postMessage("connected",this.origin)))}},{key:"disconnect",value:function(){this.connected=!1,this.connecting=!1,this.origin=null,this.iframe=null,this.isChild=!0,this._sendLater.length=0,window.removeEventListener("message",this.receive)}},{key:"send",value:function(t){if("string"!=typeof t)throw"The event type must be a string";var e={type:t,data:arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}};this.logDebugMessage(!1,e),this.connecting?this._sendLater.push(e):this.target.postMessage(JSON.stringify(e),this.origin)}},{key:"fetch",value:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(!this.connecting&&!this.connected)throw"No connection, please call connect() first";this.on(t,(function t(r){o&&n.off(r.type,t),e(r)})),this.send(t,r)}},{key:"respond",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=this;this.on(t,(function t(o){return pp.async((function(i){for(;;)switch(i.prev=i.next){case 0:if(n&&r.off(o,t),"function"!=typeof e){i.next=10;break}return i.t0=r,i.t1=o.type,i.next=6,pp.awrap(e());case 6:i.t2=i.sent,i.t0.send.call(i.t0,i.t1,i.t2),i.next=11;break;case 10:r.send(o.type,e);case 11:case"end":return i.stop()}}))}))}},{key:"logDebugMessage",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=arguments.length>1?arguments[1]:void 0;this.debug&&"function"==typeof this.debug?this.debug({isChild:this.isChild,received:t,message:e}):this.debug&&console.log("Bellhop Instance (".concat(this.isChild?"Child":"Parent",") ").concat(t?"Receieved":"Sent"),e)}},{key:"destroy",value:function(){mp(gp(e.prototype),"destroy",this).call(this),this.disconnect(),this._sendLater.length=0}},{key:"target",get:function(){return this.isChild?window.parent:this.iframe.contentWindow}}]),e}(),wp=function(){function t(e){var n=e.plugins,r=void 0===n?[]:n;qa(this,t),this.client=new Sp,this.client.hidden=this.client.receive.bind(this.client),this.client.hiddenSend=this.client.send.bind(this.client),this.client.receive=function(t){this.hidden(t)}.bind(this.client),this.client.send=function(t,e){this.hiddenSend(t,e)}.bind(this.client),this.plugins=r}return Xa(t,[{key:"setupPlugins",value:function(){for(var t=this,e=[],n=function(n){if(!t.plugins[n].preload)return"continue";e.push(t.plugins[n].preload(t).catch(function(t){this.plugins[n].preloadFailed=!0,console.warn(this.plugins[n].name,"Preload Failed:",t)}.bind(t)))},r=0,o=this.plugins.length;r1&&void 0!==arguments[1]?arguments[1]:{},i=o.plugins,s=o.context,a=void 0===s?{}:s;if(qa(this,r),(e=n.call(this,{plugins:i})).iframe=t instanceof HTMLIFrameElement?t:document.querySelector(t),null===e.iframe)throw new Error("No iframe was found with the provided selector");return e.loaded=!1,e.loading=!1,e.release=null,e._context=a,e.onLoading=e.onLoading.bind(Qa(e)),e.onLoadDone=e.onLoadDone.bind(Qa(e)),e.onLoadDone=e.onLoadDone.bind(Qa(e)),e.onEndGame=e.onEndGame.bind(Qa(e)),e.onLocalError=e.onLocalError.bind(Qa(e)),e.initClient(),e.setupPlugins(),e}return Xa(r,[{key:"onLoading",value:function(){this.client.trigger("opening")}},{key:"onLoadDone",value:function(){this.loading=!1,this.loaded=!0,this.iframe.classList.remove("loading"),this.client.trigger("opened")}},{key:"onEndGame",value:function(){this.reset()}},{key:"onLocalError",value:function(t){console.error("SpringRoll Container error: ",t,(new Error).stack)}},{key:"reset",value:function(){(this.loaded||this.loading)&&this.client.trigger("closed"),this.loaded=!1,this.loading=!1,this.iframe.setAttribute("src",""),this.iframe.classList.remove("loading")}},{key:"initClient",value:function(){this.client.on("loading",this.onLoading),this.client.on("loaded",this.onLoadDone),this.client.on("loadDone",this.onLoadDone),this.client.on("endGame",this.onEndGame),this.client.on("localError",this.onLocalError),this.client.connect(this.iframe)}},{key:"_onCloseFailed",value:function(){this.reset()}},{key:"_internalOpen",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.singlePlay,r=void 0!==n&&n,o=e.playOptions,i=void 0===o?null:o,s={singlePlay:r,playOptions:i};this.reset(),this.loading=!0,this.initClient();var a=Nf.basic();a&&(console.error("ERROR:",a),this.client.trigger("unsupported"));var u=t;if(null!==s.playOptions){var l="playOptions="+encodeURIComponent(JSON.stringify(s.playOptions));u=-1===t.indexOf("?")?"".concat(t,"?").concat(l):"".concat(t,"&").concat(l)}this.iframe.classList.add("loading"),this.iframe.setAttribute("src",u),this.client.respond("singlePlay",r),this.client.respond("playOptions",i),this.client.trigger("open")}},{key:"openPath",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};"object"!==Ua(e)&&(console.warn("SpringRoll Container.openPath was passed a invalid options parameter. Using default parameters instead"),e={}),this._internalOpen(t,Object.assign({singlePlay:!1,playOptions:{}},e))}},{key:"openRemote",value:(e=za(Ga().mark((function t(e){var n,r,o,i,s,a,u,l,c,d,h,f=arguments;return Ga().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=(n=f.length>1&&void 0!==f[1]?f[1]:{}).query,o=void 0===r?"":r,i=n.singlePlay,s=void 0!==i&&i,a=n.playOptions,u=void 0===a?null:a,this.release=null,t.next=4,fetch(e,{headers:{"Content-Type":"application/json"}});case 4:return l=t.sent,t.next=7,l.json();case 7:if((c=t.sent).success){t.next=10;break}throw new Error(c.error);case 10:if(d=c.data,!(h=Nf.test(d.capabilities))){t.next=15;break}throw this.client.trigger("unsupported",{error:h}),new Error(h);case 15:this.release=d,this._internalOpen(d.url+o,{singlePlay:s,playOptions:u});case 17:case"end":return t.stop()}}),t,this)}))),function(t){return e.apply(this,arguments)})},{key:"destroy",value:function(){this.reset(),this.iframe=null,this.options=null,this.release=null}},{key:"close",value:function(){this.loading||this.loaded?(this.client.trigger("close"),this.client.send("close")):this.reset()}},{key:"context",get:function(){return this._context},set:function(t){"object"===Ua(t)?this._context=t:console.error("[SpringRollContainer] Context: new context provided is not an object")}}],[{key:"version",get:function(){return"2.5.0"}}]),r}(),Ep=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){};qa(this,t),this._onFocus=e,this._onBlur=n,this.onFocus=function(t){this.enabled&&this._onFocus(t)}.bind(this),this.onBlur=function(t){this.enabled&&this._onBlur(t)}.bind(this),this._enabled=!1,this.enabled=!0,this.onToggle=this.onToggle.bind(this)}return Xa(t,[{key:"destroy",value:function(){this.enabled=!1,this.onToggle=null,this.onFocus=null,this.onBlur=null}},{key:"onToggle",value:function(t){this.enabled&&(document.hidden?this.onBlur(t):this.onFocus(t))}},{key:"enabled",get:function(){return this._enabled},set:function(t){this._enabled=t,document.removeEventListener("visibilitychange",this.onToggle,!1),window.removeEventListener("blur",this.onBlur,!1),window.removeEventListener("focus",this.onFocus,!1),window.removeEventListener("pagehide",this.onBlur,!1),window.removeEventListener("pageshow",this.onFocus,!1),window.removeEventListener("visibilitychange",this.onToggle,!1),this._enabled&&(document.addEventListener("visibilitychange",this.onToggle,!1),window.addEventListener("blur",this.onBlur,!1),window.addEventListener("focus",this.onFocus,!1),window.addEventListener("pagehide",this.onBlur,!1),window.addEventListener("pageshow",this.onFocus,!1),window.addEventListener("visibilitychange",this.onToggle,!1))}}]),t}(),Bp=Dr.includes,xp=xo;hs({target:"Array",proto:!0,forced:G((function(){return!Array(1).includes()}))},{includes:function(t){return Bp(this,t,arguments.length>1?arguments[1]:void 0)}}),xp("includes");var Pp="\t\n\v\f\r                 \u2028\u2029\ufeff",Lp=St,_p=sf,Op=Pp,Ap=X("".replace),Vp=RegExp("^["+Op+"]+"),Cp=RegExp("(^|[^"+Op+"])["+Op+"]+$"),Dp=function(t){return function(e){var n=_p(Lp(e));return 1&t&&(n=Ap(n,Vp,"")),2&t&&(n=Ap(n,Cp,"$1")),n}},Mp={start:Dp(1),end:Dp(2),trim:Dp(3)},Tp=li.PROPER,Ip=G,Rp=Pp,jp=Mp.trim;hs({target:"String",proto:!0,forced:function(t){return Ip((function(){return!!Rp[t]()||"​…᠎"!=="​…᠎"[t]()||Tp&&Rp[t].name!==t}))}("trim")},{trim:function(){return jp(this)}});var Np=_n,Kp=Xt,Fp=On,Gp=uf,Up=RegExp.prototype,Hp=li.PROPER,zp=Ci,qp=xn,Wp=sf,Xp=G,Yp=function(t){var e=t.flags;return void 0!==e||"flags"in Up||Kp(t,"flags")||!Fp(Up,t)?e:Np(Gp,t)},Jp="toString",$p=RegExp.prototype[Jp],Qp=Xp((function(){return"/a/b"!=$p.call({source:"a",flags:"b"})})),Zp=Hp&&$p.name!=Jp;(Qp||Zp)&&zp(RegExp.prototype,Jp,(function(){var t=qp(this);return"/"+Wp(t.source)+"/"+Wp(Yp(t))}),{unsafe:!0});var tv=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";qa(this,t),this.db=null,this.dbName=e}return Xa(t,[{key:"IDBOpen",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=arguments.length>4?arguments[4]:void 0,s=n?indexedDB.open(t,n):indexedDB.open(t);s.onsuccess=function(t){e.db=t.target.result,e.db.version==n|null==n&&i({result:"Success: IDBOpen",success:!0})},s.onerror=function(){i({result:s.error.toString(),success:!1})},s.onupgradeneeded=function(t){e.db=t.target.result,null!=r&&(r.stores&&r.stores.forEach((function(t){e.db.createObjectStore(t.storeName,t.options)})),null!=r.indexes&&r.indexes.forEach((function(t){s.transaction.objectStore(t.storeName).createIndex(t.indexName,t.keyPath,t.options)}))),null!=o&&(null!=o.indexes&&o.indexes.forEach((function(t){s.transaction.objectStore(t.storeName).deleteIndex(t.indexName)})),o.stores&&o.stores.forEach((function(t){e.db.deleteObjectStore(t.storeName)}))),i({result:"Success: IDBOpen onupgradeneeded ran",success:!0})}}},{key:"IDBDeleteDB",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=null!=e?indexedDB.deleteDatabase(t,e):indexedDB.deleteDatabase(t);r.onsuccess=function(t){n({result:"Success: Database Deleted, returned: "+t.result,success:!0})},r.onerror=function(){n({result:r.error.toString(),success:!1})}}},{key:"IDBAdd",value:function(t,e,n,r){this.db||""==this.dbName||this.IDBOpen(this.dbName);var o=this.db.transaction(t,"readwrite");o.onerror=function(){return r({result:null!=o.error?o.error.toString():"Aborted: No error given, was the record already added?",success:!1})},o.onabort=function(){return r({result:null!=o.error?o.error.toString():"Aborted: No error given, was the record already added?",success:!1})},o.oncomplete=function(){return r({result:"Success: Record Added",success:!0})},o.objectStore(t).add(e,n)}},{key:"IDBUpdate",value:function(t,e,n,r){this.db||""==this.dbName||this.IDBOpen(this.dbName);var o=this.db.transaction(t,"readwrite").objectStore(t).put(n,e);o.onsuccess=function(){r({result:"Success: Record Updated",success:!0})},o.onerror=function(){return r({result:o.error.toString(),success:!1})}}},{key:"IDBRemove",value:function(t,e,n){var r=this;this.db||""==this.dbName||this.IDBOpen(this.dbName);var o=this.db.transaction(t,"readwrite");o.onerror=function(){return n({result:r.db.error.toString(),success:!1})},o.objectStore(t).delete(e),o.oncomplete=function(){return n({result:"Removed Successfully",success:!0})}}},{key:"IDBRead",value:function(t,e,n){var r=this,o=this.db.transaction(t,"readonly"),i=o.objectStore(t);o.onerror=function(){return n({result:r.db.error.toString(),success:!1})};var s=i.get(e);s.onsuccess=function(){n({result:s.result,success:null!=s.result})}}},{key:"IDBGetIndexKeys",value:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},s=this.db.transaction(t,"readonly"),a=s.objectStore(t);s.onerror=function(){return i({result:n.db.error.toString(),success:!1})},(r&&o?a.index(e,r,o):r?a.index(e,r):a.index(e)).getAllKeys().onsuccess=function(t){i({result:t.result,success:!0})}}},{key:"IDBReadAll",value:function(t,e,n){var r=this.db.transaction(t,"readonly"),o=r.objectStore(t),i=null!=e?o.getAll(null,e):o.getAll();r.onerror=function(){return n({result:r.error.toString(),success:!1})},i.onsuccess=function(){n({result:i.result,success:null!=i.result})}}},{key:"IDBGetVersion",value:function(t,e){var n=window.indexedDB.open(t);n.onerror=function(){e({result:n.error.toString(),success:!1})},n.onsuccess=function(){var t=n.result;e({result:t.version,success:!0})}}},{key:"IDBClose",value:function(t){this.db&&(this.db.close(),t({result:"Success: Closed Database Connection",success:!0}))}}],[{key:"remove",value:function(t){localStorage.removeItem(t),sessionStorage.removeItem(t)}},{key:"write",value:function(t,e){return arguments.length>2&&void 0!==arguments[2]&&arguments[2]?sessionStorage.setItem(t,JSON.stringify("function"==typeof e?e():e)):localStorage.setItem(t,JSON.stringify("function"==typeof e?e():e))}},{key:"read",value:function(t){var e=localStorage.getItem(t)||sessionStorage.getItem(t);if("string"!=typeof e)return e;try{return JSON.parse(e)}catch(t){return e}}}]),t}(),ev=function(){function t(e){qa(this,t),this.name=e,this.client=null}var e;return Xa(t,[{key:"preload",value:(e=za(Ga().mark((function t(e){var n;return Ga().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:n=e.client,this.client=n;case 2:case"end":return t.stop()}}),t,this)}))),function(t){return e.apply(this,arguments)})},{key:"start",value:function(){this.client.on("loaded",this.sendAllProperties),this.client.on("loadDone",this.sendAllProperties)}},{key:"init",value:function(t){}},{key:"sendProperty",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];tv.write(t,e),n||this.client.send(t,e)}},{key:"sendAllProperties",value:function(t){}},{key:"warn",value:function(t){console.warn("[SpringRollContainer] ".concat(this.name,": ").concat(t))}}]),t}(),nv=function(t){Ya(n,ev);var e=tu(n);function n(t){var r;return qa(this,n),(r=e.call(this,t)).sendMutes=!1,r}return Xa(n,[{key:"init",value:function(t){this.sendMutes=!0}},{key:"_disableButton",value:function(t){t instanceof HTMLButtonElement&&(t.classList.remove("enabled"),t.classList.add("disabled"))}},{key:"reset",value:function(){this.sendMutes=!1}},{key:"_setMuteProp",value:function(t,e,n){var r=this,o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];console.log("_setmuteprop",t,n,o),Array.isArray(e)?e.forEach((function(t){return r.changeMutedState(t,n)})):this.changeMutedState(e,n),this.sendProperty(t,n,o)}},{key:"changeMutedState",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=t.button?t.button:t;n instanceof HTMLElement&&(n.classList.remove("unmuted"),n.classList.remove("muted"),n.classList.add(e?"muted":"unmuted"))}}]),n}(),rv=M,ov=Q,iv=Se("match"),sv=function(t){var e;return rv(t)&&(void 0!==(e=t[iv])?!!e:"RegExp"==ov(t))},av=TypeError,uv=Se("match"),lv=hs,cv=function(t){if(sv(t))throw av("The method doesn't accept regular expressions");return t},dv=St,hv=sf,fv=function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[uv]=!1,"/./"[t](e)}catch(t){}}return!1},pv=X("".indexOf);lv({target:"String",proto:!0,forced:!fv("includes")},{includes:function(t){return!!~pv(hv(dv(this)),hv(cv(t)),arguments.length>1?arguments[1]:void 0)}});var vv={exports:{}},yv={},gv=_r,mv=Ct,bv=pu,Sv=Array,wv=Math.max,kv=Q,Ev=Er,Bv=Di.f,xv=function(t,e,n){for(var r=mv(t),o=gv(e,r),i=gv(void 0===n?r:n,r),s=Sv(wv(i-o,0)),a=0;o1?arguments[1]:void 0);e=e?e.next:n.first;)for(r(e.value,e.key,this);e&&e.removed;)e=e.previous},has:function(t){return!!u(this,t)}}),by(i,n?{get:function(t){var e=u(this,t);return e&&e.value},set:function(t,e){return a(this,0===t?0:t,e)}}:{add:function(t){return a(this,t=0===t?0:t,t)}}),Ly&&my(i,"size",{configurable:!0,get:function(){return s(this).size}}),o},setStrong:function(t,e,n){var r=e+" Iterator",o=Ay(e),i=Ay(r);By(t,e,(function(t,e){Oy(this,{type:r,target:t,state:o(t),kind:e,last:void 0})}),(function(){for(var t=i(this),e=t.kind,n=t.last;n&&n.removed;)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?xy("keys"==e?n.key:"values"==e?n.value:[n.key,n.value],!1):(t.target=void 0,xy(void 0,!0))}),n?"entries":"values",!n,!0),Py(e)}};(function(t,e,n){var r=-1!==t.indexOf("Map"),o=-1!==t.indexOf("Weak"),i=r?"set":"add",s=ny[t],a=s&&s.prototype,u=s,l={},c=function(t){var e=ry(a[t]);iy(a,t,"add"==t?function(t){return e(this,0===t?0:t),this}:"delete"==t?function(t){return!(o&&!dy(t))&&e(this,0===t?0:t)}:"get"==t?function(t){return o&&!dy(t)?void 0:e(this,0===t?0:t)}:"has"==t?function(t){return!(o&&!dy(t))&&e(this,0===t?0:t)}:function(t,n){return e(this,0===t?0:t,n),this})};if(oy(t,!ly(s)||!(o||a.forEach&&!hy((function(){(new s).entries().next()})))))u=n.getConstructor(e,t,r,i),sy.enable();else if(oy(t,!0)){var d=new u,h=d[i](o?{}:-0,1)!=d,f=hy((function(){d.has(1)})),p=fy((function(t){new s(t)})),v=!o&&hy((function(){for(var t=new s,e=5;e--;)t[i](e,e);return!t.has(-0)}));p||((u=e((function(t,e){uy(t,a);var n=vy(new s,t,u);return cy(e)||ay(e,n[i],{that:n,AS_ENTRIES:r}),n}))).prototype=a,a.constructor=u),(f||v)&&(c("delete"),c("has"),r&&c("get")),(v||h)&&c(i),o&&a.clear&&delete a.clear}l[t]=u,ey({global:!0,constructor:!0,forced:u!=s},l),py(u,t),o||n.setStrong(u,t,r)})("Set",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),Vy);var Cy=Et,Dy=Hr;hs({target:"Object",stat:!0,forced:G((function(){Dy(1)}))},{keys:function(t){return Dy(Cy(t))}});var My=hn.map;hs({target:"Array",proto:!0,forced:!mu("map")},{map:function(t){return My(this,t,arguments.length>1?arguments[1]:void 0)}});var Ty=gn,Iy=X,Ry=Hr,jy=Er,Ny=Iy(Ho.f),Ky=Iy([].push),Fy=function(t){return function(e){for(var n,r=jy(e),o=Ry(r),i=o.length,s=0,a=[];i>s;)n=o[s++],Ty&&!Ny(r,n)||Ky(a,t?[n,r[n]]:r[n]);return a}},Gy={entries:Fy(!0),values:Fy(!1)}.values;hs({target:"Object",stat:!0},{values:function(t){return Gy(t)}});var Uy=function(t){Ya(n,ev);var e=tu(n);function n(t){var r,o=t.selector,i=t.controlName,s=t.featureName,a=void 0===s?"captionStyles":s,u=t.defaultValue,l=t.pluginName;return qa(this,n),(r=e.call(this,l)).controlName=i,r.featureName=a,r.radioElements=document.querySelectorAll(o),r.defaultValue=u,r.radioGroup={},r.radioElements.length<=0?(r.warn("".concat(r.controlName," RadioGroup found no HTMLElements with selector: ").concat(o)),Za(r)):(r.radioElements.forEach((function(t){"radio"===t.type?(t.value=t.value.toLowerCase(),r.radioGroup[t.value]=t):r.warn("".concat(r.controlName," was provided a non Radio Button element with selector: ").concat(o))})),r.radioGroup[r.defaultValue]||(r.warn("".concat(r.controlName," RadioGroup for selector: ").concat(o," does not have a radio button with value ").concat(r.defaultValue," to use as default value. Using first element as default")),r.defaultValue=r.radioElements[0].value.toLowerCase()),r.radioGroup[r.defaultValue].checked=!0,r)}return Xa(n,[{key:"hasOnly",value:function(t){for(var e in this.radioGroup)if(!t.includes(this.radioGroup[e].value))return this.warn("".concat(this.controlName," radio button value: ").concat(this.radioGroup[e].value," is not an accepted value. Skipping radio group")),!1;return!0}},{key:"hasDuplicateValues",value:function(){return this.values.length!==eu(new Set(this.values)).length}},{key:"enableRadioEvents",value:function(t){if(!(!this.radioGroup.length<=0)){var e=t;for(var n in this.radioGroup)this.radioGroup[n].addEventListener("change",e)}}},{key:"disableRadioEvents",value:function(t){if(!(!this.radioGroup.length<=0))for(var e in this.radioGroup)this.radioGroup[e].removeEventListener("change",t)}},{key:"displayRadios",value:function(t){if(this.radioGroup.length<=0&&t[this.featureName])this.warn("".concat(this.controlName," was not provided a valid input element or selector but '").concat(this.featureName,"' was included as a game feature"));else if(!(this.radioGroup.length<=0||t[this.featureName]))for(var e in this.radioGroup)this.radioGroup[e].style.display="none"}},{key:"resetState",value:function(){this.radioGroup[this.defaultValue].checked=!0}},{key:"length",get:function(){return Object.keys(this.radioGroup).length}},{key:"values",get:function(){return Object.values(this.radioGroup).map((function(t){return t.value}))}}]),n}(),Hy=function(t){Ya(n,ev);var e=tu(n);function n(t,r,o){var i,s=o.supportedValues,a=o.initialValue,u=o.controlName,l=o.featureName,c=o.radioCount;return qa(this,n),(i=e.call(this,r)).selectors=t?t.split(","):[],i.supportedValues=s,i.initialValue=s.includes(a)?a:s[0],i.controlName=u,i.featureName=l,i.radioCount=c,i.sendAllProperties=i.sendAllProperties.bind(Qa(i)),i._currentValue=i.initialValue,i.radioGroups=i.setUpRadios(i.selectors),i.radioGroupsLength=i.radioGroups.length,i}return Xa(n,[{key:"setUpRadios",value:function(t){var e=this,n=[];return t.forEach((function(t){var r=new Uy({selector:t.trim(),controlName:e.controlName,defaultValue:e.initialValue,pluginName:e.name,featureName:e.featureName});r.length===e.radioCount?r.hasOnly(e.supportedValues)&&(r.hasDuplicateValues()?e.warn("Duplicate radio button values detected (values: ".concat(r.values," ). Skipping radio group")):n.push(r)):e.warn('Selector "'.concat(t,'" did not find exactly ').concat(e.radioCount," radio buttons for ").concat(e.controlName,". Skipping selector"))})),n}},{key:"start",value:function(){this.client.on("loaded",this.sendAllProperties),this.client.on("loadDone",this.sendAllProperties)}},{key:"sendAllProperties",value:function(){this.sendProperty(this.featureName,this.property)}},{key:"currentValue",get:function(){return this._currentValue},set:function(t){if(this.supportedValues.includes(t)){this._currentValue=t;for(var e=0,n=this.radioGroups.length;e2)if(l=ug(l),43===(e=pg(l,0))||45===e){if(88===(n=pg(l,2))||120===n)return NaN}else if(48===e){switch(pg(l,1)){case 66:case 98:r=2,o=49;break;case 79:case 111:r=8,o=55;break;default:return+l}for(s=(i=fg(l,2)).length,a=0;ao)return NaN;return parseInt(i,r)}return+l},yg=$y(lg,!cg(" 0o1")||!cg("0b1")||cg("+0x1")),gg=function(t){var e,n=arguments.length<1?0:cg(function(t){var e=ng(t,"number");return"bigint"==typeof e?e:vg(e)}(t));return tg(dg,e=this)&&rg((function(){ag(e)}))?Zy(Object(n),this,gg):n};gg.prototype=dg,yg&&(dg.constructor=gg),qy({global:!0,constructor:!0,wrap:!0,forced:yg},{Number:gg});yg&&function(t,e){for(var n,r=Wy?og(e):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,fromString,range".split(","),o=0;r.length>o;o++)Qy(e,n=r[o])&&!Qy(t,n)&&sg(t,n,ig(e,n))}(Yy[lg],cg);var mg=function(){function t(e){var n=e.slider,r=e.control,o=e.min,i=void 0===o?0:o,s=e.max,a=void 0===s?1:s,u=e.step,l=void 0===u?.1:u,c=e.defaultValue,d=void 0===c?1:c;qa(this,t),this.min=i,this.max=a,this.step=l,this.sliderValue=d,this.control=r,this.slider=this.setUpSlider(n,r)}return Xa(t,[{key:"setUpSlider",value:function(t,e){if("string"==typeof t&&(t=document.querySelector(t)),!t||"range"!==t.type)return null;var n=tv.read(e);return t.min=this.min,t.max=this.max,t.step=this.step,(n||0===n)&&n.toString().trim().length>0?(t.value=n,this.sliderValue=n):t.value=this.sliderValue,t}},{key:"sliderRange",value:function(t){return tthis.max?this.max:t}},{key:"enableSliderEvents",value:function(t){if(this.slider){var e=t;this.slider.addEventListener("change",e),this.slider.addEventListener("input",e)}}},{key:"disableSliderEvents",value:function(t){if(this.slider){var e=t;this.slider.removeEventListener("change",e),this.slider.removeEventListener("input",e)}}},{key:"displaySlider",value:function(t){!this.slider&&t[this.control]&&console.warn("".concat(this.control," was not provided a valid input element or selector but was included as a game feature")),this.slider&&(this.slider.style.display=t[this.control]?"":"none")}},{key:"dispatchEvent",value:function(t){this.slider.dispatchEvent(t)}},{key:"value",get:function(){return this.slider.value},set:function(t){this.slider.value=t}}]),t}(),bg=function(){function t(e){var n=e.button,r=e.onClick,o=e.channel;qa(this,t),this.button=n instanceof HTMLElement?n:document.querySelector(n),this.onClick=r,this.channel=o,this.button&&this.button.addEventListener("click",r)}return Xa(t,[{key:"displayButton",value:function(t){this.button instanceof HTMLElement&&(this.button.style.display=t[this.channel]||"pause"===this.channel||"hints"===this.channel?"":"none")}},{key:"enableButton",value:function(){this.button&&this.button.classList.remove("disabled")}},{key:"addClass",value:function(t){this.button.className=this.button.className?this.button.className+" ".concat(t):" ".concat(t)}}]),t}(),Sg=function(t){Ya(n,ev);var e=tu(n);function n(t,r,o){var i,s=o.defaultValue,a=void 0===s?"0.5":s,u=o.minValue,l=void 0===u?"0":u,c=o.maxValue,d=void 0===c?"1":c,h=o.featureName;return qa(this,n),(i=e.call(this,r)).featureName=h,i.minValue=l,i.defaultValue=a,i.maxValue=d,i._currentValue=a,i.sliders=i.setUpSliders(t),i.slidersLength=i.sliders.length,i.sendAllProperties=i.sendAllProperties.bind(Qa(i)),0>=i.slidersLength?(i.warn("Plugin was not provided any valid HTML Elements"),Za(i)):i}return Xa(n,[{key:"setUpSliders",value:function(t){var e=this,n=[];return t instanceof HTMLElement?n.push(new mg({slider:t,control:this.featureName,defaultValue:this.defaultValue,minValue:this.minValue,maxValue:this.maxValue})):document.querySelectorAll(t).forEach((function(t){n.push(new mg({slider:t,control:e.featureName,defaultValue:e.defaultValue,minValue:e.minValue,maxValue:e.maxValue}))})),n}},{key:"init",value:function(){this.client.on("features",function(t){if(t.data)for(var e=0;e3&&void 0!==arguments[3]?arguments[3]:{},a=s.defaultFontSize,u=void 0===a?"medium":a,l=s.defaultColor,c=void 0===l?"default":l,d=s.defaultAlignment,h=void 0===d?"top":d;if(qa(this,n),(i=e.call(this,"Caption-Style-Plugin")).sendAllProperties=i.sendAllProperties.bind(Qa(i)),i.captionsStyles=Object.assign({},wg,tv.read(n.captionStyleKey)||{}),i.fontSizeSelectors=t?t.split(","):[],i.colorSelectors=r?r.split(","):[],i.alignmentSelectors=o?o.split(","):[],i.defaultFontSize=Bg.includes(u)?u:Bg[0],i.defaultColor=xg.includes(c)?c:xg[0],i.defaultAlignment=Pg.includes(h)?h:Pg[0],i.fontSizeRadios=[],i.colorRadios=[],i.alignmentRadios=[],i.fontSizeRadios=i.setUpFontSizeRadios(i.fontSizeSelectors),i.colorRadios=i.setUpColorRadios(i.colorSelectors),i.alignmentRadios=i.setUpAlignmentRadios(i.alignmentSelectors),i._captionsMuted=!1,i.alignmentRadiosLength=i.alignmentRadios.length,i.fontSizeRadiosLength=i.fontSizeRadios.length,i.colorRadiosLength=i.colorRadios.length,0>=i.alignmentRadiosLength+i.fontSizeRadiosLength+i.colorRadiosLength)return i.warn("Plugin was not provided any input elements"),Za(i);for(var f=0;f0&&void 0!==arguments[0]?arguments[0]:wg,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";"object"===Ua(e)?Object.assign(this.captionsStyles,e):"string"==typeof e&&(this.captionsStyles[e]=r),this.colorRadios.forEach((function(e){var n="white"===t.captionsStyles.color?"default":"inverted";e.radioGroup[n].checked=!0})),this.alignmentRadios.forEach((function(e){e.radioGroup[t.captionsStyles.align].checked=!0})),this.fontSizeRadios.forEach((function(e){e.radioGroup[t.captionsStyles.size].checked=!0})),tv.write(n.captionStyleKey,this.captionsStyles),this.client&&this.client.send(n.captionStyleKey,this.captionsStyles)}},{key:"radios",get:function(){return this.colorRadios.concat(this.alignmentRadios).concat(this.fontSizeRadios)}}],[{key:"captionStyleKey",get:function(){return"captionsStyles"}}]),n}(),_g=function(t){Ya(n,nv);var e=tu(n);function n(t){var r;return qa(this,n),(r=e.call(this,"Caption-Button-Plugin")).sendAllProperties=r.sendAllProperties.bind(Qa(r)),r._captionsButtons=[],t instanceof HTMLElement?r._captionsButtons[0]=new bg({button:t,onClick:r.captionsButtonClick.bind(Qa(r)),channel:"captions"}):document.querySelectorAll(t).forEach((function(t){r._captionsButtons.push(new bg({button:t,onClick:r.captionsButtonClick.bind(Qa(r)),channel:"captions"}))})),r._captionsMuted=!1,r.captionsButtonLength=r._captionsButtons.length,0>=r.captionsButtonLength?(r.warn("Plugin was not provided any valid button or input elements"),Za(r)):r}return Xa(n,[{key:"init",value:function(){this.client.on("features",function(t){for(var e=0;e1&&void 0!==arguments[1])||arguments[1];qa(this,n),(r=e.call(this,"Pause-Button-plugin"))._manageOwnVisibility=o,r._appBlurred=!1,r._containerBlurred=!1,r._focusTimer=null,r._isManualPause=!1,r._keepFocus=!1,r._paused=!1,r.iframe=null,r.focusApp=r.focusApp.bind(Qa(r)),r.manageFocus=r.manageFocus.bind(Qa(r)),r.onKeepFocus=r.onKeepFocus.bind(Qa(r)),r.onFocus=r.onFocus.bind(Qa(r));var i=r.onPauseToggle.bind(Qa(r));return r.pauseDisabled=!1,r._pauseButton=[],r.pageVisibility=new Ep(r.onContainerFocus.bind(Qa(r)),r.onContainerBlur.bind(Qa(r))),r.pageVisibility.enabled=r.manageOwnVisibility,t instanceof HTMLElement?r._pauseButton[0]=new bg({button:t,onClick:i,channel:n.pauseKey}):document.querySelectorAll(t).forEach((function(t){r._pauseButton.push(new bg({button:t,onClick:i,channel:n.pauseKey}))})),r}return Xa(n,[{key:"pause",get:function(){return this._paused},set:function(t){if(t=!!t,!this.pauseDisabled){this._paused=t,this.client.send(n.pauseKey,t),this.client.trigger(t?"paused":"resumed",{paused:t});for(var e=0,r=this._pauseButton.length;e0&&void 0!==arguments[0]?arguments[0]:{},o=e.soundButtons,i=e.musicButtons,s=e.sfxButtons,a=e.voButtons,u=e.soundSliders,l=e.musicSliders,c=e.sfxSliders,d=e.voSliders;qa(this,r),t=n.call(this,"Sound-Button-Plugin");var h=tv.read(r.soundMutedKey);if(t.sendAllProperties=t.sendAllProperties.bind(Qa(t)),t._soundMuted=h||!1,t._musicMuted=!1,t._voMuted=!1,t._sfxMuted=!1,t._musicMutedByUser=!1,t._soundMutedByUser=!1,t._sfxMutedByUser=!1,t._voMutedByUser=!1,t.soundMuteEnabled=!1,t.musicMuteEnabled=!1,t.sfxMuteEnabled=!1,t.voMuteEnabled=!1,t.soundVolume=1,t.musicVolume=1,t.sfxVolume=1,t.voVolume=1,t.soundSliders=[],t.musicSliders=[],t.sfxSliders=[],t.voSliders=[],t.soundButtons=[],t.musicButtons=[],t.sfxButtons=[],t.voButtons=[],u instanceof HTMLElement?t.soundSliders[0]=new mg({slider:u,control:r.soundVolumeKey,defaultValue:t.soundVolume}):document.querySelectorAll(u).forEach((function(e){var n=new mg({slider:e,control:r.soundVolumeKey,defaultValue:t.soundVolume});n.slider&&t.soundSliders.push(n)})),l instanceof HTMLElement?t.musicSliders[0]=new mg({slider:l,control:r.musicVolumeKey,defaultValue:t.musicVolume}):document.querySelectorAll(l).forEach((function(e){var n=new mg({slider:e,control:r.musicVolumeKey,defaultValue:t.musicVolume});n.slider&&t.musicSliders.push(n)})),c instanceof HTMLElement?t.sfxSliders[0]=new mg({slider:c,control:r.sfxVolumeKey,defaultValue:t.sfxVolume}):document.querySelectorAll(c).forEach((function(e){var n=new mg({slider:e,control:r.sfxVolumeKey,defaultValue:t.sfxVolume});n.slider&&t.sfxSliders.push(n)})),d instanceof HTMLElement?t.voSliders[0]=new mg({slider:d,control:r.voVolumeKey,defaultValue:t.voVolume}):document.querySelectorAll(d).forEach((function(e){var n=new mg({slider:e,control:r.voVolumeKey,defaultValue:t.voVolume});n.slider&&t.voSliders.push(n)})),o instanceof HTMLElement?t.soundButtons[0]=new bg({button:o,onClick:t.onSoundToggle.bind(Qa(t)),channel:r.soundKey}):document.querySelectorAll(o).forEach((function(e){t.soundButtons.push(new bg({button:e,onClick:t.onSoundToggle.bind(Qa(t)),channel:r.soundKey}))})),i instanceof HTMLElement?t.musicButtons[0]=new bg({button:i,onClick:t.onMusicToggle.bind(Qa(t)),channel:"music"}):document.querySelectorAll(i).forEach((function(e){t.musicButtons.push(new bg({button:e,onClick:t.onMusicToggle.bind(Qa(t)),channel:"music"}))})),s instanceof HTMLElement?t.sfxButtons[0]=new bg({button:s,onClick:t.onSFXToggle.bind(Qa(t)),channel:"sfx"}):document.querySelectorAll(s).forEach((function(e){t.sfxButtons.push(new bg({button:e,onClick:t.onSFXToggle.bind(Qa(t)),channel:"sfx"}))})),a instanceof HTMLElement?t.voButtons[0]=new bg({button:a,onClick:t.onVOToggle.bind(Qa(t)),channel:"vo"}):document.querySelectorAll(a).forEach((function(e){t.voButtons.push(new bg({button:e,onClick:t.onVOToggle.bind(Qa(t)),channel:"vo"}))})),t.soundSlidersLength=t.soundSliders.length,t.musicSlidersLength=t.musicSliders.length,t.sfxSlidersLength=t.sfxSliders.length,t.voSlidersLength=t.voSliders.length,t.soundButtonsLength=t.soundButtons.length,t.musicButtonsLength=t.musicButtons.length,t.sfxButtonsLength=t.sfxButtons.length,t.voButtonsLength=t.voButtons.length,0>=t.soundSlidersLength+t.musicSlidersLength+t.sfxSlidersLength+t.voSlidersLength+t.soundButtonsLength+t.musicButtonsLength+t.sfxButtonsLength+t.voButtonsLength)return t.warn("Plugin was not provided any valid HTML Elements"),Za(t);for(var f=0;f3&&void 0!==arguments[3]&&arguments[3];this["_"+t]=e,this._setMuteProp(t,n,e,r)}},{key:"preload",value:(e=za(Ga().mark((function t(e){var n;return Ga().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:n=e.client,this.client=n,console.log("sound plugin preload"),this.client.on("features",function(t){if(console.log("features!",t),t.data){this.soundMuteEnabled=!!t.data.sound,this.musicMuteEnabled=!!t.data.music,this.sfxMuteEnabled=!!t.data.sfx,this.voMuteEnabled=!!t.data.vo,this.soundVolumeEnabled=!!t.data.soundVolume,this.musicVolumeEnabled=!!t.data.musicVolume,this.sfxVolumeEnabled=!!t.data.sfxVolume,this.voVolumeEnabled=!!t.data.voVolume;for(var e=0;e0&&this.sendProperty(r.soundVolumeKey,this.soundVolume),this.musicVolumeEnabled&&this.musicSlidersLength>0&&this.sendProperty(r.musicVolumeKey,this.musicVolume),this.voVolumeEnabled&&this.voSlidersLength>0&&this.sendProperty(r.voVolumeKey,this.voVolume),this.sfxVolumeEnabled&&this.sfxSlidersLength>0&&this.sendProperty(r.sfxVolumeKey,this.sfxVolume),this.soundButtonsLength>0&&this.soundMuteEnabled&&(this.soundMuted||!this.soundVolumeEnabled)&&this.sendProperty(r.soundMutedKey,this.soundMuted),this.musicButtonsLength>0&&this.musicMuteEnabled&&(this.musicMuted||!this.musicVolumeEnabled)&&this.sendProperty(r.musicMutedKey,this.musicMuted),this.voButtonsLength>0&&this.voMuteEnabled&&(this.voMuted||!this.voVolumeEnabled)&&this.sendProperty(r.voMutedKey,this.voMuted),this.sfxButtonsLength>0&&this.sfxMuteEnabled&&(this.sfxMuted||!this.sfxVolumeEnabled)&&this.sendProperty(r.sfxMutedKey,this.sfxMuted)}},{key:"soundMuted",get:function(){return this._soundMuted},set:function(t){if(t!==this.soundMuted){var e=!1;this.soundVolumeEnabled&&!t&&(this.sendProperty(r.soundVolumeKey,this.soundVolume),e=!0),this.setMuteProp("soundMuted",t,this.soundButtons,e)}else this.setMuteProp("soundMuted",t,this.soundButtons,!0)}},{key:"voMuted",get:function(){return this._voMuted},set:function(t){var e=!1;this.voMuted!==t?(this.voVolumeEnabled&&!t&&(this.sendProperty(r.voVolumeKey,this.voVolume),e=!0),this.setMuteProp("voMuted",t,this.voButtons,e)):this.setMuteProp("voMuted",t,this.voButtons,!0)}},{key:"musicMuted",get:function(){return this._musicMuted},set:function(t){if(this.musicMuted!==t){var e=!1;this.musicVolumeEnabled&&!t&&(this.sendProperty(r.musicVolumeKey,this.musicVolume),e=!0),this.setMuteProp("musicMuted",t,this.musicButtons,e)}else this.setMuteProp("musicMuted",t,this.musicButtons,!0)}},{key:"sfxMuted",get:function(){return this._sfxMuted},set:function(t){if(this.sfxMuted!==t){var e=!1;this.sfxVolumeEnabled&&!t&&(this.sendProperty(r.sfxVolumeKey,this.sfxVolume),e=!0),this.setMuteProp("sfxMuted",t,this.sfxButtons,e)}else this.setMuteProp("sfxMuted",t,this.sfxButtons,!0)}},{key:"soundButton",get:function(){return this._soundButton.button}},{key:"musicButton",get:function(){return this._musicButton.button}},{key:"sfxButton",get:function(){return this._sfxButton.button}},{key:"voButton",get:function(){return this._voButton.button}}],[{key:"soundMutedKey",get:function(){return"soundMuted"}},{key:"voMutedKey",get:function(){return"voMuted"}},{key:"musicMutedKey",get:function(){return"musicMuted"}},{key:"sfxMutedKey",get:function(){return"sfxMuted"}},{key:"soundVolumeKey",get:function(){return"soundVolume"}},{key:"sfxVolumeKey",get:function(){return"sfxVolume"}},{key:"voVolumeKey",get:function(){return"voVolume"}},{key:"musicVolumeKey",get:function(){return"musicVolume"}},{key:"soundKey",get:function(){return"sound"}}]),r}(),Cg=function(){function t(){qa(this,t),this.dbName,this.savedData}return Xa(t,[{key:"IDBOpen",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null;this.savedData=new tv,this.savedData.IDBOpen(t,e,n,r,o)}},{key:"IDBAdd",value:function(t,e,n,r){this.savedData.IDBAdd(t,e,n,r)}},{key:"IDBUpdate",value:function(t,e,n,r){this.savedData.IDBUpdate(t,e,n,r)}},{key:"IDBRemove",value:function(t,e,n){this.savedData.IDBRemove(t,e,n)}},{key:"IDBRead",value:function(t,e,n){this.savedData.IDBRead(t,e,n)}},{key:"IDBReadAll",value:function(t,e,n){this.savedData.IDBReadAll(t,e,n)}},{key:"IDBGetVersion",value:function(t,e){new tv(t).IDBGetVersion(t,e)}},{key:"IDBClose",value:function(t){this.savedData.IDBClose(t)}},{key:"IDBDeleteDB",value:function(t,e,n){new tv(t).IDBDeleteDB(t,e,n)}}],[{key:"remove",value:function(t,e){tv.remove(t),e()}},{key:"write",value:function(t,e,n){tv.write(t,e),n()}},{key:"read",value:function(t,e){e(tv.read(t))}}]),t}(),Dg=function(t){Ya(n,ev);var e=tu(n);function n(){var t;return qa(this,n),(t=e.call(this,"UserData-Plugin")).onUserDataRemove=t.onUserDataRemove.bind(Qa(t)),t.onUserDataRead=t.onUserDataRead.bind(Qa(t)),t.onUserDataWrite=t.onUserDataWrite.bind(Qa(t)),t.onIDBAdd=t.onIDBAdd.bind(Qa(t)),t.onIDBOpen=t.onIDBOpen.bind(Qa(t)),t.onIDBRead=t.onIDBRead.bind(Qa(t)),t.onIDBReadAll=t.onIDBReadAll.bind(Qa(t)),t.onIDBRemove=t.onIDBRemove.bind(Qa(t)),t.onIDBUpdate=t.onIDBUpdate.bind(Qa(t)),t.onIDBUpdate=t.onIDBUpdate.bind(Qa(t)),t.onIDBClose=t.onIDBClose.bind(Qa(t)),t.IDBReadAll=t.onIDBReadAll.bind(Qa(t)),t.onIDBGetVersion=t.onIDBGetVersion.bind(Qa(t)),t.onIDBDeleteDB=t.onIDBDeleteDB.bind(Qa(t)),t.savedDataHandler=null,t}return Xa(n,[{key:"init",value:function(){this.client.on("userDataRemove",this.onUserDataRemove),this.client.on("userDataRead",this.onUserDataRead),this.client.on("userDataWrite",this.onUserDataWrite),this.client.on("IDBOpen",this.onIDBOpen),this.client.on("IDBRead",this.onIDBRead),this.client.on("IDBReadAll",this.onIDBReadAll),this.client.on("IDBAdd",this.onIDBAdd),this.client.on("IDBRemove",this.onIDBRemove),this.client.on("IDBUpdate",this.onIDBUpdate),this.client.on("IDBClose",this.onIDBClose),this.client.on("IDBGetVersion",this.onIDBGetVersion),this.client.on("IDBDeleteDB",this.onIDBDeleteDB)}},{key:"onUserDataRemove",value:function(t){var e=this,n=t.data,r=t.type;Cg.remove(n,(function(){e.client.send(r)}))}},{key:"onUserDataRead",value:function(t){var e=this,n=t.data,r=t.type;Cg.read(n,(function(t){return e.client.send(r,t)}))}},{key:"onUserDataWrite",value:function(t){var e=this,n=t.type,r=t.data,o=r.name,i=r.value;Cg.write(o,i,(function(){return e.client.send(n)}))}},{key:"onIDBOpen",value:function(t){var e=this,n=t.type,r=t.data,o=r.dbName,i=r.dbVersion,s=void 0===i?null:i,a=r.additions,u=void 0===a?{}:a,l=r.deletions,c=void 0===l?{}:l;this.savedDataHandler=new Cg,this.savedDataHandler.IDBOpen(o,s,u,c,(function(t){return e.client.send(n,t)}))}},{key:"onIDBAdd",value:function(t){var e=this,n=t.type,r=t.data,o=r.storeName,i=r.value,s=r.key;this.savedDataHandler.IDBAdd(o,i,s,(function(t){return e.client.send(n,t)}))}},{key:"onIDBUpdate",value:function(t){var e=this,n=t.type,r=t.data,o=r.storeName,i=r.key,s=r.value;this.savedDataHandler.IDBUpdate(o,i,s,(function(t){return e.client.send(n,t)}))}},{key:"onIDBRemove",value:function(t){var e=this,n=t.type,r=t.data,o=r.storeName,i=r.key;this.savedDataHandler.IDBRemove(o,i,(function(t){return e.client.send(n,t)}))}},{key:"onIDBRead",value:function(t){var e=this,n=t.type,r=t.data,o=r.storeName,i=r.key;this.savedDataHandler.IDBRead(o,i,(function(t){return e.client.send(n,t)}))}},{key:"onIDBReadAll",value:function(t){var e=this,n=t.type,r=t.data,o=r.storeName,i=r.count;this.savedDataHandler.IDBReadAll(o,i,(function(t){return e.client.send(n,t)}))}},{key:"onIDBGetVersion",value:function(t){var e=this,n=t.type,r=t.data.dbName;(new Cg).IDBGetVersion(r,(function(t){return e.client.send(n,t)}))}},{key:"onIDBClose",value:function(t){var e=this,n=t.type;this.savedDataHandler.IDBClose((function(t){return e.client.send(n,t)}))}},{key:"onIDBDeleteDB",value:function(t){var e=this,n=t.type,r=t.data,o=r.dbName,i=r.options;(new Cg).IDBDeleteDB(o,i,(function(t){return e.client.send(n,t)}))}}]),n}(),Mg=function(t){Ya(n,Sg);var e=tu(n);function n(t){var r,o=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).defaultPointerSize,i=void 0===o?.5:o;qa(this,n),r=e.call(this,t,"UISize-Pointer-Plugin",{defaultValue:i,featureName:n.pointerSizeKey});for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:{}).defaultButtonSize,i=void 0===o?.5:o;qa(this,n),r=e.call(this,t,"UISize-Button-Plugin",{defaultValue:i,featureName:n.buttonSizeKey});for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:{}).defaultSensitivity,i=void 0===o?.5:o;qa(this,n),(r=e.call(this,t,"Control-Sensitivity-Plugin",{defaultValue:i,featureName:n.controlSensitivityKey})).sendAllProperties=r.sendAllProperties.bind(Qa(r));for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:{}).customClassName,i=void 0===o?"springrollContainerKeyBinding__button":o;return qa(this,n),(r=e.call(this,"Keyboard-Map-Plugin")).sendAllProperties=r.sendAllProperties.bind(Qa(r)),r.bindKey=r.bindKey.bind(Qa(r)),r.onKeyButtonClick=r.onKeyButtonClick.bind(Qa(r)),r.className=i,r.keyContainers=t instanceof HTMLElement?[t]:document.querySelectorAll(t),r.keyBindings={},r.buttons=[],r.activekeyButton,r.sendAfterFetch=!1,r.canEmit=!1,r.keyContainersLength=r.keyContainers.length,r.keyContainersLength<=0?(r.warn("plugin was not provided any valid key binding container elements"),Za(r)):r}return Xa(n,[{key:"onKeyButtonClick",value:function(t){for(var e=0,n=this.buttons.length;e1&&void 0!==arguments[1]?arguments[1]:{}).defaultValue,i=void 0===o?0:o;qa(this,n),r=e.call(this,t,"Layer-Plugin",{defaultValue:i,featureName:n.layersSliderKey});for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:{}).defaultValue,i=void 0===o?Ng[0]:o;qa(this,n),(r=e.call(this,t,"HUD-Layout-Plugin",{supportedValues:Ng,initialValue:i,controlName:"Hud Selector",featureName:n.hudPositionKey,radioCount:Ng.length})).sendAllProperties=r.sendAllProperties.bind(Qa(r)),r.sendAfterFetch=!1,r.canEmit=!1,r.positions=[],r.radioGroupsLength<=0&&r.warn("Plugin was not provided any valid HTML elements");for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:{}).defaultValue,i=void 0===o?Fg[0]:o;if(qa(this,n),(r=e.call(this,t,"Color-Filter-Plugin",{supportedValues:Fg,initialValue:i,controlName:"Color Vision Selector",featureName:n.colorVisionKey,radioCount:Fg.length})).sendAllProperties=r.sendAllProperties.bind(Qa(r)),r.sendAfterFetch=!1,r.canEmit=!1,r.colors=[],r.radioGroupsLength<=0)return r.warn("Plugin was not provided any valid HTML elements"),Za(r);for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:{}).defaultHitAreaScale,i=void 0===o?.5:o;qa(this,n),r=e.call(this,t,"Hit-Area-Scale-Plugin",{defaultValue:i,featureName:n.hitAreaScaleKey});for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:{}).defaultDragThresholdScale,i=void 0===o?.5:o;qa(this,n),r=e.call(this,t,"Drag-Threshold-Scale-Plugin",{defaultValue:i,featureName:n.dragThresholdScaleKey});for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:{}).defaultHealth,i=void 0===o?.5:o;qa(this,n),r=e.call(this,t,"Health-Scale-Plugin",{defaultValue:i,featureName:n.healthKey});for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:{}).defaultObjectCount,i=void 0===o?.5:o;qa(this,n),r=e.call(this,t,"Object-Count-Plugin",{defaultValue:i,featureName:n.objectCountKey});for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:{}).defaultCompletionPercentage,i=void 0===o?.5:o;qa(this,n),r=e.call(this,t,"Completion-Percentage-Plugin",{defaultValue:i,featureName:n.completionPercentageKey});for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:{}).defaultSpeedScale,i=void 0===o?.5:o;qa(this,n),r=e.call(this,t,"Speed-Scale-Plugin",{defaultValue:i,featureName:n.speedScaleKey});for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:{}).defaultTimersScale,i=void 0===o?.5:o;qa(this,n),r=e.call(this,t,"Timers-Scale-Plugin",{defaultValue:i,featureName:n.timersScaleKey});for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:{}).defaultInputCount,i=void 0===o?.5:o;qa(this,n),r=e.call(this,t,"Input-Count-Plugin",{defaultValue:i,featureName:n.inputCountKey});for(var s=0;s-1};function u(t){if("string"!=typeof t&&(t=String(t)),/[^a-z0-9\-#$%&'*+.^_`|~!]/i.test(t)||""===t)throw new TypeError('Invalid character in header field name: "'+t+'"');return t.toLowerCase()}function l(t){return"string"!=typeof t&&(t=String(t)),t}function c(t){var e={next:function(){var e=t.shift();return{done:void 0===e,value:e}}};return n&&(e[Symbol.iterator]=function(){return e}),e}function d(t){this.map={},t instanceof d?t.forEach((function(t,e){this.append(e,t)}),this):Array.isArray(t)?t.forEach((function(t){this.append(t[0],t[1])}),this):t&&Object.getOwnPropertyNames(t).forEach((function(e){this.append(e,t[e])}),this)}function h(t){if(t.bodyUsed)return Promise.reject(new TypeError("Already read"));t.bodyUsed=!0}function f(t){return new Promise((function(e,n){t.onload=function(){e(t.result)},t.onerror=function(){n(t.error)}}))}function p(t){var e=new FileReader,n=f(e);return e.readAsArrayBuffer(t),n}function v(t){if(t.slice)return t.slice(0);var e=new Uint8Array(t.byteLength);return e.set(new Uint8Array(t)),e.buffer}function y(){return this.bodyUsed=!1,this._initBody=function(t){var n;this.bodyUsed=this.bodyUsed,this._bodyInit=t,t?"string"==typeof t?this._bodyText=t:r&&Blob.prototype.isPrototypeOf(t)?this._bodyBlob=t:o&&FormData.prototype.isPrototypeOf(t)?this._bodyFormData=t:e&&URLSearchParams.prototype.isPrototypeOf(t)?this._bodyText=t.toString():i&&r&&((n=t)&&DataView.prototype.isPrototypeOf(n))?(this._bodyArrayBuffer=v(t.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):i&&(ArrayBuffer.prototype.isPrototypeOf(t)||a(t))?this._bodyArrayBuffer=v(t):this._bodyText=t=Object.prototype.toString.call(t):this._bodyText="",this.headers.get("content-type")||("string"==typeof t?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):e&&URLSearchParams.prototype.isPrototypeOf(t)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},r&&(this.blob=function(){var t=h(this);if(t)return t;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){if(this._bodyArrayBuffer){var t=h(this);return t||(ArrayBuffer.isView(this._bodyArrayBuffer)?Promise.resolve(this._bodyArrayBuffer.buffer.slice(this._bodyArrayBuffer.byteOffset,this._bodyArrayBuffer.byteOffset+this._bodyArrayBuffer.byteLength)):Promise.resolve(this._bodyArrayBuffer))}return this.blob().then(p)}),this.text=function(){var t=h(this);if(t)return t;if(this._bodyBlob)return function(t){var e=new FileReader,n=f(e);return e.readAsText(t),n}(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(function(t){for(var e=new Uint8Array(t),n=new Array(e.length),r=0;r-1?e:t}(e.method||this.method||"GET"),this.mode=e.mode||this.mode||null,this.signal=e.signal||this.signal,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&n)throw new TypeError("Body not allowed for GET or HEAD requests");if(this._initBody(n),!("GET"!==this.method&&"HEAD"!==this.method||"no-store"!==e.cache&&"no-cache"!==e.cache)){var r=/([?&])_=[^&]*/;if(r.test(this.url))this.url=this.url.replace(r,"$1_="+(new Date).getTime());else{this.url+=(/\?/.test(this.url)?"&":"?")+"_="+(new Date).getTime()}}}function b(t){var e=new FormData;return t.trim().split("&").forEach((function(t){if(t){var n=t.split("="),r=n.shift().replace(/\+/g," "),o=n.join("=").replace(/\+/g," ");e.append(decodeURIComponent(r),decodeURIComponent(o))}})),e}function S(t,e){if(!(this instanceof S))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');e||(e={}),this.type="default",this.status=void 0===e.status?200:e.status,this.ok=this.status>=200&&this.status<300,this.statusText=void 0===e.statusText?"":""+e.statusText,this.headers=new d(e.headers),this.url=e.url||"",this._initBody(t)}m.prototype.clone=function(){return new m(this,{body:this._bodyInit})},y.call(m.prototype),y.call(S.prototype),S.prototype.clone=function(){return new S(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new d(this.headers),url:this.url})},S.error=function(){var t=new S(null,{status:0,statusText:""});return t.type="error",t};var w=[301,302,303,307,308];S.redirect=function(t,e){if(-1===w.indexOf(e))throw new RangeError("Invalid status code");return new S(null,{status:e,headers:{location:t}})};var k=t.DOMException;try{new k}catch(t){(k=function(t,e){this.message=t,this.name=e;var n=Error(t);this.stack=n.stack}).prototype=Object.create(Error.prototype),k.prototype.constructor=k}function E(e,n){return new Promise((function(o,s){var a=new m(e,n);if(a.signal&&a.signal.aborted)return s(new k("Aborted","AbortError"));var u=new XMLHttpRequest;function c(){u.abort()}u.onload=function(){var t,e,n={status:u.status,statusText:u.statusText,headers:(t=u.getAllResponseHeaders()||"",e=new d,t.replace(/\r?\n[\t ]+/g," ").split("\r").map((function(t){return 0===t.indexOf("\n")?t.substr(1,t.length):t})).forEach((function(t){var n=t.split(":"),r=n.shift().trim();if(r){var o=n.join(":").trim();e.append(r,o)}})),e)};n.url="responseURL"in u?u.responseURL:n.headers.get("X-Request-URL");var r="response"in u?u.response:u.responseText;setTimeout((function(){o(new S(r,n))}),0)},u.onerror=function(){setTimeout((function(){s(new TypeError("Network request failed"))}),0)},u.ontimeout=function(){setTimeout((function(){s(new TypeError("Network request failed"))}),0)},u.onabort=function(){setTimeout((function(){s(new k("Aborted","AbortError"))}),0)},u.open(a.method,function(e){try{return""===e&&t.location.href?t.location.href:e}catch(t){return e}}(a.url),!0),"include"===a.credentials?u.withCredentials=!0:"omit"===a.credentials&&(u.withCredentials=!1),"responseType"in u&&(r?u.responseType="blob":i&&a.headers.get("Content-Type")&&-1!==a.headers.get("Content-Type").indexOf("application/octet-stream")&&(u.responseType="arraybuffer")),!n||"object"!=typeof n.headers||n.headers instanceof d?a.headers.forEach((function(t,e){u.setRequestHeader(e,t)})):Object.getOwnPropertyNames(n.headers).forEach((function(t){u.setRequestHeader(t,l(n.headers[t]))})),a.signal&&(a.signal.addEventListener("abort",c),u.onreadystatechange=function(){4===u.readyState&&a.signal.removeEventListener("abort",c)}),u.send(void 0===a._bodyInit?null:a._bodyInit)}))}E.polyfill=!0,t.fetch||(t.fetch=E,t.Headers=d,t.Request=m,t.Response=S);var B="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},x=function(t){return t&&t.Math==Math&&t},P=x("object"==typeof globalThis&&globalThis)||x("object"==typeof window&&window)||x("object"==typeof self&&self)||x("object"==typeof B&&B)||function(){return this}()||Function("return this")(),L={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0},_="object"==typeof document&&document.all,O={all:_,IS_HTMLDDA:void 0===_&&void 0!==_},A=O.all,V=O.IS_HTMLDDA?function(t){return"function"==typeof t||t===A}:function(t){return"function"==typeof t},C=V,D=O.all,M=O.IS_HTMLDDA?function(t){return"object"==typeof t?null!==t:C(t)||t===D}:function(t){return"object"==typeof t?null!==t:C(t)},T=M,I=P.document,R=T(I)&&T(I.createElement),j=function(t){return R?I.createElement(t):{}},N=j("span").classList,K=N&&N.constructor&&N.constructor.prototype,F=K===Object.prototype?void 0:K,G=function(t){try{return!!t()}catch(t){return!0}},U=!G((function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")})),H=U,z=Function.prototype,q=z.call,W=H&&z.bind.bind(q,q),X=H?W:function(t){return function(){return q.apply(t,arguments)}},Y=X,J=Y({}.toString),$=Y("".slice),Q=function(t){return $(J(t),8,-1)},Z=Q,tt=X,et=function(t){if("Function"===Z(t))return tt(t)},nt=String,rt=function(t){try{return nt(t)}catch(t){return"Object"}},ot=V,it=rt,st=TypeError,at=function(t){if(ot(t))return t;throw st(it(t)+" is not a function")},ut=at,lt=U,ct=et(et.bind),dt=function(t,e){return ut(t),void 0===e?t:lt?ct(t,e):function(){return t.apply(e,arguments)}},ht=G,ft=Q,pt=Object,vt=X("".split),yt=ht((function(){return!pt("z").propertyIsEnumerable(0)}))?function(t){return"String"==ft(t)?vt(t,""):pt(t)}:pt,gt=function(t){return null==t},mt=gt,bt=TypeError,St=function(t){if(mt(t))throw bt("Can't call method on "+t);return t},wt=St,kt=Object,Et=function(t){return kt(wt(t))},Bt=Math.ceil,xt=Math.floor,Pt=Math.trunc||function(t){var e=+t;return(e>0?xt:Bt)(e)},Lt=Pt,_t=function(t){var e=+t;return e!=e||0===e?0:Lt(e)},Ot=_t,At=Math.min,Vt=function(t){return t>0?At(Ot(t),9007199254740991):0},Ct=function(t){return Vt(t.length)},Dt=Q,Mt=Array.isArray||function(t){return"Array"==Dt(t)},Tt={exports:{}},It=P,Rt=Object.defineProperty,jt=function(t,e){try{Rt(It,t,{value:e,configurable:!0,writable:!0})}catch(n){It[t]=e}return e},Nt=jt,Kt="__core-js_shared__",Ft=P[Kt]||Nt(Kt,{}),Gt=Ft;(Tt.exports=function(t,e){return Gt[t]||(Gt[t]=void 0!==e?e:{})})("versions",[]).push({version:"3.28.0",mode:"global",copyright:"© 2014-2023 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.28.0/LICENSE",source:"https://github.com/zloirock/core-js"});var Ut,Ht,zt=Tt.exports,qt=Et,Wt=X({}.hasOwnProperty),Xt=Object.hasOwn||function(t,e){return Wt(qt(t),e)},Yt=X,Jt=0,$t=Math.random(),Qt=Yt(1..toString),Zt=function(t){return"Symbol("+(void 0===t?"":t)+")_"+Qt(++Jt+$t,36)},te="undefined"!=typeof navigator&&String(navigator.userAgent)||"",ee=P,ne=te,re=ee.process,oe=ee.Deno,ie=re&&re.versions||oe&&oe.version,se=ie&&ie.v8;se&&(Ht=(Ut=se.split("."))[0]>0&&Ut[0]<4?1:+(Ut[0]+Ut[1])),!Ht&&ne&&(!(Ut=ne.match(/Edge\/(\d+)/))||Ut[1]>=74)&&(Ut=ne.match(/Chrome\/(\d+)/))&&(Ht=+Ut[1]);var ae=Ht,ue=ae,le=G,ce=!!Object.getOwnPropertySymbols&&!le((function(){var t=Symbol();return!String(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&ue&&ue<41})),de=ce&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,he=zt,fe=Xt,pe=Zt,ve=ce,ye=de,ge=P.Symbol,me=he("wks"),be=ye?ge.for||ge:ge&&ge.withoutSetter||pe,Se=function(t){return fe(me,t)||(me[t]=ve&&fe(ge,t)?ge[t]:be("Symbol."+t)),me[t]},we={};we[Se("toStringTag")]="z";var ke="[object z]"===String(we),Ee=ke,Be=V,xe=Q,Pe=Se("toStringTag"),Le=Object,_e="Arguments"==xe(function(){return arguments}()),Oe=Ee?xe:function(t){var e,n,r;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(t){}}(e=Le(t),Pe))?n:_e?xe(e):"Object"==(r=xe(e))&&Be(e.callee)?"Arguments":r},Ae=P,Ve=V,Ce=function(t,e){return arguments.length<2?(n=Ae[t],Ve(n)?n:void 0):Ae[t]&&Ae[t][e];var n},De=V,Me=Ft,Te=X(Function.toString);De(Me.inspectSource)||(Me.inspectSource=function(t){return Te(t)});var Ie=Me.inspectSource,Re=X,je=G,Ne=V,Ke=Oe,Fe=Ie,Ge=function(){},Ue=[],He=Ce("Reflect","construct"),ze=/^\s*(?:class|function)\b/,qe=Re(ze.exec),We=!ze.exec(Ge),Xe=function(t){if(!Ne(t))return!1;try{return He(Ge,Ue,t),!0}catch(t){return!1}},Ye=function(t){if(!Ne(t))return!1;switch(Ke(t)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return We||!!qe(ze,Fe(t))}catch(t){return!0}};Ye.sham=!0;var Je=!He||je((function(){var t;return Xe(Xe.call)||!Xe(Object)||!Xe((function(){t=!0}))||t}))?Ye:Xe,$e=Mt,Qe=Je,Ze=M,tn=Se("species"),en=Array,nn=function(t){var e;return $e(t)&&(e=t.constructor,(Qe(e)&&(e===en||$e(e.prototype))||Ze(e)&&null===(e=e[tn]))&&(e=void 0)),void 0===e?en:e},rn=function(t,e){return new(nn(t))(0===e?0:e)},on=dt,sn=yt,an=Et,un=Ct,ln=rn,cn=X([].push),dn=function(t){var e=1==t,n=2==t,r=3==t,o=4==t,i=6==t,s=7==t,a=5==t||i;return function(u,l,c,d){for(var h,f,p=an(u),v=sn(p),y=on(l,c),g=un(v),m=0,b=d||ln,S=e?b(u,g):n||s?b(u,0):void 0;g>m;m++)if((a||m in v)&&(f=y(h=v[m],m,p),t))if(e)S[m]=f;else if(f)switch(t){case 3:return!0;case 5:return h;case 6:return m;case 2:cn(S,h)}else switch(t){case 4:return!1;case 7:cn(S,h)}return i?-1:r||o?o:S}},hn={forEach:dn(0),map:dn(1),filter:dn(2),some:dn(3),every:dn(4),find:dn(5),findIndex:dn(6),filterReject:dn(7)},fn=G,pn=function(t,e){var n=[][t];return!!n&&fn((function(){n.call(null,e||function(){return 1},1)}))},vn=hn.forEach,yn=pn("forEach")?[].forEach:function(t){return vn(this,t,arguments.length>1?arguments[1]:void 0)},gn=!G((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),mn={},bn=j,Sn=!gn&&!G((function(){return 7!=Object.defineProperty(bn("div"),"a",{get:function(){return 7}}).a})),wn=gn&&G((function(){return 42!=Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype})),kn=M,En=String,Bn=TypeError,xn=function(t){if(kn(t))return t;throw Bn(En(t)+" is not an object")},Pn=U,Ln=Function.prototype.call,_n=Pn?Ln.bind(Ln):function(){return Ln.apply(Ln,arguments)},On=X({}.isPrototypeOf),An=Ce,Vn=V,Cn=On,Dn=Object,Mn=de?function(t){return"symbol"==typeof t}:function(t){var e=An("Symbol");return Vn(e)&&Cn(e.prototype,Dn(t))},Tn=at,In=gt,Rn=function(t,e){var n=t[e];return In(n)?void 0:Tn(n)},jn=_n,Nn=V,Kn=M,Fn=TypeError,Gn=_n,Un=M,Hn=Mn,zn=Rn,qn=function(t,e){var n,r;if("string"===e&&Nn(n=t.toString)&&!Kn(r=jn(n,t)))return r;if(Nn(n=t.valueOf)&&!Kn(r=jn(n,t)))return r;if("string"!==e&&Nn(n=t.toString)&&!Kn(r=jn(n,t)))return r;throw Fn("Can't convert object to primitive value")},Wn=TypeError,Xn=Se("toPrimitive"),Yn=function(t,e){if(!Un(t)||Hn(t))return t;var n,r=zn(t,Xn);if(r){if(void 0===e&&(e="default"),n=Gn(r,t,e),!Un(n)||Hn(n))return n;throw Wn("Can't convert object to primitive value")}return void 0===e&&(e="number"),qn(t,e)},Jn=Yn,$n=Mn,Qn=function(t){var e=Jn(t,"string");return $n(e)?e:e+""},Zn=gn,tr=Sn,er=wn,nr=xn,rr=Qn,or=TypeError,ir=Object.defineProperty,sr=Object.getOwnPropertyDescriptor,ar="enumerable",ur="configurable",lr="writable";mn.f=Zn?er?function(t,e,n){if(nr(t),e=rr(e),nr(n),"function"==typeof t&&"prototype"===e&&"value"in n&&lr in n&&!n[lr]){var r=sr(t,e);r&&r[lr]&&(t[e]=n.value,n={configurable:ur in n?n[ur]:r[ur],enumerable:ar in n?n[ar]:r[ar],writable:!1})}return ir(t,e,n)}:ir:function(t,e,n){if(nr(t),e=rr(e),nr(n),tr)try{return ir(t,e,n)}catch(t){}if("get"in n||"set"in n)throw or("Accessors not supported");return"value"in n&&(t[e]=n.value),t};var cr=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}},dr=mn,hr=cr,fr=gn?function(t,e,n){return dr.f(t,e,hr(1,n))}:function(t,e,n){return t[e]=n,t},pr=P,vr=L,yr=F,gr=yn,mr=fr,br=function(t){if(t&&t.forEach!==gr)try{mr(t,"forEach",gr)}catch(e){t.forEach=gr}};for(var Sr in vr)vr[Sr]&&br(pr[Sr]&&pr[Sr].prototype);br(yr);var wr=yt,kr=St,Er=function(t){return wr(kr(t))},Br={},xr=_t,Pr=Math.max,Lr=Math.min,_r=function(t,e){var n=xr(t);return n<0?Pr(n+e,0):Lr(n,e)},Or=Er,Ar=_r,Vr=Ct,Cr=function(t){return function(e,n,r){var o,i=Or(e),s=Vr(i),a=Ar(r,s);if(t&&n!=n){for(;s>a;)if((o=i[a++])!=o)return!0}else for(;s>a;a++)if((t||a in i)&&i[a]===n)return t||a||0;return!t&&-1}},Dr={includes:Cr(!0),indexOf:Cr(!1)},Mr={},Tr=Xt,Ir=Er,Rr=Dr.indexOf,jr=Mr,Nr=X([].push),Kr=function(t,e){var n,r=Ir(t),o=0,i=[];for(n in r)!Tr(jr,n)&&Tr(r,n)&&Nr(i,n);for(;e.length>o;)Tr(r,n=e[o++])&&(~Rr(i,n)||Nr(i,n));return i},Fr=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],Gr=Kr,Ur=Fr,Hr=Object.keys||function(t){return Gr(t,Ur)},zr=gn,qr=wn,Wr=mn,Xr=xn,Yr=Er,Jr=Hr;Br.f=zr&&!qr?Object.defineProperties:function(t,e){Xr(t);for(var n,r=Yr(e),o=Jr(e),i=o.length,s=0;i>s;)Wr.f(t,n=o[s++],r[n]);return t};var $r,Qr=Ce("document","documentElement"),Zr=Zt,to=zt("keys"),eo=function(t){return to[t]||(to[t]=Zr(t))},no=xn,ro=Br,oo=Fr,io=Mr,so=Qr,ao=j,uo="prototype",lo="script",co=eo("IE_PROTO"),ho=function(){},fo=function(t){return"<"+lo+">"+t+""},po=function(t){t.write(fo("")),t.close();var e=t.parentWindow.Object;return t=null,e},vo=function(){try{$r=new ActiveXObject("htmlfile")}catch(t){}var t,e,n;vo="undefined"!=typeof document?document.domain&&$r?po($r):(e=ao("iframe"),n="java"+lo+":",e.style.display="none",so.appendChild(e),e.src=String(n),(t=e.contentWindow.document).open(),t.write(fo("document.F=Object")),t.close(),t.F):po($r);for(var r=oo.length;r--;)delete vo[uo][oo[r]];return vo()};io[co]=!0;var yo=Object.create||function(t,e){var n;return null!==t?(ho[uo]=no(t),n=new ho,ho[uo]=null,n[co]=t):n=vo(),void 0===e?n:ro.f(n,e)},go=Se,mo=yo,bo=mn.f,So=go("unscopables"),wo=Array.prototype;null==wo[So]&&bo(wo,So,{configurable:!0,value:mo(null)});var ko,Eo,Bo,xo=function(t){wo[So][t]=!0},Po={},Lo=V,_o=P.WeakMap,Oo=Lo(_o)&&/native code/.test(String(_o)),Ao=P,Vo=M,Co=fr,Do=Xt,Mo=Ft,To=eo,Io=Mr,Ro="Object already initialized",jo=Ao.TypeError,No=Ao.WeakMap;if(Oo||Mo.state){var Ko=Mo.state||(Mo.state=new No);Ko.get=Ko.get,Ko.has=Ko.has,Ko.set=Ko.set,ko=function(t,e){if(Ko.has(t))throw jo(Ro);return e.facade=t,Ko.set(t,e),e},Eo=function(t){return Ko.get(t)||{}},Bo=function(t){return Ko.has(t)}}else{var Fo=To("state");Io[Fo]=!0,ko=function(t,e){if(Do(t,Fo))throw jo(Ro);return e.facade=t,Co(t,Fo,e),e},Eo=function(t){return Do(t,Fo)?t[Fo]:{}},Bo=function(t){return Do(t,Fo)}}var Go={set:ko,get:Eo,has:Bo,enforce:function(t){return Bo(t)?Eo(t):ko(t,{})},getterFor:function(t){return function(e){var n;if(!Vo(e)||(n=Eo(e)).type!==t)throw jo("Incompatible receiver, "+t+" required");return n}}},Uo={},Ho={},zo={}.propertyIsEnumerable,qo=Object.getOwnPropertyDescriptor,Wo=qo&&!zo.call({1:2},1);Ho.f=Wo?function(t){var e=qo(this,t);return!!e&&e.enumerable}:zo;var Xo=gn,Yo=_n,Jo=Ho,$o=cr,Qo=Er,Zo=Qn,ti=Xt,ei=Sn,ni=Object.getOwnPropertyDescriptor;Uo.f=Xo?ni:function(t,e){if(t=Qo(t),e=Zo(e),ei)try{return ni(t,e)}catch(t){}if(ti(t,e))return $o(!Yo(Jo.f,t,e),t[e])};var ri={exports:{}},oi=gn,ii=Xt,si=Function.prototype,ai=oi&&Object.getOwnPropertyDescriptor,ui=ii(si,"name"),li={EXISTS:ui,PROPER:ui&&"something"===function(){}.name,CONFIGURABLE:ui&&(!oi||oi&&ai(si,"name").configurable)},ci=X,di=G,hi=V,fi=Xt,pi=gn,vi=li.CONFIGURABLE,yi=Ie,gi=Go.enforce,mi=Go.get,bi=String,Si=Object.defineProperty,wi=ci("".slice),ki=ci("".replace),Ei=ci([].join),Bi=pi&&!di((function(){return 8!==Si((function(){}),"length",{value:8}).length})),xi=String(String).split("String"),Pi=ri.exports=function(t,e,n){"Symbol("===wi(bi(e),0,7)&&(e="["+ki(bi(e),/^Symbol\(([^)]*)\)/,"$1")+"]"),n&&n.getter&&(e="get "+e),n&&n.setter&&(e="set "+e),(!fi(t,"name")||vi&&t.name!==e)&&(pi?Si(t,"name",{value:e,configurable:!0}):t.name=e),Bi&&n&&fi(n,"arity")&&t.length!==n.arity&&Si(t,"length",{value:n.arity});try{n&&fi(n,"constructor")&&n.constructor?pi&&Si(t,"prototype",{writable:!1}):t.prototype&&(t.prototype=void 0)}catch(t){}var r=gi(t);return fi(r,"source")||(r.source=Ei(xi,"string"==typeof e?e:"")),t};Function.prototype.toString=Pi((function(){return hi(this)&&mi(this).source||yi(this)}),"toString");var Li=ri.exports,_i=V,Oi=mn,Ai=Li,Vi=jt,Ci=function(t,e,n,r){r||(r={});var o=r.enumerable,i=void 0!==r.name?r.name:e;if(_i(n)&&Ai(n,i,r),r.global)o?t[e]=n:Vi(e,n);else{try{r.unsafe?t[e]&&(o=!0):delete t[e]}catch(t){}o?t[e]=n:Oi.f(t,e,{value:n,enumerable:!1,configurable:!r.nonConfigurable,writable:!r.nonWritable})}return t},Di={},Mi=Kr,Ti=Fr.concat("length","prototype");Di.f=Object.getOwnPropertyNames||function(t){return Mi(t,Ti)};var Ii={};Ii.f=Object.getOwnPropertySymbols;var Ri,ji,Ni,Ki=Ce,Fi=Di,Gi=Ii,Ui=xn,Hi=X([].concat),zi=Ki("Reflect","ownKeys")||function(t){var e=Fi.f(Ui(t)),n=Gi.f;return n?Hi(e,n(t)):e},qi=Xt,Wi=zi,Xi=Uo,Yi=mn,Ji=G,$i=V,Qi=/#|\.prototype\./,Zi=function(t,e){var n=es[ts(t)];return n==rs||n!=ns&&($i(e)?Ji(e):!!e)},ts=Zi.normalize=function(t){return String(t).replace(Qi,".").toLowerCase()},es=Zi.data={},ns=Zi.NATIVE="N",rs=Zi.POLYFILL="P",os=Zi,is=P,ss=Uo.f,as=fr,us=Ci,ls=jt,cs=function(t,e,n){for(var r=Wi(e),o=Yi.f,i=Xi.f,s=0;s=e.length?(t.target=void 0,Ea(void 0,!0)):Ea("keys"==n?r:"values"==n?e[r]:[r,e[r]],!1)}),"values"),Oa=ba.Arguments=ba.Array;if(ma("keys"),ma("values"),ma("entries"),Ba&&"values"!==Oa.name)try{wa(Oa,"name",{value:"values"})}catch(t){}var Aa=P,Va=L,Ca=F,Da=_a,Ma=fr,Ta=Se,Ia=Ta("iterator"),Ra=Ta("toStringTag"),ja=Da.values,Na=function(t,e){if(t){if(t[Ia]!==ja)try{Ma(t,Ia,ja)}catch(e){t[Ia]=ja}if(t[Ra]||Ma(t,Ra,e),Va[e])for(var n in Da)if(t[n]!==Da[n])try{Ma(t,n,Da[n])}catch(e){t[n]=Da[n]}}};for(var Ka in Va)Na(Aa[Ka]&&Aa[Ka].prototype,Ka);Na(Ca,"DOMTokenList");var Fa=P;function Ga(){Ga=function(){return t};var t={},e=Object.prototype,n=e.hasOwnProperty,r=Object.defineProperty||function(t,e,n){t[e]=n.value},o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",s=o.asyncIterator||"@@asyncIterator",a=o.toStringTag||"@@toStringTag";function u(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{u({},"")}catch(t){u=function(t,e,n){return t[e]=n}}function l(t,e,n,o){var i=e&&e.prototype instanceof h?e:h,s=Object.create(i.prototype),a=new x(o||[]);return r(s,"_invoke",{value:w(t,n,a)}),s}function c(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}t.wrap=l;var d={};function h(){}function f(){}function p(){}var v={};u(v,i,(function(){return this}));var y=Object.getPrototypeOf,g=y&&y(y(P([])));g&&g!==e&&n.call(g,i)&&(v=g);var m=p.prototype=h.prototype=Object.create(v);function b(t){["next","throw","return"].forEach((function(e){u(t,e,(function(t){return this._invoke(e,t)}))}))}function S(t,e){function o(r,i,s,a){var u=c(t[r],t,i);if("throw"!==u.type){var l=u.arg,d=l.value;return d&&"object"==typeof d&&n.call(d,"__await")?e.resolve(d.__await).then((function(t){o("next",t,s,a)}),(function(t){o("throw",t,s,a)})):e.resolve(d).then((function(t){l.value=t,s(l)}),(function(t){return o("throw",t,s,a)}))}a(u.arg)}var i;r(this,"_invoke",{value:function(t,n){function r(){return new e((function(e,r){o(t,n,e,r)}))}return i=i?i.then(r,r):r()}})}function w(t,e,n){var r="suspendedStart";return function(o,i){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===o)throw i;return L()}for(n.method=o,n.arg=i;;){var s=n.delegate;if(s){var a=k(s,n);if(a){if(a===d)continue;return a}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var u=c(t,e,n);if("normal"===u.type){if(r=n.done?"completed":"suspendedYield",u.arg===d)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(r="completed",n.method="throw",n.arg=u.arg)}}}function k(t,e){var n=e.method,r=t.iterator[n];if(void 0===r)return e.delegate=null,"throw"===n&&t.iterator.return&&(e.method="return",e.arg=void 0,k(t,e),"throw"===e.method)||"return"!==n&&(e.method="throw",e.arg=new TypeError("The iterator does not provide a '"+n+"' method")),d;var o=c(r,t.iterator,e.arg);if("throw"===o.type)return e.method="throw",e.arg=o.arg,e.delegate=null,d;var i=o.arg;return i?i.done?(e[t.resultName]=i.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,d):i:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,d)}function E(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function B(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function x(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(E,this),this.reset(!0)}function P(t){if(t){var e=t[i];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,o=function e(){for(;++r=0;--o){var i=this.tryEntries[o],s=i.completion;if("root"===i.tryLoc)return r("end");if(i.tryLoc<=this.prev){var a=n.call(i,"catchLoc"),u=n.call(i,"finallyLoc");if(a&&u){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),B(n),d}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var o=r.arg;B(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,n){return this.delegate={iterator:P(t),resultName:e,nextLoc:n},"next"===this.method&&(this.arg=void 0),d}},t}function Ua(t){return Ua="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ua(t)}function Ha(t,e,n,r,o,i,s){try{var a=t[i](s),u=a.value}catch(t){return void n(t)}a.done?e(u):Promise.resolve(u).then(r,o)}function za(t){return function(){var e=this,n=arguments;return new Promise((function(r,o){var i=t.apply(e,n);function s(t){Ha(i,r,o,s,a,"next",t)}function a(t){Ha(i,r,o,s,a,"throw",t)}s(void 0)}))}}function qa(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function Wa(t,e){for(var n=0;nt.length)&&(e=t.length);for(var n=0,r=new Array(e);n=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,a=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return s=t.done,t},e:function(t){a=!0,i=t},f:function(){try{s||null==n.return||n.return()}finally{if(a)throw i}}}}var iu=hs,su=Dr.indexOf,au=pn,uu=et([].indexOf),lu=!!uu&&1/uu([1],1,-0)<0;iu({target:"Array",proto:!0,forced:lu||!au("indexOf")},{indexOf:function(t){var e=arguments.length>1?arguments[1]:void 0;return lu?uu(this,t,e)||0:su(this,t,e)}});var cu=TypeError,du=Qn,hu=mn,fu=cr,pu=function(t,e,n){var r=du(e);r in t?hu.f(t,r,fu(0,n)):t[r]=n},vu=G,yu=ae,gu=Se("species"),mu=function(t){return yu>=51||!vu((function(){var e=[];return(e.constructor={})[gu]=function(){return{foo:1}},1!==e[t](Boolean).foo}))},bu=hs,Su=G,wu=Mt,ku=M,Eu=Et,Bu=Ct,xu=function(t){if(t>9007199254740991)throw cu("Maximum allowed index exceeded");return t},Pu=pu,Lu=rn,_u=mu,Ou=ae,Au=Se("isConcatSpreadable"),Vu=Ou>=51||!Su((function(){var t=[];return t[Au]=!1,t.concat()[0]!==t})),Cu=function(t){if(!ku(t))return!1;var e=t[Au];return void 0!==e?!!e:wu(t)};bu({target:"Array",proto:!0,arity:1,forced:!Vu||!_u("concat")},{concat:function(t){var e,n,r,o,i,s=Eu(this),a=Lu(s,0),u=0;for(e=-1,r=arguments.length;eo;)for(var a,u=Fu(arguments[o++]),l=i?Hu(Ru(u),i(u)):Ru(u),c=l.length,d=0;c>d;)a=l[d++],Du&&!Tu(s,u,a)||(n[a]=u[a]);return n}:Gu,qu=zu;hs({target:"Object",stat:!0,arity:2,forced:Object.assign!==qu},{assign:qu});var Wu=Oe,Xu=ke?{}.toString:function(){return"[object "+Wu(this)+"]"};ke||Ci(Object.prototype,"toString",Xu,{unsafe:!0});var Yu,Ju,$u,Qu,Zu="undefined"!=typeof process&&"process"==Q(process),tl=Li,el=mn,nl=function(t,e,n){return n.get&&tl(n.get,e,{getter:!0}),n.set&&tl(n.set,e,{setter:!0}),el.f(t,e,n)},rl=Ce,ol=nl,il=gn,sl=Se("species"),al=function(t){var e=rl(t);il&&e&&!e[sl]&&ol(e,sl,{configurable:!0,get:function(){return this}})},ul=On,ll=TypeError,cl=function(t,e){if(ul(e,t))return t;throw ll("Incorrect invocation")},dl=Je,hl=rt,fl=TypeError,pl=xn,vl=function(t){if(dl(t))return t;throw fl(hl(t)+" is not a constructor")},yl=gt,gl=Se("species"),ml=U,bl=Function.prototype,Sl=bl.apply,wl=bl.call,kl="object"==typeof Reflect&&Reflect.apply||(ml?wl.bind(Sl):function(){return wl.apply(Sl,arguments)}),El=X([].slice),Bl=TypeError,xl=/(?:ipad|iphone|ipod).*applewebkit/i.test(te),Pl=P,Ll=kl,_l=dt,Ol=V,Al=Xt,Vl=G,Cl=Qr,Dl=El,Ml=j,Tl=function(t,e){if(ti;i++)if((a=g(t[i]))&&ph(Sh,a))return a;return new bh(!1)}r=vh(t,o)}for(u=h?t.next:r.next;!(l=lh(u,r)).done;){try{a=g(l.value)}catch(t){gh(r,"throw",t)}if("object"==typeof a&&a&&ph(Sh,a))return a}return new bh(!1)},kh=Se("iterator"),Eh=!1;try{var Bh=0,xh={next:function(){return{done:!!Bh++}},return:function(){Eh=!0}};xh[kh]=function(){return this},Array.from(xh,(function(){throw 2}))}catch(t){}var Ph=function(t,e){if(!e&&!Eh)return!1;var n=!1;try{var r={};r[kh]=function(){return{next:function(){return{done:n=!0}}}},t(r)}catch(t){}return n},Lh=Lc,_h=Uc.CONSTRUCTOR||!Ph((function(t){Lh.all(t).then(void 0,(function(){}))})),Oh=_n,Ah=at,Vh=Hc,Ch=Pc,Dh=wh;hs({target:"Promise",stat:!0,forced:_h},{all:function(t){var e=this,n=Vh.f(e),r=n.resolve,o=n.reject,i=Ch((function(){var n=Ah(e.resolve),i=[],s=0,a=1;Dh(t,(function(t){var u=s++,l=!1;a++,Oh(n,e,t).then((function(t){l||(l=!0,i[u]=t,--a||r(i))}),o)})),--a||r(i)}));return i.error&&o(i.value),n.promise}});var Mh=hs,Th=Uc.CONSTRUCTOR,Ih=Lc,Rh=Ce,jh=V,Nh=Ci,Kh=Ih&&Ih.prototype;if(Mh({target:"Promise",proto:!0,forced:Th,real:!0},{catch:function(t){return this.then(void 0,t)}}),jh(Ih)){var Fh=Rh("Promise").prototype.catch;Kh.catch!==Fh&&Nh(Kh,"catch",Fh,{unsafe:!0})}var Gh=_n,Uh=at,Hh=Hc,zh=Pc,qh=wh;hs({target:"Promise",stat:!0,forced:_h},{race:function(t){var e=this,n=Hh.f(e),r=n.reject,o=zh((function(){var o=Uh(e.resolve);qh(t,(function(t){Gh(o,e,t).then(n.resolve,r)}))}));return o.error&&r(o.value),n.promise}});var Wh=_n,Xh=Hc;hs({target:"Promise",stat:!0,forced:Uc.CONSTRUCTOR},{reject:function(t){var e=Xh.f(this);return Wh(e.reject,void 0,t),e.promise}});var Yh=xn,Jh=M,$h=Hc,Qh=hs,Zh=Uc.CONSTRUCTOR,tf=function(t,e){if(Yh(t),Jh(e)&&e.constructor===t)return e;var n=$h.f(t);return(0,n.resolve)(e),n.promise};Ce("Promise"),Qh({target:"Promise",stat:!0,forced:Zh},{resolve:function(t){return tf(this,t)}});var ef,nf,rf=Oe,of=String,sf=function(t){if("Symbol"===rf(t))throw TypeError("Cannot convert a Symbol value to a string");return of(t)},af=xn,uf=function(){var t=af(this),e="";return t.hasIndices&&(e+="d"),t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.dotAll&&(e+="s"),t.unicode&&(e+="u"),t.unicodeSets&&(e+="v"),t.sticky&&(e+="y"),e},lf=G,cf=P.RegExp,df=lf((function(){var t=cf("a","y");return t.lastIndex=2,null!=t.exec("abcd")})),hf=df||lf((function(){return!cf("a","y").sticky})),ff={BROKEN_CARET:df||lf((function(){var t=cf("^r","gy");return t.lastIndex=2,null!=t.exec("str")})),MISSED_STICKY:hf,UNSUPPORTED_Y:df},pf=G,vf=P.RegExp,yf=pf((function(){var t=vf(".","s");return!(t.dotAll&&t.exec("\n")&&"s"===t.flags)})),gf=G,mf=P.RegExp,bf=gf((function(){var t=mf("(?b)","g");return"b"!==t.exec("b").groups.a||"bc"!=="b".replace(t,"$c")})),Sf=_n,wf=X,kf=sf,Ef=uf,Bf=ff,xf=yo,Pf=Go.get,Lf=yf,_f=bf,Of=zt("native-string-replace",String.prototype.replace),Af=RegExp.prototype.exec,Vf=Af,Cf=wf("".charAt),Df=wf("".indexOf),Mf=wf("".replace),Tf=wf("".slice),If=(nf=/b*/g,Sf(Af,ef=/a/,"a"),Sf(Af,nf,"a"),0!==ef.lastIndex||0!==nf.lastIndex),Rf=Bf.BROKEN_CARET,jf=void 0!==/()??/.exec("")[1];(If||jf||Rf||Lf||_f)&&(Vf=function(t){var e,n,r,o,i,s,a,u=this,l=Pf(u),c=kf(t),d=l.raw;if(d)return d.lastIndex=u.lastIndex,e=Sf(Vf,d,c),u.lastIndex=d.lastIndex,e;var h=l.groups,f=Rf&&u.sticky,p=Sf(Ef,u),v=u.source,y=0,g=c;if(f&&(p=Mf(p,"y",""),-1===Df(p,"g")&&(p+="g"),g=Tf(c,u.lastIndex),u.lastIndex>0&&(!u.multiline||u.multiline&&"\n"!==Cf(c,u.lastIndex-1))&&(v="(?: "+v+")",g=" "+g,y++),n=new RegExp("^(?:"+v+")",p)),jf&&(n=new RegExp("^"+v+"$(?!\\s)",p)),If&&(r=u.lastIndex),o=Sf(Af,f?n:u,g),f?o?(o.input=Tf(o.input,y),o[0]=Tf(o[0],y),o.index=u.lastIndex,u.lastIndex+=o[0].length):u.lastIndex=0:If&&o&&(u.lastIndex=u.global?o.index+o[0].length:r),jf&&o&&o.length>1&&Sf(Of,o[0],n,(function(){for(i=1;i0||navigator.pointerEnabled&&navigator.maxTouchPoints>0)}},{key:"basic",value:function(){return t.canvas?t.webaudio||t.htmlAudio?null:"Browser does not support WebAudio or HTMLAudio":"Browser does not support canvas"}},{key:"test",value:function(e){var n=this.basic();if(n)return n;var r=e.features,o=e.ui,i=e.sizes;for(var s in r)if(!0===r[s]&&!t[s])return"Browser does not support "+s;if(!o.touch&&t.touch)return"Game does not support touch input";var a=Math.max(window.screen.width,window.screen.height);return!i.xsmall&&a<480?"Game doesn't support extra small screens":!i.small&&a<768?"Game doesn't support small screens":!i.medium&&a<992?"Game doesn't support medium screens":!i.large&&a<1200?"Game doesn't support large screens":!i.xlarge&&a>=1200?"Game doesn't support extra large screens":null}},{key:"info",get:function(){return"Browser Feature Detection\n\t\t\t\tCanvas support ".concat(t.canvas?"✓":"×","\n\t\t\t\tWebGL support ").concat(t.webgl?"✓":"×","\n\t\t\t\tWebAudio support ").concat(t.webAudio?"✓":"×")}}]),t}(),Kf=X,Ff=_t,Gf=sf,Uf=St,Hf=Kf("".charAt),zf=Kf("".charCodeAt),qf=Kf("".slice),Wf=function(t){return function(e,n){var r,o,i=Gf(Uf(e)),s=Ff(n),a=i.length;return s<0||s>=a?t?"":void 0:(r=zf(i,s))<55296||r>56319||s+1===a||(o=zf(i,s+1))<56320||o>57343?t?Hf(i,s):r:t?qf(i,s,s+2):o-56320+(r-55296<<10)+65536}},Xf={codeAt:Wf(!1),charAt:Wf(!0)}.charAt,Yf=sf,Jf=Go,$f=va,Qf=ya,Zf="String Iterator",tp=Jf.set,ep=Jf.getterFor(Zf);$f(String,"String",(function(t){tp(this,{type:Zf,string:Yf(t),index:0})}),(function(){var t,e=ep(this),n=e.string,r=e.index;return r>=n.length?Qf(void 0,!0):(t=Xf(n,r),e.index+=t.length,Qf(t,!1))}));var np=hn.filter;hs({target:"Array",proto:!0,forced:!mu("filter")},{filter:function(t){return np(this,t,arguments.length>1?arguments[1]:void 0)}});var rp=hs,op=hn.find,ip=xo,sp="find",ap=!0;function up(t,e){return t(e={exports:{}},e.exports),e.exports}sp in[]&&Array(1)[sp]((function(){ap=!1})),rp({target:"Array",proto:!0,forced:ap},{find:function(t){return op(this,t,arguments.length>1?arguments[1]:void 0)}}),ip(sp);var lp=up((function(t){function e(t){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function n(r){return"function"==typeof Symbol&&"symbol"===e(Symbol.iterator)?t.exports=n=function(t){return e(t)}:t.exports=n=function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":e(t)},n(r)}t.exports=n})),cp=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")};function dp(t,e){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:0;this._listeners[t]||(this._listeners[t]=[]),e._priority=parseInt(n)||0,-1===this._listeners[t].indexOf(e)&&(this._listeners[t].push(e),this._listeners[t].length>1&&this._listeners[t].sort(this.listenerSorter))}},{key:"listenerSorter",value:function(t,e){return t._priority-e._priority}},{key:"off",value:function(t,e){if(void 0!==this._listeners[t])if(void 0!==e){var n=this._listeners[t].indexOf(e);-11&&void 0!==arguments[1]?arguments[1]:{};if("string"==typeof t&&(t={type:t,data:"object"===lp(e)&&null!==e?e:{}}),void 0!==this._listeners[t.type])for(var n=this._listeners[t.type].length-1;n>=0;n--)this._listeners[t.type][n](t)}},{key:"destroy",value:function(){this._listeners={}}}]),t}(),pp=up((function(t){var e=function(t){var e,n=Object.prototype,r=n.hasOwnProperty,o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",s=o.asyncIterator||"@@asyncIterator",a=o.toStringTag||"@@toStringTag";function u(t,e,n,r){var o=e&&e.prototype instanceof v?e:v,i=Object.create(o.prototype),s=new L(r||[]);return i._invoke=function(t,e,n){var r=c;return function(o,i){if(r===h)throw new Error("Generator is already running");if(r===f){if("throw"===o)throw i;return O()}for(n.method=o,n.arg=i;;){var s=n.delegate;if(s){var a=B(s,n);if(a){if(a===p)continue;return a}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(r===c)throw r=f,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r=h;var u=l(t,e,n);if("normal"===u.type){if(r=n.done?f:d,u.arg===p)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(r=f,n.method="throw",n.arg=u.arg)}}}(t,n,s),i}function l(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}t.wrap=u;var c="suspendedStart",d="suspendedYield",h="executing",f="completed",p={};function v(){}function y(){}function g(){}var m={};m[i]=function(){return this};var b=Object.getPrototypeOf,S=b&&b(b(_([])));S&&S!==n&&r.call(S,i)&&(m=S);var w=g.prototype=v.prototype=Object.create(m);function k(t){["next","throw","return"].forEach((function(e){t[e]=function(t){return this._invoke(e,t)}}))}function E(t){function e(n,o,i,s){var a=l(t[n],t,o);if("throw"!==a.type){var u=a.arg,c=u.value;return c&&"object"==typeof c&&r.call(c,"__await")?Promise.resolve(c.__await).then((function(t){e("next",t,i,s)}),(function(t){e("throw",t,i,s)})):Promise.resolve(c).then((function(t){u.value=t,i(u)}),(function(t){return e("throw",t,i,s)}))}s(a.arg)}var n;this._invoke=function(t,r){function o(){return new Promise((function(n,o){e(t,r,n,o)}))}return n=n?n.then(o,o):o()}}function B(t,n){var r=t.iterator[n.method];if(r===e){if(n.delegate=null,"throw"===n.method){if(t.iterator.return&&(n.method="return",n.arg=e,B(t,n),"throw"===n.method))return p;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return p}var o=l(r,t.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,p;var i=o.arg;return i?i.done?(n[t.resultName]=i.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,p):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,p)}function x(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function P(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function L(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(x,this),this.reset(!0)}function _(t){if(t){var n=t[i];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,s=function n(){for(;++o=0;--i){var s=this.tryEntries[i],a=s.completion;if("root"===s.tryLoc)return o("end");if(s.tryLoc<=this.prev){var u=r.call(s,"catchLoc"),l=r.call(s,"finallyLoc");if(u&&l){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),P(n),p}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var o=r.arg;P(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:_(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),p}},t}(t.exports);try{regeneratorRuntime=e}catch(t){Function("r","regeneratorRuntime = r")(e)}})),vp=function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t},yp=function(t,e){return!e||"object"!==lp(e)&&"function"!=typeof e?vp(t):e},gp=up((function(t){function e(n){return t.exports=e=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},e(n)}t.exports=e})),mp=up((function(t){function e(n,r,o){return"undefined"!=typeof Reflect&&Reflect.get?t.exports=e=Reflect.get:t.exports=e=function(t,e,n){var r=function(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==(t=gp(t)););return t}(t,e);if(r){var o=Object.getOwnPropertyDescriptor(r,e);return o.get?o.get.call(n):o.value}},e(n,r,o||n)}t.exports=e})),bp=up((function(t){function e(n,r){return t.exports=e=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},e(n,r)}t.exports=e})),Sp=function(t){function e(){var t,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:100*Math.random()|0;return cp(this,e),(t=yp(this,gp(e).call(this))).id="BELLHOP:".concat(n),t.connected=!1,t.isChild=!0,t.connecting=!1,t.debug=!1,t.origin="*",t._sendLater=[],t.iframe=null,t.receive=t.receive.bind(vp(t)),t}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&bp(t,e)}(e,fp),hp(e,[{key:"receive",value:function(t){if(this.target===t.source)if(this.logDebugMessage(!0,t),"connected"===t.data)this.onConnectionReceived(t.data);else{var e=t.data;if("string"==typeof e)try{e=JSON.parse(e)}catch(t){console.warn("Bellhop error: ",t)}this.connected&&"object"===lp(e)&&e.type&&this.trigger(e)}}},{key:"onConnectionReceived",value:function(t){if(this.connecting=!1,this.connected=!0,!this.isChild){if(!this.target)return;this.target.postMessage(t,this.origin)}for(var e=0;e1&&void 0!==arguments[1]?arguments[1]:"*";this.connecting||(this.disconnect(),this.connecting=!0,t instanceof HTMLIFrameElement&&(this.iframe=t),this.isChild=void 0===t,this.supported=!0,this.isChild&&(this.supported=window!=t),this.origin=e,window.addEventListener("message",this.receive),this.isChild&&(window===this.target?this.trigger("failed"):this.target.postMessage("connected",this.origin)))}},{key:"disconnect",value:function(){this.connected=!1,this.connecting=!1,this.origin=null,this.iframe=null,this.isChild=!0,this._sendLater.length=0,window.removeEventListener("message",this.receive)}},{key:"send",value:function(t){if("string"!=typeof t)throw"The event type must be a string";var e={type:t,data:arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}};this.logDebugMessage(!1,e),this.connecting?this._sendLater.push(e):this.target.postMessage(JSON.stringify(e),this.origin)}},{key:"fetch",value:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(!this.connecting&&!this.connected)throw"No connection, please call connect() first";this.on(t,(function t(r){o&&n.off(r.type,t),e(r)})),this.send(t,r)}},{key:"respond",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=this;this.on(t,(function t(o){return pp.async((function(i){for(;;)switch(i.prev=i.next){case 0:if(n&&r.off(o,t),"function"!=typeof e){i.next=10;break}return i.t0=r,i.t1=o.type,i.next=6,pp.awrap(e());case 6:i.t2=i.sent,i.t0.send.call(i.t0,i.t1,i.t2),i.next=11;break;case 10:r.send(o.type,e);case 11:case"end":return i.stop()}}))}))}},{key:"logDebugMessage",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=arguments.length>1?arguments[1]:void 0;this.debug&&"function"==typeof this.debug?this.debug({isChild:this.isChild,received:t,message:e}):this.debug&&console.log("Bellhop Instance (".concat(this.isChild?"Child":"Parent",") ").concat(t?"Receieved":"Sent"),e)}},{key:"destroy",value:function(){mp(gp(e.prototype),"destroy",this).call(this),this.disconnect(),this._sendLater.length=0}},{key:"target",get:function(){return this.isChild?window.parent:this.iframe.contentWindow}}]),e}(),wp=function(){function t(e){var n=e.plugins,r=void 0===n?[]:n;qa(this,t),this.client=new Sp,this.client.hidden=this.client.receive.bind(this.client),this.client.hiddenSend=this.client.send.bind(this.client),this.client.receive=function(t){this.hidden(t)}.bind(this.client),this.client.send=function(t,e){this.hiddenSend(t,e)}.bind(this.client),this.plugins=r}return Xa(t,[{key:"setupPlugins",value:function(){for(var t=this,e=[],n=function(n){if(!t.plugins[n].preload)return"continue";e.push(t.plugins[n].preload(t).catch(function(t){this.plugins[n].preloadFailed=!0,console.warn(this.plugins[n].name,"Preload Failed:",t)}.bind(t)))},r=0,o=this.plugins.length;r1&&void 0!==arguments[1]?arguments[1]:{},i=o.plugins,s=o.context,a=void 0===s?{}:s;if(qa(this,r),(e=n.call(this,{plugins:i})).iframe=t instanceof HTMLIFrameElement?t:document.querySelector(t),null===e.iframe)throw new Error("No iframe was found with the provided selector");return e.loaded=!1,e.loading=!1,e.release=null,e._context=a,e.onLoading=e.onLoading.bind(Qa(e)),e.onLoadDone=e.onLoadDone.bind(Qa(e)),e.onLoadDone=e.onLoadDone.bind(Qa(e)),e.onEndGame=e.onEndGame.bind(Qa(e)),e.onLocalError=e.onLocalError.bind(Qa(e)),e.initClient(),e.setupPlugins(),e}return Xa(r,[{key:"onLoading",value:function(){this.client.trigger("opening")}},{key:"onLoadDone",value:function(){this.loading=!1,this.loaded=!0,this.iframe.classList.remove("loading"),this.client.trigger("opened")}},{key:"onEndGame",value:function(){this.reset()}},{key:"onLocalError",value:function(t){console.error("SpringRoll Container error: ",t,(new Error).stack)}},{key:"reset",value:function(){(this.loaded||this.loading)&&this.client.trigger("closed"),this.loaded=!1,this.loading=!1,this.iframe.setAttribute("src",""),this.iframe.classList.remove("loading")}},{key:"initClient",value:function(){this.client.on("loading",this.onLoading),this.client.on("loaded",this.onLoadDone),this.client.on("loadDone",this.onLoadDone),this.client.on("endGame",this.onEndGame),this.client.on("localError",this.onLocalError),this.client.connect(this.iframe)}},{key:"_onCloseFailed",value:function(){this.reset()}},{key:"_internalOpen",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.singlePlay,r=void 0!==n&&n,o=e.playOptions,i=void 0===o?null:o,s={singlePlay:r,playOptions:i};this.reset(),this.loading=!0,this.initClient();var a=Nf.basic();a&&(console.error("ERROR:",a),this.client.trigger("unsupported"));var u=t;if(null!==s.playOptions){var l="playOptions="+encodeURIComponent(JSON.stringify(s.playOptions));u=-1===t.indexOf("?")?"".concat(t,"?").concat(l):"".concat(t,"&").concat(l)}this.iframe.classList.add("loading"),this.iframe.setAttribute("src",u),this.client.respond("singlePlay",r),this.client.respond("playOptions",i),this.client.trigger("open")}},{key:"openPath",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};"object"!==Ua(e)&&(console.warn("SpringRoll Container.openPath was passed a invalid options parameter. Using default parameters instead"),e={}),this._internalOpen(t,Object.assign({singlePlay:!1,playOptions:{}},e))}},{key:"openRemote",value:(e=za(Ga().mark((function t(e){var n,r,o,i,s,a,u,l,c,d,h,f=arguments;return Ga().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=(n=f.length>1&&void 0!==f[1]?f[1]:{}).query,o=void 0===r?"":r,i=n.singlePlay,s=void 0!==i&&i,a=n.playOptions,u=void 0===a?null:a,this.release=null,t.next=4,fetch(e,{headers:{"Content-Type":"application/json"}});case 4:return l=t.sent,t.next=7,l.json();case 7:if((c=t.sent).success){t.next=10;break}throw new Error(c.error);case 10:if(d=c.data,!(h=Nf.test(d.capabilities))){t.next=15;break}throw this.client.trigger("unsupported",{error:h}),new Error(h);case 15:this.release=d,this._internalOpen(d.url+o,{singlePlay:s,playOptions:u});case 17:case"end":return t.stop()}}),t,this)}))),function(t){return e.apply(this,arguments)})},{key:"destroy",value:function(){this.reset(),this.iframe=null,this.options=null,this.release=null}},{key:"close",value:function(){this.loading||this.loaded?(this.client.trigger("close"),this.client.send("close")):this.reset()}},{key:"context",get:function(){return this._context},set:function(t){"object"===Ua(t)?this._context=t:console.error("[SpringRollContainer] Context: new context provided is not an object")}}],[{key:"version",get:function(){return"2.5.0"}}]),r}(),Ep=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){};qa(this,t),this._onFocus=e,this._onBlur=n,this.onFocus=function(t){this.enabled&&this._onFocus(t)}.bind(this),this.onBlur=function(t){this.enabled&&this._onBlur(t)}.bind(this),this._enabled=!1,this.enabled=!0,this.onToggle=this.onToggle.bind(this)}return Xa(t,[{key:"destroy",value:function(){this.enabled=!1,this.onToggle=null,this.onFocus=null,this.onBlur=null}},{key:"onToggle",value:function(t){this.enabled&&(document.hidden?this.onBlur(t):this.onFocus(t))}},{key:"enabled",get:function(){return this._enabled},set:function(t){this._enabled=t,document.removeEventListener("visibilitychange",this.onToggle,!1),window.removeEventListener("blur",this.onBlur,!1),window.removeEventListener("focus",this.onFocus,!1),window.removeEventListener("pagehide",this.onBlur,!1),window.removeEventListener("pageshow",this.onFocus,!1),window.removeEventListener("visibilitychange",this.onToggle,!1),this._enabled&&(document.addEventListener("visibilitychange",this.onToggle,!1),window.addEventListener("blur",this.onBlur,!1),window.addEventListener("focus",this.onFocus,!1),window.addEventListener("pagehide",this.onBlur,!1),window.addEventListener("pageshow",this.onFocus,!1),window.addEventListener("visibilitychange",this.onToggle,!1))}}]),t}(),Bp=Dr.includes,xp=xo;hs({target:"Array",proto:!0,forced:G((function(){return!Array(1).includes()}))},{includes:function(t){return Bp(this,t,arguments.length>1?arguments[1]:void 0)}}),xp("includes");var Pp="\t\n\v\f\r                 \u2028\u2029\ufeff",Lp=St,_p=sf,Op=Pp,Ap=X("".replace),Vp=RegExp("^["+Op+"]+"),Cp=RegExp("(^|[^"+Op+"])["+Op+"]+$"),Dp=function(t){return function(e){var n=_p(Lp(e));return 1&t&&(n=Ap(n,Vp,"")),2&t&&(n=Ap(n,Cp,"$1")),n}},Mp={start:Dp(1),end:Dp(2),trim:Dp(3)},Tp=li.PROPER,Ip=G,Rp=Pp,jp=Mp.trim;hs({target:"String",proto:!0,forced:function(t){return Ip((function(){return!!Rp[t]()||"​…᠎"!=="​…᠎"[t]()||Tp&&Rp[t].name!==t}))}("trim")},{trim:function(){return jp(this)}});var Np=_n,Kp=Xt,Fp=On,Gp=uf,Up=RegExp.prototype,Hp=li.PROPER,zp=Ci,qp=xn,Wp=sf,Xp=G,Yp=function(t){var e=t.flags;return void 0!==e||"flags"in Up||Kp(t,"flags")||!Fp(Up,t)?e:Np(Gp,t)},Jp="toString",$p=RegExp.prototype[Jp],Qp=Xp((function(){return"/a/b"!=$p.call({source:"a",flags:"b"})})),Zp=Hp&&$p.name!=Jp;(Qp||Zp)&&zp(RegExp.prototype,Jp,(function(){var t=qp(this);return"/"+Wp(t.source)+"/"+Wp(Yp(t))}),{unsafe:!0});var tv=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";qa(this,t),this.db=null,this.dbName=e}return Xa(t,[{key:"IDBOpen",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=arguments.length>4?arguments[4]:void 0,s=n?indexedDB.open(t,n):indexedDB.open(t);s.onsuccess=function(t){e.db=t.target.result,e.db.version==n|null==n&&i({result:"Success: IDBOpen",success:!0})},s.onerror=function(){i({result:s.error.toString(),success:!1})},s.onupgradeneeded=function(t){e.db=t.target.result,null!=r&&(r.stores&&r.stores.forEach((function(t){e.db.createObjectStore(t.storeName,t.options)})),null!=r.indexes&&r.indexes.forEach((function(t){s.transaction.objectStore(t.storeName).createIndex(t.indexName,t.keyPath,t.options)}))),null!=o&&(null!=o.indexes&&o.indexes.forEach((function(t){s.transaction.objectStore(t.storeName).deleteIndex(t.indexName)})),o.stores&&o.stores.forEach((function(t){e.db.deleteObjectStore(t.storeName)}))),i({result:"Success: IDBOpen onupgradeneeded ran",success:!0})}}},{key:"IDBDeleteDB",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=null!=e?indexedDB.deleteDatabase(t,e):indexedDB.deleteDatabase(t);r.onsuccess=function(t){n({result:"Success: Database Deleted, returned: "+t.result,success:!0})},r.onerror=function(){n({result:r.error.toString(),success:!1})}}},{key:"IDBAdd",value:function(t,e,n,r){this.db||""==this.dbName||this.IDBOpen(this.dbName);var o=this.db.transaction(t,"readwrite");o.onerror=function(){return r({result:null!=o.error?o.error.toString():"Aborted: No error given, was the record already added?",success:!1})},o.onabort=function(){return r({result:null!=o.error?o.error.toString():"Aborted: No error given, was the record already added?",success:!1})},o.oncomplete=function(){return r({result:"Success: Record Added",success:!0})},o.objectStore(t).add(e,n)}},{key:"IDBUpdate",value:function(t,e,n,r){this.db||""==this.dbName||this.IDBOpen(this.dbName);var o=this.db.transaction(t,"readwrite").objectStore(t).put(n,e);o.onsuccess=function(){r({result:"Success: Record Updated",success:!0})},o.onerror=function(){return r({result:o.error.toString(),success:!1})}}},{key:"IDBRemove",value:function(t,e,n){var r=this;this.db||""==this.dbName||this.IDBOpen(this.dbName);var o=this.db.transaction(t,"readwrite");o.onerror=function(){return n({result:r.db.error.toString(),success:!1})},o.objectStore(t).delete(e),o.oncomplete=function(){return n({result:"Removed Successfully",success:!0})}}},{key:"IDBRead",value:function(t,e,n){var r=this,o=this.db.transaction(t,"readonly"),i=o.objectStore(t);o.onerror=function(){return n({result:r.db.error.toString(),success:!1})};var s=i.get(e);s.onsuccess=function(){n({result:s.result,success:null!=s.result})}}},{key:"IDBGetIndexKeys",value:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},s=this.db.transaction(t,"readonly"),a=s.objectStore(t);s.onerror=function(){return i({result:n.db.error.toString(),success:!1})},(r&&o?a.index(e,r,o):r?a.index(e,r):a.index(e)).getAllKeys().onsuccess=function(t){i({result:t.result,success:!0})}}},{key:"IDBReadAll",value:function(t,e,n){var r=this.db.transaction(t,"readonly"),o=r.objectStore(t),i=null!=e?o.getAll(null,e):o.getAll();r.onerror=function(){return n({result:r.error.toString(),success:!1})},i.onsuccess=function(){n({result:i.result,success:null!=i.result})}}},{key:"IDBGetVersion",value:function(t,e){var n=window.indexedDB.open(t);n.onerror=function(){e({result:n.error.toString(),success:!1})},n.onsuccess=function(){var t=n.result;e({result:t.version,success:!0})}}},{key:"IDBClose",value:function(t){this.db&&(this.db.close(),t({result:"Success: Closed Database Connection",success:!0}))}}],[{key:"remove",value:function(t){localStorage.removeItem(t),sessionStorage.removeItem(t)}},{key:"write",value:function(t,e){return arguments.length>2&&void 0!==arguments[2]&&arguments[2]?sessionStorage.setItem(t,JSON.stringify("function"==typeof e?e():e)):localStorage.setItem(t,JSON.stringify("function"==typeof e?e():e))}},{key:"read",value:function(t){var e=localStorage.getItem(t)||sessionStorage.getItem(t);if("string"!=typeof e)return e;try{return JSON.parse(e)}catch(t){return e}}}]),t}(),ev=function(){function t(e){qa(this,t),this.name=e,this.client=null}var e;return Xa(t,[{key:"preload",value:(e=za(Ga().mark((function t(e){var n;return Ga().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:n=e.client,this.client=n;case 2:case"end":return t.stop()}}),t,this)}))),function(t){return e.apply(this,arguments)})},{key:"start",value:function(){this.client.on("loaded",this.sendAllProperties),this.client.on("loadDone",this.sendAllProperties)}},{key:"init",value:function(t){}},{key:"sendProperty",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];tv.write(t,e),n||this.client.send(t,e)}},{key:"sendAllProperties",value:function(t){}},{key:"warn",value:function(t){console.warn("[SpringRollContainer] ".concat(this.name,": ").concat(t))}}]),t}(),nv=function(t){Ya(n,ev);var e=tu(n);function n(t){var r;return qa(this,n),(r=e.call(this,t)).sendMutes=!1,r}return Xa(n,[{key:"init",value:function(t){this.sendMutes=!0}},{key:"_disableButton",value:function(t){t instanceof HTMLButtonElement&&(t.classList.remove("enabled"),t.classList.add("disabled"))}},{key:"reset",value:function(){this.sendMutes=!1}},{key:"_setMuteProp",value:function(t,e,n){var r=this,o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];console.log("_setmuteprop",t,n,o),Array.isArray(e)?e.forEach((function(t){return r.changeMutedState(t,n)})):this.changeMutedState(e,n),this.sendProperty(t,n,o)}},{key:"changeMutedState",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=t.button?t.button:t;n instanceof HTMLElement&&(n.classList.remove("unmuted"),n.classList.remove("muted"),n.classList.add(e?"muted":"unmuted"))}}]),n}(),rv=M,ov=Q,iv=Se("match"),sv=function(t){var e;return rv(t)&&(void 0!==(e=t[iv])?!!e:"RegExp"==ov(t))},av=TypeError,uv=Se("match"),lv=hs,cv=function(t){if(sv(t))throw av("The method doesn't accept regular expressions");return t},dv=St,hv=sf,fv=function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[uv]=!1,"/./"[t](e)}catch(t){}}return!1},pv=X("".indexOf);lv({target:"String",proto:!0,forced:!fv("includes")},{includes:function(t){return!!~pv(hv(dv(this)),hv(cv(t)),arguments.length>1?arguments[1]:void 0)}});var vv={exports:{}},yv={},gv=_r,mv=Ct,bv=pu,Sv=Array,wv=Math.max,kv=Q,Ev=Er,Bv=Di.f,xv=function(t,e,n){for(var r=mv(t),o=gv(e,r),i=gv(void 0===n?r:n,r),s=Sv(wv(i-o,0)),a=0;o1?arguments[1]:void 0);e=e?e.next:n.first;)for(r(e.value,e.key,this);e&&e.removed;)e=e.previous},has:function(t){return!!u(this,t)}}),by(i,n?{get:function(t){var e=u(this,t);return e&&e.value},set:function(t,e){return a(this,0===t?0:t,e)}}:{add:function(t){return a(this,t=0===t?0:t,t)}}),Ly&&my(i,"size",{configurable:!0,get:function(){return s(this).size}}),o},setStrong:function(t,e,n){var r=e+" Iterator",o=Ay(e),i=Ay(r);By(t,e,(function(t,e){Oy(this,{type:r,target:t,state:o(t),kind:e,last:void 0})}),(function(){for(var t=i(this),e=t.kind,n=t.last;n&&n.removed;)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?xy("keys"==e?n.key:"values"==e?n.value:[n.key,n.value],!1):(t.target=void 0,xy(void 0,!0))}),n?"entries":"values",!n,!0),Py(e)}};(function(t,e,n){var r=-1!==t.indexOf("Map"),o=-1!==t.indexOf("Weak"),i=r?"set":"add",s=ny[t],a=s&&s.prototype,u=s,l={},c=function(t){var e=ry(a[t]);iy(a,t,"add"==t?function(t){return e(this,0===t?0:t),this}:"delete"==t?function(t){return!(o&&!dy(t))&&e(this,0===t?0:t)}:"get"==t?function(t){return o&&!dy(t)?void 0:e(this,0===t?0:t)}:"has"==t?function(t){return!(o&&!dy(t))&&e(this,0===t?0:t)}:function(t,n){return e(this,0===t?0:t,n),this})};if(oy(t,!ly(s)||!(o||a.forEach&&!hy((function(){(new s).entries().next()})))))u=n.getConstructor(e,t,r,i),sy.enable();else if(oy(t,!0)){var d=new u,h=d[i](o?{}:-0,1)!=d,f=hy((function(){d.has(1)})),p=fy((function(t){new s(t)})),v=!o&&hy((function(){for(var t=new s,e=5;e--;)t[i](e,e);return!t.has(-0)}));p||((u=e((function(t,e){uy(t,a);var n=vy(new s,t,u);return cy(e)||ay(e,n[i],{that:n,AS_ENTRIES:r}),n}))).prototype=a,a.constructor=u),(f||v)&&(c("delete"),c("has"),r&&c("get")),(v||h)&&c(i),o&&a.clear&&delete a.clear}l[t]=u,ey({global:!0,constructor:!0,forced:u!=s},l),py(u,t),o||n.setStrong(u,t,r)})("Set",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),Vy);var Cy=Et,Dy=Hr;hs({target:"Object",stat:!0,forced:G((function(){Dy(1)}))},{keys:function(t){return Dy(Cy(t))}});var My=hn.map;hs({target:"Array",proto:!0,forced:!mu("map")},{map:function(t){return My(this,t,arguments.length>1?arguments[1]:void 0)}});var Ty=gn,Iy=X,Ry=Hr,jy=Er,Ny=Iy(Ho.f),Ky=Iy([].push),Fy=function(t){return function(e){for(var n,r=jy(e),o=Ry(r),i=o.length,s=0,a=[];i>s;)n=o[s++],Ty&&!Ny(r,n)||Ky(a,t?[n,r[n]]:r[n]);return a}},Gy={entries:Fy(!0),values:Fy(!1)}.values;hs({target:"Object",stat:!0},{values:function(t){return Gy(t)}});var Uy=function(t){Ya(n,ev);var e=tu(n);function n(t){var r,o=t.selector,i=t.controlName,s=t.featureName,a=void 0===s?"captionStyles":s,u=t.defaultValue,l=t.pluginName;return qa(this,n),(r=e.call(this,l)).controlName=i,r.featureName=a,r.radioElements=document.querySelectorAll(o),r.defaultValue=u,r.radioGroup={},r.radioElements.length<=0?(r.warn("".concat(r.controlName," RadioGroup found no HTMLElements with selector: ").concat(o)),Za(r)):(r.radioElements.forEach((function(t){"radio"===t.type?(t.value=t.value.toLowerCase(),r.radioGroup[t.value]=t):r.warn("".concat(r.controlName," was provided a non Radio Button element with selector: ").concat(o))})),r.radioGroup[r.defaultValue]||(r.warn("".concat(r.controlName," RadioGroup for selector: ").concat(o," does not have a radio button with value ").concat(r.defaultValue," to use as default value. Using first element as default")),r.defaultValue=r.radioElements[0].value.toLowerCase()),r.radioGroup[r.defaultValue].checked=!0,r)}return Xa(n,[{key:"hasOnly",value:function(t){for(var e in this.radioGroup)if(!t.includes(this.radioGroup[e].value))return this.warn("".concat(this.controlName," radio button value: ").concat(this.radioGroup[e].value," is not an accepted value. Skipping radio group")),!1;return!0}},{key:"hasDuplicateValues",value:function(){return this.values.length!==eu(new Set(this.values)).length}},{key:"enableRadioEvents",value:function(t){if(!(!this.radioGroup.length<=0)){var e=t;for(var n in this.radioGroup)this.radioGroup[n].addEventListener("change",e)}}},{key:"disableRadioEvents",value:function(t){if(!(!this.radioGroup.length<=0))for(var e in this.radioGroup)this.radioGroup[e].removeEventListener("change",t)}},{key:"displayRadios",value:function(t){if(this.radioGroup.length<=0&&t[this.featureName])this.warn("".concat(this.controlName," was not provided a valid input element or selector but '").concat(this.featureName,"' was included as a game feature"));else if(!(this.radioGroup.length<=0||t[this.featureName]))for(var e in this.radioGroup)this.radioGroup[e].style.display="none"}},{key:"resetState",value:function(){this.radioGroup[this.defaultValue].checked=!0}},{key:"length",get:function(){return Object.keys(this.radioGroup).length}},{key:"values",get:function(){return Object.values(this.radioGroup).map((function(t){return t.value}))}}]),n}(),Hy=function(t){Ya(n,ev);var e=tu(n);function n(t,r,o){var i,s=o.supportedValues,a=o.initialValue,u=o.controlName,l=o.featureName,c=o.radioCount;return qa(this,n),(i=e.call(this,r)).selectors=t?t.split(","):[],i.supportedValues=s,i.initialValue=s.includes(a)?a:s[0],i.controlName=u,i.featureName=l,i.radioCount=c,i.sendAllProperties=i.sendAllProperties.bind(Qa(i)),i._currentValue=i.initialValue,i.radioGroups=i.setUpRadios(i.selectors),i.radioGroupsLength=i.radioGroups.length,i}return Xa(n,[{key:"setUpRadios",value:function(t){var e=this,n=[];return t.forEach((function(t){var r=new Uy({selector:t.trim(),controlName:e.controlName,defaultValue:e.initialValue,pluginName:e.name,featureName:e.featureName});r.length===e.radioCount?r.hasOnly(e.supportedValues)&&(r.hasDuplicateValues()?e.warn("Duplicate radio button values detected (values: ".concat(r.values," ). Skipping radio group")):n.push(r)):e.warn('Selector "'.concat(t,'" did not find exactly ').concat(e.radioCount," radio buttons for ").concat(e.controlName,". Skipping selector"))})),n}},{key:"start",value:function(){this.client.on("loaded",this.sendAllProperties),this.client.on("loadDone",this.sendAllProperties)}},{key:"sendAllProperties",value:function(){this.sendProperty(this.featureName,this.property)}},{key:"currentValue",get:function(){return this._currentValue},set:function(t){if(this.supportedValues.includes(t)){this._currentValue=t;for(var e=0,n=this.radioGroups.length;e2)if(l=ug(l),43===(e=pg(l,0))||45===e){if(88===(n=pg(l,2))||120===n)return NaN}else if(48===e){switch(pg(l,1)){case 66:case 98:r=2,o=49;break;case 79:case 111:r=8,o=55;break;default:return+l}for(s=(i=fg(l,2)).length,a=0;ao)return NaN;return parseInt(i,r)}return+l},yg=$y(lg,!cg(" 0o1")||!cg("0b1")||cg("+0x1")),gg=function(t){var e,n=arguments.length<1?0:cg(function(t){var e=ng(t,"number");return"bigint"==typeof e?e:vg(e)}(t));return tg(dg,e=this)&&rg((function(){ag(e)}))?Zy(Object(n),this,gg):n};gg.prototype=dg,yg&&(dg.constructor=gg),qy({global:!0,constructor:!0,wrap:!0,forced:yg},{Number:gg});yg&&function(t,e){for(var n,r=Wy?og(e):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,fromString,range".split(","),o=0;r.length>o;o++)Qy(e,n=r[o])&&!Qy(t,n)&&sg(t,n,ig(e,n))}(Yy[lg],cg);var mg=function(){function t(e){var n=e.slider,r=e.control,o=e.min,i=void 0===o?0:o,s=e.max,a=void 0===s?1:s,u=e.step,l=void 0===u?.1:u,c=e.defaultValue,d=void 0===c?1:c;qa(this,t),this.min=i,this.max=a,this.step=l,this.sliderValue=d,this.control=r,this.slider=this.setUpSlider(n,r)}return Xa(t,[{key:"setUpSlider",value:function(t,e){if("string"==typeof t&&(t=document.querySelector(t)),!t||"range"!==t.type)return null;var n=tv.read(e);return t.min=this.min,t.max=this.max,t.step=this.step,(n||0===n)&&n.toString().trim().length>0?(t.value=n,this.sliderValue=n):t.value=this.sliderValue,t}},{key:"sliderRange",value:function(t){return tthis.max?this.max:t}},{key:"enableSliderEvents",value:function(t){if(this.slider){var e=t;this.slider.addEventListener("change",e),this.slider.addEventListener("input",e)}}},{key:"disableSliderEvents",value:function(t){if(this.slider){var e=t;this.slider.removeEventListener("change",e),this.slider.removeEventListener("input",e)}}},{key:"displaySlider",value:function(t){!this.slider&&t[this.control]&&console.warn("".concat(this.control," was not provided a valid input element or selector but was included as a game feature")),this.slider&&(this.slider.style.display=t[this.control]?"":"none")}},{key:"dispatchEvent",value:function(t){this.slider.dispatchEvent(t)}},{key:"value",get:function(){return this.slider.value},set:function(t){this.slider.value=t}}]),t}(),bg=function(){function t(e){var n=e.button,r=e.onClick,o=e.channel;qa(this,t),this.button=n instanceof HTMLElement?n:document.querySelector(n),this.onClick=r,this.channel=o,this.button&&this.button.addEventListener("click",r)}return Xa(t,[{key:"displayButton",value:function(t){this.button instanceof HTMLElement&&(this.button.style.display=t[this.channel]||"pause"===this.channel||"hints"===this.channel?"":"none")}},{key:"enableButton",value:function(){this.button&&this.button.classList.remove("disabled")}},{key:"addClass",value:function(t){this.button.className=this.button.className?this.button.className+" ".concat(t):" ".concat(t)}}]),t}(),Sg=function(t){Ya(n,ev);var e=tu(n);function n(t,r,o){var i,s=o.defaultValue,a=void 0===s?"0.5":s,u=o.minValue,l=void 0===u?"0":u,c=o.maxValue,d=void 0===c?"1":c,h=o.featureName;return qa(this,n),(i=e.call(this,r)).featureName=h,i.minValue=l,i.defaultValue=a,i.maxValue=d,i._currentValue=a,i.sliders=i.setUpSliders(t),i.slidersLength=i.sliders.length,i.sendAllProperties=i.sendAllProperties.bind(Qa(i)),0>=i.slidersLength?(i.warn("Plugin was not provided any valid HTML Elements"),Za(i)):i}return Xa(n,[{key:"setUpSliders",value:function(t){var e=this,n=[];return t instanceof HTMLElement?n.push(new mg({slider:t,control:this.featureName,defaultValue:this.defaultValue,minValue:this.minValue,maxValue:this.maxValue})):document.querySelectorAll(t).forEach((function(t){n.push(new mg({slider:t,control:e.featureName,defaultValue:e.defaultValue,minValue:e.minValue,maxValue:e.maxValue}))})),n}},{key:"init",value:function(){this.client.on("features",function(t){if(t.data)for(var e=0;e3&&void 0!==arguments[3]?arguments[3]:{},a=s.defaultFontSize,u=void 0===a?"medium":a,l=s.defaultColor,c=void 0===l?"default":l,d=s.defaultAlignment,h=void 0===d?"top":d;if(qa(this,n),(i=e.call(this,"Caption-Style-Plugin")).sendAllProperties=i.sendAllProperties.bind(Qa(i)),i.captionsStyles=Object.assign({},wg,tv.read(n.captionStyleKey)||{}),i.fontSizeSelectors=t?t.split(","):[],i.colorSelectors=r?r.split(","):[],i.alignmentSelectors=o?o.split(","):[],i.defaultFontSize=Bg.includes(u)?u:Bg[0],i.defaultColor=xg.includes(c)?c:xg[0],i.defaultAlignment=Pg.includes(h)?h:Pg[0],i.fontSizeRadios=[],i.colorRadios=[],i.alignmentRadios=[],i.fontSizeRadios=i.setUpFontSizeRadios(i.fontSizeSelectors),i.colorRadios=i.setUpColorRadios(i.colorSelectors),i.alignmentRadios=i.setUpAlignmentRadios(i.alignmentSelectors),i._captionsMuted=!1,i.alignmentRadiosLength=i.alignmentRadios.length,i.fontSizeRadiosLength=i.fontSizeRadios.length,i.colorRadiosLength=i.colorRadios.length,0>=i.alignmentRadiosLength+i.fontSizeRadiosLength+i.colorRadiosLength)return i.warn("Plugin was not provided any input elements"),Za(i);for(var f=0;f0&&void 0!==arguments[0]?arguments[0]:wg,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";"object"===Ua(e)?Object.assign(this.captionsStyles,e):"string"==typeof e&&(this.captionsStyles[e]=r),this.colorRadios.forEach((function(e){var n="white"===t.captionsStyles.color?"default":"inverted";e.radioGroup[n].checked=!0})),this.alignmentRadios.forEach((function(e){e.radioGroup[t.captionsStyles.align].checked=!0})),this.fontSizeRadios.forEach((function(e){e.radioGroup[t.captionsStyles.size].checked=!0})),tv.write(n.captionStyleKey,this.captionsStyles),this.client&&this.client.send(n.captionStyleKey,this.captionsStyles)}},{key:"radios",get:function(){return this.colorRadios.concat(this.alignmentRadios).concat(this.fontSizeRadios)}}],[{key:"captionStyleKey",get:function(){return"captionsStyles"}}]),n}(),_g=function(t){Ya(n,nv);var e=tu(n);function n(t){var r;return qa(this,n),(r=e.call(this,"Caption-Button-Plugin")).sendAllProperties=r.sendAllProperties.bind(Qa(r)),r._captionsButtons=[],t instanceof HTMLElement?r._captionsButtons[0]=new bg({button:t,onClick:r.captionsButtonClick.bind(Qa(r)),channel:"captions"}):document.querySelectorAll(t).forEach((function(t){r._captionsButtons.push(new bg({button:t,onClick:r.captionsButtonClick.bind(Qa(r)),channel:"captions"}))})),r._captionsMuted=!1,r.captionsButtonLength=r._captionsButtons.length,0>=r.captionsButtonLength?(r.warn("Plugin was not provided any valid button or input elements"),Za(r)):r}return Xa(n,[{key:"init",value:function(){this.client.on("features",function(t){for(var e=0;e1&&void 0!==arguments[1])||arguments[1];qa(this,n),(r=e.call(this,"Pause-Button-plugin"))._manageOwnVisibility=o,r._appBlurred=!1,r._containerBlurred=!1,r._focusTimer=null,r._isManualPause=!1,r._keepFocus=!1,r._paused=!1,r.iframe=null,r.focusApp=r.focusApp.bind(Qa(r)),r.manageFocus=r.manageFocus.bind(Qa(r)),r.onKeepFocus=r.onKeepFocus.bind(Qa(r)),r.onFocus=r.onFocus.bind(Qa(r));var i=r.onPauseToggle.bind(Qa(r));return r.pauseDisabled=!1,r._pauseButton=[],r.pageVisibility=new Ep(r.onContainerFocus.bind(Qa(r)),r.onContainerBlur.bind(Qa(r))),r.pageVisibility.enabled=r.manageOwnVisibility,t instanceof HTMLElement?r._pauseButton[0]=new bg({button:t,onClick:i,channel:n.pauseKey}):document.querySelectorAll(t).forEach((function(t){r._pauseButton.push(new bg({button:t,onClick:i,channel:n.pauseKey}))})),r}return Xa(n,[{key:"pause",get:function(){return this._paused},set:function(t){if(t=!!t,!this.pauseDisabled){this._paused=t,this.client.send(n.pauseKey,t),this.client.trigger(t?"paused":"resumed",{paused:t});for(var e=0,r=this._pauseButton.length;e0&&void 0!==arguments[0]?arguments[0]:{},o=e.soundButtons,i=e.musicButtons,s=e.sfxButtons,a=e.voButtons,u=e.soundSliders,l=e.musicSliders,c=e.sfxSliders,d=e.voSliders;qa(this,r),t=n.call(this,"Sound-Button-Plugin");var h=tv.read(r.soundMutedKey);if(t.sendAllProperties=t.sendAllProperties.bind(Qa(t)),t._soundMuted=h||!1,t._musicMuted=!1,t._voMuted=!1,t._sfxMuted=!1,t._musicMutedByUser=!1,t._soundMutedByUser=!1,t._sfxMutedByUser=!1,t._voMutedByUser=!1,t.soundMuteEnabled=!1,t.musicMuteEnabled=!1,t.sfxMuteEnabled=!1,t.voMuteEnabled=!1,t.soundVolume=1,t.musicVolume=1,t.sfxVolume=1,t.voVolume=1,t.soundSliders=[],t.musicSliders=[],t.sfxSliders=[],t.voSliders=[],t.soundButtons=[],t.musicButtons=[],t.sfxButtons=[],t.voButtons=[],u instanceof HTMLElement?t.soundSliders[0]=new mg({slider:u,control:r.soundVolumeKey,defaultValue:t.soundVolume}):document.querySelectorAll(u).forEach((function(e){var n=new mg({slider:e,control:r.soundVolumeKey,defaultValue:t.soundVolume});n.slider&&t.soundSliders.push(n)})),l instanceof HTMLElement?t.musicSliders[0]=new mg({slider:l,control:r.musicVolumeKey,defaultValue:t.musicVolume}):document.querySelectorAll(l).forEach((function(e){var n=new mg({slider:e,control:r.musicVolumeKey,defaultValue:t.musicVolume});n.slider&&t.musicSliders.push(n)})),c instanceof HTMLElement?t.sfxSliders[0]=new mg({slider:c,control:r.sfxVolumeKey,defaultValue:t.sfxVolume}):document.querySelectorAll(c).forEach((function(e){var n=new mg({slider:e,control:r.sfxVolumeKey,defaultValue:t.sfxVolume});n.slider&&t.sfxSliders.push(n)})),d instanceof HTMLElement?t.voSliders[0]=new mg({slider:d,control:r.voVolumeKey,defaultValue:t.voVolume}):document.querySelectorAll(d).forEach((function(e){var n=new mg({slider:e,control:r.voVolumeKey,defaultValue:t.voVolume});n.slider&&t.voSliders.push(n)})),o instanceof HTMLElement?t.soundButtons[0]=new bg({button:o,onClick:t.onSoundToggle.bind(Qa(t)),channel:r.soundKey}):document.querySelectorAll(o).forEach((function(e){t.soundButtons.push(new bg({button:e,onClick:t.onSoundToggle.bind(Qa(t)),channel:r.soundKey}))})),i instanceof HTMLElement?t.musicButtons[0]=new bg({button:i,onClick:t.onMusicToggle.bind(Qa(t)),channel:"music"}):document.querySelectorAll(i).forEach((function(e){t.musicButtons.push(new bg({button:e,onClick:t.onMusicToggle.bind(Qa(t)),channel:"music"}))})),s instanceof HTMLElement?t.sfxButtons[0]=new bg({button:s,onClick:t.onSFXToggle.bind(Qa(t)),channel:"sfx"}):document.querySelectorAll(s).forEach((function(e){t.sfxButtons.push(new bg({button:e,onClick:t.onSFXToggle.bind(Qa(t)),channel:"sfx"}))})),a instanceof HTMLElement?t.voButtons[0]=new bg({button:a,onClick:t.onVOToggle.bind(Qa(t)),channel:"vo"}):document.querySelectorAll(a).forEach((function(e){t.voButtons.push(new bg({button:e,onClick:t.onVOToggle.bind(Qa(t)),channel:"vo"}))})),t.soundSlidersLength=t.soundSliders.length,t.musicSlidersLength=t.musicSliders.length,t.sfxSlidersLength=t.sfxSliders.length,t.voSlidersLength=t.voSliders.length,t.soundButtonsLength=t.soundButtons.length,t.musicButtonsLength=t.musicButtons.length,t.sfxButtonsLength=t.sfxButtons.length,t.voButtonsLength=t.voButtons.length,0>=t.soundSlidersLength+t.musicSlidersLength+t.sfxSlidersLength+t.voSlidersLength+t.soundButtonsLength+t.musicButtonsLength+t.sfxButtonsLength+t.voButtonsLength)return t.warn("Plugin was not provided any valid HTML Elements"),Za(t);for(var f=0;f3&&void 0!==arguments[3]&&arguments[3];this["_"+t]=e,this._setMuteProp(t,n,e,r)}},{key:"preload",value:(e=za(Ga().mark((function t(e){var n;return Ga().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:n=e.client,this.client=n,this.client.on("features",function(t){if(t.data){this.soundMutedEnabled=!!t.data.sound,this.musicMutedEnabled=!!t.data.music,this.sfxMutedEnabled=!!t.data.sfx,this.voMutedEnabled=!!t.data.vo,this.soundVolumeEnabled=!!t.data.soundVolume,this.musicVolumeEnabled=!!t.data.musicVolume,this.sfxVolumeEnabled=!!t.data.sfxVolume,this.voVolumeEnabled=!!t.data.voVolume;for(var e=0;e0&&this.sendProperty(r.soundVolumeKey,this.soundVolume),this.musicVolumeEnabled&&this.musicSlidersLength>0&&this.sendProperty(r.musicVolumeKey,this.musicVolume),this.voVolumeEnabled&&this.voSlidersLength>0&&this.sendProperty(r.voVolumeKey,this.voVolume),this.sfxVolumeEnabled&&this.sfxSlidersLength>0&&this.sendProperty(r.sfxVolumeKey,this.sfxVolume),this.soundButtonsLength>0&&this.soundMuteEnabled&&(this.soundMuted||!this.soundVolumeEnabled)&&this.sendProperty(r.soundMutedKey,this.soundMuted),this.musicButtonsLength>0&&this.musicMuteEnabled&&(this.musicMuted||!this.musicVolumeEnabled)&&this.sendProperty(r.musicMutedKey,this.musicMuted),this.voButtonsLength>0&&this.voMuteEnabled&&(this.voMuted||!this.voVolumeEnabled)&&this.sendProperty(r.voMutedKey,this.voMuted),this.sfxButtonsLength>0&&this.sfxMuteEnabled&&(this.sfxMuted||!this.sfxVolumeEnabled)&&this.sendProperty(r.sfxMutedKey,this.sfxMuted)}},{key:"soundMuted",get:function(){return this._soundMuted},set:function(t){if(t!==this.soundMuted){var e=!1;this.soundVolumeEnabled&&!t&&(this.sendProperty(r.soundVolumeKey,this.soundVolume),e=!0),this.setMuteProp("soundMuted",t,this.soundButtons,e)}else this.setMuteProp("soundMuted",t,this.soundButtons,!0)}},{key:"voMuted",get:function(){return this._voMuted},set:function(t){var e=!1;this.voMuted!==t?(this.voVolumeEnabled&&!t&&(this.sendProperty(r.voVolumeKey,this.voVolume),e=!0),this.setMuteProp("voMuted",t,this.voButtons,e)):this.setMuteProp("voMuted",t,this.voButtons,!0)}},{key:"musicMuted",get:function(){return this._musicMuted},set:function(t){if(this.musicMuted!==t){var e=!1;this.musicVolumeEnabled&&!t&&(this.sendProperty(r.musicVolumeKey,this.musicVolume),e=!0),this.setMuteProp("musicMuted",t,this.musicButtons,e)}else this.setMuteProp("musicMuted",t,this.musicButtons,!0)}},{key:"sfxMuted",get:function(){return this._sfxMuted},set:function(t){if(this.sfxMuted!==t){var e=!1;this.sfxVolumeEnabled&&!t&&(this.sendProperty(r.sfxVolumeKey,this.sfxVolume),e=!0),this.setMuteProp("sfxMuted",t,this.sfxButtons,e)}else this.setMuteProp("sfxMuted",t,this.sfxButtons,!0)}},{key:"soundButton",get:function(){return this._soundButton.button}},{key:"musicButton",get:function(){return this._musicButton.button}},{key:"sfxButton",get:function(){return this._sfxButton.button}},{key:"voButton",get:function(){return this._voButton.button}}],[{key:"soundMutedKey",get:function(){return"soundMuted"}},{key:"voMutedKey",get:function(){return"voMuted"}},{key:"musicMutedKey",get:function(){return"musicMuted"}},{key:"sfxMutedKey",get:function(){return"sfxMuted"}},{key:"soundVolumeKey",get:function(){return"soundVolume"}},{key:"sfxVolumeKey",get:function(){return"sfxVolume"}},{key:"voVolumeKey",get:function(){return"voVolume"}},{key:"musicVolumeKey",get:function(){return"musicVolume"}},{key:"soundKey",get:function(){return"sound"}}]),r}(),Cg=function(){function t(){qa(this,t),this.dbName,this.savedData}return Xa(t,[{key:"IDBOpen",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null;this.savedData=new tv,this.savedData.IDBOpen(t,e,n,r,o)}},{key:"IDBAdd",value:function(t,e,n,r){this.savedData.IDBAdd(t,e,n,r)}},{key:"IDBUpdate",value:function(t,e,n,r){this.savedData.IDBUpdate(t,e,n,r)}},{key:"IDBRemove",value:function(t,e,n){this.savedData.IDBRemove(t,e,n)}},{key:"IDBRead",value:function(t,e,n){this.savedData.IDBRead(t,e,n)}},{key:"IDBReadAll",value:function(t,e,n){this.savedData.IDBReadAll(t,e,n)}},{key:"IDBGetVersion",value:function(t,e){new tv(t).IDBGetVersion(t,e)}},{key:"IDBClose",value:function(t){this.savedData.IDBClose(t)}},{key:"IDBDeleteDB",value:function(t,e,n){new tv(t).IDBDeleteDB(t,e,n)}}],[{key:"remove",value:function(t,e){tv.remove(t),e()}},{key:"write",value:function(t,e,n){tv.write(t,e),n()}},{key:"read",value:function(t,e){e(tv.read(t))}}]),t}(),Dg=function(t){Ya(n,ev);var e=tu(n);function n(){var t;return qa(this,n),(t=e.call(this,"UserData-Plugin")).onUserDataRemove=t.onUserDataRemove.bind(Qa(t)),t.onUserDataRead=t.onUserDataRead.bind(Qa(t)),t.onUserDataWrite=t.onUserDataWrite.bind(Qa(t)),t.onIDBAdd=t.onIDBAdd.bind(Qa(t)),t.onIDBOpen=t.onIDBOpen.bind(Qa(t)),t.onIDBRead=t.onIDBRead.bind(Qa(t)),t.onIDBReadAll=t.onIDBReadAll.bind(Qa(t)),t.onIDBRemove=t.onIDBRemove.bind(Qa(t)),t.onIDBUpdate=t.onIDBUpdate.bind(Qa(t)),t.onIDBUpdate=t.onIDBUpdate.bind(Qa(t)),t.onIDBClose=t.onIDBClose.bind(Qa(t)),t.IDBReadAll=t.onIDBReadAll.bind(Qa(t)),t.onIDBGetVersion=t.onIDBGetVersion.bind(Qa(t)),t.onIDBDeleteDB=t.onIDBDeleteDB.bind(Qa(t)),t.savedDataHandler=null,t}return Xa(n,[{key:"init",value:function(){this.client.on("userDataRemove",this.onUserDataRemove),this.client.on("userDataRead",this.onUserDataRead),this.client.on("userDataWrite",this.onUserDataWrite),this.client.on("IDBOpen",this.onIDBOpen),this.client.on("IDBRead",this.onIDBRead),this.client.on("IDBReadAll",this.onIDBReadAll),this.client.on("IDBAdd",this.onIDBAdd),this.client.on("IDBRemove",this.onIDBRemove),this.client.on("IDBUpdate",this.onIDBUpdate),this.client.on("IDBClose",this.onIDBClose),this.client.on("IDBGetVersion",this.onIDBGetVersion),this.client.on("IDBDeleteDB",this.onIDBDeleteDB)}},{key:"onUserDataRemove",value:function(t){var e=this,n=t.data,r=t.type;Cg.remove(n,(function(){e.client.send(r)}))}},{key:"onUserDataRead",value:function(t){var e=this,n=t.data,r=t.type;Cg.read(n,(function(t){return e.client.send(r,t)}))}},{key:"onUserDataWrite",value:function(t){var e=this,n=t.type,r=t.data,o=r.name,i=r.value;Cg.write(o,i,(function(){return e.client.send(n)}))}},{key:"onIDBOpen",value:function(t){var e=this,n=t.type,r=t.data,o=r.dbName,i=r.dbVersion,s=void 0===i?null:i,a=r.additions,u=void 0===a?{}:a,l=r.deletions,c=void 0===l?{}:l;this.savedDataHandler=new Cg,this.savedDataHandler.IDBOpen(o,s,u,c,(function(t){return e.client.send(n,t)}))}},{key:"onIDBAdd",value:function(t){var e=this,n=t.type,r=t.data,o=r.storeName,i=r.value,s=r.key;this.savedDataHandler.IDBAdd(o,i,s,(function(t){return e.client.send(n,t)}))}},{key:"onIDBUpdate",value:function(t){var e=this,n=t.type,r=t.data,o=r.storeName,i=r.key,s=r.value;this.savedDataHandler.IDBUpdate(o,i,s,(function(t){return e.client.send(n,t)}))}},{key:"onIDBRemove",value:function(t){var e=this,n=t.type,r=t.data,o=r.storeName,i=r.key;this.savedDataHandler.IDBRemove(o,i,(function(t){return e.client.send(n,t)}))}},{key:"onIDBRead",value:function(t){var e=this,n=t.type,r=t.data,o=r.storeName,i=r.key;this.savedDataHandler.IDBRead(o,i,(function(t){return e.client.send(n,t)}))}},{key:"onIDBReadAll",value:function(t){var e=this,n=t.type,r=t.data,o=r.storeName,i=r.count;this.savedDataHandler.IDBReadAll(o,i,(function(t){return e.client.send(n,t)}))}},{key:"onIDBGetVersion",value:function(t){var e=this,n=t.type,r=t.data.dbName;(new Cg).IDBGetVersion(r,(function(t){return e.client.send(n,t)}))}},{key:"onIDBClose",value:function(t){var e=this,n=t.type;this.savedDataHandler.IDBClose((function(t){return e.client.send(n,t)}))}},{key:"onIDBDeleteDB",value:function(t){var e=this,n=t.type,r=t.data,o=r.dbName,i=r.options;(new Cg).IDBDeleteDB(o,i,(function(t){return e.client.send(n,t)}))}}]),n}(),Mg=function(t){Ya(n,Sg);var e=tu(n);function n(t){var r,o=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).defaultPointerSize,i=void 0===o?.5:o;qa(this,n),r=e.call(this,t,"UISize-Pointer-Plugin",{defaultValue:i,featureName:n.pointerSizeKey});for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:{}).defaultButtonSize,i=void 0===o?.5:o;qa(this,n),r=e.call(this,t,"UISize-Button-Plugin",{defaultValue:i,featureName:n.buttonSizeKey});for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:{}).defaultSensitivity,i=void 0===o?.5:o;qa(this,n),(r=e.call(this,t,"Control-Sensitivity-Plugin",{defaultValue:i,featureName:n.controlSensitivityKey})).sendAllProperties=r.sendAllProperties.bind(Qa(r));for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:{}).customClassName,i=void 0===o?"springrollContainerKeyBinding__button":o;return qa(this,n),(r=e.call(this,"Keyboard-Map-Plugin")).sendAllProperties=r.sendAllProperties.bind(Qa(r)),r.bindKey=r.bindKey.bind(Qa(r)),r.onKeyButtonClick=r.onKeyButtonClick.bind(Qa(r)),r.className=i,r.keyContainers=t instanceof HTMLElement?[t]:document.querySelectorAll(t),r.keyBindings={},r.buttons=[],r.activekeyButton,r.sendAfterFetch=!1,r.canEmit=!1,r.keyContainersLength=r.keyContainers.length,r.keyContainersLength<=0?(r.warn("plugin was not provided any valid key binding container elements"),Za(r)):r}return Xa(n,[{key:"onKeyButtonClick",value:function(t){for(var e=0,n=this.buttons.length;e1&&void 0!==arguments[1]?arguments[1]:{}).defaultValue,i=void 0===o?0:o;qa(this,n),r=e.call(this,t,"Layer-Plugin",{defaultValue:i,featureName:n.layersSliderKey});for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:{}).defaultValue,i=void 0===o?Ng[0]:o;qa(this,n),(r=e.call(this,t,"HUD-Layout-Plugin",{supportedValues:Ng,initialValue:i,controlName:"Hud Selector",featureName:n.hudPositionKey,radioCount:Ng.length})).sendAllProperties=r.sendAllProperties.bind(Qa(r)),r.sendAfterFetch=!1,r.canEmit=!1,r.positions=[],r.radioGroupsLength<=0&&r.warn("Plugin was not provided any valid HTML elements");for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:{}).defaultValue,i=void 0===o?Fg[0]:o;if(qa(this,n),(r=e.call(this,t,"Color-Filter-Plugin",{supportedValues:Fg,initialValue:i,controlName:"Color Vision Selector",featureName:n.colorVisionKey,radioCount:Fg.length})).sendAllProperties=r.sendAllProperties.bind(Qa(r)),r.sendAfterFetch=!1,r.canEmit=!1,r.colors=[],r.radioGroupsLength<=0)return r.warn("Plugin was not provided any valid HTML elements"),Za(r);for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:{}).defaultHitAreaScale,i=void 0===o?.5:o;qa(this,n),r=e.call(this,t,"Hit-Area-Scale-Plugin",{defaultValue:i,featureName:n.hitAreaScaleKey});for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:{}).defaultDragThresholdScale,i=void 0===o?.5:o;qa(this,n),r=e.call(this,t,"Drag-Threshold-Scale-Plugin",{defaultValue:i,featureName:n.dragThresholdScaleKey});for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:{}).defaultHealth,i=void 0===o?.5:o;qa(this,n),r=e.call(this,t,"Health-Scale-Plugin",{defaultValue:i,featureName:n.healthKey});for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:{}).defaultObjectCount,i=void 0===o?.5:o;qa(this,n),r=e.call(this,t,"Object-Count-Plugin",{defaultValue:i,featureName:n.objectCountKey});for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:{}).defaultCompletionPercentage,i=void 0===o?.5:o;qa(this,n),r=e.call(this,t,"Completion-Percentage-Plugin",{defaultValue:i,featureName:n.completionPercentageKey});for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:{}).defaultSpeedScale,i=void 0===o?.5:o;qa(this,n),r=e.call(this,t,"Speed-Scale-Plugin",{defaultValue:i,featureName:n.speedScaleKey});for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:{}).defaultTimersScale,i=void 0===o?.5:o;qa(this,n),r=e.call(this,t,"Timers-Scale-Plugin",{defaultValue:i,featureName:n.timersScaleKey});for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:{}).defaultInputCount,i=void 0===o?.5:o;qa(this,n),r=e.call(this,t,"Input-Count-Plugin",{defaultValue:i,featureName:n.inputCountKey});for(var s=0;s -1\n }\n}\n\nfunction normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name)\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~!]/i.test(name) || name === '') {\n throw new TypeError('Invalid character in header field name: \"' + name + '\"')\n }\n return name.toLowerCase()\n}\n\nfunction normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value)\n }\n return value\n}\n\n// Build a destructive iterator for the value list\nfunction iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift()\n return {done: value === undefined, value: value}\n }\n }\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n }\n }\n\n return iterator\n}\n\nexport function Headers(headers) {\n this.map = {}\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value)\n }, this)\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1])\n }, this)\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name])\n }, this)\n }\n}\n\nHeaders.prototype.append = function(name, value) {\n name = normalizeName(name)\n value = normalizeValue(value)\n var oldValue = this.map[name]\n this.map[name] = oldValue ? oldValue + ', ' + value : value\n}\n\nHeaders.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)]\n}\n\nHeaders.prototype.get = function(name) {\n name = normalizeName(name)\n return this.has(name) ? this.map[name] : null\n}\n\nHeaders.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n}\n\nHeaders.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value)\n}\n\nHeaders.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this)\n }\n }\n}\n\nHeaders.prototype.keys = function() {\n var items = []\n this.forEach(function(value, name) {\n items.push(name)\n })\n return iteratorFor(items)\n}\n\nHeaders.prototype.values = function() {\n var items = []\n this.forEach(function(value) {\n items.push(value)\n })\n return iteratorFor(items)\n}\n\nHeaders.prototype.entries = function() {\n var items = []\n this.forEach(function(value, name) {\n items.push([name, value])\n })\n return iteratorFor(items)\n}\n\nif (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n}\n\nfunction consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true\n}\n\nfunction fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result)\n }\n reader.onerror = function() {\n reject(reader.error)\n }\n })\n}\n\nfunction readBlobAsArrayBuffer(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsArrayBuffer(blob)\n return promise\n}\n\nfunction readBlobAsText(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsText(blob)\n return promise\n}\n\nfunction readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf)\n var chars = new Array(view.length)\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i])\n }\n return chars.join('')\n}\n\nfunction bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength)\n view.set(new Uint8Array(buf))\n return view.buffer\n }\n}\n\nfunction Body() {\n this.bodyUsed = false\n\n this._initBody = function(body) {\n /*\n fetch-mock wraps the Response object in an ES6 Proxy to\n provide useful test harness features such as flush. However, on\n ES5 browsers without fetch or Proxy support pollyfills must be used;\n the proxy-pollyfill is unable to proxy an attribute unless it exists\n on the object before the Proxy is created. This change ensures\n Response.bodyUsed exists on the instance, while maintaining the\n semantic of setting Request.bodyUsed in the constructor before\n _initBody is called.\n */\n this.bodyUsed = this.bodyUsed\n this._bodyInit = body\n if (!body) {\n this._bodyText = ''\n } else if (typeof body === 'string') {\n this._bodyText = body\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString()\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer)\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer])\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body)\n } else {\n this._bodyText = body = Object.prototype.toString.call(body)\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8')\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type)\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n }\n }\n }\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n }\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n var isConsumed = consumed(this)\n if (isConsumed) {\n return isConsumed\n }\n if (ArrayBuffer.isView(this._bodyArrayBuffer)) {\n return Promise.resolve(\n this._bodyArrayBuffer.buffer.slice(\n this._bodyArrayBuffer.byteOffset,\n this._bodyArrayBuffer.byteOffset + this._bodyArrayBuffer.byteLength\n )\n )\n } else {\n return Promise.resolve(this._bodyArrayBuffer)\n }\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n }\n }\n\n this.text = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n }\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n }\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n }\n\n return this\n}\n\n// HTTP methods whose capitalization should be normalized\nvar methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\n\nfunction normalizeMethod(method) {\n var upcased = method.toUpperCase()\n return methods.indexOf(upcased) > -1 ? upcased : method\n}\n\nexport function Request(input, options) {\n if (!(this instanceof Request)) {\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n }\n\n options = options || {}\n var body = options.body\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url\n this.credentials = input.credentials\n if (!options.headers) {\n this.headers = new Headers(input.headers)\n }\n this.method = input.method\n this.mode = input.mode\n this.signal = input.signal\n if (!body && input._bodyInit != null) {\n body = input._bodyInit\n input.bodyUsed = true\n }\n } else {\n this.url = String(input)\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin'\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers)\n }\n this.method = normalizeMethod(options.method || this.method || 'GET')\n this.mode = options.mode || this.mode || null\n this.signal = options.signal || this.signal\n this.referrer = null\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body)\n\n if (this.method === 'GET' || this.method === 'HEAD') {\n if (options.cache === 'no-store' || options.cache === 'no-cache') {\n // Search for a '_' parameter in the query string\n var reParamSearch = /([?&])_=[^&]*/\n if (reParamSearch.test(this.url)) {\n // If it already exists then set the value with the current time\n this.url = this.url.replace(reParamSearch, '$1_=' + new Date().getTime())\n } else {\n // Otherwise add a new '_' parameter to the end with the current time\n var reQueryString = /\\?/\n this.url += (reQueryString.test(this.url) ? '&' : '?') + '_=' + new Date().getTime()\n }\n }\n }\n}\n\nRequest.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n}\n\nfunction decode(body) {\n var form = new FormData()\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=')\n var name = split.shift().replace(/\\+/g, ' ')\n var value = split.join('=').replace(/\\+/g, ' ')\n form.append(decodeURIComponent(name), decodeURIComponent(value))\n }\n })\n return form\n}\n\nfunction parseHeaders(rawHeaders) {\n var headers = new Headers()\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ')\n // Avoiding split via regex to work around a common IE11 bug with the core-js 3.6.0 regex polyfill\n // https://github.com/github/fetch/issues/748\n // https://github.com/zloirock/core-js/issues/751\n preProcessedHeaders\n .split('\\r')\n .map(function(header) {\n return header.indexOf('\\n') === 0 ? header.substr(1, header.length) : header\n })\n .forEach(function(line) {\n var parts = line.split(':')\n var key = parts.shift().trim()\n if (key) {\n var value = parts.join(':').trim()\n headers.append(key, value)\n }\n })\n return headers\n}\n\nBody.call(Request.prototype)\n\nexport function Response(bodyInit, options) {\n if (!(this instanceof Response)) {\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n }\n if (!options) {\n options = {}\n }\n\n this.type = 'default'\n this.status = options.status === undefined ? 200 : options.status\n this.ok = this.status >= 200 && this.status < 300\n this.statusText = options.statusText === undefined ? '' : '' + options.statusText\n this.headers = new Headers(options.headers)\n this.url = options.url || ''\n this._initBody(bodyInit)\n}\n\nBody.call(Response.prototype)\n\nResponse.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n}\n\nResponse.error = function() {\n var response = new Response(null, {status: 0, statusText: ''})\n response.type = 'error'\n return response\n}\n\nvar redirectStatuses = [301, 302, 303, 307, 308]\n\nResponse.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n}\n\nexport var DOMException = global.DOMException\ntry {\n new DOMException()\n} catch (err) {\n DOMException = function(message, name) {\n this.message = message\n this.name = name\n var error = Error(message)\n this.stack = error.stack\n }\n DOMException.prototype = Object.create(Error.prototype)\n DOMException.prototype.constructor = DOMException\n}\n\nexport function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init)\n\n if (request.signal && request.signal.aborted) {\n return reject(new DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest()\n\n function abortXhr() {\n xhr.abort()\n }\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n }\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n var body = 'response' in xhr ? xhr.response : xhr.responseText\n setTimeout(function() {\n resolve(new Response(body, options))\n }, 0)\n }\n\n xhr.onerror = function() {\n setTimeout(function() {\n reject(new TypeError('Network request failed'))\n }, 0)\n }\n\n xhr.ontimeout = function() {\n setTimeout(function() {\n reject(new TypeError('Network request failed'))\n }, 0)\n }\n\n xhr.onabort = function() {\n setTimeout(function() {\n reject(new DOMException('Aborted', 'AbortError'))\n }, 0)\n }\n\n function fixUrl(url) {\n try {\n return url === '' && global.location.href ? global.location.href : url\n } catch (e) {\n return url\n }\n }\n\n xhr.open(request.method, fixUrl(request.url), true)\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false\n }\n\n if ('responseType' in xhr) {\n if (support.blob) {\n xhr.responseType = 'blob'\n } else if (\n support.arrayBuffer &&\n request.headers.get('Content-Type') &&\n request.headers.get('Content-Type').indexOf('application/octet-stream') !== -1\n ) {\n xhr.responseType = 'arraybuffer'\n }\n }\n\n if (init && typeof init.headers === 'object' && !(init.headers instanceof Headers)) {\n Object.getOwnPropertyNames(init.headers).forEach(function(name) {\n xhr.setRequestHeader(name, normalizeValue(init.headers[name]))\n })\n } else {\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value)\n })\n }\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr)\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr)\n }\n }\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n })\n}\n\nfetch.polyfill = true\n\nif (!global.fetch) {\n global.fetch = fetch\n global.Headers = Headers\n global.Request = Request\n global.Response = Response\n}\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","var documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nvar IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = {\n all: documentAll,\n IS_HTMLDDA: IS_HTMLDDA\n};\n","var $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = $documentAll.IS_HTMLDDA ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","var isCallable = require('../internals/is-callable');\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\nmodule.exports = $documentAll.IS_HTMLDDA ? function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList`\nvar documentCreateElement = require('../internals/document-create-element');\n\nvar classList = documentCreateElement('span').classList;\nvar DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype;\n\nmodule.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype;\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n","var $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a function');\n};\n","var uncurryThis = require('../internals/function-uncurry-this-clause');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","var isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","var trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) == 'Array';\n};\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.28.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.28.0/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","module.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","var isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (isConstructor(C) && (C === $Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? $Array : C;\n};\n","var arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","var bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = uncurryThis([].push);\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var IS_FILTER_REJECT = TYPE == 7;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that);\n var length = lengthOfArrayLike(self);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push(target, value); // filterReject\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call -- required for testing\n method.call(null, argument || function () { return 1; }, 1);\n });\n};\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\nmodule.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n} : [].forEach;\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw $TypeError($String(argument) + ' is not an object');\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","var aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","var call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw $TypeError(\"Can't convert object to primitive value\");\n};\n","var call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar handlePrototype = function (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n if (DOMIterables[COLLECTION_NAME]) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype);\n }\n}\n\nhandlePrototype(DOMTokenListPrototype);\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","module.exports = {};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","var NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","module.exports = {};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","var isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n","var defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC) target = target.prototype;\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function (object, key, method) {\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n } catch (error) { /* empty */ }\n};\n","var isCallable = require('../internals/is-callable');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n if (kind == 'keys') return createIterResultObject(index, false);\n if (kind == 'values') return createIterResultObject(target[index], false);\n return createIterResultObject([index, target[index]], false);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nvar values = Iterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n// V8 ~ Chrome 45- bug\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n defineProperty(values, 'name', { value: 'values' });\n} catch (error) { /* empty */ }\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nvar handlePrototype = function (CollectionPrototype, COLLECTION_NAME) {\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype, COLLECTION_NAME);\n}\n\nhandlePrototype(DOMTokenListPrototype, 'DOMTokenList');\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","'use strict';\n/* eslint-disable es/no-array-prototype-indexof -- required for testing */\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar $indexOf = require('../internals/array-includes').indexOf;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeIndexOf = uncurryThis([].indexOf);\n\nvar NEGATIVE_ZERO = !!nativeIndexOf && 1 / nativeIndexOf([1], 1, -0) < 0;\nvar FORCED = NEGATIVE_ZERO || !arrayMethodIsStrict('indexOf');\n\n// `Array.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: FORCED }, {\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n var fromIndex = arguments.length > 1 ? arguments[1] : undefined;\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? nativeIndexOf(this, searchElement, fromIndex) || 0\n : $indexOf(this, searchElement, fromIndex);\n }\n});\n","var $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !arrayMethodHasSpeciesSupport('concat');\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = lengthOfArrayLike(E);\n doesNotExceedSafeInteger(n + len);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n doesNotExceedSafeInteger(n + 1);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\nvar concat = uncurryThis([].concat);\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es/no-symbol -- safe\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n// eslint-disable-next-line es/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, {\n assign: assign\n});\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n defineBuiltIn(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","var classof = require('../internals/classof-raw');\n\nmodule.exports = typeof process != 'undefined' && classof(process) == 'process';\n","var global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar Dispatch = global.Dispatch;\nvar Function = global.Function;\nvar MessageChannel = global.MessageChannel;\nvar String = global.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar $location, defer, channel, port;\n\nfails(function () {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n $location = global.location;\n});\n\nvar run = function (id) {\n if (hasOwn(queue, id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar eventListener = function (event) {\n run(event.data);\n};\n\nvar globalPostMessageDefer = function (id) {\n // old engines have not location.origin\n global.postMessage(String(id), $location.protocol + '//' + $location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(handler) {\n validateArgumentsLength(arguments.length, 1);\n var fn = isCallable(handler) ? handler : Function(handler);\n var args = arraySlice(arguments, 1);\n queue[++counter] = function () {\n apply(fn, undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = eventListener;\n defer = bind(port.postMessage, port);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n isCallable(global.postMessage) &&\n !global.importScripts &&\n $location && $location.protocol !== 'file:' &&\n !fails(globalPostMessageDefer)\n ) {\n defer = globalPostMessageDefer;\n global.addEventListener('message', eventListener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var makeBuiltIn = require('../internals/make-built-in');\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n return defineProperty.f(target, name, descriptor);\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineBuiltInAccessor(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","var isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw $TypeError('Incorrect invocation');\n};\n","var isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a constructor');\n};\n","var anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || isNullOrUndefined(S = anObject(C)[SPECIES]) ? defaultConstructor : aConstructor(S);\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","var $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw $TypeError('Not enough arguments');\n return passed;\n};\n","var userAgent = require('../internals/engine-user-agent');\n\n// eslint-disable-next-line redos/no-vulnerable -- safe\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","var Queue = function () {\n this.head = null;\n this.tail = null;\n};\n\nQueue.prototype = {\n add: function (item) {\n var entry = { item: item, next: null };\n var tail = this.tail;\n if (tail) tail.next = entry;\n else this.head = entry;\n this.tail = entry;\n },\n get: function () {\n var entry = this.head;\n if (entry) {\n var next = this.head = entry.next;\n if (next === null) this.tail = null;\n return entry.item;\n }\n }\n};\n\nmodule.exports = Queue;\n","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar macrotask = require('../internals/task').set;\nvar Queue = require('../internals/queue');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_IOS_PEBBLE = require('../internals/engine-is-ios-pebble');\nvar IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar document = global.document;\nvar process = global.process;\nvar Promise = global.Promise;\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar microtask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\nvar notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!microtask) {\n var queue = new Queue();\n\n var flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (fn = queue.get()) try {\n fn();\n } catch (error) {\n if (queue.head) notify();\n throw error;\n }\n if (parent) parent.enter();\n };\n\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n // workaround of WebKit ~ iOS Safari 10.1 bug\n promise.constructor = Promise;\n then = bind(promise.then, promise);\n notify = function () {\n then(flush);\n };\n // Node.js without promises\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessage\n // - onreadystatechange\n // - setTimeout\n } else {\n // `webpack` dev server bug on IE global methods - use bind(fn, global)\n macrotask = bind(macrotask, global);\n notify = function () {\n macrotask(flush);\n };\n }\n\n microtask = function (fn) {\n if (!queue.head) notify();\n queue.add(fn);\n };\n}\n\nmodule.exports = microtask;\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && typeof Pebble != 'undefined';\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","/* global Deno -- Deno case */\nmodule.exports = typeof Deno == 'object' && Deno && typeof Deno.version == 'object';\n","var IS_DENO = require('../internals/engine-is-deno');\nvar IS_NODE = require('../internals/engine-is-node');\n\nmodule.exports = !IS_DENO && !IS_NODE\n && typeof window == 'object'\n && typeof document == 'object';\n","var global = require('../internals/global');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar isCallable = require('../internals/is-callable');\nvar isForced = require('../internals/is-forced');\nvar inspectSource = require('../internals/inspect-source');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_DENO = require('../internals/engine-is-deno');\nvar IS_PURE = require('../internals/is-pure');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar SPECIES = wellKnownSymbol('species');\nvar SUBCLASSING = false;\nvar NATIVE_PROMISE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent);\n\nvar FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () {\n var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor);\n var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor);\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution\n if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['finally'])) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (!V8_VERSION || V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) {\n // Detect correctness of subclassing with @@species support\n var promise = new NativePromiseConstructor(function (resolve) { resolve(1); });\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n if (!SUBCLASSING) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n } return !GLOBAL_CORE_JS_PROMISE && (IS_BROWSER || IS_DENO) && !NATIVE_PROMISE_REJECTION_EVENT;\n});\n\nmodule.exports = {\n CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR,\n REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT,\n SUBCLASSING: SUBCLASSING\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar $TypeError = TypeError;\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw $TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar IS_NODE = require('../internals/engine-is-node');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar aCallable = require('../internals/a-callable');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar perform = require('../internals/perform');\nvar Queue = require('../internals/queue');\nvar InternalStateModule = require('../internals/internal-state');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar PromiseConstructorDetection = require('../internals/promise-constructor-detection');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\nvar PROMISE = 'Promise';\nvar FORCED_PROMISE_CONSTRUCTOR = PromiseConstructorDetection.CONSTRUCTOR;\nvar NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT;\nvar NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar setInternalState = InternalStateModule.set;\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar PromiseConstructor = NativePromiseConstructor;\nvar PromisePrototype = NativePromisePrototype;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\n\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\n\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && isCallable(then = it.then) ? then : false;\n};\n\nvar callReaction = function (reaction, state) {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n call(then, result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n microtask(function () {\n var reactions = state.reactions;\n var reaction;\n while (reaction = reactions.get()) {\n callReaction(reaction, state);\n }\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n call(then, value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED_PROMISE_CONSTRUCTOR) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromisePrototype);\n aCallable(executor);\n call(Internal, this);\n var state = getInternalPromiseState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n\n PromisePrototype = PromiseConstructor.prototype;\n\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: new Queue(),\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n state.parent = true;\n reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;\n reaction.fail = isCallable(onRejected) && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n if (state.state == PENDING) state.reactions.add(reaction);\n else microtask(function () {\n callReaction(reaction, state);\n });\n return reaction.promise;\n });\n\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalPromiseState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && isCallable(NativePromiseConstructor) && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n if (!NATIVE_PROMISE_SUBCLASSING) {\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n defineBuiltIn(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n call(nativeThen, that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n }\n\n // make `.constructor === Promise` work for native promise-based APIs\n try {\n delete NativePromisePrototype.constructor;\n } catch (error) { /* empty */ }\n\n // make `instanceof Promise` work for native promise-based APIs\n if (setPrototypeOf) {\n setPrototypeOf(NativePromisePrototype, PromisePrototype);\n }\n }\n}\n\n$({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n","module.exports = function (a, b) {\n try {\n // eslint-disable-next-line no-console -- safe\n arguments.length == 1 ? console.error(a) : console.error(a, b);\n } catch (error) { /* empty */ }\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","var call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw $TypeError(tryToString(argument) + ' is not iterable');\n};\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","var bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_RECORD = !!(options && options.IS_RECORD);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_RECORD) {\n iterator = iterable.iterator;\n } else if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw $TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = IS_RECORD ? iterable.next : iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\nmodule.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) {\n NativePromiseConstructor.all(iterable).then(undefined, function () { /* empty */ });\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.all` method\n// https://tc39.es/ecma262/#sec-promise.all\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call($promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// `Promise.prototype.catch` method\n// https://tc39.es/ecma262/#sec-promise.prototype.catch\n$({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR, real: true }, {\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n});\n\n// makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['catch'];\n if (NativePromisePrototype['catch'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'catch', method, { unsafe: true });\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.race` method\n// https://tc39.es/ecma262/#sec-promise.race\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n iterate(iterable, function (promise) {\n call($promiseResolve, C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\n// `Promise.reject` method\n// https://tc39.es/ecma262/#sec-promise.reject\n$({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n reject: function reject(r) {\n var capability = newPromiseCapabilityModule.f(this);\n call(capability.reject, undefined, r);\n return capability.promise;\n }\n});\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar promiseResolve = require('../internals/promise-resolve');\n\nvar PromiseConstructorWrapper = getBuiltIn('Promise');\nvar CHECK_WRAPPER = IS_PURE && !FORCED_PROMISE_CONSTRUCTOR;\n\n// `Promise.resolve` method\n// https://tc39.es/ecma262/#sec-promise.resolve\n$({ target: 'Promise', stat: true, forced: IS_PURE || FORCED_PROMISE_CONSTRUCTOR }, {\n resolve: function resolve(x) {\n return promiseResolve(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor : this, x);\n }\n});\n","var classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","'use strict';\n/* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */\n/* eslint-disable regexp/no-useless-quantifier -- testing */\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar regexpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar shared = require('../internals/shared');\nvar create = require('../internals/object-create');\nvar getInternalState = require('../internals/internal-state').get;\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar nativeReplace = shared('native-string-replace', String.prototype.replace);\nvar nativeExec = RegExp.prototype.exec;\nvar patchedExec = nativeExec;\nvar charAt = uncurryThis(''.charAt);\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n call(nativeExec, re1, 'a');\n call(nativeExec, re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG;\n\nif (PATCH) {\n patchedExec = function exec(string) {\n var re = this;\n var state = getInternalState(re);\n var str = toString(string);\n var raw = state.raw;\n var result, reCopy, lastIndex, match, i, object, group;\n\n if (raw) {\n raw.lastIndex = re.lastIndex;\n result = call(patchedExec, raw, str);\n re.lastIndex = raw.lastIndex;\n return result;\n }\n\n var groups = state.groups;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = call(regexpFlags, re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = replace(flags, 'y', '');\n if (indexOf(flags, 'g') === -1) {\n flags += 'g';\n }\n\n strCopy = stringSlice(str, re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt(str, re.lastIndex - 1) !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = call(nativeExec, sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = stringSlice(match.input, charsAdded);\n match[0] = stringSlice(match[0], charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn't work for /(.?)?/\n call(nativeReplace, match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n if (match && groups) {\n match.groups = object = create(null);\n for (i = 0; i < groups.length; i++) {\n group = groups[i];\n object[group[0]] = match[group[1]];\n }\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.hasIndices) result += 'd';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.unicodeSets) result += 'v';\n if (that.sticky) result += 'y';\n return result;\n};\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nvar UNSUPPORTED_Y = fails(function () {\n var re = $RegExp('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\n// UC Browser bug\n// https://github.com/zloirock/core-js/issues/1008\nvar MISSED_STICKY = UNSUPPORTED_Y || fails(function () {\n return !$RegExp('a', 'y').sticky;\n});\n\nvar BROKEN_CARET = UNSUPPORTED_Y || fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = $RegExp('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\n\nmodule.exports = {\n BROKEN_CARET: BROKEN_CARET,\n MISSED_STICKY: MISSED_STICKY,\n UNSUPPORTED_Y: UNSUPPORTED_Y\n};\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('.', 's');\n return !(re.dotAll && re.exec('\\n') && re.flags === 's');\n});\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('(?b)', 'g') -> /(?b)/g and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('(?b)', 'g');\n return re.exec('b').groups.a !== 'b' ||\n 'b'.replace(re, '$c') !== 'bc';\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n// `RegExp.prototype.exec` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","/**\n * Provide feature detection\n * @class Features\n */\nexport class Features {\n /**\n * If the browser has WebGL support\n * @property {boolean} webgl\n */\n static get webgl() {\n const canvas = document.createElement('canvas');\n\n return !!(\n canvas &&\n (canvas.getContext('webgl') || canvas.getContext('experimental-webgl'))\n );\n }\n\n /**\n * If the browser has Canvas support\n * @property {boolean} canvas\n */\n static get canvas() {\n const canvas = document.createElement('canvas');\n return !!(canvas !== null && canvas.getContext && canvas.getContext('2d'));\n }\n\n /**\n * If the browser has WebAudio API support\n * @property {boolean} webaudio\n */\n static get webaudio() {\n return 'webkitAudioContext' in window || 'AudioContext' in window;\n }\n\n /**\n * If the browser has HTMLAudio support\n * @property {boolean} htmlAudio\n */\n static get htmlAudio() {\n return 'HTMLAudioElement' in window;\n }\n\n /**\n * If the browser has Web Sockets API\n * @property {boolean} websockets\n */\n static get websockets() {\n return 'WebSocket' in window || 'MozWebSocket' in window;\n }\n\n /**\n * If the browser has Geolocation API\n * @property {boolean} geolocation\n */\n static get geolocation() {\n return 'geolocation' in navigator;\n }\n\n /**\n * If the browser has Web Workers API\n * @property {boolean} webworkers\n */\n static get webworkers() {\n return 'function' === typeof Worker;\n }\n\n /**\n * If the browser has touch\n * @property {boolean} touch\n */\n static get touch() {\n return !!(\n 'ontouchstart' in window || // iOS & Android\n (navigator.msPointerEnabled && navigator.msMaxTouchPoints > 0) || // IE10\n (navigator.pointerEnabled && navigator.maxTouchPoints > 0)\n ); // IE11+\n }\n\n /**\n * Test for basic browser compatiliblity\n * @method basic\n * @static\n * @return {String} The error message, if fails\n */\n static basic() {\n if (!Features.canvas) {\n return 'Browser does not support canvas';\n } else if (!Features.webaudio && !Features.htmlAudio) {\n return 'Browser does not support WebAudio or HTMLAudio';\n }\n return null;\n }\n\n /**\n * See if the current bowser has the correct features\n * @method test\n * @static\n * @param {object} capabilities The capabilities\n * @param {object} [capabilities.features] The features\n * @param {object} [capabilities.features.webgl] WebGL required\n * @param {object} [capabilities.features.geolocation] Geolocation required\n * @param {object} [capabilities.features.webworkers] Web Workers API required\n * @param {object} [capabilities.features.webaudio] WebAudio API required\n * @param {object} [capabilities.features.websockets] WebSockets required\n * @param {object} [capabilities.sizes] The sizes\n * @param {Boolean} [capabilities.sizes.xsmall] Screens < 480\n * @param {Boolean} [capabilities.sizes.small] Screens < 768\n * @param {Boolean} [capabilities.sizes.medium] Screens < 992\n * @param {Boolean} [capabilities.sizes.large] Screens < 1200\n * @param {Boolean} [capabilities.sizes.xlarge] Screens >= 1200\n * @param {object} [capabilities.ui] The ui\n * @param {Boolean} [capabilities.ui.touch] Touch capable\n * @return {String|null} The error, or else returns null\n */\n static test(capabilities) {\n // check for basic compatibility\n const err = this.basic();\n if (err) {\n return err;\n }\n\n const features = capabilities.features;\n const ui = capabilities.ui;\n const sizes = capabilities.sizes;\n\n for (const name in features) {\n if (features[name] === true && !Features[name]) {\n // Failed built-in feature check\n return 'Browser does not support ' + name;\n }\n }\n\n // Failed negative touch requirement\n if (!ui.touch && Features.touch) {\n return 'Game does not support touch input';\n }\n\n // Check the sizes\n const size = Math.max(window.screen.width, window.screen.height);\n\n if (!sizes.xsmall && size < 480) {\n return 'Game doesn\\'t support extra small screens';\n }\n if (!sizes.small && size < 768) {\n return 'Game doesn\\'t support small screens';\n }\n if (!sizes.medium && size < 992) {\n return 'Game doesn\\'t support medium screens';\n }\n if (!sizes.large && size < 1200) {\n return 'Game doesn\\'t support large screens';\n }\n if (!sizes.xlarge && size >= 1200) {\n return 'Game doesn\\'t support extra large screens';\n }\n return null;\n }\n\n /**\n * Returns browser feature support info\n * @returns {string}\n */\n static get info() {\n return `Browser Feature Detection\n\t\t\t\tCanvas support ${Features.canvas ? '\\u2713' : '\\u00D7'}\n\t\t\t\tWebGL support ${Features.webgl ? '\\u2713' : '\\u00D7'}\n\t\t\t\tWebAudio support ${Features.webAudio ? '\\u2713' : '\\u00D7'}`;\n }\n}\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return createIterResultObject(undefined, true);\n point = charAt(string, index);\n state.index += point.length;\n return createIterResultObject(point, false);\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $find = require('../internals/array-iteration').find;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\nif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.find` method\n// https://tc39.es/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n","function t(t,e){return t(e={exports:{}},e.exports),e.exports}var e=t((function(t){function e(t){return(e=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function n(r){return\"function\"==typeof Symbol&&\"symbol\"===e(Symbol.iterator)?t.exports=n=function(t){return e(t)}:t.exports=n=function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":e(t)},n(r)}t.exports=n}));var n=function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")};function r(t,e){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:0;this._listeners[t]||(this._listeners[t]=[]),e._priority=parseInt(n)||0,-1===this._listeners[t].indexOf(e)&&(this._listeners[t].push(e),this._listeners[t].length>1&&this._listeners[t].sort(this.listenerSorter))}},{key:\"listenerSorter\",value:function(t,e){return t._priority-e._priority}},{key:\"off\",value:function(t,e){if(void 0!==this._listeners[t])if(void 0!==e){var n=this._listeners[t].indexOf(e);-11&&void 0!==arguments[1]?arguments[1]:{};if(\"string\"==typeof t&&(t={type:t,data:\"object\"===e(n)&&null!==n?n:{}}),void 0!==this._listeners[t.type])for(var r=this._listeners[t.type].length-1;r>=0;r--)this._listeners[t.type][r](t)}},{key:\"destroy\",value:function(){this._listeners={}}}]),t}(),s=t((function(t){var e=function(t){var e,n=Object.prototype,r=n.hasOwnProperty,o=\"function\"==typeof Symbol?Symbol:{},i=o.iterator||\"@@iterator\",s=o.asyncIterator||\"@@asyncIterator\",a=o.toStringTag||\"@@toStringTag\";function c(t,e,n,r){var o=e&&e.prototype instanceof d?e:d,i=Object.create(o.prototype),s=new S(r||[]);return i._invoke=function(t,e,n){var r=h;return function(o,i){if(r===f)throw new Error(\"Generator is already running\");if(r===p){if(\"throw\"===o)throw i;return P()}for(n.method=o,n.arg=i;;){var s=n.delegate;if(s){var a=O(s,n);if(a){if(a===y)continue;return a}}if(\"next\"===n.method)n.sent=n._sent=n.arg;else if(\"throw\"===n.method){if(r===h)throw r=p,n.arg;n.dispatchException(n.arg)}else\"return\"===n.method&&n.abrupt(\"return\",n.arg);r=f;var c=u(t,e,n);if(\"normal\"===c.type){if(r=n.done?p:l,c.arg===y)continue;return{value:c.arg,done:n.done}}\"throw\"===c.type&&(r=p,n.method=\"throw\",n.arg=c.arg)}}}(t,n,s),i}function u(t,e,n){try{return{type:\"normal\",arg:t.call(e,n)}}catch(t){return{type:\"throw\",arg:t}}}t.wrap=c;var h=\"suspendedStart\",l=\"suspendedYield\",f=\"executing\",p=\"completed\",y={};function d(){}function v(){}function g(){}var m={};m[i]=function(){return this};var w=Object.getPrototypeOf,b=w&&w(w(j([])));b&&b!==n&&r.call(b,i)&&(m=b);var _=g.prototype=d.prototype=Object.create(m);function x(t){[\"next\",\"throw\",\"return\"].forEach((function(e){t[e]=function(t){return this._invoke(e,t)}}))}function L(t){function e(n,o,i,s){var a=u(t[n],t,o);if(\"throw\"!==a.type){var c=a.arg,h=c.value;return h&&\"object\"==typeof h&&r.call(h,\"__await\")?Promise.resolve(h.__await).then((function(t){e(\"next\",t,i,s)}),(function(t){e(\"throw\",t,i,s)})):Promise.resolve(h).then((function(t){c.value=t,i(c)}),(function(t){return e(\"throw\",t,i,s)}))}s(a.arg)}var n;this._invoke=function(t,r){function o(){return new Promise((function(n,o){e(t,r,n,o)}))}return n=n?n.then(o,o):o()}}function O(t,n){var r=t.iterator[n.method];if(r===e){if(n.delegate=null,\"throw\"===n.method){if(t.iterator.return&&(n.method=\"return\",n.arg=e,O(t,n),\"throw\"===n.method))return y;n.method=\"throw\",n.arg=new TypeError(\"The iterator does not provide a 'throw' method\")}return y}var o=u(r,t.iterator,n.arg);if(\"throw\"===o.type)return n.method=\"throw\",n.arg=o.arg,n.delegate=null,y;var i=o.arg;return i?i.done?(n[t.resultName]=i.value,n.next=t.nextLoc,\"return\"!==n.method&&(n.method=\"next\",n.arg=e),n.delegate=null,y):i:(n.method=\"throw\",n.arg=new TypeError(\"iterator result is not an object\"),n.delegate=null,y)}function E(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function k(t){var e=t.completion||{};e.type=\"normal\",delete e.arg,t.completion=e}function S(t){this.tryEntries=[{tryLoc:\"root\"}],t.forEach(E,this),this.reset(!0)}function j(t){if(t){var n=t[i];if(n)return n.call(t);if(\"function\"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,s=function n(){for(;++o=0;--i){var s=this.tryEntries[i],a=s.completion;if(\"root\"===s.tryLoc)return o(\"end\");if(s.tryLoc<=this.prev){var c=r.call(s,\"catchLoc\"),u=r.call(s,\"finallyLoc\");if(c&&u){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,\"finallyLoc\")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),k(n),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if(\"throw\"===r.type){var o=r.arg;k(n)}return o}}throw new Error(\"illegal catch attempt\")},delegateYield:function(t,n,r){return this.delegate={iterator:j(t),resultName:n,nextLoc:r},\"next\"===this.method&&(this.arg=e),y}},t}(t.exports);try{regeneratorRuntime=e}catch(t){Function(\"r\",\"regeneratorRuntime = r\")(e)}}));var a=function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t};var c=function(t,n){return!n||\"object\"!==e(n)&&\"function\"!=typeof n?a(t):n},u=t((function(t){function e(n){return t.exports=e=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},e(n)}t.exports=e}));var h=function(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==(t=u(t)););return t},l=t((function(t){function e(n,r,o){return\"undefined\"!=typeof Reflect&&Reflect.get?t.exports=e=Reflect.get:t.exports=e=function(t,e,n){var r=h(t,e);if(r){var o=Object.getOwnPropertyDescriptor(r,e);return o.get?o.get.call(n):o.value}},e(n,r,o||n)}t.exports=e})),f=t((function(t){function e(n,r){return t.exports=e=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},e(n,r)}t.exports=e}));var p=function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&f(t,e)},y=function(t){function r(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:100*Math.random()|0;return n(this,r),(t=c(this,u(r).call(this))).id=\"BELLHOP:\".concat(e),t.connected=!1,t.isChild=!0,t.connecting=!1,t.debug=!1,t.origin=\"*\",t._sendLater=[],t.iframe=null,t.receive=t.receive.bind(a(t)),t}return p(r,i),o(r,[{key:\"receive\",value:function(t){if(this.target===t.source)if(this.logDebugMessage(!0,t),\"connected\"===t.data)this.onConnectionReceived(t.data);else{var n=t.data;if(\"string\"==typeof n)try{n=JSON.parse(n)}catch(t){console.warn(\"Bellhop error: \",t)}this.connected&&\"object\"===e(n)&&n.type&&this.trigger(n)}}},{key:\"onConnectionReceived\",value:function(t){if(this.connecting=!1,this.connected=!0,!this.isChild){if(!this.target)return;this.target.postMessage(t,this.origin)}for(var e=0;e1&&void 0!==arguments[1]?arguments[1]:\"*\";this.connecting||(this.disconnect(),this.connecting=!0,t instanceof HTMLIFrameElement&&(this.iframe=t),this.isChild=void 0===t,this.supported=!0,this.isChild&&(this.supported=window!=t),this.origin=e,window.addEventListener(\"message\",this.receive),this.isChild&&(window===this.target?this.trigger(\"failed\"):this.target.postMessage(\"connected\",this.origin)))}},{key:\"disconnect\",value:function(){this.connected=!1,this.connecting=!1,this.origin=null,this.iframe=null,this.isChild=!0,this._sendLater.length=0,window.removeEventListener(\"message\",this.receive)}},{key:\"send\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(\"string\"!=typeof t)throw\"The event type must be a string\";var n={type:t,data:e};this.logDebugMessage(!1,n),this.connecting?this._sendLater.push(n):this.target.postMessage(JSON.stringify(n),this.origin)}},{key:\"fetch\",value:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(!this.connecting&&!this.connected)throw\"No connection, please call connect() first\";var i=function t(r){o&&n.off(r.type,t),e(r)};this.on(t,i),this.send(t,r)}},{key:\"respond\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=this,o=function t(o){return s.async((function(i){for(;;)switch(i.prev=i.next){case 0:if(n&&r.off(o,t),\"function\"!=typeof e){i.next=10;break}return i.t0=r,i.t1=o.type,i.next=6,s.awrap(e());case 6:i.t2=i.sent,i.t0.send.call(i.t0,i.t1,i.t2),i.next=11;break;case 10:r.send(o.type,e);case 11:case\"end\":return i.stop()}}))};this.on(t,o)}},{key:\"logDebugMessage\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=arguments.length>1?arguments[1]:void 0;this.debug&&\"function\"==typeof this.debug?this.debug({isChild:this.isChild,received:t,message:e}):this.debug&&console.log(\"Bellhop Instance (\".concat(this.isChild?\"Child\":\"Parent\",\") \").concat(t?\"Receieved\":\"Sent\"),e)}},{key:\"destroy\",value:function(){l(u(r.prototype),\"destroy\",this).call(this),this.disconnect(),this._sendLater.length=0}},{key:\"target\",get:function(){return this.isChild?window.parent:this.iframe.contentWindow}}]),r}();export{y as Bellhop,i as BellhopEventDispatcher};\n//# sourceMappingURL=bellhop.js.map\n","/**\n * @typedef {import('./base-plugins/BasePlugin').BasePlugin} BasePlugin\n */\nimport { Bellhop } from 'bellhop-iframe';\n/**\n *\n *\n * @export\n * @class PluginManager\n */\nexport default class PluginManager {\n /**\n *Creates an instance of PluginManager.\n * @memberof PluginManager\n */\n constructor({ plugins = [] }) {\n this.client = new Bellhop();\n // @ts-ignore\n this.client.hidden = this.client.receive.bind(this.client);\n // @ts-ignore\n this.client.hiddenSend = this.client.send.bind(this.client);\n this.client.receive = function (event) {\n this.hidden(event);\n }.bind(this.client);\n this.client.send = function (event, data) {\n this.hiddenSend(event, data);\n }.bind(this.client);\n\n this.plugins = plugins;\n }\n\n /**\n *\n *\n * @returns\n * @memberof PluginManager\n */\n setupPlugins() {\n const preloads = [];\n for (let i = 0, l = this.plugins.length; i < l; i++) {\n if (!this.plugins[i].preload) {\n continue;\n }\n\n preloads.push(\n this.plugins[i].preload(this).catch(function preloadFail(error) {\n this.plugins[i].preloadFailed = true;\n console.warn(this.plugins[i].name, 'Preload Failed:', error);\n }.bind(this))\n );\n }\n\n // ~wait for all preloads to resolve\n return Promise.all(preloads).then(() => {\n // Remove plugins that fail to load.\n this.plugins = this.plugins.filter(\n plugin => plugin.preloadFailed !== true\n );\n\n //init\n this.plugins.forEach(plugin => {\n if (!plugin.init) {\n return;\n }\n\n plugin.init(this);\n });\n\n //start\n this.plugins.forEach(plugin => {\n if (!plugin.start) {\n return;\n }\n plugin.start(this);\n });\n });\n }\n\n /**\n * Registers a plugin to be used by PluginManagers, sorting it by priority order.\n * @param {BasePlugin} plugin The plugin to register.\n */\n uses(plugin) {\n this.plugins.push(plugin);\n }\n\n /**\n * Finds a plugin by name.\n * @param {string} name The name of the plugin.\n * @returns {BasePlugin}\n */\n getPlugin(name) {\n return this.plugins.find(function (plugin) {\n return plugin.name === name;\n });\n }\n}\n","import 'whatwg-fetch';\n\nimport { Features } from './Features';\nimport PluginManager from './PluginManager';\n// @ts-ignore\nimport { version } from '../package.json';\n\n/**\n * The application container\n * @class Container\n * @property {Bellhop} client Communication layer between the container and application\n * @property {boolean} loaded Check to see if a application is loaded\n * @property {boolean} loading Check to see if a application is loading\n * @property {object} release The current release data\n * @property {HTMLIFrameElement} iframe The DOM object for the iframe\n * @static @property {string} version The current version of the library\n */\nexport class Container extends PluginManager {\n /**\n *Creates an instance of Container.\n * @param {object} config\n * @param {string | HTMLIFrameElement} iframeOrSelector\n * @param {Array | null} [config.plugins]\n * @param {object | null} [config.context={}]\n * @memberof Container\n */\n constructor(iframeOrSelector, { plugins, context = {} } = {}) {\n super({ plugins });\n\n this.iframe = iframeOrSelector instanceof HTMLIFrameElement ? iframeOrSelector : document.querySelector(iframeOrSelector);\n\n if (null === this.iframe) {\n throw new Error('No iframe was found with the provided selector');\n }\n\n this.loaded = false;\n this.loading = false;\n this.release = null;\n\n // context object that plugins can pick up on\n this._context = context;\n\n this.onLoading = this.onLoading.bind(this);\n this.onLoadDone = this.onLoadDone.bind(this);\n this.onLoadDone = this.onLoadDone.bind(this);\n this.onEndGame = this.onEndGame.bind(this);\n this.onLocalError = this.onLocalError.bind(this);\n\n this.initClient();\n this.setupPlugins();\n }\n\n /**\n * The game is starting to load\n * @memberof Container\n */\n onLoading() {\n this.client.trigger('opening');\n }\n\n /**\n * Reset the mutes for audio and captions\n * @memberof Container\n */\n onLoadDone() {\n this.loading = false;\n this.loaded = true;\n this.iframe.classList.remove('loading');\n\n this.client.trigger('opened');\n }\n\n /**\n * The application ended and destroyed itself\n * @memberof Container\n */\n onEndGame() {\n this.reset();\n }\n /**\n * Handle the local errors\n * @method onLocalError\n * @private\n * @param {Event} $event Bellhop event\n */\n onLocalError($event) {\n console.error('SpringRoll Container error: ', $event, new Error().stack);\n }\n\n /**\n * Reset all the buttons back to their original setting\n * and clear the iframe.\n * @memberof Container\n */\n reset() {\n const wasLoaded = this.loaded || this.loading;\n\n if (wasLoaded) {\n this.client.trigger('closed');\n }\n\n // Reset state\n this.loaded = false;\n this.loading = false;\n\n // Clear the iframe src location\n this.iframe.setAttribute('src', '');\n this.iframe.classList.remove('loading');\n }\n\n /**\n * Set up communication layer between site and application.\n * May be called from subclasses if they create/destroy Bellhop instances.\n * @memberof Container\n */\n initClient() {\n //Handle bellhop events coming from the application\n this.client.on('loading', this.onLoading);\n this.client.on('loaded', this.onLoadDone);\n this.client.on('loadDone', this.onLoadDone);\n this.client.on('endGame', this.onEndGame);\n this.client.on('localError', this.onLocalError);\n // @ts-ignore\n this.client.connect(this.iframe);\n }\n\n /**\n * If there was an error when closing, reset the container\n * @memberof Container\n */\n _onCloseFailed() {\n this.reset(); // force close the app\n }\n\n /**\n * Open a application or path\n * @param {string} userPath The full path to the application to load\n * @param {object} [userOptions] The open options\n * @param {boolean} [userOptions.singlePlay=false] If we should play in single play mode\n * @param {object | null} [userOptions.playOptions=null] The optional play options\n * @memberof Container\n */\n _internalOpen(userPath, { singlePlay = false, playOptions = null } = {}) {\n const options = { singlePlay, playOptions };\n this.reset();\n\n this.loading = true;\n this.initClient();\n\n const err = Features.basic();\n if (err) {\n console.error('ERROR:', err);\n this.client.trigger('unsupported');\n }\n\n let path = userPath;\n if (null !== options.playOptions) {\n const playOptionsQueryString =\n 'playOptions=' +\n encodeURIComponent(JSON.stringify(options.playOptions));\n\n path =\n -1 === userPath.indexOf('?')\n ? `${userPath}?${playOptionsQueryString}`\n : `${userPath}&${playOptionsQueryString}`;\n }\n\n this.iframe.classList.add('loading');\n this.iframe.setAttribute('src', path);\n\n this.client.respond('singlePlay', singlePlay);\n this.client.respond('playOptions', playOptions);\n this.client.trigger('open');\n }\n\n /**\n *\n *\n * @param {string} path\n * @param {object} [options={}]\n * @memberof Container\n */\n openPath(path, options = {}) {\n // This should be deprecated, support for old function signature\n if ('object' !== typeof options) {\n console.warn(\n 'SpringRoll Container.openPath was passed a invalid options parameter. Using default parameters instead'\n );\n options = {};\n }\n\n this._internalOpen(\n path,\n Object.assign(\n {\n singlePlay: false,\n playOptions: {}\n },\n options\n )\n );\n }\n\n /**\n * Open application based on an API Call to SpringRoll Connect\n * @param {string} api\n * @param {object} options\n * @param {string} [options.query='']\n * @param {boolean} [options.singlePlay=false]\n * @param {null | object} [options.playOptions=null]\n * @returns {Promise}\n * @memberof Container\n */\n async openRemote(\n api,\n { query = '', singlePlay = false, playOptions = null } = {}\n ) {\n this.release = null;\n\n const response = await fetch(api, {\n headers: {\n 'Content-Type': 'application/json'\n }\n });\n\n const json = await response.json();\n\n // if SpringRollConnect denoted that something failed, send that error back\n if (!json.success) {\n throw new Error(json.error);\n }\n\n // If the browser doesn't support the capabilities requested by this game, also fail.\n const release = json.data;\n const error = Features.test(release.capabilities);\n if (error) {\n this.client.trigger('unsupported', { error });\n throw new Error(error);\n }\n\n // otherwise, open the game\n this.release = release;\n this._internalOpen(release.url + query, {\n singlePlay,\n playOptions\n });\n }\n\n /**\n * Destroy and don't use after this\n * @memberof Container\n */\n destroy() {\n this.reset();\n\n this.iframe = null;\n this.options = null;\n this.release = null;\n }\n\n /**\n * Tell the application to start closing\n * @memberof Container\n */\n close() {\n if (this.loading || this.loaded) {\n this.client.trigger('close');\n // Start the close\n this.client.send('close');\n } else {\n this.reset();\n }\n }\n\n /**\n * the current _context object\n * @readonly\n * @memberof Container\n * @return {object}\n */\n get context() {\n return this._context;\n }\n\n /**\n * sets _context object to new object\n * @param {object} context\n * @memberof Container\n */\n set context(newContext) {\n if (typeof newContext !== 'object') {\n console.error('[SpringRollContainer] Context: new context provided is not an object');\n return;\n }\n this._context = newContext;\n }\n\n\n\n /**\n * The current version of SpringRollContainer\n * @readonly\n * @static\n * @return {string}\n * @memberof Container\n */\n static get version() {\n return version;\n }\n}\n","/**\n * Handle the page visiblity change, if supported. Application uses one of these to\n * monitor page visibility. It is suggested that you listen to `pause`, `paused`,\n * or `resumed` events on the Application instead of using one of these yourself.\n *\n * @export\n * @class PageVisibility\n * @constructor\n * @param {Function} onFocus Callback when the page becomes visible\n * @param {Function} onBlur Callback when the page loses visibility\n */\nexport class PageVisibility {\n /**\n *Creates an instance of PageVisibility.\n * @param { function } [onFocus=function() {}]\n * @param { function } [onBlur=function() {}]\n * @memberof PageVisibility\n */\n constructor(onFocus = function() {}, onBlur = function() {}) {\n this._onFocus = onFocus;\n this._onBlur = onBlur;\n this.onFocus = function(e) {\n if (this.enabled) {\n this._onFocus(e);\n }\n }.bind(this);\n this.onBlur = function(e) {\n if (this.enabled) {\n this._onBlur(e);\n }\n }.bind(this);\n this._enabled = false;\n this.enabled = true;\n\n this.onToggle = this.onToggle.bind(this);\n }\n\n /**\n * Disable the detection\n * @memberof PageVisibility\n */\n destroy() {\n this.enabled = false;\n this.onToggle = null;\n this.onFocus = null;\n this.onBlur = null;\n }\n\n /**\n * The visibility toggle listener function\n * @param {Event} $event;\n * @memberof PageVisibility\n */\n onToggle($event) {\n if (this.enabled) {\n document.hidden ? this.onBlur($event) : this.onFocus($event);\n }\n }\n\n /**\n * If this object is enabled.\n * @returns {boolean}\n * @memberof PageVisibility\n */\n get enabled() {\n return this._enabled;\n }\n\n /**\n * Sets the state of the object\n * @memberof PageVisibility\n */\n set enabled(enable) {\n this._enabled = enable;\n\n document.removeEventListener('visibilitychange', this.onToggle, false);\n window.removeEventListener('blur', this.onBlur, false);\n window.removeEventListener('focus', this.onFocus, false);\n window.removeEventListener('pagehide', this.onBlur, false);\n window.removeEventListener('pageshow', this.onFocus, false);\n window.removeEventListener('visibilitychange', this.onToggle, false);\n\n if (this._enabled) {\n document.addEventListener('visibilitychange', this.onToggle, false);\n window.addEventListener('blur', this.onBlur, false);\n window.addEventListener('focus', this.onFocus, false);\n window.addEventListener('pagehide', this.onBlur, false);\n window.addEventListener('pageshow', this.onFocus, false);\n window.addEventListener('visibilitychange', this.onToggle, false);\n }\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar fails = require('../internals/fails');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// FF99+ bug\nvar BROKEN_ON_SPARSE = fails(function () {\n // eslint-disable-next-line es/no-array-prototype-includes -- detection\n return !Array(1).includes();\n});\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar whitespaces = require('../internals/whitespaces');\n\nvar replace = uncurryThis(''.replace);\nvar ltrim = RegExp('^[' + whitespaces + ']+');\nvar rtrim = RegExp('(^|[^' + whitespaces + '])[' + whitespaces + ']+$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = toString(requireObjectCoercible($this));\n if (TYPE & 1) string = replace(string, ltrim, '');\n if (TYPE & 2) string = replace(string, rtrim, '$1');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","var PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]()\n || non[METHOD_NAME]() !== non\n || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME);\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","var call = require('../internals/function-call');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar regExpFlags = require('../internals/regexp-flags');\n\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (R) {\n var flags = R.flags;\n return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R)\n ? call(regExpFlags, R) : flags;\n};\n","'use strict';\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar defineBuiltIn = require('../internals/define-built-in');\nvar anObject = require('../internals/an-object');\nvar $toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = PROPER_FUNCTION_NAME && nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n defineBuiltIn(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var pattern = $toString(R.source);\n var flags = $toString(getRegExpFlags(R));\n return '/' + pattern + '/' + flags;\n }, { unsafe: true });\n}\n","/**\n * The SavedData functions use localStorage and sessionStorage, with a cookie fallback.\n *\n * @class SavedData\n */\nexport class SavedData {\n\n /**\n * Constructor for IndexedDB work\n */\n constructor(dbName = '') {\n this.db = null;\n this.dbName = dbName;\n }\n /**\n * Remove a saved variable by name.\n * @method remove\n * @static\n * @param {String} name The name of the value to remove\n */\n static remove(name) {\n localStorage.removeItem(name);\n sessionStorage.removeItem(name);\n }\n\n /**\n * Save a variable.\n * @method write\n * @static\n * @param {string} name The name of the value to save\n * @param {string} value The value to save. This will be run through JSON.stringify().\n * @param {boolean} [tempOnly=false] If the value should be saved only in the current browser session.\n */\n static write(name, value, tempOnly = false) {\n\n return tempOnly\n ? sessionStorage.setItem(\n name,\n JSON.stringify('function' === typeof value ? value() : value)\n )\n : localStorage.setItem(\n name,\n JSON.stringify('function' === typeof value ? value() : value)\n );\n }\n\n /**\n * Read the value of a saved variable\n * @method read\n * @static\n * @param {String} name The name of the variable\n * @return {*} The value (run through `JSON.parse()`) or null if it doesn't exist\n */\n static read(name) {\n const value = localStorage.getItem(name) || sessionStorage.getItem(name);\n\n if ('string' === typeof value) {\n try {\n return JSON.parse(value);\n } catch (err) {\n return value;\n }\n } else {\n return value;\n }\n }\n\n /**\n * Open a connection with the IDB Database and optionally add or delete\n * Indexes and stores\n *\n * @param {string} dbName The name of your IndexedDB database\n * @param {string} dbVersion The version number of the database. Additions and deletions will be ignored if lower than current version number\n * @param {JSON} additions Any additions to the structure of the database\n * @param {array} additions.stores Any stores to be added into the database syntax: {storeName: '[name]', options: {[optionally add options]}}\n * @param {array} additions.indexes Any Indexes to be added to the database syntax: {storeName: '[name]', options: {[optionally add options]}}\n */\n IDBOpen( dbName, dbVersion = null, additions = {}, deletions = {}, callback ) {\n const request = dbVersion ? indexedDB.open(dbName, dbVersion) : indexedDB.open(dbName);\n\n request.onsuccess = e => {\n // Database successfully opened. This will run along with onupgradeneeded\n this.db = e.target.result;\n\n if (this.db.version == dbVersion | dbVersion == null) {\n callback({result: 'Success: IDBOpen', success: true});\n }\n };\n\n request.onerror = () => {\n callback({result: request.error.toString(), success: false});\n };\n\n // on upgrade needed fires only if the dbVersion is higher than the current version number\n request.onupgradeneeded = e => {\n // Ensure the proper database object is stored\n this.db = e.target.result;\n\n if (additions != null) {\n if (additions.stores) {\n additions.stores.forEach(store => {\n this.db.createObjectStore(store.storeName, store.options);\n });\n }\n if (additions.indexes != null) {\n additions.indexes.forEach(index => {\n // Add indexes last to avoid adding an index to a store that has yet to be created\n // Open a transaction returning a store object\n const storeObject = request.transaction.objectStore(index.storeName);\n storeObject.createIndex(index.indexName, index.keyPath, index.options);\n });\n }\n }\n\n if (deletions != null) {\n if (deletions.indexes != null) {\n // delete indexes first to avoid deleting an index to a store that has already to been deleted\n deletions.indexes.forEach((index) => {\n // Open a transaction returning a store object\n const storeObject = request.transaction.objectStore(index.storeName);\n storeObject.deleteIndex(index.indexName);\n });\n }\n if (deletions.stores) {\n deletions.stores.forEach((store) => {\n this.db.deleteObjectStore(store.storeName);\n });\n }\n }\n callback({result: 'Success: IDBOpen onupgradeneeded ran', success: true});\n };\n }\n\n /**\n * Delete a database and all records, stores, and indexes associated\n * @param {string} dbName Name of the database to delete\n * @param {object} options Optionally pass in options\n * @param {function} callback The callback to be run on success or error. One value will be passed into this function\n */\n IDBDeleteDB(dbName, options = null, callback = {}) {\n const request = options != null ? indexedDB.deleteDatabase(dbName, options): indexedDB.deleteDatabase(dbName);\n\n request.onsuccess = (e) => {\n callback({result: 'Success: Database Deleted, returned: ' + e.result, success: true});\n };\n request.onerror = () => {\n callback({result: request.error.toString(), success: false});\n };\n\n\n }\n\n /**\n * Add a record to a given store\n * @param {string} storeName The name of the store from which the record will be updated\n * @param {string} key the key of the record to be updated\n * @param {string} value The value for the record with the given key to be updated\n * @param {function} callback The method to call on success or failure. A single value will be passed in\n */\n IDBAdd(storeName, value, key, callback) {\n if ( !this.db && this.dbName != '') {\n this.IDBOpen(this.dbName);\n }\n\n const tx = this.db.transaction(storeName, 'readwrite');\n tx.onerror = () => callback({result: tx.error != null ? tx.error.toString() : 'Aborted: No error given, was the record already added?', success: false});\n tx.onabort = () => callback({result: tx.error != null ? tx.error.toString() : 'Aborted: No error given, was the record already added?', success: false});\n\n tx.oncomplete = () => callback({result: 'Success: Record Added', success: true});\n const store = tx.objectStore(storeName);\n store.add(value, key);\n }\n\n /**\n * Update a record in a given store\n * @param {string} storeName The name of the store from which the record will be updated\n * @param {string} key the key of the record to be updated\n * @param {string | object} value The altered object to be updated from the given store\n * @param {function} callback The method to call on success or failure. A single value will be passed in\n */\n IDBUpdate (storeName, key, value, callback) {\n if ( !this.db && this.dbName != '') {\n this.IDBOpen(this.dbName);\n }\n\n const tx = this.db.transaction(storeName, 'readwrite');\n const store = tx.objectStore(storeName);\n\n const updateRequest = store.put(value, key);\n\n updateRequest.onsuccess = () => {\n callback({result: 'Success: Record Updated', success: true});\n };\n\n updateRequest.onerror = () => callback({result: updateRequest.error.toString(), success: false});\n }\n\n /**\n * Delete a given record within a given store\n * @param {string} storeName The name of the store from which the record will be removed\n * @param {string} key the key of the record to be removed\n * @param {function} callback The method to call on success or failure. A single value will be passed in\n */\n IDBRemove(storeName, key, callback) {\n if ( !this.db && this.dbName != '') {\n this.IDBOpen(this.dbName);\n }\n\n const tx = this.db.transaction(storeName, 'readwrite');\n tx.onerror = () => callback({result: this.db.error.toString(), success: false});\n const store = tx.objectStore(storeName);\n store.delete(key);\n\n tx.oncomplete = () => callback({result: 'Removed Successfully', success: true});\n\n }\n\n /**\n * Return a record from a given store with a given key\n * @param {string} storeName the name of the store to read from\n * @param {string} key The key for the record in the given store\n * @param {function} callback The method to call on success or failure. A single value will be passed in\n */\n IDBRead(storeName, key, callback) {\n // Open transaction with a store\n const tx = this.db.transaction(storeName, 'readonly');\n // Get the store object from the transaction\n const store = tx.objectStore(storeName);\n\n tx.onerror = () => callback({result: this.db.error.toString(), success: false});\n\n const readRequest = store.get(key);\n\n readRequest.onsuccess = () => {\n callback({result: readRequest.result, success: readRequest.result != undefined ? true : false});\n };\n\n }\n\n /**\n * Get all keys with given index\n * @param {string} storeName the name of the store to be read from\n * @param {string} indexName the name of the index to be read from\n * @param {string} query Optionally give a keyRange of records to return\n * @param {string} count Optionally give a max limit on records to be returned\n * @param {function} callback The method to call on success or failure. A single value will be passed in as a parameter\n */\n IDBGetIndexKeys (storeName, indexName, query = null, count = null, callback = {}) {\n // Open transaction with a store\n const tx = this.db.transaction(storeName, 'readonly');\n // Get the store object from the transaction\n const store = tx.objectStore(storeName);\n\n let index;\n\n tx.onerror = () => callback({result: this.db.error.toString(), success: false});\n\n if (query && count) {\n index = store.index(indexName, query, count);\n } else if (query) {\n index = store.index(indexName, query);\n } else {\n index = store.index(indexName);\n }\n\n const getAllKeysRequest = index.getAllKeys();\n\n\n getAllKeysRequest.onsuccess = function(e) {\n callback({result : e.result, success: true});\n };\n }\n\n /**\n * Get all records from a store\n * @param {string} storeName The store to get all records from\n * @param {integer} count Optionally the count of records to return\n * @param {function} callback The method to call on success or failure. A single value will be passed in\n */\n IDBReadAll(storeName, count, callback) {\n // Open transaction with a store\n const tx = this.db.transaction(storeName, 'readonly');\n // Get the store object from the transaction\n const store = tx.objectStore(storeName);\n\n const readRequest = count != null ? store.getAll(null, count) : store.getAll();\n\n // const readRequest = store.getAll();\n\n tx.onerror = () => callback({result: tx.error.toString(), success: false});\n\n\n readRequest.onsuccess = () => {\n callback({result: readRequest.result, success: readRequest.result != undefined ? true : false});\n };\n }\n\n /**\n * Get the version number of a given database. This will create a database if it doesn't exist.\n * Do not call this after opening a connection with the database\n * @param {string} dbName The name of the database for which the version will be returned\n * @param {function} callback The method to call on success or failure. A single value will be passed in\n */\n IDBGetVersion(dbName, callback) {\n // Open the database\n const dBOpenRequest = window.indexedDB.open(dbName);\n\n // these two event handlers act on the database\n // being opened. successfully, or not\n dBOpenRequest.onerror = function() {\n callback({result: dBOpenRequest.error.toString(), success: false});\n };\n\n dBOpenRequest.onsuccess = function() {\n const db = dBOpenRequest.result;\n callback({result: db.version, success: true});\n };\n }\n\n /**\n * Closes the connection to the database if open\n * @param {function} callback The method to call on success or failure. A single value will be passed in\n */\n IDBClose(callback) {\n if ( this.db ) {\n this.db.close();\n callback({result: 'Success: Closed Database Connection', success: true});\n }\n }\n\n}\n","/* eslint-disable no-unused-vars */\nimport { SavedData } from '../SavedData';\nimport { Container } from '../Container';\n\n/**\n *\n *\n * @export\n * @class BasePlugin\n * @property {Bellhop} client\n * @property {string} name\n */\nexport class BasePlugin {\n /**\n *Creates an instance of BasePlugin.\n * @param {string} name\n * @memberof BasePlugin\n */\n constructor(name) {\n this.name = name;\n this.client = null;\n }\n\n /**\n *\n * @param {Container} [container]\n * @memberof BasePlugin\n * @returns {Promise}\n */\n async preload({ client }) {\n this.client = client;\n }\n\n /**\n *\n * @memberof BasePlugin\n */\n start() {\n this.client.on('loaded', this.sendAllProperties);\n this.client.on('loadDone', this.sendAllProperties);\n }\n\n /**\n *\n * @param {Container} [_]\n * @memberof BasePlugin\n */\n init(_) { }\n\n /**\n *\n *\n * @param {string} prop\n * @param {any} value\n * @param {Boolean} disableSend\n * @memberof BasePlugin\n */\n sendProperty(prop, value, disableSend = false) {\n SavedData.write(prop, value);\n if (disableSend) { return; }\n this.client.send(prop, value);\n }\n\n\n /**\n *\n * @param {Container} [_]\n * @memberof BasePlugin\n */\n sendAllProperties(_) { }\n\n /**\n *\n * @param {string} warningText\n * @memberof BasePlugin\n */\n warn(warningText) {\n console.warn(`[SpringRollContainer] ${this.name}: ${warningText}`);\n }\n}\n","/* eslint-disable no-unused-vars */\nimport { BasePlugin } from './BasePlugin';\nimport { Container } from '../Container';\n\n/**\n *\n *\n * @export\n * @class ButtonPlugin\n * @extends {BasePlugin}\n */\nexport class ButtonPlugin extends BasePlugin {\n /**\n *Creates an instance of ButtonPlugin.\n * @param {string} name\n *\n * @memberof ButtonPlugin\n */\n constructor(name) {\n super(name);\n this.sendMutes = false;\n }\n\n /**\n * @memberof ButtonPlugin\n * @param {Container} [container]\n */\n init(container) {\n // eslint-disable-line no-unused-vars\n this.sendMutes = true;\n }\n\n /**\n *\n * Applies the disabled class to the provided element\n * @param {HTMLButtonElement | Element} button\n * @memberof ButtonPlugin\n */\n _disableButton(button) {\n if (button instanceof HTMLButtonElement) {\n button.classList.remove('enabled');\n button.classList.add('disabled');\n }\n }\n\n /**\n *\n *\n * @memberof ButtonPlugin\n */\n reset() {\n this.sendMutes = false;\n }\n\n /**\n *\n *\n * @param {string} prop\n * @param {Element} button\n * @param {Boolean} muted\n * @param {Boolean} disableSend\n * @memberof ButtonPlugin\n */\n _setMuteProp(prop, button, muted, disableSend = false) {\n console.log('_setmuteprop', prop, muted, disableSend);\n if (Array.isArray(button)) {\n button.forEach(b => this.changeMutedState(b, muted));\n } else {\n this.changeMutedState(button, muted);\n }\n\n this.sendProperty(prop, muted, disableSend);\n }\n\n /**\n *\n *\n * @param {Element} button\n * @param {Boolean} muted\n * @returns\n * @memberof ButtonPlugin\n */\n changeMutedState(button, muted = false) {\n //most times button will be a Button class rather than an HTMLElement\n //But just in case the Button ui-element is not being used\n const htmlButton = button.button ? button.button : button;\n\n if (!(htmlButton instanceof HTMLElement)) {\n return;\n }\n\n htmlButton.classList.remove('unmuted');\n htmlButton.classList.remove('muted');\n htmlButton.classList.add(muted ? 'muted' : 'unmuted');\n }\n}\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","var isRegExp = require('../internals/is-regexp');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw $TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\nvar stringIndexOf = uncurryThis(''.indexOf);\n\n// `String.prototype.includes` method\n// https://tc39.es/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~stringIndexOf(\n toString(requireObjectCoercible(this)),\n toString(notARegExp(searchString)),\n arguments.length > 1 ? arguments[1] : undefined\n );\n }\n});\n","var toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\n\nvar $Array = Array;\nvar max = Math.max;\n\nmodule.exports = function (O, start, end) {\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = $Array(max(fin - k, 0));\n for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n};\n","/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice-simple');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return arraySlice(windowNames);\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) == 'Window'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","// FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it\nvar fails = require('../internals/fails');\n\nmodule.exports = fails(function () {\n if (typeof ArrayBuffer == 'function') {\n var buffer = new ArrayBuffer(8);\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-defineproperty -- safe\n if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 });\n }\n});\n","var fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar $isExtensible = Object.isExtensible;\nvar FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); });\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\nmodule.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) {\n if (!isObject(it)) return false;\n if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) == 'ArrayBuffer') return false;\n return $isExtensible ? $isExtensible(it) : true;\n} : $isExtensible;\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","var $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternalModule = require('../internals/object-get-own-property-names-external');\nvar isExtensible = require('../internals/object-is-extensible');\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar REQUIRED = false;\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + id++, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar enable = function () {\n meta.enable = function () { /* empty */ };\n REQUIRED = true;\n var getOwnPropertyNames = getOwnPropertyNamesModule.f;\n var splice = uncurryThis([].splice);\n var test = {};\n test[METADATA] = 1;\n\n // prevent exposing of metadata key\n if (getOwnPropertyNames(test).length) {\n getOwnPropertyNamesModule.f = function (it) {\n var result = getOwnPropertyNames(it);\n for (var i = 0, length = result.length; i < length; i++) {\n if (result[i] === METADATA) {\n splice(result, i, 1);\n break;\n }\n } return result;\n };\n\n $({ target: 'Object', stat: true, forced: true }, {\n getOwnPropertyNames: getOwnPropertyNamesExternalModule.f\n });\n }\n};\n\nvar meta = module.exports = {\n enable: enable,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","var isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]);\n defineBuiltIn(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n uncurriedNativeMethod(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n uncurriedNativeMethod(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.enable();\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, NativePrototype);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, constructor: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","var defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) defineBuiltIn(target, key, src[key], options);\n return target;\n};\n","'use strict';\nvar create = require('../internals/object-create');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n defineBuiltIns(Prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n defineBuiltIns(Prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineBuiltInAccessor(Prototype, 'size', {\n configurable: true,\n get: function () {\n return getInternalState(this).size;\n }\n });\n return Constructor;\n },\n setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n // return step by kind\n if (kind == 'keys') return createIterResultObject(entry.key, false);\n if (kind == 'values') return createIterResultObject(entry.value, false);\n return createIterResultObject([entry.key, entry.value], false);\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Set` constructor\n// https://tc39.es/ecma262/#sec-set-objects\ncollection('Set', function (init) {\n return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","var $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n keys: function keys(it) {\n return nativeKeys(toObject(it));\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n\n// `Array.prototype.map` method\n// https://tc39.es/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\nvar propertyIsEnumerable = uncurryThis($propertyIsEnumerable);\nvar push = uncurryThis([].push);\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || propertyIsEnumerable(O, key)) {\n push(result, TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.es/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.es/ecma262/#sec-object.values\n values: createMethod(false)\n};\n","var $ = require('../internals/export');\nvar $values = require('../internals/object-to-array').values;\n\n// `Object.values` method\n// https://tc39.es/ecma262/#sec-object.values\n$({ target: 'Object', stat: true }, {\n values: function values(O) {\n return $values(O);\n }\n});\n","import { BasePlugin } from '../base-plugins/BasePlugin';\n\n/**\n * @export\n * @class RadioGroup\n * @property {string} controlName\n * @property {string} featureName\n * @property {string} radioElements\n * @property {string} defaultValue\n */\nexport class RadioGroup extends BasePlugin {\n /**\n * creates an instance of RadioGroup\n * @constructor\n * @param {string} selector selector string for the radio group\n * @param {string} controlName the name of the control (used for warning logging only)\n * @param {string} [featureName='captionStyles'] the feature name used by Springroll. Defaults to captionStyles\n * @param {string} defaultValue the value attribute of the radio button that should be selected by default\n * @param {string} pluginName name of the plugin that instantiated the RadioGroup. Used for logging warnings\n * @memberof RadioGroupPlugin\n */\n constructor({selector, controlName, featureName = 'captionStyles', defaultValue, pluginName}) {\n super(pluginName);\n this.controlName = controlName;\n this.featureName = featureName;\n this.radioElements = document.querySelectorAll(selector);\n this.defaultValue = defaultValue;\n\n this.radioGroup = {};\n\n if (this.radioElements.length <= 0) {\n this.warn(`${this.controlName} RadioGroup found no HTMLElements with selector: ${selector}`);\n return;\n }\n\n this.radioElements.forEach(radio => {\n if (radio.type !== 'radio') {\n this.warn(`${this.controlName} was provided a non Radio Button element with selector: ${selector}`);\n return;\n }\n radio.value = radio.value.toLowerCase();\n\n this.radioGroup[radio.value] = radio;\n });\n\n if (!this.radioGroup[this.defaultValue]) {\n this.warn(`${this.controlName} RadioGroup for selector: ${selector} does not have a radio button with value ${this.defaultValue} to use as default value. Using first element as default`);\n this.defaultValue = this.radioElements[0].value.toLowerCase();\n }\n\n this.radioGroup[this.defaultValue].checked = true;\n }\n\n /**\n * @param {string[]} valuesArray Array of acceptable values to check against the radio group.\n * @return {boolean}\n * @memberof RadioGroup\n */\n hasOnly(valuesArray) {\n\n for (const key in this.radioGroup) {\n if (!valuesArray.includes(this.radioGroup[key].value)) {\n this.warn(`${this.controlName} radio button value: ${this.radioGroup[key].value} is not an accepted value. Skipping radio group`);\n return false;\n }\n }\n\n return true;\n }\n\n /**\n * @return {boolean}\n * @memberof RadioGroup\n */\n hasDuplicateValues() {\n return this.values.length !== [...new Set(this.values)].length;\n }\n\n /**\n * Adds change listeners to the radio buttons using the given callback function\n * @memberof RadioGroup\n * @param {Function} callBack event to fire on change\n */\n enableRadioEvents(callBack) {\n if (!this.radioGroup.length <= 0) {\n return;\n }\n\n const event = callBack;\n for (const radio in this.radioGroup) {\n this.radioGroup[radio].addEventListener('change', event);\n }\n }\n\n /**\n * removes the event listeners from the RadioGroup\n * @memberof RadioGroup\n * @param {Function} callBack event to fire on change\n */\n disableRadioEvents(callBack) {\n if (!this.radioGroup.length <= 0) {\n return;\n }\n for (const radio in this.radioGroup) {\n this.radioGroup[radio].removeEventListener('change', callBack);\n }\n }\n\n /**\n * enables display of the Radio buttons if the correct feature is present in the features list\n * @memberof RadioGroup\n * @param {object} data Object containing which features are enabled\n */\n displayRadios(data) {\n if (this.radioGroup.length <= 0 && data[this.featureName]) {\n this.warn(`${this.controlName} was not provided a valid input element or selector but '${this.featureName}' was included as a game feature`);\n return;\n }\n\n if (this.radioGroup.length <= 0) {\n return;\n }\n\n if (data[this.featureName]) {\n return;\n }\n\n for (const radio in this.radioGroup) {\n this.radioGroup[radio].style.display = 'none';\n }\n }\n\n /**\n * Reset the radio button states\n * @memberof RadioGroup\n */\n resetState() {\n this.radioGroup[this.defaultValue].checked = true;\n }\n\n /**\n * @readonly\n * @returns {number}\n * @memberof RadioGroup\n */\n get length() {\n return Object.keys(this.radioGroup).length;\n }\n\n /**\n * @readonly\n * @returns {number}\n * @memberof RadioGroup\n */\n get values() {\n return Object.values(this.radioGroup).map(radio => radio.value);\n }\n}\n","import { BasePlugin } from './BasePlugin';\nimport { RadioGroup } from '../ui-elements/RadioGroup';\n\n/**\n *\n *\n * @export\n * @class RadioGroupPlugin\n */\nexport class RadioGroupPlugin extends BasePlugin {\n /**\n *\n *Creates an instance of RadioGroupPlugin.\n * @constructor\n * @memberof RadioGroupPlugin\n * @param {string} name\n */\n constructor(cssSelector, name, {supportedValues, initialValue, controlName, featureName, radioCount}) {\n super(name);\n this.selectors = cssSelector ? cssSelector.split(',') : [];\n this.supportedValues = supportedValues;\n this.initialValue = supportedValues.includes(initialValue) ? initialValue : supportedValues[0];\n this.controlName = controlName;\n this.featureName = featureName;\n this.radioCount = radioCount;\n this.sendAllProperties = this.sendAllProperties.bind(this);\n\n this._currentValue = this.initialValue;\n\n this.radioGroups = this.setUpRadios(this.selectors);\n\n this.radioGroupsLength = this.radioGroups.length;\n }\n\n /**\n * @memberof RadioGroupPlugin\n * @param {string[]} selectors the separated selector strings used to target the radio button groups\n * @returns {RadioGroup[]}\n */\n setUpRadios(selectors) {\n const radioGroups = [];\n\n selectors.forEach((selector) => {\n const radioGroup = new RadioGroup({\n selector: selector.trim(),\n controlName: this.controlName,\n defaultValue: this.initialValue,\n pluginName: this.name,\n featureName: this.featureName\n });\n\n if (radioGroup.length !== this.radioCount) {\n this.warn(`Selector \"${selector}\" did not find exactly ${this.radioCount} radio buttons for ${this.controlName}. Skipping selector`);\n return;\n }\n\n if (!radioGroup.hasOnly(this.supportedValues)) {\n return;\n }\n\n if (radioGroup.hasDuplicateValues()) {\n this.warn(`Duplicate radio button values detected (values: ${radioGroup.values} ). Skipping radio group`);\n return;\n }\n\n radioGroups.push(radioGroup);\n });\n\n return radioGroups;\n }\n\n /**\n * @memberof RadioGroupPlugin\n */\n start() {\n this.client.on('loaded', this.sendAllProperties);\n this.client.on('loadDone', this.sendAllProperties);\n }\n\n /**\n *\n * Sends initial caption properties to the application\n * @memberof RadioGroupPlugin\n */\n sendAllProperties() {\n this.sendProperty(this.featureName, this.property);\n }\n\n /**\n * @memberof RadioGroupPlugin\n * @param {string} newValue\n */\n set currentValue(newValue) {\n if (!this.supportedValues.includes(newValue)) {\n return;\n }\n\n this._currentValue = newValue;\n\n for (let i = 0, l = this.radioGroups.length; i < l; i++) {\n this.radioGroups[i].radioGroup[newValue].checked = true;\n }\n }\n\n /**\n * @memberof RadioGroupPlugin\n * @return {string}\n */\n get currentValue() {\n return this._currentValue;\n }\n\n}\n","var uncurryThis = require('../internals/function-uncurry-this');\n\n// `thisNumberValue` abstract operation\n// https://tc39.es/ecma262/#sec-thisnumbervalue\nmodule.exports = uncurryThis(1.0.valueOf);\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar path = require('../internals/path');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar hasOwn = require('../internals/has-own-property');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isSymbol = require('../internals/is-symbol');\nvar toPrimitive = require('../internals/to-primitive');\nvar fails = require('../internals/fails');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar thisNumberValue = require('../internals/this-number-value');\nvar trim = require('../internals/string-trim').trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = global[NUMBER];\nvar PureNumberNamespace = path[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\nvar TypeError = global.TypeError;\nvar stringSlice = uncurryThis(''.slice);\nvar charCodeAt = uncurryThis(''.charCodeAt);\n\n// `ToNumeric` abstract operation\n// https://tc39.es/ecma262/#sec-tonumeric\nvar toNumeric = function (value) {\n var primValue = toPrimitive(value, 'number');\n return typeof primValue == 'bigint' ? primValue : toNumber(primValue);\n};\n\n// `ToNumber` abstract operation\n// https://tc39.es/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, 'number');\n var first, third, radix, maxCode, digits, length, index, code;\n if (isSymbol(it)) throw TypeError('Cannot convert a Symbol value to a number');\n if (typeof it == 'string' && it.length > 2) {\n it = trim(it);\n first = charCodeAt(it, 0);\n if (first === 43 || first === 45) {\n third = charCodeAt(it, 2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (charCodeAt(it, 1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i\n default: return +it;\n }\n digits = stringSlice(it, 2);\n length = digits.length;\n for (index = 0; index < length; index++) {\n code = charCodeAt(digits, index);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\nvar FORCED = isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'));\n\nvar calledWithNew = function (dummy) {\n // includes check on 1..constructor(foo) case\n return isPrototypeOf(NumberPrototype, dummy) && fails(function () { thisNumberValue(dummy); });\n};\n\n// `Number` constructor\n// https://tc39.es/ecma262/#sec-number-constructor\nvar NumberWrapper = function Number(value) {\n var n = arguments.length < 1 ? 0 : NativeNumber(toNumeric(value));\n return calledWithNew(this) ? inheritIfRequired(Object(n), this, NumberWrapper) : n;\n};\n\nNumberWrapper.prototype = NumberPrototype;\nif (FORCED && !IS_PURE) NumberPrototype.constructor = NumberWrapper;\n\n$({ global: true, constructor: true, wrap: true, forced: FORCED }, {\n Number: NumberWrapper\n});\n\n// Use `internal/copy-constructor-properties` helper in `core-js@4`\nvar copyConstructorProperties = function (target, source) {\n for (var keys = DESCRIPTORS ? getOwnPropertyNames(source) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES2015 (in case, if modules with ES2015 Number statics required before):\n 'EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,' +\n // ESNext\n 'fromString,range'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (hasOwn(source, key = keys[j]) && !hasOwn(target, key)) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n\nif (IS_PURE && PureNumberNamespace) copyConstructorProperties(path[NUMBER], PureNumberNamespace);\nif (FORCED || IS_PURE) copyConstructorProperties(path[NUMBER], NativeNumber);\n","import { SavedData } from '../SavedData';\n\n/**\n * @export\n * @class Slider\n */\nexport class Slider {\n /**\n *Creates an instance of Slider\n * @param {object} params\n * @param {string | HTMLInputElement} params.slider the slider element or a selector string\n * @param {string} params.control the feature that this slider controols\n * @param {number} [min=0] slider min value\n * @param {number} [max=1] slider max value\n * @param {number} [step=0.1] slider step value\n * @param {number} [defaultValue=1] slider starting value\n * @memberof SliderPlugin\n */\n constructor({\n slider,\n control,\n min = 0,\n max = 1,\n step = 0.1,\n defaultValue = 1\n }) {\n this.min = min;\n this.max = max;\n this.step = step;\n this.sliderValue = defaultValue;\n this.control = control;\n this.slider = this.setUpSlider(slider, control);\n }\n\n /**\n * @param {string | HTMLInputElement | HTMLElement} slider\n * @param {string} control The control element (sensitivity, difficulty, pointer size, etc) this slider will be controlling\n * @returns {Element | HTMLElement}\n * @memberof Slider\n */\n setUpSlider(slider, control) {\n if ('string' === typeof slider) {\n slider = document.querySelector(slider);\n }\n\n if (!slider || 'range' !== slider.type) {\n return null;\n }\n const value = SavedData.read(control);\n\n slider.min = this.min;\n slider.max = this.max;\n slider.step = this.step;\n\n if ((value || value === 0) && value.toString().trim().length > 0) {\n slider.value = value;\n this.sliderValue = value;\n } else {\n slider.value = this.sliderValue;\n }\n\n return slider;\n }\n\n /**\n * Controls the range of the slider\n * @param {number} i\n * @returns\n * @memberof Slider\n */\n sliderRange(i) {\n if (i < this.min) {\n return this.min;\n } else if (i > this.max) {\n return this.max;\n } else {\n return i;\n }\n }\n\n /**\n * Adds change and input listeners to the slider using the given callback function\n * @memberof Slider\n * @param {Function} callBack event to fire on change or input\n */\n enableSliderEvents(callBack) {\n if (!this.slider) {\n return;\n }\n\n const event = callBack;\n this.slider.addEventListener('change', event);\n this.slider.addEventListener('input', event);\n }\n\n /**\n * removes the event listeners from the given slider.\n * @memberof Slider\n * @param {Function} callBack event to fire on change or input\n */\n disableSliderEvents(callBack) {\n if (!this.slider) {\n return;\n }\n const event = callBack;\n this.slider.removeEventListener('change', event);\n this.slider.removeEventListener('input', event);\n }\n /**\n * enables display of the Slider if it is present in the features list\n * @memberof Slider\n * @param {object} data Object containing which features are enabled\n */\n displaySlider(data) {\n if (!this.slider && data[this.control]) {\n console.warn(`${this.control} was not provided a valid input element or selector but was included as a game feature`);\n }\n\n if (!this.slider) {\n return;\n }\n\n this.slider.style.display = data[this.control] ? '' : 'none';\n }\n\n /**\n * @param {Event} event the event to be fired on the slider\n * @memberof Slider\n */\n dispatchEvent(event) {\n this.slider.dispatchEvent(event);\n }\n\n /**\n * @readonly\n * @returns {string}\n * @memberof Slider\n */\n get value() {\n return this.slider.value;\n }\n\n /**\n * @memberof Slider\n */\n set value(value) {\n this.slider.value = value;\n }\n}\n","/**\n * @export\n * @class Button\n */\nexport class Button {\n /**\n *Creates an instance of Button\n * @param {object} params\n * @param {string | HTMLElement} params.button the button itself or a selector string\n * @param {Function} params.onClick the function to call when the button is clicked\n * @param {string} channel the feature this button controls\n * @memberof ButtonPlugin\n */\n constructor({ button, onClick, channel }) {\n this.button =\n button instanceof HTMLElement ? button : document.querySelector(button);\n this.onClick = onClick;\n this.channel = channel;\n\n if (this.button) {\n this.button.addEventListener('click', onClick);\n }\n }\n\n /**\n * enables display of the button if it is present in the features list\n * @memberof Button\n * @param {object} data Object containing which features are enabled\n */\n displayButton(data) {\n if (!(this.button instanceof HTMLElement)) {\n return;\n }\n\n this.button.style.display =\n data[this.channel] || this.channel === 'pause' || this.channel === 'hints'\n ? ''\n : 'none';\n }\n\n /**\n * enables display of the button\n * @memberof Button\n */\n enableButton() {\n if (!this.button) {\n return;\n }\n this.button.classList.remove('disabled');\n }\n\n /**\n * \n * @param {string} className The classname to be appended to the end of the class property\n */\n addClass(className) {\n this.button.className = this.button.className ? this.button.className + ` ${ className }` : ` ${ className }`;\n }\n}\n","import { BasePlugin } from './BasePlugin';\nimport { Slider } from '../ui-elements';\n\n/**\n *\n *\n * @export\n * @class SliderPlugin\n */\nexport class SliderPlugin extends BasePlugin {\n /**\n *\n *Creates an instance of SliderPlugin.\n * @constructor\n * @memberof SliderPlugin\n * @param {string} cssSelector\n * @param {string} name\n * @param {object} options\n * @param {string | number} [options.defaultValue='0.5']\n * @param {string | number} [options.minValue='0']\n * @param {string | number} [options.maxValue='1']\n * @param {string} [options.featureName] Springroll Core feature name that the plugin is supporting\n */\n constructor(cssSelector, name, {defaultValue = '0.5', minValue = '0', maxValue = '1', featureName }) {\n super(name);\n this.featureName = featureName;\n this.minValue = minValue;\n this.defaultValue = defaultValue;\n this.maxValue = maxValue;\n this._currentValue = defaultValue;\n this.sliders = this.setUpSliders(cssSelector);\n this.slidersLength = this.sliders.length;\n this.sendAllProperties = this.sendAllProperties.bind(this);\n\n if (0 >= this.slidersLength) {\n this.warn('Plugin was not provided any valid HTML Elements');\n return;\n }\n }\n\n /**\n * @memberof SliderPlugin\n * @param {string[]} selectors the selector strings used to target the input elements\n * @returns {Slider[]}\n */\n setUpSliders(selectors) {\n const sliders = [];\n\n if (selectors instanceof HTMLElement) {\n sliders.push(new Slider({\n slider: selectors,\n control: this.featureName,\n defaultValue: this.defaultValue,\n minValue: this.minValue,\n maxValue: this.maxValue\n }));\n } else {\n document.querySelectorAll(selectors).forEach((slider) => {\n sliders.push(new Slider({\n slider: slider,\n control: this.featureName,\n defaultValue: this.defaultValue,\n minValue: this.minValue,\n maxValue: this.maxValue\n }));\n });\n }\n\n return sliders;\n }\n\n /**\n * @memberof SliderPlugin\n */\n init() {\n this.client.on(\n 'features',\n function(features) {\n if (!features.data) {\n return;\n }\n\n for (let i = 0; i < this.slidersLength; i++) {\n this.sliders[i].displaySlider(features.data);\n }\n }.bind(this)\n );\n }\n\n /**\n * @memberof SliderPlugin\n */\n start() {\n this._currentValue = this.sliders[0].value; //update current value to the saved data value set in Slider.\n this.client.on('loaded', this.sendAllProperties);\n this.client.on('loadDone', this.sendAllProperties);\n }\n\n /**\n *\n * Sends initial caption properties to the application\n * @memberof SliderPlugin\n */\n sendAllProperties() {\n this.sendProperty(this.featureName, this.currentValue);\n }\n\n /**\n * @memberof SliderPlugin\n * @param {string} newValue\n */\n set currentValue(newValue) {\n\n //just use first slider to ensure the number is valid.\n this._currentValue = this.sliders[0].sliderRange(Number(newValue));\n\n for (let i = 0; i < this.slidersLength; i++) {\n this.sliders[i].value = newValue;\n }\n }\n\n /**\n * @memberof SliderPlugin\n * @return {string}\n */\n get currentValue() {\n return this._currentValue;\n }\n\n}\n","import { SavedData } from '../SavedData';\nimport { ButtonPlugin } from '../base-plugins';\nimport { RadioGroup } from '../ui-elements';\n\nconst DEFAULT_CAPTIONS_STYLES = {\n size: 'medium',\n background: 'black',\n color: 'white',\n edge: 'none',\n font: 'arial',\n align: 'top'\n};\n\nconst DEFAULT_COLOR_STYLE = {color: 'white', background: 'black'};\nconst INVERTED_COLOR_STYLE = {color: 'black', background: 'white'};\nconst FONT_SIZE_VALUES = ['small', 'medium', 'large'];\nconst COLOR_VALUES = ['default', 'inverted'];\nconst ALIGN_VALUES = ['top', 'bottom'];\n\n/**\n * @export\n * @class CaptionsStylePlugin\n * @property {object} captionsStyles The collection of captions styles\n * @property {string[]} fontSizeSelectors selector strings for the radio button groups\n * @property {string[]} colorSelectors selector strings for the radio button groups\n * @property {string[]} alignmentSelectors selector strings for the radio button groups\n * @property {Object[]} fontSizeRadios array that contains each radio group\n * @property {Object[]} colorRadios array that contains each radio group\n * @property {Object[]} alignmentRadios array that contains each radio group\n * @property {number} fontSizeRadiosLength Length of the fontSizeRadios array\n * @property {number} colorRadiosLength Length of the colorRadios array\n * @property {number} alignmentRadiosLength Length of the alignmentRadios array\n * @extends {ButtonPlugin}\n */\nexport class CaptionsStylePlugin extends ButtonPlugin {\n /**\n * Creates an instance of CaptionsStylePlugin.\n * @param {string} fontSizeRadios selector string for one or more radio groups for caption font size\n * @param {string} colorRadios selector string for one or more radio groups for caption font/background colors\n * @param {string} alignmentRadios selector string for one or more radio groups for caption position\n * @param {string} [defaultFontSize='medium'] Default selected font size\n * @param {string} [defaultColor='default'] Default selected color\n * @param {string} [defaultAlignment='top'] Default selected alignment\n * @memberof CaptionsStylePlugin\n */\n constructor(fontSizeRadios, colorRadios, alignmentRadios,\n { defaultFontSize = 'medium', defaultColor = 'default', defaultAlignment = 'top' } = {}\n ) {\n super('Caption-Style-Plugin');\n this.sendAllProperties = this.sendAllProperties.bind(this);\n this.captionsStyles = Object.assign(\n {},\n DEFAULT_CAPTIONS_STYLES,\n SavedData.read(CaptionsStylePlugin.captionStyleKey) || {}\n );\n\n //split the selector strings into individual selectors.\n //Helps keep the input style consistent across plugins.\n this.fontSizeSelectors = fontSizeRadios ? fontSizeRadios.split(',') : [];\n this.colorSelectors = colorRadios ? colorRadios.split(',') : [];\n this.alignmentSelectors = alignmentRadios ? alignmentRadios.split(',') : [];\n\n this.defaultFontSize = FONT_SIZE_VALUES.includes(defaultFontSize) ? defaultFontSize : FONT_SIZE_VALUES[0];\n this.defaultColor = COLOR_VALUES.includes(defaultColor) ? defaultColor : COLOR_VALUES[0];\n this.defaultAlignment = ALIGN_VALUES.includes(defaultAlignment) ? defaultAlignment : ALIGN_VALUES[0];\n\n this.fontSizeRadios = [];\n this.colorRadios = [];\n this.alignmentRadios = [];\n\n this.fontSizeRadios = this.setUpFontSizeRadios(this.fontSizeSelectors);\n this.colorRadios = this.setUpColorRadios(this.colorSelectors);\n this.alignmentRadios = this.setUpAlignmentRadios(this.alignmentSelectors);\n\n this._captionsMuted = false;\n\n this.alignmentRadiosLength = this.alignmentRadios.length;\n this.fontSizeRadiosLength = this.fontSizeRadios.length;\n this.colorRadiosLength = this.colorRadios.length;\n\n if (0 >= (this.alignmentRadiosLength + this.fontSizeRadiosLength + this.colorRadiosLength)) {\n this.warn(\n 'Plugin was not provided any input elements'\n );\n return;\n }\n\n //set up change events\n for (let i = 0; i < this.colorRadiosLength; i++) {\n this.colorRadios[i].enableRadioEvents(this.onColorChange.bind(this));\n }\n for (let i = 0; i < this.alignmentRadiosLength; i++) {\n this.alignmentRadios[i].enableRadioEvents(this.onAlignmentChange.bind(this));\n }\n for (let i = 0; i < this.fontSizeRadiosLength; i++) {\n this.fontSizeRadios[i].enableRadioEvents(this.onFontSizeChange.bind(this));\n }\n }\n\n /**\n * @memberof CaptionsStylePlugin\n * @param {string[]} selectors the separated selector strings used to target the radio button groups\n * @returns {RadioGroup[]}\n */\n setUpFontSizeRadios(selectors) {\n const radioGroups = [];\n\n selectors.forEach((selector) => {\n const radioGroup = new RadioGroup({\n selector: selector.trim(),\n controlName: 'Font Size',\n defaultValue: this.defaultFontSize,\n pluginName: 'Caption-Button-Plugin'\n });\n\n if (radioGroup.length !== 3) {\n this.warn(`Selector \"${selector}\" did not find exactly three(3) radio buttons for caption font size. Skipping selector`);\n return;\n }\n\n if (!radioGroup.hasOnly(FONT_SIZE_VALUES)) {\n return;\n }\n\n if (radioGroup.hasDuplicateValues()) {\n this.warn(`Duplicate radio button values detected (values: ${radioGroup.values} ). Skipping radio group`);\n return;\n }\n\n radioGroups.push(radioGroup);\n });\n\n return radioGroups;\n }\n\n /**\n * @memberof CaptionsStylePlugin\n * @param {string[]} selectors the separated selector strings used to target the radio button groups\n * @returns {RadioGroup[]}\n */\n setUpColorRadios(selectors) {\n const radioGroups = [];\n\n selectors.forEach((selector) => {\n const radioGroup = new RadioGroup({\n selector: selector.trim(),\n controlName: 'Color',\n defaultValue: this.defaultColor,\n pluginName: 'Caption-Button-Plugin'\n });\n\n if (radioGroup.length !== 2) {\n this.warn(`Selector \"${selector}\" did not find exactly two(2) radio buttons for caption colors. Skipping selector`);\n return;\n }\n\n if (!radioGroup.hasOnly(COLOR_VALUES)) {\n return;\n }\n\n if (radioGroup.hasDuplicateValues()) {\n this.warn(`Duplicate radio button values detected (values: ${radioGroup.values} ). Skipping radio group`);\n return;\n }\n\n radioGroups.push(radioGroup);\n });\n\n return radioGroups;\n }\n\n /**\n * @memberof CaptionsStylePlugin\n * @param {string[]} selectors the separated selector strings used to target the radio button groups\n * @returns {RadioGroup[]}\n */\n setUpAlignmentRadios(selectors) {\n const radioGroups = [];\n\n selectors.forEach((selector) => {\n const radioGroup = new RadioGroup({\n selector: selector.trim(),\n controlName: 'Alignment',\n defaultValue: this.defaultAlignment,\n pluginName: 'Caption-Button-Plugin'\n });\n if (radioGroup.length !== 2) {\n this.warn(`Selector \"${selector}\" did not find exactly two(2) radio buttons for caption alignment. Skipping selector`);\n return;\n }\n\n if (!radioGroup.hasOnly(ALIGN_VALUES)) {\n return;\n }\n\n if (radioGroup.hasDuplicateValues()) {\n this.warn(`Duplicate radio button values detected (values: ${radioGroup.values} ). Skipping radio group`);\n return;\n }\n\n radioGroups.push(radioGroup);\n });\n\n return radioGroups;\n }\n\n /**\n * @memberof CaptionsStylePlugin\n */\n init() {\n // Handle the features request\n this.client.on(\n 'features',\n function($event) {\n\n for (const radio of this.radios) {\n radio.displayRadios($event.data);\n }\n\n }.bind(this)\n );\n\n this.client.on(\n 'caption-set-style',\n function($event) {\n this.setCaptionsStyles($event.data || {});\n }.bind(this)\n );\n }\n /**\n * @memberof CaptionsStylePlugin\n */\n start() {\n this.setCaptionsStyles(SavedData.read(CaptionsStylePlugin.captionStyleKey));\n\n this.client.on('loaded', this.sendAllProperties);\n this.client.on('loadDone', this.sendAllProperties);\n }\n\n /**\n *\n * Sends initial caption properties to the application\n * @memberof CaptionsStylePlugin\n */\n sendAllProperties() {\n this.sendProperty(CaptionsStylePlugin.captionStyleKey, this.captionsStyles);\n }\n /**\n * Fired whenever the font size radios are updated\n * @param {Event} e\n * @memberof CaptionsStylePlugin\n */\n onFontSizeChange(e) {\n this.setCaptionsStyles('size', e.target.value);\n }\n\n /**\n * Fired whenever the alignment radios are updated\n * @param {Event} e\n * @memberof CaptionsStylePlugin\n */\n onAlignmentChange(e) {\n this.setCaptionsStyles('align', e.target.value);\n }\n\n /**\n * Fired whenever the color radios are updated\n * @param {Event} e\n * @memberof CaptionsStylePlugin\n */\n onColorChange(e) {\n const styles = e.target.value === 'default' ? DEFAULT_COLOR_STYLE : INVERTED_COLOR_STYLE;\n\n this.setCaptionsStyles(styles);\n }\n\n /**\n * Reset the captions styles\n * @param {Event} e\n * @memberof CaptionsStylePlugin\n */\n clearCaptionsStyles() {\n this.captionsStyles = Object.assign({}, DEFAULT_CAPTIONS_STYLES);\n this.setCaptionsStyles();\n\n for (const radio of this.radios) {\n radio.resetState();\n }\n }\n\n /**\n * Get the captions styles\n * @param {string} [prop] The optional property, values are \"size\", \"edge\", \"font\", \"background\", \"color\"\n * @return {object | string} The collection of styles, see setCaptionsStyles for more info.\n * @memberof CaptionsStylePlugin\n */\n getCaptionsStyles(prop) {\n return prop ? this.captionsStyles[prop] : this.captionsStyles;\n }\n\n /**\n * Set the captions styles\n *\n * @param {object} [styles] The style options or the name of the\n * property (e.g., \"color\", \"edge\", \"font\", \"background\", \"size\")\n * @param {string} [styles.color='white'] The text color, the default is white\n * @param {string} [styles.edge='none'] The edge style, default is none\n * @param {string} [styles.font='arial'] The font style, default is arial\n * @param {string} [styles.background='black'] The background style, black\n * @param {string} [styles.size='md'] The font style default is medium\n * @param {string} [styles.align='top'] The align style default is top of the window\n * @param {string} [value=''] If setting styles parameter as a string, this is the value of the property.\n * @memberof CaptionsStylePlugin\n */\n setCaptionsStyles(styles = DEFAULT_CAPTIONS_STYLES, value = '') {\n if (typeof styles === 'object') {\n Object.assign(this.captionsStyles, styles);\n } else if (typeof styles === 'string') {\n this.captionsStyles[styles] = value;\n }\n\n // update radios to match\n this.colorRadios.forEach((group) => {\n const style = this.captionsStyles.color === 'white' ? 'default' : 'inverted';\n group.radioGroup[style].checked = true;\n });\n this.alignmentRadios.forEach((group) => {\n group.radioGroup[this.captionsStyles.align].checked = true;\n });\n this.fontSizeRadios.forEach((group) => {\n group.radioGroup[this.captionsStyles.size].checked = true;\n });\n\n SavedData.write(CaptionsStylePlugin.captionStyleKey, this.captionsStyles);\n if (this.client) {\n this.client.send(CaptionsStylePlugin.captionStyleKey, this.captionsStyles);\n }\n }\n\n /**\n * @readonly\n * @returns {number}\n * @memberof RadioGroup\n */\n get radios() {\n return this.colorRadios\n .concat(this.alignmentRadios)\n .concat(this.fontSizeRadios);\n }\n /**\n * Get captionStyle Key\n * @readonly\n * @static\n * @memberof CaptionStyleKey\n * @returns {string}\n */\n static get captionStyleKey() {\n return 'captionsStyles';\n }\n\n}\n","import { SavedData } from '../SavedData';\nimport { ButtonPlugin } from '../base-plugins';\nimport { Button } from '../ui-elements';\n\n/**\n * @export\n * @class CaptionsTogglePlugin\n * @property {Button[]} _captionsButtons An array of caption mute buttons\n * @property {boolean} _captionsMuted True if captions are muted\n * @property {number} captionsButtonLength The length of the captionsButtons array\n * @extends {ButtonPlugin}\n */\nexport class CaptionsTogglePlugin extends ButtonPlugin {\n /**\n *Creates an instance of CaptionsTogglePlugin.\n * @param {string | HTMLElement} captionsButtons selector string for one or more captions mute buttons\n * @memberof CaptionsTogglePlugin\n */\n constructor(captionsButtons) {\n super('Caption-Button-Plugin');\n this.sendAllProperties = this.sendAllProperties.bind(this);\n\n this._captionsButtons = [];\n\n if ( captionsButtons instanceof HTMLElement ) {\n this._captionsButtons[0] = new Button({\n button: captionsButtons,\n onClick: this.captionsButtonClick.bind(this),\n channel: 'captions'\n });\n } else {\n document.querySelectorAll(captionsButtons).forEach((button) => {\n this._captionsButtons.push(new Button({\n button: button,\n onClick: this.captionsButtonClick.bind(this),\n channel: 'captions'\n }));\n });\n }\n\n this._captionsMuted = false;\n this.captionsButtonLength = this._captionsButtons.length;\n\n if (0 >= this.captionsButtonLength) {\n this.warn(\n 'Plugin was not provided any valid button or input elements'\n );\n return;\n }\n }\n\n /**\n * @memberof CaptionsTogglePlugin\n */\n init() {\n // Handle the features request\n this.client.on(\n 'features',\n function($event) {\n for (let i = 0; i < this.captionsButtonLength; i ++) {\n this._captionsButtons[i].displayButton($event.data);\n }\n\n if (null === SavedData.read(CaptionsTogglePlugin.captionsToggleKey)) {\n return;\n }\n\n const captionsMuted = !!SavedData.read(CaptionsTogglePlugin.captionsToggleKey);\n\n this.setMuteProp('captionsMuted', captionsMuted, this._captionsButtons, true);\n\n }.bind(this)\n );\n }\n /**\n * @memberof CaptionsTogglePlugin\n */\n start() {\n for (let i = 0; i < this.captionsButtonsLength; i++) {\n this.captionsButtons[i].enableButton();\n }\n this.client.on('loaded', this.sendAllProperties);\n this.client.on('loadDone', this.sendAllProperties);\n }\n\n /**\n *\n * Sends initial caption properties to the application\n * @memberof CaptionsTogglePlugin\n */\n sendAllProperties() {\n this.sendProperty(CaptionsTogglePlugin.captionsToggleKey, this.captionsMuted);\n }\n\n /**\n * @memberof CaptionsTogglePlugin\n */\n captionsButtonClick() {\n this.captionsMuted = !this.captionsMuted;\n }\n\n /**\n * @readonly\n * @memberof CaptionsTogglePlugin\n */\n get captionsMuted() {\n return this._captionsMuted;\n }\n\n /**\n * @param {boolean} muted\n * @memberof CaptionsTogglePlugin\n */\n set captionsMuted(muted) {\n this._captionsMuted = muted;\n this._setMuteProp(\n 'captionsMuted',\n this._captionsButtons,\n this._captionsMuted\n );\n }\n\n /**\n * Get CaptionToggle Key\n * @readonly\n * @static\n * @memberof captionsToggleKey\n * @returns {string}\n */\n static get captionsToggleKey() {\n return 'captionsMuted';\n }\n}\n","import { ButtonPlugin } from '../base-plugins';\nimport { Button } from '../ui-elements';\n\n/**\n * Requests a hint or help from the game\n * @class HelpPlugin\n * @property {boolean} paused\n * @property {boolean} _helpEnabled\n * @property {boolean} onPause\n * @property {number} helpButtonsLength\n * @extends {ButtonPlugin}\n * @export\n */\nexport class HelpPlugin extends ButtonPlugin {\n /**\n * Creates an instance of HelpPlugin.\n * @param {string | HTMLElement} helpButtons The selector or HTMLElement for the button\n * @memberof HelpPlugin\n */\n constructor(helpButtons) {\n super('Help-Button-Plugin');\n\n this._helpButtons = [];\n\n if (helpButtons instanceof HTMLElement) {\n this._helpButtons[0] = new Button({\n button: helpButtons,\n onClick: this.helpButtonClick.bind(this),\n channel: 'hints' // the check to see if this feature exists is different than most so passing this ensures it'll work the same.\n });\n } else {\n document.querySelectorAll(helpButtons).forEach((button) => {\n this._helpButtons.push(\n new Button({\n button: button,\n onClick: this.helpButtonClick.bind(this),\n channel: 'hints'\n })\n );\n });\n }\n\n this.paused = false;\n this._helpEnabled = false;\n this.onPause = this.onPause.bind(this);\n this.helpButtonsLength = this._helpButtons.length;\n\n if (this.helpButtonsLength <= 0) {\n this.warn('Plugin was not provided any valid button elements');\n }\n }\n /**\n * Called when the game is either paused or resumed\n * @param {object} $event\n * @memberof HelpPlugin\n */\n onPause($event) {\n this.paused = $event.data.paused;\n // Disable the help button when paused if it's active\n if (\n this.paused &&\n this.helpEnabled\n ) {\n for (let i = 0; i < this.helpButtonsLength; i++) {\n this._helpButtons[i].button.setAttribute('data-paused', 'true');\n }\n this.helpEnabled = false;\n } else {\n for (let i = 0; i < this.helpButtonsLength; i++) {\n if (this._helpButtons[i].button.getAttribute('data-paused')) {\n this._helpButtons[i].button.setAttribute('data-paused', '');\n this.helpEnabled = true;\n }\n }\n }\n }\n\n /**\n *\n *\n * @memberof HelpPlugin\n */\n helpButtonClick() {\n if (\n !this.paused &&\n this.helpEnabled\n ) {\n this.client.send('playHelp');\n }\n }\n\n /**\n * @memberof HelpPlugin\n */\n init() {\n // Handle pause\n this.client.on('paused', this.onPause);\n\n // Handle features changed\n this.client.on(\n 'features',\n function(features) {\n this.helpEnabled = features.data.hints;\n for (let i = 0; i < this.helpButtonsLength; i++) {\n this._helpButtons[i].displayButton(features.data);\n }\n }.bind(this)\n );\n\n this.client.on(\n 'helpEnabled',\n function(event) {\n this._helpEnabled = !!event.data;\n }.bind(this)\n );\n }\n\n /**\n * @memberof HelpPlugin\n */\n get helpEnabled() {\n return this._helpEnabled;\n }\n\n /**\n * Fired when the enabled status of the help button changes\n * @function helpEnabled\n * @param {boolean} enabled If the help button is enabled\n * @memberof HelpPlugin\n */\n set helpEnabled(enabled) {\n this._helpEnabled = enabled;\n for (let i = 0; i < this.helpButtonsLength; i++) {\n this._helpButtons[i].button.classList.remove('disabled');\n this._helpButtons[i].button.classList.remove('enabled');\n this._helpButtons[i].button.classList.add(enabled ? 'enabled' : 'disabled');\n }\n\n this.client.trigger('helpEnabled');\n }\n\n /**\n * @readonly\n * @static\n * @memberof HelpPlugin\n * @returns {string}\n */\n static get helpKey() {\n return 'help';\n }\n\n}\n","import { ButtonPlugin } from '../base-plugins';\nimport { PageVisibility } from '../PageVisibility';\nimport { Button } from '../ui-elements';\n/**\n * @class Container\n * @property {object[]} sliders an array of all slider objects attached to PausePlugin\n * @extends ButtonPlugin\n */\nexport class PausePlugin extends ButtonPlugin {\n /**\n * Creates an instance of PausePlugin.\n * @param {string | HTMLElement} pauseButton selector string or HTML Element for the input(s)\n * @param {boolean} manageOwnVisibility whether the plugin should manage container's visibility or some other source will handle it\n * @memberof PausePlugin\n */\n constructor(pauseButton, manageOwnVisibility = true) {\n super('Pause-Button-plugin');\n this._manageOwnVisibility = manageOwnVisibility;\n this._appBlurred = false;\n this._containerBlurred = false;\n this._focusTimer = null;\n this._isManualPause = false;\n this._keepFocus = false;\n this._paused = false;\n this.iframe = null;\n this.focusApp = this.focusApp.bind(this);\n this.manageFocus = this.manageFocus.bind(this);\n this.onKeepFocus = this.onKeepFocus.bind(this);\n this.onFocus = this.onFocus.bind(this);\n const onPauseToggle = this.onPauseToggle.bind(this);\n\n this.pauseDisabled = false;\n this._pauseButton = [];\n\n this.pageVisibility = new PageVisibility(\n this.onContainerFocus.bind(this),\n this.onContainerBlur.bind(this)\n );\n\n this.pageVisibility.enabled = this.manageOwnVisibility;\n\n if (pauseButton instanceof HTMLElement) {\n this._pauseButton[0] = new Button({\n button: pauseButton,\n onClick: onPauseToggle,\n channel: PausePlugin.pauseKey\n });\n } else {\n document.querySelectorAll(pauseButton).forEach((button) => {\n this._pauseButton.push(new Button({\n button: button,\n onClick: onPauseToggle,\n channel: PausePlugin.pauseKey\n }));\n });\n }\n }\n\n /**\n * updates _paused and also sends the pause event to the application\n * @memberof PausePlugin\n * @param {Boolean} paused\n */\n set pause(paused) {\n paused = !!paused;\n\n if (this.pauseDisabled) {\n return;\n }\n this._paused = paused;\n\n this.client.send(PausePlugin.pauseKey, paused);\n this.client.trigger(paused ? 'paused' : 'resumed', { paused });\n\n for (let i = 0, l = this._pauseButton.length; i < l; i++) {\n this._pauseButton[i].button.classList.remove('unpaused');\n this._pauseButton[i].button.classList.remove('paused');\n this._pauseButton[i].button.classList.add(paused ? 'paused' : 'unpaused');\n }\n }\n\n /**\n * @memberof PausePlugin\n * @returns {Boolean}\n */\n get pause() {\n return this._paused;\n }\n\n /**\n * updates _manageOwnVisibility and also re-enables pageVisibility\n * @memberof PausePlugin\n * @param {Boolean} manageOwnVisibility\n */\n set manageOwnVisibility(manageOwnVisibility) {\n this._manageOwnVisibility = manageOwnVisibility;\n\n this.pageVisibility.enabled = this._manageOwnVisibility;\n }\n\n /**\n * @memberof PausePlugin\n * @returns {Boolean}\n */\n get manageOwnVisibility() {\n return this._manageOwnVisibility;\n }\n\n /**\n * forces focus onto the iframe application window\n * @memberof PausePlugin\n */\n focusApp() {\n if (!this.hasDom) {\n // We don't have a dom with a content window, fail quietly\n return;\n }\n\n this.iframe.contentWindow.focus();\n }\n\n /**\n * blurs the application iframe window\n * @memberof PausePlugin\n */\n blurApp() {\n if (!this.hasDom) {\n return;\n }\n this.iframe.contentWindow.blur();\n }\n\n /**\n * Determines what pause state should be sent, if any, on focus or blur events.\n * @method manageFocus\n * @memberof PausePlugin\n */\n manageFocus() {\n if (!this.manageOwnVisibility) {\n return;\n }\n // Unfocus on the iframe\n if (this._keepFocus) {\n this.blurApp();\n }\n\n // we only need one delayed call, at the end of any\n // sequence of rapidly-fired blur/focus events\n if (this._focusTimer) {\n clearTimeout(this._focusTimer);\n }\n\n // Delay setting of 'paused' in case we get another focus event soon.\n // Focus events are sent to the container asynchronously, and this was\n // causing rapid toggling of the pause state and related issues,\n // especially in Internet Explorer\n this._focusTimer = setTimeout(\n function () {\n this._focusTimer = null;\n // A manual pause cannot be overriden by focus events.\n // User must click the resume button.\n if (this._isManualPause) {\n return;\n }\n\n this.pause = Boolean(this._containerBlurred && this._appBlurred);\n\n // Focus on the content window when blurring the app\n // but selecting the container\n if (this._keepFocus && !this._containerBlurred && this._appBlurred) {\n this.focusApp();\n }\n }.bind(this),\n 100\n );\n }\n\n /**\n * Handle the keep focus event for the window\n * @method onKeepFocus\n * @memberof PausePlugin\n * @private\n */\n onKeepFocus($event) {\n this._keepFocus = !!$event.data;\n this.manageFocus();\n }\n\n /**\n * Handle focus events sent from iFrame children\n * @method onFocus\n * @memberof PausePlugin\n * @private\n */\n onFocus($event) {\n this._appBlurred = !$event.data;\n this.manageFocus();\n }\n\n /**\n * Handle focus events sent from container's window\n * @method onContainerFocus\n * @memberof PausePlugin\n * @private\n */\n onContainerFocus() {\n this._containerBlurred = false;\n this.manageFocus();\n }\n\n /**\n * Handle blur events sent from container's window\n * @method onContainerBlur\n * @memberof PausePlugin\n * @private\n */\n onContainerBlur() {\n //Set both container and application to blurred,\n //because some blur events are only happening on the container.\n //If container is blurred because application area was just focused,\n //the application's focus event will override the blur imminently.\n this._containerBlurred = this._appBlurred = true;\n this.manageFocus();\n }\n\n /**\n * @memberof PausePlugin\n */\n onPauseToggle() {\n this._isManualPause = !this._isManualPause;\n this.pause = !this.pause;\n }\n\n /**\n * @param {Container} container\n * @memberof PausePlugin\n */\n init({ iframe }) {\n this.iframe = iframe;\n\n this.client.on(\n 'features',\n function (features) {\n if (features.disablePause) {\n this.pauseDisabled = true;\n }\n\n for (let i = 0, l = this._pauseButton.length; i < l; i++) {\n this._pauseButton[i].displayButton(features.data);\n }\n }.bind(this)\n );\n this.client.on('focus', this.onFocus);\n this.client.on('keepFocus', this.onKeepFocus);\n\n this.pause = this._paused;\n }\n\n /**\n * Function to check if we have a dom with a contentWindow\n * @readonly\n * @returns {boolean}\n * @memberof PausePlugin\n */\n get hasDom() {\n return Boolean(null !== this.iframe && this.iframe.contentWindow);\n }\n\n /**\n * @readonly\n * @memberof PausePlugin\n * @returns {HTMLButtonElement[]}\n */\n get pauseButton() {\n const buttons = [];\n for (let i = 0, l = this._pauseButton.length; i < l; i++) {\n buttons.push(this._pauseButton[i].button);\n }\n return buttons;\n }\n\n /**\n * @readonly\n * @static\n * @memberof PausePlugin\n * @returns {string}\n */\n static get pauseKey() {\n return 'pause';\n }\n}\n","import { SavedData } from '../SavedData';\nimport { ButtonPlugin } from '../base-plugins';\nimport { Slider, Button } from '../ui-elements';\n\n/**\n * @export\n * @class SoundPlugin\n * @extends {ButtonPlugin}\n *\n */\nexport class SoundPlugin extends ButtonPlugin {\n /**\n * Creates an instance of SoundPlugin.\n * @param {string | HTMLElement} [soundButtons] selector string or HTML Element for the input(s)\n * @param {string | HTMLElement} [musicButtons] selector string or HTML Element for the input(s)\n * @param {string | HTMLElement} [voButtons] selector string or HTML Element for the input(s)\n * @param {string | HTMLElement} [sfxButtons] selector string or HTML Element for the input(s)\n * @param {string | HTMLElement} [soundSliders] selector string or HTML Element for the input(s)\n * @param {string | HTMLElement} [musicSliders] selector string or HTML Element for the input(s)\n * @param {string | HTMLElement} [sfxSliders] selector string or HTML Element for the input(s)\n * @param {string | HTMLElement} [voSliders] selector string or HTML Element for the input(s)\n * @memberof SoundPlugin\n */\n constructor({\n soundButtons,\n musicButtons,\n sfxButtons,\n voButtons,\n soundSliders,\n musicSliders,\n sfxSliders,\n voSliders\n } = {}) {\n super('Sound-Button-Plugin');\n const saved = SavedData.read(SoundPlugin.soundMutedKey);\n this.sendAllProperties = this.sendAllProperties.bind(this);\n this._soundMuted = saved ? saved : false;\n this._musicMuted = false;\n this._voMuted = false;\n this._sfxMuted = false;\n\n this._musicMutedByUser = false;\n this._soundMutedByUser = false;\n this._sfxMutedByUser = false;\n this._voMutedByUser = false;\n\n this.soundMuteEnabled = false;\n this.musicMuteEnabled = false;\n this.sfxMuteEnabled = false;\n this.voMuteEnabled = false;\n\n this.soundVolume = 1;\n this.musicVolume = 1;\n this.sfxVolume = 1;\n this.voVolume = 1;\n\n this.soundSliders = [];\n this.musicSliders = [];\n this.sfxSliders = [];\n this.voSliders = [];\n\n this.soundButtons = [];\n this.musicButtons = [];\n this.sfxButtons = [];\n this.voButtons= [];\n\n if (soundSliders instanceof HTMLElement) {\n this.soundSliders[0] = new Slider({\n slider: soundSliders,\n control: SoundPlugin.soundVolumeKey,\n defaultValue: this.soundVolume\n });\n } else {\n document.querySelectorAll(soundSliders).forEach((slider) => {\n const newSlider = new Slider({\n slider: slider,\n control: SoundPlugin.soundVolumeKey,\n defaultValue: this.soundVolume\n });\n if (newSlider.slider) {\n this.soundSliders.push(newSlider);\n }\n });\n }\n if (musicSliders instanceof HTMLElement) {\n this.musicSliders[0] = new Slider({\n slider: musicSliders,\n control: SoundPlugin.musicVolumeKey,\n defaultValue: this.musicVolume\n });\n } else {\n document.querySelectorAll(musicSliders).forEach((slider) => {\n const newSlider = new Slider({\n slider: slider,\n control: SoundPlugin.musicVolumeKey,\n defaultValue: this.musicVolume\n });\n if (newSlider.slider) {\n this.musicSliders.push(newSlider);\n }\n });\n }\n if (sfxSliders instanceof HTMLElement) {\n this.sfxSliders[0] = new Slider({\n slider: sfxSliders,\n control: SoundPlugin.sfxVolumeKey,\n defaultValue: this.sfxVolume\n });\n } else {\n document.querySelectorAll(sfxSliders).forEach((slider) => {\n const newSlider = new Slider({\n slider: slider,\n control: SoundPlugin.sfxVolumeKey,\n defaultValue: this.sfxVolume\n });\n if (newSlider.slider) {\n this.sfxSliders.push(newSlider);\n }\n });\n }\n if (voSliders instanceof HTMLElement) {\n this.voSliders[0] = new Slider({\n slider: voSliders,\n control: SoundPlugin.voVolumeKey,\n defaultValue: this.voVolume\n });\n } else {\n document.querySelectorAll(voSliders).forEach((slider) => {\n const newSlider = new Slider({\n slider: slider,\n control: SoundPlugin.voVolumeKey,\n defaultValue: this.voVolume\n });\n if (newSlider.slider) {\n this.voSliders.push(newSlider);\n }\n });\n }\n\n if ( soundButtons instanceof HTMLElement ) {\n this.soundButtons[0] = new Button({\n button: soundButtons,\n onClick: this.onSoundToggle.bind(this),\n channel: SoundPlugin.soundKey\n });\n } else {\n document.querySelectorAll(soundButtons).forEach((button) => {\n this.soundButtons.push(new Button({\n button: button,\n onClick: this.onSoundToggle.bind(this),\n channel: SoundPlugin.soundKey\n }));\n });\n }\n if ( musicButtons instanceof HTMLElement ) {\n this.musicButtons[0] = new Button({\n button: musicButtons,\n onClick: this.onMusicToggle.bind(this),\n channel: 'music'\n });\n } else {\n document.querySelectorAll(musicButtons).forEach((button) => {\n this.musicButtons.push(new Button({\n button: button,\n onClick: this.onMusicToggle.bind(this),\n channel: 'music'\n }));\n });\n }\n if ( sfxButtons instanceof HTMLElement ) {\n this.sfxButtons[0] = new Button({\n button: sfxButtons,\n onClick: this.onSFXToggle.bind(this),\n channel: 'sfx'\n });\n } else {\n document.querySelectorAll(sfxButtons).forEach((button) => {\n this.sfxButtons.push(new Button({\n button: button,\n onClick: this.onSFXToggle.bind(this),\n channel: 'sfx'\n }));\n });\n }\n if ( voButtons instanceof HTMLElement ) {\n this.voButtons[0] = new Button({\n button: voButtons,\n onClick: this.onVOToggle.bind(this),\n channel: 'vo'\n });\n } else {\n document.querySelectorAll(voButtons).forEach((button) => {\n this.voButtons.push(new Button({\n button: button,\n onClick: this.onVOToggle.bind(this),\n channel: 'vo'\n }));\n });\n }\n\n this.soundSlidersLength = this.soundSliders.length;\n this.musicSlidersLength = this.musicSliders.length;\n this.sfxSlidersLength = this.sfxSliders.length;\n this.voSlidersLength = this.voSliders.length;\n this.soundButtonsLength = this.soundButtons.length;\n this.musicButtonsLength = this.musicButtons.length;\n this.sfxButtonsLength = this.sfxButtons.length;\n this.voButtonsLength = this.voButtons.length;\n\n if (0 >= (this.soundSlidersLength + this.musicSlidersLength + this.sfxSlidersLength + this.voSlidersLength + this.soundButtonsLength + this.musicButtonsLength + this.sfxButtonsLength + this.voButtonsLength)) {\n this.warn('Plugin was not provided any valid HTML Elements');\n return;\n }\n\n for (let i = 0; i < this.soundSlidersLength; i++) {\n this.soundSliders[i].enableSliderEvents(this.onSoundVolumeChange.bind(this));\n }\n for (let i = 0; i < this.musicSlidersLength; i++) {\n this.musicSliders[i].enableSliderEvents(this.onMusicVolumeChange.bind(this));\n }\n for (let i = 0; i < this.sfxSlidersLength; i++) {\n this.sfxSliders[i].enableSliderEvents(this.onSFXVolumeChange.bind(this));\n }\n for (let i = 0; i < this.voSlidersLength; i++) {\n this.voSliders[i].enableSliderEvents(this.onVOVolumeChange.bind(this));\n }\n\n if (this.soundSliders[0] && this.soundSliders[0].slider) {\n this.soundVolume = this.soundSliders[0].value;\n }\n if (this.musicSliders[0] && this.musicSliders[0].slider) {\n this.musicVolume = this.musicSliders[0].value;\n }\n if (this.sfxSliders[0] && this.sfxSliders[0].slider) {\n this.sfxVolume = this.sfxSliders[0].value;\n }\n if (this.voSliders[0] && this.voSliders[0].slider) {\n this.voVolume = this.voSliders[0].value;\n }\n }\n\n /**\n * @memberof SoundPlugin\n * @param {Event} e\n */\n onSoundVolumeChange(e) {\n if (this.soundSlidersLength <= 0) {\n this.soundVolume = e.target.value;\n return;\n }\n this.soundVolume = this.soundSliders[0].sliderRange(\n Number(e.target.value)\n );\n this.soundMuted = !this.soundVolume;\n\n if (!this._musicMutedByUser) {\n this.musicMuted = this.soundMuted;\n }\n if (!this._sfxMutedByUser) {\n this.sfxMuted = this.soundMuted;\n }\n if (!this._voMutedByUser) {\n this.voMuted = this.soundMuted;\n }\n\n this.sendProperty(SoundPlugin.soundVolumeKey, this.soundVolume);\n\n for (let i = 0; i < this.soundSlidersLength; i++) {\n this.soundSliders[i].value = this.soundVolume;\n }\n }\n\n /**\n * @memberof SoundPlugin\n * @param {Event} e\n */\n onMusicVolumeChange(e) {\n if (this.musicSlidersLength <= 0) {\n this.musicVolume = e.target.value;\n return;\n }\n\n this.musicVolume = this.musicSliders[0].sliderRange(\n Number(e.target.value)\n );\n\n this.musicMuted = !this.musicVolume;\n if (!this.musicMuted) { this._musicMutedByUser = false; }\n this._checkSoundMute();\n this.sendProperty(SoundPlugin.musicVolumeKey, this.musicVolume);\n\n for (let i = 0; i < this.musicSlidersLength; i++) {\n this.musicSliders[i].value = this.musicVolume;\n }\n }\n\n /**\n * @memberof SoundPlugin\n * @param {Event} e\n */\n onVOVolumeChange(e) {\n if (this.voSlidersLength <= 0) {\n this.voVolume = e.target.value;\n return;\n }\n this.voVolume = this.voSliders[0].sliderRange(Number(e.target.value));\n if (!this.voMuted) { this._voMutedByUser = false; }\n this.voMuted = !this.voVolume;\n this._checkSoundMute();\n\n this.sendProperty(SoundPlugin.voVolumeKey, this.voVolume);\n for (let i = 0; i < this.voSlidersLength; i++) {\n this.voSliders[i].value = this.voVolume;\n }\n }\n\n /**\n * @memberof SoundPlugin\n * @param {Event} e\n */\n onSFXVolumeChange(e) {\n if (this.sfxSlidersLength <= 0) {\n this.sfxVolume = e.target.value;\n return;\n }\n this.sfxVolume = this.sfxSliders[0].sliderRange(Number(e.target.value));\n if (!this.sfxMuted) { this._sfxMutedByUser = false; }\n this.sfxMuted = !this.sfxVolume;\n this._checkSoundMute();\n\n this.sendProperty(SoundPlugin.sfxVolumeKey, this.sfxVolume);\n\n for (let i = 0; i < this.sfxSlidersLength; i++) {\n this.sfxSliders[i].value = this.sfxVolume;\n }\n }\n\n /**\n * @memberof SoundPlugin\n */\n onSoundToggle() {\n const muted = !this.soundMuted;\n this.soundMuted = muted;\n\n if (!this._musicMutedByUser || muted) {\n this.musicMuted = muted;\n }\n if (!this._sfxMutedByUser || muted) {\n this.sfxMuted = muted;\n }\n if (!this._voMutedByUser || muted) {\n this.voMuted = muted;\n }\n }\n\n /**\n * @memberof SoundPlugin\n */\n onMusicToggle() {\n this.musicMuted = !this.musicMuted;\n this._musicMutedByUser = this.musicMuted;\n this._checkSoundMute();\n }\n\n /**\n * @memberof SoundPlugin\n */\n onVOToggle() {\n this.voMuted = !this.voMuted;\n this._voMutedByUser = this.voMuted;\n this._checkSoundMute();\n }\n\n /**\n * @memberof SoundPlugin\n */\n onSFXToggle() {\n this.sfxMuted = !this.sfxMuted;\n this._sfxMutedByUser = this.sfxMuted;\n this._checkSoundMute();\n }\n\n /**\n * @memberof SoundPlugin\n */\n _checkSoundMute() {\n this.soundMuted = this.sfxMuted && this.voMuted && this.musicMuted;\n }\n\n /**\n * @param {string} key\n * @param {*} value\n * @param {Element} element\n * @memberof SoundPlugin\n */\n setMuteProp(key, value, element, disableSend = false) {\n this['_' + key] = value;\n this._setMuteProp(key, element, value, disableSend);\n }\n\n /**\n * @memberof SoundPlugin\n */\n async preload({ client }) {\n this.client = client;\n console.log('sound plugin preload');\n this.client.on(\n 'features',\n function(features) {\n console.log('features!', features);\n if (!features.data) {\n return;\n }\n \n // Confirm that the mute features are supported\n this.soundMuteEnabled = !!features.data.sound;\n this.musicMuteEnabled = !!features.data.music;\n this.sfxMuteEnabled = !!features.data.sfx;\n this.voMuteEnabled = !!features.data.vo;\n \n this.soundVolumeEnabled = !!features.data.soundVolume;\n this.musicVolumeEnabled = !!features.data.musicVolume;\n this.sfxVolumeEnabled = !!features.data.sfxVolume;\n this.voVolumeEnabled = !!features.data.voVolume;\n \n for (let i = 0; i < this.soundButtonsLength; i++) {\n this.soundButtons[i].displayButton(features.data);\n }\n for (let i = 0; i < this.musicButtonsLength; i++) {\n this.musicButtons[i].displayButton(features.data);\n }\n for (let i = 0; i < this.sfxButtonsLength; i++) {\n this.sfxButtons[i].displayButton(features.data);\n }\n for (let i = 0; i < this.voButtonsLength; i++) {\n this.voButtons[i].displayButton(features.data);\n }\n for (let i = 0; i < this.soundSlidersLength; i++) {\n this.soundSliders[i].displaySlider(features.data);\n }\n for (let i = 0; i < this.musicSlidersLength; i++) {\n this.musicSliders[i].displaySlider(features.data);\n }\n for (let i = 0; i < this.sfxSlidersLength; i++) {\n this.sfxSliders[i].displaySlider(features.data);\n }\n for (let i = 0; i < this.voSlidersLength; i++) {\n this.voSliders[i].displaySlider(features.data);\n }\n\n\n console.log('setting the mute props for sound et all');\n const soundMuted = !!SavedData.read(SoundPlugin.soundMutedKey);\n const musicMuted = !!SavedData.read(SoundPlugin.musicMutedKey);\n const sfxMuted = !!SavedData.read(SoundPlugin.sfxMutedKey);\n const voMuted = !!SavedData.read(SoundPlugin.voMutedKey);\n\n // set the property in case buttons exist but disable the send here\n // properties will be sent in sendAllProperties\n this.setMuteProp('soundMuted', soundMuted, this.soundButtons, true);\n this.setMuteProp('musicMuted', musicMuted, this.musicButtons, true);\n this.setMuteProp('sfxMuted', sfxMuted, this.sfxButtons, true);\n this.setMuteProp('voMuted', voMuted, this.voButtons, true);\n }.bind(this)\n );\n }\n\n /**\n * @memberof SoundPlugin\n */\n start() {\n for (let i = 0; i < this.soundButtonsLength; i++) {\n this.soundButtons[i].enableButton();\n }\n for (let i = 0; i < this.musicButtonsLength; i++) {\n this.musicButtons[i].enableButton();\n }\n for (let i = 0; i < this.sfxButtonsLength; i++) {\n this.sfxButtons[i].enableButton();\n }\n for (let i = 0; i < this.voButtonsLength; i++) {\n this.voButtons[i].enableButton();\n }\n\n this.client.on('loaded', this.sendAllProperties);\n this.client.on('loadDone', this.sendAllProperties);\n }\n\n /**\n *\n * Saves the current state of all volume properties, and then sends them to the game\n * @memberof SoundPlugin\n */\n sendAllProperties() {\n\n if ( this.soundVolumeEnabled && this.soundSlidersLength > 0 ) {\n this.sendProperty(SoundPlugin.soundVolumeKey, this.soundVolume);\n }\n if ( this.musicVolumeEnabled && this.musicSlidersLength > 0 ) {\n this.sendProperty(SoundPlugin.musicVolumeKey, this.musicVolume);\n }\n if ( this.voVolumeEnabled && this.voSlidersLength > 0 ) {\n this.sendProperty(SoundPlugin.voVolumeKey, this.voVolume);\n }\n if ( this.sfxVolumeEnabled && this.sfxSlidersLength > 0 ) {\n this.sendProperty(SoundPlugin.sfxVolumeKey, this.sfxVolume);\n }\n\n // to avoid the mute property overwriting the volume on startup, mutes should only send if they're true\n // or the volume channel isn't enabled\n if ( (this.soundButtonsLength > 0 && this.soundMuteEnabled) && (this.soundMuted || !this.soundVolumeEnabled )) {\n this.sendProperty(SoundPlugin.soundMutedKey, this.soundMuted);\n }\n if ( (this.musicButtonsLength > 0 && this.musicMuteEnabled) && (this.musicMuted || !this.musicVolumeEnabled )) {\n this.sendProperty(SoundPlugin.musicMutedKey, this.musicMuted);\n }\n if ( (this.voButtonsLength > 0 && this.voMuteEnabled) && ( this.voMuted || !this.voVolumeEnabled )) {\n this.sendProperty(SoundPlugin.voMutedKey, this.voMuted);\n }\n if ( (this.sfxButtonsLength > 0 && this.sfxMuteEnabled) && (this.sfxMuted || !this.sfxVolumeEnabled )) {\n this.sendProperty(SoundPlugin.sfxMutedKey, this.sfxMuted);\n }\n }\n\n /**\n * @memberof SoundPlugin\n * @param {boolean} muted\n */\n set soundMuted(muted) {\n if (muted === this.soundMuted) {\n // have to do this to make sure it gets set up properly on start up\n this.setMuteProp('soundMuted', muted, this.soundButtons, true);\n return;\n }\n\n let disableSend = false;\n // if volume is enabled and the channel is becoming unmuted we update everything but only send the volume\n if (this.soundVolumeEnabled && !muted) {\n this.sendProperty(SoundPlugin.soundVolumeKey, this.soundVolume);\n disableSend = true;\n }\n this.setMuteProp('soundMuted', muted, this.soundButtons, disableSend);\n }\n\n /**\n * @memberof SoundPlugin\n */\n get soundMuted() {\n return this._soundMuted;\n }\n\n /**\n * @memberof SoundPlugin\n * @param {boolean} muted\n */\n set voMuted(muted) {\n let disableSend = false;\n if (this.voMuted === muted) {\n // have to do this to make sure it gets set up properly on start up\n this.setMuteProp('voMuted', muted, this.voButtons, true);\n return;\n }\n if ((this.voVolumeEnabled && !muted)) {\n this.sendProperty(SoundPlugin.voVolumeKey, this.voVolume);\n disableSend = true;\n }\n this.setMuteProp('voMuted', muted, this.voButtons, disableSend);\n }\n\n /**\n * @memberof SoundPlugin\n */\n get voMuted() {\n return this._voMuted;\n }\n\n /**\n * @memberof SoundPlugin\n * @param {boolean} muted\n */\n set musicMuted(muted) {\n if (this.musicMuted === muted) {\n // have to do this to make sure it gets set up properly on start up\n this.setMuteProp('musicMuted', muted, this.musicButtons, true);\n return; \n }\n let disableSend = false;\n if (this.musicVolumeEnabled && !muted) {\n this.sendProperty(SoundPlugin.musicVolumeKey, this.musicVolume);\n disableSend = true;\n }\n\n this.setMuteProp('musicMuted', muted, this.musicButtons, disableSend);\n }\n\n /**\n * @memberof SoundPlugin\n */\n get musicMuted() {\n return this._musicMuted;\n }\n\n /**\n * @memberof SoundPlugin\n * @param {boolean} muted\n */\n set sfxMuted(muted) {\n if (this.sfxMuted === muted) {\n // have to do this to make sure it gets set up properly on start up\n this.setMuteProp('sfxMuted', muted, this.sfxButtons, true);\n return;\n }\n let disableSend = false;\n if (this.sfxVolumeEnabled && !muted) {\n this.sendProperty(SoundPlugin.sfxVolumeKey, this.sfxVolume);\n disableSend = true;\n }\n this.setMuteProp('sfxMuted', muted, this.sfxButtons, disableSend);\n }\n\n /**\n * @memberof SoundPlugin\n */\n get sfxMuted() {\n return this._sfxMuted;\n }\n\n /**\n * @readonly\n * @static\n * @memberof SoundPlugin\n */\n static get soundMutedKey() {\n return 'soundMuted';\n }\n\n /**\n * @readonly\n * @static\n * @memberof SoundPlugin\n */\n static get voMutedKey() {\n return 'voMuted';\n }\n\n /**\n * @readonly\n * @static\n * @memberof SoundPlugin\n */\n static get musicMutedKey() {\n return 'musicMuted';\n }\n\n /**\n * @readonly\n * @static\n * @memberof SoundPlugin\n */\n static get sfxMutedKey() {\n return 'sfxMuted';\n }\n\n /**\n * @readonly\n * @static\n * @memberof SoundPlugin\n */\n static get soundVolumeKey() {\n return 'soundVolume';\n }\n\n /**\n * @readonly\n * @static\n * @memberof SoundPlugin\n */\n static get sfxVolumeKey() {\n return 'sfxVolume';\n }\n\n /**\n * @readonly\n * @static\n * @memberof SoundPlugin\n */\n static get voVolumeKey() {\n return 'voVolume';\n }\n\n /**\n * @readonly\n * @static\n * @memberof SoundPlugin\n */\n static get musicVolumeKey() {\n return 'musicVolume';\n }\n\n /**\n * @readonly\n * @memberof SoundPlugin\n */\n get soundButton() {\n return this._soundButton.button;\n }\n\n /**\n * @readonly\n * @memberof SoundPlugin\n */\n get musicButton() {\n return this._musicButton.button;\n }\n /**\n * @readonly\n * @memberof SoundPlugin\n */\n get sfxButton() {\n return this._sfxButton.button;\n }\n /**\n * @readonly\n * @memberof SoundPlugin\n */\n get voButton() {\n return this._voButton.button;\n }\n\n /**\n * @readonly\n * @static\n * @memberof SpeedScalePlugin\n * @return {string}\n */\n static get soundKey() {\n return 'sound';\n }\n}\n","import { SavedData } from './SavedData';\n/**\n * Default user data handler for the {{#crossLink \"springroll.Container\"}}Container{{/crossLink}} to save data using\n * the {{#crossLink \"springroll.SavedData\"}}SavedData{{/crossLink}} class.\n * @class SavedDataHandler\n */\nexport class SavedDataHandler {\n\n /**\n * \n */\n constructor() {\n this.dbName;\n this.savedData;\n }\n \n /**\n * Remove a data setting\n * @method remove\n * @static\n * @param {String} name The name of the property\n * @param {Function} [callback] Callback when remove is complete\n */\n static remove(name, callback) {\n SavedData.remove(name);\n callback();\n }\n\n /**\n * Write a custom setting\n * @method write\n * @static\n * @param {String} name The name of the property\n * @param {*} value The value to set the property to\n * @param {Function} [callback] Callback when write is complete\n */\n static write(name, value, callback) {\n SavedData.write(name, value);\n callback();\n }\n\n /**\n * Read a custom setting\n * @method read\n * @static\n * @param {String} name The name of the property\n * @param {Function} callback Callback when read is complete, returns the value\n */\n static read(name, callback) {\n callback(SavedData.read(name));\n }\n\n // ----------------------------------------------------------------\n // IndexedDB Manipulation \n // ----------------------------------------------------------------\n\n /**\n * Open a connection with the database\n * @param {string} dbName The name of your IndexedDB database\n * @param {string} dbVersion The version number of the database\n * @param {JSON} additions Any additions to the structure of the database\n * @param {array} additions.stores Any stores to be added into the database syntax: \n * {storeName: '[name]', options: {[optionally add options]}}\n * @param {array} additions.indexes Any Indexes to be added to the database syntax: \n * {storeName: '[name]', options: {[optionally add options]}}\n */\n IDBOpen( dbName, dbVersion = null, additions = {}, deletions = {}, callback = null) {\n // persisting the savedData object to keep the connection open\n this.savedData = new SavedData();\n this.savedData.IDBOpen( dbName, dbVersion, additions, deletions, callback);\n }\n\n /**\n * Add a record to a given store\n * @param {string} storeName The name of the store from which the record will be updated\n * @param {string} key the key of the record to be updated \n * @param {*} value The value for the record with the given key to be updated\n * @param {function} callback The method to call on success or failure. A single value will be passed in\n */\n IDBAdd(storeName, record, key, callback) {\n this.savedData.IDBAdd(storeName, record, key, callback);\n }\n \n /**\n * Update a record from a given store\n * @param {string} storeName The name of the store from which the record will be updated\n * @param {string} key the key of the record to be updated \n * @param {*} value The value for the record with the given key to be updated\n * @param {function} callback The method to call on success or failure. A single value will be passed in\n */\n IDBUpdate(storeName, key, value, callback) {\n this.savedData.IDBUpdate(storeName, key, value, callback);\n }\n\n /**\n * Remove a record from a store\n * @param {*} storeName The name of the store from which the record will be removed\n * @param {*} key the key of the record to be removed \n * @param {function} callback The method to call on success or failure. A single value will be passed in\n */\n IDBRemove(storeName, key, callback) {\n this.savedData.IDBRemove(storeName, key, callback);\n }\n\n /**\n * Return a record from a given store with a given key\n * @param {string} storeName The name of the store to read from\n * @param {string} key The key for the record in the given store \n * @param {function} callback The method to call on success or failure. A single value will be passed in\n */\n IDBRead(storeName, key, callback) {\n this.savedData.IDBRead(storeName, key, callback);\n }\n\n /**\n * Get all records from a store\n * @param {string} storeName The store to get all records from\n * @param {integer} count Optionally the count of records to return\n * @param {function} callback The method to call on success or failure. A single value will be passed in\n */\n IDBReadAll(storeName, count, callback) {\n this.savedData.IDBReadAll(storeName, count, callback);\n }\n\n /**\n * Get the version of a given database\n * @param {string} dbName The name of the database to return the version of\n * @param {function} callback The method to call on success or failure. A single value will be passed in\n */\n IDBGetVersion(dbName, callback) {\n const sd = new SavedData(dbName);\n\n sd.IDBGetVersion(dbName, callback);\n }\n\n /**\n * Closes the connection to the database\n * @param {function} callback The method to call on success or failure. A single value will be passed in\n */\n IDBClose(callback) {\n this.savedData.IDBClose(callback);\n }\n /**\n * Closes the connection to the database\n * @param {function} callback The method to call on success or failure. A single value will be passed in\n */\n IDBDeleteDB(dbName, options, callback) {\n const sd = new SavedData(dbName);\n sd.IDBDeleteDB(dbName, options, callback);\n }\n\n}\n","import { SavedDataHandler } from '../SavedDataHandler';\nimport { BasePlugin } from '../base-plugins';\n\n/**\n * @export\n * @class UserDataPlugin\n * @extends {BasePlugin}\n * @property {SavedDataHandler} SavedDataHandler The handler to work with the savedData class\n */\nexport class UserDataPlugin extends BasePlugin {\n /**\n * Creates an instance of UserDataPlugin.\n * @memberof UserDataPlugin\n */\n constructor() {\n super('UserData-Plugin');\n this.onUserDataRemove = this.onUserDataRemove.bind(this);\n this.onUserDataRead = this.onUserDataRead.bind(this);\n this.onUserDataWrite = this.onUserDataWrite.bind(this);\n\n this.onIDBAdd = this.onIDBAdd.bind(this);\n this.onIDBOpen = this.onIDBOpen.bind(this);\n this.onIDBRead = this.onIDBRead.bind(this);\n this.onIDBReadAll = this.onIDBReadAll.bind(this);\n this.onIDBRemove = this.onIDBRemove.bind(this);\n this.onIDBUpdate = this.onIDBUpdate.bind(this);\n this.onIDBUpdate = this.onIDBUpdate.bind(this);\n this.onIDBClose = this.onIDBClose.bind(this);\n this.IDBReadAll = this.onIDBReadAll.bind(this);\n this.onIDBGetVersion = this.onIDBGetVersion.bind(this);\n this.onIDBDeleteDB = this.onIDBDeleteDB.bind(this);\n\n this.savedDataHandler = null;\n }\n\n /**\n *\n * @memberof UserDataPlugin\n */\n init() {\n this.client.on('userDataRemove', this.onUserDataRemove);\n this.client.on('userDataRead', this.onUserDataRead);\n this.client.on('userDataWrite', this.onUserDataWrite);\n\n this.client.on('IDBOpen', this.onIDBOpen);\n this.client.on('IDBRead', this.onIDBRead);\n this.client.on('IDBReadAll', this.onIDBReadAll);\n this.client.on('IDBAdd', this.onIDBAdd);\n this.client.on('IDBRemove', this.onIDBRemove);\n this.client.on('IDBUpdate', this.onIDBUpdate);\n this.client.on('IDBClose', this.onIDBClose);\n this.client.on('IDBGetVersion', this.onIDBGetVersion);\n this.client.on('IDBDeleteDB', this.onIDBDeleteDB);\n }\n\n /**\n * Handler for the userDataRemove event\n * @method onUserDataRemove\n * @private\n * @param {string} data The name of the record to be removed\n * @param {string} type The type of listener for bellhop to send to\n */\n onUserDataRemove({ data, type }) {\n SavedDataHandler.remove(data, () => {\n this.client.send(type);\n });\n }\n\n /**\n * Handler for the userDataRead event\n * @method onUserDataRead\n * @private\n * @param {string} data The name of the record to be removed\n * @param {string} type The type of listener for bellhop to send to\n */\n onUserDataRead({ data, type }) {\n SavedDataHandler.read(data, value => this.client.send(type, value));\n }\n\n /**\n * Handler for the userDataWrite event\n * @method onUserDataWrite\n * @private\n * @param {string} type The type of listener for bellhop to send to\n * @param {string} data.name The name for the record. This is what is used to read or remove the record\n * @param {object | string} data.value The data object with the data and value for the record\n */\n onUserDataWrite({type, data: { name, value } }) {\n\n SavedDataHandler.write(name, value, () => this.client.send(type));\n }\n\n // ----------------------------------------------------------------\n // IndexedDB Manipulation\n // ----------------------------------------------------------------\n\n /**\n * Open a connection with the IDB Database and optionally add or delete\n * Indexes and stores\n * @param {string} dbName The name of your IndexedDB database\n * @param {string} [dbVersion] The version number of the database\n * @param {JSON} [additions] Any additions to the structure of the database\n * @param {array} [additions.stores] Any stores to be added into the database syntax:\n * @param {string} [additions.stores.storeName] The name of the store\n * @param {object} [additions.stores.options] Optionally, the option parameter for the createStore method\n * @param {array} [additions.indexes] Any Indexes to be added to the database syntax:\n * @param {string} [additions.indexes.storeName] The name of the store\n * @param {object} [additions.indexes.options] Optionally, the option parameter for the createIndex method\n * @param {string} type The type of listener for bellhop to send to\n */\n onIDBOpen({type, data: {dbName, dbVersion = null, additions = {}, deletions = {} }}) {\n // Keep an instance open to use on open\n this.savedDataHandler = new SavedDataHandler();\n this.savedDataHandler.IDBOpen( dbName, dbVersion, additions, deletions, value => this.client.send(type, value));\n }\n\n /**\n * Add a record to a given store\n * @param {string} type The type of listener for bellhop to send to\n * @param {string} storeName The name of the store from which the record will be updated\n * @param {*} value The value for the record with the given key to be updated\n * @param {string} key the key of the record to be updated\n */\n onIDBAdd({type, data: { storeName, value, key}}) {\n this.savedDataHandler.IDBAdd(storeName, value, key, value => this.client.send(type, value));\n }\n\n /**\n * Update a record from a given store\n * @param {string} type The type of listener for bellhop to send to\n * @param {string} storeName The name of the store with the record to update\n * @param {string} key The key of the record to be updated\n * @param {*} value The record value\n */\n onIDBUpdate({type, data: { storeName, key, value}}) {\n this.savedDataHandler.IDBUpdate(storeName, key, value, value => this.client.send(type, value));\n }\n\n /**\n * Remove a record from a store\n * @param {string} type The type of listener for bellhop to send to\n * @param {string} storeName The name of the store from which the record will be removed\n * @param {*} key the key of the record to be removed\n */\n onIDBRemove({type, data: {storeName, key}}) {\n this.savedDataHandler.IDBRemove(storeName, key, value => this.client.send(type, value));\n }\n\n /**\n * Return a record from a given store with a given key\n * @param {string} storeName The name of the store to read from\n * @param {string} key The key for the record in the given store\n * @param {string} type The type of listener for bellhop to send to\n */\n onIDBRead({type, data: {storeName, key}}) {\n this.savedDataHandler.IDBRead(storeName, key, value => this.client.send(type, value));\n }\n\n /**\n * Get all records from a store\n * @param {string} storeName The store to get all records from\n * @param {integer} count Optionally the number of records to return\n * @param {string} type The type of listener for bellhop to send to\n */\n onIDBReadAll({ type, data: {storeName, count} }) {\n this.savedDataHandler.IDBReadAll(storeName, count, value => this.client.send(type, value));\n }\n\n /**\n * Get the version of a given database\n * @param {string} dbName The name of the database to return the version of\n * @param {string} type The type of listener for bellhop to send to\n */\n onIDBGetVersion({type, data: {dbName}}) {\n // Create a new instance of savedDataHandler to avoid mutating the current instance\n const sdh = new SavedDataHandler();\n sdh.IDBGetVersion(dbName, value => this.client.send(type, value));\n }\n\n /**\n * Close the connection with the database\n * @param {string} type The type of listener for bellhop to send to\n */\n onIDBClose({type}) {\n this.savedDataHandler.IDBClose(value => this.client.send(type, value));\n }\n /**\n * Close the connection with the database\n * @param type - The type of request being sent\n */\n onIDBDeleteDB({type, data: {dbName, options }}) {\n const sdh = new SavedDataHandler();\n\n\n sdh.IDBDeleteDB(dbName, options, value => this.client.send(type, value));\n }\n}","import { SliderPlugin } from '../base-plugins';\n\n/**\n * @export\n * @class PointerSizePlugin\n * @extends {SliderPlugin}\n * @property {object[]} sliders an array of all slider objects attached to PointerSizePlugin\n * @extends SliderPlugin\n */\nexport class PointerSizePlugin extends SliderPlugin {\n /**\n * Creates an instance of PointerSizePlugin.\n * @param {string | HTMLElement} [pointerSliders] selector string or HTML Element for the input(s)\n * @param {number} [defaultPointerSize=0.5] The default value for the pointer size slider\n * @memberof PointerSizePlugin\n */\n constructor(pointerSliders, { defaultPointerSize = 0.5 } = {}) {\n super(pointerSliders, 'UISize-Pointer-Plugin', { defaultValue: defaultPointerSize, featureName: PointerSizePlugin.pointerSizeKey });\n\n for (let i = 0; i < this.slidersLength; i++) {\n this.sliders[i].enableSliderEvents(this.onPointerSizeChange.bind(this));\n }\n\n }\n\n /**\n * @memberof PointerSizePlugin\n * @param {Event} e\n */\n onPointerSizeChange(e) {\n this.currentValue = e.target.value;\n this.sendProperty(PointerSizePlugin.pointerSizeKey, this.currentValue);\n }\n\n\n /**\n * @readonly\n * @static\n * @memberof PointerSizePlugin\n * @return {string}\n */\n static get pointerSizeKey() {\n return 'pointerSize';\n }\n}\n","import { SliderPlugin } from '../base-plugins';\n\n/**\n * @export\n * @class ButtonSizePlugin\n * @property {object[]} sliders An array of slider objects given to ButtonSizePlugin\n * @property {number} currentValue The current button size value\n * @extends {SliderPlugin}\n */\nexport class ButtonSizePlugin extends SliderPlugin {\n /**\n * Creates an instance of ButtonSizePlugin.\n * @param {string | HTMLElement} buttonSliders selector string or html element(s) for the inputs\n * @param {object} options\n * @param {number} [options.defaultButtonSize=0.5]\n * @memberof ButtonSizePlugin\n */\n constructor(buttonSliders, { defaultButtonSize = 0.5 } = {}) {\n super(buttonSliders, 'UISize-Button-Plugin', { defaultValue: defaultButtonSize, featureName: ButtonSizePlugin.buttonSizeKey });\n\n for (let i = 0; i < this.slidersLength; i++) {\n this.sliders[i].enableSliderEvents(this.onButtonSizeChange.bind(this));\n }\n }\n\n /**\n * @memberof ButtonSizePlugin\n * @param {Event} e\n */\n onButtonSizeChange(e) {\n this.currentValue = e.target.value;\n this.sendProperty(ButtonSizePlugin.buttonSizeKey, this.currentValue);\n }\n\n /**\n * Get ButtonSize Key\n * @readonly\n * @static\n * @memberof ButtonSizePlugin\n * @returns {string}\n */\n static get buttonSizeKey() {\n return 'buttonSize';\n }\n}\n","import { SliderPlugin } from '../base-plugins';\n\n/**\n * @export\n * @class ControlSensitivityPlugin\n * @property {object[]} sliders an array of all slider objects attached to ControlSensitivityPlugin\n * @extends {SliderPlugin}\n */\nexport class ControlSensitivityPlugin extends SliderPlugin {\n /**\n * Creates an instance of ControlSensitivityPlugin.\n * @param {string | HTMLElement} sensitivitySliders\n * @param {number} [defaultSensitivity=0.5]\n * @memberof ControlSensitivityPlugin\n */\n constructor(sensitivitySliders, { defaultSensitivity = 0.5 } = {}) {\n super(sensitivitySliders, 'Control-Sensitivity-Plugin', {defaultValue: defaultSensitivity, featureName: ControlSensitivityPlugin.controlSensitivityKey});\n\n this.sendAllProperties = this.sendAllProperties.bind(this);\n\n for (let i = 0; i < this.slidersLength; i++) {\n this.sliders[i].enableSliderEvents(this.onControlSensitivityChange.bind(this));\n }\n }\n\n /**\n * @memberof ControlSensitivityPlugin\n * @param {Event} e\n */\n onControlSensitivityChange(e) {\n this.currentValue = e.target.value;\n this.sendProperty(ControlSensitivityPlugin.controlSensitivityKey, this.currentValue);\n }\n\n /**\n * @readonly\n * @static\n * @memberof ControlSensitivityPlugin\n * @returns {string}\n */\n static get controlSensitivityKey() {\n return 'controlSensitivity';\n }\n}\n","import { BasePlugin } from '../base-plugins';\nimport { SavedData } from '../SavedData';\n\n/**\n * @export\n * @class KeyboardMapPlugin\n * @extends {BasePlugin}\n */\nexport class KeyboardMapPlugin extends BasePlugin {\n /**\n * Creates an instance of KeyboardMapPlugin.\n * @param {string | HTMLElement} keyContainers div or similar container element that will contain the re-mappable keys\n * @param {string} [customClassName='springrollContainerKeyBinding__button'] A custom class name that will be applied to the container element\n * @memberof KeyboardMapPlugin\n */\n constructor(keyContainers, {customClassName = 'springrollContainerKeyBinding__button'} = {}) {\n super('Keyboard-Map-Plugin');\n\n this.sendAllProperties = this.sendAllProperties.bind(this);\n //Allows for removing and reading event listeners\n this.bindKey = this.bindKey.bind(this);\n this.onKeyButtonClick = this.onKeyButtonClick.bind(this);\n\n this.className = customClassName;\n\n this.keyContainers =\n keyContainers instanceof HTMLElement\n ? [keyContainers]\n : document.querySelectorAll(keyContainers);\n\n this.keyBindings = {};\n this.buttons = [];\n this.activekeyButton;\n\n this.sendAfterFetch = false;\n this.canEmit = false;\n\n this.keyContainersLength = this.keyContainers.length;\n\n if (this.keyContainersLength <= 0) {\n this.warn('plugin was not provided any valid key binding container elements');\n return;\n }\n }\n\n /**\n * @memberof KeyboardMapPlugin\n * @param {MouseEvent} e\n * Sets up a rebinding of a key once a key button is clicked.\n */\n onKeyButtonClick(e) {\n\n for (let i = 0, l = this.buttons.length; i < l; i++) {\n for (let j = 0; j < this.buttons[i].length; j++) {\n this.buttons[i][j].removeEventListener('click', this.onKeyButtonClick);\n }\n }\n this.activekeyButton = e.target;\n this.activekeyButton.textContent = 'Press Key to Map';\n document.addEventListener('keyup', this.bindKey);\n }\n\n /**\n * @memberof KeyboardMapPlugin\n * @param {KeyboardEvent} key\n * Actually updates the key binding and sends the value. Also\n * replicates the new key across the other keycontainers\n */\n bindKey(key) {\n key.preventDefault(); //prevents space bar from retriggering a keybinding when set.\n\n for (const actionName in this.keyBindings) {\n if (this.keyBindings[actionName].currentKey === key.key.toLowerCase()) {\n this.warn(`${key.key} is already bound`);\n return;\n }\n }\n\n this.activekeyButton.textContent = key.key === ' ' ? 'space' : key.key;\n for (let i = 0; i < this.buttons.length; i++) {\n for (let j = 0; j < this.buttons[i].length; j++) {\n if (this.buttons[i][j].value === this.activekeyButton.value) {\n this.buttons[i][j].textContent = this.activekeyButton.textContent;\n }\n }\n }\n\n this.keyBindings[this.activekeyButton.value].currentKey = key.key;\n\n document.removeEventListener('keyup', this.bindKey);\n for (let i = 0, l = this.buttons.length; i < l; i++) {\n for (let j = 0; j < this.buttons[i].length; j++) {\n this.buttons[i][j].addEventListener('click', this.onKeyButtonClick);\n }\n }\n\n this.sendProperty(KeyboardMapPlugin.keyBindingKey, this.keyBindings);\n }\n\n /**\n * @memberof KeyboardMapPlugin\n */\n init() {\n this.client.on(\n 'features',\n function(features) {\n if (!features.data) {\n return;\n }\n\n if (!features.data.keyBinding) {\n return;\n }\n\n const data = SavedData.read(KeyboardMapPlugin.keyBindingKey);\n\n this.client.fetch('keyBindings', result => {\n for (let j = 0; j < this.keyContainersLength; j++) {\n this.buttons[j] = [];\n\n for (let i = 0, l = result.data.length; i < l; i++) {\n let currentKey = result.data[i].defaultKey.toLowerCase();\n if (data) {\n if (data[result.data[i].actionName]) {\n currentKey = data[result.data[i].actionName].currentKey;\n }\n }\n //only needs to be set up once\n if (j === 0) {\n this.keyBindings[result.data[i].actionName] = {\n defaultKey: result.data[i].defaultKey.toLowerCase(),\n currentKey: currentKey,\n };\n }\n\n this.buttons[j][i] = document.createElement('button');\n this.buttons[j][i].classList.add(this.className);\n this.buttons[j][i].id = `keyBoardMapPlugin-${result.data[i].actionName}`;\n this.buttons[j][i].value = result.data[i].actionName;\n this.buttons[j][i].textContent = result.data[i].defaultKey;\n this.buttons[j][i].addEventListener('click', this.onKeyButtonClick);\n\n this.label = document.createElement('label');\n this.label.htmlFor = `keyBoardMapPlugin-${result.data[i].actionName}`;\n this.label.textContent = result.data[i].actionName;\n\n this.keyContainers[j].appendChild(this.label);\n this.keyContainers[j].appendChild(this.buttons[j][i]);\n }\n }\n\n this.canEmit = true;\n if (this.sendAfterFetch) {\n this.sendAllProperties();\n }\n });\n }.bind(this)\n );\n }\n\n /**\n*\n* Sends initial caption properties to the application\n* @memberof KeyboardMapPlugin\n*/\n sendAllProperties() {\n if (this.canEmit) {\n this.sendProperty(KeyboardMapPlugin.keyBindingKey, this.keyBindings);\n } else {\n this.sendAfterFetch = true;\n }\n }\n\n /**\n * @readonly\n * @static\n * @memberof KeyboardMapPlugin\n * @returns {string}\n */\n static get keyBindingKey() {\n return 'keyBinding';\n }\n}\n","import { SliderPlugin } from '../base-plugins';\n\n/**\n * @export\n * @class LayersPlugin\n * @property {object[]} sliders an array of all slider objects attached to LayersPlugin\n * @extends {SliderPlugin}\n */\nexport class LayersPlugin extends SliderPlugin {\n /**\n * Creates an instance of KeyboardMapPlugin.\n * @param {string | HTMLInputElement} layersSliders selector string or HTML Element for the input(s)\n * @param {number} [defaultValue=0] The default value for the slider\n */\n constructor(layersSliders, { defaultValue = 0 } = {}) {\n super(layersSliders, 'Layer-Plugin', { defaultValue: defaultValue, featureName: LayersPlugin.layersSliderKey });\n\n for (let i = 0; i < this.slidersLength; i++) {\n this.sliders[i].enableSliderEvents(this.onLayerValueChange.bind(this));\n }\n }\n\n /**\n * @memberof LayersPlugin\n * @param {Event} e\n */\n onLayerValueChange(e) {\n this.currentValue = e.target.value;\n this.sendProperty(LayersPlugin.layersSliderKey, this.currentValue);\n }\n\n /**\n * @readonly\n * @static\n * @memberof LayersPlugin\n * @returns {string}\n */\n static get layersSliderKey() {\n return 'removableLayers';\n }\n}\n","import { RadioGroupPlugin } from '../base-plugins';\nimport { SavedData } from '../SavedData';\n\nconst SUPPORTED_POSITIONS = ['top', 'bottom', 'left', 'right'];\n\n/**\n * @export\n * @class HUDPlugin\n * @extends {BasePlugin}\n */\nexport class HUDPlugin extends RadioGroupPlugin {\n /**\n * Creates an instance of HUDPlugin\n * @param {string} hudSelectorRadios selector string or for the input(s)\n * @param {string[]} [defaultValue='top'] default value for the HUD position\n * @memberof HUDPlugin\n */\n constructor(hudSelectorRadios, { defaultValue = SUPPORTED_POSITIONS[0] } = {}) {\n super(hudSelectorRadios, 'HUD-Layout-Plugin', {supportedValues: SUPPORTED_POSITIONS, initialValue: defaultValue, controlName: 'Hud Selector', featureName: HUDPlugin.hudPositionKey, radioCount: SUPPORTED_POSITIONS.length});\n\n this.sendAllProperties = this.sendAllProperties.bind(this);\n this.sendAfterFetch = false;\n this.canEmit = false;\n this.positions = [];\n\n if (this.radioGroupsLength <= 0) {\n this.warn('Plugin was not provided any valid HTML elements');\n }\n\n for (let i = 0; i < this.radioGroupsLength; i++) {\n this.radioGroups[i].enableRadioEvents(this.onHUDSelect.bind(this));\n }\n\n }\n\n /**\n * @memberof HUDPlugin\n * @param {Event} e\n */\n onHUDSelect(e) {\n //return if a radio button is programattically clicked when it is hidden\n if (!this.positions.includes(e.target.value)) {\n for (let i = 0; i < this.radioGroupsLength; i++) {\n this.radioGroups[i].radioGroup[this.currentValue].checked = true;\n }\n return;\n }\n\n this.currentValue = e.target.value;\n\n this.sendProperty(\n HUDPlugin.hudPositionKey,\n this.currentValue\n );\n }\n\n /**\n * @memberof HUDPlugin\n */\n init() {\n this.client.on(\n 'features',\n function(features) {\n if (!features.data || !features.data.hudPosition) {\n return;\n }\n\n if (this.radioGroupsLength <= 0) {\n return;\n }\n //get the game's reported HUD positions to build out positions array\n this.client.fetch('hudPositions', result => {\n for (let i = 0, l = result.data.length; i < l; i++) {\n if (\n !SUPPORTED_POSITIONS.includes(result.data[i].toLowerCase())\n ) {\n this.warn(`${result.data[i]} is an invalid position name`);\n continue;\n }\n\n this.positions.push(result.data[i].toLowerCase());\n }\n\n for (let i = 0; i < this.radioGroupsLength; i++) {\n //Hide any radio buttons that aren't in the game's position list.\n for (const key in this.radioGroups[i].radioGroup) {\n this.radioGroups[i].radioGroup[key].style.display = this.positions.includes(this.radioGroups[i].radioGroup[key].value) ? '' : 'none';\n }\n }\n\n this.canEmit = true;\n if (this.sendAfterFetch) {\n this.sendAllProperties();\n }\n });\n\n }.bind(this)\n );\n }\n\n /**\n * @memberof HUDPlugin\n */\n start() {\n const data = SavedData.read(HUDPlugin.hudPositionKey);\n\n if (SUPPORTED_POSITIONS.includes(data)) {\n this.currentValue = data;\n }\n this.client.on('loaded', this.sendAllProperties);\n this.client.on('loadDone', this.sendAllProperties);\n }\n\n /**\n *\n * Sends initial HUD position properties to the application\n * @memberof HUDPlugin\n */\n sendAllProperties() {\n if (this.canEmit) {\n this.sendProperty(HUDPlugin.hudPositionKey, this.currentValue);\n } else {\n this.sendAfterFetch = true;\n }\n }\n\n /**\n * @static\n * @readonly\n * @memberof HUDPlugin\n * @returns {string}\n */\n static get hudPositionKey() {\n return 'hudPosition';\n }\n}\n","import { RadioGroupPlugin } from '../base-plugins';\nimport { SavedData } from '../SavedData';\n\nconst COLOR_BLIND_TYPES = [\n 'none',\n 'protanopia',\n 'deuteranopia',\n 'tritanopia',\n 'achromatopsia'\n];\n\n/**\n * @export\n * @class ColorVisionPlugin\n * @property {boolean} sendAfterFetch Whether to send the properties after fetch or not\n * @property {boolean} canEmit Whether or not the plugin can send properties\n * @property {string} colors \n * @extends {RadioGroupPlugin}\n */\nexport class ColorVisionPlugin extends RadioGroupPlugin {\n /**\n * Creates an instance of ColorVisionPlugin.\n * @param {string | HTMLElement} colorSelects\n * @param {string } [defaultValue] Default selected value\n * @memberof ColorVision\n */\n constructor(colorVisionRadios, { defaultValue = COLOR_BLIND_TYPES[0] } = {}) {\n super(colorVisionRadios, 'Color-Filter-Plugin', {supportedValues: COLOR_BLIND_TYPES, initialValue: defaultValue, controlName: 'Color Vision Selector', featureName: ColorVisionPlugin.colorVisionKey, radioCount: COLOR_BLIND_TYPES.length});\n\n this.sendAllProperties = this.sendAllProperties.bind(this);\n this.sendAfterFetch = false;\n this.canEmit = false;\n this.colors = [];\n\n if (this.radioGroupsLength <= 0) {\n this.warn('Plugin was not provided any valid HTML elements');\n return;\n }\n\n for (let i = 0; i < this.radioGroupsLength; i++) {\n this.radioGroups[i].enableRadioEvents(this.onColorChange.bind(this));\n }\n }\n\n /**\n * @memberof ColorVisionPlugin\n * @param {Event} e\n */\n onColorChange(e) {\n //return if a radio button is programmatically clicked when it is hidden from the user\n if (!this.colors.includes(e.target.value) ) {\n for (let i = 0; i < this.radioGroupsLength; i++) {\n this.radioGroups[i].radioGroup[this.currentValue].checked = true;\n }\n return;\n }\n this.currentValue = e.target.value;\n\n this.sendProperty(\n ColorVisionPlugin.colorVisionKey,\n this.currentValue\n );\n }\n\n /**\n * @memberof ColorVisionPlugin\n */\n init() {\n this.client.on(\n 'features',\n function(features) {\n if (!features.data || !features.data.colorVision) {\n return;\n }\n if (this.colorDropdownsLength <= 0) {\n return;\n }\n\n //get the game's reported colors to build out accepted filters array\n this.client.fetch('colorFilters', result => {\n for (let i = 0, l = result.data.length; i < l; i++) {\n if (\n !COLOR_BLIND_TYPES.includes(result.data[i].toLowerCase())\n ) {\n this.warn(`${result.data[i]} is an invalid color vision name`);\n continue;\n }\n this.colors.push(result.data[i].toLowerCase());\n }\n\n this.defaultValue = this.colors[0];\n\n for (let i = 0; i < this.radioGroupsLength; i++) {\n //Hide any radio buttons that aren't in the game's filter list.\n for (const key in this.radioGroups[i].radioGroup) {\n this.radioGroups[i].radioGroup[key].style.display = this.colors.includes(this.radioGroups[i].radioGroup[key].value.toLowerCase()) ? '' : 'none';\n }\n }\n\n this.canEmit = true;\n\n if (this.sendAfterFetch) {\n this.sendAllProperties();\n }\n });\n\n }.bind(this)\n );\n }\n\n /**\n * @memberof ColorVisionPlugin\n */\n start() {\n const data = SavedData.read(ColorVisionPlugin.colorVisionKey);\n\n if (COLOR_BLIND_TYPES.includes(data)) {\n this.currentValue = data;\n }\n\n this.client.on('loaded', this.sendAllProperties);\n this.client.on('loadDone', this.sendAllProperties);\n }\n\n /**\n*\n* Sends initial caption properties to the application\n* @memberof ColorVisionPlugin\n*/\n sendAllProperties() {\n if (this.canEmit) {\n this.sendProperty(ColorVisionPlugin.colorVisionKey, this.currentValue);\n } else {\n this.sendAfterFetch = true;\n }\n }\n\n /**\n * Get the ColorVisionPlugin key\n * @readonly\n * @static\n * @memberof ColorVisionPlugin\n * @returns {string}\n */\n static get colorVisionKey() {\n return 'colorVision';\n }\n\n}\n","import { SliderPlugin } from '../base-plugins';\n\n/**\n * @export\n * @class HitAreaScalePlugin\n * @property {object[]} sliders an array of all slider objects attached to ControlSensitivityPlugin\n * @extends {SliderPlugin}\n * \n */\nexport class HitAreaScalePlugin extends SliderPlugin {\n /**\n * Creates an instance of HitAreaScalePlugin.\n * @param {string | HTMLElement} hitAreaScaleSliders The selector or HTMLElement for the slider\n * @param {number} [defaultHitAreaScale=0.5] The default hit area scale value\n * @memberof HitAreaScalePlugin\n */\n constructor(hitAreaScaleSliders, { defaultHitAreaScale = 0.5 } = {}) {\n super(hitAreaScaleSliders, 'Hit-Area-Scale-Plugin', { defaultValue: defaultHitAreaScale, featureName: HitAreaScalePlugin.hitAreaScaleKey });\n\n for (let i = 0; i < this.slidersLength; i++) {\n this.sliders[i].enableSliderEvents(this.onHitAreaScaleChange.bind(this));\n }\n }\n\n /**\n * @memberof HitAreaScalePlugin\n * @param {Event} target\n * @param {string} control\n */\n onHitAreaScaleChange(e) {\n this.currentValue = e.target.value;\n this.sendProperty(HitAreaScalePlugin.hitAreaScaleKey, this.currentValue);\n }\n\n /**\n * @readonly\n * @static\n * @memberof HitAreaScalePlugin\n * @returns {string}\n */\n static get hitAreaScaleKey() {\n return 'hitAreaScale';\n }\n}\n","import { SliderPlugin } from '../base-plugins';\n\n/**\n * @export\n * @class DragThresholdScalePlugin\n * @extends {SliderPlugin}\n */\nexport class DragThresholdScalePlugin extends SliderPlugin {\n /**\n * Creates an instance of DragThresholdScalePlugin.\n * @param {string | HTMLElement} params.dragThresholdScaleSliders\n * @param {number} [defaultDragThresholdScale=0.5]\n * @memberof DragThresholdScalePlugin\n */\n constructor(dragThresholdScaleSliders, { defaultDragThresholdScale = 0.5 } = {}) {\n super(dragThresholdScaleSliders, 'Drag-Threshold-Scale-Plugin', { defaultValue: defaultDragThresholdScale, featureName: DragThresholdScalePlugin.dragThresholdScaleKey });\n\n for (let i = 0; i < this.slidersLength; i++) {\n this.sliders[i].enableSliderEvents(this.onDragThresholdScaleChange.bind(this));\n }\n }\n\n /**\n * @memberof DragThresholdScalePlugin\n * @param {Event} target\n * @param {string} control\n */\n onDragThresholdScaleChange(e) {\n this.currentValue = e.target.value;\n this.sendProperty(DragThresholdScalePlugin.dragThresholdScaleKey, this.currentValue);\n }\n\n /**\n * @readonly\n * @static\n * @memberof DragThresholdScalePlugin\n * @returns {string}\n */\n static get dragThresholdScaleKey() {\n return 'dragThresholdScale';\n }\n}","import { SliderPlugin } from '../base-plugins';\n\n/**\n * @export\n * @class HealthPlugin\n * @extends {SliderPlugin}\n */\nexport class HealthPlugin extends SliderPlugin {\n /**\n * Creates an instance of HealthPlugin.\n * @param {string | HTMLElement} healthSliders\n * @param {number} [defaultHealth=0.5]\n * @memberof HealthPlugin\n */\n constructor(healthSliders, {defaultHealth = 0.5 } = {}) {\n super(healthSliders, 'Health-Scale-Plugin', { defaultValue:defaultHealth, featureName: HealthPlugin.healthKey });\n\n for (let i = 0; i < this.slidersLength; i++) {\n this.sliders[i].enableSliderEvents(this.onHealthChange.bind(this));\n }\n }\n\n /**\n * @memberof HealthPlugin\n * @param {Event} e\n */\n onHealthChange(e) {\n this.currentValue = e.target.value;\n this.sendProperty(HealthPlugin.healthKey, this.currentValue);\n }\n\n /**\n * @readonly\n * @static\n * @memberof HealthPlugin\n * @returns {string}\n */\n static get healthKey() {\n return 'health';\n }\n}","import { SliderPlugin } from '../base-plugins';\n\n/**\n * @export\n * @class ObjectCountPlugin\n * @property {object[]} sliders an array of all slider objects attached to ObjectCountPlugin\n * @extends {SliderPlugin}\n */\nexport class ObjectCountPlugin extends SliderPlugin {\n /**\n * Creates an instance of ObjectCountPlugin.\n * @param {string | HTMLElement} objectCountSliders selector string or HTML Element for the input(s)\n * @param {number} [defaultObjectCount=0.5] The default value for the slider\n * @memberof ObjectCountPlugin\n */\n constructor(objectCountSliders, { defaultObjectCount = 0.5 } = {}) {\n super(objectCountSliders, 'Object-Count-Plugin', { defaultValue: defaultObjectCount, featureName: ObjectCountPlugin.objectCountKey });\n\n for (let i = 0; i < this.slidersLength; i++) {\n this.sliders[i].enableSliderEvents(this.onObjectCountChange.bind(this));\n }\n }\n\n /**\n * @memberof ObjectCountPlugin\n * @param {Event} target\n * @param {string} control\n */\n onObjectCountChange(e) {\n this.currentValue = e.target.value;\n this.sendProperty(ObjectCountPlugin.objectCountKey, this.currentValue);\n }\n\n /**\n * @readonly\n * @static\n * @memberof ObjectCountPlugin\n * @returns {string}\n */\n static get objectCountKey() {\n return 'objectCount';\n }\n}","import { SliderPlugin } from '../base-plugins';\n\n/**\n * @export\n * @class CompletionPercentagePlugin\n * @property {object[]} sliders an array of all slider objects attached to CompletePercentagePlugin\n * @extends {SliderPlugin}\n */\nexport class CompletionPercentagePlugin extends SliderPlugin {\n /**\n * Creates an instance of CompletionPercentagePlugin.\n * @param {string | HTMLElement} completionPercentageSliders The selector or HTMLSliderElement of the slider\n * @param {number} [defaultCompletionPercentage=0.5] Default selected completion percentage\n * @memberof CompletionPercentagePlugin\n */\n constructor(completionPercentageSliders, { defaultCompletionPercentage = 0.5 } = {}) {\n super(completionPercentageSliders, 'Completion-Percentage-Plugin', { defaultValue: defaultCompletionPercentage, featureName: CompletionPercentagePlugin.completionPercentageKey });\n\n for (let i = 0; i < this.slidersLength; i++) {\n this.sliders[i].enableSliderEvents(this.onCompletionPercentageChange.bind(this));\n }\n }\n\n /**\n * @memberof CompletionPercentagePlugin\n * @param {Event} e\n */\n onCompletionPercentageChange(e) {\n this.currentValue = e.target.value;\n this.sendProperty(CompletionPercentagePlugin.completionPercentageKey, this.currentValue);\n }\n\n /**\n * @readonly\n * @static\n * @memberof CompletionPercentagePlugin\n * @returns {string}\n */\n static get completionPercentageKey() {\n return 'completionPercentage';\n }\n}","import { SliderPlugin } from '../base-plugins';\n\n/**\n * @export\n * @class SpeedScalePlugin\n * @extends {SliderPlugin}\n */\nexport class SpeedScalePlugin extends SliderPlugin {\n /**\n *Creates an instance of SpeedScalePlugin.\n * @param {string | HTMLElement} speedScaleSliders selector string or HTML Element for the input(s)\n * @param {number} [defaultSpeedScale=0.5] The default value for the speed scale slider\n * @memberof SpeedScalePlugin\n */\n constructor(speedScaleSliders, { defaultSpeedScale = 0.5 } = {}) {\n super(speedScaleSliders, 'Speed-Scale-Plugin', { defaultValue: defaultSpeedScale, featureName: SpeedScalePlugin.speedScaleKey });\n\n for (let i = 0; i < this.slidersLength; i++) {\n this.sliders[i].enableSliderEvents(this.onSpeedScaleChange.bind(this));\n }\n }\n\n /**\n * @memberof SpeedScalePlugin\n * @param {Event} e\n */\n onSpeedScaleChange(e) {\n this.currentValue = e.target.value;\n this.sendProperty(SpeedScalePlugin.speedScaleKey, this.currentValue);\n }\n\n /**\n * @readonly\n * @static\n * @memberof SpeedScalePlugin\n * @return {string}\n */\n static get speedScaleKey() {\n return 'speedScale';\n }\n}","import { SliderPlugin } from '../base-plugins';\n\n/**\n * @export\n * @class TimersScalePlugin\n * @property {number} currentValue\n * @extends {SliderPlugin}\n */\nexport class TimersScalePlugin extends SliderPlugin {\n /**\n * Creates an instance of TimersScalePlugin.\n * @param {string | HTMLElement} timersScaleSliders selector string or HTML Element for the input(s)\n * @param {number} [defaultTimersScale=0.5] Default Value for the timer scale slider\n * @memberof TimersScalePlugin\n */\n constructor(timersScaleSliders, { defaultTimersScale = 0.5 } = {}) {\n super(timersScaleSliders, 'Timers-Scale-Plugin', { defaultValue: defaultTimersScale, featureName: TimersScalePlugin.timersScaleKey });\n\n for (let i = 0; i < this.slidersLength; i++) {\n this.sliders[i].enableSliderEvents(this.onTimersScaleChange.bind(this));\n }\n }\n\n /**\n * @memberof TimersScalePlugin\n * @param {Event} e\n */\n onTimersScaleChange(e) {\n this.currentValue = e.target.value;\n this.sendProperty(TimersScalePlugin.timersScaleKey, this.currentValue);\n }\n\n /**\n * @readonly\n * @static\n * @memberof TimersScalePlugin\n * @return {string}\n */\n static get timersScaleKey() {\n return 'timersScale';\n }\n}","import { SliderPlugin } from '../base-plugins';\n\n/**\n * @export\n * @class InputCountPlugin\n * @property {object[]} sliders an array of all slider objects attached to InputCountPlugin\n * @extends {SliderPlugin}\n */\nexport class InputCountPlugin extends SliderPlugin {\n /**\n * Creates an instance of InputCountPlugin.\n * @param {string | HTMLElement} inputCountSliders selector string or HTML Element for the input(s)\n * @param {number} [defaultInputCount=0.5] The default value for the slider\n * @memberof InputCountPlugin\n */\n constructor(inputCountSliders, { defaultInputCount = 0.5 } = {}) {\n super(inputCountSliders, 'Input-Count-Plugin', { defaultValue: defaultInputCount, featureName: InputCountPlugin.inputCountKey });\n\n for (let i = 0; i < this.slidersLength; i++) {\n this.sliders[i].enableSliderEvents(this.onInputCountChange.bind(this));\n }\n }\n\n /**\n * @memberof InputCountPlugin\n * @param {Event} target\n * @param {string} control\n */\n onInputCountChange(e) {\n this.currentValue = e.target.value;\n this.sendProperty(InputCountPlugin.inputCountKey, this.currentValue);\n }\n\n /**\n * @readonly\n * @static\n * @memberof InputCountPlugin\n * @returns {string}\n */\n static get inputCountKey() {\n return 'inputCount';\n }\n}","import { ButtonPlugin } from '../base-plugins/ButtonPlugin';\nimport { Button } from '../ui-elements';\n\n/**\n * A Springroll plugin to easily set up togglable fullscreen\n */\nexport class FullScreenPlugin extends ButtonPlugin {\n \n /**\n * Creates an instance of FullscreenPlugin\n * \n * @param {string | string[]} buttonSelector The selector for the element to be made fullscreen\n */\n constructor(buttonSelector) {\n super({\n name: FullScreenPlugin.fullscreenKey\n }); \n\n this._toggleButtons = [];\n this.iFrame = null;\n\n this.sendAllProperties = this.sendAllProperties.bind(this);\n\n if (Array.isArray(buttonSelector)) {\n // If input is an array, join the selectors into one string\n buttonSelector = buttonSelector.join(', ');\n }\n\n console.log(buttonSelector);\n \n this.toggleButton = document.querySelectorAll(buttonSelector);\n\n\n this.toggleButton.forEach((button) => {\n this._toggleButtons.push(new Button({\n button: button,\n onClick: this.toggleFullScreen.bind(this),\n channel: FullScreenPlugin.fullscreenKey\n }));\n });\n \n\n document.addEventListener('fullscreenchange', () => {\n this.sendAllProperties();\n \n this._toggleButtons.forEach((button) => {\n button.button.classList.toggle('--fullScreen');\n });\n\n });\n }\n\n /**\n * @memberof FullScreenPlugin\n */\n init({ iframe }) {\n this.iFrame = iframe;\n // Handle the features request\n this.client.on(\n 'features',\n function($event) {\n for (let i = 0; i < this.fullscreenElement; i ++) {\n this._toggleButtons[i].displayButton($event.data);\n }\n\n }.bind(this)\n );\n }\n /**\n * @memberof FullScreenPlugin\n */\n start() {\n this.client.on('loaded', this.sendAllProperties);\n this.client.on('loadDone', this.sendAllProperties);\n }\n\n /**\n *\n * Sends initial fullScreen properties to the application\n * @memberof FullScreenTogglePlugin\n */\n sendAllProperties() {\n this.sendProperty(FullScreenPlugin.fullscreenKey, document.fullscreenElement != null ? 'true' : 'false');\n }\n\n /**\n * Toggles fullscreen on this.iFrame. Must be from a user generated event\n */\n toggleFullScreen() {\n if (!document.fullscreenElement) {\n this.iFrame.requestFullscreen().then(() => {\n this.sendAllProperties();\n }).catch((err) => {\n console.log(err);\n });\n } else {\n document.exitFullscreen();\n this.sendAllProperties();\n }\n }\n\n /**\n * Returns true if there is a fullscreen element and false if not\n * @returns { boolean } \n */\n get isFullScreen() {\n return (document.fullscreenElement || // basic\n document.webkitIsFullscreen || //Webkit browsers\n document.mozFullScreen ) // Firefox\n != true; // Ensure boolean output\n }\n\n /** \n * @readonly\n * @static\n * @memberof FullscreenPlugin\n */\n static get fullscreenKey() {\n return 'fullScreen';\n }\n}"],"names":["global","globalThis","self","support","Symbol","Blob","e","viewClasses","isArrayBufferView","ArrayBuffer","isView","obj","indexOf","Object","prototype","toString","call","normalizeName","name","String","test","TypeError","toLowerCase","normalizeValue","value","iteratorFor","items","iterator","next","shift","done","undefined","Headers","headers","this","map","forEach","append","Array","isArray","header","getOwnPropertyNames","consumed","body","bodyUsed","Promise","reject","fileReaderReady","reader","resolve","onload","result","onerror","error","readBlobAsArrayBuffer","blob","FileReader","promise","readAsArrayBuffer","bufferClone","buf","slice","view","Uint8Array","byteLength","set","buffer","Body","_initBody","_bodyInit","_bodyText","isPrototypeOf","_bodyBlob","FormData","_bodyFormData","URLSearchParams","DataView","_bodyArrayBuffer","get","type","rejected","Error","arrayBuffer","isConsumed","byteOffset","then","text","readAsText","readBlobAsText","chars","length","i","fromCharCode","join","readArrayBufferAsText","formData","decode","json","JSON","parse","oldValue","has","hasOwnProperty","callback","thisArg","keys","push","values","entries","methods","Request","input","options","url","credentials","method","mode","signal","upcased","toUpperCase","normalizeMethod","referrer","cache","reParamSearch","replace","Date","getTime","form","trim","split","bytes","decodeURIComponent","Response","bodyInit","status","ok","statusText","clone","response","redirectStatuses","redirect","RangeError","location","DOMException","err","message","stack","create","constructor","fetch","init","request","aborted","xhr","XMLHttpRequest","abortXhr","abort","rawHeaders","getAllResponseHeaders","substr","line","parts","key","responseURL","responseText","setTimeout","ontimeout","onabort","open","href","fixUrl","withCredentials","responseType","setRequestHeader","addEventListener","onreadystatechange","readyState","removeEventListener","send","polyfill","check","it","Math","window","Function","domIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","documentAll","document","all","documentAll_1","IS_HTMLDDA","require$$0","isCallable","argument","require$$1","isObject","EXISTS","createElement","documentCreateElement","classList","DOMTokenListPrototype","domTokenListPrototype","fails","exec","functionBindNative","bind","NATIVE_BIND","FunctionPrototype","uncurryThisWithBind","functionUncurryThis","fn","apply","arguments","uncurryThis","stringSlice","classofRaw","functionUncurryThisClause","$String","tryToString","$TypeError","aCallable","require$$2","functionBindContext","that","classof","$Object","indexedObject","propertyIsEnumerable","isNullOrUndefined","requireObjectCoercible","toObject","ceil","floor","mathTrunc","trunc","x","n","toIntegerOrInfinity","number","min","toLength","lengthOfArrayLike","defineProperty","defineGlobalProperty","configurable","writable","SHARED","sharedStore","store","sharedModule","version","copyright","license","source","match","hasOwnProperty_1","hasOwn","id","postfix","random","uid","engineUserAgent","navigator","userAgent","process","Deno","versions","v8","engineV8Version","V8_VERSION","symbolConstructorDetection","getOwnPropertySymbols","symbol","sham","useSymbolAsUid","shared","require$$3","NATIVE_SYMBOL","require$$4","USE_SYMBOL_AS_UID","require$$5","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","wellKnownSymbol","toStringTagSupport","TO_STRING_TAG_SUPPORT","TO_STRING_TAG","CORRECT_ARGUMENTS","O","tag","tryGet","callee","getBuiltIn","namespace","functionToString","inspectSource","noop","empty","construct","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","isConstructor","called","SPECIES","$Array","arraySpeciesConstructor","originalArray","C","arraySpeciesCreate","IndexedObject","createMethod","TYPE","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","$this","callbackfn","specificCreate","boundFunction","index","target","arrayIteration","filter","some","every","find","findIndex","filterReject","arrayMethodIsStrict","METHOD_NAME","$forEach","arrayForEach","descriptors","ie8DomDefine","a","v8PrototypeDefineBug","anObject","functionCall","objectIsPrototypeOf","isSymbol","$Symbol","getMethod","V","P","func","ordinaryToPrimitive","pref","val","valueOf","TO_PRIMITIVE","toPrimitive","exoticToPrim","toPropertyKey","DESCRIPTORS","IE8_DOM_DEFINE","V8_PROTOTYPE_DEFINE_BUG","$defineProperty","$getOwnPropertyDescriptor","getOwnPropertyDescriptor","ENUMERABLE","CONFIGURABLE","WRITABLE","objectDefineProperty","f","Attributes","current","enumerable","createPropertyDescriptor","bitmap","definePropertyModule","createNonEnumerableProperty","object","DOMIterables","handlePrototype","CollectionPrototype","COLLECTION_NAME","toIndexedObject","max","toAbsoluteIndex","integer","IS_INCLUDES","el","fromIndex","arrayIncludes","includes","hiddenKeys","objectKeysInternal","names","enumBugKeys","internalObjectKeys","objectKeys","objectDefineProperties","defineProperties","Properties","props","activeXDocument","html","sharedKey","definePropertiesModule","PROTOTYPE","SCRIPT","IE_PROTO","require$$6","EmptyConstructor","scriptTag","content","LT","NullProtoObjectViaActiveX","write","close","temp","parentWindow","NullProtoObject","ActiveXObject","iframeDocument","iframe","JS","domain","style","display","appendChild","src","contentWindow","F","objectCreate","UNSCOPABLES","ArrayPrototype","addToUnscopables","iterators","WeakMap","NATIVE_WEAK_MAP","require$$7","OBJECT_ALREADY_INITIALIZED","state","metadata","facade","STATE","internalState","enforce","getterFor","$propertyIsEnumerable","NASHORN_BUG","objectPropertyIsEnumerable","descriptor","propertyIsEnumerableModule","objectGetOwnPropertyDescriptor","getDescriptor","functionName","PROPER","CONFIGURABLE_FUNCTION_NAME","enforceInternalState","getInternalState","CONFIGURABLE_LENGTH","TEMPLATE","makeBuiltIn","makeBuiltInModule","exports","getter","setter","arity","defineBuiltIn","simple","unsafe","nonConfigurable","nonWritable","concat","objectGetOwnPropertyNames","objectGetOwnPropertySymbols","IteratorPrototype","PrototypeOfArrayIteratorPrototype","arrayIterator","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","ownKeys","getOwnPropertyDescriptorModule","replacement","isForced","feature","detection","data","normalize","POLYFILL","NATIVE","string","isForced_1","copyConstructorProperties","exceptions","_export","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","dontCallGetSet","forced","correctPrototypeGetter","getPrototypeOf","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","objectGetPrototypeOf","ITERATOR","BUGGY_SAFARI_ITERATORS","NEW_ITERATOR_PROTOTYPE","iteratorsCore","setToStringTag","TAG","Iterators","returnThis","uncurryThisAccessor","aPossiblePrototype","objectSetPrototypeOf","setPrototypeOf","CORRECT_SETTER","proto","__proto__","$","createIteratorConstructor","IteratorConstructor","NAME","ENUMERABLE_NEXT","require$$8","require$$9","require$$10","require$$12","PROPER_FUNCTION_NAME","require$$13","require$$11","KEYS","VALUES","ENTRIES","iteratorDefine","Iterable","DEFAULT","IS_SET","FORCED","CurrentIteratorPrototype","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","createIterResultObject","InternalStateModule","defineIterator","ARRAY_ITERATOR","setInternalState","es_array_iterator","iterated","kind","Arguments","ArrayIteratorMethods","ArrayValues","path","$indexOf","nativeIndexOf","NEGATIVE_ZERO","searchElement","createProperty","propertyKey","arrayMethodHasSpeciesSupport","array","foo","Boolean","doesNotExceedSafeInteger","IS_CONCAT_SPREADABLE","IS_CONCAT_SPREADABLE_SUPPORT","isConcatSpreadable","spreadable","arg","k","len","E","A","$assign","assign","objectAssign","b","B","alphabet","chr","T","argumentsLength","S","j","$location","defer","channel","port","engineIsNode","defineBuiltInAccessor","setSpecies","CONSTRUCTOR_NAME","Constructor","anInstance","Prototype","aConstructor","functionApply","Reflect","arraySlice","engineIsIos","validateArgumentsLength","passed","required","IS_IOS","IS_NODE","setImmediate","clear","clearImmediate","Dispatch","MessageChannel","counter","queue","ONREADYSTATECHANGE","run","runner","eventListener","event","globalPostMessageDefer","postMessage","protocol","host","handler","args","nextTick","now","port2","port1","onmessage","importScripts","removeChild","task","Queue","head","tail","add","item","entry","notify","toggle","node","engineIsIosPebble","Pebble","engineIsWebosWebkit","macrotask","IS_IOS_PEBBLE","IS_WEBOS_WEBKIT","MutationObserver","WebKitMutationObserver","queueMicrotaskDescriptor","microtask","flush","parent","exit","enter","createTextNode","observe","characterData","microtask_1","perform","promiseNativeConstructor","engineIsDeno","engineIsBrowser","NativePromiseConstructor","IS_BROWSER","IS_DENO","SUBCLASSING","NATIVE_PROMISE_REJECTION_EVENT","PromiseRejectionEvent","FORCED_PROMISE_CONSTRUCTOR","PROMISE_CONSTRUCTOR_SOURCE","GLOBAL_CORE_JS_PROMISE","FakePromise","promiseConstructorDetection","CONSTRUCTOR","REJECTION_EVENT","PromiseCapability","$$resolve","$$reject","newPromiseCapability","Internal","OwnPromiseCapability","nativeThen","speciesConstructor","defaultConstructor","require$$14","require$$15","hostReportErrors","console","require$$17","require$$18","require$$19","require$$20","newPromiseCapabilityModule","require$$22","PROMISE","require$$21","NATIVE_PROMISE_SUBCLASSING","getInternalPromiseState","NativePromisePrototype","PromiseConstructor","PromisePrototype","newGenericPromiseCapability","DISPATCH_EVENT","createEvent","dispatchEvent","UNHANDLED_REJECTION","isThenable","callReaction","reaction","exited","fail","rejection","onHandleUnhandled","isReject","notified","reactions","onUnhandled","reason","initEvent","isUnhandled","emit","unwrap","internalReject","internalResolve","wrapper","executor","onFulfilled","onRejected","PromiseWrapper","wrap","getIteratorMethod","isArrayIteratorMethod","getIterator","usingIterator","iteratorMethod","iteratorClose","innerResult","innerError","Result","stopped","ResultPrototype","iterate","iterable","unboundFunction","iterFn","step","AS_ENTRIES","IS_RECORD","IS_ITERATOR","INTERRUPTED","stop","condition","callFn","SAFE_CLOSING","iteratorWithReturn","return","from","checkCorrectnessOfIteration","SKIP_CLOSING","ITERATION_SUPPORT","promiseStaticsIncorrectIteration","capability","$promiseResolve","remaining","alreadyCalled","real","catch","race","r","promiseResolve","promiseCapability","re1","re2","regexpFlags","hasIndices","ignoreCase","multiline","dotAll","unicode","unicodeSets","sticky","$RegExp","RegExp","UNSUPPORTED_Y","re","lastIndex","MISSED_STICKY","regexpStickyHelpers","BROKEN_CARET","regexpUnsupportedDotAll","flags","regexpUnsupportedNcg","groups","stickyHelpers","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","nativeReplace","nativeExec","patchedExec","charAt","UPDATES_LAST_INDEX_WRONG","NPCG_INCLUDED","reCopy","group","str","raw","charsAdded","strCopy","Features","_classCallCheck","_createClass","canvas","getContext","Worker","msPointerEnabled","msMaxTouchPoints","pointerEnabled","maxTouchPoints","webaudio","htmlAudio","capabilities","basic","features","ui","sizes","touch","size","screen","width","height","xsmall","small","medium","large","xlarge","webgl","webAudio","charCodeAt","CONVERT_TO_STRING","pos","first","second","position","codeAt","STRING_ITERATOR","point","$filter","$find","FIND","SKIPS_HOLES","t","PluginManager","_ref","_ref$plugins","plugins","client","Bellhop","hidden","receive","hiddenSend","_this","preloads","_loop","preload","preloadFailed","warn","l","plugin","start","Container","_PluginManager","_inherits","_openRemote","_super","_createSuper","iframeOrSelector","_ref$context","context","HTMLIFrameElement","querySelector","loaded","loading","release","_context","onLoading","_assertThisInitialized","onLoadDone","onEndGame","onLocalError","initClient","setupPlugins","trigger","remove","reset","$event","setAttribute","on","connect","userPath","_ref2","_ref2$singlePlay","singlePlay","_ref2$playOptions","playOptions","playOptionsQueryString","encodeURIComponent","stringify","respond","_typeof","_internalOpen","_asyncToGenerator","_regeneratorRuntime","mark","_callee","api","_ref3","_ref3$query","query","_ref3$singlePlay","_ref3$playOptions","_args","prev","sent","success","_x","newContext","PageVisibility","onFocus","onBlur","_onFocus","_onBlur","enabled","_enabled","onToggle","enable","$includes","whitespaces","ltrim","rtrim","stringTrim","end","$trim","forcedStringTrimMethod","regExpFlags","RegExpPrototype","$toString","getRegExpFlags","R","TO_STRING","nativeToString","NOT_GENERIC","INCORRECT_NAME","SavedData","dbName","db","dbVersion","additions","deletions","indexedDB","onsuccess","onupgradeneeded","stores","createObjectStore","storeName","indexes","transaction","objectStore","createIndex","indexName","keyPath","deleteIndex","deleteObjectStore","deleteDatabase","IDBOpen","tx","oncomplete","updateRequest","put","_this2","delete","_this3","readRequest","_this4","count","getAllKeys","getAll","dBOpenRequest","localStorage","removeItem","sessionStorage","setItem","getItem","BasePlugin","_preload","sendAllProperties","_","prop","disableSend","warningText","ButtonPlugin","_BasePlugin","sendMutes","container","button","HTMLButtonElement","muted","log","changeMutedState","sendProperty","htmlButton","HTMLElement","MATCH","isRegExp","notARegExp","correctIsRegExpLogic","regexp","error1","error2","stringIndexOf","searchString","$getOwnPropertyNames","fin","windowNames","objectGetOwnPropertyNamesExternal","getWindowNames","arrayBufferNonExtensible","isExtensible","ARRAY_BUFFER_NON_EXTENSIBLE","$isExtensible","objectIsExtensible","freezing","preventExtensions","getOwnPropertyNamesExternalModule","FREEZING","REQUIRED","METADATA","setMetadata","objectID","weakData","meta","internalMetadataModule","splice","fastKey","getWeakData","onFreeze","inheritIfRequired","dummy","Wrapper","NewTarget","NewTargetPrototype","InternalMetadataModule","defineBuiltIns","internalStateGetterFor","collectionStrong","getConstructor","ADDER","last","define","previous","getEntry","removed","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","common","IS_WEAK","NativeConstructor","NativePrototype","exported","fixMethod","uncurriedNativeMethod","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","collection","nativeKeys","$map","TO_ENTRIES","$values","RadioGroup","selector","controlName","_ref$featureName","featureName","defaultValue","pluginName","radioElements","querySelectorAll","radioGroup","_possibleConstructorReturn","radio","checked","valuesArray","_toConsumableArray","Set","callBack","RadioGroupPlugin","cssSelector","supportedValues","initialValue","radioCount","selectors","_currentValue","radioGroups","setUpRadios","radioGroupsLength","hasOnly","hasDuplicateValues","property","newValue","thisNumberValue","require$$16","NUMBER","NativeNumber","NumberPrototype","toNumber","third","radix","maxCode","digits","code","NaN","parseInt","NumberWrapper","primValue","toNumeric","Number","Slider","slider","control","_ref$min","_ref$max","_ref$step","_ref$defaultValue","sliderValue","setUpSlider","read","Button","onClick","className","SliderPlugin","_ref$minValue","minValue","_ref$maxValue","maxValue","sliders","setUpSliders","slidersLength","displaySlider","currentValue","sliderRange","DEFAULT_CAPTIONS_STYLES","background","color","edge","font","align","DEFAULT_COLOR_STYLE","INVERTED_COLOR_STYLE","FONT_SIZE_VALUES","COLOR_VALUES","ALIGN_VALUES","CaptionsStylePlugin","_ButtonPlugin","fontSizeRadios","colorRadios","alignmentRadios","_ref$defaultFontSize","defaultFontSize","_ref$defaultColor","defaultColor","_ref$defaultAlignment","defaultAlignment","captionsStyles","captionStyleKey","fontSizeSelectors","colorSelectors","alignmentSelectors","setUpFontSizeRadios","setUpColorRadios","setUpAlignmentRadios","_captionsMuted","alignmentRadiosLength","fontSizeRadiosLength","colorRadiosLength","enableRadioEvents","onColorChange","onAlignmentChange","onFontSizeChange","_step","_iterator","_createForOfIteratorHelper","radios","s","displayRadios","setCaptionsStyles","styles","_step2","_iterator2","resetState","_this5","CaptionsTogglePlugin","captionsButtons","_captionsButtons","captionsButtonClick","captionsButtonLength","displayButton","captionsToggleKey","captionsMuted","setMuteProp","captionsButtonsLength","enableButton","_setMuteProp","HelpPlugin","helpButtons","_helpButtons","helpButtonClick","paused","_helpEnabled","onPause","helpButtonsLength","helpEnabled","getAttribute","hints","PausePlugin","pauseButton","manageOwnVisibility","_manageOwnVisibility","_appBlurred","_containerBlurred","_focusTimer","_isManualPause","_keepFocus","_paused","focusApp","manageFocus","onKeepFocus","onPauseToggle","pauseDisabled","_pauseButton","pageVisibility","onContainerFocus","onContainerBlur","pauseKey","hasDom","focus","blur","blurApp","clearTimeout","pause","disablePause","buttons","SoundPlugin","soundButtons","musicButtons","sfxButtons","voButtons","soundSliders","musicSliders","sfxSliders","voSliders","saved","soundMutedKey","_soundMuted","_musicMuted","_voMuted","_sfxMuted","_musicMutedByUser","_soundMutedByUser","_sfxMutedByUser","_voMutedByUser","soundMuteEnabled","musicMuteEnabled","sfxMuteEnabled","voMuteEnabled","soundVolume","musicVolume","sfxVolume","voVolume","soundVolumeKey","newSlider","musicVolumeKey","sfxVolumeKey","voVolumeKey","onSoundToggle","soundKey","onMusicToggle","onSFXToggle","onVOToggle","soundSlidersLength","musicSlidersLength","sfxSlidersLength","voSlidersLength","soundButtonsLength","musicButtonsLength","sfxButtonsLength","voButtonsLength","enableSliderEvents","onSoundVolumeChange","onMusicVolumeChange","onSFXVolumeChange","onVOVolumeChange","soundMuted","musicMuted","sfxMuted","voMuted","_checkSoundMute","element","sound","music","sfx","vo","soundVolumeEnabled","musicVolumeEnabled","sfxVolumeEnabled","voVolumeEnabled","musicMutedKey","sfxMutedKey","voMutedKey","_soundButton","_musicButton","_sfxButton","_voButton","SavedDataHandler","savedData","record","IDBAdd","IDBUpdate","IDBRemove","IDBRead","IDBReadAll","IDBGetVersion","IDBClose","IDBDeleteDB","UserDataPlugin","onUserDataRemove","onUserDataRead","onUserDataWrite","onIDBAdd","onIDBOpen","onIDBRead","onIDBReadAll","onIDBRemove","onIDBUpdate","onIDBClose","onIDBGetVersion","onIDBDeleteDB","savedDataHandler","_ref3$data","_ref4","_ref4$data","_ref4$data$dbVersion","_ref4$data$additions","_ref4$data$deletions","_ref5","_this6","_ref5$data","_ref6","_this7","_ref6$data","_ref7","_this8","_ref7$data","_ref8","_this9","_ref8$data","_ref9","_this10","_ref9$data","_ref10","_this11","_ref11","_this12","_ref12","_this13","_ref12$data","PointerSizePlugin","_SliderPlugin","pointerSliders","_ref$defaultPointerSi","defaultPointerSize","pointerSizeKey","onPointerSizeChange","ButtonSizePlugin","buttonSliders","_ref$defaultButtonSiz","defaultButtonSize","buttonSizeKey","onButtonSizeChange","ControlSensitivityPlugin","sensitivitySliders","_ref$defaultSensitivi","defaultSensitivity","controlSensitivityKey","onControlSensitivityChange","KeyboardMapPlugin","keyContainers","_ref$customClassName","customClassName","bindKey","onKeyButtonClick","keyBindings","activekeyButton","sendAfterFetch","canEmit","keyContainersLength","textContent","actionName","preventDefault","currentKey","keyBindingKey","keyBinding","defaultKey","label","htmlFor","LayersPlugin","layersSliders","layersSliderKey","onLayerValueChange","SUPPORTED_POSITIONS","HUDPlugin","_RadioGroupPlugin","hudSelectorRadios","hudPositionKey","positions","onHUDSelect","hudPosition","COLOR_BLIND_TYPES","ColorVisionPlugin","colorVisionRadios","colorVisionKey","colors","colorVision","colorDropdownsLength","HitAreaScalePlugin","hitAreaScaleSliders","_ref$defaultHitAreaSc","defaultHitAreaScale","hitAreaScaleKey","onHitAreaScaleChange","DragThresholdScalePlugin","dragThresholdScaleSliders","_ref$defaultDragThres","defaultDragThresholdScale","dragThresholdScaleKey","onDragThresholdScaleChange","HealthPlugin","healthSliders","_ref$defaultHealth","defaultHealth","healthKey","onHealthChange","ObjectCountPlugin","objectCountSliders","_ref$defaultObjectCou","defaultObjectCount","objectCountKey","onObjectCountChange","CompletionPercentagePlugin","completionPercentageSliders","_ref$defaultCompletio","defaultCompletionPercentage","completionPercentageKey","onCompletionPercentageChange","SpeedScalePlugin","speedScaleSliders","_ref$defaultSpeedScal","defaultSpeedScale","speedScaleKey","onSpeedScaleChange","TimersScalePlugin","timersScaleSliders","_ref$defaultTimersSca","defaultTimersScale","timersScaleKey","onTimersScaleChange","InputCountPlugin","inputCountSliders","_ref$defaultInputCoun","defaultInputCount","inputCountKey","onInputCountChange","FullScreenPlugin","buttonSelector","fullscreenKey","_toggleButtons","iFrame","toggleButton","toggleFullScreen","fullscreenElement","exitFullscreen","requestFullscreen","webkitIsFullscreen","mozFullScreen"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sources":["../node_modules/whatwg-fetch/fetch.js","../node_modules/core-js/internals/global.js","../node_modules/core-js/internals/dom-iterables.js","../node_modules/core-js/internals/document-all.js","../node_modules/core-js/internals/is-callable.js","../node_modules/core-js/internals/is-object.js","../node_modules/core-js/internals/document-create-element.js","../node_modules/core-js/internals/dom-token-list-prototype.js","../node_modules/core-js/internals/fails.js","../node_modules/core-js/internals/function-bind-native.js","../node_modules/core-js/internals/function-uncurry-this.js","../node_modules/core-js/internals/classof-raw.js","../node_modules/core-js/internals/function-uncurry-this-clause.js","../node_modules/core-js/internals/try-to-string.js","../node_modules/core-js/internals/a-callable.js","../node_modules/core-js/internals/function-bind-context.js","../node_modules/core-js/internals/indexed-object.js","../node_modules/core-js/internals/is-null-or-undefined.js","../node_modules/core-js/internals/require-object-coercible.js","../node_modules/core-js/internals/to-object.js","../node_modules/core-js/internals/math-trunc.js","../node_modules/core-js/internals/to-integer-or-infinity.js","../node_modules/core-js/internals/to-length.js","../node_modules/core-js/internals/length-of-array-like.js","../node_modules/core-js/internals/is-array.js","../node_modules/core-js/internals/define-global-property.js","../node_modules/core-js/internals/shared-store.js","../node_modules/core-js/internals/shared.js","../node_modules/core-js/internals/engine-v8-version.js","../node_modules/core-js/internals/has-own-property.js","../node_modules/core-js/internals/uid.js","../node_modules/core-js/internals/engine-user-agent.js","../node_modules/core-js/internals/symbol-constructor-detection.js","../node_modules/core-js/internals/use-symbol-as-uid.js","../node_modules/core-js/internals/well-known-symbol.js","../node_modules/core-js/internals/to-string-tag-support.js","../node_modules/core-js/internals/classof.js","../node_modules/core-js/internals/get-built-in.js","../node_modules/core-js/internals/inspect-source.js","../node_modules/core-js/internals/is-constructor.js","../node_modules/core-js/internals/array-species-constructor.js","../node_modules/core-js/internals/array-species-create.js","../node_modules/core-js/internals/array-iteration.js","../node_modules/core-js/internals/array-method-is-strict.js","../node_modules/core-js/internals/array-for-each.js","../node_modules/core-js/internals/descriptors.js","../node_modules/core-js/internals/ie8-dom-define.js","../node_modules/core-js/internals/v8-prototype-define-bug.js","../node_modules/core-js/internals/an-object.js","../node_modules/core-js/internals/function-call.js","../node_modules/core-js/internals/object-is-prototype-of.js","../node_modules/core-js/internals/is-symbol.js","../node_modules/core-js/internals/get-method.js","../node_modules/core-js/internals/ordinary-to-primitive.js","../node_modules/core-js/internals/to-primitive.js","../node_modules/core-js/internals/to-property-key.js","../node_modules/core-js/internals/object-define-property.js","../node_modules/core-js/internals/create-property-descriptor.js","../node_modules/core-js/internals/create-non-enumerable-property.js","../node_modules/core-js/modules/web.dom-collections.for-each.js","../node_modules/core-js/internals/to-indexed-object.js","../node_modules/core-js/internals/to-absolute-index.js","../node_modules/core-js/internals/array-includes.js","../node_modules/core-js/internals/hidden-keys.js","../node_modules/core-js/internals/object-keys-internal.js","../node_modules/core-js/internals/enum-bug-keys.js","../node_modules/core-js/internals/object-keys.js","../node_modules/core-js/internals/object-define-properties.js","../node_modules/core-js/internals/html.js","../node_modules/core-js/internals/object-create.js","../node_modules/core-js/internals/shared-key.js","../node_modules/core-js/internals/add-to-unscopables.js","../node_modules/core-js/internals/internal-state.js","../node_modules/core-js/internals/iterators.js","../node_modules/core-js/internals/weak-map-basic-detection.js","../node_modules/core-js/internals/object-property-is-enumerable.js","../node_modules/core-js/internals/object-get-own-property-descriptor.js","../node_modules/core-js/internals/function-name.js","../node_modules/core-js/internals/make-built-in.js","../node_modules/core-js/internals/define-built-in.js","../node_modules/core-js/internals/object-get-own-property-names.js","../node_modules/core-js/internals/object-get-own-property-symbols.js","../node_modules/core-js/internals/own-keys.js","../node_modules/core-js/internals/iterators-core.js","../node_modules/core-js/internals/copy-constructor-properties.js","../node_modules/core-js/internals/is-forced.js","../node_modules/core-js/internals/export.js","../node_modules/core-js/internals/correct-prototype-getter.js","../node_modules/core-js/internals/object-get-prototype-of.js","../node_modules/core-js/internals/set-to-string-tag.js","../node_modules/core-js/internals/iterator-create-constructor.js","../node_modules/core-js/internals/function-uncurry-this-accessor.js","../node_modules/core-js/internals/a-possible-prototype.js","../node_modules/core-js/internals/object-set-prototype-of.js","../node_modules/core-js/internals/iterator-define.js","../node_modules/core-js/internals/create-iter-result-object.js","../node_modules/core-js/modules/es.array.iterator.js","../node_modules/core-js/modules/web.dom-collections.iterator.js","../node_modules/core-js/internals/path.js","../node_modules/core-js/modules/es.array.index-of.js","../node_modules/core-js/internals/does-not-exceed-safe-integer.js","../node_modules/core-js/internals/create-property.js","../node_modules/core-js/internals/array-method-has-species-support.js","../node_modules/core-js/modules/es.array.concat.js","../node_modules/core-js/internals/object-assign.js","../node_modules/core-js/modules/es.object.assign.js","../node_modules/core-js/internals/object-to-string.js","../node_modules/core-js/modules/es.object.to-string.js","../node_modules/core-js/internals/engine-is-node.js","../node_modules/core-js/internals/task.js","../node_modules/core-js/internals/define-built-in-accessor.js","../node_modules/core-js/internals/set-species.js","../node_modules/core-js/internals/an-instance.js","../node_modules/core-js/internals/a-constructor.js","../node_modules/core-js/internals/species-constructor.js","../node_modules/core-js/internals/function-apply.js","../node_modules/core-js/internals/array-slice.js","../node_modules/core-js/internals/validate-arguments-length.js","../node_modules/core-js/internals/engine-is-ios.js","../node_modules/core-js/internals/queue.js","../node_modules/core-js/internals/microtask.js","../node_modules/core-js/internals/engine-is-ios-pebble.js","../node_modules/core-js/internals/engine-is-webos-webkit.js","../node_modules/core-js/internals/perform.js","../node_modules/core-js/internals/promise-native-constructor.js","../node_modules/core-js/internals/engine-is-deno.js","../node_modules/core-js/internals/engine-is-browser.js","../node_modules/core-js/internals/promise-constructor-detection.js","../node_modules/core-js/internals/new-promise-capability.js","../node_modules/core-js/modules/es.promise.constructor.js","../node_modules/core-js/internals/host-report-errors.js","../node_modules/core-js/internals/is-array-iterator-method.js","../node_modules/core-js/internals/get-iterator-method.js","../node_modules/core-js/internals/get-iterator.js","../node_modules/core-js/internals/iterator-close.js","../node_modules/core-js/internals/iterate.js","../node_modules/core-js/internals/check-correctness-of-iteration.js","../node_modules/core-js/internals/promise-statics-incorrect-iteration.js","../node_modules/core-js/modules/es.promise.all.js","../node_modules/core-js/modules/es.promise.catch.js","../node_modules/core-js/modules/es.promise.race.js","../node_modules/core-js/modules/es.promise.reject.js","../node_modules/core-js/internals/promise-resolve.js","../node_modules/core-js/modules/es.promise.resolve.js","../node_modules/core-js/internals/to-string.js","../node_modules/core-js/internals/regexp-exec.js","../node_modules/core-js/internals/regexp-flags.js","../node_modules/core-js/internals/regexp-sticky-helpers.js","../node_modules/core-js/internals/regexp-unsupported-dot-all.js","../node_modules/core-js/internals/regexp-unsupported-ncg.js","../node_modules/core-js/modules/es.regexp.exec.js","../src/Features.js","../node_modules/core-js/internals/string-multibyte.js","../node_modules/core-js/modules/es.string.iterator.js","../node_modules/core-js/modules/es.array.filter.js","../node_modules/core-js/modules/es.array.find.js","../node_modules/bellhop-iframe/dist/bellhop.js","../src/PluginManager.js","../src/Container.js","../src/PageVisibility.js","../node_modules/core-js/modules/es.array.includes.js","../node_modules/core-js/internals/whitespaces.js","../node_modules/core-js/internals/string-trim.js","../node_modules/core-js/internals/string-trim-forced.js","../node_modules/core-js/modules/es.string.trim.js","../node_modules/core-js/internals/regexp-get-flags.js","../node_modules/core-js/modules/es.regexp.to-string.js","../src/SavedData.js","../src/base-plugins/BasePlugin.js","../src/base-plugins/ButtonPlugin.js","../node_modules/core-js/internals/is-regexp.js","../node_modules/core-js/internals/not-a-regexp.js","../node_modules/core-js/internals/correct-is-regexp-logic.js","../node_modules/core-js/modules/es.string.includes.js","../node_modules/core-js/internals/array-slice-simple.js","../node_modules/core-js/internals/object-get-own-property-names-external.js","../node_modules/core-js/internals/array-buffer-non-extensible.js","../node_modules/core-js/internals/object-is-extensible.js","../node_modules/core-js/internals/freezing.js","../node_modules/core-js/internals/internal-metadata.js","../node_modules/core-js/internals/inherit-if-required.js","../node_modules/core-js/internals/collection.js","../node_modules/core-js/internals/define-built-ins.js","../node_modules/core-js/internals/collection-strong.js","../node_modules/core-js/modules/es.set.constructor.js","../node_modules/core-js/modules/es.object.keys.js","../node_modules/core-js/modules/es.array.map.js","../node_modules/core-js/internals/object-to-array.js","../node_modules/core-js/modules/es.object.values.js","../src/ui-elements/RadioGroup.js","../src/base-plugins/RadioGroupPlugin.js","../node_modules/core-js/internals/this-number-value.js","../node_modules/core-js/modules/es.number.constructor.js","../src/ui-elements/Slider.js","../src/ui-elements/Button.js","../src/base-plugins/SliderPlugin.js","../src/plugins/CaptionsStylePlugin.js","../src/plugins/CaptionsTogglePlugin.js","../src/plugins/HelpPlugin.js","../src/plugins/PausePlugin.js","../src/plugins/SoundPlugin.js","../src/SavedDataHandler.js","../src/plugins/UserDataPlugin.js","../src/plugins/PointerSizePlugin.js","../src/plugins/ButtonSizePlugin.js","../src/plugins/ControlSensitivityPlugin.js","../src/plugins/KeyboardMapPlugin.js","../src/plugins/LayersPlugin.js","../src/plugins/HUDPlugin.js","../src/plugins/ColorVisionPlugin.js","../src/plugins/HitAreaScalePlugin.js","../src/plugins/DragThresholdScalePlugin.js","../src/plugins/HealthPlugin.js","../src/plugins/ObjectCountPlugin.js","../src/plugins/CompletionPercentagePlugin.js","../src/plugins/SpeedScalePlugin.js","../src/plugins/TimersScalePlugin.js","../src/plugins/InputCountPlugin.js","../src/plugins/FullScreenPlugin.js"],"sourcesContent":["var global =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof self !== 'undefined' && self) ||\n (typeof global !== 'undefined' && global)\n\nvar support = {\n searchParams: 'URLSearchParams' in global,\n iterable: 'Symbol' in global && 'iterator' in Symbol,\n blob:\n 'FileReader' in global &&\n 'Blob' in global &&\n (function() {\n try {\n new Blob()\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in global,\n arrayBuffer: 'ArrayBuffer' in global\n}\n\nfunction isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n}\n\nif (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ]\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n }\n}\n\nfunction normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name)\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~!]/i.test(name) || name === '') {\n throw new TypeError('Invalid character in header field name: \"' + name + '\"')\n }\n return name.toLowerCase()\n}\n\nfunction normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value)\n }\n return value\n}\n\n// Build a destructive iterator for the value list\nfunction iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift()\n return {done: value === undefined, value: value}\n }\n }\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n }\n }\n\n return iterator\n}\n\nexport function Headers(headers) {\n this.map = {}\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value)\n }, this)\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1])\n }, this)\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name])\n }, this)\n }\n}\n\nHeaders.prototype.append = function(name, value) {\n name = normalizeName(name)\n value = normalizeValue(value)\n var oldValue = this.map[name]\n this.map[name] = oldValue ? oldValue + ', ' + value : value\n}\n\nHeaders.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)]\n}\n\nHeaders.prototype.get = function(name) {\n name = normalizeName(name)\n return this.has(name) ? this.map[name] : null\n}\n\nHeaders.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n}\n\nHeaders.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value)\n}\n\nHeaders.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this)\n }\n }\n}\n\nHeaders.prototype.keys = function() {\n var items = []\n this.forEach(function(value, name) {\n items.push(name)\n })\n return iteratorFor(items)\n}\n\nHeaders.prototype.values = function() {\n var items = []\n this.forEach(function(value) {\n items.push(value)\n })\n return iteratorFor(items)\n}\n\nHeaders.prototype.entries = function() {\n var items = []\n this.forEach(function(value, name) {\n items.push([name, value])\n })\n return iteratorFor(items)\n}\n\nif (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n}\n\nfunction consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true\n}\n\nfunction fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result)\n }\n reader.onerror = function() {\n reject(reader.error)\n }\n })\n}\n\nfunction readBlobAsArrayBuffer(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsArrayBuffer(blob)\n return promise\n}\n\nfunction readBlobAsText(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsText(blob)\n return promise\n}\n\nfunction readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf)\n var chars = new Array(view.length)\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i])\n }\n return chars.join('')\n}\n\nfunction bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength)\n view.set(new Uint8Array(buf))\n return view.buffer\n }\n}\n\nfunction Body() {\n this.bodyUsed = false\n\n this._initBody = function(body) {\n /*\n fetch-mock wraps the Response object in an ES6 Proxy to\n provide useful test harness features such as flush. However, on\n ES5 browsers without fetch or Proxy support pollyfills must be used;\n the proxy-pollyfill is unable to proxy an attribute unless it exists\n on the object before the Proxy is created. This change ensures\n Response.bodyUsed exists on the instance, while maintaining the\n semantic of setting Request.bodyUsed in the constructor before\n _initBody is called.\n */\n this.bodyUsed = this.bodyUsed\n this._bodyInit = body\n if (!body) {\n this._bodyText = ''\n } else if (typeof body === 'string') {\n this._bodyText = body\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString()\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer)\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer])\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body)\n } else {\n this._bodyText = body = Object.prototype.toString.call(body)\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8')\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type)\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n }\n }\n }\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n }\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n var isConsumed = consumed(this)\n if (isConsumed) {\n return isConsumed\n }\n if (ArrayBuffer.isView(this._bodyArrayBuffer)) {\n return Promise.resolve(\n this._bodyArrayBuffer.buffer.slice(\n this._bodyArrayBuffer.byteOffset,\n this._bodyArrayBuffer.byteOffset + this._bodyArrayBuffer.byteLength\n )\n )\n } else {\n return Promise.resolve(this._bodyArrayBuffer)\n }\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n }\n }\n\n this.text = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n }\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n }\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n }\n\n return this\n}\n\n// HTTP methods whose capitalization should be normalized\nvar methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\n\nfunction normalizeMethod(method) {\n var upcased = method.toUpperCase()\n return methods.indexOf(upcased) > -1 ? upcased : method\n}\n\nexport function Request(input, options) {\n if (!(this instanceof Request)) {\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n }\n\n options = options || {}\n var body = options.body\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url\n this.credentials = input.credentials\n if (!options.headers) {\n this.headers = new Headers(input.headers)\n }\n this.method = input.method\n this.mode = input.mode\n this.signal = input.signal\n if (!body && input._bodyInit != null) {\n body = input._bodyInit\n input.bodyUsed = true\n }\n } else {\n this.url = String(input)\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin'\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers)\n }\n this.method = normalizeMethod(options.method || this.method || 'GET')\n this.mode = options.mode || this.mode || null\n this.signal = options.signal || this.signal\n this.referrer = null\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body)\n\n if (this.method === 'GET' || this.method === 'HEAD') {\n if (options.cache === 'no-store' || options.cache === 'no-cache') {\n // Search for a '_' parameter in the query string\n var reParamSearch = /([?&])_=[^&]*/\n if (reParamSearch.test(this.url)) {\n // If it already exists then set the value with the current time\n this.url = this.url.replace(reParamSearch, '$1_=' + new Date().getTime())\n } else {\n // Otherwise add a new '_' parameter to the end with the current time\n var reQueryString = /\\?/\n this.url += (reQueryString.test(this.url) ? '&' : '?') + '_=' + new Date().getTime()\n }\n }\n }\n}\n\nRequest.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n}\n\nfunction decode(body) {\n var form = new FormData()\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=')\n var name = split.shift().replace(/\\+/g, ' ')\n var value = split.join('=').replace(/\\+/g, ' ')\n form.append(decodeURIComponent(name), decodeURIComponent(value))\n }\n })\n return form\n}\n\nfunction parseHeaders(rawHeaders) {\n var headers = new Headers()\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ')\n // Avoiding split via regex to work around a common IE11 bug with the core-js 3.6.0 regex polyfill\n // https://github.com/github/fetch/issues/748\n // https://github.com/zloirock/core-js/issues/751\n preProcessedHeaders\n .split('\\r')\n .map(function(header) {\n return header.indexOf('\\n') === 0 ? header.substr(1, header.length) : header\n })\n .forEach(function(line) {\n var parts = line.split(':')\n var key = parts.shift().trim()\n if (key) {\n var value = parts.join(':').trim()\n headers.append(key, value)\n }\n })\n return headers\n}\n\nBody.call(Request.prototype)\n\nexport function Response(bodyInit, options) {\n if (!(this instanceof Response)) {\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n }\n if (!options) {\n options = {}\n }\n\n this.type = 'default'\n this.status = options.status === undefined ? 200 : options.status\n this.ok = this.status >= 200 && this.status < 300\n this.statusText = options.statusText === undefined ? '' : '' + options.statusText\n this.headers = new Headers(options.headers)\n this.url = options.url || ''\n this._initBody(bodyInit)\n}\n\nBody.call(Response.prototype)\n\nResponse.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n}\n\nResponse.error = function() {\n var response = new Response(null, {status: 0, statusText: ''})\n response.type = 'error'\n return response\n}\n\nvar redirectStatuses = [301, 302, 303, 307, 308]\n\nResponse.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n}\n\nexport var DOMException = global.DOMException\ntry {\n new DOMException()\n} catch (err) {\n DOMException = function(message, name) {\n this.message = message\n this.name = name\n var error = Error(message)\n this.stack = error.stack\n }\n DOMException.prototype = Object.create(Error.prototype)\n DOMException.prototype.constructor = DOMException\n}\n\nexport function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init)\n\n if (request.signal && request.signal.aborted) {\n return reject(new DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest()\n\n function abortXhr() {\n xhr.abort()\n }\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n }\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n var body = 'response' in xhr ? xhr.response : xhr.responseText\n setTimeout(function() {\n resolve(new Response(body, options))\n }, 0)\n }\n\n xhr.onerror = function() {\n setTimeout(function() {\n reject(new TypeError('Network request failed'))\n }, 0)\n }\n\n xhr.ontimeout = function() {\n setTimeout(function() {\n reject(new TypeError('Network request failed'))\n }, 0)\n }\n\n xhr.onabort = function() {\n setTimeout(function() {\n reject(new DOMException('Aborted', 'AbortError'))\n }, 0)\n }\n\n function fixUrl(url) {\n try {\n return url === '' && global.location.href ? global.location.href : url\n } catch (e) {\n return url\n }\n }\n\n xhr.open(request.method, fixUrl(request.url), true)\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false\n }\n\n if ('responseType' in xhr) {\n if (support.blob) {\n xhr.responseType = 'blob'\n } else if (\n support.arrayBuffer &&\n request.headers.get('Content-Type') &&\n request.headers.get('Content-Type').indexOf('application/octet-stream') !== -1\n ) {\n xhr.responseType = 'arraybuffer'\n }\n }\n\n if (init && typeof init.headers === 'object' && !(init.headers instanceof Headers)) {\n Object.getOwnPropertyNames(init.headers).forEach(function(name) {\n xhr.setRequestHeader(name, normalizeValue(init.headers[name]))\n })\n } else {\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value)\n })\n }\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr)\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr)\n }\n }\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n })\n}\n\nfetch.polyfill = true\n\nif (!global.fetch) {\n global.fetch = fetch\n global.Headers = Headers\n global.Request = Request\n global.Response = Response\n}\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","var documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nvar IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = {\n all: documentAll,\n IS_HTMLDDA: IS_HTMLDDA\n};\n","var $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = $documentAll.IS_HTMLDDA ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","var isCallable = require('../internals/is-callable');\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\nmodule.exports = $documentAll.IS_HTMLDDA ? function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList`\nvar documentCreateElement = require('../internals/document-create-element');\n\nvar classList = documentCreateElement('span').classList;\nvar DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype;\n\nmodule.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype;\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n","var $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a function');\n};\n","var uncurryThis = require('../internals/function-uncurry-this-clause');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","var isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","var trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) == 'Array';\n};\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.28.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.28.0/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","module.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","var isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (isConstructor(C) && (C === $Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? $Array : C;\n};\n","var arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","var bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = uncurryThis([].push);\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var IS_FILTER_REJECT = TYPE == 7;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that);\n var length = lengthOfArrayLike(self);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push(target, value); // filterReject\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call -- required for testing\n method.call(null, argument || function () { return 1; }, 1);\n });\n};\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\nmodule.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n} : [].forEach;\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw $TypeError($String(argument) + ' is not an object');\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","var aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","var call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw $TypeError(\"Can't convert object to primitive value\");\n};\n","var call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar handlePrototype = function (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n if (DOMIterables[COLLECTION_NAME]) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype);\n }\n}\n\nhandlePrototype(DOMTokenListPrototype);\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","module.exports = {};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","var NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","module.exports = {};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","var isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n","var defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC) target = target.prototype;\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function (object, key, method) {\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n } catch (error) { /* empty */ }\n};\n","var isCallable = require('../internals/is-callable');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n if (kind == 'keys') return createIterResultObject(index, false);\n if (kind == 'values') return createIterResultObject(target[index], false);\n return createIterResultObject([index, target[index]], false);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nvar values = Iterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n// V8 ~ Chrome 45- bug\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n defineProperty(values, 'name', { value: 'values' });\n} catch (error) { /* empty */ }\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nvar handlePrototype = function (CollectionPrototype, COLLECTION_NAME) {\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype, COLLECTION_NAME);\n}\n\nhandlePrototype(DOMTokenListPrototype, 'DOMTokenList');\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","'use strict';\n/* eslint-disable es/no-array-prototype-indexof -- required for testing */\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar $indexOf = require('../internals/array-includes').indexOf;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeIndexOf = uncurryThis([].indexOf);\n\nvar NEGATIVE_ZERO = !!nativeIndexOf && 1 / nativeIndexOf([1], 1, -0) < 0;\nvar FORCED = NEGATIVE_ZERO || !arrayMethodIsStrict('indexOf');\n\n// `Array.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: FORCED }, {\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n var fromIndex = arguments.length > 1 ? arguments[1] : undefined;\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? nativeIndexOf(this, searchElement, fromIndex) || 0\n : $indexOf(this, searchElement, fromIndex);\n }\n});\n","var $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !arrayMethodHasSpeciesSupport('concat');\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = lengthOfArrayLike(E);\n doesNotExceedSafeInteger(n + len);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n doesNotExceedSafeInteger(n + 1);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\nvar concat = uncurryThis([].concat);\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es/no-symbol -- safe\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n// eslint-disable-next-line es/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, {\n assign: assign\n});\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n defineBuiltIn(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","var classof = require('../internals/classof-raw');\n\nmodule.exports = typeof process != 'undefined' && classof(process) == 'process';\n","var global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar Dispatch = global.Dispatch;\nvar Function = global.Function;\nvar MessageChannel = global.MessageChannel;\nvar String = global.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar $location, defer, channel, port;\n\nfails(function () {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n $location = global.location;\n});\n\nvar run = function (id) {\n if (hasOwn(queue, id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar eventListener = function (event) {\n run(event.data);\n};\n\nvar globalPostMessageDefer = function (id) {\n // old engines have not location.origin\n global.postMessage(String(id), $location.protocol + '//' + $location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(handler) {\n validateArgumentsLength(arguments.length, 1);\n var fn = isCallable(handler) ? handler : Function(handler);\n var args = arraySlice(arguments, 1);\n queue[++counter] = function () {\n apply(fn, undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = eventListener;\n defer = bind(port.postMessage, port);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n isCallable(global.postMessage) &&\n !global.importScripts &&\n $location && $location.protocol !== 'file:' &&\n !fails(globalPostMessageDefer)\n ) {\n defer = globalPostMessageDefer;\n global.addEventListener('message', eventListener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var makeBuiltIn = require('../internals/make-built-in');\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n return defineProperty.f(target, name, descriptor);\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineBuiltInAccessor(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","var isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw $TypeError('Incorrect invocation');\n};\n","var isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a constructor');\n};\n","var anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || isNullOrUndefined(S = anObject(C)[SPECIES]) ? defaultConstructor : aConstructor(S);\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","var $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw $TypeError('Not enough arguments');\n return passed;\n};\n","var userAgent = require('../internals/engine-user-agent');\n\n// eslint-disable-next-line redos/no-vulnerable -- safe\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","var Queue = function () {\n this.head = null;\n this.tail = null;\n};\n\nQueue.prototype = {\n add: function (item) {\n var entry = { item: item, next: null };\n var tail = this.tail;\n if (tail) tail.next = entry;\n else this.head = entry;\n this.tail = entry;\n },\n get: function () {\n var entry = this.head;\n if (entry) {\n var next = this.head = entry.next;\n if (next === null) this.tail = null;\n return entry.item;\n }\n }\n};\n\nmodule.exports = Queue;\n","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar macrotask = require('../internals/task').set;\nvar Queue = require('../internals/queue');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_IOS_PEBBLE = require('../internals/engine-is-ios-pebble');\nvar IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar document = global.document;\nvar process = global.process;\nvar Promise = global.Promise;\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar microtask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\nvar notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!microtask) {\n var queue = new Queue();\n\n var flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (fn = queue.get()) try {\n fn();\n } catch (error) {\n if (queue.head) notify();\n throw error;\n }\n if (parent) parent.enter();\n };\n\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n // workaround of WebKit ~ iOS Safari 10.1 bug\n promise.constructor = Promise;\n then = bind(promise.then, promise);\n notify = function () {\n then(flush);\n };\n // Node.js without promises\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessage\n // - onreadystatechange\n // - setTimeout\n } else {\n // `webpack` dev server bug on IE global methods - use bind(fn, global)\n macrotask = bind(macrotask, global);\n notify = function () {\n macrotask(flush);\n };\n }\n\n microtask = function (fn) {\n if (!queue.head) notify();\n queue.add(fn);\n };\n}\n\nmodule.exports = microtask;\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && typeof Pebble != 'undefined';\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","/* global Deno -- Deno case */\nmodule.exports = typeof Deno == 'object' && Deno && typeof Deno.version == 'object';\n","var IS_DENO = require('../internals/engine-is-deno');\nvar IS_NODE = require('../internals/engine-is-node');\n\nmodule.exports = !IS_DENO && !IS_NODE\n && typeof window == 'object'\n && typeof document == 'object';\n","var global = require('../internals/global');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar isCallable = require('../internals/is-callable');\nvar isForced = require('../internals/is-forced');\nvar inspectSource = require('../internals/inspect-source');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_DENO = require('../internals/engine-is-deno');\nvar IS_PURE = require('../internals/is-pure');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar SPECIES = wellKnownSymbol('species');\nvar SUBCLASSING = false;\nvar NATIVE_PROMISE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent);\n\nvar FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () {\n var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor);\n var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor);\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution\n if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['finally'])) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (!V8_VERSION || V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) {\n // Detect correctness of subclassing with @@species support\n var promise = new NativePromiseConstructor(function (resolve) { resolve(1); });\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n if (!SUBCLASSING) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n } return !GLOBAL_CORE_JS_PROMISE && (IS_BROWSER || IS_DENO) && !NATIVE_PROMISE_REJECTION_EVENT;\n});\n\nmodule.exports = {\n CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR,\n REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT,\n SUBCLASSING: SUBCLASSING\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar $TypeError = TypeError;\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw $TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar IS_NODE = require('../internals/engine-is-node');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar aCallable = require('../internals/a-callable');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar perform = require('../internals/perform');\nvar Queue = require('../internals/queue');\nvar InternalStateModule = require('../internals/internal-state');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar PromiseConstructorDetection = require('../internals/promise-constructor-detection');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\nvar PROMISE = 'Promise';\nvar FORCED_PROMISE_CONSTRUCTOR = PromiseConstructorDetection.CONSTRUCTOR;\nvar NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT;\nvar NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar setInternalState = InternalStateModule.set;\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar PromiseConstructor = NativePromiseConstructor;\nvar PromisePrototype = NativePromisePrototype;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\n\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\n\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && isCallable(then = it.then) ? then : false;\n};\n\nvar callReaction = function (reaction, state) {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n call(then, result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n microtask(function () {\n var reactions = state.reactions;\n var reaction;\n while (reaction = reactions.get()) {\n callReaction(reaction, state);\n }\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n call(then, value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED_PROMISE_CONSTRUCTOR) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromisePrototype);\n aCallable(executor);\n call(Internal, this);\n var state = getInternalPromiseState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n\n PromisePrototype = PromiseConstructor.prototype;\n\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: new Queue(),\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n state.parent = true;\n reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;\n reaction.fail = isCallable(onRejected) && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n if (state.state == PENDING) state.reactions.add(reaction);\n else microtask(function () {\n callReaction(reaction, state);\n });\n return reaction.promise;\n });\n\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalPromiseState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && isCallable(NativePromiseConstructor) && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n if (!NATIVE_PROMISE_SUBCLASSING) {\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n defineBuiltIn(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n call(nativeThen, that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n }\n\n // make `.constructor === Promise` work for native promise-based APIs\n try {\n delete NativePromisePrototype.constructor;\n } catch (error) { /* empty */ }\n\n // make `instanceof Promise` work for native promise-based APIs\n if (setPrototypeOf) {\n setPrototypeOf(NativePromisePrototype, PromisePrototype);\n }\n }\n}\n\n$({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n","module.exports = function (a, b) {\n try {\n // eslint-disable-next-line no-console -- safe\n arguments.length == 1 ? console.error(a) : console.error(a, b);\n } catch (error) { /* empty */ }\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","var call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw $TypeError(tryToString(argument) + ' is not iterable');\n};\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","var bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_RECORD = !!(options && options.IS_RECORD);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_RECORD) {\n iterator = iterable.iterator;\n } else if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw $TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = IS_RECORD ? iterable.next : iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\nmodule.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) {\n NativePromiseConstructor.all(iterable).then(undefined, function () { /* empty */ });\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.all` method\n// https://tc39.es/ecma262/#sec-promise.all\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call($promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// `Promise.prototype.catch` method\n// https://tc39.es/ecma262/#sec-promise.prototype.catch\n$({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR, real: true }, {\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n});\n\n// makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['catch'];\n if (NativePromisePrototype['catch'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'catch', method, { unsafe: true });\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.race` method\n// https://tc39.es/ecma262/#sec-promise.race\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n iterate(iterable, function (promise) {\n call($promiseResolve, C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\n// `Promise.reject` method\n// https://tc39.es/ecma262/#sec-promise.reject\n$({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n reject: function reject(r) {\n var capability = newPromiseCapabilityModule.f(this);\n call(capability.reject, undefined, r);\n return capability.promise;\n }\n});\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar promiseResolve = require('../internals/promise-resolve');\n\nvar PromiseConstructorWrapper = getBuiltIn('Promise');\nvar CHECK_WRAPPER = IS_PURE && !FORCED_PROMISE_CONSTRUCTOR;\n\n// `Promise.resolve` method\n// https://tc39.es/ecma262/#sec-promise.resolve\n$({ target: 'Promise', stat: true, forced: IS_PURE || FORCED_PROMISE_CONSTRUCTOR }, {\n resolve: function resolve(x) {\n return promiseResolve(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor : this, x);\n }\n});\n","var classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","'use strict';\n/* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */\n/* eslint-disable regexp/no-useless-quantifier -- testing */\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar regexpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar shared = require('../internals/shared');\nvar create = require('../internals/object-create');\nvar getInternalState = require('../internals/internal-state').get;\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar nativeReplace = shared('native-string-replace', String.prototype.replace);\nvar nativeExec = RegExp.prototype.exec;\nvar patchedExec = nativeExec;\nvar charAt = uncurryThis(''.charAt);\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n call(nativeExec, re1, 'a');\n call(nativeExec, re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG;\n\nif (PATCH) {\n patchedExec = function exec(string) {\n var re = this;\n var state = getInternalState(re);\n var str = toString(string);\n var raw = state.raw;\n var result, reCopy, lastIndex, match, i, object, group;\n\n if (raw) {\n raw.lastIndex = re.lastIndex;\n result = call(patchedExec, raw, str);\n re.lastIndex = raw.lastIndex;\n return result;\n }\n\n var groups = state.groups;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = call(regexpFlags, re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = replace(flags, 'y', '');\n if (indexOf(flags, 'g') === -1) {\n flags += 'g';\n }\n\n strCopy = stringSlice(str, re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt(str, re.lastIndex - 1) !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = call(nativeExec, sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = stringSlice(match.input, charsAdded);\n match[0] = stringSlice(match[0], charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn't work for /(.?)?/\n call(nativeReplace, match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n if (match && groups) {\n match.groups = object = create(null);\n for (i = 0; i < groups.length; i++) {\n group = groups[i];\n object[group[0]] = match[group[1]];\n }\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.hasIndices) result += 'd';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.unicodeSets) result += 'v';\n if (that.sticky) result += 'y';\n return result;\n};\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nvar UNSUPPORTED_Y = fails(function () {\n var re = $RegExp('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\n// UC Browser bug\n// https://github.com/zloirock/core-js/issues/1008\nvar MISSED_STICKY = UNSUPPORTED_Y || fails(function () {\n return !$RegExp('a', 'y').sticky;\n});\n\nvar BROKEN_CARET = UNSUPPORTED_Y || fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = $RegExp('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\n\nmodule.exports = {\n BROKEN_CARET: BROKEN_CARET,\n MISSED_STICKY: MISSED_STICKY,\n UNSUPPORTED_Y: UNSUPPORTED_Y\n};\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('.', 's');\n return !(re.dotAll && re.exec('\\n') && re.flags === 's');\n});\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('(?b)', 'g') -> /(?b)/g and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('(?b)', 'g');\n return re.exec('b').groups.a !== 'b' ||\n 'b'.replace(re, '$c') !== 'bc';\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n// `RegExp.prototype.exec` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","/**\n * Provide feature detection\n * @class Features\n */\nexport class Features {\n /**\n * If the browser has WebGL support\n * @property {boolean} webgl\n */\n static get webgl() {\n const canvas = document.createElement('canvas');\n\n return !!(\n canvas &&\n (canvas.getContext('webgl') || canvas.getContext('experimental-webgl'))\n );\n }\n\n /**\n * If the browser has Canvas support\n * @property {boolean} canvas\n */\n static get canvas() {\n const canvas = document.createElement('canvas');\n return !!(canvas !== null && canvas.getContext && canvas.getContext('2d'));\n }\n\n /**\n * If the browser has WebAudio API support\n * @property {boolean} webaudio\n */\n static get webaudio() {\n return 'webkitAudioContext' in window || 'AudioContext' in window;\n }\n\n /**\n * If the browser has HTMLAudio support\n * @property {boolean} htmlAudio\n */\n static get htmlAudio() {\n return 'HTMLAudioElement' in window;\n }\n\n /**\n * If the browser has Web Sockets API\n * @property {boolean} websockets\n */\n static get websockets() {\n return 'WebSocket' in window || 'MozWebSocket' in window;\n }\n\n /**\n * If the browser has Geolocation API\n * @property {boolean} geolocation\n */\n static get geolocation() {\n return 'geolocation' in navigator;\n }\n\n /**\n * If the browser has Web Workers API\n * @property {boolean} webworkers\n */\n static get webworkers() {\n return 'function' === typeof Worker;\n }\n\n /**\n * If the browser has touch\n * @property {boolean} touch\n */\n static get touch() {\n return !!(\n 'ontouchstart' in window || // iOS & Android\n (navigator.msPointerEnabled && navigator.msMaxTouchPoints > 0) || // IE10\n (navigator.pointerEnabled && navigator.maxTouchPoints > 0)\n ); // IE11+\n }\n\n /**\n * Test for basic browser compatiliblity\n * @method basic\n * @static\n * @return {String} The error message, if fails\n */\n static basic() {\n if (!Features.canvas) {\n return 'Browser does not support canvas';\n } else if (!Features.webaudio && !Features.htmlAudio) {\n return 'Browser does not support WebAudio or HTMLAudio';\n }\n return null;\n }\n\n /**\n * See if the current bowser has the correct features\n * @method test\n * @static\n * @param {object} capabilities The capabilities\n * @param {object} [capabilities.features] The features\n * @param {object} [capabilities.features.webgl] WebGL required\n * @param {object} [capabilities.features.geolocation] Geolocation required\n * @param {object} [capabilities.features.webworkers] Web Workers API required\n * @param {object} [capabilities.features.webaudio] WebAudio API required\n * @param {object} [capabilities.features.websockets] WebSockets required\n * @param {object} [capabilities.sizes] The sizes\n * @param {Boolean} [capabilities.sizes.xsmall] Screens < 480\n * @param {Boolean} [capabilities.sizes.small] Screens < 768\n * @param {Boolean} [capabilities.sizes.medium] Screens < 992\n * @param {Boolean} [capabilities.sizes.large] Screens < 1200\n * @param {Boolean} [capabilities.sizes.xlarge] Screens >= 1200\n * @param {object} [capabilities.ui] The ui\n * @param {Boolean} [capabilities.ui.touch] Touch capable\n * @return {String|null} The error, or else returns null\n */\n static test(capabilities) {\n // check for basic compatibility\n const err = this.basic();\n if (err) {\n return err;\n }\n\n const features = capabilities.features;\n const ui = capabilities.ui;\n const sizes = capabilities.sizes;\n\n for (const name in features) {\n if (features[name] === true && !Features[name]) {\n // Failed built-in feature check\n return 'Browser does not support ' + name;\n }\n }\n\n // Failed negative touch requirement\n if (!ui.touch && Features.touch) {\n return 'Game does not support touch input';\n }\n\n // Check the sizes\n const size = Math.max(window.screen.width, window.screen.height);\n\n if (!sizes.xsmall && size < 480) {\n return 'Game doesn\\'t support extra small screens';\n }\n if (!sizes.small && size < 768) {\n return 'Game doesn\\'t support small screens';\n }\n if (!sizes.medium && size < 992) {\n return 'Game doesn\\'t support medium screens';\n }\n if (!sizes.large && size < 1200) {\n return 'Game doesn\\'t support large screens';\n }\n if (!sizes.xlarge && size >= 1200) {\n return 'Game doesn\\'t support extra large screens';\n }\n return null;\n }\n\n /**\n * Returns browser feature support info\n * @returns {string}\n */\n static get info() {\n return `Browser Feature Detection\n\t\t\t\tCanvas support ${Features.canvas ? '\\u2713' : '\\u00D7'}\n\t\t\t\tWebGL support ${Features.webgl ? '\\u2713' : '\\u00D7'}\n\t\t\t\tWebAudio support ${Features.webAudio ? '\\u2713' : '\\u00D7'}`;\n }\n}\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return createIterResultObject(undefined, true);\n point = charAt(string, index);\n state.index += point.length;\n return createIterResultObject(point, false);\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $find = require('../internals/array-iteration').find;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\nif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.find` method\n// https://tc39.es/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n","function t(t,e){return t(e={exports:{}},e.exports),e.exports}var e=t((function(t){function e(t){return(e=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function n(r){return\"function\"==typeof Symbol&&\"symbol\"===e(Symbol.iterator)?t.exports=n=function(t){return e(t)}:t.exports=n=function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":e(t)},n(r)}t.exports=n}));var n=function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")};function r(t,e){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:0;this._listeners[t]||(this._listeners[t]=[]),e._priority=parseInt(n)||0,-1===this._listeners[t].indexOf(e)&&(this._listeners[t].push(e),this._listeners[t].length>1&&this._listeners[t].sort(this.listenerSorter))}},{key:\"listenerSorter\",value:function(t,e){return t._priority-e._priority}},{key:\"off\",value:function(t,e){if(void 0!==this._listeners[t])if(void 0!==e){var n=this._listeners[t].indexOf(e);-11&&void 0!==arguments[1]?arguments[1]:{};if(\"string\"==typeof t&&(t={type:t,data:\"object\"===e(n)&&null!==n?n:{}}),void 0!==this._listeners[t.type])for(var r=this._listeners[t.type].length-1;r>=0;r--)this._listeners[t.type][r](t)}},{key:\"destroy\",value:function(){this._listeners={}}}]),t}(),s=t((function(t){var e=function(t){var e,n=Object.prototype,r=n.hasOwnProperty,o=\"function\"==typeof Symbol?Symbol:{},i=o.iterator||\"@@iterator\",s=o.asyncIterator||\"@@asyncIterator\",a=o.toStringTag||\"@@toStringTag\";function c(t,e,n,r){var o=e&&e.prototype instanceof d?e:d,i=Object.create(o.prototype),s=new S(r||[]);return i._invoke=function(t,e,n){var r=h;return function(o,i){if(r===f)throw new Error(\"Generator is already running\");if(r===p){if(\"throw\"===o)throw i;return P()}for(n.method=o,n.arg=i;;){var s=n.delegate;if(s){var a=O(s,n);if(a){if(a===y)continue;return a}}if(\"next\"===n.method)n.sent=n._sent=n.arg;else if(\"throw\"===n.method){if(r===h)throw r=p,n.arg;n.dispatchException(n.arg)}else\"return\"===n.method&&n.abrupt(\"return\",n.arg);r=f;var c=u(t,e,n);if(\"normal\"===c.type){if(r=n.done?p:l,c.arg===y)continue;return{value:c.arg,done:n.done}}\"throw\"===c.type&&(r=p,n.method=\"throw\",n.arg=c.arg)}}}(t,n,s),i}function u(t,e,n){try{return{type:\"normal\",arg:t.call(e,n)}}catch(t){return{type:\"throw\",arg:t}}}t.wrap=c;var h=\"suspendedStart\",l=\"suspendedYield\",f=\"executing\",p=\"completed\",y={};function d(){}function v(){}function g(){}var m={};m[i]=function(){return this};var w=Object.getPrototypeOf,b=w&&w(w(j([])));b&&b!==n&&r.call(b,i)&&(m=b);var _=g.prototype=d.prototype=Object.create(m);function x(t){[\"next\",\"throw\",\"return\"].forEach((function(e){t[e]=function(t){return this._invoke(e,t)}}))}function L(t){function e(n,o,i,s){var a=u(t[n],t,o);if(\"throw\"!==a.type){var c=a.arg,h=c.value;return h&&\"object\"==typeof h&&r.call(h,\"__await\")?Promise.resolve(h.__await).then((function(t){e(\"next\",t,i,s)}),(function(t){e(\"throw\",t,i,s)})):Promise.resolve(h).then((function(t){c.value=t,i(c)}),(function(t){return e(\"throw\",t,i,s)}))}s(a.arg)}var n;this._invoke=function(t,r){function o(){return new Promise((function(n,o){e(t,r,n,o)}))}return n=n?n.then(o,o):o()}}function O(t,n){var r=t.iterator[n.method];if(r===e){if(n.delegate=null,\"throw\"===n.method){if(t.iterator.return&&(n.method=\"return\",n.arg=e,O(t,n),\"throw\"===n.method))return y;n.method=\"throw\",n.arg=new TypeError(\"The iterator does not provide a 'throw' method\")}return y}var o=u(r,t.iterator,n.arg);if(\"throw\"===o.type)return n.method=\"throw\",n.arg=o.arg,n.delegate=null,y;var i=o.arg;return i?i.done?(n[t.resultName]=i.value,n.next=t.nextLoc,\"return\"!==n.method&&(n.method=\"next\",n.arg=e),n.delegate=null,y):i:(n.method=\"throw\",n.arg=new TypeError(\"iterator result is not an object\"),n.delegate=null,y)}function E(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function k(t){var e=t.completion||{};e.type=\"normal\",delete e.arg,t.completion=e}function S(t){this.tryEntries=[{tryLoc:\"root\"}],t.forEach(E,this),this.reset(!0)}function j(t){if(t){var n=t[i];if(n)return n.call(t);if(\"function\"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,s=function n(){for(;++o=0;--i){var s=this.tryEntries[i],a=s.completion;if(\"root\"===s.tryLoc)return o(\"end\");if(s.tryLoc<=this.prev){var c=r.call(s,\"catchLoc\"),u=r.call(s,\"finallyLoc\");if(c&&u){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,\"finallyLoc\")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),k(n),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if(\"throw\"===r.type){var o=r.arg;k(n)}return o}}throw new Error(\"illegal catch attempt\")},delegateYield:function(t,n,r){return this.delegate={iterator:j(t),resultName:n,nextLoc:r},\"next\"===this.method&&(this.arg=e),y}},t}(t.exports);try{regeneratorRuntime=e}catch(t){Function(\"r\",\"regeneratorRuntime = r\")(e)}}));var a=function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t};var c=function(t,n){return!n||\"object\"!==e(n)&&\"function\"!=typeof n?a(t):n},u=t((function(t){function e(n){return t.exports=e=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},e(n)}t.exports=e}));var h=function(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==(t=u(t)););return t},l=t((function(t){function e(n,r,o){return\"undefined\"!=typeof Reflect&&Reflect.get?t.exports=e=Reflect.get:t.exports=e=function(t,e,n){var r=h(t,e);if(r){var o=Object.getOwnPropertyDescriptor(r,e);return o.get?o.get.call(n):o.value}},e(n,r,o||n)}t.exports=e})),f=t((function(t){function e(n,r){return t.exports=e=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},e(n,r)}t.exports=e}));var p=function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&f(t,e)},y=function(t){function r(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:100*Math.random()|0;return n(this,r),(t=c(this,u(r).call(this))).id=\"BELLHOP:\".concat(e),t.connected=!1,t.isChild=!0,t.connecting=!1,t.debug=!1,t.origin=\"*\",t._sendLater=[],t.iframe=null,t.receive=t.receive.bind(a(t)),t}return p(r,i),o(r,[{key:\"receive\",value:function(t){if(this.target===t.source)if(this.logDebugMessage(!0,t),\"connected\"===t.data)this.onConnectionReceived(t.data);else{var n=t.data;if(\"string\"==typeof n)try{n=JSON.parse(n)}catch(t){console.warn(\"Bellhop error: \",t)}this.connected&&\"object\"===e(n)&&n.type&&this.trigger(n)}}},{key:\"onConnectionReceived\",value:function(t){if(this.connecting=!1,this.connected=!0,!this.isChild){if(!this.target)return;this.target.postMessage(t,this.origin)}for(var e=0;e1&&void 0!==arguments[1]?arguments[1]:\"*\";this.connecting||(this.disconnect(),this.connecting=!0,t instanceof HTMLIFrameElement&&(this.iframe=t),this.isChild=void 0===t,this.supported=!0,this.isChild&&(this.supported=window!=t),this.origin=e,window.addEventListener(\"message\",this.receive),this.isChild&&(window===this.target?this.trigger(\"failed\"):this.target.postMessage(\"connected\",this.origin)))}},{key:\"disconnect\",value:function(){this.connected=!1,this.connecting=!1,this.origin=null,this.iframe=null,this.isChild=!0,this._sendLater.length=0,window.removeEventListener(\"message\",this.receive)}},{key:\"send\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(\"string\"!=typeof t)throw\"The event type must be a string\";var n={type:t,data:e};this.logDebugMessage(!1,n),this.connecting?this._sendLater.push(n):this.target.postMessage(JSON.stringify(n),this.origin)}},{key:\"fetch\",value:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(!this.connecting&&!this.connected)throw\"No connection, please call connect() first\";var i=function t(r){o&&n.off(r.type,t),e(r)};this.on(t,i),this.send(t,r)}},{key:\"respond\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=this,o=function t(o){return s.async((function(i){for(;;)switch(i.prev=i.next){case 0:if(n&&r.off(o,t),\"function\"!=typeof e){i.next=10;break}return i.t0=r,i.t1=o.type,i.next=6,s.awrap(e());case 6:i.t2=i.sent,i.t0.send.call(i.t0,i.t1,i.t2),i.next=11;break;case 10:r.send(o.type,e);case 11:case\"end\":return i.stop()}}))};this.on(t,o)}},{key:\"logDebugMessage\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=arguments.length>1?arguments[1]:void 0;this.debug&&\"function\"==typeof this.debug?this.debug({isChild:this.isChild,received:t,message:e}):this.debug&&console.log(\"Bellhop Instance (\".concat(this.isChild?\"Child\":\"Parent\",\") \").concat(t?\"Receieved\":\"Sent\"),e)}},{key:\"destroy\",value:function(){l(u(r.prototype),\"destroy\",this).call(this),this.disconnect(),this._sendLater.length=0}},{key:\"target\",get:function(){return this.isChild?window.parent:this.iframe.contentWindow}}]),r}();export{y as Bellhop,i as BellhopEventDispatcher};\n//# sourceMappingURL=bellhop.js.map\n","/**\n * @typedef {import('./base-plugins/BasePlugin').BasePlugin} BasePlugin\n */\nimport { Bellhop } from 'bellhop-iframe';\n/**\n *\n *\n * @export\n * @class PluginManager\n */\nexport default class PluginManager {\n /**\n *Creates an instance of PluginManager.\n * @memberof PluginManager\n */\n constructor({ plugins = [] }) {\n this.client = new Bellhop();\n // @ts-ignore\n this.client.hidden = this.client.receive.bind(this.client);\n // @ts-ignore\n this.client.hiddenSend = this.client.send.bind(this.client);\n this.client.receive = function (event) {\n this.hidden(event);\n }.bind(this.client);\n this.client.send = function (event, data) {\n this.hiddenSend(event, data);\n }.bind(this.client);\n\n this.plugins = plugins;\n }\n\n /**\n *\n *\n * @returns\n * @memberof PluginManager\n */\n setupPlugins() {\n const preloads = [];\n for (let i = 0, l = this.plugins.length; i < l; i++) {\n if (!this.plugins[i].preload) {\n continue;\n }\n\n preloads.push(\n this.plugins[i].preload(this).catch(function preloadFail(error) {\n this.plugins[i].preloadFailed = true;\n console.warn(this.plugins[i].name, 'Preload Failed:', error);\n }.bind(this))\n );\n }\n\n // ~wait for all preloads to resolve\n return Promise.all(preloads).then(() => {\n // Remove plugins that fail to load.\n this.plugins = this.plugins.filter(\n plugin => plugin.preloadFailed !== true\n );\n\n //init\n this.plugins.forEach(plugin => {\n if (!plugin.init) {\n return;\n }\n\n plugin.init(this);\n });\n\n //start\n this.plugins.forEach(plugin => {\n if (!plugin.start) {\n return;\n }\n plugin.start(this);\n });\n });\n }\n\n /**\n * Registers a plugin to be used by PluginManagers, sorting it by priority order.\n * @param {BasePlugin} plugin The plugin to register.\n */\n uses(plugin) {\n this.plugins.push(plugin);\n }\n\n /**\n * Finds a plugin by name.\n * @param {string} name The name of the plugin.\n * @returns {BasePlugin}\n */\n getPlugin(name) {\n return this.plugins.find(function (plugin) {\n return plugin.name === name;\n });\n }\n}\n","import 'whatwg-fetch';\n\nimport { Features } from './Features';\nimport PluginManager from './PluginManager';\n// @ts-ignore\nimport { version } from '../package.json';\n\n/**\n * The application container\n * @class Container\n * @property {Bellhop} client Communication layer between the container and application\n * @property {boolean} loaded Check to see if a application is loaded\n * @property {boolean} loading Check to see if a application is loading\n * @property {object} release The current release data\n * @property {HTMLIFrameElement} iframe The DOM object for the iframe\n * @static @property {string} version The current version of the library\n */\nexport class Container extends PluginManager {\n /**\n *Creates an instance of Container.\n * @param {object} config\n * @param {string | HTMLIFrameElement} iframeOrSelector\n * @param {Array | null} [config.plugins]\n * @param {object | null} [config.context={}]\n * @memberof Container\n */\n constructor(iframeOrSelector, { plugins, context = {} } = {}) {\n super({ plugins });\n\n this.iframe = iframeOrSelector instanceof HTMLIFrameElement ? iframeOrSelector : document.querySelector(iframeOrSelector);\n\n if (null === this.iframe) {\n throw new Error('No iframe was found with the provided selector');\n }\n\n this.loaded = false;\n this.loading = false;\n this.release = null;\n\n // context object that plugins can pick up on\n this._context = context;\n\n this.onLoading = this.onLoading.bind(this);\n this.onLoadDone = this.onLoadDone.bind(this);\n this.onLoadDone = this.onLoadDone.bind(this);\n this.onEndGame = this.onEndGame.bind(this);\n this.onLocalError = this.onLocalError.bind(this);\n\n this.initClient();\n this.setupPlugins();\n }\n\n /**\n * The game is starting to load\n * @memberof Container\n */\n onLoading() {\n this.client.trigger('opening');\n }\n\n /**\n * Reset the mutes for audio and captions\n * @memberof Container\n */\n onLoadDone() {\n this.loading = false;\n this.loaded = true;\n this.iframe.classList.remove('loading');\n\n this.client.trigger('opened');\n }\n\n /**\n * The application ended and destroyed itself\n * @memberof Container\n */\n onEndGame() {\n this.reset();\n }\n /**\n * Handle the local errors\n * @method onLocalError\n * @private\n * @param {Event} $event Bellhop event\n */\n onLocalError($event) {\n console.error('SpringRoll Container error: ', $event, new Error().stack);\n }\n\n /**\n * Reset all the buttons back to their original setting\n * and clear the iframe.\n * @memberof Container\n */\n reset() {\n const wasLoaded = this.loaded || this.loading;\n\n if (wasLoaded) {\n this.client.trigger('closed');\n }\n\n // Reset state\n this.loaded = false;\n this.loading = false;\n\n // Clear the iframe src location\n this.iframe.setAttribute('src', '');\n this.iframe.classList.remove('loading');\n }\n\n /**\n * Set up communication layer between site and application.\n * May be called from subclasses if they create/destroy Bellhop instances.\n * @memberof Container\n */\n initClient() {\n //Handle bellhop events coming from the application\n this.client.on('loading', this.onLoading);\n this.client.on('loaded', this.onLoadDone);\n this.client.on('loadDone', this.onLoadDone);\n this.client.on('endGame', this.onEndGame);\n this.client.on('localError', this.onLocalError);\n // @ts-ignore\n this.client.connect(this.iframe);\n }\n\n /**\n * If there was an error when closing, reset the container\n * @memberof Container\n */\n _onCloseFailed() {\n this.reset(); // force close the app\n }\n\n /**\n * Open a application or path\n * @param {string} userPath The full path to the application to load\n * @param {object} [userOptions] The open options\n * @param {boolean} [userOptions.singlePlay=false] If we should play in single play mode\n * @param {object | null} [userOptions.playOptions=null] The optional play options\n * @memberof Container\n */\n _internalOpen(userPath, { singlePlay = false, playOptions = null } = {}) {\n const options = { singlePlay, playOptions };\n this.reset();\n\n this.loading = true;\n this.initClient();\n\n const err = Features.basic();\n if (err) {\n console.error('ERROR:', err);\n this.client.trigger('unsupported');\n }\n\n let path = userPath;\n if (null !== options.playOptions) {\n const playOptionsQueryString =\n 'playOptions=' +\n encodeURIComponent(JSON.stringify(options.playOptions));\n\n path =\n -1 === userPath.indexOf('?')\n ? `${userPath}?${playOptionsQueryString}`\n : `${userPath}&${playOptionsQueryString}`;\n }\n\n this.iframe.classList.add('loading');\n this.iframe.setAttribute('src', path);\n\n this.client.respond('singlePlay', singlePlay);\n this.client.respond('playOptions', playOptions);\n this.client.trigger('open');\n }\n\n /**\n *\n *\n * @param {string} path\n * @param {object} [options={}]\n * @memberof Container\n */\n openPath(path, options = {}) {\n // This should be deprecated, support for old function signature\n if ('object' !== typeof options) {\n console.warn(\n 'SpringRoll Container.openPath was passed a invalid options parameter. Using default parameters instead'\n );\n options = {};\n }\n\n this._internalOpen(\n path,\n Object.assign(\n {\n singlePlay: false,\n playOptions: {}\n },\n options\n )\n );\n }\n\n /**\n * Open application based on an API Call to SpringRoll Connect\n * @param {string} api\n * @param {object} options\n * @param {string} [options.query='']\n * @param {boolean} [options.singlePlay=false]\n * @param {null | object} [options.playOptions=null]\n * @returns {Promise}\n * @memberof Container\n */\n async openRemote(\n api,\n { query = '', singlePlay = false, playOptions = null } = {}\n ) {\n this.release = null;\n\n const response = await fetch(api, {\n headers: {\n 'Content-Type': 'application/json'\n }\n });\n\n const json = await response.json();\n\n // if SpringRollConnect denoted that something failed, send that error back\n if (!json.success) {\n throw new Error(json.error);\n }\n\n // If the browser doesn't support the capabilities requested by this game, also fail.\n const release = json.data;\n const error = Features.test(release.capabilities);\n if (error) {\n this.client.trigger('unsupported', { error });\n throw new Error(error);\n }\n\n // otherwise, open the game\n this.release = release;\n this._internalOpen(release.url + query, {\n singlePlay,\n playOptions\n });\n }\n\n /**\n * Destroy and don't use after this\n * @memberof Container\n */\n destroy() {\n this.reset();\n\n this.iframe = null;\n this.options = null;\n this.release = null;\n }\n\n /**\n * Tell the application to start closing\n * @memberof Container\n */\n close() {\n if (this.loading || this.loaded) {\n this.client.trigger('close');\n // Start the close\n this.client.send('close');\n } else {\n this.reset();\n }\n }\n\n /**\n * the current _context object\n * @readonly\n * @memberof Container\n * @return {object}\n */\n get context() {\n return this._context;\n }\n\n /**\n * sets _context object to new object\n * @param {object} context\n * @memberof Container\n */\n set context(newContext) {\n if (typeof newContext !== 'object') {\n console.error('[SpringRollContainer] Context: new context provided is not an object');\n return;\n }\n this._context = newContext;\n }\n\n\n\n /**\n * The current version of SpringRollContainer\n * @readonly\n * @static\n * @return {string}\n * @memberof Container\n */\n static get version() {\n return version;\n }\n}\n","/**\n * Handle the page visiblity change, if supported. Application uses one of these to\n * monitor page visibility. It is suggested that you listen to `pause`, `paused`,\n * or `resumed` events on the Application instead of using one of these yourself.\n *\n * @export\n * @class PageVisibility\n * @constructor\n * @param {Function} onFocus Callback when the page becomes visible\n * @param {Function} onBlur Callback when the page loses visibility\n */\nexport class PageVisibility {\n /**\n *Creates an instance of PageVisibility.\n * @param { function } [onFocus=function() {}]\n * @param { function } [onBlur=function() {}]\n * @memberof PageVisibility\n */\n constructor(onFocus = function() {}, onBlur = function() {}) {\n this._onFocus = onFocus;\n this._onBlur = onBlur;\n this.onFocus = function(e) {\n if (this.enabled) {\n this._onFocus(e);\n }\n }.bind(this);\n this.onBlur = function(e) {\n if (this.enabled) {\n this._onBlur(e);\n }\n }.bind(this);\n this._enabled = false;\n this.enabled = true;\n\n this.onToggle = this.onToggle.bind(this);\n }\n\n /**\n * Disable the detection\n * @memberof PageVisibility\n */\n destroy() {\n this.enabled = false;\n this.onToggle = null;\n this.onFocus = null;\n this.onBlur = null;\n }\n\n /**\n * The visibility toggle listener function\n * @param {Event} $event;\n * @memberof PageVisibility\n */\n onToggle($event) {\n if (this.enabled) {\n document.hidden ? this.onBlur($event) : this.onFocus($event);\n }\n }\n\n /**\n * If this object is enabled.\n * @returns {boolean}\n * @memberof PageVisibility\n */\n get enabled() {\n return this._enabled;\n }\n\n /**\n * Sets the state of the object\n * @memberof PageVisibility\n */\n set enabled(enable) {\n this._enabled = enable;\n\n document.removeEventListener('visibilitychange', this.onToggle, false);\n window.removeEventListener('blur', this.onBlur, false);\n window.removeEventListener('focus', this.onFocus, false);\n window.removeEventListener('pagehide', this.onBlur, false);\n window.removeEventListener('pageshow', this.onFocus, false);\n window.removeEventListener('visibilitychange', this.onToggle, false);\n\n if (this._enabled) {\n document.addEventListener('visibilitychange', this.onToggle, false);\n window.addEventListener('blur', this.onBlur, false);\n window.addEventListener('focus', this.onFocus, false);\n window.addEventListener('pagehide', this.onBlur, false);\n window.addEventListener('pageshow', this.onFocus, false);\n window.addEventListener('visibilitychange', this.onToggle, false);\n }\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar fails = require('../internals/fails');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// FF99+ bug\nvar BROKEN_ON_SPARSE = fails(function () {\n // eslint-disable-next-line es/no-array-prototype-includes -- detection\n return !Array(1).includes();\n});\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar whitespaces = require('../internals/whitespaces');\n\nvar replace = uncurryThis(''.replace);\nvar ltrim = RegExp('^[' + whitespaces + ']+');\nvar rtrim = RegExp('(^|[^' + whitespaces + '])[' + whitespaces + ']+$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = toString(requireObjectCoercible($this));\n if (TYPE & 1) string = replace(string, ltrim, '');\n if (TYPE & 2) string = replace(string, rtrim, '$1');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","var PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]()\n || non[METHOD_NAME]() !== non\n || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME);\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","var call = require('../internals/function-call');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar regExpFlags = require('../internals/regexp-flags');\n\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (R) {\n var flags = R.flags;\n return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R)\n ? call(regExpFlags, R) : flags;\n};\n","'use strict';\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar defineBuiltIn = require('../internals/define-built-in');\nvar anObject = require('../internals/an-object');\nvar $toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = PROPER_FUNCTION_NAME && nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n defineBuiltIn(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var pattern = $toString(R.source);\n var flags = $toString(getRegExpFlags(R));\n return '/' + pattern + '/' + flags;\n }, { unsafe: true });\n}\n","/**\n * The SavedData functions use localStorage and sessionStorage, with a cookie fallback.\n *\n * @class SavedData\n */\nexport class SavedData {\n\n /**\n * Constructor for IndexedDB work\n */\n constructor(dbName = '') {\n this.db = null;\n this.dbName = dbName;\n }\n /**\n * Remove a saved variable by name.\n * @method remove\n * @static\n * @param {String} name The name of the value to remove\n */\n static remove(name) {\n localStorage.removeItem(name);\n sessionStorage.removeItem(name);\n }\n\n /**\n * Save a variable.\n * @method write\n * @static\n * @param {string} name The name of the value to save\n * @param {string} value The value to save. This will be run through JSON.stringify().\n * @param {boolean} [tempOnly=false] If the value should be saved only in the current browser session.\n */\n static write(name, value, tempOnly = false) {\n\n return tempOnly\n ? sessionStorage.setItem(\n name,\n JSON.stringify('function' === typeof value ? value() : value)\n )\n : localStorage.setItem(\n name,\n JSON.stringify('function' === typeof value ? value() : value)\n );\n }\n\n /**\n * Read the value of a saved variable\n * @method read\n * @static\n * @param {String} name The name of the variable\n * @return {*} The value (run through `JSON.parse()`) or null if it doesn't exist\n */\n static read(name) {\n const value = localStorage.getItem(name) || sessionStorage.getItem(name);\n\n if ('string' === typeof value) {\n try {\n return JSON.parse(value);\n } catch (err) {\n return value;\n }\n } else {\n return value;\n }\n }\n\n /**\n * Open a connection with the IDB Database and optionally add or delete\n * Indexes and stores\n *\n * @param {string} dbName The name of your IndexedDB database\n * @param {string} dbVersion The version number of the database. Additions and deletions will be ignored if lower than current version number\n * @param {JSON} additions Any additions to the structure of the database\n * @param {array} additions.stores Any stores to be added into the database syntax: {storeName: '[name]', options: {[optionally add options]}}\n * @param {array} additions.indexes Any Indexes to be added to the database syntax: {storeName: '[name]', options: {[optionally add options]}}\n */\n IDBOpen( dbName, dbVersion = null, additions = {}, deletions = {}, callback ) {\n const request = dbVersion ? indexedDB.open(dbName, dbVersion) : indexedDB.open(dbName);\n\n request.onsuccess = e => {\n // Database successfully opened. This will run along with onupgradeneeded\n this.db = e.target.result;\n\n if (this.db.version == dbVersion | dbVersion == null) {\n callback({result: 'Success: IDBOpen', success: true});\n }\n };\n\n request.onerror = () => {\n callback({result: request.error.toString(), success: false});\n };\n\n // on upgrade needed fires only if the dbVersion is higher than the current version number\n request.onupgradeneeded = e => {\n // Ensure the proper database object is stored\n this.db = e.target.result;\n\n if (additions != null) {\n if (additions.stores) {\n additions.stores.forEach(store => {\n this.db.createObjectStore(store.storeName, store.options);\n });\n }\n if (additions.indexes != null) {\n additions.indexes.forEach(index => {\n // Add indexes last to avoid adding an index to a store that has yet to be created\n // Open a transaction returning a store object\n const storeObject = request.transaction.objectStore(index.storeName);\n storeObject.createIndex(index.indexName, index.keyPath, index.options);\n });\n }\n }\n\n if (deletions != null) {\n if (deletions.indexes != null) {\n // delete indexes first to avoid deleting an index to a store that has already to been deleted\n deletions.indexes.forEach((index) => {\n // Open a transaction returning a store object\n const storeObject = request.transaction.objectStore(index.storeName);\n storeObject.deleteIndex(index.indexName);\n });\n }\n if (deletions.stores) {\n deletions.stores.forEach((store) => {\n this.db.deleteObjectStore(store.storeName);\n });\n }\n }\n callback({result: 'Success: IDBOpen onupgradeneeded ran', success: true});\n };\n }\n\n /**\n * Delete a database and all records, stores, and indexes associated\n * @param {string} dbName Name of the database to delete\n * @param {object} options Optionally pass in options\n * @param {function} callback The callback to be run on success or error. One value will be passed into this function\n */\n IDBDeleteDB(dbName, options = null, callback = {}) {\n const request = options != null ? indexedDB.deleteDatabase(dbName, options): indexedDB.deleteDatabase(dbName);\n\n request.onsuccess = (e) => {\n callback({result: 'Success: Database Deleted, returned: ' + e.result, success: true});\n };\n request.onerror = () => {\n callback({result: request.error.toString(), success: false});\n };\n\n\n }\n\n /**\n * Add a record to a given store\n * @param {string} storeName The name of the store from which the record will be updated\n * @param {string} key the key of the record to be updated\n * @param {string} value The value for the record with the given key to be updated\n * @param {function} callback The method to call on success or failure. A single value will be passed in\n */\n IDBAdd(storeName, value, key, callback) {\n if ( !this.db && this.dbName != '') {\n this.IDBOpen(this.dbName);\n }\n\n const tx = this.db.transaction(storeName, 'readwrite');\n tx.onerror = () => callback({result: tx.error != null ? tx.error.toString() : 'Aborted: No error given, was the record already added?', success: false});\n tx.onabort = () => callback({result: tx.error != null ? tx.error.toString() : 'Aborted: No error given, was the record already added?', success: false});\n\n tx.oncomplete = () => callback({result: 'Success: Record Added', success: true});\n const store = tx.objectStore(storeName);\n store.add(value, key);\n }\n\n /**\n * Update a record in a given store\n * @param {string} storeName The name of the store from which the record will be updated\n * @param {string} key the key of the record to be updated\n * @param {string | object} value The altered object to be updated from the given store\n * @param {function} callback The method to call on success or failure. A single value will be passed in\n */\n IDBUpdate (storeName, key, value, callback) {\n if ( !this.db && this.dbName != '') {\n this.IDBOpen(this.dbName);\n }\n\n const tx = this.db.transaction(storeName, 'readwrite');\n const store = tx.objectStore(storeName);\n\n const updateRequest = store.put(value, key);\n\n updateRequest.onsuccess = () => {\n callback({result: 'Success: Record Updated', success: true});\n };\n\n updateRequest.onerror = () => callback({result: updateRequest.error.toString(), success: false});\n }\n\n /**\n * Delete a given record within a given store\n * @param {string} storeName The name of the store from which the record will be removed\n * @param {string} key the key of the record to be removed\n * @param {function} callback The method to call on success or failure. A single value will be passed in\n */\n IDBRemove(storeName, key, callback) {\n if ( !this.db && this.dbName != '') {\n this.IDBOpen(this.dbName);\n }\n\n const tx = this.db.transaction(storeName, 'readwrite');\n tx.onerror = () => callback({result: this.db.error.toString(), success: false});\n const store = tx.objectStore(storeName);\n store.delete(key);\n\n tx.oncomplete = () => callback({result: 'Removed Successfully', success: true});\n\n }\n\n /**\n * Return a record from a given store with a given key\n * @param {string} storeName the name of the store to read from\n * @param {string} key The key for the record in the given store\n * @param {function} callback The method to call on success or failure. A single value will be passed in\n */\n IDBRead(storeName, key, callback) {\n // Open transaction with a store\n const tx = this.db.transaction(storeName, 'readonly');\n // Get the store object from the transaction\n const store = tx.objectStore(storeName);\n\n tx.onerror = () => callback({result: this.db.error.toString(), success: false});\n\n const readRequest = store.get(key);\n\n readRequest.onsuccess = () => {\n callback({result: readRequest.result, success: readRequest.result != undefined ? true : false});\n };\n\n }\n\n /**\n * Get all keys with given index\n * @param {string} storeName the name of the store to be read from\n * @param {string} indexName the name of the index to be read from\n * @param {string} query Optionally give a keyRange of records to return\n * @param {string} count Optionally give a max limit on records to be returned\n * @param {function} callback The method to call on success or failure. A single value will be passed in as a parameter\n */\n IDBGetIndexKeys (storeName, indexName, query = null, count = null, callback = {}) {\n // Open transaction with a store\n const tx = this.db.transaction(storeName, 'readonly');\n // Get the store object from the transaction\n const store = tx.objectStore(storeName);\n\n let index;\n\n tx.onerror = () => callback({result: this.db.error.toString(), success: false});\n\n if (query && count) {\n index = store.index(indexName, query, count);\n } else if (query) {\n index = store.index(indexName, query);\n } else {\n index = store.index(indexName);\n }\n\n const getAllKeysRequest = index.getAllKeys();\n\n\n getAllKeysRequest.onsuccess = function(e) {\n callback({result : e.result, success: true});\n };\n }\n\n /**\n * Get all records from a store\n * @param {string} storeName The store to get all records from\n * @param {integer} count Optionally the count of records to return\n * @param {function} callback The method to call on success or failure. A single value will be passed in\n */\n IDBReadAll(storeName, count, callback) {\n // Open transaction with a store\n const tx = this.db.transaction(storeName, 'readonly');\n // Get the store object from the transaction\n const store = tx.objectStore(storeName);\n\n const readRequest = count != null ? store.getAll(null, count) : store.getAll();\n\n // const readRequest = store.getAll();\n\n tx.onerror = () => callback({result: tx.error.toString(), success: false});\n\n\n readRequest.onsuccess = () => {\n callback({result: readRequest.result, success: readRequest.result != undefined ? true : false});\n };\n }\n\n /**\n * Get the version number of a given database. This will create a database if it doesn't exist.\n * Do not call this after opening a connection with the database\n * @param {string} dbName The name of the database for which the version will be returned\n * @param {function} callback The method to call on success or failure. A single value will be passed in\n */\n IDBGetVersion(dbName, callback) {\n // Open the database\n const dBOpenRequest = window.indexedDB.open(dbName);\n\n // these two event handlers act on the database\n // being opened. successfully, or not\n dBOpenRequest.onerror = function() {\n callback({result: dBOpenRequest.error.toString(), success: false});\n };\n\n dBOpenRequest.onsuccess = function() {\n const db = dBOpenRequest.result;\n callback({result: db.version, success: true});\n };\n }\n\n /**\n * Closes the connection to the database if open\n * @param {function} callback The method to call on success or failure. A single value will be passed in\n */\n IDBClose(callback) {\n if ( this.db ) {\n this.db.close();\n callback({result: 'Success: Closed Database Connection', success: true});\n }\n }\n\n}\n","/* eslint-disable no-unused-vars */\nimport { SavedData } from '../SavedData';\nimport { Container } from '../Container';\n\n/**\n *\n *\n * @export\n * @class BasePlugin\n * @property {Bellhop} client\n * @property {string} name\n */\nexport class BasePlugin {\n /**\n *Creates an instance of BasePlugin.\n * @param {string} name\n * @memberof BasePlugin\n */\n constructor(name) {\n this.name = name;\n this.client = null;\n }\n\n /**\n *\n * @param {Container} [container]\n * @memberof BasePlugin\n * @returns {Promise}\n */\n async preload({ client }) {\n this.client = client;\n }\n\n /**\n *\n * @memberof BasePlugin\n */\n start() {\n this.client.on('loaded', this.sendAllProperties);\n this.client.on('loadDone', this.sendAllProperties);\n }\n\n /**\n *\n * @param {Container} [_]\n * @memberof BasePlugin\n */\n init(_) { }\n\n /**\n *\n *\n * @param {string} prop\n * @param {any} value\n * @param {Boolean} disableSend\n * @memberof BasePlugin\n */\n sendProperty(prop, value, disableSend = false) {\n SavedData.write(prop, value);\n if (disableSend) { return; }\n this.client.send(prop, value);\n }\n\n\n /**\n *\n * @param {Container} [_]\n * @memberof BasePlugin\n */\n sendAllProperties(_) { }\n\n /**\n *\n * @param {string} warningText\n * @memberof BasePlugin\n */\n warn(warningText) {\n console.warn(`[SpringRollContainer] ${this.name}: ${warningText}`);\n }\n}\n","/* eslint-disable no-unused-vars */\nimport { BasePlugin } from './BasePlugin';\nimport { Container } from '../Container';\n\n/**\n *\n *\n * @export\n * @class ButtonPlugin\n * @extends {BasePlugin}\n */\nexport class ButtonPlugin extends BasePlugin {\n /**\n *Creates an instance of ButtonPlugin.\n * @param {string} name\n *\n * @memberof ButtonPlugin\n */\n constructor(name) {\n super(name);\n this.sendMutes = false;\n }\n\n /**\n * @memberof ButtonPlugin\n * @param {Container} [container]\n */\n init(container) {\n // eslint-disable-line no-unused-vars\n this.sendMutes = true;\n }\n\n /**\n *\n * Applies the disabled class to the provided element\n * @param {HTMLButtonElement | Element} button\n * @memberof ButtonPlugin\n */\n _disableButton(button) {\n if (button instanceof HTMLButtonElement) {\n button.classList.remove('enabled');\n button.classList.add('disabled');\n }\n }\n\n /**\n *\n *\n * @memberof ButtonPlugin\n */\n reset() {\n this.sendMutes = false;\n }\n\n /**\n *\n *\n * @param {string} prop\n * @param {Element} button\n * @param {Boolean} muted\n * @param {Boolean} disableSend\n * @memberof ButtonPlugin\n */\n _setMuteProp(prop, button, muted, disableSend = false) {\n console.log('_setmuteprop', prop, muted, disableSend);\n if (Array.isArray(button)) {\n button.forEach(b => this.changeMutedState(b, muted));\n } else {\n this.changeMutedState(button, muted);\n }\n\n this.sendProperty(prop, muted, disableSend);\n }\n\n /**\n *\n *\n * @param {Element} button\n * @param {Boolean} muted\n * @returns\n * @memberof ButtonPlugin\n */\n changeMutedState(button, muted = false) {\n //most times button will be a Button class rather than an HTMLElement\n //But just in case the Button ui-element is not being used\n const htmlButton = button.button ? button.button : button;\n\n if (!(htmlButton instanceof HTMLElement)) {\n return;\n }\n\n htmlButton.classList.remove('unmuted');\n htmlButton.classList.remove('muted');\n htmlButton.classList.add(muted ? 'muted' : 'unmuted');\n }\n}\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","var isRegExp = require('../internals/is-regexp');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw $TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\nvar stringIndexOf = uncurryThis(''.indexOf);\n\n// `String.prototype.includes` method\n// https://tc39.es/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~stringIndexOf(\n toString(requireObjectCoercible(this)),\n toString(notARegExp(searchString)),\n arguments.length > 1 ? arguments[1] : undefined\n );\n }\n});\n","var toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\n\nvar $Array = Array;\nvar max = Math.max;\n\nmodule.exports = function (O, start, end) {\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = $Array(max(fin - k, 0));\n for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n};\n","/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice-simple');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return arraySlice(windowNames);\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) == 'Window'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","// FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it\nvar fails = require('../internals/fails');\n\nmodule.exports = fails(function () {\n if (typeof ArrayBuffer == 'function') {\n var buffer = new ArrayBuffer(8);\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-defineproperty -- safe\n if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 });\n }\n});\n","var fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar $isExtensible = Object.isExtensible;\nvar FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); });\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\nmodule.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) {\n if (!isObject(it)) return false;\n if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) == 'ArrayBuffer') return false;\n return $isExtensible ? $isExtensible(it) : true;\n} : $isExtensible;\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","var $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternalModule = require('../internals/object-get-own-property-names-external');\nvar isExtensible = require('../internals/object-is-extensible');\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar REQUIRED = false;\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + id++, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar enable = function () {\n meta.enable = function () { /* empty */ };\n REQUIRED = true;\n var getOwnPropertyNames = getOwnPropertyNamesModule.f;\n var splice = uncurryThis([].splice);\n var test = {};\n test[METADATA] = 1;\n\n // prevent exposing of metadata key\n if (getOwnPropertyNames(test).length) {\n getOwnPropertyNamesModule.f = function (it) {\n var result = getOwnPropertyNames(it);\n for (var i = 0, length = result.length; i < length; i++) {\n if (result[i] === METADATA) {\n splice(result, i, 1);\n break;\n }\n } return result;\n };\n\n $({ target: 'Object', stat: true, forced: true }, {\n getOwnPropertyNames: getOwnPropertyNamesExternalModule.f\n });\n }\n};\n\nvar meta = module.exports = {\n enable: enable,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","var isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]);\n defineBuiltIn(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n uncurriedNativeMethod(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n uncurriedNativeMethod(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.enable();\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, NativePrototype);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, constructor: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","var defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) defineBuiltIn(target, key, src[key], options);\n return target;\n};\n","'use strict';\nvar create = require('../internals/object-create');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n defineBuiltIns(Prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n defineBuiltIns(Prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineBuiltInAccessor(Prototype, 'size', {\n configurable: true,\n get: function () {\n return getInternalState(this).size;\n }\n });\n return Constructor;\n },\n setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n // return step by kind\n if (kind == 'keys') return createIterResultObject(entry.key, false);\n if (kind == 'values') return createIterResultObject(entry.value, false);\n return createIterResultObject([entry.key, entry.value], false);\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Set` constructor\n// https://tc39.es/ecma262/#sec-set-objects\ncollection('Set', function (init) {\n return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","var $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n keys: function keys(it) {\n return nativeKeys(toObject(it));\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n\n// `Array.prototype.map` method\n// https://tc39.es/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\nvar propertyIsEnumerable = uncurryThis($propertyIsEnumerable);\nvar push = uncurryThis([].push);\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || propertyIsEnumerable(O, key)) {\n push(result, TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.es/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.es/ecma262/#sec-object.values\n values: createMethod(false)\n};\n","var $ = require('../internals/export');\nvar $values = require('../internals/object-to-array').values;\n\n// `Object.values` method\n// https://tc39.es/ecma262/#sec-object.values\n$({ target: 'Object', stat: true }, {\n values: function values(O) {\n return $values(O);\n }\n});\n","import { BasePlugin } from '../base-plugins/BasePlugin';\n\n/**\n * @export\n * @class RadioGroup\n * @property {string} controlName\n * @property {string} featureName\n * @property {string} radioElements\n * @property {string} defaultValue\n */\nexport class RadioGroup extends BasePlugin {\n /**\n * creates an instance of RadioGroup\n * @constructor\n * @param {string} selector selector string for the radio group\n * @param {string} controlName the name of the control (used for warning logging only)\n * @param {string} [featureName='captionStyles'] the feature name used by Springroll. Defaults to captionStyles\n * @param {string} defaultValue the value attribute of the radio button that should be selected by default\n * @param {string} pluginName name of the plugin that instantiated the RadioGroup. Used for logging warnings\n * @memberof RadioGroupPlugin\n */\n constructor({selector, controlName, featureName = 'captionStyles', defaultValue, pluginName}) {\n super(pluginName);\n this.controlName = controlName;\n this.featureName = featureName;\n this.radioElements = document.querySelectorAll(selector);\n this.defaultValue = defaultValue;\n\n this.radioGroup = {};\n\n if (this.radioElements.length <= 0) {\n this.warn(`${this.controlName} RadioGroup found no HTMLElements with selector: ${selector}`);\n return;\n }\n\n this.radioElements.forEach(radio => {\n if (radio.type !== 'radio') {\n this.warn(`${this.controlName} was provided a non Radio Button element with selector: ${selector}`);\n return;\n }\n radio.value = radio.value.toLowerCase();\n\n this.radioGroup[radio.value] = radio;\n });\n\n if (!this.radioGroup[this.defaultValue]) {\n this.warn(`${this.controlName} RadioGroup for selector: ${selector} does not have a radio button with value ${this.defaultValue} to use as default value. Using first element as default`);\n this.defaultValue = this.radioElements[0].value.toLowerCase();\n }\n\n this.radioGroup[this.defaultValue].checked = true;\n }\n\n /**\n * @param {string[]} valuesArray Array of acceptable values to check against the radio group.\n * @return {boolean}\n * @memberof RadioGroup\n */\n hasOnly(valuesArray) {\n\n for (const key in this.radioGroup) {\n if (!valuesArray.includes(this.radioGroup[key].value)) {\n this.warn(`${this.controlName} radio button value: ${this.radioGroup[key].value} is not an accepted value. Skipping radio group`);\n return false;\n }\n }\n\n return true;\n }\n\n /**\n * @return {boolean}\n * @memberof RadioGroup\n */\n hasDuplicateValues() {\n return this.values.length !== [...new Set(this.values)].length;\n }\n\n /**\n * Adds change listeners to the radio buttons using the given callback function\n * @memberof RadioGroup\n * @param {Function} callBack event to fire on change\n */\n enableRadioEvents(callBack) {\n if (!this.radioGroup.length <= 0) {\n return;\n }\n\n const event = callBack;\n for (const radio in this.radioGroup) {\n this.radioGroup[radio].addEventListener('change', event);\n }\n }\n\n /**\n * removes the event listeners from the RadioGroup\n * @memberof RadioGroup\n * @param {Function} callBack event to fire on change\n */\n disableRadioEvents(callBack) {\n if (!this.radioGroup.length <= 0) {\n return;\n }\n for (const radio in this.radioGroup) {\n this.radioGroup[radio].removeEventListener('change', callBack);\n }\n }\n\n /**\n * enables display of the Radio buttons if the correct feature is present in the features list\n * @memberof RadioGroup\n * @param {object} data Object containing which features are enabled\n */\n displayRadios(data) {\n if (this.radioGroup.length <= 0 && data[this.featureName]) {\n this.warn(`${this.controlName} was not provided a valid input element or selector but '${this.featureName}' was included as a game feature`);\n return;\n }\n\n if (this.radioGroup.length <= 0) {\n return;\n }\n\n if (data[this.featureName]) {\n return;\n }\n\n for (const radio in this.radioGroup) {\n this.radioGroup[radio].style.display = 'none';\n }\n }\n\n /**\n * Reset the radio button states\n * @memberof RadioGroup\n */\n resetState() {\n this.radioGroup[this.defaultValue].checked = true;\n }\n\n /**\n * @readonly\n * @returns {number}\n * @memberof RadioGroup\n */\n get length() {\n return Object.keys(this.radioGroup).length;\n }\n\n /**\n * @readonly\n * @returns {number}\n * @memberof RadioGroup\n */\n get values() {\n return Object.values(this.radioGroup).map(radio => radio.value);\n }\n}\n","import { BasePlugin } from './BasePlugin';\nimport { RadioGroup } from '../ui-elements/RadioGroup';\n\n/**\n *\n *\n * @export\n * @class RadioGroupPlugin\n */\nexport class RadioGroupPlugin extends BasePlugin {\n /**\n *\n *Creates an instance of RadioGroupPlugin.\n * @constructor\n * @memberof RadioGroupPlugin\n * @param {string} name\n */\n constructor(cssSelector, name, {supportedValues, initialValue, controlName, featureName, radioCount}) {\n super(name);\n this.selectors = cssSelector ? cssSelector.split(',') : [];\n this.supportedValues = supportedValues;\n this.initialValue = supportedValues.includes(initialValue) ? initialValue : supportedValues[0];\n this.controlName = controlName;\n this.featureName = featureName;\n this.radioCount = radioCount;\n this.sendAllProperties = this.sendAllProperties.bind(this);\n\n this._currentValue = this.initialValue;\n\n this.radioGroups = this.setUpRadios(this.selectors);\n\n this.radioGroupsLength = this.radioGroups.length;\n }\n\n /**\n * @memberof RadioGroupPlugin\n * @param {string[]} selectors the separated selector strings used to target the radio button groups\n * @returns {RadioGroup[]}\n */\n setUpRadios(selectors) {\n const radioGroups = [];\n\n selectors.forEach((selector) => {\n const radioGroup = new RadioGroup({\n selector: selector.trim(),\n controlName: this.controlName,\n defaultValue: this.initialValue,\n pluginName: this.name,\n featureName: this.featureName\n });\n\n if (radioGroup.length !== this.radioCount) {\n this.warn(`Selector \"${selector}\" did not find exactly ${this.radioCount} radio buttons for ${this.controlName}. Skipping selector`);\n return;\n }\n\n if (!radioGroup.hasOnly(this.supportedValues)) {\n return;\n }\n\n if (radioGroup.hasDuplicateValues()) {\n this.warn(`Duplicate radio button values detected (values: ${radioGroup.values} ). Skipping radio group`);\n return;\n }\n\n radioGroups.push(radioGroup);\n });\n\n return radioGroups;\n }\n\n /**\n * @memberof RadioGroupPlugin\n */\n start() {\n this.client.on('loaded', this.sendAllProperties);\n this.client.on('loadDone', this.sendAllProperties);\n }\n\n /**\n *\n * Sends initial caption properties to the application\n * @memberof RadioGroupPlugin\n */\n sendAllProperties() {\n this.sendProperty(this.featureName, this.property);\n }\n\n /**\n * @memberof RadioGroupPlugin\n * @param {string} newValue\n */\n set currentValue(newValue) {\n if (!this.supportedValues.includes(newValue)) {\n return;\n }\n\n this._currentValue = newValue;\n\n for (let i = 0, l = this.radioGroups.length; i < l; i++) {\n this.radioGroups[i].radioGroup[newValue].checked = true;\n }\n }\n\n /**\n * @memberof RadioGroupPlugin\n * @return {string}\n */\n get currentValue() {\n return this._currentValue;\n }\n\n}\n","var uncurryThis = require('../internals/function-uncurry-this');\n\n// `thisNumberValue` abstract operation\n// https://tc39.es/ecma262/#sec-thisnumbervalue\nmodule.exports = uncurryThis(1.0.valueOf);\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar path = require('../internals/path');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar hasOwn = require('../internals/has-own-property');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isSymbol = require('../internals/is-symbol');\nvar toPrimitive = require('../internals/to-primitive');\nvar fails = require('../internals/fails');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar thisNumberValue = require('../internals/this-number-value');\nvar trim = require('../internals/string-trim').trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = global[NUMBER];\nvar PureNumberNamespace = path[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\nvar TypeError = global.TypeError;\nvar stringSlice = uncurryThis(''.slice);\nvar charCodeAt = uncurryThis(''.charCodeAt);\n\n// `ToNumeric` abstract operation\n// https://tc39.es/ecma262/#sec-tonumeric\nvar toNumeric = function (value) {\n var primValue = toPrimitive(value, 'number');\n return typeof primValue == 'bigint' ? primValue : toNumber(primValue);\n};\n\n// `ToNumber` abstract operation\n// https://tc39.es/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, 'number');\n var first, third, radix, maxCode, digits, length, index, code;\n if (isSymbol(it)) throw TypeError('Cannot convert a Symbol value to a number');\n if (typeof it == 'string' && it.length > 2) {\n it = trim(it);\n first = charCodeAt(it, 0);\n if (first === 43 || first === 45) {\n third = charCodeAt(it, 2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (charCodeAt(it, 1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i\n default: return +it;\n }\n digits = stringSlice(it, 2);\n length = digits.length;\n for (index = 0; index < length; index++) {\n code = charCodeAt(digits, index);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\nvar FORCED = isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'));\n\nvar calledWithNew = function (dummy) {\n // includes check on 1..constructor(foo) case\n return isPrototypeOf(NumberPrototype, dummy) && fails(function () { thisNumberValue(dummy); });\n};\n\n// `Number` constructor\n// https://tc39.es/ecma262/#sec-number-constructor\nvar NumberWrapper = function Number(value) {\n var n = arguments.length < 1 ? 0 : NativeNumber(toNumeric(value));\n return calledWithNew(this) ? inheritIfRequired(Object(n), this, NumberWrapper) : n;\n};\n\nNumberWrapper.prototype = NumberPrototype;\nif (FORCED && !IS_PURE) NumberPrototype.constructor = NumberWrapper;\n\n$({ global: true, constructor: true, wrap: true, forced: FORCED }, {\n Number: NumberWrapper\n});\n\n// Use `internal/copy-constructor-properties` helper in `core-js@4`\nvar copyConstructorProperties = function (target, source) {\n for (var keys = DESCRIPTORS ? getOwnPropertyNames(source) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES2015 (in case, if modules with ES2015 Number statics required before):\n 'EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,' +\n // ESNext\n 'fromString,range'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (hasOwn(source, key = keys[j]) && !hasOwn(target, key)) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n\nif (IS_PURE && PureNumberNamespace) copyConstructorProperties(path[NUMBER], PureNumberNamespace);\nif (FORCED || IS_PURE) copyConstructorProperties(path[NUMBER], NativeNumber);\n","import { SavedData } from '../SavedData';\n\n/**\n * @export\n * @class Slider\n */\nexport class Slider {\n /**\n *Creates an instance of Slider\n * @param {object} params\n * @param {string | HTMLInputElement} params.slider the slider element or a selector string\n * @param {string} params.control the feature that this slider controols\n * @param {number} [min=0] slider min value\n * @param {number} [max=1] slider max value\n * @param {number} [step=0.1] slider step value\n * @param {number} [defaultValue=1] slider starting value\n * @memberof SliderPlugin\n */\n constructor({\n slider,\n control,\n min = 0,\n max = 1,\n step = 0.1,\n defaultValue = 1\n }) {\n this.min = min;\n this.max = max;\n this.step = step;\n this.sliderValue = defaultValue;\n this.control = control;\n this.slider = this.setUpSlider(slider, control);\n }\n\n /**\n * @param {string | HTMLInputElement | HTMLElement} slider\n * @param {string} control The control element (sensitivity, difficulty, pointer size, etc) this slider will be controlling\n * @returns {Element | HTMLElement}\n * @memberof Slider\n */\n setUpSlider(slider, control) {\n if ('string' === typeof slider) {\n slider = document.querySelector(slider);\n }\n\n if (!slider || 'range' !== slider.type) {\n return null;\n }\n const value = SavedData.read(control);\n\n slider.min = this.min;\n slider.max = this.max;\n slider.step = this.step;\n\n if ((value || value === 0) && value.toString().trim().length > 0) {\n slider.value = value;\n this.sliderValue = value;\n } else {\n slider.value = this.sliderValue;\n }\n\n return slider;\n }\n\n /**\n * Controls the range of the slider\n * @param {number} i\n * @returns\n * @memberof Slider\n */\n sliderRange(i) {\n if (i < this.min) {\n return this.min;\n } else if (i > this.max) {\n return this.max;\n } else {\n return i;\n }\n }\n\n /**\n * Adds change and input listeners to the slider using the given callback function\n * @memberof Slider\n * @param {Function} callBack event to fire on change or input\n */\n enableSliderEvents(callBack) {\n if (!this.slider) {\n return;\n }\n\n const event = callBack;\n this.slider.addEventListener('change', event);\n this.slider.addEventListener('input', event);\n }\n\n /**\n * removes the event listeners from the given slider.\n * @memberof Slider\n * @param {Function} callBack event to fire on change or input\n */\n disableSliderEvents(callBack) {\n if (!this.slider) {\n return;\n }\n const event = callBack;\n this.slider.removeEventListener('change', event);\n this.slider.removeEventListener('input', event);\n }\n /**\n * enables display of the Slider if it is present in the features list\n * @memberof Slider\n * @param {object} data Object containing which features are enabled\n */\n displaySlider(data) {\n if (!this.slider && data[this.control]) {\n console.warn(`${this.control} was not provided a valid input element or selector but was included as a game feature`);\n }\n\n if (!this.slider) {\n return;\n }\n\n this.slider.style.display = data[this.control] ? '' : 'none';\n }\n\n /**\n * @param {Event} event the event to be fired on the slider\n * @memberof Slider\n */\n dispatchEvent(event) {\n this.slider.dispatchEvent(event);\n }\n\n /**\n * @readonly\n * @returns {string}\n * @memberof Slider\n */\n get value() {\n return this.slider.value;\n }\n\n /**\n * @memberof Slider\n */\n set value(value) {\n this.slider.value = value;\n }\n}\n","/**\n * @export\n * @class Button\n */\nexport class Button {\n /**\n *Creates an instance of Button\n * @param {object} params\n * @param {string | HTMLElement} params.button the button itself or a selector string\n * @param {Function} params.onClick the function to call when the button is clicked\n * @param {string} channel the feature this button controls\n * @memberof ButtonPlugin\n */\n constructor({ button, onClick, channel }) {\n this.button =\n button instanceof HTMLElement ? button : document.querySelector(button);\n this.onClick = onClick;\n this.channel = channel;\n\n if (this.button) {\n this.button.addEventListener('click', onClick);\n }\n }\n\n /**\n * enables display of the button if it is present in the features list\n * @memberof Button\n * @param {object} data Object containing which features are enabled\n */\n displayButton(data) {\n if (!(this.button instanceof HTMLElement)) {\n return;\n }\n\n this.button.style.display =\n data[this.channel] || this.channel === 'pause' || this.channel === 'hints'\n ? ''\n : 'none';\n }\n\n /**\n * enables display of the button\n * @memberof Button\n */\n enableButton() {\n if (!this.button) {\n return;\n }\n this.button.classList.remove('disabled');\n }\n\n /**\n * \n * @param {string} className The classname to be appended to the end of the class property\n */\n addClass(className) {\n this.button.className = this.button.className ? this.button.className + ` ${ className }` : ` ${ className }`;\n }\n}\n","import { BasePlugin } from './BasePlugin';\nimport { Slider } from '../ui-elements';\n\n/**\n *\n *\n * @export\n * @class SliderPlugin\n */\nexport class SliderPlugin extends BasePlugin {\n /**\n *\n *Creates an instance of SliderPlugin.\n * @constructor\n * @memberof SliderPlugin\n * @param {string} cssSelector\n * @param {string} name\n * @param {object} options\n * @param {string | number} [options.defaultValue='0.5']\n * @param {string | number} [options.minValue='0']\n * @param {string | number} [options.maxValue='1']\n * @param {string} [options.featureName] Springroll Core feature name that the plugin is supporting\n */\n constructor(cssSelector, name, {defaultValue = '0.5', minValue = '0', maxValue = '1', featureName }) {\n super(name);\n this.featureName = featureName;\n this.minValue = minValue;\n this.defaultValue = defaultValue;\n this.maxValue = maxValue;\n this._currentValue = defaultValue;\n this.sliders = this.setUpSliders(cssSelector);\n this.slidersLength = this.sliders.length;\n this.sendAllProperties = this.sendAllProperties.bind(this);\n\n if (0 >= this.slidersLength) {\n this.warn('Plugin was not provided any valid HTML Elements');\n return;\n }\n }\n\n /**\n * @memberof SliderPlugin\n * @param {string[]} selectors the selector strings used to target the input elements\n * @returns {Slider[]}\n */\n setUpSliders(selectors) {\n const sliders = [];\n\n if (selectors instanceof HTMLElement) {\n sliders.push(new Slider({\n slider: selectors,\n control: this.featureName,\n defaultValue: this.defaultValue,\n minValue: this.minValue,\n maxValue: this.maxValue\n }));\n } else {\n document.querySelectorAll(selectors).forEach((slider) => {\n sliders.push(new Slider({\n slider: slider,\n control: this.featureName,\n defaultValue: this.defaultValue,\n minValue: this.minValue,\n maxValue: this.maxValue\n }));\n });\n }\n\n return sliders;\n }\n\n /**\n * @memberof SliderPlugin\n */\n init() {\n this.client.on(\n 'features',\n function(features) {\n if (!features.data) {\n return;\n }\n\n for (let i = 0; i < this.slidersLength; i++) {\n this.sliders[i].displaySlider(features.data);\n }\n }.bind(this)\n );\n }\n\n /**\n * @memberof SliderPlugin\n */\n start() {\n this._currentValue = this.sliders[0].value; //update current value to the saved data value set in Slider.\n this.client.on('loaded', this.sendAllProperties);\n this.client.on('loadDone', this.sendAllProperties);\n }\n\n /**\n *\n * Sends initial caption properties to the application\n * @memberof SliderPlugin\n */\n sendAllProperties() {\n this.sendProperty(this.featureName, this.currentValue);\n }\n\n /**\n * @memberof SliderPlugin\n * @param {string} newValue\n */\n set currentValue(newValue) {\n\n //just use first slider to ensure the number is valid.\n this._currentValue = this.sliders[0].sliderRange(Number(newValue));\n\n for (let i = 0; i < this.slidersLength; i++) {\n this.sliders[i].value = newValue;\n }\n }\n\n /**\n * @memberof SliderPlugin\n * @return {string}\n */\n get currentValue() {\n return this._currentValue;\n }\n\n}\n","import { SavedData } from '../SavedData';\nimport { ButtonPlugin } from '../base-plugins';\nimport { RadioGroup } from '../ui-elements';\n\nconst DEFAULT_CAPTIONS_STYLES = {\n size: 'medium',\n background: 'black',\n color: 'white',\n edge: 'none',\n font: 'arial',\n align: 'top'\n};\n\nconst DEFAULT_COLOR_STYLE = {color: 'white', background: 'black'};\nconst INVERTED_COLOR_STYLE = {color: 'black', background: 'white'};\nconst FONT_SIZE_VALUES = ['small', 'medium', 'large'];\nconst COLOR_VALUES = ['default', 'inverted'];\nconst ALIGN_VALUES = ['top', 'bottom'];\n\n/**\n * @export\n * @class CaptionsStylePlugin\n * @property {object} captionsStyles The collection of captions styles\n * @property {string[]} fontSizeSelectors selector strings for the radio button groups\n * @property {string[]} colorSelectors selector strings for the radio button groups\n * @property {string[]} alignmentSelectors selector strings for the radio button groups\n * @property {Object[]} fontSizeRadios array that contains each radio group\n * @property {Object[]} colorRadios array that contains each radio group\n * @property {Object[]} alignmentRadios array that contains each radio group\n * @property {number} fontSizeRadiosLength Length of the fontSizeRadios array\n * @property {number} colorRadiosLength Length of the colorRadios array\n * @property {number} alignmentRadiosLength Length of the alignmentRadios array\n * @extends {ButtonPlugin}\n */\nexport class CaptionsStylePlugin extends ButtonPlugin {\n /**\n * Creates an instance of CaptionsStylePlugin.\n * @param {string} fontSizeRadios selector string for one or more radio groups for caption font size\n * @param {string} colorRadios selector string for one or more radio groups for caption font/background colors\n * @param {string} alignmentRadios selector string for one or more radio groups for caption position\n * @param {string} [defaultFontSize='medium'] Default selected font size\n * @param {string} [defaultColor='default'] Default selected color\n * @param {string} [defaultAlignment='top'] Default selected alignment\n * @memberof CaptionsStylePlugin\n */\n constructor(fontSizeRadios, colorRadios, alignmentRadios,\n { defaultFontSize = 'medium', defaultColor = 'default', defaultAlignment = 'top' } = {}\n ) {\n super('Caption-Style-Plugin');\n this.sendAllProperties = this.sendAllProperties.bind(this);\n this.captionsStyles = Object.assign(\n {},\n DEFAULT_CAPTIONS_STYLES,\n SavedData.read(CaptionsStylePlugin.captionStyleKey) || {}\n );\n\n //split the selector strings into individual selectors.\n //Helps keep the input style consistent across plugins.\n this.fontSizeSelectors = fontSizeRadios ? fontSizeRadios.split(',') : [];\n this.colorSelectors = colorRadios ? colorRadios.split(',') : [];\n this.alignmentSelectors = alignmentRadios ? alignmentRadios.split(',') : [];\n\n this.defaultFontSize = FONT_SIZE_VALUES.includes(defaultFontSize) ? defaultFontSize : FONT_SIZE_VALUES[0];\n this.defaultColor = COLOR_VALUES.includes(defaultColor) ? defaultColor : COLOR_VALUES[0];\n this.defaultAlignment = ALIGN_VALUES.includes(defaultAlignment) ? defaultAlignment : ALIGN_VALUES[0];\n\n this.fontSizeRadios = [];\n this.colorRadios = [];\n this.alignmentRadios = [];\n\n this.fontSizeRadios = this.setUpFontSizeRadios(this.fontSizeSelectors);\n this.colorRadios = this.setUpColorRadios(this.colorSelectors);\n this.alignmentRadios = this.setUpAlignmentRadios(this.alignmentSelectors);\n\n this._captionsMuted = false;\n\n this.alignmentRadiosLength = this.alignmentRadios.length;\n this.fontSizeRadiosLength = this.fontSizeRadios.length;\n this.colorRadiosLength = this.colorRadios.length;\n\n if (0 >= (this.alignmentRadiosLength + this.fontSizeRadiosLength + this.colorRadiosLength)) {\n this.warn(\n 'Plugin was not provided any input elements'\n );\n return;\n }\n\n //set up change events\n for (let i = 0; i < this.colorRadiosLength; i++) {\n this.colorRadios[i].enableRadioEvents(this.onColorChange.bind(this));\n }\n for (let i = 0; i < this.alignmentRadiosLength; i++) {\n this.alignmentRadios[i].enableRadioEvents(this.onAlignmentChange.bind(this));\n }\n for (let i = 0; i < this.fontSizeRadiosLength; i++) {\n this.fontSizeRadios[i].enableRadioEvents(this.onFontSizeChange.bind(this));\n }\n }\n\n /**\n * @memberof CaptionsStylePlugin\n * @param {string[]} selectors the separated selector strings used to target the radio button groups\n * @returns {RadioGroup[]}\n */\n setUpFontSizeRadios(selectors) {\n const radioGroups = [];\n\n selectors.forEach((selector) => {\n const radioGroup = new RadioGroup({\n selector: selector.trim(),\n controlName: 'Font Size',\n defaultValue: this.defaultFontSize,\n pluginName: 'Caption-Button-Plugin'\n });\n\n if (radioGroup.length !== 3) {\n this.warn(`Selector \"${selector}\" did not find exactly three(3) radio buttons for caption font size. Skipping selector`);\n return;\n }\n\n if (!radioGroup.hasOnly(FONT_SIZE_VALUES)) {\n return;\n }\n\n if (radioGroup.hasDuplicateValues()) {\n this.warn(`Duplicate radio button values detected (values: ${radioGroup.values} ). Skipping radio group`);\n return;\n }\n\n radioGroups.push(radioGroup);\n });\n\n return radioGroups;\n }\n\n /**\n * @memberof CaptionsStylePlugin\n * @param {string[]} selectors the separated selector strings used to target the radio button groups\n * @returns {RadioGroup[]}\n */\n setUpColorRadios(selectors) {\n const radioGroups = [];\n\n selectors.forEach((selector) => {\n const radioGroup = new RadioGroup({\n selector: selector.trim(),\n controlName: 'Color',\n defaultValue: this.defaultColor,\n pluginName: 'Caption-Button-Plugin'\n });\n\n if (radioGroup.length !== 2) {\n this.warn(`Selector \"${selector}\" did not find exactly two(2) radio buttons for caption colors. Skipping selector`);\n return;\n }\n\n if (!radioGroup.hasOnly(COLOR_VALUES)) {\n return;\n }\n\n if (radioGroup.hasDuplicateValues()) {\n this.warn(`Duplicate radio button values detected (values: ${radioGroup.values} ). Skipping radio group`);\n return;\n }\n\n radioGroups.push(radioGroup);\n });\n\n return radioGroups;\n }\n\n /**\n * @memberof CaptionsStylePlugin\n * @param {string[]} selectors the separated selector strings used to target the radio button groups\n * @returns {RadioGroup[]}\n */\n setUpAlignmentRadios(selectors) {\n const radioGroups = [];\n\n selectors.forEach((selector) => {\n const radioGroup = new RadioGroup({\n selector: selector.trim(),\n controlName: 'Alignment',\n defaultValue: this.defaultAlignment,\n pluginName: 'Caption-Button-Plugin'\n });\n if (radioGroup.length !== 2) {\n this.warn(`Selector \"${selector}\" did not find exactly two(2) radio buttons for caption alignment. Skipping selector`);\n return;\n }\n\n if (!radioGroup.hasOnly(ALIGN_VALUES)) {\n return;\n }\n\n if (radioGroup.hasDuplicateValues()) {\n this.warn(`Duplicate radio button values detected (values: ${radioGroup.values} ). Skipping radio group`);\n return;\n }\n\n radioGroups.push(radioGroup);\n });\n\n return radioGroups;\n }\n\n /**\n * @memberof CaptionsStylePlugin\n */\n init() {\n // Handle the features request\n this.client.on(\n 'features',\n function($event) {\n\n for (const radio of this.radios) {\n radio.displayRadios($event.data);\n }\n\n }.bind(this)\n );\n\n this.client.on(\n 'caption-set-style',\n function($event) {\n this.setCaptionsStyles($event.data || {});\n }.bind(this)\n );\n }\n /**\n * @memberof CaptionsStylePlugin\n */\n start() {\n this.setCaptionsStyles(SavedData.read(CaptionsStylePlugin.captionStyleKey));\n\n this.client.on('loaded', this.sendAllProperties);\n this.client.on('loadDone', this.sendAllProperties);\n }\n\n /**\n *\n * Sends initial caption properties to the application\n * @memberof CaptionsStylePlugin\n */\n sendAllProperties() {\n this.sendProperty(CaptionsStylePlugin.captionStyleKey, this.captionsStyles);\n }\n /**\n * Fired whenever the font size radios are updated\n * @param {Event} e\n * @memberof CaptionsStylePlugin\n */\n onFontSizeChange(e) {\n this.setCaptionsStyles('size', e.target.value);\n }\n\n /**\n * Fired whenever the alignment radios are updated\n * @param {Event} e\n * @memberof CaptionsStylePlugin\n */\n onAlignmentChange(e) {\n this.setCaptionsStyles('align', e.target.value);\n }\n\n /**\n * Fired whenever the color radios are updated\n * @param {Event} e\n * @memberof CaptionsStylePlugin\n */\n onColorChange(e) {\n const styles = e.target.value === 'default' ? DEFAULT_COLOR_STYLE : INVERTED_COLOR_STYLE;\n\n this.setCaptionsStyles(styles);\n }\n\n /**\n * Reset the captions styles\n * @param {Event} e\n * @memberof CaptionsStylePlugin\n */\n clearCaptionsStyles() {\n this.captionsStyles = Object.assign({}, DEFAULT_CAPTIONS_STYLES);\n this.setCaptionsStyles();\n\n for (const radio of this.radios) {\n radio.resetState();\n }\n }\n\n /**\n * Get the captions styles\n * @param {string} [prop] The optional property, values are \"size\", \"edge\", \"font\", \"background\", \"color\"\n * @return {object | string} The collection of styles, see setCaptionsStyles for more info.\n * @memberof CaptionsStylePlugin\n */\n getCaptionsStyles(prop) {\n return prop ? this.captionsStyles[prop] : this.captionsStyles;\n }\n\n /**\n * Set the captions styles\n *\n * @param {object} [styles] The style options or the name of the\n * property (e.g., \"color\", \"edge\", \"font\", \"background\", \"size\")\n * @param {string} [styles.color='white'] The text color, the default is white\n * @param {string} [styles.edge='none'] The edge style, default is none\n * @param {string} [styles.font='arial'] The font style, default is arial\n * @param {string} [styles.background='black'] The background style, black\n * @param {string} [styles.size='md'] The font style default is medium\n * @param {string} [styles.align='top'] The align style default is top of the window\n * @param {string} [value=''] If setting styles parameter as a string, this is the value of the property.\n * @memberof CaptionsStylePlugin\n */\n setCaptionsStyles(styles = DEFAULT_CAPTIONS_STYLES, value = '') {\n if (typeof styles === 'object') {\n Object.assign(this.captionsStyles, styles);\n } else if (typeof styles === 'string') {\n this.captionsStyles[styles] = value;\n }\n\n // update radios to match\n this.colorRadios.forEach((group) => {\n const style = this.captionsStyles.color === 'white' ? 'default' : 'inverted';\n group.radioGroup[style].checked = true;\n });\n this.alignmentRadios.forEach((group) => {\n group.radioGroup[this.captionsStyles.align].checked = true;\n });\n this.fontSizeRadios.forEach((group) => {\n group.radioGroup[this.captionsStyles.size].checked = true;\n });\n\n SavedData.write(CaptionsStylePlugin.captionStyleKey, this.captionsStyles);\n if (this.client) {\n this.client.send(CaptionsStylePlugin.captionStyleKey, this.captionsStyles);\n }\n }\n\n /**\n * @readonly\n * @returns {number}\n * @memberof RadioGroup\n */\n get radios() {\n return this.colorRadios\n .concat(this.alignmentRadios)\n .concat(this.fontSizeRadios);\n }\n /**\n * Get captionStyle Key\n * @readonly\n * @static\n * @memberof CaptionStyleKey\n * @returns {string}\n */\n static get captionStyleKey() {\n return 'captionsStyles';\n }\n\n}\n","import { SavedData } from '../SavedData';\nimport { ButtonPlugin } from '../base-plugins';\nimport { Button } from '../ui-elements';\n\n/**\n * @export\n * @class CaptionsTogglePlugin\n * @property {Button[]} _captionsButtons An array of caption mute buttons\n * @property {boolean} _captionsMuted True if captions are muted\n * @property {number} captionsButtonLength The length of the captionsButtons array\n * @extends {ButtonPlugin}\n */\nexport class CaptionsTogglePlugin extends ButtonPlugin {\n /**\n *Creates an instance of CaptionsTogglePlugin.\n * @param {string | HTMLElement} captionsButtons selector string for one or more captions mute buttons\n * @memberof CaptionsTogglePlugin\n */\n constructor(captionsButtons) {\n super('Caption-Button-Plugin');\n this.sendAllProperties = this.sendAllProperties.bind(this);\n\n this._captionsButtons = [];\n\n if ( captionsButtons instanceof HTMLElement ) {\n this._captionsButtons[0] = new Button({\n button: captionsButtons,\n onClick: this.captionsButtonClick.bind(this),\n channel: 'captions'\n });\n } else {\n document.querySelectorAll(captionsButtons).forEach((button) => {\n this._captionsButtons.push(new Button({\n button: button,\n onClick: this.captionsButtonClick.bind(this),\n channel: 'captions'\n }));\n });\n }\n\n this._captionsMuted = false;\n this.captionsButtonLength = this._captionsButtons.length;\n\n if (0 >= this.captionsButtonLength) {\n this.warn(\n 'Plugin was not provided any valid button or input elements'\n );\n return;\n }\n }\n\n /**\n * @memberof CaptionsTogglePlugin\n */\n init() {\n // Handle the features request\n this.client.on(\n 'features',\n function($event) {\n for (let i = 0; i < this.captionsButtonLength; i ++) {\n this._captionsButtons[i].displayButton($event.data);\n }\n\n if (null === SavedData.read(CaptionsTogglePlugin.captionsToggleKey)) {\n return;\n }\n\n const captionsMuted = !!SavedData.read(CaptionsTogglePlugin.captionsToggleKey);\n\n this.setMuteProp('captionsMuted', captionsMuted, this._captionsButtons, true);\n\n }.bind(this)\n );\n }\n /**\n * @memberof CaptionsTogglePlugin\n */\n start() {\n for (let i = 0; i < this.captionsButtonsLength; i++) {\n this.captionsButtons[i].enableButton();\n }\n this.client.on('loaded', this.sendAllProperties);\n this.client.on('loadDone', this.sendAllProperties);\n }\n\n /**\n *\n * Sends initial caption properties to the application\n * @memberof CaptionsTogglePlugin\n */\n sendAllProperties() {\n this.sendProperty(CaptionsTogglePlugin.captionsToggleKey, this.captionsMuted);\n }\n\n /**\n * @memberof CaptionsTogglePlugin\n */\n captionsButtonClick() {\n this.captionsMuted = !this.captionsMuted;\n }\n\n /**\n * @readonly\n * @memberof CaptionsTogglePlugin\n */\n get captionsMuted() {\n return this._captionsMuted;\n }\n\n /**\n * @param {boolean} muted\n * @memberof CaptionsTogglePlugin\n */\n set captionsMuted(muted) {\n this._captionsMuted = muted;\n this._setMuteProp(\n 'captionsMuted',\n this._captionsButtons,\n this._captionsMuted\n );\n }\n\n /**\n * Get CaptionToggle Key\n * @readonly\n * @static\n * @memberof captionsToggleKey\n * @returns {string}\n */\n static get captionsToggleKey() {\n return 'captionsMuted';\n }\n}\n","import { ButtonPlugin } from '../base-plugins';\nimport { Button } from '../ui-elements';\n\n/**\n * Requests a hint or help from the game\n * @class HelpPlugin\n * @property {boolean} paused\n * @property {boolean} _helpEnabled\n * @property {boolean} onPause\n * @property {number} helpButtonsLength\n * @extends {ButtonPlugin}\n * @export\n */\nexport class HelpPlugin extends ButtonPlugin {\n /**\n * Creates an instance of HelpPlugin.\n * @param {string | HTMLElement} helpButtons The selector or HTMLElement for the button\n * @memberof HelpPlugin\n */\n constructor(helpButtons) {\n super('Help-Button-Plugin');\n\n this._helpButtons = [];\n\n if (helpButtons instanceof HTMLElement) {\n this._helpButtons[0] = new Button({\n button: helpButtons,\n onClick: this.helpButtonClick.bind(this),\n channel: 'hints' // the check to see if this feature exists is different than most so passing this ensures it'll work the same.\n });\n } else {\n document.querySelectorAll(helpButtons).forEach((button) => {\n this._helpButtons.push(\n new Button({\n button: button,\n onClick: this.helpButtonClick.bind(this),\n channel: 'hints'\n })\n );\n });\n }\n\n this.paused = false;\n this._helpEnabled = false;\n this.onPause = this.onPause.bind(this);\n this.helpButtonsLength = this._helpButtons.length;\n\n if (this.helpButtonsLength <= 0) {\n this.warn('Plugin was not provided any valid button elements');\n }\n }\n /**\n * Called when the game is either paused or resumed\n * @param {object} $event\n * @memberof HelpPlugin\n */\n onPause($event) {\n this.paused = $event.data.paused;\n // Disable the help button when paused if it's active\n if (\n this.paused &&\n this.helpEnabled\n ) {\n for (let i = 0; i < this.helpButtonsLength; i++) {\n this._helpButtons[i].button.setAttribute('data-paused', 'true');\n }\n this.helpEnabled = false;\n } else {\n for (let i = 0; i < this.helpButtonsLength; i++) {\n if (this._helpButtons[i].button.getAttribute('data-paused')) {\n this._helpButtons[i].button.setAttribute('data-paused', '');\n this.helpEnabled = true;\n }\n }\n }\n }\n\n /**\n *\n *\n * @memberof HelpPlugin\n */\n helpButtonClick() {\n if (\n !this.paused &&\n this.helpEnabled\n ) {\n this.client.send('playHelp');\n }\n }\n\n /**\n * @memberof HelpPlugin\n */\n init() {\n // Handle pause\n this.client.on('paused', this.onPause);\n\n // Handle features changed\n this.client.on(\n 'features',\n function(features) {\n this.helpEnabled = features.data.hints;\n for (let i = 0; i < this.helpButtonsLength; i++) {\n this._helpButtons[i].displayButton(features.data);\n }\n }.bind(this)\n );\n\n this.client.on(\n 'helpEnabled',\n function(event) {\n this._helpEnabled = !!event.data;\n }.bind(this)\n );\n }\n\n /**\n * @memberof HelpPlugin\n */\n get helpEnabled() {\n return this._helpEnabled;\n }\n\n /**\n * Fired when the enabled status of the help button changes\n * @function helpEnabled\n * @param {boolean} enabled If the help button is enabled\n * @memberof HelpPlugin\n */\n set helpEnabled(enabled) {\n this._helpEnabled = enabled;\n for (let i = 0; i < this.helpButtonsLength; i++) {\n this._helpButtons[i].button.classList.remove('disabled');\n this._helpButtons[i].button.classList.remove('enabled');\n this._helpButtons[i].button.classList.add(enabled ? 'enabled' : 'disabled');\n }\n\n this.client.trigger('helpEnabled');\n }\n\n /**\n * @readonly\n * @static\n * @memberof HelpPlugin\n * @returns {string}\n */\n static get helpKey() {\n return 'help';\n }\n\n}\n","import { ButtonPlugin } from '../base-plugins';\nimport { PageVisibility } from '../PageVisibility';\nimport { Button } from '../ui-elements';\n/**\n * @class Container\n * @property {object[]} sliders an array of all slider objects attached to PausePlugin\n * @extends ButtonPlugin\n */\nexport class PausePlugin extends ButtonPlugin {\n /**\n * Creates an instance of PausePlugin.\n * @param {string | HTMLElement} pauseButton selector string or HTML Element for the input(s)\n * @param {boolean} manageOwnVisibility whether the plugin should manage container's visibility or some other source will handle it\n * @memberof PausePlugin\n */\n constructor(pauseButton, manageOwnVisibility = true) {\n super('Pause-Button-plugin');\n this._manageOwnVisibility = manageOwnVisibility;\n this._appBlurred = false;\n this._containerBlurred = false;\n this._focusTimer = null;\n this._isManualPause = false;\n this._keepFocus = false;\n this._paused = false;\n this.iframe = null;\n this.focusApp = this.focusApp.bind(this);\n this.manageFocus = this.manageFocus.bind(this);\n this.onKeepFocus = this.onKeepFocus.bind(this);\n this.onFocus = this.onFocus.bind(this);\n const onPauseToggle = this.onPauseToggle.bind(this);\n\n this.pauseDisabled = false;\n this._pauseButton = [];\n\n this.pageVisibility = new PageVisibility(\n this.onContainerFocus.bind(this),\n this.onContainerBlur.bind(this)\n );\n\n this.pageVisibility.enabled = this.manageOwnVisibility;\n\n if (pauseButton instanceof HTMLElement) {\n this._pauseButton[0] = new Button({\n button: pauseButton,\n onClick: onPauseToggle,\n channel: PausePlugin.pauseKey\n });\n } else {\n document.querySelectorAll(pauseButton).forEach((button) => {\n this._pauseButton.push(new Button({\n button: button,\n onClick: onPauseToggle,\n channel: PausePlugin.pauseKey\n }));\n });\n }\n }\n\n /**\n * updates _paused and also sends the pause event to the application\n * @memberof PausePlugin\n * @param {Boolean} paused\n */\n set pause(paused) {\n paused = !!paused;\n\n if (this.pauseDisabled) {\n return;\n }\n this._paused = paused;\n\n this.client.send(PausePlugin.pauseKey, paused);\n this.client.trigger(paused ? 'paused' : 'resumed', { paused });\n\n for (let i = 0, l = this._pauseButton.length; i < l; i++) {\n this._pauseButton[i].button.classList.remove('unpaused');\n this._pauseButton[i].button.classList.remove('paused');\n this._pauseButton[i].button.classList.add(paused ? 'paused' : 'unpaused');\n }\n }\n\n /**\n * @memberof PausePlugin\n * @returns {Boolean}\n */\n get pause() {\n return this._paused;\n }\n\n /**\n * updates _manageOwnVisibility and also re-enables pageVisibility\n * @memberof PausePlugin\n * @param {Boolean} manageOwnVisibility\n */\n set manageOwnVisibility(manageOwnVisibility) {\n this._manageOwnVisibility = manageOwnVisibility;\n\n this.pageVisibility.enabled = this._manageOwnVisibility;\n }\n\n /**\n * @memberof PausePlugin\n * @returns {Boolean}\n */\n get manageOwnVisibility() {\n return this._manageOwnVisibility;\n }\n\n /**\n * forces focus onto the iframe application window\n * @memberof PausePlugin\n */\n focusApp() {\n if (!this.hasDom) {\n // We don't have a dom with a content window, fail quietly\n return;\n }\n\n this.iframe.contentWindow.focus();\n }\n\n /**\n * blurs the application iframe window\n * @memberof PausePlugin\n */\n blurApp() {\n if (!this.hasDom) {\n return;\n }\n this.iframe.contentWindow.blur();\n }\n\n /**\n * Determines what pause state should be sent, if any, on focus or blur events.\n * @method manageFocus\n * @memberof PausePlugin\n */\n manageFocus() {\n if (!this.manageOwnVisibility) {\n return;\n }\n // Unfocus on the iframe\n if (this._keepFocus) {\n this.blurApp();\n }\n\n // we only need one delayed call, at the end of any\n // sequence of rapidly-fired blur/focus events\n if (this._focusTimer) {\n clearTimeout(this._focusTimer);\n }\n\n // Delay setting of 'paused' in case we get another focus event soon.\n // Focus events are sent to the container asynchronously, and this was\n // causing rapid toggling of the pause state and related issues,\n // especially in Internet Explorer\n this._focusTimer = setTimeout(\n function () {\n this._focusTimer = null;\n // A manual pause cannot be overriden by focus events.\n // User must click the resume button.\n if (this._isManualPause) {\n return;\n }\n\n this.pause = Boolean(this._containerBlurred && this._appBlurred);\n\n // Focus on the content window when blurring the app\n // but selecting the container\n if (this._keepFocus && !this._containerBlurred && this._appBlurred) {\n this.focusApp();\n }\n }.bind(this),\n 100\n );\n }\n\n /**\n * Handle the keep focus event for the window\n * @method onKeepFocus\n * @memberof PausePlugin\n * @private\n */\n onKeepFocus($event) {\n this._keepFocus = !!$event.data;\n this.manageFocus();\n }\n\n /**\n * Handle focus events sent from iFrame children\n * @method onFocus\n * @memberof PausePlugin\n * @private\n */\n onFocus($event) {\n this._appBlurred = !$event.data;\n this.manageFocus();\n }\n\n /**\n * Handle focus events sent from container's window\n * @method onContainerFocus\n * @memberof PausePlugin\n * @private\n */\n onContainerFocus() {\n this._containerBlurred = false;\n this.manageFocus();\n }\n\n /**\n * Handle blur events sent from container's window\n * @method onContainerBlur\n * @memberof PausePlugin\n * @private\n */\n onContainerBlur() {\n //Set both container and application to blurred,\n //because some blur events are only happening on the container.\n //If container is blurred because application area was just focused,\n //the application's focus event will override the blur imminently.\n this._containerBlurred = this._appBlurred = true;\n this.manageFocus();\n }\n\n /**\n * @memberof PausePlugin\n */\n onPauseToggle() {\n this._isManualPause = !this._isManualPause;\n this.pause = !this.pause;\n }\n\n /**\n * @param {Container} container\n * @memberof PausePlugin\n */\n init({ iframe }) {\n this.iframe = iframe;\n\n this.client.on(\n 'features',\n function (features) {\n if (features.disablePause) {\n this.pauseDisabled = true;\n }\n\n for (let i = 0, l = this._pauseButton.length; i < l; i++) {\n this._pauseButton[i].displayButton(features.data);\n }\n }.bind(this)\n );\n this.client.on('focus', this.onFocus);\n this.client.on('keepFocus', this.onKeepFocus);\n\n this.pause = this._paused;\n }\n\n /**\n * Function to check if we have a dom with a contentWindow\n * @readonly\n * @returns {boolean}\n * @memberof PausePlugin\n */\n get hasDom() {\n return Boolean(null !== this.iframe && this.iframe.contentWindow);\n }\n\n /**\n * @readonly\n * @memberof PausePlugin\n * @returns {HTMLButtonElement[]}\n */\n get pauseButton() {\n const buttons = [];\n for (let i = 0, l = this._pauseButton.length; i < l; i++) {\n buttons.push(this._pauseButton[i].button);\n }\n return buttons;\n }\n\n /**\n * @readonly\n * @static\n * @memberof PausePlugin\n * @returns {string}\n */\n static get pauseKey() {\n return 'pause';\n }\n}\n","import { SavedData } from '../SavedData';\nimport { ButtonPlugin } from '../base-plugins';\nimport { Slider, Button } from '../ui-elements';\n\n/**\n * @export\n * @class SoundPlugin\n * @extends {ButtonPlugin}\n *\n */\nexport class SoundPlugin extends ButtonPlugin {\n /**\n * Creates an instance of SoundPlugin.\n * @param {string | HTMLElement} [soundButtons] selector string or HTML Element for the input(s)\n * @param {string | HTMLElement} [musicButtons] selector string or HTML Element for the input(s)\n * @param {string | HTMLElement} [voButtons] selector string or HTML Element for the input(s)\n * @param {string | HTMLElement} [sfxButtons] selector string or HTML Element for the input(s)\n * @param {string | HTMLElement} [soundSliders] selector string or HTML Element for the input(s)\n * @param {string | HTMLElement} [musicSliders] selector string or HTML Element for the input(s)\n * @param {string | HTMLElement} [sfxSliders] selector string or HTML Element for the input(s)\n * @param {string | HTMLElement} [voSliders] selector string or HTML Element for the input(s)\n * @memberof SoundPlugin\n */\n constructor({\n soundButtons,\n musicButtons,\n sfxButtons,\n voButtons,\n soundSliders,\n musicSliders,\n sfxSliders,\n voSliders\n } = {}) {\n super('Sound-Button-Plugin');\n const saved = SavedData.read(SoundPlugin.soundMutedKey);\n this.sendAllProperties = this.sendAllProperties.bind(this);\n this._soundMuted = saved ? saved : false;\n this._musicMuted = false;\n this._voMuted = false;\n this._sfxMuted = false;\n\n this._musicMutedByUser = false;\n this._soundMutedByUser = false;\n this._sfxMutedByUser = false;\n this._voMutedByUser = false;\n\n this.soundMuteEnabled = false;\n this.musicMuteEnabled = false;\n this.sfxMuteEnabled = false;\n this.voMuteEnabled = false;\n\n this.soundVolume = 1;\n this.musicVolume = 1;\n this.sfxVolume = 1;\n this.voVolume = 1;\n\n this.soundSliders = [];\n this.musicSliders = [];\n this.sfxSliders = [];\n this.voSliders = [];\n\n this.soundButtons = [];\n this.musicButtons = [];\n this.sfxButtons = [];\n this.voButtons= [];\n\n if (soundSliders instanceof HTMLElement) {\n this.soundSliders[0] = new Slider({\n slider: soundSliders,\n control: SoundPlugin.soundVolumeKey,\n defaultValue: this.soundVolume\n });\n } else {\n document.querySelectorAll(soundSliders).forEach((slider) => {\n const newSlider = new Slider({\n slider: slider,\n control: SoundPlugin.soundVolumeKey,\n defaultValue: this.soundVolume\n });\n if (newSlider.slider) {\n this.soundSliders.push(newSlider);\n }\n });\n }\n if (musicSliders instanceof HTMLElement) {\n this.musicSliders[0] = new Slider({\n slider: musicSliders,\n control: SoundPlugin.musicVolumeKey,\n defaultValue: this.musicVolume\n });\n } else {\n document.querySelectorAll(musicSliders).forEach((slider) => {\n const newSlider = new Slider({\n slider: slider,\n control: SoundPlugin.musicVolumeKey,\n defaultValue: this.musicVolume\n });\n if (newSlider.slider) {\n this.musicSliders.push(newSlider);\n }\n });\n }\n if (sfxSliders instanceof HTMLElement) {\n this.sfxSliders[0] = new Slider({\n slider: sfxSliders,\n control: SoundPlugin.sfxVolumeKey,\n defaultValue: this.sfxVolume\n });\n } else {\n document.querySelectorAll(sfxSliders).forEach((slider) => {\n const newSlider = new Slider({\n slider: slider,\n control: SoundPlugin.sfxVolumeKey,\n defaultValue: this.sfxVolume\n });\n if (newSlider.slider) {\n this.sfxSliders.push(newSlider);\n }\n });\n }\n if (voSliders instanceof HTMLElement) {\n this.voSliders[0] = new Slider({\n slider: voSliders,\n control: SoundPlugin.voVolumeKey,\n defaultValue: this.voVolume\n });\n } else {\n document.querySelectorAll(voSliders).forEach((slider) => {\n const newSlider = new Slider({\n slider: slider,\n control: SoundPlugin.voVolumeKey,\n defaultValue: this.voVolume\n });\n if (newSlider.slider) {\n this.voSliders.push(newSlider);\n }\n });\n }\n\n if ( soundButtons instanceof HTMLElement ) {\n this.soundButtons[0] = new Button({\n button: soundButtons,\n onClick: this.onSoundToggle.bind(this),\n channel: SoundPlugin.soundKey\n });\n } else {\n document.querySelectorAll(soundButtons).forEach((button) => {\n this.soundButtons.push(new Button({\n button: button,\n onClick: this.onSoundToggle.bind(this),\n channel: SoundPlugin.soundKey\n }));\n });\n }\n if ( musicButtons instanceof HTMLElement ) {\n this.musicButtons[0] = new Button({\n button: musicButtons,\n onClick: this.onMusicToggle.bind(this),\n channel: 'music'\n });\n } else {\n document.querySelectorAll(musicButtons).forEach((button) => {\n this.musicButtons.push(new Button({\n button: button,\n onClick: this.onMusicToggle.bind(this),\n channel: 'music'\n }));\n });\n }\n if ( sfxButtons instanceof HTMLElement ) {\n this.sfxButtons[0] = new Button({\n button: sfxButtons,\n onClick: this.onSFXToggle.bind(this),\n channel: 'sfx'\n });\n } else {\n document.querySelectorAll(sfxButtons).forEach((button) => {\n this.sfxButtons.push(new Button({\n button: button,\n onClick: this.onSFXToggle.bind(this),\n channel: 'sfx'\n }));\n });\n }\n if ( voButtons instanceof HTMLElement ) {\n this.voButtons[0] = new Button({\n button: voButtons,\n onClick: this.onVOToggle.bind(this),\n channel: 'vo'\n });\n } else {\n document.querySelectorAll(voButtons).forEach((button) => {\n this.voButtons.push(new Button({\n button: button,\n onClick: this.onVOToggle.bind(this),\n channel: 'vo'\n }));\n });\n }\n\n this.soundSlidersLength = this.soundSliders.length;\n this.musicSlidersLength = this.musicSliders.length;\n this.sfxSlidersLength = this.sfxSliders.length;\n this.voSlidersLength = this.voSliders.length;\n this.soundButtonsLength = this.soundButtons.length;\n this.musicButtonsLength = this.musicButtons.length;\n this.sfxButtonsLength = this.sfxButtons.length;\n this.voButtonsLength = this.voButtons.length;\n\n if (0 >= (this.soundSlidersLength + this.musicSlidersLength + this.sfxSlidersLength + this.voSlidersLength + this.soundButtonsLength + this.musicButtonsLength + this.sfxButtonsLength + this.voButtonsLength)) {\n this.warn('Plugin was not provided any valid HTML Elements');\n return;\n }\n\n for (let i = 0; i < this.soundSlidersLength; i++) {\n this.soundSliders[i].enableSliderEvents(this.onSoundVolumeChange.bind(this));\n }\n for (let i = 0; i < this.musicSlidersLength; i++) {\n this.musicSliders[i].enableSliderEvents(this.onMusicVolumeChange.bind(this));\n }\n for (let i = 0; i < this.sfxSlidersLength; i++) {\n this.sfxSliders[i].enableSliderEvents(this.onSFXVolumeChange.bind(this));\n }\n for (let i = 0; i < this.voSlidersLength; i++) {\n this.voSliders[i].enableSliderEvents(this.onVOVolumeChange.bind(this));\n }\n\n if (this.soundSliders[0] && this.soundSliders[0].slider) {\n this.soundVolume = this.soundSliders[0].value;\n }\n if (this.musicSliders[0] && this.musicSliders[0].slider) {\n this.musicVolume = this.musicSliders[0].value;\n }\n if (this.sfxSliders[0] && this.sfxSliders[0].slider) {\n this.sfxVolume = this.sfxSliders[0].value;\n }\n if (this.voSliders[0] && this.voSliders[0].slider) {\n this.voVolume = this.voSliders[0].value;\n }\n }\n\n /**\n * @memberof SoundPlugin\n * @param {Event} e\n */\n onSoundVolumeChange(e) {\n if (this.soundSlidersLength <= 0) {\n this.soundVolume = e.target.value;\n return;\n }\n this.soundVolume = this.soundSliders[0].sliderRange(\n Number(e.target.value)\n );\n this.soundMuted = !this.soundVolume;\n\n if (!this._musicMutedByUser) {\n this.musicMuted = this.soundMuted;\n }\n if (!this._sfxMutedByUser) {\n this.sfxMuted = this.soundMuted;\n }\n if (!this._voMutedByUser) {\n this.voMuted = this.soundMuted;\n }\n\n this.sendProperty(SoundPlugin.soundVolumeKey, this.soundVolume);\n\n for (let i = 0; i < this.soundSlidersLength; i++) {\n this.soundSliders[i].value = this.soundVolume;\n }\n }\n\n /**\n * @memberof SoundPlugin\n * @param {Event} e\n */\n onMusicVolumeChange(e) {\n if (this.musicSlidersLength <= 0) {\n this.musicVolume = e.target.value;\n return;\n }\n\n this.musicVolume = this.musicSliders[0].sliderRange(\n Number(e.target.value)\n );\n\n this.musicMuted = !this.musicVolume;\n if (!this.musicMuted) { this._musicMutedByUser = false; }\n this._checkSoundMute();\n this.sendProperty(SoundPlugin.musicVolumeKey, this.musicVolume);\n\n for (let i = 0; i < this.musicSlidersLength; i++) {\n this.musicSliders[i].value = this.musicVolume;\n }\n }\n\n /**\n * @memberof SoundPlugin\n * @param {Event} e\n */\n onVOVolumeChange(e) {\n if (this.voSlidersLength <= 0) {\n this.voVolume = e.target.value;\n return;\n }\n this.voVolume = this.voSliders[0].sliderRange(Number(e.target.value));\n if (!this.voMuted) { this._voMutedByUser = false; }\n this.voMuted = !this.voVolume;\n this._checkSoundMute();\n\n this.sendProperty(SoundPlugin.voVolumeKey, this.voVolume);\n for (let i = 0; i < this.voSlidersLength; i++) {\n this.voSliders[i].value = this.voVolume;\n }\n }\n\n /**\n * @memberof SoundPlugin\n * @param {Event} e\n */\n onSFXVolumeChange(e) {\n if (this.sfxSlidersLength <= 0) {\n this.sfxVolume = e.target.value;\n return;\n }\n this.sfxVolume = this.sfxSliders[0].sliderRange(Number(e.target.value));\n if (!this.sfxMuted) { this._sfxMutedByUser = false; }\n this.sfxMuted = !this.sfxVolume;\n this._checkSoundMute();\n\n this.sendProperty(SoundPlugin.sfxVolumeKey, this.sfxVolume);\n\n for (let i = 0; i < this.sfxSlidersLength; i++) {\n this.sfxSliders[i].value = this.sfxVolume;\n }\n }\n\n /**\n * @memberof SoundPlugin\n */\n onSoundToggle() {\n const muted = !this.soundMuted;\n this.soundMuted = muted;\n\n if (!this._musicMutedByUser || muted) {\n this.musicMuted = muted;\n }\n if (!this._sfxMutedByUser || muted) {\n this.sfxMuted = muted;\n }\n if (!this._voMutedByUser || muted) {\n this.voMuted = muted;\n }\n }\n\n /**\n * @memberof SoundPlugin\n */\n onMusicToggle() {\n this.musicMuted = !this.musicMuted;\n this._musicMutedByUser = this.musicMuted;\n this._checkSoundMute();\n }\n\n /**\n * @memberof SoundPlugin\n */\n onVOToggle() {\n this.voMuted = !this.voMuted;\n this._voMutedByUser = this.voMuted;\n this._checkSoundMute();\n }\n\n /**\n * @memberof SoundPlugin\n */\n onSFXToggle() {\n this.sfxMuted = !this.sfxMuted;\n this._sfxMutedByUser = this.sfxMuted;\n this._checkSoundMute();\n }\n\n /**\n * @memberof SoundPlugin\n */\n _checkSoundMute() {\n this.soundMuted = this.sfxMuted && this.voMuted && this.musicMuted;\n }\n\n /**\n * @param {string} key\n * @param {*} value\n * @param {Element} element\n * @memberof SoundPlugin\n */\n setMuteProp(key, value, element, disableSend = false) {\n this['_' + key] = value;\n this._setMuteProp(key, element, value, disableSend);\n }\n\n /**\n * @memberof SoundPlugin\n */\n async preload({ client }) {\n this.client = client;\n this.client.on(\n 'features',\n function(features) {\n if (!features.data) {\n return;\n }\n \n // Confirm that the mute features are supported\n this.soundMutedEnabled = !!features.data.sound;\n this.musicMutedEnabled = !!features.data.music;\n this.sfxMutedEnabled = !!features.data.sfx;\n this.voMutedEnabled = !!features.data.vo;\n \n this.soundVolumeEnabled = !!features.data.soundVolume;\n this.musicVolumeEnabled = !!features.data.musicVolume;\n this.sfxVolumeEnabled = !!features.data.sfxVolume;\n this.voVolumeEnabled = !!features.data.voVolume;\n \n for (let i = 0; i < this.soundButtonsLength; i++) {\n this.soundButtons[i].displayButton(features.data);\n }\n for (let i = 0; i < this.musicButtonsLength; i++) {\n this.musicButtons[i].displayButton(features.data);\n }\n for (let i = 0; i < this.sfxButtonsLength; i++) {\n this.sfxButtons[i].displayButton(features.data);\n }\n for (let i = 0; i < this.voButtonsLength; i++) {\n this.voButtons[i].displayButton(features.data);\n }\n for (let i = 0; i < this.soundSlidersLength; i++) {\n this.soundSliders[i].displaySlider(features.data);\n }\n for (let i = 0; i < this.musicSlidersLength; i++) {\n this.musicSliders[i].displaySlider(features.data);\n }\n for (let i = 0; i < this.sfxSlidersLength; i++) {\n this.sfxSliders[i].displaySlider(features.data);\n }\n for (let i = 0; i < this.voSlidersLength; i++) {\n this.voSliders[i].displaySlider(features.data);\n }\n\n const soundMuted = !!SavedData.read(SoundPlugin.soundMutedKey);\n const musicMuted = !!SavedData.read(SoundPlugin.musicMutedKey);\n const sfxMuted = !!SavedData.read(SoundPlugin.sfxMutedKey);\n const voMuted = !!SavedData.read(SoundPlugin.voMutedKey);\n\n // set the property in case buttons exist but disable the send here\n // properties will be sent in sendAllProperties\n this.setMuteProp('soundMuted', soundMuted, this.soundButtons, true);\n this.setMuteProp('musicMuted', musicMuted, this.musicButtons, true);\n this.setMuteProp('sfxMuted', sfxMuted, this.sfxButtons, true);\n this.setMuteProp('voMuted', voMuted, this.voButtons, true);\n }.bind(this)\n );\n }\n\n /**\n * @memberof SoundPlugin\n */\n start() {\n for (let i = 0; i < this.soundButtonsLength; i++) {\n this.soundButtons[i].enableButton();\n }\n for (let i = 0; i < this.musicButtonsLength; i++) {\n this.musicButtons[i].enableButton();\n }\n for (let i = 0; i < this.sfxButtonsLength; i++) {\n this.sfxButtons[i].enableButton();\n }\n for (let i = 0; i < this.voButtonsLength; i++) {\n this.voButtons[i].enableButton();\n }\n\n this.client.on('loaded', this.sendAllProperties);\n this.client.on('loadDone', this.sendAllProperties);\n }\n\n /**\n *\n * Saves the current state of all volume properties, and then sends them to the game\n * @memberof SoundPlugin\n */\n sendAllProperties() {\n\n if ( this.soundVolumeEnabled && this.soundSlidersLength > 0 ) {\n this.sendProperty(SoundPlugin.soundVolumeKey, this.soundVolume);\n }\n if ( this.musicVolumeEnabled && this.musicSlidersLength > 0 ) {\n this.sendProperty(SoundPlugin.musicVolumeKey, this.musicVolume);\n }\n if ( this.voVolumeEnabled && this.voSlidersLength > 0 ) {\n this.sendProperty(SoundPlugin.voVolumeKey, this.voVolume);\n }\n if ( this.sfxVolumeEnabled && this.sfxSlidersLength > 0 ) {\n this.sendProperty(SoundPlugin.sfxVolumeKey, this.sfxVolume);\n }\n\n // to avoid the mute property overwriting the volume on startup, mutes should only send if they're true\n // or the volume channel isn't enabled\n if ( (this.soundButtonsLength > 0 && this.soundMuteEnabled) && (this.soundMuted || !this.soundVolumeEnabled )) {\n this.sendProperty(SoundPlugin.soundMutedKey, this.soundMuted);\n }\n if ( (this.musicButtonsLength > 0 && this.musicMuteEnabled) && (this.musicMuted || !this.musicVolumeEnabled )) {\n this.sendProperty(SoundPlugin.musicMutedKey, this.musicMuted);\n }\n if ( (this.voButtonsLength > 0 && this.voMuteEnabled) && ( this.voMuted || !this.voVolumeEnabled )) {\n this.sendProperty(SoundPlugin.voMutedKey, this.voMuted);\n }\n if ( (this.sfxButtonsLength > 0 && this.sfxMuteEnabled) && (this.sfxMuted || !this.sfxVolumeEnabled )) {\n this.sendProperty(SoundPlugin.sfxMutedKey, this.sfxMuted);\n }\n }\n\n /**\n * @memberof SoundPlugin\n * @param {boolean} muted\n */\n set soundMuted(muted) {\n if (muted === this.soundMuted) {\n // have to do this to make sure it gets set up properly on start up\n this.setMuteProp('soundMuted', muted, this.soundButtons, true);\n return;\n }\n\n let disableSend = false;\n // if volume is enabled and the channel is becoming unmuted we update everything but only send the volume\n if (this.soundVolumeEnabled && !muted) {\n this.sendProperty(SoundPlugin.soundVolumeKey, this.soundVolume);\n disableSend = true;\n }\n this.setMuteProp('soundMuted', muted, this.soundButtons, disableSend);\n }\n\n /**\n * @memberof SoundPlugin\n */\n get soundMuted() {\n return this._soundMuted;\n }\n\n /**\n * @memberof SoundPlugin\n * @param {boolean} muted\n */\n set voMuted(muted) {\n let disableSend = false;\n if (this.voMuted === muted) {\n // have to do this to make sure it gets set up properly on start up\n this.setMuteProp('voMuted', muted, this.voButtons, true);\n return;\n }\n if ((this.voVolumeEnabled && !muted)) {\n this.sendProperty(SoundPlugin.voVolumeKey, this.voVolume);\n disableSend = true;\n }\n this.setMuteProp('voMuted', muted, this.voButtons, disableSend);\n }\n\n /**\n * @memberof SoundPlugin\n */\n get voMuted() {\n return this._voMuted;\n }\n\n /**\n * @memberof SoundPlugin\n * @param {boolean} muted\n */\n set musicMuted(muted) {\n if (this.musicMuted === muted) {\n // have to do this to make sure it gets set up properly on start up\n this.setMuteProp('musicMuted', muted, this.musicButtons, true);\n return; \n }\n let disableSend = false;\n if (this.musicVolumeEnabled && !muted) {\n this.sendProperty(SoundPlugin.musicVolumeKey, this.musicVolume);\n disableSend = true;\n }\n\n this.setMuteProp('musicMuted', muted, this.musicButtons, disableSend);\n }\n\n /**\n * @memberof SoundPlugin\n */\n get musicMuted() {\n return this._musicMuted;\n }\n\n /**\n * @memberof SoundPlugin\n * @param {boolean} muted\n */\n set sfxMuted(muted) {\n if (this.sfxMuted === muted) {\n // have to do this to make sure it gets set up properly on start up\n this.setMuteProp('sfxMuted', muted, this.sfxButtons, true);\n return;\n }\n let disableSend = false;\n if (this.sfxVolumeEnabled && !muted) {\n this.sendProperty(SoundPlugin.sfxVolumeKey, this.sfxVolume);\n disableSend = true;\n }\n this.setMuteProp('sfxMuted', muted, this.sfxButtons, disableSend);\n }\n\n /**\n * @memberof SoundPlugin\n */\n get sfxMuted() {\n return this._sfxMuted;\n }\n\n /**\n * @readonly\n * @static\n * @memberof SoundPlugin\n */\n static get soundMutedKey() {\n return 'soundMuted';\n }\n\n /**\n * @readonly\n * @static\n * @memberof SoundPlugin\n */\n static get voMutedKey() {\n return 'voMuted';\n }\n\n /**\n * @readonly\n * @static\n * @memberof SoundPlugin\n */\n static get musicMutedKey() {\n return 'musicMuted';\n }\n\n /**\n * @readonly\n * @static\n * @memberof SoundPlugin\n */\n static get sfxMutedKey() {\n return 'sfxMuted';\n }\n\n /**\n * @readonly\n * @static\n * @memberof SoundPlugin\n */\n static get soundVolumeKey() {\n return 'soundVolume';\n }\n\n /**\n * @readonly\n * @static\n * @memberof SoundPlugin\n */\n static get sfxVolumeKey() {\n return 'sfxVolume';\n }\n\n /**\n * @readonly\n * @static\n * @memberof SoundPlugin\n */\n static get voVolumeKey() {\n return 'voVolume';\n }\n\n /**\n * @readonly\n * @static\n * @memberof SoundPlugin\n */\n static get musicVolumeKey() {\n return 'musicVolume';\n }\n\n /**\n * @readonly\n * @memberof SoundPlugin\n */\n get soundButton() {\n return this._soundButton.button;\n }\n\n /**\n * @readonly\n * @memberof SoundPlugin\n */\n get musicButton() {\n return this._musicButton.button;\n }\n /**\n * @readonly\n * @memberof SoundPlugin\n */\n get sfxButton() {\n return this._sfxButton.button;\n }\n /**\n * @readonly\n * @memberof SoundPlugin\n */\n get voButton() {\n return this._voButton.button;\n }\n\n /**\n * @readonly\n * @static\n * @memberof SpeedScalePlugin\n * @return {string}\n */\n static get soundKey() {\n return 'sound';\n }\n}\n","import { SavedData } from './SavedData';\n/**\n * Default user data handler for the {{#crossLink \"springroll.Container\"}}Container{{/crossLink}} to save data using\n * the {{#crossLink \"springroll.SavedData\"}}SavedData{{/crossLink}} class.\n * @class SavedDataHandler\n */\nexport class SavedDataHandler {\n\n /**\n * \n */\n constructor() {\n this.dbName;\n this.savedData;\n }\n \n /**\n * Remove a data setting\n * @method remove\n * @static\n * @param {String} name The name of the property\n * @param {Function} [callback] Callback when remove is complete\n */\n static remove(name, callback) {\n SavedData.remove(name);\n callback();\n }\n\n /**\n * Write a custom setting\n * @method write\n * @static\n * @param {String} name The name of the property\n * @param {*} value The value to set the property to\n * @param {Function} [callback] Callback when write is complete\n */\n static write(name, value, callback) {\n SavedData.write(name, value);\n callback();\n }\n\n /**\n * Read a custom setting\n * @method read\n * @static\n * @param {String} name The name of the property\n * @param {Function} callback Callback when read is complete, returns the value\n */\n static read(name, callback) {\n callback(SavedData.read(name));\n }\n\n // ----------------------------------------------------------------\n // IndexedDB Manipulation \n // ----------------------------------------------------------------\n\n /**\n * Open a connection with the database\n * @param {string} dbName The name of your IndexedDB database\n * @param {string} dbVersion The version number of the database\n * @param {JSON} additions Any additions to the structure of the database\n * @param {array} additions.stores Any stores to be added into the database syntax: \n * {storeName: '[name]', options: {[optionally add options]}}\n * @param {array} additions.indexes Any Indexes to be added to the database syntax: \n * {storeName: '[name]', options: {[optionally add options]}}\n */\n IDBOpen( dbName, dbVersion = null, additions = {}, deletions = {}, callback = null) {\n // persisting the savedData object to keep the connection open\n this.savedData = new SavedData();\n this.savedData.IDBOpen( dbName, dbVersion, additions, deletions, callback);\n }\n\n /**\n * Add a record to a given store\n * @param {string} storeName The name of the store from which the record will be updated\n * @param {string} key the key of the record to be updated \n * @param {*} value The value for the record with the given key to be updated\n * @param {function} callback The method to call on success or failure. A single value will be passed in\n */\n IDBAdd(storeName, record, key, callback) {\n this.savedData.IDBAdd(storeName, record, key, callback);\n }\n \n /**\n * Update a record from a given store\n * @param {string} storeName The name of the store from which the record will be updated\n * @param {string} key the key of the record to be updated \n * @param {*} value The value for the record with the given key to be updated\n * @param {function} callback The method to call on success or failure. A single value will be passed in\n */\n IDBUpdate(storeName, key, value, callback) {\n this.savedData.IDBUpdate(storeName, key, value, callback);\n }\n\n /**\n * Remove a record from a store\n * @param {*} storeName The name of the store from which the record will be removed\n * @param {*} key the key of the record to be removed \n * @param {function} callback The method to call on success or failure. A single value will be passed in\n */\n IDBRemove(storeName, key, callback) {\n this.savedData.IDBRemove(storeName, key, callback);\n }\n\n /**\n * Return a record from a given store with a given key\n * @param {string} storeName The name of the store to read from\n * @param {string} key The key for the record in the given store \n * @param {function} callback The method to call on success or failure. A single value will be passed in\n */\n IDBRead(storeName, key, callback) {\n this.savedData.IDBRead(storeName, key, callback);\n }\n\n /**\n * Get all records from a store\n * @param {string} storeName The store to get all records from\n * @param {integer} count Optionally the count of records to return\n * @param {function} callback The method to call on success or failure. A single value will be passed in\n */\n IDBReadAll(storeName, count, callback) {\n this.savedData.IDBReadAll(storeName, count, callback);\n }\n\n /**\n * Get the version of a given database\n * @param {string} dbName The name of the database to return the version of\n * @param {function} callback The method to call on success or failure. A single value will be passed in\n */\n IDBGetVersion(dbName, callback) {\n const sd = new SavedData(dbName);\n\n sd.IDBGetVersion(dbName, callback);\n }\n\n /**\n * Closes the connection to the database\n * @param {function} callback The method to call on success or failure. A single value will be passed in\n */\n IDBClose(callback) {\n this.savedData.IDBClose(callback);\n }\n /**\n * Closes the connection to the database\n * @param {function} callback The method to call on success or failure. A single value will be passed in\n */\n IDBDeleteDB(dbName, options, callback) {\n const sd = new SavedData(dbName);\n sd.IDBDeleteDB(dbName, options, callback);\n }\n\n}\n","import { SavedDataHandler } from '../SavedDataHandler';\nimport { BasePlugin } from '../base-plugins';\n\n/**\n * @export\n * @class UserDataPlugin\n * @extends {BasePlugin}\n * @property {SavedDataHandler} SavedDataHandler The handler to work with the savedData class\n */\nexport class UserDataPlugin extends BasePlugin {\n /**\n * Creates an instance of UserDataPlugin.\n * @memberof UserDataPlugin\n */\n constructor() {\n super('UserData-Plugin');\n this.onUserDataRemove = this.onUserDataRemove.bind(this);\n this.onUserDataRead = this.onUserDataRead.bind(this);\n this.onUserDataWrite = this.onUserDataWrite.bind(this);\n\n this.onIDBAdd = this.onIDBAdd.bind(this);\n this.onIDBOpen = this.onIDBOpen.bind(this);\n this.onIDBRead = this.onIDBRead.bind(this);\n this.onIDBReadAll = this.onIDBReadAll.bind(this);\n this.onIDBRemove = this.onIDBRemove.bind(this);\n this.onIDBUpdate = this.onIDBUpdate.bind(this);\n this.onIDBUpdate = this.onIDBUpdate.bind(this);\n this.onIDBClose = this.onIDBClose.bind(this);\n this.IDBReadAll = this.onIDBReadAll.bind(this);\n this.onIDBGetVersion = this.onIDBGetVersion.bind(this);\n this.onIDBDeleteDB = this.onIDBDeleteDB.bind(this);\n\n this.savedDataHandler = null;\n }\n\n /**\n *\n * @memberof UserDataPlugin\n */\n init() {\n this.client.on('userDataRemove', this.onUserDataRemove);\n this.client.on('userDataRead', this.onUserDataRead);\n this.client.on('userDataWrite', this.onUserDataWrite);\n\n this.client.on('IDBOpen', this.onIDBOpen);\n this.client.on('IDBRead', this.onIDBRead);\n this.client.on('IDBReadAll', this.onIDBReadAll);\n this.client.on('IDBAdd', this.onIDBAdd);\n this.client.on('IDBRemove', this.onIDBRemove);\n this.client.on('IDBUpdate', this.onIDBUpdate);\n this.client.on('IDBClose', this.onIDBClose);\n this.client.on('IDBGetVersion', this.onIDBGetVersion);\n this.client.on('IDBDeleteDB', this.onIDBDeleteDB);\n }\n\n /**\n * Handler for the userDataRemove event\n * @method onUserDataRemove\n * @private\n * @param {string} data The name of the record to be removed\n * @param {string} type The type of listener for bellhop to send to\n */\n onUserDataRemove({ data, type }) {\n SavedDataHandler.remove(data, () => {\n this.client.send(type);\n });\n }\n\n /**\n * Handler for the userDataRead event\n * @method onUserDataRead\n * @private\n * @param {string} data The name of the record to be removed\n * @param {string} type The type of listener for bellhop to send to\n */\n onUserDataRead({ data, type }) {\n SavedDataHandler.read(data, value => this.client.send(type, value));\n }\n\n /**\n * Handler for the userDataWrite event\n * @method onUserDataWrite\n * @private\n * @param {string} type The type of listener for bellhop to send to\n * @param {string} data.name The name for the record. This is what is used to read or remove the record\n * @param {object | string} data.value The data object with the data and value for the record\n */\n onUserDataWrite({type, data: { name, value } }) {\n\n SavedDataHandler.write(name, value, () => this.client.send(type));\n }\n\n // ----------------------------------------------------------------\n // IndexedDB Manipulation\n // ----------------------------------------------------------------\n\n /**\n * Open a connection with the IDB Database and optionally add or delete\n * Indexes and stores\n * @param {string} dbName The name of your IndexedDB database\n * @param {string} [dbVersion] The version number of the database\n * @param {JSON} [additions] Any additions to the structure of the database\n * @param {array} [additions.stores] Any stores to be added into the database syntax:\n * @param {string} [additions.stores.storeName] The name of the store\n * @param {object} [additions.stores.options] Optionally, the option parameter for the createStore method\n * @param {array} [additions.indexes] Any Indexes to be added to the database syntax:\n * @param {string} [additions.indexes.storeName] The name of the store\n * @param {object} [additions.indexes.options] Optionally, the option parameter for the createIndex method\n * @param {string} type The type of listener for bellhop to send to\n */\n onIDBOpen({type, data: {dbName, dbVersion = null, additions = {}, deletions = {} }}) {\n // Keep an instance open to use on open\n this.savedDataHandler = new SavedDataHandler();\n this.savedDataHandler.IDBOpen( dbName, dbVersion, additions, deletions, value => this.client.send(type, value));\n }\n\n /**\n * Add a record to a given store\n * @param {string} type The type of listener for bellhop to send to\n * @param {string} storeName The name of the store from which the record will be updated\n * @param {*} value The value for the record with the given key to be updated\n * @param {string} key the key of the record to be updated\n */\n onIDBAdd({type, data: { storeName, value, key}}) {\n this.savedDataHandler.IDBAdd(storeName, value, key, value => this.client.send(type, value));\n }\n\n /**\n * Update a record from a given store\n * @param {string} type The type of listener for bellhop to send to\n * @param {string} storeName The name of the store with the record to update\n * @param {string} key The key of the record to be updated\n * @param {*} value The record value\n */\n onIDBUpdate({type, data: { storeName, key, value}}) {\n this.savedDataHandler.IDBUpdate(storeName, key, value, value => this.client.send(type, value));\n }\n\n /**\n * Remove a record from a store\n * @param {string} type The type of listener for bellhop to send to\n * @param {string} storeName The name of the store from which the record will be removed\n * @param {*} key the key of the record to be removed\n */\n onIDBRemove({type, data: {storeName, key}}) {\n this.savedDataHandler.IDBRemove(storeName, key, value => this.client.send(type, value));\n }\n\n /**\n * Return a record from a given store with a given key\n * @param {string} storeName The name of the store to read from\n * @param {string} key The key for the record in the given store\n * @param {string} type The type of listener for bellhop to send to\n */\n onIDBRead({type, data: {storeName, key}}) {\n this.savedDataHandler.IDBRead(storeName, key, value => this.client.send(type, value));\n }\n\n /**\n * Get all records from a store\n * @param {string} storeName The store to get all records from\n * @param {integer} count Optionally the number of records to return\n * @param {string} type The type of listener for bellhop to send to\n */\n onIDBReadAll({ type, data: {storeName, count} }) {\n this.savedDataHandler.IDBReadAll(storeName, count, value => this.client.send(type, value));\n }\n\n /**\n * Get the version of a given database\n * @param {string} dbName The name of the database to return the version of\n * @param {string} type The type of listener for bellhop to send to\n */\n onIDBGetVersion({type, data: {dbName}}) {\n // Create a new instance of savedDataHandler to avoid mutating the current instance\n const sdh = new SavedDataHandler();\n sdh.IDBGetVersion(dbName, value => this.client.send(type, value));\n }\n\n /**\n * Close the connection with the database\n * @param {string} type The type of listener for bellhop to send to\n */\n onIDBClose({type}) {\n this.savedDataHandler.IDBClose(value => this.client.send(type, value));\n }\n /**\n * Close the connection with the database\n * @param type - The type of request being sent\n */\n onIDBDeleteDB({type, data: {dbName, options }}) {\n const sdh = new SavedDataHandler();\n\n\n sdh.IDBDeleteDB(dbName, options, value => this.client.send(type, value));\n }\n}","import { SliderPlugin } from '../base-plugins';\n\n/**\n * @export\n * @class PointerSizePlugin\n * @extends {SliderPlugin}\n * @property {object[]} sliders an array of all slider objects attached to PointerSizePlugin\n * @extends SliderPlugin\n */\nexport class PointerSizePlugin extends SliderPlugin {\n /**\n * Creates an instance of PointerSizePlugin.\n * @param {string | HTMLElement} [pointerSliders] selector string or HTML Element for the input(s)\n * @param {number} [defaultPointerSize=0.5] The default value for the pointer size slider\n * @memberof PointerSizePlugin\n */\n constructor(pointerSliders, { defaultPointerSize = 0.5 } = {}) {\n super(pointerSliders, 'UISize-Pointer-Plugin', { defaultValue: defaultPointerSize, featureName: PointerSizePlugin.pointerSizeKey });\n\n for (let i = 0; i < this.slidersLength; i++) {\n this.sliders[i].enableSliderEvents(this.onPointerSizeChange.bind(this));\n }\n\n }\n\n /**\n * @memberof PointerSizePlugin\n * @param {Event} e\n */\n onPointerSizeChange(e) {\n this.currentValue = e.target.value;\n this.sendProperty(PointerSizePlugin.pointerSizeKey, this.currentValue);\n }\n\n\n /**\n * @readonly\n * @static\n * @memberof PointerSizePlugin\n * @return {string}\n */\n static get pointerSizeKey() {\n return 'pointerSize';\n }\n}\n","import { SliderPlugin } from '../base-plugins';\n\n/**\n * @export\n * @class ButtonSizePlugin\n * @property {object[]} sliders An array of slider objects given to ButtonSizePlugin\n * @property {number} currentValue The current button size value\n * @extends {SliderPlugin}\n */\nexport class ButtonSizePlugin extends SliderPlugin {\n /**\n * Creates an instance of ButtonSizePlugin.\n * @param {string | HTMLElement} buttonSliders selector string or html element(s) for the inputs\n * @param {object} options\n * @param {number} [options.defaultButtonSize=0.5]\n * @memberof ButtonSizePlugin\n */\n constructor(buttonSliders, { defaultButtonSize = 0.5 } = {}) {\n super(buttonSliders, 'UISize-Button-Plugin', { defaultValue: defaultButtonSize, featureName: ButtonSizePlugin.buttonSizeKey });\n\n for (let i = 0; i < this.slidersLength; i++) {\n this.sliders[i].enableSliderEvents(this.onButtonSizeChange.bind(this));\n }\n }\n\n /**\n * @memberof ButtonSizePlugin\n * @param {Event} e\n */\n onButtonSizeChange(e) {\n this.currentValue = e.target.value;\n this.sendProperty(ButtonSizePlugin.buttonSizeKey, this.currentValue);\n }\n\n /**\n * Get ButtonSize Key\n * @readonly\n * @static\n * @memberof ButtonSizePlugin\n * @returns {string}\n */\n static get buttonSizeKey() {\n return 'buttonSize';\n }\n}\n","import { SliderPlugin } from '../base-plugins';\n\n/**\n * @export\n * @class ControlSensitivityPlugin\n * @property {object[]} sliders an array of all slider objects attached to ControlSensitivityPlugin\n * @extends {SliderPlugin}\n */\nexport class ControlSensitivityPlugin extends SliderPlugin {\n /**\n * Creates an instance of ControlSensitivityPlugin.\n * @param {string | HTMLElement} sensitivitySliders\n * @param {number} [defaultSensitivity=0.5]\n * @memberof ControlSensitivityPlugin\n */\n constructor(sensitivitySliders, { defaultSensitivity = 0.5 } = {}) {\n super(sensitivitySliders, 'Control-Sensitivity-Plugin', {defaultValue: defaultSensitivity, featureName: ControlSensitivityPlugin.controlSensitivityKey});\n\n this.sendAllProperties = this.sendAllProperties.bind(this);\n\n for (let i = 0; i < this.slidersLength; i++) {\n this.sliders[i].enableSliderEvents(this.onControlSensitivityChange.bind(this));\n }\n }\n\n /**\n * @memberof ControlSensitivityPlugin\n * @param {Event} e\n */\n onControlSensitivityChange(e) {\n this.currentValue = e.target.value;\n this.sendProperty(ControlSensitivityPlugin.controlSensitivityKey, this.currentValue);\n }\n\n /**\n * @readonly\n * @static\n * @memberof ControlSensitivityPlugin\n * @returns {string}\n */\n static get controlSensitivityKey() {\n return 'controlSensitivity';\n }\n}\n","import { BasePlugin } from '../base-plugins';\nimport { SavedData } from '../SavedData';\n\n/**\n * @export\n * @class KeyboardMapPlugin\n * @extends {BasePlugin}\n */\nexport class KeyboardMapPlugin extends BasePlugin {\n /**\n * Creates an instance of KeyboardMapPlugin.\n * @param {string | HTMLElement} keyContainers div or similar container element that will contain the re-mappable keys\n * @param {string} [customClassName='springrollContainerKeyBinding__button'] A custom class name that will be applied to the container element\n * @memberof KeyboardMapPlugin\n */\n constructor(keyContainers, {customClassName = 'springrollContainerKeyBinding__button'} = {}) {\n super('Keyboard-Map-Plugin');\n\n this.sendAllProperties = this.sendAllProperties.bind(this);\n //Allows for removing and reading event listeners\n this.bindKey = this.bindKey.bind(this);\n this.onKeyButtonClick = this.onKeyButtonClick.bind(this);\n\n this.className = customClassName;\n\n this.keyContainers =\n keyContainers instanceof HTMLElement\n ? [keyContainers]\n : document.querySelectorAll(keyContainers);\n\n this.keyBindings = {};\n this.buttons = [];\n this.activekeyButton;\n\n this.sendAfterFetch = false;\n this.canEmit = false;\n\n this.keyContainersLength = this.keyContainers.length;\n\n if (this.keyContainersLength <= 0) {\n this.warn('plugin was not provided any valid key binding container elements');\n return;\n }\n }\n\n /**\n * @memberof KeyboardMapPlugin\n * @param {MouseEvent} e\n * Sets up a rebinding of a key once a key button is clicked.\n */\n onKeyButtonClick(e) {\n\n for (let i = 0, l = this.buttons.length; i < l; i++) {\n for (let j = 0; j < this.buttons[i].length; j++) {\n this.buttons[i][j].removeEventListener('click', this.onKeyButtonClick);\n }\n }\n this.activekeyButton = e.target;\n this.activekeyButton.textContent = 'Press Key to Map';\n document.addEventListener('keyup', this.bindKey);\n }\n\n /**\n * @memberof KeyboardMapPlugin\n * @param {KeyboardEvent} key\n * Actually updates the key binding and sends the value. Also\n * replicates the new key across the other keycontainers\n */\n bindKey(key) {\n key.preventDefault(); //prevents space bar from retriggering a keybinding when set.\n\n for (const actionName in this.keyBindings) {\n if (this.keyBindings[actionName].currentKey === key.key.toLowerCase()) {\n this.warn(`${key.key} is already bound`);\n return;\n }\n }\n\n this.activekeyButton.textContent = key.key === ' ' ? 'space' : key.key;\n for (let i = 0; i < this.buttons.length; i++) {\n for (let j = 0; j < this.buttons[i].length; j++) {\n if (this.buttons[i][j].value === this.activekeyButton.value) {\n this.buttons[i][j].textContent = this.activekeyButton.textContent;\n }\n }\n }\n\n this.keyBindings[this.activekeyButton.value].currentKey = key.key;\n\n document.removeEventListener('keyup', this.bindKey);\n for (let i = 0, l = this.buttons.length; i < l; i++) {\n for (let j = 0; j < this.buttons[i].length; j++) {\n this.buttons[i][j].addEventListener('click', this.onKeyButtonClick);\n }\n }\n\n this.sendProperty(KeyboardMapPlugin.keyBindingKey, this.keyBindings);\n }\n\n /**\n * @memberof KeyboardMapPlugin\n */\n init() {\n this.client.on(\n 'features',\n function(features) {\n if (!features.data) {\n return;\n }\n\n if (!features.data.keyBinding) {\n return;\n }\n\n const data = SavedData.read(KeyboardMapPlugin.keyBindingKey);\n\n this.client.fetch('keyBindings', result => {\n for (let j = 0; j < this.keyContainersLength; j++) {\n this.buttons[j] = [];\n\n for (let i = 0, l = result.data.length; i < l; i++) {\n let currentKey = result.data[i].defaultKey.toLowerCase();\n if (data) {\n if (data[result.data[i].actionName]) {\n currentKey = data[result.data[i].actionName].currentKey;\n }\n }\n //only needs to be set up once\n if (j === 0) {\n this.keyBindings[result.data[i].actionName] = {\n defaultKey: result.data[i].defaultKey.toLowerCase(),\n currentKey: currentKey,\n };\n }\n\n this.buttons[j][i] = document.createElement('button');\n this.buttons[j][i].classList.add(this.className);\n this.buttons[j][i].id = `keyBoardMapPlugin-${result.data[i].actionName}`;\n this.buttons[j][i].value = result.data[i].actionName;\n this.buttons[j][i].textContent = result.data[i].defaultKey;\n this.buttons[j][i].addEventListener('click', this.onKeyButtonClick);\n\n this.label = document.createElement('label');\n this.label.htmlFor = `keyBoardMapPlugin-${result.data[i].actionName}`;\n this.label.textContent = result.data[i].actionName;\n\n this.keyContainers[j].appendChild(this.label);\n this.keyContainers[j].appendChild(this.buttons[j][i]);\n }\n }\n\n this.canEmit = true;\n if (this.sendAfterFetch) {\n this.sendAllProperties();\n }\n });\n }.bind(this)\n );\n }\n\n /**\n*\n* Sends initial caption properties to the application\n* @memberof KeyboardMapPlugin\n*/\n sendAllProperties() {\n if (this.canEmit) {\n this.sendProperty(KeyboardMapPlugin.keyBindingKey, this.keyBindings);\n } else {\n this.sendAfterFetch = true;\n }\n }\n\n /**\n * @readonly\n * @static\n * @memberof KeyboardMapPlugin\n * @returns {string}\n */\n static get keyBindingKey() {\n return 'keyBinding';\n }\n}\n","import { SliderPlugin } from '../base-plugins';\n\n/**\n * @export\n * @class LayersPlugin\n * @property {object[]} sliders an array of all slider objects attached to LayersPlugin\n * @extends {SliderPlugin}\n */\nexport class LayersPlugin extends SliderPlugin {\n /**\n * Creates an instance of KeyboardMapPlugin.\n * @param {string | HTMLInputElement} layersSliders selector string or HTML Element for the input(s)\n * @param {number} [defaultValue=0] The default value for the slider\n */\n constructor(layersSliders, { defaultValue = 0 } = {}) {\n super(layersSliders, 'Layer-Plugin', { defaultValue: defaultValue, featureName: LayersPlugin.layersSliderKey });\n\n for (let i = 0; i < this.slidersLength; i++) {\n this.sliders[i].enableSliderEvents(this.onLayerValueChange.bind(this));\n }\n }\n\n /**\n * @memberof LayersPlugin\n * @param {Event} e\n */\n onLayerValueChange(e) {\n this.currentValue = e.target.value;\n this.sendProperty(LayersPlugin.layersSliderKey, this.currentValue);\n }\n\n /**\n * @readonly\n * @static\n * @memberof LayersPlugin\n * @returns {string}\n */\n static get layersSliderKey() {\n return 'removableLayers';\n }\n}\n","import { RadioGroupPlugin } from '../base-plugins';\nimport { SavedData } from '../SavedData';\n\nconst SUPPORTED_POSITIONS = ['top', 'bottom', 'left', 'right'];\n\n/**\n * @export\n * @class HUDPlugin\n * @extends {BasePlugin}\n */\nexport class HUDPlugin extends RadioGroupPlugin {\n /**\n * Creates an instance of HUDPlugin\n * @param {string} hudSelectorRadios selector string or for the input(s)\n * @param {string[]} [defaultValue='top'] default value for the HUD position\n * @memberof HUDPlugin\n */\n constructor(hudSelectorRadios, { defaultValue = SUPPORTED_POSITIONS[0] } = {}) {\n super(hudSelectorRadios, 'HUD-Layout-Plugin', {supportedValues: SUPPORTED_POSITIONS, initialValue: defaultValue, controlName: 'Hud Selector', featureName: HUDPlugin.hudPositionKey, radioCount: SUPPORTED_POSITIONS.length});\n\n this.sendAllProperties = this.sendAllProperties.bind(this);\n this.sendAfterFetch = false;\n this.canEmit = false;\n this.positions = [];\n\n if (this.radioGroupsLength <= 0) {\n this.warn('Plugin was not provided any valid HTML elements');\n }\n\n for (let i = 0; i < this.radioGroupsLength; i++) {\n this.radioGroups[i].enableRadioEvents(this.onHUDSelect.bind(this));\n }\n\n }\n\n /**\n * @memberof HUDPlugin\n * @param {Event} e\n */\n onHUDSelect(e) {\n //return if a radio button is programattically clicked when it is hidden\n if (!this.positions.includes(e.target.value)) {\n for (let i = 0; i < this.radioGroupsLength; i++) {\n this.radioGroups[i].radioGroup[this.currentValue].checked = true;\n }\n return;\n }\n\n this.currentValue = e.target.value;\n\n this.sendProperty(\n HUDPlugin.hudPositionKey,\n this.currentValue\n );\n }\n\n /**\n * @memberof HUDPlugin\n */\n init() {\n this.client.on(\n 'features',\n function(features) {\n if (!features.data || !features.data.hudPosition) {\n return;\n }\n\n if (this.radioGroupsLength <= 0) {\n return;\n }\n //get the game's reported HUD positions to build out positions array\n this.client.fetch('hudPositions', result => {\n for (let i = 0, l = result.data.length; i < l; i++) {\n if (\n !SUPPORTED_POSITIONS.includes(result.data[i].toLowerCase())\n ) {\n this.warn(`${result.data[i]} is an invalid position name`);\n continue;\n }\n\n this.positions.push(result.data[i].toLowerCase());\n }\n\n for (let i = 0; i < this.radioGroupsLength; i++) {\n //Hide any radio buttons that aren't in the game's position list.\n for (const key in this.radioGroups[i].radioGroup) {\n this.radioGroups[i].radioGroup[key].style.display = this.positions.includes(this.radioGroups[i].radioGroup[key].value) ? '' : 'none';\n }\n }\n\n this.canEmit = true;\n if (this.sendAfterFetch) {\n this.sendAllProperties();\n }\n });\n\n }.bind(this)\n );\n }\n\n /**\n * @memberof HUDPlugin\n */\n start() {\n const data = SavedData.read(HUDPlugin.hudPositionKey);\n\n if (SUPPORTED_POSITIONS.includes(data)) {\n this.currentValue = data;\n }\n this.client.on('loaded', this.sendAllProperties);\n this.client.on('loadDone', this.sendAllProperties);\n }\n\n /**\n *\n * Sends initial HUD position properties to the application\n * @memberof HUDPlugin\n */\n sendAllProperties() {\n if (this.canEmit) {\n this.sendProperty(HUDPlugin.hudPositionKey, this.currentValue);\n } else {\n this.sendAfterFetch = true;\n }\n }\n\n /**\n * @static\n * @readonly\n * @memberof HUDPlugin\n * @returns {string}\n */\n static get hudPositionKey() {\n return 'hudPosition';\n }\n}\n","import { RadioGroupPlugin } from '../base-plugins';\nimport { SavedData } from '../SavedData';\n\nconst COLOR_BLIND_TYPES = [\n 'none',\n 'protanopia',\n 'deuteranopia',\n 'tritanopia',\n 'achromatopsia'\n];\n\n/**\n * @export\n * @class ColorVisionPlugin\n * @property {boolean} sendAfterFetch Whether to send the properties after fetch or not\n * @property {boolean} canEmit Whether or not the plugin can send properties\n * @property {string} colors \n * @extends {RadioGroupPlugin}\n */\nexport class ColorVisionPlugin extends RadioGroupPlugin {\n /**\n * Creates an instance of ColorVisionPlugin.\n * @param {string | HTMLElement} colorSelects\n * @param {string } [defaultValue] Default selected value\n * @memberof ColorVision\n */\n constructor(colorVisionRadios, { defaultValue = COLOR_BLIND_TYPES[0] } = {}) {\n super(colorVisionRadios, 'Color-Filter-Plugin', {supportedValues: COLOR_BLIND_TYPES, initialValue: defaultValue, controlName: 'Color Vision Selector', featureName: ColorVisionPlugin.colorVisionKey, radioCount: COLOR_BLIND_TYPES.length});\n\n this.sendAllProperties = this.sendAllProperties.bind(this);\n this.sendAfterFetch = false;\n this.canEmit = false;\n this.colors = [];\n\n if (this.radioGroupsLength <= 0) {\n this.warn('Plugin was not provided any valid HTML elements');\n return;\n }\n\n for (let i = 0; i < this.radioGroupsLength; i++) {\n this.radioGroups[i].enableRadioEvents(this.onColorChange.bind(this));\n }\n }\n\n /**\n * @memberof ColorVisionPlugin\n * @param {Event} e\n */\n onColorChange(e) {\n //return if a radio button is programmatically clicked when it is hidden from the user\n if (!this.colors.includes(e.target.value) ) {\n for (let i = 0; i < this.radioGroupsLength; i++) {\n this.radioGroups[i].radioGroup[this.currentValue].checked = true;\n }\n return;\n }\n this.currentValue = e.target.value;\n\n this.sendProperty(\n ColorVisionPlugin.colorVisionKey,\n this.currentValue\n );\n }\n\n /**\n * @memberof ColorVisionPlugin\n */\n init() {\n this.client.on(\n 'features',\n function(features) {\n if (!features.data || !features.data.colorVision) {\n return;\n }\n if (this.colorDropdownsLength <= 0) {\n return;\n }\n\n //get the game's reported colors to build out accepted filters array\n this.client.fetch('colorFilters', result => {\n for (let i = 0, l = result.data.length; i < l; i++) {\n if (\n !COLOR_BLIND_TYPES.includes(result.data[i].toLowerCase())\n ) {\n this.warn(`${result.data[i]} is an invalid color vision name`);\n continue;\n }\n this.colors.push(result.data[i].toLowerCase());\n }\n\n this.defaultValue = this.colors[0];\n\n for (let i = 0; i < this.radioGroupsLength; i++) {\n //Hide any radio buttons that aren't in the game's filter list.\n for (const key in this.radioGroups[i].radioGroup) {\n this.radioGroups[i].radioGroup[key].style.display = this.colors.includes(this.radioGroups[i].radioGroup[key].value.toLowerCase()) ? '' : 'none';\n }\n }\n\n this.canEmit = true;\n\n if (this.sendAfterFetch) {\n this.sendAllProperties();\n }\n });\n\n }.bind(this)\n );\n }\n\n /**\n * @memberof ColorVisionPlugin\n */\n start() {\n const data = SavedData.read(ColorVisionPlugin.colorVisionKey);\n\n if (COLOR_BLIND_TYPES.includes(data)) {\n this.currentValue = data;\n }\n\n this.client.on('loaded', this.sendAllProperties);\n this.client.on('loadDone', this.sendAllProperties);\n }\n\n /**\n*\n* Sends initial caption properties to the application\n* @memberof ColorVisionPlugin\n*/\n sendAllProperties() {\n if (this.canEmit) {\n this.sendProperty(ColorVisionPlugin.colorVisionKey, this.currentValue);\n } else {\n this.sendAfterFetch = true;\n }\n }\n\n /**\n * Get the ColorVisionPlugin key\n * @readonly\n * @static\n * @memberof ColorVisionPlugin\n * @returns {string}\n */\n static get colorVisionKey() {\n return 'colorVision';\n }\n\n}\n","import { SliderPlugin } from '../base-plugins';\n\n/**\n * @export\n * @class HitAreaScalePlugin\n * @property {object[]} sliders an array of all slider objects attached to ControlSensitivityPlugin\n * @extends {SliderPlugin}\n * \n */\nexport class HitAreaScalePlugin extends SliderPlugin {\n /**\n * Creates an instance of HitAreaScalePlugin.\n * @param {string | HTMLElement} hitAreaScaleSliders The selector or HTMLElement for the slider\n * @param {number} [defaultHitAreaScale=0.5] The default hit area scale value\n * @memberof HitAreaScalePlugin\n */\n constructor(hitAreaScaleSliders, { defaultHitAreaScale = 0.5 } = {}) {\n super(hitAreaScaleSliders, 'Hit-Area-Scale-Plugin', { defaultValue: defaultHitAreaScale, featureName: HitAreaScalePlugin.hitAreaScaleKey });\n\n for (let i = 0; i < this.slidersLength; i++) {\n this.sliders[i].enableSliderEvents(this.onHitAreaScaleChange.bind(this));\n }\n }\n\n /**\n * @memberof HitAreaScalePlugin\n * @param {Event} target\n * @param {string} control\n */\n onHitAreaScaleChange(e) {\n this.currentValue = e.target.value;\n this.sendProperty(HitAreaScalePlugin.hitAreaScaleKey, this.currentValue);\n }\n\n /**\n * @readonly\n * @static\n * @memberof HitAreaScalePlugin\n * @returns {string}\n */\n static get hitAreaScaleKey() {\n return 'hitAreaScale';\n }\n}\n","import { SliderPlugin } from '../base-plugins';\n\n/**\n * @export\n * @class DragThresholdScalePlugin\n * @extends {SliderPlugin}\n */\nexport class DragThresholdScalePlugin extends SliderPlugin {\n /**\n * Creates an instance of DragThresholdScalePlugin.\n * @param {string | HTMLElement} params.dragThresholdScaleSliders\n * @param {number} [defaultDragThresholdScale=0.5]\n * @memberof DragThresholdScalePlugin\n */\n constructor(dragThresholdScaleSliders, { defaultDragThresholdScale = 0.5 } = {}) {\n super(dragThresholdScaleSliders, 'Drag-Threshold-Scale-Plugin', { defaultValue: defaultDragThresholdScale, featureName: DragThresholdScalePlugin.dragThresholdScaleKey });\n\n for (let i = 0; i < this.slidersLength; i++) {\n this.sliders[i].enableSliderEvents(this.onDragThresholdScaleChange.bind(this));\n }\n }\n\n /**\n * @memberof DragThresholdScalePlugin\n * @param {Event} target\n * @param {string} control\n */\n onDragThresholdScaleChange(e) {\n this.currentValue = e.target.value;\n this.sendProperty(DragThresholdScalePlugin.dragThresholdScaleKey, this.currentValue);\n }\n\n /**\n * @readonly\n * @static\n * @memberof DragThresholdScalePlugin\n * @returns {string}\n */\n static get dragThresholdScaleKey() {\n return 'dragThresholdScale';\n }\n}","import { SliderPlugin } from '../base-plugins';\n\n/**\n * @export\n * @class HealthPlugin\n * @extends {SliderPlugin}\n */\nexport class HealthPlugin extends SliderPlugin {\n /**\n * Creates an instance of HealthPlugin.\n * @param {string | HTMLElement} healthSliders\n * @param {number} [defaultHealth=0.5]\n * @memberof HealthPlugin\n */\n constructor(healthSliders, {defaultHealth = 0.5 } = {}) {\n super(healthSliders, 'Health-Scale-Plugin', { defaultValue:defaultHealth, featureName: HealthPlugin.healthKey });\n\n for (let i = 0; i < this.slidersLength; i++) {\n this.sliders[i].enableSliderEvents(this.onHealthChange.bind(this));\n }\n }\n\n /**\n * @memberof HealthPlugin\n * @param {Event} e\n */\n onHealthChange(e) {\n this.currentValue = e.target.value;\n this.sendProperty(HealthPlugin.healthKey, this.currentValue);\n }\n\n /**\n * @readonly\n * @static\n * @memberof HealthPlugin\n * @returns {string}\n */\n static get healthKey() {\n return 'health';\n }\n}","import { SliderPlugin } from '../base-plugins';\n\n/**\n * @export\n * @class ObjectCountPlugin\n * @property {object[]} sliders an array of all slider objects attached to ObjectCountPlugin\n * @extends {SliderPlugin}\n */\nexport class ObjectCountPlugin extends SliderPlugin {\n /**\n * Creates an instance of ObjectCountPlugin.\n * @param {string | HTMLElement} objectCountSliders selector string or HTML Element for the input(s)\n * @param {number} [defaultObjectCount=0.5] The default value for the slider\n * @memberof ObjectCountPlugin\n */\n constructor(objectCountSliders, { defaultObjectCount = 0.5 } = {}) {\n super(objectCountSliders, 'Object-Count-Plugin', { defaultValue: defaultObjectCount, featureName: ObjectCountPlugin.objectCountKey });\n\n for (let i = 0; i < this.slidersLength; i++) {\n this.sliders[i].enableSliderEvents(this.onObjectCountChange.bind(this));\n }\n }\n\n /**\n * @memberof ObjectCountPlugin\n * @param {Event} target\n * @param {string} control\n */\n onObjectCountChange(e) {\n this.currentValue = e.target.value;\n this.sendProperty(ObjectCountPlugin.objectCountKey, this.currentValue);\n }\n\n /**\n * @readonly\n * @static\n * @memberof ObjectCountPlugin\n * @returns {string}\n */\n static get objectCountKey() {\n return 'objectCount';\n }\n}","import { SliderPlugin } from '../base-plugins';\n\n/**\n * @export\n * @class CompletionPercentagePlugin\n * @property {object[]} sliders an array of all slider objects attached to CompletePercentagePlugin\n * @extends {SliderPlugin}\n */\nexport class CompletionPercentagePlugin extends SliderPlugin {\n /**\n * Creates an instance of CompletionPercentagePlugin.\n * @param {string | HTMLElement} completionPercentageSliders The selector or HTMLSliderElement of the slider\n * @param {number} [defaultCompletionPercentage=0.5] Default selected completion percentage\n * @memberof CompletionPercentagePlugin\n */\n constructor(completionPercentageSliders, { defaultCompletionPercentage = 0.5 } = {}) {\n super(completionPercentageSliders, 'Completion-Percentage-Plugin', { defaultValue: defaultCompletionPercentage, featureName: CompletionPercentagePlugin.completionPercentageKey });\n\n for (let i = 0; i < this.slidersLength; i++) {\n this.sliders[i].enableSliderEvents(this.onCompletionPercentageChange.bind(this));\n }\n }\n\n /**\n * @memberof CompletionPercentagePlugin\n * @param {Event} e\n */\n onCompletionPercentageChange(e) {\n this.currentValue = e.target.value;\n this.sendProperty(CompletionPercentagePlugin.completionPercentageKey, this.currentValue);\n }\n\n /**\n * @readonly\n * @static\n * @memberof CompletionPercentagePlugin\n * @returns {string}\n */\n static get completionPercentageKey() {\n return 'completionPercentage';\n }\n}","import { SliderPlugin } from '../base-plugins';\n\n/**\n * @export\n * @class SpeedScalePlugin\n * @extends {SliderPlugin}\n */\nexport class SpeedScalePlugin extends SliderPlugin {\n /**\n *Creates an instance of SpeedScalePlugin.\n * @param {string | HTMLElement} speedScaleSliders selector string or HTML Element for the input(s)\n * @param {number} [defaultSpeedScale=0.5] The default value for the speed scale slider\n * @memberof SpeedScalePlugin\n */\n constructor(speedScaleSliders, { defaultSpeedScale = 0.5 } = {}) {\n super(speedScaleSliders, 'Speed-Scale-Plugin', { defaultValue: defaultSpeedScale, featureName: SpeedScalePlugin.speedScaleKey });\n\n for (let i = 0; i < this.slidersLength; i++) {\n this.sliders[i].enableSliderEvents(this.onSpeedScaleChange.bind(this));\n }\n }\n\n /**\n * @memberof SpeedScalePlugin\n * @param {Event} e\n */\n onSpeedScaleChange(e) {\n this.currentValue = e.target.value;\n this.sendProperty(SpeedScalePlugin.speedScaleKey, this.currentValue);\n }\n\n /**\n * @readonly\n * @static\n * @memberof SpeedScalePlugin\n * @return {string}\n */\n static get speedScaleKey() {\n return 'speedScale';\n }\n}","import { SliderPlugin } from '../base-plugins';\n\n/**\n * @export\n * @class TimersScalePlugin\n * @property {number} currentValue\n * @extends {SliderPlugin}\n */\nexport class TimersScalePlugin extends SliderPlugin {\n /**\n * Creates an instance of TimersScalePlugin.\n * @param {string | HTMLElement} timersScaleSliders selector string or HTML Element for the input(s)\n * @param {number} [defaultTimersScale=0.5] Default Value for the timer scale slider\n * @memberof TimersScalePlugin\n */\n constructor(timersScaleSliders, { defaultTimersScale = 0.5 } = {}) {\n super(timersScaleSliders, 'Timers-Scale-Plugin', { defaultValue: defaultTimersScale, featureName: TimersScalePlugin.timersScaleKey });\n\n for (let i = 0; i < this.slidersLength; i++) {\n this.sliders[i].enableSliderEvents(this.onTimersScaleChange.bind(this));\n }\n }\n\n /**\n * @memberof TimersScalePlugin\n * @param {Event} e\n */\n onTimersScaleChange(e) {\n this.currentValue = e.target.value;\n this.sendProperty(TimersScalePlugin.timersScaleKey, this.currentValue);\n }\n\n /**\n * @readonly\n * @static\n * @memberof TimersScalePlugin\n * @return {string}\n */\n static get timersScaleKey() {\n return 'timersScale';\n }\n}","import { SliderPlugin } from '../base-plugins';\n\n/**\n * @export\n * @class InputCountPlugin\n * @property {object[]} sliders an array of all slider objects attached to InputCountPlugin\n * @extends {SliderPlugin}\n */\nexport class InputCountPlugin extends SliderPlugin {\n /**\n * Creates an instance of InputCountPlugin.\n * @param {string | HTMLElement} inputCountSliders selector string or HTML Element for the input(s)\n * @param {number} [defaultInputCount=0.5] The default value for the slider\n * @memberof InputCountPlugin\n */\n constructor(inputCountSliders, { defaultInputCount = 0.5 } = {}) {\n super(inputCountSliders, 'Input-Count-Plugin', { defaultValue: defaultInputCount, featureName: InputCountPlugin.inputCountKey });\n\n for (let i = 0; i < this.slidersLength; i++) {\n this.sliders[i].enableSliderEvents(this.onInputCountChange.bind(this));\n }\n }\n\n /**\n * @memberof InputCountPlugin\n * @param {Event} target\n * @param {string} control\n */\n onInputCountChange(e) {\n this.currentValue = e.target.value;\n this.sendProperty(InputCountPlugin.inputCountKey, this.currentValue);\n }\n\n /**\n * @readonly\n * @static\n * @memberof InputCountPlugin\n * @returns {string}\n */\n static get inputCountKey() {\n return 'inputCount';\n }\n}","import { ButtonPlugin } from '../base-plugins/ButtonPlugin';\nimport { Button } from '../ui-elements';\n\n/**\n * A Springroll plugin to easily set up togglable fullscreen\n */\nexport class FullScreenPlugin extends ButtonPlugin {\n \n /**\n * Creates an instance of FullscreenPlugin\n * \n * @param {string | string[]} buttonSelector The selector for the element to be made fullscreen\n */\n constructor(buttonSelector) {\n super({\n name: FullScreenPlugin.fullscreenKey\n }); \n\n this._toggleButtons = [];\n this.iFrame = null;\n\n this.sendAllProperties = this.sendAllProperties.bind(this);\n\n if (Array.isArray(buttonSelector)) {\n // If input is an array, join the selectors into one string\n buttonSelector = buttonSelector.join(', ');\n }\n\n console.log(buttonSelector);\n \n this.toggleButton = document.querySelectorAll(buttonSelector);\n\n\n this.toggleButton.forEach((button) => {\n this._toggleButtons.push(new Button({\n button: button,\n onClick: this.toggleFullScreen.bind(this),\n channel: FullScreenPlugin.fullscreenKey\n }));\n });\n \n\n document.addEventListener('fullscreenchange', () => {\n this.sendAllProperties();\n \n this._toggleButtons.forEach((button) => {\n button.button.classList.toggle('--fullScreen');\n });\n\n });\n }\n\n /**\n * @memberof FullScreenPlugin\n */\n init({ iframe }) {\n this.iFrame = iframe;\n // Handle the features request\n this.client.on(\n 'features',\n function($event) {\n for (let i = 0; i < this.fullscreenElement; i ++) {\n this._toggleButtons[i].displayButton($event.data);\n }\n\n }.bind(this)\n );\n }\n /**\n * @memberof FullScreenPlugin\n */\n start() {\n this.client.on('loaded', this.sendAllProperties);\n this.client.on('loadDone', this.sendAllProperties);\n }\n\n /**\n *\n * Sends initial fullScreen properties to the application\n * @memberof FullScreenTogglePlugin\n */\n sendAllProperties() {\n this.sendProperty(FullScreenPlugin.fullscreenKey, document.fullscreenElement != null ? 'true' : 'false');\n }\n\n /**\n * Toggles fullscreen on this.iFrame. Must be from a user generated event\n */\n toggleFullScreen() {\n if (!document.fullscreenElement) {\n this.iFrame.requestFullscreen().then(() => {\n this.sendAllProperties();\n }).catch((err) => {\n console.log(err);\n });\n } else {\n document.exitFullscreen();\n this.sendAllProperties();\n }\n }\n\n /**\n * Returns true if there is a fullscreen element and false if not\n * @returns { boolean } \n */\n get isFullScreen() {\n return (document.fullscreenElement || // basic\n document.webkitIsFullscreen || //Webkit browsers\n document.mozFullScreen ) // Firefox\n != true; // Ensure boolean output\n }\n\n /** \n * @readonly\n * @static\n * @memberof FullscreenPlugin\n */\n static get fullscreenKey() {\n return 'fullScreen';\n }\n}"],"names":["global","globalThis","self","support","Symbol","Blob","e","viewClasses","isArrayBufferView","ArrayBuffer","isView","obj","indexOf","Object","prototype","toString","call","normalizeName","name","String","test","TypeError","toLowerCase","normalizeValue","value","iteratorFor","items","iterator","next","shift","done","undefined","Headers","headers","this","map","forEach","append","Array","isArray","header","getOwnPropertyNames","consumed","body","bodyUsed","Promise","reject","fileReaderReady","reader","resolve","onload","result","onerror","error","readBlobAsArrayBuffer","blob","FileReader","promise","readAsArrayBuffer","bufferClone","buf","slice","view","Uint8Array","byteLength","set","buffer","Body","_initBody","_bodyInit","_bodyText","isPrototypeOf","_bodyBlob","FormData","_bodyFormData","URLSearchParams","DataView","_bodyArrayBuffer","get","type","rejected","Error","arrayBuffer","isConsumed","byteOffset","then","text","readAsText","readBlobAsText","chars","length","i","fromCharCode","join","readArrayBufferAsText","formData","decode","json","JSON","parse","oldValue","has","hasOwnProperty","callback","thisArg","keys","push","values","entries","methods","Request","input","options","url","credentials","method","mode","signal","upcased","toUpperCase","normalizeMethod","referrer","cache","reParamSearch","replace","Date","getTime","form","trim","split","bytes","decodeURIComponent","Response","bodyInit","status","ok","statusText","clone","response","redirectStatuses","redirect","RangeError","location","DOMException","err","message","stack","create","constructor","fetch","init","request","aborted","xhr","XMLHttpRequest","abortXhr","abort","rawHeaders","getAllResponseHeaders","substr","line","parts","key","responseURL","responseText","setTimeout","ontimeout","onabort","open","href","fixUrl","withCredentials","responseType","setRequestHeader","addEventListener","onreadystatechange","readyState","removeEventListener","send","polyfill","check","it","Math","window","Function","domIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","documentAll","document","all","documentAll_1","IS_HTMLDDA","require$$0","isCallable","argument","require$$1","isObject","EXISTS","createElement","documentCreateElement","classList","DOMTokenListPrototype","domTokenListPrototype","fails","exec","functionBindNative","bind","NATIVE_BIND","FunctionPrototype","uncurryThisWithBind","functionUncurryThis","fn","apply","arguments","uncurryThis","stringSlice","classofRaw","functionUncurryThisClause","$String","tryToString","$TypeError","aCallable","require$$2","functionBindContext","that","classof","$Object","indexedObject","propertyIsEnumerable","isNullOrUndefined","requireObjectCoercible","toObject","ceil","floor","mathTrunc","trunc","x","n","toIntegerOrInfinity","number","min","toLength","lengthOfArrayLike","defineProperty","defineGlobalProperty","configurable","writable","SHARED","sharedStore","store","sharedModule","version","copyright","license","source","match","hasOwnProperty_1","hasOwn","id","postfix","random","uid","engineUserAgent","navigator","userAgent","process","Deno","versions","v8","engineV8Version","V8_VERSION","symbolConstructorDetection","getOwnPropertySymbols","symbol","sham","useSymbolAsUid","shared","require$$3","NATIVE_SYMBOL","require$$4","USE_SYMBOL_AS_UID","require$$5","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","wellKnownSymbol","toStringTagSupport","TO_STRING_TAG_SUPPORT","TO_STRING_TAG","CORRECT_ARGUMENTS","O","tag","tryGet","callee","getBuiltIn","namespace","functionToString","inspectSource","noop","empty","construct","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","isConstructor","called","SPECIES","$Array","arraySpeciesConstructor","originalArray","C","arraySpeciesCreate","IndexedObject","createMethod","TYPE","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","$this","callbackfn","specificCreate","boundFunction","index","target","arrayIteration","filter","some","every","find","findIndex","filterReject","arrayMethodIsStrict","METHOD_NAME","$forEach","arrayForEach","descriptors","ie8DomDefine","a","v8PrototypeDefineBug","anObject","functionCall","objectIsPrototypeOf","isSymbol","$Symbol","getMethod","V","P","func","ordinaryToPrimitive","pref","val","valueOf","TO_PRIMITIVE","toPrimitive","exoticToPrim","toPropertyKey","DESCRIPTORS","IE8_DOM_DEFINE","V8_PROTOTYPE_DEFINE_BUG","$defineProperty","$getOwnPropertyDescriptor","getOwnPropertyDescriptor","ENUMERABLE","CONFIGURABLE","WRITABLE","objectDefineProperty","f","Attributes","current","enumerable","createPropertyDescriptor","bitmap","definePropertyModule","createNonEnumerableProperty","object","DOMIterables","handlePrototype","CollectionPrototype","COLLECTION_NAME","toIndexedObject","max","toAbsoluteIndex","integer","IS_INCLUDES","el","fromIndex","arrayIncludes","includes","hiddenKeys","objectKeysInternal","names","enumBugKeys","internalObjectKeys","objectKeys","objectDefineProperties","defineProperties","Properties","props","activeXDocument","html","sharedKey","definePropertiesModule","PROTOTYPE","SCRIPT","IE_PROTO","require$$6","EmptyConstructor","scriptTag","content","LT","NullProtoObjectViaActiveX","write","close","temp","parentWindow","NullProtoObject","ActiveXObject","iframeDocument","iframe","JS","domain","style","display","appendChild","src","contentWindow","F","objectCreate","UNSCOPABLES","ArrayPrototype","addToUnscopables","iterators","WeakMap","NATIVE_WEAK_MAP","require$$7","OBJECT_ALREADY_INITIALIZED","state","metadata","facade","STATE","internalState","enforce","getterFor","$propertyIsEnumerable","NASHORN_BUG","objectPropertyIsEnumerable","descriptor","propertyIsEnumerableModule","objectGetOwnPropertyDescriptor","getDescriptor","functionName","PROPER","CONFIGURABLE_FUNCTION_NAME","enforceInternalState","getInternalState","CONFIGURABLE_LENGTH","TEMPLATE","makeBuiltIn","makeBuiltInModule","exports","getter","setter","arity","defineBuiltIn","simple","unsafe","nonConfigurable","nonWritable","concat","objectGetOwnPropertyNames","objectGetOwnPropertySymbols","IteratorPrototype","PrototypeOfArrayIteratorPrototype","arrayIterator","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","ownKeys","getOwnPropertyDescriptorModule","replacement","isForced","feature","detection","data","normalize","POLYFILL","NATIVE","string","isForced_1","copyConstructorProperties","exceptions","_export","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","dontCallGetSet","forced","correctPrototypeGetter","getPrototypeOf","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","objectGetPrototypeOf","ITERATOR","BUGGY_SAFARI_ITERATORS","NEW_ITERATOR_PROTOTYPE","iteratorsCore","setToStringTag","TAG","Iterators","returnThis","uncurryThisAccessor","aPossiblePrototype","objectSetPrototypeOf","setPrototypeOf","CORRECT_SETTER","proto","__proto__","$","createIteratorConstructor","IteratorConstructor","NAME","ENUMERABLE_NEXT","require$$8","require$$9","require$$10","require$$12","PROPER_FUNCTION_NAME","require$$13","require$$11","KEYS","VALUES","ENTRIES","iteratorDefine","Iterable","DEFAULT","IS_SET","FORCED","CurrentIteratorPrototype","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","createIterResultObject","InternalStateModule","defineIterator","ARRAY_ITERATOR","setInternalState","es_array_iterator","iterated","kind","Arguments","ArrayIteratorMethods","ArrayValues","path","$indexOf","nativeIndexOf","NEGATIVE_ZERO","searchElement","createProperty","propertyKey","arrayMethodHasSpeciesSupport","array","foo","Boolean","doesNotExceedSafeInteger","IS_CONCAT_SPREADABLE","IS_CONCAT_SPREADABLE_SUPPORT","isConcatSpreadable","spreadable","arg","k","len","E","A","$assign","assign","objectAssign","b","B","alphabet","chr","T","argumentsLength","S","j","$location","defer","channel","port","engineIsNode","defineBuiltInAccessor","setSpecies","CONSTRUCTOR_NAME","Constructor","anInstance","Prototype","aConstructor","functionApply","Reflect","arraySlice","engineIsIos","validateArgumentsLength","passed","required","IS_IOS","IS_NODE","setImmediate","clear","clearImmediate","Dispatch","MessageChannel","counter","queue","ONREADYSTATECHANGE","run","runner","eventListener","event","globalPostMessageDefer","postMessage","protocol","host","handler","args","nextTick","now","port2","port1","onmessage","importScripts","removeChild","task","Queue","head","tail","add","item","entry","notify","toggle","node","engineIsIosPebble","Pebble","engineIsWebosWebkit","macrotask","IS_IOS_PEBBLE","IS_WEBOS_WEBKIT","MutationObserver","WebKitMutationObserver","queueMicrotaskDescriptor","microtask","flush","parent","exit","enter","createTextNode","observe","characterData","microtask_1","perform","promiseNativeConstructor","engineIsDeno","engineIsBrowser","NativePromiseConstructor","IS_BROWSER","IS_DENO","SUBCLASSING","NATIVE_PROMISE_REJECTION_EVENT","PromiseRejectionEvent","FORCED_PROMISE_CONSTRUCTOR","PROMISE_CONSTRUCTOR_SOURCE","GLOBAL_CORE_JS_PROMISE","FakePromise","promiseConstructorDetection","CONSTRUCTOR","REJECTION_EVENT","PromiseCapability","$$resolve","$$reject","newPromiseCapability","Internal","OwnPromiseCapability","nativeThen","speciesConstructor","defaultConstructor","require$$14","require$$15","hostReportErrors","console","require$$17","require$$18","require$$19","require$$20","newPromiseCapabilityModule","require$$22","PROMISE","require$$21","NATIVE_PROMISE_SUBCLASSING","getInternalPromiseState","NativePromisePrototype","PromiseConstructor","PromisePrototype","newGenericPromiseCapability","DISPATCH_EVENT","createEvent","dispatchEvent","UNHANDLED_REJECTION","isThenable","callReaction","reaction","exited","fail","rejection","onHandleUnhandled","isReject","notified","reactions","onUnhandled","reason","initEvent","isUnhandled","emit","unwrap","internalReject","internalResolve","wrapper","executor","onFulfilled","onRejected","PromiseWrapper","wrap","getIteratorMethod","isArrayIteratorMethod","getIterator","usingIterator","iteratorMethod","iteratorClose","innerResult","innerError","Result","stopped","ResultPrototype","iterate","iterable","unboundFunction","iterFn","step","AS_ENTRIES","IS_RECORD","IS_ITERATOR","INTERRUPTED","stop","condition","callFn","SAFE_CLOSING","iteratorWithReturn","return","from","checkCorrectnessOfIteration","SKIP_CLOSING","ITERATION_SUPPORT","promiseStaticsIncorrectIteration","capability","$promiseResolve","remaining","alreadyCalled","real","catch","race","r","promiseResolve","promiseCapability","re1","re2","regexpFlags","hasIndices","ignoreCase","multiline","dotAll","unicode","unicodeSets","sticky","$RegExp","RegExp","UNSUPPORTED_Y","re","lastIndex","MISSED_STICKY","regexpStickyHelpers","BROKEN_CARET","regexpUnsupportedDotAll","flags","regexpUnsupportedNcg","groups","stickyHelpers","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","nativeReplace","nativeExec","patchedExec","charAt","UPDATES_LAST_INDEX_WRONG","NPCG_INCLUDED","reCopy","group","str","raw","charsAdded","strCopy","Features","_classCallCheck","_createClass","canvas","getContext","Worker","msPointerEnabled","msMaxTouchPoints","pointerEnabled","maxTouchPoints","webaudio","htmlAudio","capabilities","basic","features","ui","sizes","touch","size","screen","width","height","xsmall","small","medium","large","xlarge","webgl","webAudio","charCodeAt","CONVERT_TO_STRING","pos","first","second","position","codeAt","STRING_ITERATOR","point","$filter","$find","FIND","SKIPS_HOLES","t","PluginManager","_ref","_ref$plugins","plugins","client","Bellhop","hidden","receive","hiddenSend","_this","preloads","_loop","preload","preloadFailed","warn","l","plugin","start","Container","_PluginManager","_inherits","_openRemote","_super","_createSuper","iframeOrSelector","_ref$context","context","HTMLIFrameElement","querySelector","loaded","loading","release","_context","onLoading","_assertThisInitialized","onLoadDone","onEndGame","onLocalError","initClient","setupPlugins","trigger","remove","reset","$event","setAttribute","on","connect","userPath","_ref2","_ref2$singlePlay","singlePlay","_ref2$playOptions","playOptions","playOptionsQueryString","encodeURIComponent","stringify","respond","_typeof","_internalOpen","_asyncToGenerator","_regeneratorRuntime","mark","_callee","api","_ref3","_ref3$query","query","_ref3$singlePlay","_ref3$playOptions","_args","prev","sent","success","_x","newContext","PageVisibility","onFocus","onBlur","_onFocus","_onBlur","enabled","_enabled","onToggle","enable","$includes","whitespaces","ltrim","rtrim","stringTrim","end","$trim","forcedStringTrimMethod","regExpFlags","RegExpPrototype","$toString","getRegExpFlags","R","TO_STRING","nativeToString","NOT_GENERIC","INCORRECT_NAME","SavedData","dbName","db","dbVersion","additions","deletions","indexedDB","onsuccess","onupgradeneeded","stores","createObjectStore","storeName","indexes","transaction","objectStore","createIndex","indexName","keyPath","deleteIndex","deleteObjectStore","deleteDatabase","IDBOpen","tx","oncomplete","updateRequest","put","_this2","delete","_this3","readRequest","_this4","count","getAllKeys","getAll","dBOpenRequest","localStorage","removeItem","sessionStorage","setItem","getItem","BasePlugin","_preload","sendAllProperties","_","prop","disableSend","warningText","ButtonPlugin","_BasePlugin","sendMutes","container","button","HTMLButtonElement","muted","log","changeMutedState","sendProperty","htmlButton","HTMLElement","MATCH","isRegExp","notARegExp","correctIsRegExpLogic","regexp","error1","error2","stringIndexOf","searchString","$getOwnPropertyNames","fin","windowNames","objectGetOwnPropertyNamesExternal","getWindowNames","arrayBufferNonExtensible","isExtensible","ARRAY_BUFFER_NON_EXTENSIBLE","$isExtensible","objectIsExtensible","freezing","preventExtensions","getOwnPropertyNamesExternalModule","FREEZING","REQUIRED","METADATA","setMetadata","objectID","weakData","meta","internalMetadataModule","splice","fastKey","getWeakData","onFreeze","inheritIfRequired","dummy","Wrapper","NewTarget","NewTargetPrototype","InternalMetadataModule","defineBuiltIns","internalStateGetterFor","collectionStrong","getConstructor","ADDER","last","define","previous","getEntry","removed","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","common","IS_WEAK","NativeConstructor","NativePrototype","exported","fixMethod","uncurriedNativeMethod","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","collection","nativeKeys","$map","TO_ENTRIES","$values","RadioGroup","selector","controlName","_ref$featureName","featureName","defaultValue","pluginName","radioElements","querySelectorAll","radioGroup","_possibleConstructorReturn","radio","checked","valuesArray","_toConsumableArray","Set","callBack","RadioGroupPlugin","cssSelector","supportedValues","initialValue","radioCount","selectors","_currentValue","radioGroups","setUpRadios","radioGroupsLength","hasOnly","hasDuplicateValues","property","newValue","thisNumberValue","require$$16","NUMBER","NativeNumber","NumberPrototype","toNumber","third","radix","maxCode","digits","code","NaN","parseInt","NumberWrapper","primValue","toNumeric","Number","Slider","slider","control","_ref$min","_ref$max","_ref$step","_ref$defaultValue","sliderValue","setUpSlider","read","Button","onClick","className","SliderPlugin","_ref$minValue","minValue","_ref$maxValue","maxValue","sliders","setUpSliders","slidersLength","displaySlider","currentValue","sliderRange","DEFAULT_CAPTIONS_STYLES","background","color","edge","font","align","DEFAULT_COLOR_STYLE","INVERTED_COLOR_STYLE","FONT_SIZE_VALUES","COLOR_VALUES","ALIGN_VALUES","CaptionsStylePlugin","_ButtonPlugin","fontSizeRadios","colorRadios","alignmentRadios","_ref$defaultFontSize","defaultFontSize","_ref$defaultColor","defaultColor","_ref$defaultAlignment","defaultAlignment","captionsStyles","captionStyleKey","fontSizeSelectors","colorSelectors","alignmentSelectors","setUpFontSizeRadios","setUpColorRadios","setUpAlignmentRadios","_captionsMuted","alignmentRadiosLength","fontSizeRadiosLength","colorRadiosLength","enableRadioEvents","onColorChange","onAlignmentChange","onFontSizeChange","_step","_iterator","_createForOfIteratorHelper","radios","s","displayRadios","setCaptionsStyles","styles","_step2","_iterator2","resetState","_this5","CaptionsTogglePlugin","captionsButtons","_captionsButtons","captionsButtonClick","captionsButtonLength","displayButton","captionsToggleKey","captionsMuted","setMuteProp","captionsButtonsLength","enableButton","_setMuteProp","HelpPlugin","helpButtons","_helpButtons","helpButtonClick","paused","_helpEnabled","onPause","helpButtonsLength","helpEnabled","getAttribute","hints","PausePlugin","pauseButton","manageOwnVisibility","_manageOwnVisibility","_appBlurred","_containerBlurred","_focusTimer","_isManualPause","_keepFocus","_paused","focusApp","manageFocus","onKeepFocus","onPauseToggle","pauseDisabled","_pauseButton","pageVisibility","onContainerFocus","onContainerBlur","pauseKey","hasDom","focus","blur","blurApp","clearTimeout","pause","disablePause","buttons","SoundPlugin","soundButtons","musicButtons","sfxButtons","voButtons","soundSliders","musicSliders","sfxSliders","voSliders","saved","soundMutedKey","_soundMuted","_musicMuted","_voMuted","_sfxMuted","_musicMutedByUser","_soundMutedByUser","_sfxMutedByUser","_voMutedByUser","soundMuteEnabled","musicMuteEnabled","sfxMuteEnabled","voMuteEnabled","soundVolume","musicVolume","sfxVolume","voVolume","soundVolumeKey","newSlider","musicVolumeKey","sfxVolumeKey","voVolumeKey","onSoundToggle","soundKey","onMusicToggle","onSFXToggle","onVOToggle","soundSlidersLength","musicSlidersLength","sfxSlidersLength","voSlidersLength","soundButtonsLength","musicButtonsLength","sfxButtonsLength","voButtonsLength","enableSliderEvents","onSoundVolumeChange","onMusicVolumeChange","onSFXVolumeChange","onVOVolumeChange","soundMuted","musicMuted","sfxMuted","voMuted","_checkSoundMute","element","soundMutedEnabled","sound","musicMutedEnabled","music","sfxMutedEnabled","sfx","voMutedEnabled","vo","soundVolumeEnabled","musicVolumeEnabled","sfxVolumeEnabled","voVolumeEnabled","musicMutedKey","sfxMutedKey","voMutedKey","_soundButton","_musicButton","_sfxButton","_voButton","SavedDataHandler","savedData","record","IDBAdd","IDBUpdate","IDBRemove","IDBRead","IDBReadAll","IDBGetVersion","IDBClose","IDBDeleteDB","UserDataPlugin","onUserDataRemove","onUserDataRead","onUserDataWrite","onIDBAdd","onIDBOpen","onIDBRead","onIDBReadAll","onIDBRemove","onIDBUpdate","onIDBClose","onIDBGetVersion","onIDBDeleteDB","savedDataHandler","_ref3$data","_ref4","_ref4$data","_ref4$data$dbVersion","_ref4$data$additions","_ref4$data$deletions","_ref5","_this6","_ref5$data","_ref6","_this7","_ref6$data","_ref7","_this8","_ref7$data","_ref8","_this9","_ref8$data","_ref9","_this10","_ref9$data","_ref10","_this11","_ref11","_this12","_ref12","_this13","_ref12$data","PointerSizePlugin","_SliderPlugin","pointerSliders","_ref$defaultPointerSi","defaultPointerSize","pointerSizeKey","onPointerSizeChange","ButtonSizePlugin","buttonSliders","_ref$defaultButtonSiz","defaultButtonSize","buttonSizeKey","onButtonSizeChange","ControlSensitivityPlugin","sensitivitySliders","_ref$defaultSensitivi","defaultSensitivity","controlSensitivityKey","onControlSensitivityChange","KeyboardMapPlugin","keyContainers","_ref$customClassName","customClassName","bindKey","onKeyButtonClick","keyBindings","activekeyButton","sendAfterFetch","canEmit","keyContainersLength","textContent","actionName","preventDefault","currentKey","keyBindingKey","keyBinding","defaultKey","label","htmlFor","LayersPlugin","layersSliders","layersSliderKey","onLayerValueChange","SUPPORTED_POSITIONS","HUDPlugin","_RadioGroupPlugin","hudSelectorRadios","hudPositionKey","positions","onHUDSelect","hudPosition","COLOR_BLIND_TYPES","ColorVisionPlugin","colorVisionRadios","colorVisionKey","colors","colorVision","colorDropdownsLength","HitAreaScalePlugin","hitAreaScaleSliders","_ref$defaultHitAreaSc","defaultHitAreaScale","hitAreaScaleKey","onHitAreaScaleChange","DragThresholdScalePlugin","dragThresholdScaleSliders","_ref$defaultDragThres","defaultDragThresholdScale","dragThresholdScaleKey","onDragThresholdScaleChange","HealthPlugin","healthSliders","_ref$defaultHealth","defaultHealth","healthKey","onHealthChange","ObjectCountPlugin","objectCountSliders","_ref$defaultObjectCou","defaultObjectCount","objectCountKey","onObjectCountChange","CompletionPercentagePlugin","completionPercentageSliders","_ref$defaultCompletio","defaultCompletionPercentage","completionPercentageKey","onCompletionPercentageChange","SpeedScalePlugin","speedScaleSliders","_ref$defaultSpeedScal","defaultSpeedScale","speedScaleKey","onSpeedScaleChange","TimersScalePlugin","timersScaleSliders","_ref$defaultTimersSca","defaultTimersScale","timersScaleKey","onTimersScaleChange","InputCountPlugin","inputCountSliders","_ref$defaultInputCoun","defaultInputCount","inputCountKey","onInputCountChange","FullScreenPlugin","buttonSelector","fullscreenKey","_toggleButtons","iFrame","toggleButton","toggleFullScreen","fullscreenElement","exitFullscreen","requestFullscreen","webkitIsFullscreen","mozFullScreen"],"mappings":"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"} \ No newline at end of file