8bitworkshop/gen/chunk-JNII2TLU.js

49 lines
228 KiB
JavaScript

import{a as hn,b as ya,c as Pl}from"./chunk-UC2UKQOH.js";import{a as js}from"./chunk-B2GOFULO.js";import{a as Bs,b as Us,c as kl}from"./chunk-IJD2K6VH.js";import{D as va,J as ba,l as ee,u as $s,v as Ws}from"./chunk-ULPRULB6.js";import{A as Mr,E as St,F as ha,G as Nr,H as fn,I as Ms,J as pa,T as ma,V as Ns,a as Rt,b as pi,ba as dn,ca as Os,d as ft,da as gi,e as da,f as rt,g as De,k as Fs,m as sn,n as on,o as ln,p as vr,q as Ls,t as un,w as Rs,x as Is,y as cn,z as dt}from"./chunk-RXF2JDJ3.js";import{c as di,d as Ds,e as hi}from"./chunk-WAARL7ET.js";var wa=Ds((Hs,xa)=>{(function(l){if(typeof Hs=="object"&&typeof xa!="undefined")xa.exports=l();else if(typeof define=="function"&&define.amd)define([],l);else{var t;typeof window!="undefined"?t=window:typeof global!="undefined"?t=global:typeof self!="undefined"?t=self:t=this,t.localforage=l()}})(function(){var l,t,r;return function a(u,d,m){function y(W,ue){if(!d[W]){if(!u[W]){var z=typeof di=="function"&&di;if(!ue&&z)return z(W,!0);if(b)return b(W,!0);var H=new Error("Cannot find module '"+W+"'");throw H.code="MODULE_NOT_FOUND",H}var V=d[W]={exports:{}};u[W][0].call(V.exports,function(de){var K=u[W][1][de];return y(K||de)},V,V.exports,a,u,d,m)}return d[W].exports}for(var b=typeof di=="function"&&di,F=0;F<m.length;F++)y(m[F]);return y}({1:[function(a,u,d){(function(m){"use strict";var y=m.MutationObserver||m.WebKitMutationObserver,b;if(y){var F=0,W=new y(de),ue=m.document.createTextNode("");W.observe(ue,{characterData:!0}),b=function(){ue.data=F=++F%2}}else if(!m.setImmediate&&typeof m.MessageChannel!="undefined"){var z=new m.MessageChannel;z.port1.onmessage=de,b=function(){z.port2.postMessage(0)}}else"document"in m&&"onreadystatechange"in m.document.createElement("script")?b=function(){var xe=m.document.createElement("script");xe.onreadystatechange=function(){de(),xe.onreadystatechange=null,xe.parentNode.removeChild(xe),xe=null},m.document.documentElement.appendChild(xe)}:b=function(){setTimeout(de,0)};var H,V=[];function de(){H=!0;for(var xe,Ce,be=V.length;be;){for(Ce=V,V=[],xe=-1;++xe<be;)Ce[xe]();be=V.length}H=!1}u.exports=K;function K(xe){V.push(xe)===1&&!H&&b()}}).call(this,typeof global!="undefined"?global:typeof self!="undefined"?self:typeof window!="undefined"?window:{})},{}],2:[function(a,u,d){"use strict";var m=a(1);function y(){}var b={},F=["REJECTED"],W=["FULFILLED"],ue=["PENDING"];u.exports=z;function z(X){if(typeof X!="function")throw new TypeError("resolver must be a function");this.state=ue,this.queue=[],this.outcome=void 0,X!==y&&K(this,X)}z.prototype.catch=function(X){return this.then(null,X)},z.prototype.then=function(X,ne){if(typeof X!="function"&&this.state===W||typeof ne!="function"&&this.state===F)return this;var oe=new this.constructor(y);if(this.state!==ue){var Se=this.state===W?X:ne;V(oe,Se,this.outcome)}else this.queue.push(new H(oe,X,ne));return oe};function H(X,ne,oe){this.promise=X,typeof ne=="function"&&(this.onFulfilled=ne,this.callFulfilled=this.otherCallFulfilled),typeof oe=="function"&&(this.onRejected=oe,this.callRejected=this.otherCallRejected)}H.prototype.callFulfilled=function(X){b.resolve(this.promise,X)},H.prototype.otherCallFulfilled=function(X){V(this.promise,this.onFulfilled,X)},H.prototype.callRejected=function(X){b.reject(this.promise,X)},H.prototype.otherCallRejected=function(X){V(this.promise,this.onRejected,X)};function V(X,ne,oe){m(function(){var Se;try{Se=ne(oe)}catch(ze){return b.reject(X,ze)}Se===X?b.reject(X,new TypeError("Cannot resolve promise with itself")):b.resolve(X,Se)})}b.resolve=function(X,ne){var oe=xe(de,ne);if(oe.status==="error")return b.reject(X,oe.value);var Se=oe.value;if(Se)K(X,Se);else{X.state=W,X.outcome=ne;for(var ze=-1,Ne=X.queue.length;++ze<Ne;)X.queue[ze].callFulfilled(ne)}return X},b.reject=function(X,ne){X.state=F,X.outcome=ne;for(var oe=-1,Se=X.queue.length;++oe<Se;)X.queue[oe].callRejected(ne);return X};function de(X){var ne=X&&X.then;if(X&&(typeof X=="object"||typeof X=="function")&&typeof ne=="function")return function(){ne.apply(X,arguments)}}function K(X,ne){var oe=!1;function Se(Je){oe||(oe=!0,b.reject(X,Je))}function ze(Je){oe||(oe=!0,b.resolve(X,Je))}function Ne(){ne(ze,Se)}var it=xe(Ne);it.status==="error"&&Se(it.value)}function xe(X,ne){var oe={};try{oe.value=X(ne),oe.status="success"}catch(Se){oe.status="error",oe.value=Se}return oe}z.resolve=Ce;function Ce(X){return X instanceof this?X:b.resolve(new this(y),X)}z.reject=be;function be(X){var ne=new this(y);return b.reject(ne,X)}z.all=_e;function _e(X){var ne=this;if(Object.prototype.toString.call(X)!=="[object Array]")return this.reject(new TypeError("must be an array"));var oe=X.length,Se=!1;if(!oe)return this.resolve([]);for(var ze=new Array(oe),Ne=0,it=-1,Je=new this(y);++it<oe;)bt(X[it],it);return Je;function bt(nr,Pr){ne.resolve(nr).then(jr,function(Xt){Se||(Se=!0,b.reject(Je,Xt))});function jr(Xt){ze[Pr]=Xt,++Ne===oe&&!Se&&(Se=!0,b.resolve(Je,ze))}}}z.race=o;function o(X){var ne=this;if(Object.prototype.toString.call(X)!=="[object Array]")return this.reject(new TypeError("must be an array"));var oe=X.length,Se=!1;if(!oe)return this.resolve([]);for(var ze=-1,Ne=new this(y);++ze<oe;)it(X[ze]);return Ne;function it(Je){ne.resolve(Je).then(function(bt){Se||(Se=!0,b.resolve(Ne,bt))},function(bt){Se||(Se=!0,b.reject(Ne,bt))})}}},{"1":1}],3:[function(a,u,d){(function(m){"use strict";typeof m.Promise!="function"&&(m.Promise=a(2))}).call(this,typeof global!="undefined"?global:typeof self!="undefined"?self:typeof window!="undefined"?window:{})},{"2":2}],4:[function(a,u,d){"use strict";var m=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(p){return typeof p}:function(p){return p&&typeof Symbol=="function"&&p.constructor===Symbol&&p!==Symbol.prototype?"symbol":typeof p};function y(p,_){if(!(p instanceof _))throw new TypeError("Cannot call a class as a function")}function b(){try{if(typeof indexedDB!="undefined")return indexedDB;if(typeof webkitIndexedDB!="undefined")return webkitIndexedDB;if(typeof mozIndexedDB!="undefined")return mozIndexedDB;if(typeof OIndexedDB!="undefined")return OIndexedDB;if(typeof msIndexedDB!="undefined")return msIndexedDB}catch(p){return}}var F=b();function W(){try{if(!F||!F.open)return!1;var p=typeof openDatabase!="undefined"&&/(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent)&&!/Chrome/.test(navigator.userAgent)&&!/BlackBerry/.test(navigator.platform),_=typeof fetch=="function"&&fetch.toString().indexOf("[native code")!==-1;return(!p||_)&&typeof indexedDB!="undefined"&&typeof IDBKeyRange!="undefined"}catch(v){return!1}}function ue(p,_){p=p||[],_=_||{};try{return new Blob(p,_)}catch(S){if(S.name!=="TypeError")throw S;for(var v=typeof BlobBuilder!="undefined"?BlobBuilder:typeof MSBlobBuilder!="undefined"?MSBlobBuilder:typeof MozBlobBuilder!="undefined"?MozBlobBuilder:WebKitBlobBuilder,C=new v,k=0;k<p.length;k+=1)C.append(p[k]);return C.getBlob(_.type)}}typeof Promise=="undefined"&&a(3);var z=Promise;function H(p,_){_&&p.then(function(v){_(null,v)},function(v){_(v)})}function V(p,_,v){typeof _=="function"&&p.then(_),typeof v=="function"&&p.catch(v)}function de(p){return typeof p!="string"&&(console.warn(p+" used as a key, but it is not a string."),p=String(p)),p}function K(){if(arguments.length&&typeof arguments[arguments.length-1]=="function")return arguments[arguments.length-1]}var xe="local-forage-detect-blob-support",Ce=void 0,be={},_e=Object.prototype.toString,o="readonly",X="readwrite";function ne(p){for(var _=p.length,v=new ArrayBuffer(_),C=new Uint8Array(v),k=0;k<_;k++)C[k]=p.charCodeAt(k);return v}function oe(p){return new z(function(_){var v=p.transaction(xe,X),C=ue([""]);v.objectStore(xe).put(C,"key"),v.onabort=function(k){k.preventDefault(),k.stopPropagation(),_(!1)},v.oncomplete=function(){var k=navigator.userAgent.match(/Chrome\/(\d+)/),S=navigator.userAgent.match(/Edge\//);_(S||!k||parseInt(k[1],10)>=43)}}).catch(function(){return!1})}function Se(p){return typeof Ce=="boolean"?z.resolve(Ce):oe(p).then(function(_){return Ce=_,Ce})}function ze(p){var _=be[p.name],v={};v.promise=new z(function(C,k){v.resolve=C,v.reject=k}),_.deferredOperations.push(v),_.dbReady?_.dbReady=_.dbReady.then(function(){return v.promise}):_.dbReady=v.promise}function Ne(p){var _=be[p.name],v=_.deferredOperations.pop();if(v)return v.resolve(),v.promise}function it(p,_){var v=be[p.name],C=v.deferredOperations.pop();if(C)return C.reject(_),C.promise}function Je(p,_){return new z(function(v,C){if(be[p.name]=be[p.name]||ar(),p.db)if(_)ze(p),p.db.close();else return v(p.db);var k=[p.name];_&&k.push(p.version);var S=F.open.apply(F,k);_&&(S.onupgradeneeded=function(N){var j=S.result;try{j.createObjectStore(p.storeName),N.oldVersion<=1&&j.createObjectStore(xe)}catch(G){if(G.name==="ConstraintError")console.warn('The database "'+p.name+'" has been upgraded from version '+N.oldVersion+" to version "+N.newVersion+', but the storage "'+p.storeName+'" already exists.');else throw G}}),S.onerror=function(N){N.preventDefault(),C(S.error)},S.onsuccess=function(){var N=S.result;N.onversionchange=function(j){j.target.close()},v(N),Ne(p)}})}function bt(p){return Je(p,!1)}function nr(p){return Je(p,!0)}function Pr(p,_){if(!p.db)return!0;var v=!p.db.objectStoreNames.contains(p.storeName),C=p.version<p.db.version,k=p.version>p.db.version;if(C&&(p.version!==_&&console.warn('The database "'+p.name+`" can't be downgraded from version `+p.db.version+" to version "+p.version+"."),p.version=p.db.version),k||v){if(v){var S=p.db.version+1;S>p.version&&(p.version=S)}return!0}return!1}function jr(p){return new z(function(_,v){var C=new FileReader;C.onerror=v,C.onloadend=function(k){var S=btoa(k.target.result||"");_({__local_forage_encoded_blob:!0,data:S,type:p.type})},C.readAsBinaryString(p)})}function Xt(p){var _=ne(atob(p.data));return ue([_],{type:p.type})}function Br(p){return p&&p.__local_forage_encoded_blob}function yt(p){var _=this,v=_._initReady().then(function(){var C=be[_._dbInfo.name];if(C&&C.dbReady)return C.dbReady});return V(v,p,p),v}function Nn(p){ze(p);for(var _=be[p.name],v=_.forages,C=0;C<v.length;C++){var k=v[C];k._dbInfo.db&&(k._dbInfo.db.close(),k._dbInfo.db=null)}return p.db=null,bt(p).then(function(S){return p.db=S,Pr(p)?nr(p):S}).then(function(S){p.db=_.db=S;for(var N=0;N<v.length;N++)v[N]._dbInfo.db=S}).catch(function(S){throw it(p,S),S})}function Ke(p,_,v,C){C===void 0&&(C=1);try{var k=p.db.transaction(p.storeName,_);v(null,k)}catch(S){if(C>0&&(!p.db||S.name==="InvalidStateError"||S.name==="NotFoundError"))return z.resolve().then(function(){if(!p.db||S.name==="NotFoundError"&&!p.db.objectStoreNames.contains(p.storeName)&&p.version<=p.db.version)return p.db&&(p.version=p.db.version+1),nr(p)}).then(function(){return Nn(p).then(function(){Ke(p,_,v,C-1)})}).catch(v);v(S)}}function ar(){return{forages:[],db:null,dbReady:null,deferredOperations:[]}}function Ii(p){var _=this,v={db:null};if(p)for(var C in p)v[C]=p[C];var k=be[v.name];k||(k=ar(),be[v.name]=k),k.forages.push(_),_._initReady||(_._initReady=_.ready,_.ready=yt);var S=[];function N(){return z.resolve()}for(var j=0;j<k.forages.length;j++){var G=k.forages[j];G!==_&&S.push(G._initReady().catch(N))}var q=k.forages.slice(0);return z.all(S).then(function(){return v.db=k.db,bt(v)}).then(function(Y){return v.db=Y,Pr(v,_._defaultConfig.version)?nr(v):Y}).then(function(Y){v.db=k.db=Y,_._dbInfo=v;for(var Z=0;Z<q.length;Z++){var ye=q[Z];ye!==_&&(ye._dbInfo.db=v.db,ye._dbInfo.version=v.version)}})}function On(p,_){var v=this;p=de(p);var C=new z(function(k,S){v.ready().then(function(){Ke(v._dbInfo,o,function(N,j){if(N)return S(N);try{var G=j.objectStore(v._dbInfo.storeName),q=G.get(p);q.onsuccess=function(){var Y=q.result;Y===void 0&&(Y=null),Br(Y)&&(Y=Xt(Y)),k(Y)},q.onerror=function(){S(q.error)}}catch(Y){S(Y)}})}).catch(S)});return H(C,_),C}function Ur(p,_){var v=this,C=new z(function(k,S){v.ready().then(function(){Ke(v._dbInfo,o,function(N,j){if(N)return S(N);try{var G=j.objectStore(v._dbInfo.storeName),q=G.openCursor(),Y=1;q.onsuccess=function(){var Z=q.result;if(Z){var ye=Z.value;Br(ye)&&(ye=Xt(ye));var Pe=p(ye,Z.key,Y++);Pe!==void 0?k(Pe):Z.continue()}else k()},q.onerror=function(){S(q.error)}}catch(Z){S(Z)}})}).catch(S)});return H(C,_),C}function kr(p,_,v){var C=this;p=de(p);var k=new z(function(S,N){var j;C.ready().then(function(){return j=C._dbInfo,_e.call(_)==="[object Blob]"?Se(j.db).then(function(G){return G?_:jr(_)}):_}).then(function(G){Ke(C._dbInfo,X,function(q,Y){if(q)return N(q);try{var Z=Y.objectStore(C._dbInfo.storeName);G===null&&(G=void 0);var ye=Z.put(G,p);Y.oncomplete=function(){G===void 0&&(G=null),S(G)},Y.onabort=Y.onerror=function(){var Pe=ye.error?ye.error:ye.transaction.error;N(Pe)}}catch(Pe){N(Pe)}})}).catch(N)});return H(k,v),k}function Pt(p,_){var v=this;p=de(p);var C=new z(function(k,S){v.ready().then(function(){Ke(v._dbInfo,X,function(N,j){if(N)return S(N);try{var G=j.objectStore(v._dbInfo.storeName),q=G.delete(p);j.oncomplete=function(){k()},j.onerror=function(){S(q.error)},j.onabort=function(){var Y=q.error?q.error:q.transaction.error;S(Y)}}catch(Y){S(Y)}})}).catch(S)});return H(C,_),C}function $n(p){var _=this,v=new z(function(C,k){_.ready().then(function(){Ke(_._dbInfo,X,function(S,N){if(S)return k(S);try{var j=N.objectStore(_._dbInfo.storeName),G=j.clear();N.oncomplete=function(){C()},N.onabort=N.onerror=function(){var q=G.error?G.error:G.transaction.error;k(q)}}catch(q){k(q)}})}).catch(k)});return H(v,p),v}function Wn(p){var _=this,v=new z(function(C,k){_.ready().then(function(){Ke(_._dbInfo,o,function(S,N){if(S)return k(S);try{var j=N.objectStore(_._dbInfo.storeName),G=j.count();G.onsuccess=function(){C(G.result)},G.onerror=function(){k(G.error)}}catch(q){k(q)}})}).catch(k)});return H(v,p),v}function jn(p,_){var v=this,C=new z(function(k,S){if(p<0){k(null);return}v.ready().then(function(){Ke(v._dbInfo,o,function(N,j){if(N)return S(N);try{var G=j.objectStore(v._dbInfo.storeName),q=!1,Y=G.openKeyCursor();Y.onsuccess=function(){var Z=Y.result;if(!Z){k(null);return}p===0||q?k(Z.key):(q=!0,Z.advance(p))},Y.onerror=function(){S(Y.error)}}catch(Z){S(Z)}})}).catch(S)});return H(C,_),C}function xt(p){var _=this,v=new z(function(C,k){_.ready().then(function(){Ke(_._dbInfo,o,function(S,N){if(S)return k(S);try{var j=N.objectStore(_._dbInfo.storeName),G=j.openKeyCursor(),q=[];G.onsuccess=function(){var Y=G.result;if(!Y){C(q);return}q.push(Y.key),Y.continue()},G.onerror=function(){k(G.error)}}catch(Y){k(Y)}})}).catch(k)});return H(v,p),v}function sr(p,_){_=K.apply(this,arguments);var v=this.config();p=typeof p!="function"&&p||{},p.name||(p.name=p.name||v.name,p.storeName=p.storeName||v.storeName);var C=this,k;if(!p.name)k=z.reject("Invalid arguments");else{var S=p.name===v.name&&C._dbInfo.db,N=S?z.resolve(C._dbInfo.db):bt(p).then(function(j){var G=be[p.name],q=G.forages;G.db=j;for(var Y=0;Y<q.length;Y++)q[Y]._dbInfo.db=j;return j});p.storeName?k=N.then(function(j){if(!!j.objectStoreNames.contains(p.storeName)){var G=j.version+1;ze(p);var q=be[p.name],Y=q.forages;j.close();for(var Z=0;Z<Y.length;Z++){var ye=Y[Z];ye._dbInfo.db=null,ye._dbInfo.version=G}var Pe=new z(function(ke,We){var Le=F.open(p.name,G);Le.onerror=function(at){var Bt=Le.result;Bt.close(),We(at)},Le.onupgradeneeded=function(){var at=Le.result;at.deleteObjectStore(p.storeName)},Le.onsuccess=function(){var at=Le.result;at.close(),ke(at)}});return Pe.then(function(ke){q.db=ke;for(var We=0;We<Y.length;We++){var Le=Y[We];Le._dbInfo.db=ke,Ne(Le._dbInfo)}}).catch(function(ke){throw(it(p,ke)||z.resolve()).catch(function(){}),ke})}}):k=N.then(function(j){ze(p);var G=be[p.name],q=G.forages;j.close();for(var Y=0;Y<q.length;Y++){var Z=q[Y];Z._dbInfo.db=null}var ye=new z(function(Pe,ke){var We=F.deleteDatabase(p.name);We.onerror=function(){var Le=We.result;Le&&Le.close(),ke(We.error)},We.onblocked=function(){console.warn('dropInstance blocked for database "'+p.name+'" until all open connections are closed')},We.onsuccess=function(){var Le=We.result;Le&&Le.close(),Pe(Le)}});return ye.then(function(Pe){G.db=Pe;for(var ke=0;ke<q.length;ke++){var We=q[ke];Ne(We._dbInfo)}}).catch(function(Pe){throw(it(p,Pe)||z.resolve()).catch(function(){}),Pe})})}return H(k,_),k}var or={_driver:"asyncStorage",_initStorage:Ii,_support:W(),iterate:Ur,getItem:On,setItem:kr,removeItem:Pt,clear:$n,length:Wn,key:jn,keys:xt,dropInstance:sr};function le(){return typeof openDatabase=="function"}var $e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Bn="~~local_forage_type~",Mi=/^~~local_forage_type~([^~]+)~/,Ar="__lfsc__:",Dr=Ar.length,Fr="arbf",Nt="blob",wt="si08",Lt="ui08",Ot="uic8",Ni="si16",lr="si32",Hr="ur16",zr="ui32",Oi="fl32",$t="fl64",Qt=Dr+Fr.length,Vr=Object.prototype.toString;function Gr(p){var _=p.length*.75,v=p.length,C,k=0,S,N,j,G;p[p.length-1]==="="&&(_--,p[p.length-2]==="="&&_--);var q=new ArrayBuffer(_),Y=new Uint8Array(q);for(C=0;C<v;C+=4)S=$e.indexOf(p[C]),N=$e.indexOf(p[C+1]),j=$e.indexOf(p[C+2]),G=$e.indexOf(p[C+3]),Y[k++]=S<<2|N>>4,Y[k++]=(N&15)<<4|j>>2,Y[k++]=(j&3)<<6|G&63;return q}function Ze(p){var _=new Uint8Array(p),v="",C;for(C=0;C<_.length;C+=3)v+=$e[_[C]>>2],v+=$e[(_[C]&3)<<4|_[C+1]>>4],v+=$e[(_[C+1]&15)<<2|_[C+2]>>6],v+=$e[_[C+2]&63];return _.length%3==2?v=v.substring(0,v.length-1)+"=":_.length%3==1&&(v=v.substring(0,v.length-2)+"=="),v}function et(p,_){var v="";if(p&&(v=Vr.call(p)),p&&(v==="[object ArrayBuffer]"||p.buffer&&Vr.call(p.buffer)==="[object ArrayBuffer]")){var C,k=Ar;p instanceof ArrayBuffer?(C=p,k+=Fr):(C=p.buffer,v==="[object Int8Array]"?k+=wt:v==="[object Uint8Array]"?k+=Lt:v==="[object Uint8ClampedArray]"?k+=Ot:v==="[object Int16Array]"?k+=Ni:v==="[object Uint16Array]"?k+=Hr:v==="[object Int32Array]"?k+=lr:v==="[object Uint32Array]"?k+=zr:v==="[object Float32Array]"?k+=Oi:v==="[object Float64Array]"?k+=$t:_(new Error("Failed to get type for BinaryArray"))),_(k+Ze(C))}else if(v==="[object Blob]"){var S=new FileReader;S.onload=function(){var N=Bn+p.type+"~"+Ze(this.result);_(Ar+Nt+N)},S.readAsArrayBuffer(p)}else try{_(JSON.stringify(p))}catch(N){console.error("Couldn't convert value into a JSON string: ",p),_(null,N)}}function qr(p){if(p.substring(0,Dr)!==Ar)return JSON.parse(p);var _=p.substring(Qt),v=p.substring(Dr,Qt),C;if(v===Nt&&Mi.test(_)){var k=_.match(Mi);C=k[1],_=_.substring(k[0].length)}var S=Gr(_);switch(v){case Fr:return S;case Nt:return ue([S],{type:C});case wt:return new Int8Array(S);case Lt:return new Uint8Array(S);case Ot:return new Uint8ClampedArray(S);case Ni:return new Int16Array(S);case Hr:return new Uint16Array(S);case lr:return new Int32Array(S);case zr:return new Uint32Array(S);case Oi:return new Float32Array(S);case $t:return new Float64Array(S);default:throw new Error("Unkown type: "+v)}}var Yr={serialize:et,deserialize:qr,stringToBuffer:Gr,bufferToString:Ze};function Xr(p,_,v,C){p.executeSql("CREATE TABLE IF NOT EXISTS "+_.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],v,C)}function $i(p){var _=this,v={db:null};if(p)for(var C in p)v[C]=typeof p[C]!="string"?p[C].toString():p[C];var k=new z(function(S,N){try{v.db=openDatabase(v.name,String(v.version),v.description,v.size)}catch(j){return N(j)}v.db.transaction(function(j){Xr(j,v,function(){_._dbInfo=v,S()},function(G,q){N(q)})},N)});return v.serializer=Yr,k}function nt(p,_,v,C,k,S){p.executeSql(v,C,k,function(N,j){j.code===j.SYNTAX_ERR?N.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?",[_.storeName],function(G,q){q.rows.length?S(G,j):Xr(G,_,function(){G.executeSql(v,C,k,S)},S)},S):S(N,j)},S)}function Jt(p,_){var v=this;p=de(p);var C=new z(function(k,S){v.ready().then(function(){var N=v._dbInfo;N.db.transaction(function(j){nt(j,N,"SELECT * FROM "+N.storeName+" WHERE key = ? LIMIT 1",[p],function(G,q){var Y=q.rows.length?q.rows.item(0).value:null;Y&&(Y=N.serializer.deserialize(Y)),k(Y)},function(G,q){S(q)})})}).catch(S)});return H(C,_),C}function Un(p,_){var v=this,C=new z(function(k,S){v.ready().then(function(){var N=v._dbInfo;N.db.transaction(function(j){nt(j,N,"SELECT * FROM "+N.storeName,[],function(G,q){for(var Y=q.rows,Z=Y.length,ye=0;ye<Z;ye++){var Pe=Y.item(ye),ke=Pe.value;if(ke&&(ke=N.serializer.deserialize(ke)),ke=p(ke,Pe.key,ye+1),ke!==void 0){k(ke);return}}k()},function(G,q){S(q)})})}).catch(S)});return H(C,_),C}function Wi(p,_,v,C){var k=this;p=de(p);var S=new z(function(N,j){k.ready().then(function(){_===void 0&&(_=null);var G=_,q=k._dbInfo;q.serializer.serialize(_,function(Y,Z){Z?j(Z):q.db.transaction(function(ye){nt(ye,q,"INSERT OR REPLACE INTO "+q.storeName+" (key, value) VALUES (?, ?)",[p,Y],function(){N(G)},function(Pe,ke){j(ke)})},function(ye){if(ye.code===ye.QUOTA_ERR){if(C>0){N(Wi.apply(k,[p,G,v,C-1]));return}j(ye)}})})}).catch(j)});return H(S,v),S}function Qr(p,_,v){return Wi.apply(this,[p,_,v,1])}function Lr(p,_){var v=this;p=de(p);var C=new z(function(k,S){v.ready().then(function(){var N=v._dbInfo;N.db.transaction(function(j){nt(j,N,"DELETE FROM "+N.storeName+" WHERE key = ?",[p],function(){k()},function(G,q){S(q)})})}).catch(S)});return H(C,_),C}function Hn(p){var _=this,v=new z(function(C,k){_.ready().then(function(){var S=_._dbInfo;S.db.transaction(function(N){nt(N,S,"DELETE FROM "+S.storeName,[],function(){C()},function(j,G){k(G)})})}).catch(k)});return H(v,p),v}function zn(p){var _=this,v=new z(function(C,k){_.ready().then(function(){var S=_._dbInfo;S.db.transaction(function(N){nt(N,S,"SELECT COUNT(key) as c FROM "+S.storeName,[],function(j,G){var q=G.rows.item(0).c;C(q)},function(j,G){k(G)})})}).catch(k)});return H(v,p),v}function Vn(p,_){var v=this,C=new z(function(k,S){v.ready().then(function(){var N=v._dbInfo;N.db.transaction(function(j){nt(j,N,"SELECT key FROM "+N.storeName+" WHERE id = ? LIMIT 1",[p+1],function(G,q){var Y=q.rows.length?q.rows.item(0).key:null;k(Y)},function(G,q){S(q)})})}).catch(S)});return H(C,_),C}function ji(p){var _=this,v=new z(function(C,k){_.ready().then(function(){var S=_._dbInfo;S.db.transaction(function(N){nt(N,S,"SELECT key FROM "+S.storeName,[],function(j,G){for(var q=[],Y=0;Y<G.rows.length;Y++)q.push(G.rows.item(Y).key);C(q)},function(j,G){k(G)})})}).catch(k)});return H(v,p),v}function Gn(p){return new z(function(_,v){p.transaction(function(C){C.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name <> '__WebKitDatabaseInfoTable__'",[],function(k,S){for(var N=[],j=0;j<S.rows.length;j++)N.push(S.rows.item(j).name);_({db:p,storeNames:N})},function(k,S){v(S)})},function(C){v(C)})})}function qn(p,_){_=K.apply(this,arguments);var v=this.config();p=typeof p!="function"&&p||{},p.name||(p.name=p.name||v.name,p.storeName=p.storeName||v.storeName);var C=this,k;return p.name?k=new z(function(S){var N;p.name===v.name?N=C._dbInfo.db:N=openDatabase(p.name,"","",0),p.storeName?S({db:N,storeNames:[p.storeName]}):S(Gn(N))}).then(function(S){return new z(function(N,j){S.db.transaction(function(G){function q(Pe){return new z(function(ke,We){G.executeSql("DROP TABLE IF EXISTS "+Pe,[],function(){ke()},function(Le,at){We(at)})})}for(var Y=[],Z=0,ye=S.storeNames.length;Z<ye;Z++)Y.push(q(S.storeNames[Z]));z.all(Y).then(function(){N()}).catch(function(Pe){j(Pe)})},function(G){j(G)})})}):k=z.reject("Invalid arguments"),H(k,_),k}var Bi={_driver:"webSQLStorage",_initStorage:$i,_support:le(),iterate:Un,getItem:Jt,setItem:Qr,removeItem:Lr,clear:Hn,length:zn,key:Vn,keys:ji,dropInstance:qn};function Yn(){try{return typeof localStorage!="undefined"&&"setItem"in localStorage&&!!localStorage.setItem}catch(p){return!1}}function Wt(p,_){var v=p.name+"/";return p.storeName!==_.storeName&&(v+=p.storeName+"/"),v}function Ui(){var p="_localforage_support_test";try{return localStorage.setItem(p,!0),localStorage.removeItem(p),!1}catch(_){return!0}}function Jr(){return!Ui()||localStorage.length>0}function Kr(p){var _=this,v={};if(p)for(var C in p)v[C]=p[C];return v.keyPrefix=Wt(p,_._defaultConfig),Jr()?(_._dbInfo=v,v.serializer=Yr,z.resolve()):z.reject()}function Rr(p){var _=this,v=_.ready().then(function(){for(var C=_._dbInfo.keyPrefix,k=localStorage.length-1;k>=0;k--){var S=localStorage.key(k);S.indexOf(C)===0&&localStorage.removeItem(S)}});return H(v,p),v}function Hi(p,_){var v=this;p=de(p);var C=v.ready().then(function(){var k=v._dbInfo,S=localStorage.getItem(k.keyPrefix+p);return S&&(S=k.serializer.deserialize(S)),S});return H(C,_),C}function Xn(p,_){var v=this,C=v.ready().then(function(){for(var k=v._dbInfo,S=k.keyPrefix,N=S.length,j=localStorage.length,G=1,q=0;q<j;q++){var Y=localStorage.key(q);if(Y.indexOf(S)===0){var Z=localStorage.getItem(Y);if(Z&&(Z=k.serializer.deserialize(Z)),Z=p(Z,Y.substring(N),G++),Z!==void 0)return Z}}});return H(C,_),C}function zi(p,_){var v=this,C=v.ready().then(function(){var k=v._dbInfo,S;try{S=localStorage.key(p)}catch(N){S=null}return S&&(S=S.substring(k.keyPrefix.length)),S});return H(C,_),C}function Qn(p){var _=this,v=_.ready().then(function(){for(var C=_._dbInfo,k=localStorage.length,S=[],N=0;N<k;N++){var j=localStorage.key(N);j.indexOf(C.keyPrefix)===0&&S.push(j.substring(C.keyPrefix.length))}return S});return H(v,p),v}function ur(p){var _=this,v=_.keys().then(function(C){return C.length});return H(v,p),v}function Vi(p,_){var v=this;p=de(p);var C=v.ready().then(function(){var k=v._dbInfo;localStorage.removeItem(k.keyPrefix+p)});return H(C,_),C}function Gi(p,_,v){var C=this;p=de(p);var k=C.ready().then(function(){_===void 0&&(_=null);var S=_;return new z(function(N,j){var G=C._dbInfo;G.serializer.serialize(_,function(q,Y){if(Y)j(Y);else try{localStorage.setItem(G.keyPrefix+p,q),N(S)}catch(Z){(Z.name==="QuotaExceededError"||Z.name==="NS_ERROR_DOM_QUOTA_REACHED")&&j(Z),j(Z)}})})});return H(k,v),k}function qi(p,_){if(_=K.apply(this,arguments),p=typeof p!="function"&&p||{},!p.name){var v=this.config();p.name=p.name||v.name,p.storeName=p.storeName||v.storeName}var C=this,k;return p.name?k=new z(function(S){p.storeName?S(Wt(p,C._defaultConfig)):S(p.name+"/")}).then(function(S){for(var N=localStorage.length-1;N>=0;N--){var j=localStorage.key(N);j.indexOf(S)===0&&localStorage.removeItem(j)}}):k=z.reject("Invalid arguments"),H(k,_),k}var Yi={_driver:"localStorageWrapper",_initStorage:Kr,_support:Yn(),iterate:Xn,getItem:Hi,setItem:Gi,removeItem:Vi,clear:Rr,length:ur,key:zi,keys:Qn,dropInstance:qi},Jn=function(_,v){return _===v||typeof _=="number"&&typeof v=="number"&&isNaN(_)&&isNaN(v)},Zr=function(_,v){for(var C=_.length,k=0;k<C;){if(Jn(_[k],v))return!0;k++}return!1},Xi=Array.isArray||function(p){return Object.prototype.toString.call(p)==="[object Array]"},cr={},ei={},jt={INDEXEDDB:or,WEBSQL:Bi,LOCALSTORAGE:Yi},ti=[jt.INDEXEDDB._driver,jt.WEBSQL._driver,jt.LOCALSTORAGE._driver],fr=["dropInstance"],Xe=["clear","getItem","iterate","key","keys","length","removeItem","setItem"].concat(fr),Kt={description:"",driver:ti.slice(),name:"localforage",size:4980736,storeName:"keyvaluepairs",version:1};function Ir(p,_){p[_]=function(){var v=arguments;return p.ready().then(function(){return p[_].apply(p,v)})}}function ri(){for(var p=1;p<arguments.length;p++){var _=arguments[p];if(_)for(var v in _)_.hasOwnProperty(v)&&(Xi(_[v])?arguments[0][v]=_[v].slice():arguments[0][v]=_[v])}return arguments[0]}var Kn=function(){function p(_){y(this,p);for(var v in jt)if(jt.hasOwnProperty(v)){var C=jt[v],k=C._driver;this[v]=k,cr[k]||this.defineDriver(C)}this._defaultConfig=ri({},Kt),this._config=ri({},this._defaultConfig,_),this._driverSet=null,this._initDriver=null,this._ready=!1,this._dbInfo=null,this._wrapLibraryMethodsWithReady(),this.setDriver(this._config.driver).catch(function(){})}return p.prototype.config=function(v){if((typeof v=="undefined"?"undefined":m(v))==="object"){if(this._ready)return new Error("Can't call config() after localforage has been used.");for(var C in v){if(C==="storeName"&&(v[C]=v[C].replace(/\W/g,"_")),C==="version"&&typeof v[C]!="number")return new Error("Database version must be a number.");this._config[C]=v[C]}return"driver"in v&&v.driver?this.setDriver(this._config.driver):!0}else return typeof v=="string"?this._config[v]:this._config},p.prototype.defineDriver=function(v,C,k){var S=new z(function(N,j){try{var G=v._driver,q=new Error("Custom driver not compliant; see https://mozilla.github.io/localForage/#definedriver");if(!v._driver){j(q);return}for(var Y=Xe.concat("_initStorage"),Z=0,ye=Y.length;Z<ye;Z++){var Pe=Y[Z],ke=!Zr(fr,Pe);if((ke||v[Pe])&&typeof v[Pe]!="function"){j(q);return}}var We=function(){for(var Bt=function(si){return function(){var Zn=new Error("Method "+si+" is not implemented by the current driver"),Ji=z.reject(Zn);return H(Ji,arguments[arguments.length-1]),Ji}},ni=0,Qi=fr.length;ni<Qi;ni++){var ai=fr[ni];v[ai]||(v[ai]=Bt(ai))}};We();var Le=function(Bt){cr[G]&&console.info("Redefining LocalForage driver: "+G),cr[G]=v,ei[G]=Bt,N()};"_support"in v?v._support&&typeof v._support=="function"?v._support().then(Le,j):Le(!!v._support):Le(!0)}catch(at){j(at)}});return V(S,C,k),S},p.prototype.driver=function(){return this._driver||null},p.prototype.getDriver=function(v,C,k){var S=cr[v]?z.resolve(cr[v]):z.reject(new Error("Driver not found."));return V(S,C,k),S},p.prototype.getSerializer=function(v){var C=z.resolve(Yr);return V(C,v),C},p.prototype.ready=function(v){var C=this,k=C._driverSet.then(function(){return C._ready===null&&(C._ready=C._initDriver()),C._ready});return V(k,v,v),k},p.prototype.setDriver=function(v,C,k){var S=this;Xi(v)||(v=[v]);var N=this._getSupportedDrivers(v);function j(){S._config.driver=S.driver()}function G(Z){return S._extend(Z),j(),S._ready=S._initStorage(S._config),S._ready}function q(Z){return function(){var ye=0;function Pe(){for(;ye<Z.length;){var ke=Z[ye];return ye++,S._dbInfo=null,S._ready=null,S.getDriver(ke).then(G).catch(Pe)}j();var We=new Error("No available storage method found.");return S._driverSet=z.reject(We),S._driverSet}return Pe()}}var Y=this._driverSet!==null?this._driverSet.catch(function(){return z.resolve()}):z.resolve();return this._driverSet=Y.then(function(){var Z=N[0];return S._dbInfo=null,S._ready=null,S.getDriver(Z).then(function(ye){S._driver=ye._driver,j(),S._wrapLibraryMethodsWithReady(),S._initDriver=q(N)})}).catch(function(){j();var Z=new Error("No available storage method found.");return S._driverSet=z.reject(Z),S._driverSet}),V(this._driverSet,C,k),this._driverSet},p.prototype.supports=function(v){return!!ei[v]},p.prototype._extend=function(v){ri(this,v)},p.prototype._getSupportedDrivers=function(v){for(var C=[],k=0,S=v.length;k<S;k++){var N=v[k];this.supports(N)&&C.push(N)}return C},p.prototype._wrapLibraryMethodsWithReady=function(){for(var v=0,C=Xe.length;v<C;v++)Ir(this,Xe[v])},p.prototype.createInstance=function(v){return new p(v)},p}(),ii=new Kn;u.exports=ii},{"3":3}]},{},[4])(4)})});var Ys=Ds((qs,mn)=>{(function(l,t){"use strict";typeof mn=="object"&&typeof mn.exports=="object"?mn.exports=l.document?t(l,!0):function(r){if(!r.document)throw new Error("jQuery requires a window with a document");return t(r)}:t(l)})(typeof window!="undefined"?window:qs,function(l,t){"use strict";var r=[],a=Object.getPrototypeOf,u=r.slice,d=r.flat?function(e){return r.flat.call(e)}:function(e){return r.concat.apply([],e)},m=r.push,y=r.indexOf,b={},F=b.toString,W=b.hasOwnProperty,ue=W.toString,z=ue.call(Object),H={},V=function(i){return typeof i=="function"&&typeof i.nodeType!="number"&&typeof i.item!="function"},de=function(i){return i!=null&&i===i.window},K=l.document,xe={type:!0,src:!0,nonce:!0,noModule:!0};function Ce(e,i,n){n=n||K;var s,c,f=n.createElement("script");if(f.text=e,i)for(s in xe)c=i[s]||i.getAttribute&&i.getAttribute(s),c&&f.setAttribute(s,c);n.head.appendChild(f).parentNode.removeChild(f)}function be(e){return e==null?e+"":typeof e=="object"||typeof e=="function"?b[F.call(e)]||"object":typeof e}var _e="3.6.3",o=function(e,i){return new o.fn.init(e,i)};o.fn=o.prototype={jquery:_e,constructor:o,length:0,toArray:function(){return u.call(this)},get:function(e){return e==null?u.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var i=o.merge(this.constructor(),e);return i.prevObject=this,i},each:function(e){return o.each(this,e)},map:function(e){return this.pushStack(o.map(this,function(i,n){return e.call(i,n,i)}))},slice:function(){return this.pushStack(u.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(o.grep(this,function(e,i){return(i+1)%2}))},odd:function(){return this.pushStack(o.grep(this,function(e,i){return i%2}))},eq:function(e){var i=this.length,n=+e+(e<0?i:0);return this.pushStack(n>=0&&n<i?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:m,sort:r.sort,splice:r.splice},o.extend=o.fn.extend=function(){var e,i,n,s,c,f,h=arguments[0]||{},E=1,x=arguments.length,D=!1;for(typeof h=="boolean"&&(D=h,h=arguments[E]||{},E++),typeof h!="object"&&!V(h)&&(h={}),E===x&&(h=this,E--);E<x;E++)if((e=arguments[E])!=null)for(i in e)s=e[i],!(i==="__proto__"||h===s)&&(D&&s&&(o.isPlainObject(s)||(c=Array.isArray(s)))?(n=h[i],c&&!Array.isArray(n)?f=[]:!c&&!o.isPlainObject(n)?f={}:f=n,c=!1,h[i]=o.extend(D,f,s)):s!==void 0&&(h[i]=s));return h},o.extend({expando:"jQuery"+(_e+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var i,n;return!e||F.call(e)!=="[object Object]"?!1:(i=a(e),i?(n=W.call(i,"constructor")&&i.constructor,typeof n=="function"&&ue.call(n)===z):!0)},isEmptyObject:function(e){var i;for(i in e)return!1;return!0},globalEval:function(e,i,n){Ce(e,{nonce:i&&i.nonce},n)},each:function(e,i){var n,s=0;if(X(e))for(n=e.length;s<n&&i.call(e[s],s,e[s])!==!1;s++);else for(s in e)if(i.call(e[s],s,e[s])===!1)break;return e},makeArray:function(e,i){var n=i||[];return e!=null&&(X(Object(e))?o.merge(n,typeof e=="string"?[e]:e):m.call(n,e)),n},inArray:function(e,i,n){return i==null?-1:y.call(i,e,n)},merge:function(e,i){for(var n=+i.length,s=0,c=e.length;s<n;s++)e[c++]=i[s];return e.length=c,e},grep:function(e,i,n){for(var s,c=[],f=0,h=e.length,E=!n;f<h;f++)s=!i(e[f],f),s!==E&&c.push(e[f]);return c},map:function(e,i,n){var s,c,f=0,h=[];if(X(e))for(s=e.length;f<s;f++)c=i(e[f],f,n),c!=null&&h.push(c);else for(f in e)c=i(e[f],f,n),c!=null&&h.push(c);return d(h)},guid:1,support:H}),typeof Symbol=="function"&&(o.fn[Symbol.iterator]=r[Symbol.iterator]),o.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,i){b["[object "+i+"]"]=i.toLowerCase()});function X(e){var i=!!e&&"length"in e&&e.length,n=be(e);return V(e)||de(e)?!1:n==="array"||i===0||typeof i=="number"&&i>0&&i-1 in e}var ne=function(e){var i,n,s,c,f,h,E,x,D,R,B,L,I,ie,ve,re,Ge,Ve,ht,Fe="sizzle"+1*new Date,ge=e.document,ut=0,Te=0,je=tn(),li=tn(),Ki=tn(),pt=tn(),dr=function(g,w){return g===w&&(B=!0),0},hr={}.hasOwnProperty,ct=[],Zt=ct.pop,Et=ct.push,er=ct.push,ws=ct.slice,pr=function(g,w){for(var T=0,M=g.length;T<M;T++)if(g[T]===w)return T;return-1},na="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",Ae="[\\x20\\t\\r\\n\\f]",gr="(?:\\\\[\\da-fA-F]{1,6}"+Ae+"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",Es="\\["+Ae+"*("+gr+")(?:"+Ae+"*([*^$|!~]?=)"+Ae+`*(?:'((?:\\\\.|[^\\\\'])*)'|"((?:\\\\.|[^\\\\"])*)"|(`+gr+"))|)"+Ae+"*\\]",aa=":("+gr+`)(?:\\((('((?:\\\\.|[^\\\\'])*)'|"((?:\\\\.|[^\\\\"])*)")|((?:\\\\.|[^\\\\()[\\]]|`+Es+")*)|.*)\\)|)",hl=new RegExp(Ae+"+","g"),Zi=new RegExp("^"+Ae+"+|((?:^|[^\\\\])(?:\\\\.)*)"+Ae+"+$","g"),pl=new RegExp("^"+Ae+"*,"+Ae+"*"),_s=new RegExp("^"+Ae+"*([>+~]|"+Ae+")"+Ae+"*"),gl=new RegExp(Ae+"|>"),ml=new RegExp(aa),vl=new RegExp("^"+gr+"$"),en={ID:new RegExp("^#("+gr+")"),CLASS:new RegExp("^\\.("+gr+")"),TAG:new RegExp("^("+gr+"|[*])"),ATTR:new RegExp("^"+Es),PSEUDO:new RegExp("^"+aa),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+Ae+"*(even|odd|(([+-]|)(\\d*)n|)"+Ae+"*(?:([+-]|)"+Ae+"*(\\d+)|))"+Ae+"*\\)|)","i"),bool:new RegExp("^(?:"+na+")$","i"),needsContext:new RegExp("^"+Ae+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+Ae+"*((?:-\\d)?\\d*)"+Ae+"*\\)|)(?=[^-]|$)","i")},bl=/HTML$/i,yl=/^(?:input|select|textarea|button)$/i,xl=/^h\d$/i,ui=/^[^{]+\{\s*\[native \w/,wl=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,sa=/[+~]/,Ut=new RegExp("\\\\[\\da-fA-F]{1,6}"+Ae+"?|\\\\([^\\r\\n\\f])","g"),Ht=function(g,w){var T="0x"+g.slice(1)-65536;return w||(T<0?String.fromCharCode(T+65536):String.fromCharCode(T>>10|55296,T&1023|56320))},Ss=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,Ts=function(g,w){return w?g==="\0"?"\uFFFD":g.slice(0,-1)+"\\"+g.charCodeAt(g.length-1).toString(16)+" ":"\\"+g},Cs=function(){L()},El=nn(function(g){return g.disabled===!0&&g.nodeName.toLowerCase()==="fieldset"},{dir:"parentNode",next:"legend"});try{er.apply(ct=ws.call(ge.childNodes),ge.childNodes),ct[ge.childNodes.length].nodeType}catch(g){er={apply:ct.length?function(w,T){Et.apply(w,ws.call(T))}:function(w,T){for(var M=w.length,A=0;w[M++]=T[A++];);w.length=M-1}}}function Re(g,w,T,M){var A,O,U,Q,J,ce,se,he=w&&w.ownerDocument,Ee=w?w.nodeType:9;if(T=T||[],typeof g!="string"||!g||Ee!==1&&Ee!==9&&Ee!==11)return T;if(!M&&(L(w),w=w||I,ve)){if(Ee!==11&&(J=wl.exec(g)))if(A=J[1]){if(Ee===9)if(U=w.getElementById(A)){if(U.id===A)return T.push(U),T}else return T;else if(he&&(U=he.getElementById(A))&&ht(w,U)&&U.id===A)return T.push(U),T}else{if(J[2])return er.apply(T,w.getElementsByTagName(g)),T;if((A=J[3])&&n.getElementsByClassName&&w.getElementsByClassName)return er.apply(T,w.getElementsByClassName(A)),T}if(n.qsa&&!pt[g+" "]&&(!re||!re.test(g))&&(Ee!==1||w.nodeName.toLowerCase()!=="object")){if(se=g,he=w,Ee===1&&(gl.test(g)||_s.test(g))){for(he=sa.test(g)&&la(w.parentNode)||w,(he!==w||!n.scope)&&((Q=w.getAttribute("id"))?Q=Q.replace(Ss,Ts):w.setAttribute("id",Q=Fe)),ce=h(g),O=ce.length;O--;)ce[O]=(Q?"#"+Q:":scope")+" "+rn(ce[O]);se=ce.join(",")}try{if(n.cssSupportsSelector&&!CSS.supports("selector(:is("+se+"))"))throw new Error;return er.apply(T,he.querySelectorAll(se)),T}catch(Ie){pt(g,!0)}finally{Q===Fe&&w.removeAttribute("id")}}}return x(g.replace(Zi,"$1"),w,T,M)}function tn(){var g=[];function w(T,M){return g.push(T+" ")>s.cacheLength&&delete w[g.shift()],w[T+" "]=M}return w}function kt(g){return g[Fe]=!0,g}function _t(g){var w=I.createElement("fieldset");try{return!!g(w)}catch(T){return!1}finally{w.parentNode&&w.parentNode.removeChild(w),w=null}}function oa(g,w){for(var T=g.split("|"),M=T.length;M--;)s.attrHandle[T[M]]=w}function Ps(g,w){var T=w&&g,M=T&&g.nodeType===1&&w.nodeType===1&&g.sourceIndex-w.sourceIndex;if(M)return M;if(T){for(;T=T.nextSibling;)if(T===w)return-1}return g?1:-1}function _l(g){return function(w){var T=w.nodeName.toLowerCase();return T==="input"&&w.type===g}}function Sl(g){return function(w){var T=w.nodeName.toLowerCase();return(T==="input"||T==="button")&&w.type===g}}function ks(g){return function(w){return"form"in w?w.parentNode&&w.disabled===!1?"label"in w?"label"in w.parentNode?w.parentNode.disabled===g:w.disabled===g:w.isDisabled===g||w.isDisabled!==!g&&El(w)===g:w.disabled===g:"label"in w?w.disabled===g:!1}}function mr(g){return kt(function(w){return w=+w,kt(function(T,M){for(var A,O=g([],T.length,w),U=O.length;U--;)T[A=O[U]]&&(T[A]=!(M[A]=T[A]))})})}function la(g){return g&&typeof g.getElementsByTagName!="undefined"&&g}n=Re.support={},f=Re.isXML=function(g){var w=g&&g.namespaceURI,T=g&&(g.ownerDocument||g).documentElement;return!bl.test(w||T&&T.nodeName||"HTML")},L=Re.setDocument=function(g){var w,T,M=g?g.ownerDocument||g:ge;return M==I||M.nodeType!==9||!M.documentElement||(I=M,ie=I.documentElement,ve=!f(I),ge!=I&&(T=I.defaultView)&&T.top!==T&&(T.addEventListener?T.addEventListener("unload",Cs,!1):T.attachEvent&&T.attachEvent("onunload",Cs)),n.scope=_t(function(A){return ie.appendChild(A).appendChild(I.createElement("div")),typeof A.querySelectorAll!="undefined"&&!A.querySelectorAll(":scope fieldset div").length}),n.cssSupportsSelector=_t(function(){return CSS.supports("selector(*)")&&I.querySelectorAll(":is(:jqfake)")&&!CSS.supports("selector(:is(*,:jqfake))")}),n.attributes=_t(function(A){return A.className="i",!A.getAttribute("className")}),n.getElementsByTagName=_t(function(A){return A.appendChild(I.createComment("")),!A.getElementsByTagName("*").length}),n.getElementsByClassName=ui.test(I.getElementsByClassName),n.getById=_t(function(A){return ie.appendChild(A).id=Fe,!I.getElementsByName||!I.getElementsByName(Fe).length}),n.getById?(s.filter.ID=function(A){var O=A.replace(Ut,Ht);return function(U){return U.getAttribute("id")===O}},s.find.ID=function(A,O){if(typeof O.getElementById!="undefined"&&ve){var U=O.getElementById(A);return U?[U]:[]}}):(s.filter.ID=function(A){var O=A.replace(Ut,Ht);return function(U){var Q=typeof U.getAttributeNode!="undefined"&&U.getAttributeNode("id");return Q&&Q.value===O}},s.find.ID=function(A,O){if(typeof O.getElementById!="undefined"&&ve){var U,Q,J,ce=O.getElementById(A);if(ce){if(U=ce.getAttributeNode("id"),U&&U.value===A)return[ce];for(J=O.getElementsByName(A),Q=0;ce=J[Q++];)if(U=ce.getAttributeNode("id"),U&&U.value===A)return[ce]}return[]}}),s.find.TAG=n.getElementsByTagName?function(A,O){if(typeof O.getElementsByTagName!="undefined")return O.getElementsByTagName(A);if(n.qsa)return O.querySelectorAll(A)}:function(A,O){var U,Q=[],J=0,ce=O.getElementsByTagName(A);if(A==="*"){for(;U=ce[J++];)U.nodeType===1&&Q.push(U);return Q}return ce},s.find.CLASS=n.getElementsByClassName&&function(A,O){if(typeof O.getElementsByClassName!="undefined"&&ve)return O.getElementsByClassName(A)},Ge=[],re=[],(n.qsa=ui.test(I.querySelectorAll))&&(_t(function(A){var O;ie.appendChild(A).innerHTML="<a id='"+Fe+"'></a><select id='"+Fe+"-\r\\' msallowcapture=''><option selected=''></option></select>",A.querySelectorAll("[msallowcapture^='']").length&&re.push("[*^$]="+Ae+`*(?:''|"")`),A.querySelectorAll("[selected]").length||re.push("\\["+Ae+"*(?:value|"+na+")"),A.querySelectorAll("[id~="+Fe+"-]").length||re.push("~="),O=I.createElement("input"),O.setAttribute("name",""),A.appendChild(O),A.querySelectorAll("[name='']").length||re.push("\\["+Ae+"*name"+Ae+"*="+Ae+`*(?:''|"")`),A.querySelectorAll(":checked").length||re.push(":checked"),A.querySelectorAll("a#"+Fe+"+*").length||re.push(".#.+[+~]"),A.querySelectorAll("\\\f"),re.push("[\\r\\n\\f]")}),_t(function(A){A.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var O=I.createElement("input");O.setAttribute("type","hidden"),A.appendChild(O).setAttribute("name","D"),A.querySelectorAll("[name=d]").length&&re.push("name"+Ae+"*[*^$|!~]?="),A.querySelectorAll(":enabled").length!==2&&re.push(":enabled",":disabled"),ie.appendChild(A).disabled=!0,A.querySelectorAll(":disabled").length!==2&&re.push(":enabled",":disabled"),A.querySelectorAll("*,:x"),re.push(",.*:")})),(n.matchesSelector=ui.test(Ve=ie.matches||ie.webkitMatchesSelector||ie.mozMatchesSelector||ie.oMatchesSelector||ie.msMatchesSelector))&&_t(function(A){n.disconnectedMatch=Ve.call(A,"*"),Ve.call(A,"[s!='']:x"),Ge.push("!=",aa)}),n.cssSupportsSelector||re.push(":has"),re=re.length&&new RegExp(re.join("|")),Ge=Ge.length&&new RegExp(Ge.join("|")),w=ui.test(ie.compareDocumentPosition),ht=w||ui.test(ie.contains)?function(A,O){var U=A.nodeType===9&&A.documentElement||A,Q=O&&O.parentNode;return A===Q||!!(Q&&Q.nodeType===1&&(U.contains?U.contains(Q):A.compareDocumentPosition&&A.compareDocumentPosition(Q)&16))}:function(A,O){if(O){for(;O=O.parentNode;)if(O===A)return!0}return!1},dr=w?function(A,O){if(A===O)return B=!0,0;var U=!A.compareDocumentPosition-!O.compareDocumentPosition;return U||(U=(A.ownerDocument||A)==(O.ownerDocument||O)?A.compareDocumentPosition(O):1,U&1||!n.sortDetached&&O.compareDocumentPosition(A)===U?A==I||A.ownerDocument==ge&&ht(ge,A)?-1:O==I||O.ownerDocument==ge&&ht(ge,O)?1:R?pr(R,A)-pr(R,O):0:U&4?-1:1)}:function(A,O){if(A===O)return B=!0,0;var U,Q=0,J=A.parentNode,ce=O.parentNode,se=[A],he=[O];if(!J||!ce)return A==I?-1:O==I?1:J?-1:ce?1:R?pr(R,A)-pr(R,O):0;if(J===ce)return Ps(A,O);for(U=A;U=U.parentNode;)se.unshift(U);for(U=O;U=U.parentNode;)he.unshift(U);for(;se[Q]===he[Q];)Q++;return Q?Ps(se[Q],he[Q]):se[Q]==ge?-1:he[Q]==ge?1:0}),I},Re.matches=function(g,w){return Re(g,null,null,w)},Re.matchesSelector=function(g,w){if(L(g),n.matchesSelector&&ve&&!pt[w+" "]&&(!Ge||!Ge.test(w))&&(!re||!re.test(w)))try{var T=Ve.call(g,w);if(T||n.disconnectedMatch||g.document&&g.document.nodeType!==11)return T}catch(M){pt(w,!0)}return Re(w,I,null,[g]).length>0},Re.contains=function(g,w){return(g.ownerDocument||g)!=I&&L(g),ht(g,w)},Re.attr=function(g,w){(g.ownerDocument||g)!=I&&L(g);var T=s.attrHandle[w.toLowerCase()],M=T&&hr.call(s.attrHandle,w.toLowerCase())?T(g,w,!ve):void 0;return M!==void 0?M:n.attributes||!ve?g.getAttribute(w):(M=g.getAttributeNode(w))&&M.specified?M.value:null},Re.escape=function(g){return(g+"").replace(Ss,Ts)},Re.error=function(g){throw new Error("Syntax error, unrecognized expression: "+g)},Re.uniqueSort=function(g){var w,T=[],M=0,A=0;if(B=!n.detectDuplicates,R=!n.sortStable&&g.slice(0),g.sort(dr),B){for(;w=g[A++];)w===g[A]&&(M=T.push(A));for(;M--;)g.splice(T[M],1)}return R=null,g},c=Re.getText=function(g){var w,T="",M=0,A=g.nodeType;if(A){if(A===1||A===9||A===11){if(typeof g.textContent=="string")return g.textContent;for(g=g.firstChild;g;g=g.nextSibling)T+=c(g)}else if(A===3||A===4)return g.nodeValue}else for(;w=g[M++];)T+=c(w);return T},s=Re.selectors={cacheLength:50,createPseudo:kt,match:en,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(g){return g[1]=g[1].replace(Ut,Ht),g[3]=(g[3]||g[4]||g[5]||"").replace(Ut,Ht),g[2]==="~="&&(g[3]=" "+g[3]+" "),g.slice(0,4)},CHILD:function(g){return g[1]=g[1].toLowerCase(),g[1].slice(0,3)==="nth"?(g[3]||Re.error(g[0]),g[4]=+(g[4]?g[5]+(g[6]||1):2*(g[3]==="even"||g[3]==="odd")),g[5]=+(g[7]+g[8]||g[3]==="odd")):g[3]&&Re.error(g[0]),g},PSEUDO:function(g){var w,T=!g[6]&&g[2];return en.CHILD.test(g[0])?null:(g[3]?g[2]=g[4]||g[5]||"":T&&ml.test(T)&&(w=h(T,!0))&&(w=T.indexOf(")",T.length-w)-T.length)&&(g[0]=g[0].slice(0,w),g[2]=T.slice(0,w)),g.slice(0,3))}},filter:{TAG:function(g){var w=g.replace(Ut,Ht).toLowerCase();return g==="*"?function(){return!0}:function(T){return T.nodeName&&T.nodeName.toLowerCase()===w}},CLASS:function(g){var w=je[g+" "];return w||(w=new RegExp("(^|"+Ae+")"+g+"("+Ae+"|$)"))&&je(g,function(T){return w.test(typeof T.className=="string"&&T.className||typeof T.getAttribute!="undefined"&&T.getAttribute("class")||"")})},ATTR:function(g,w,T){return function(M){var A=Re.attr(M,g);return A==null?w==="!=":w?(A+="",w==="="?A===T:w==="!="?A!==T:w==="^="?T&&A.indexOf(T)===0:w==="*="?T&&A.indexOf(T)>-1:w==="$="?T&&A.slice(-T.length)===T:w==="~="?(" "+A.replace(hl," ")+" ").indexOf(T)>-1:w==="|="?A===T||A.slice(0,T.length+1)===T+"-":!1):!0}},CHILD:function(g,w,T,M,A){var O=g.slice(0,3)!=="nth",U=g.slice(-4)!=="last",Q=w==="of-type";return M===1&&A===0?function(J){return!!J.parentNode}:function(J,ce,se){var he,Ee,Ie,fe,qe,tt,gt=O!==U?"nextSibling":"previousSibling",Oe=J.parentNode,ci=Q&&J.nodeName.toLowerCase(),fi=!se&&!Q,mt=!1;if(Oe){if(O){for(;gt;){for(fe=J;fe=fe[gt];)if(Q?fe.nodeName.toLowerCase()===ci:fe.nodeType===1)return!1;tt=gt=g==="only"&&!tt&&"nextSibling"}return!0}if(tt=[U?Oe.firstChild:Oe.lastChild],U&&fi){for(fe=Oe,Ie=fe[Fe]||(fe[Fe]={}),Ee=Ie[fe.uniqueID]||(Ie[fe.uniqueID]={}),he=Ee[g]||[],qe=he[0]===ut&&he[1],mt=qe&&he[2],fe=qe&&Oe.childNodes[qe];fe=++qe&&fe&&fe[gt]||(mt=qe=0)||tt.pop();)if(fe.nodeType===1&&++mt&&fe===J){Ee[g]=[ut,qe,mt];break}}else if(fi&&(fe=J,Ie=fe[Fe]||(fe[Fe]={}),Ee=Ie[fe.uniqueID]||(Ie[fe.uniqueID]={}),he=Ee[g]||[],qe=he[0]===ut&&he[1],mt=qe),mt===!1)for(;(fe=++qe&&fe&&fe[gt]||(mt=qe=0)||tt.pop())&&!((Q?fe.nodeName.toLowerCase()===ci:fe.nodeType===1)&&++mt&&(fi&&(Ie=fe[Fe]||(fe[Fe]={}),Ee=Ie[fe.uniqueID]||(Ie[fe.uniqueID]={}),Ee[g]=[ut,mt]),fe===J)););return mt-=A,mt===M||mt%M==0&&mt/M>=0}}},PSEUDO:function(g,w){var T,M=s.pseudos[g]||s.setFilters[g.toLowerCase()]||Re.error("unsupported pseudo: "+g);return M[Fe]?M(w):M.length>1?(T=[g,g,"",w],s.setFilters.hasOwnProperty(g.toLowerCase())?kt(function(A,O){for(var U,Q=M(A,w),J=Q.length;J--;)U=pr(A,Q[J]),A[U]=!(O[U]=Q[J])}):function(A){return M(A,0,T)}):M}},pseudos:{not:kt(function(g){var w=[],T=[],M=E(g.replace(Zi,"$1"));return M[Fe]?kt(function(A,O,U,Q){for(var J,ce=M(A,null,Q,[]),se=A.length;se--;)(J=ce[se])&&(A[se]=!(O[se]=J))}):function(A,O,U){return w[0]=A,M(w,null,U,T),w[0]=null,!T.pop()}}),has:kt(function(g){return function(w){return Re(g,w).length>0}}),contains:kt(function(g){return g=g.replace(Ut,Ht),function(w){return(w.textContent||c(w)).indexOf(g)>-1}}),lang:kt(function(g){return vl.test(g||"")||Re.error("unsupported lang: "+g),g=g.replace(Ut,Ht).toLowerCase(),function(w){var T;do if(T=ve?w.lang:w.getAttribute("xml:lang")||w.getAttribute("lang"))return T=T.toLowerCase(),T===g||T.indexOf(g+"-")===0;while((w=w.parentNode)&&w.nodeType===1);return!1}}),target:function(g){var w=e.location&&e.location.hash;return w&&w.slice(1)===g.id},root:function(g){return g===ie},focus:function(g){return g===I.activeElement&&(!I.hasFocus||I.hasFocus())&&!!(g.type||g.href||~g.tabIndex)},enabled:ks(!1),disabled:ks(!0),checked:function(g){var w=g.nodeName.toLowerCase();return w==="input"&&!!g.checked||w==="option"&&!!g.selected},selected:function(g){return g.parentNode&&g.parentNode.selectedIndex,g.selected===!0},empty:function(g){for(g=g.firstChild;g;g=g.nextSibling)if(g.nodeType<6)return!1;return!0},parent:function(g){return!s.pseudos.empty(g)},header:function(g){return xl.test(g.nodeName)},input:function(g){return yl.test(g.nodeName)},button:function(g){var w=g.nodeName.toLowerCase();return w==="input"&&g.type==="button"||w==="button"},text:function(g){var w;return g.nodeName.toLowerCase()==="input"&&g.type==="text"&&((w=g.getAttribute("type"))==null||w.toLowerCase()==="text")},first:mr(function(){return[0]}),last:mr(function(g,w){return[w-1]}),eq:mr(function(g,w,T){return[T<0?T+w:T]}),even:mr(function(g,w){for(var T=0;T<w;T+=2)g.push(T);return g}),odd:mr(function(g,w){for(var T=1;T<w;T+=2)g.push(T);return g}),lt:mr(function(g,w,T){for(var M=T<0?T+w:T>w?w:T;--M>=0;)g.push(M);return g}),gt:mr(function(g,w,T){for(var M=T<0?T+w:T;++M<w;)g.push(M);return g})}},s.pseudos.nth=s.pseudos.eq;for(i in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})s.pseudos[i]=_l(i);for(i in{submit:!0,reset:!0})s.pseudos[i]=Sl(i);function As(){}As.prototype=s.filters=s.pseudos,s.setFilters=new As,h=Re.tokenize=function(g,w){var T,M,A,O,U,Q,J,ce=li[g+" "];if(ce)return w?0:ce.slice(0);for(U=g,Q=[],J=s.preFilter;U;){(!T||(M=pl.exec(U)))&&(M&&(U=U.slice(M[0].length)||U),Q.push(A=[])),T=!1,(M=_s.exec(U))&&(T=M.shift(),A.push({value:T,type:M[0].replace(Zi," ")}),U=U.slice(T.length));for(O in s.filter)(M=en[O].exec(U))&&(!J[O]||(M=J[O](M)))&&(T=M.shift(),A.push({value:T,type:O,matches:M}),U=U.slice(T.length));if(!T)break}return w?U.length:U?Re.error(g):li(g,Q).slice(0)};function rn(g){for(var w=0,T=g.length,M="";w<T;w++)M+=g[w].value;return M}function nn(g,w,T){var M=w.dir,A=w.next,O=A||M,U=T&&O==="parentNode",Q=Te++;return w.first?function(J,ce,se){for(;J=J[M];)if(J.nodeType===1||U)return g(J,ce,se);return!1}:function(J,ce,se){var he,Ee,Ie,fe=[ut,Q];if(se){for(;J=J[M];)if((J.nodeType===1||U)&&g(J,ce,se))return!0}else for(;J=J[M];)if(J.nodeType===1||U)if(Ie=J[Fe]||(J[Fe]={}),Ee=Ie[J.uniqueID]||(Ie[J.uniqueID]={}),A&&A===J.nodeName.toLowerCase())J=J[M]||J;else{if((he=Ee[O])&&he[0]===ut&&he[1]===Q)return fe[2]=he[2];if(Ee[O]=fe,fe[2]=g(J,ce,se))return!0}return!1}}function ua(g){return g.length>1?function(w,T,M){for(var A=g.length;A--;)if(!g[A](w,T,M))return!1;return!0}:g[0]}function Tl(g,w,T){for(var M=0,A=w.length;M<A;M++)Re(g,w[M],T);return T}function an(g,w,T,M,A){for(var O,U=[],Q=0,J=g.length,ce=w!=null;Q<J;Q++)(O=g[Q])&&(!T||T(O,M,A))&&(U.push(O),ce&&w.push(Q));return U}function ca(g,w,T,M,A,O){return M&&!M[Fe]&&(M=ca(M)),A&&!A[Fe]&&(A=ca(A,O)),kt(function(U,Q,J,ce){var se,he,Ee,Ie=[],fe=[],qe=Q.length,tt=U||Tl(w||"*",J.nodeType?[J]:J,[]),gt=g&&(U||!w)?an(tt,Ie,g,J,ce):tt,Oe=T?A||(U?g:qe||M)?[]:Q:gt;if(T&&T(gt,Oe,J,ce),M)for(se=an(Oe,fe),M(se,[],J,ce),he=se.length;he--;)(Ee=se[he])&&(Oe[fe[he]]=!(gt[fe[he]]=Ee));if(U){if(A||g){if(A){for(se=[],he=Oe.length;he--;)(Ee=Oe[he])&&se.push(gt[he]=Ee);A(null,Oe=[],se,ce)}for(he=Oe.length;he--;)(Ee=Oe[he])&&(se=A?pr(U,Ee):Ie[he])>-1&&(U[se]=!(Q[se]=Ee))}}else Oe=an(Oe===Q?Oe.splice(qe,Oe.length):Oe),A?A(null,Q,Oe,ce):er.apply(Q,Oe)})}function fa(g){for(var w,T,M,A=g.length,O=s.relative[g[0].type],U=O||s.relative[" "],Q=O?1:0,J=nn(function(he){return he===w},U,!0),ce=nn(function(he){return pr(w,he)>-1},U,!0),se=[function(he,Ee,Ie){var fe=!O&&(Ie||Ee!==D)||((w=Ee).nodeType?J(he,Ee,Ie):ce(he,Ee,Ie));return w=null,fe}];Q<A;Q++)if(T=s.relative[g[Q].type])se=[nn(ua(se),T)];else{if(T=s.filter[g[Q].type].apply(null,g[Q].matches),T[Fe]){for(M=++Q;M<A&&!s.relative[g[M].type];M++);return ca(Q>1&&ua(se),Q>1&&rn(g.slice(0,Q-1).concat({value:g[Q-2].type===" "?"*":""})).replace(Zi,"$1"),T,Q<M&&fa(g.slice(Q,M)),M<A&&fa(g=g.slice(M)),M<A&&rn(g))}se.push(T)}return ua(se)}function Cl(g,w){var T=w.length>0,M=g.length>0,A=function(O,U,Q,J,ce){var se,he,Ee,Ie=0,fe="0",qe=O&&[],tt=[],gt=D,Oe=O||M&&s.find.TAG("*",ce),ci=ut+=gt==null?1:Math.random()||.1,fi=Oe.length;for(ce&&(D=U==I||U||ce);fe!==fi&&(se=Oe[fe])!=null;fe++){if(M&&se){for(he=0,!U&&se.ownerDocument!=I&&(L(se),Q=!ve);Ee=g[he++];)if(Ee(se,U||I,Q)){J.push(se);break}ce&&(ut=ci)}T&&((se=!Ee&&se)&&Ie--,O&&qe.push(se))}if(Ie+=fe,T&&fe!==Ie){for(he=0;Ee=w[he++];)Ee(qe,tt,U,Q);if(O){if(Ie>0)for(;fe--;)qe[fe]||tt[fe]||(tt[fe]=Zt.call(J));tt=an(tt)}er.apply(J,tt),ce&&!O&&tt.length>0&&Ie+w.length>1&&Re.uniqueSort(J)}return ce&&(ut=ci,D=gt),qe};return T?kt(A):A}return E=Re.compile=function(g,w){var T,M=[],A=[],O=Ki[g+" "];if(!O){for(w||(w=h(g)),T=w.length;T--;)O=fa(w[T]),O[Fe]?M.push(O):A.push(O);O=Ki(g,Cl(A,M)),O.selector=g}return O},x=Re.select=function(g,w,T,M){var A,O,U,Q,J,ce=typeof g=="function"&&g,se=!M&&h(g=ce.selector||g);if(T=T||[],se.length===1){if(O=se[0]=se[0].slice(0),O.length>2&&(U=O[0]).type==="ID"&&w.nodeType===9&&ve&&s.relative[O[1].type]){if(w=(s.find.ID(U.matches[0].replace(Ut,Ht),w)||[])[0],w)ce&&(w=w.parentNode);else return T;g=g.slice(O.shift().value.length)}for(A=en.needsContext.test(g)?0:O.length;A--&&(U=O[A],!s.relative[Q=U.type]);)if((J=s.find[Q])&&(M=J(U.matches[0].replace(Ut,Ht),sa.test(O[0].type)&&la(w.parentNode)||w))){if(O.splice(A,1),g=M.length&&rn(O),!g)return er.apply(T,M),T;break}}return(ce||E(g,se))(M,w,!ve,T,!w||sa.test(g)&&la(w.parentNode)||w),T},n.sortStable=Fe.split("").sort(dr).join("")===Fe,n.detectDuplicates=!!B,L(),n.sortDetached=_t(function(g){return g.compareDocumentPosition(I.createElement("fieldset"))&1}),_t(function(g){return g.innerHTML="<a href='#'></a>",g.firstChild.getAttribute("href")==="#"})||oa("type|href|height|width",function(g,w,T){if(!T)return g.getAttribute(w,w.toLowerCase()==="type"?1:2)}),(!n.attributes||!_t(function(g){return g.innerHTML="<input/>",g.firstChild.setAttribute("value",""),g.firstChild.getAttribute("value")===""}))&&oa("value",function(g,w,T){if(!T&&g.nodeName.toLowerCase()==="input")return g.defaultValue}),_t(function(g){return g.getAttribute("disabled")==null})||oa(na,function(g,w,T){var M;if(!T)return g[w]===!0?w.toLowerCase():(M=g.getAttributeNode(w))&&M.specified?M.value:null}),Re}(l);o.find=ne,o.expr=ne.selectors,o.expr[":"]=o.expr.pseudos,o.uniqueSort=o.unique=ne.uniqueSort,o.text=ne.getText,o.isXMLDoc=ne.isXML,o.contains=ne.contains,o.escapeSelector=ne.escape;var oe=function(e,i,n){for(var s=[],c=n!==void 0;(e=e[i])&&e.nodeType!==9;)if(e.nodeType===1){if(c&&o(e).is(n))break;s.push(e)}return s},Se=function(e,i){for(var n=[];e;e=e.nextSibling)e.nodeType===1&&e!==i&&n.push(e);return n},ze=o.expr.match.needsContext;function Ne(e,i){return e.nodeName&&e.nodeName.toLowerCase()===i.toLowerCase()}var it=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function Je(e,i,n){return V(i)?o.grep(e,function(s,c){return!!i.call(s,c,s)!==n}):i.nodeType?o.grep(e,function(s){return s===i!==n}):typeof i!="string"?o.grep(e,function(s){return y.call(i,s)>-1!==n}):o.filter(i,e,n)}o.filter=function(e,i,n){var s=i[0];return n&&(e=":not("+e+")"),i.length===1&&s.nodeType===1?o.find.matchesSelector(s,e)?[s]:[]:o.find.matches(e,o.grep(i,function(c){return c.nodeType===1}))},o.fn.extend({find:function(e){var i,n,s=this.length,c=this;if(typeof e!="string")return this.pushStack(o(e).filter(function(){for(i=0;i<s;i++)if(o.contains(c[i],this))return!0}));for(n=this.pushStack([]),i=0;i<s;i++)o.find(e,c[i],n);return s>1?o.uniqueSort(n):n},filter:function(e){return this.pushStack(Je(this,e||[],!1))},not:function(e){return this.pushStack(Je(this,e||[],!0))},is:function(e){return!!Je(this,typeof e=="string"&&ze.test(e)?o(e):e||[],!1).length}});var bt,nr=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,Pr=o.fn.init=function(e,i,n){var s,c;if(!e)return this;if(n=n||bt,typeof e=="string")if(e[0]==="<"&&e[e.length-1]===">"&&e.length>=3?s=[null,e,null]:s=nr.exec(e),s&&(s[1]||!i))if(s[1]){if(i=i instanceof o?i[0]:i,o.merge(this,o.parseHTML(s[1],i&&i.nodeType?i.ownerDocument||i:K,!0)),it.test(s[1])&&o.isPlainObject(i))for(s in i)V(this[s])?this[s](i[s]):this.attr(s,i[s]);return this}else return c=K.getElementById(s[2]),c&&(this[0]=c,this.length=1),this;else return!i||i.jquery?(i||n).find(e):this.constructor(i).find(e);else{if(e.nodeType)return this[0]=e,this.length=1,this;if(V(e))return n.ready!==void 0?n.ready(e):e(o)}return o.makeArray(e,this)};Pr.prototype=o.fn,bt=o(K);var jr=/^(?:parents|prev(?:Until|All))/,Xt={children:!0,contents:!0,next:!0,prev:!0};o.fn.extend({has:function(e){var i=o(e,this),n=i.length;return this.filter(function(){for(var s=0;s<n;s++)if(o.contains(this,i[s]))return!0})},closest:function(e,i){var n,s=0,c=this.length,f=[],h=typeof e!="string"&&o(e);if(!ze.test(e)){for(;s<c;s++)for(n=this[s];n&&n!==i;n=n.parentNode)if(n.nodeType<11&&(h?h.index(n)>-1:n.nodeType===1&&o.find.matchesSelector(n,e))){f.push(n);break}}return this.pushStack(f.length>1?o.uniqueSort(f):f)},index:function(e){return e?typeof e=="string"?y.call(o(e),this[0]):y.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,i){return this.pushStack(o.uniqueSort(o.merge(this.get(),o(e,i))))},addBack:function(e){return this.add(e==null?this.prevObject:this.prevObject.filter(e))}});function Br(e,i){for(;(e=e[i])&&e.nodeType!==1;);return e}o.each({parent:function(e){var i=e.parentNode;return i&&i.nodeType!==11?i:null},parents:function(e){return oe(e,"parentNode")},parentsUntil:function(e,i,n){return oe(e,"parentNode",n)},next:function(e){return Br(e,"nextSibling")},prev:function(e){return Br(e,"previousSibling")},nextAll:function(e){return oe(e,"nextSibling")},prevAll:function(e){return oe(e,"previousSibling")},nextUntil:function(e,i,n){return oe(e,"nextSibling",n)},prevUntil:function(e,i,n){return oe(e,"previousSibling",n)},siblings:function(e){return Se((e.parentNode||{}).firstChild,e)},children:function(e){return Se(e.firstChild)},contents:function(e){return e.contentDocument!=null&&a(e.contentDocument)?e.contentDocument:(Ne(e,"template")&&(e=e.content||e),o.merge([],e.childNodes))}},function(e,i){o.fn[e]=function(n,s){var c=o.map(this,i,n);return e.slice(-5)!=="Until"&&(s=n),s&&typeof s=="string"&&(c=o.filter(s,c)),this.length>1&&(Xt[e]||o.uniqueSort(c),jr.test(e)&&c.reverse()),this.pushStack(c)}});var yt=/[^\x20\t\r\n\f]+/g;function Nn(e){var i={};return o.each(e.match(yt)||[],function(n,s){i[s]=!0}),i}o.Callbacks=function(e){e=typeof e=="string"?Nn(e):o.extend({},e);var i,n,s,c,f=[],h=[],E=-1,x=function(){for(c=c||e.once,s=i=!0;h.length;E=-1)for(n=h.shift();++E<f.length;)f[E].apply(n[0],n[1])===!1&&e.stopOnFalse&&(E=f.length,n=!1);e.memory||(n=!1),i=!1,c&&(n?f=[]:f="")},D={add:function(){return f&&(n&&!i&&(E=f.length-1,h.push(n)),function R(B){o.each(B,function(L,I){V(I)?(!e.unique||!D.has(I))&&f.push(I):I&&I.length&&be(I)!=="string"&&R(I)})}(arguments),n&&!i&&x()),this},remove:function(){return o.each(arguments,function(R,B){for(var L;(L=o.inArray(B,f,L))>-1;)f.splice(L,1),L<=E&&E--}),this},has:function(R){return R?o.inArray(R,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return c=h=[],f=n="",this},disabled:function(){return!f},lock:function(){return c=h=[],!n&&!i&&(f=n=""),this},locked:function(){return!!c},fireWith:function(R,B){return c||(B=B||[],B=[R,B.slice?B.slice():B],h.push(B),i||x()),this},fire:function(){return D.fireWith(this,arguments),this},fired:function(){return!!s}};return D};function Ke(e){return e}function ar(e){throw e}function Ii(e,i,n,s){var c;try{e&&V(c=e.promise)?c.call(e).done(i).fail(n):e&&V(c=e.then)?c.call(e,i,n):i.apply(void 0,[e].slice(s))}catch(f){n.apply(void 0,[f])}}o.extend({Deferred:function(e){var i=[["notify","progress",o.Callbacks("memory"),o.Callbacks("memory"),2],["resolve","done",o.Callbacks("once memory"),o.Callbacks("once memory"),0,"resolved"],["reject","fail",o.Callbacks("once memory"),o.Callbacks("once memory"),1,"rejected"]],n="pending",s={state:function(){return n},always:function(){return c.done(arguments).fail(arguments),this},catch:function(f){return s.then(null,f)},pipe:function(){var f=arguments;return o.Deferred(function(h){o.each(i,function(E,x){var D=V(f[x[4]])&&f[x[4]];c[x[1]](function(){var R=D&&D.apply(this,arguments);R&&V(R.promise)?R.promise().progress(h.notify).done(h.resolve).fail(h.reject):h[x[0]+"With"](this,D?[R]:arguments)})}),f=null}).promise()},then:function(f,h,E){var x=0;function D(R,B,L,I){return function(){var ie=this,ve=arguments,re=function(){var Ve,ht;if(!(R<x)){if(Ve=L.apply(ie,ve),Ve===B.promise())throw new TypeError("Thenable self-resolution");ht=Ve&&(typeof Ve=="object"||typeof Ve=="function")&&Ve.then,V(ht)?I?ht.call(Ve,D(x,B,Ke,I),D(x,B,ar,I)):(x++,ht.call(Ve,D(x,B,Ke,I),D(x,B,ar,I),D(x,B,Ke,B.notifyWith))):(L!==Ke&&(ie=void 0,ve=[Ve]),(I||B.resolveWith)(ie,ve))}},Ge=I?re:function(){try{re()}catch(Ve){o.Deferred.exceptionHook&&o.Deferred.exceptionHook(Ve,Ge.stackTrace),R+1>=x&&(L!==ar&&(ie=void 0,ve=[Ve]),B.rejectWith(ie,ve))}};R?Ge():(o.Deferred.getStackHook&&(Ge.stackTrace=o.Deferred.getStackHook()),l.setTimeout(Ge))}}return o.Deferred(function(R){i[0][3].add(D(0,R,V(E)?E:Ke,R.notifyWith)),i[1][3].add(D(0,R,V(f)?f:Ke)),i[2][3].add(D(0,R,V(h)?h:ar))}).promise()},promise:function(f){return f!=null?o.extend(f,s):s}},c={};return o.each(i,function(f,h){var E=h[2],x=h[5];s[h[1]]=E.add,x&&E.add(function(){n=x},i[3-f][2].disable,i[3-f][3].disable,i[0][2].lock,i[0][3].lock),E.add(h[3].fire),c[h[0]]=function(){return c[h[0]+"With"](this===c?void 0:this,arguments),this},c[h[0]+"With"]=E.fireWith}),s.promise(c),e&&e.call(c,c),c},when:function(e){var i=arguments.length,n=i,s=Array(n),c=u.call(arguments),f=o.Deferred(),h=function(E){return function(x){s[E]=this,c[E]=arguments.length>1?u.call(arguments):x,--i||f.resolveWith(s,c)}};if(i<=1&&(Ii(e,f.done(h(n)).resolve,f.reject,!i),f.state()==="pending"||V(c[n]&&c[n].then)))return f.then();for(;n--;)Ii(c[n],h(n),f.reject);return f.promise()}});var On=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;o.Deferred.exceptionHook=function(e,i){l.console&&l.console.warn&&e&&On.test(e.name)&&l.console.warn("jQuery.Deferred exception: "+e.message,e.stack,i)},o.readyException=function(e){l.setTimeout(function(){throw e})};var Ur=o.Deferred();o.fn.ready=function(e){return Ur.then(e).catch(function(i){o.readyException(i)}),this},o.extend({isReady:!1,readyWait:1,ready:function(e){(e===!0?--o.readyWait:o.isReady)||(o.isReady=!0,!(e!==!0&&--o.readyWait>0)&&Ur.resolveWith(K,[o]))}}),o.ready.then=Ur.then;function kr(){K.removeEventListener("DOMContentLoaded",kr),l.removeEventListener("load",kr),o.ready()}K.readyState==="complete"||K.readyState!=="loading"&&!K.documentElement.doScroll?l.setTimeout(o.ready):(K.addEventListener("DOMContentLoaded",kr),l.addEventListener("load",kr));var Pt=function(e,i,n,s,c,f,h){var E=0,x=e.length,D=n==null;if(be(n)==="object"){c=!0;for(E in n)Pt(e,i,E,n[E],!0,f,h)}else if(s!==void 0&&(c=!0,V(s)||(h=!0),D&&(h?(i.call(e,s),i=null):(D=i,i=function(R,B,L){return D.call(o(R),L)})),i))for(;E<x;E++)i(e[E],n,h?s:s.call(e[E],E,i(e[E],n)));return c?e:D?i.call(e):x?i(e[0],n):f},$n=/^-ms-/,Wn=/-([a-z])/g;function jn(e,i){return i.toUpperCase()}function xt(e){return e.replace($n,"ms-").replace(Wn,jn)}var sr=function(e){return e.nodeType===1||e.nodeType===9||!+e.nodeType};function or(){this.expando=o.expando+or.uid++}or.uid=1,or.prototype={cache:function(e){var i=e[this.expando];return i||(i={},sr(e)&&(e.nodeType?e[this.expando]=i:Object.defineProperty(e,this.expando,{value:i,configurable:!0}))),i},set:function(e,i,n){var s,c=this.cache(e);if(typeof i=="string")c[xt(i)]=n;else for(s in i)c[xt(s)]=i[s];return c},get:function(e,i){return i===void 0?this.cache(e):e[this.expando]&&e[this.expando][xt(i)]},access:function(e,i,n){return i===void 0||i&&typeof i=="string"&&n===void 0?this.get(e,i):(this.set(e,i,n),n!==void 0?n:i)},remove:function(e,i){var n,s=e[this.expando];if(s!==void 0){if(i!==void 0)for(Array.isArray(i)?i=i.map(xt):(i=xt(i),i=i in s?[i]:i.match(yt)||[]),n=i.length;n--;)delete s[i[n]];(i===void 0||o.isEmptyObject(s))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var i=e[this.expando];return i!==void 0&&!o.isEmptyObject(i)}};var le=new or,$e=new or,Bn=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Mi=/[A-Z]/g;function Ar(e){return e==="true"?!0:e==="false"?!1:e==="null"?null:e===+e+""?+e:Bn.test(e)?JSON.parse(e):e}function Dr(e,i,n){var s;if(n===void 0&&e.nodeType===1)if(s="data-"+i.replace(Mi,"-$&").toLowerCase(),n=e.getAttribute(s),typeof n=="string"){try{n=Ar(n)}catch(c){}$e.set(e,i,n)}else n=void 0;return n}o.extend({hasData:function(e){return $e.hasData(e)||le.hasData(e)},data:function(e,i,n){return $e.access(e,i,n)},removeData:function(e,i){$e.remove(e,i)},_data:function(e,i,n){return le.access(e,i,n)},_removeData:function(e,i){le.remove(e,i)}}),o.fn.extend({data:function(e,i){var n,s,c,f=this[0],h=f&&f.attributes;if(e===void 0){if(this.length&&(c=$e.get(f),f.nodeType===1&&!le.get(f,"hasDataAttrs"))){for(n=h.length;n--;)h[n]&&(s=h[n].name,s.indexOf("data-")===0&&(s=xt(s.slice(5)),Dr(f,s,c[s])));le.set(f,"hasDataAttrs",!0)}return c}return typeof e=="object"?this.each(function(){$e.set(this,e)}):Pt(this,function(E){var x;if(f&&E===void 0)return x=$e.get(f,e),x!==void 0||(x=Dr(f,e),x!==void 0)?x:void 0;this.each(function(){$e.set(this,e,E)})},null,i,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){$e.remove(this,e)})}}),o.extend({queue:function(e,i,n){var s;if(e)return i=(i||"fx")+"queue",s=le.get(e,i),n&&(!s||Array.isArray(n)?s=le.access(e,i,o.makeArray(n)):s.push(n)),s||[]},dequeue:function(e,i){i=i||"fx";var n=o.queue(e,i),s=n.length,c=n.shift(),f=o._queueHooks(e,i),h=function(){o.dequeue(e,i)};c==="inprogress"&&(c=n.shift(),s--),c&&(i==="fx"&&n.unshift("inprogress"),delete f.stop,c.call(e,h,f)),!s&&f&&f.empty.fire()},_queueHooks:function(e,i){var n=i+"queueHooks";return le.get(e,n)||le.access(e,n,{empty:o.Callbacks("once memory").add(function(){le.remove(e,[i+"queue",n])})})}}),o.fn.extend({queue:function(e,i){var n=2;return typeof e!="string"&&(i=e,e="fx",n--),arguments.length<n?o.queue(this[0],e):i===void 0?this:this.each(function(){var s=o.queue(this,e,i);o._queueHooks(this,e),e==="fx"&&s[0]!=="inprogress"&&o.dequeue(this,e)})},dequeue:function(e){return this.each(function(){o.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,i){var n,s=1,c=o.Deferred(),f=this,h=this.length,E=function(){--s||c.resolveWith(f,[f])};for(typeof e!="string"&&(i=e,e=void 0),e=e||"fx";h--;)n=le.get(f[h],e+"queueHooks"),n&&n.empty&&(s++,n.empty.add(E));return E(),c.promise(i)}});var Fr=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,Nt=new RegExp("^(?:([+-])=|)("+Fr+")([a-z%]*)$","i"),wt=["Top","Right","Bottom","Left"],Lt=K.documentElement,Ot=function(e){return o.contains(e.ownerDocument,e)},Ni={composed:!0};Lt.getRootNode&&(Ot=function(e){return o.contains(e.ownerDocument,e)||e.getRootNode(Ni)===e.ownerDocument});var lr=function(e,i){return e=i||e,e.style.display==="none"||e.style.display===""&&Ot(e)&&o.css(e,"display")==="none"};function Hr(e,i,n,s){var c,f,h=20,E=s?function(){return s.cur()}:function(){return o.css(e,i,"")},x=E(),D=n&&n[3]||(o.cssNumber[i]?"":"px"),R=e.nodeType&&(o.cssNumber[i]||D!=="px"&&+x)&&Nt.exec(o.css(e,i));if(R&&R[3]!==D){for(x=x/2,D=D||R[3],R=+x||1;h--;)o.style(e,i,R+D),(1-f)*(1-(f=E()/x||.5))<=0&&(h=0),R=R/f;R=R*2,o.style(e,i,R+D),n=n||[]}return n&&(R=+R||+x||0,c=n[1]?R+(n[1]+1)*n[2]:+n[2],s&&(s.unit=D,s.start=R,s.end=c)),c}var zr={};function Oi(e){var i,n=e.ownerDocument,s=e.nodeName,c=zr[s];return c||(i=n.body.appendChild(n.createElement(s)),c=o.css(i,"display"),i.parentNode.removeChild(i),c==="none"&&(c="block"),zr[s]=c,c)}function $t(e,i){for(var n,s,c=[],f=0,h=e.length;f<h;f++)s=e[f],!!s.style&&(n=s.style.display,i?(n==="none"&&(c[f]=le.get(s,"display")||null,c[f]||(s.style.display="")),s.style.display===""&&lr(s)&&(c[f]=Oi(s))):n!=="none"&&(c[f]="none",le.set(s,"display",n)));for(f=0;f<h;f++)c[f]!=null&&(e[f].style.display=c[f]);return e}o.fn.extend({show:function(){return $t(this,!0)},hide:function(){return $t(this)},toggle:function(e){return typeof e=="boolean"?e?this.show():this.hide():this.each(function(){lr(this)?o(this).show():o(this).hide()})}});var Qt=/^(?:checkbox|radio)$/i,Vr=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,Gr=/^$|^module$|\/(?:java|ecma)script/i;(function(){var e=K.createDocumentFragment(),i=e.appendChild(K.createElement("div")),n=K.createElement("input");n.setAttribute("type","radio"),n.setAttribute("checked","checked"),n.setAttribute("name","t"),i.appendChild(n),H.checkClone=i.cloneNode(!0).cloneNode(!0).lastChild.checked,i.innerHTML="<textarea>x</textarea>",H.noCloneChecked=!!i.cloneNode(!0).lastChild.defaultValue,i.innerHTML="<option></option>",H.option=!!i.lastChild})();var Ze={thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};Ze.tbody=Ze.tfoot=Ze.colgroup=Ze.caption=Ze.thead,Ze.th=Ze.td,H.option||(Ze.optgroup=Ze.option=[1,"<select multiple='multiple'>","</select>"]);function et(e,i){var n;return typeof e.getElementsByTagName!="undefined"?n=e.getElementsByTagName(i||"*"):typeof e.querySelectorAll!="undefined"?n=e.querySelectorAll(i||"*"):n=[],i===void 0||i&&Ne(e,i)?o.merge([e],n):n}function qr(e,i){for(var n=0,s=e.length;n<s;n++)le.set(e[n],"globalEval",!i||le.get(i[n],"globalEval"))}var Yr=/<|&#?\w+;/;function Xr(e,i,n,s,c){for(var f,h,E,x,D,R,B=i.createDocumentFragment(),L=[],I=0,ie=e.length;I<ie;I++)if(f=e[I],f||f===0)if(be(f)==="object")o.merge(L,f.nodeType?[f]:f);else if(!Yr.test(f))L.push(i.createTextNode(f));else{for(h=h||B.appendChild(i.createElement("div")),E=(Vr.exec(f)||["",""])[1].toLowerCase(),x=Ze[E]||Ze._default,h.innerHTML=x[1]+o.htmlPrefilter(f)+x[2],R=x[0];R--;)h=h.lastChild;o.merge(L,h.childNodes),h=B.firstChild,h.textContent=""}for(B.textContent="",I=0;f=L[I++];){if(s&&o.inArray(f,s)>-1){c&&c.push(f);continue}if(D=Ot(f),h=et(B.appendChild(f),"script"),D&&qr(h),n)for(R=0;f=h[R++];)Gr.test(f.type||"")&&n.push(f)}return B}var $i=/^([^.]*)(?:\.(.+)|)/;function nt(){return!0}function Jt(){return!1}function Un(e,i){return e===Wi()==(i==="focus")}function Wi(){try{return K.activeElement}catch(e){}}function Qr(e,i,n,s,c,f){var h,E;if(typeof i=="object"){typeof n!="string"&&(s=s||n,n=void 0);for(E in i)Qr(e,E,n,s,i[E],f);return e}if(s==null&&c==null?(c=n,s=n=void 0):c==null&&(typeof n=="string"?(c=s,s=void 0):(c=s,s=n,n=void 0)),c===!1)c=Jt;else if(!c)return e;return f===1&&(h=c,c=function(x){return o().off(x),h.apply(this,arguments)},c.guid=h.guid||(h.guid=o.guid++)),e.each(function(){o.event.add(this,i,c,s,n)})}o.event={global:{},add:function(e,i,n,s,c){var f,h,E,x,D,R,B,L,I,ie,ve,re=le.get(e);if(!!sr(e))for(n.handler&&(f=n,n=f.handler,c=f.selector),c&&o.find.matchesSelector(Lt,c),n.guid||(n.guid=o.guid++),(x=re.events)||(x=re.events=Object.create(null)),(h=re.handle)||(h=re.handle=function(Ge){return typeof o!="undefined"&&o.event.triggered!==Ge.type?o.event.dispatch.apply(e,arguments):void 0}),i=(i||"").match(yt)||[""],D=i.length;D--;)E=$i.exec(i[D])||[],I=ve=E[1],ie=(E[2]||"").split(".").sort(),!!I&&(B=o.event.special[I]||{},I=(c?B.delegateType:B.bindType)||I,B=o.event.special[I]||{},R=o.extend({type:I,origType:ve,data:s,handler:n,guid:n.guid,selector:c,needsContext:c&&o.expr.match.needsContext.test(c),namespace:ie.join(".")},f),(L=x[I])||(L=x[I]=[],L.delegateCount=0,(!B.setup||B.setup.call(e,s,ie,h)===!1)&&e.addEventListener&&e.addEventListener(I,h)),B.add&&(B.add.call(e,R),R.handler.guid||(R.handler.guid=n.guid)),c?L.splice(L.delegateCount++,0,R):L.push(R),o.event.global[I]=!0)},remove:function(e,i,n,s,c){var f,h,E,x,D,R,B,L,I,ie,ve,re=le.hasData(e)&&le.get(e);if(!(!re||!(x=re.events))){for(i=(i||"").match(yt)||[""],D=i.length;D--;){if(E=$i.exec(i[D])||[],I=ve=E[1],ie=(E[2]||"").split(".").sort(),!I){for(I in x)o.event.remove(e,I+i[D],n,s,!0);continue}for(B=o.event.special[I]||{},I=(s?B.delegateType:B.bindType)||I,L=x[I]||[],E=E[2]&&new RegExp("(^|\\.)"+ie.join("\\.(?:.*\\.|)")+"(\\.|$)"),h=f=L.length;f--;)R=L[f],(c||ve===R.origType)&&(!n||n.guid===R.guid)&&(!E||E.test(R.namespace))&&(!s||s===R.selector||s==="**"&&R.selector)&&(L.splice(f,1),R.selector&&L.delegateCount--,B.remove&&B.remove.call(e,R));h&&!L.length&&((!B.teardown||B.teardown.call(e,ie,re.handle)===!1)&&o.removeEvent(e,I,re.handle),delete x[I])}o.isEmptyObject(x)&&le.remove(e,"handle events")}},dispatch:function(e){var i,n,s,c,f,h,E=new Array(arguments.length),x=o.event.fix(e),D=(le.get(this,"events")||Object.create(null))[x.type]||[],R=o.event.special[x.type]||{};for(E[0]=x,i=1;i<arguments.length;i++)E[i]=arguments[i];if(x.delegateTarget=this,!(R.preDispatch&&R.preDispatch.call(this,x)===!1)){for(h=o.event.handlers.call(this,x,D),i=0;(c=h[i++])&&!x.isPropagationStopped();)for(x.currentTarget=c.elem,n=0;(f=c.handlers[n++])&&!x.isImmediatePropagationStopped();)(!x.rnamespace||f.namespace===!1||x.rnamespace.test(f.namespace))&&(x.handleObj=f,x.data=f.data,s=((o.event.special[f.origType]||{}).handle||f.handler).apply(c.elem,E),s!==void 0&&(x.result=s)===!1&&(x.preventDefault(),x.stopPropagation()));return R.postDispatch&&R.postDispatch.call(this,x),x.result}},handlers:function(e,i){var n,s,c,f,h,E=[],x=i.delegateCount,D=e.target;if(x&&D.nodeType&&!(e.type==="click"&&e.button>=1)){for(;D!==this;D=D.parentNode||this)if(D.nodeType===1&&!(e.type==="click"&&D.disabled===!0)){for(f=[],h={},n=0;n<x;n++)s=i[n],c=s.selector+" ",h[c]===void 0&&(h[c]=s.needsContext?o(c,this).index(D)>-1:o.find(c,this,null,[D]).length),h[c]&&f.push(s);f.length&&E.push({elem:D,handlers:f})}}return D=this,x<i.length&&E.push({elem:D,handlers:i.slice(x)}),E},addProp:function(e,i){Object.defineProperty(o.Event.prototype,e,{enumerable:!0,configurable:!0,get:V(i)?function(){if(this.originalEvent)return i(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[e]},set:function(n){Object.defineProperty(this,e,{enumerable:!0,configurable:!0,writable:!0,value:n})}})},fix:function(e){return e[o.expando]?e:new o.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var i=this||e;return Qt.test(i.type)&&i.click&&Ne(i,"input")&&Lr(i,"click",nt),!1},trigger:function(e){var i=this||e;return Qt.test(i.type)&&i.click&&Ne(i,"input")&&Lr(i,"click"),!0},_default:function(e){var i=e.target;return Qt.test(i.type)&&i.click&&Ne(i,"input")&&le.get(i,"click")||Ne(i,"a")}},beforeunload:{postDispatch:function(e){e.result!==void 0&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}};function Lr(e,i,n){if(!n){le.get(e,i)===void 0&&o.event.add(e,i,nt);return}le.set(e,i,!1),o.event.add(e,i,{namespace:!1,handler:function(s){var c,f,h=le.get(this,i);if(s.isTrigger&1&&this[i]){if(h.length)(o.event.special[i]||{}).delegateType&&s.stopPropagation();else if(h=u.call(arguments),le.set(this,i,h),c=n(this,i),this[i](),f=le.get(this,i),h!==f||c?le.set(this,i,!1):f={},h!==f)return s.stopImmediatePropagation(),s.preventDefault(),f&&f.value}else h.length&&(le.set(this,i,{value:o.event.trigger(o.extend(h[0],o.Event.prototype),h.slice(1),this)}),s.stopImmediatePropagation())}})}o.removeEvent=function(e,i,n){e.removeEventListener&&e.removeEventListener(i,n)},o.Event=function(e,i){if(!(this instanceof o.Event))return new o.Event(e,i);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.defaultPrevented===void 0&&e.returnValue===!1?nt:Jt,this.target=e.target&&e.target.nodeType===3?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,i&&o.extend(this,i),this.timeStamp=e&&e.timeStamp||Date.now(),this[o.expando]=!0},o.Event.prototype={constructor:o.Event,isDefaultPrevented:Jt,isPropagationStopped:Jt,isImmediatePropagationStopped:Jt,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=nt,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=nt,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=nt,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},o.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,char:!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:!0},o.event.addProp),o.each({focus:"focusin",blur:"focusout"},function(e,i){o.event.special[e]={setup:function(){return Lr(this,e,Un),!1},trigger:function(){return Lr(this,e),!0},_default:function(n){return le.get(n.target,e)},delegateType:i}}),o.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){o.event.special[e]={delegateType:i,bindType:i,handle:function(n){var s,c=this,f=n.relatedTarget,h=n.handleObj;return(!f||f!==c&&!o.contains(c,f))&&(n.type=h.origType,s=h.handler.apply(this,arguments),n.type=i),s}}}),o.fn.extend({on:function(e,i,n,s){return Qr(this,e,i,n,s)},one:function(e,i,n,s){return Qr(this,e,i,n,s,1)},off:function(e,i,n){var s,c;if(e&&e.preventDefault&&e.handleObj)return s=e.handleObj,o(e.delegateTarget).off(s.namespace?s.origType+"."+s.namespace:s.origType,s.selector,s.handler),this;if(typeof e=="object"){for(c in e)this.off(c,i,e[c]);return this}return(i===!1||typeof i=="function")&&(n=i,i=void 0),n===!1&&(n=Jt),this.each(function(){o.event.remove(this,e,n,i)})}});var Hn=/<script|<style|<link/i,zn=/checked\s*(?:[^=]|=\s*.checked.)/i,Vn=/^\s*<!\[CDATA\[|\]\]>\s*$/g;function ji(e,i){return Ne(e,"table")&&Ne(i.nodeType!==11?i:i.firstChild,"tr")&&o(e).children("tbody")[0]||e}function Gn(e){return e.type=(e.getAttribute("type")!==null)+"/"+e.type,e}function qn(e){return(e.type||"").slice(0,5)==="true/"?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Bi(e,i){var n,s,c,f,h,E,x;if(i.nodeType===1){if(le.hasData(e)&&(f=le.get(e),x=f.events,x)){le.remove(i,"handle events");for(c in x)for(n=0,s=x[c].length;n<s;n++)o.event.add(i,c,x[c][n])}$e.hasData(e)&&(h=$e.access(e),E=o.extend({},h),$e.set(i,E))}}function Yn(e,i){var n=i.nodeName.toLowerCase();n==="input"&&Qt.test(e.type)?i.checked=e.checked:(n==="input"||n==="textarea")&&(i.defaultValue=e.defaultValue)}function Wt(e,i,n,s){i=d(i);var c,f,h,E,x,D,R=0,B=e.length,L=B-1,I=i[0],ie=V(I);if(ie||B>1&&typeof I=="string"&&!H.checkClone&&zn.test(I))return e.each(function(ve){var re=e.eq(ve);ie&&(i[0]=I.call(this,ve,re.html())),Wt(re,i,n,s)});if(B&&(c=Xr(i,e[0].ownerDocument,!1,e,s),f=c.firstChild,c.childNodes.length===1&&(c=f),f||s)){for(h=o.map(et(c,"script"),Gn),E=h.length;R<B;R++)x=c,R!==L&&(x=o.clone(x,!0,!0),E&&o.merge(h,et(x,"script"))),n.call(e[R],x,R);if(E)for(D=h[h.length-1].ownerDocument,o.map(h,qn),R=0;R<E;R++)x=h[R],Gr.test(x.type||"")&&!le.access(x,"globalEval")&&o.contains(D,x)&&(x.src&&(x.type||"").toLowerCase()!=="module"?o._evalUrl&&!x.noModule&&o._evalUrl(x.src,{nonce:x.nonce||x.getAttribute("nonce")},D):Ce(x.textContent.replace(Vn,""),x,D))}return e}function Ui(e,i,n){for(var s,c=i?o.filter(i,e):e,f=0;(s=c[f])!=null;f++)!n&&s.nodeType===1&&o.cleanData(et(s)),s.parentNode&&(n&&Ot(s)&&qr(et(s,"script")),s.parentNode.removeChild(s));return e}o.extend({htmlPrefilter:function(e){return e},clone:function(e,i,n){var s,c,f,h,E=e.cloneNode(!0),x=Ot(e);if(!H.noCloneChecked&&(e.nodeType===1||e.nodeType===11)&&!o.isXMLDoc(e))for(h=et(E),f=et(e),s=0,c=f.length;s<c;s++)Yn(f[s],h[s]);if(i)if(n)for(f=f||et(e),h=h||et(E),s=0,c=f.length;s<c;s++)Bi(f[s],h[s]);else Bi(e,E);return h=et(E,"script"),h.length>0&&qr(h,!x&&et(e,"script")),E},cleanData:function(e){for(var i,n,s,c=o.event.special,f=0;(n=e[f])!==void 0;f++)if(sr(n)){if(i=n[le.expando]){if(i.events)for(s in i.events)c[s]?o.event.remove(n,s):o.removeEvent(n,s,i.handle);n[le.expando]=void 0}n[$e.expando]&&(n[$e.expando]=void 0)}}}),o.fn.extend({detach:function(e){return Ui(this,e,!0)},remove:function(e){return Ui(this,e)},text:function(e){return Pt(this,function(i){return i===void 0?o.text(this):this.empty().each(function(){(this.nodeType===1||this.nodeType===11||this.nodeType===9)&&(this.textContent=i)})},null,e,arguments.length)},append:function(){return Wt(this,arguments,function(e){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var i=ji(this,e);i.appendChild(e)}})},prepend:function(){return Wt(this,arguments,function(e){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var i=ji(this,e);i.insertBefore(e,i.firstChild)}})},before:function(){return Wt(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Wt(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,i=0;(e=this[i])!=null;i++)e.nodeType===1&&(o.cleanData(et(e,!1)),e.textContent="");return this},clone:function(e,i){return e=e==null?!1:e,i=i==null?e:i,this.map(function(){return o.clone(this,e,i)})},html:function(e){return Pt(this,function(i){var n=this[0]||{},s=0,c=this.length;if(i===void 0&&n.nodeType===1)return n.innerHTML;if(typeof i=="string"&&!Hn.test(i)&&!Ze[(Vr.exec(i)||["",""])[1].toLowerCase()]){i=o.htmlPrefilter(i);try{for(;s<c;s++)n=this[s]||{},n.nodeType===1&&(o.cleanData(et(n,!1)),n.innerHTML=i);n=0}catch(f){}}n&&this.empty().append(i)},null,e,arguments.length)},replaceWith:function(){var e=[];return Wt(this,arguments,function(i){var n=this.parentNode;o.inArray(this,e)<0&&(o.cleanData(et(this)),n&&n.replaceChild(i,this))},e)}}),o.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,i){o.fn[e]=function(n){for(var s,c=[],f=o(n),h=f.length-1,E=0;E<=h;E++)s=E===h?this:this.clone(!0),o(f[E])[i](s),m.apply(c,s.get());return this.pushStack(c)}});var Jr=new RegExp("^("+Fr+")(?!px)[a-z%]+$","i"),Kr=/^--/,Rr=function(e){var i=e.ownerDocument.defaultView;return(!i||!i.opener)&&(i=l),i.getComputedStyle(e)},Hi=function(e,i,n){var s,c,f={};for(c in i)f[c]=e.style[c],e.style[c]=i[c];s=n.call(e);for(c in i)e.style[c]=f[c];return s},Xn=new RegExp(wt.join("|"),"i"),zi="[\\x20\\t\\r\\n\\f]",Qn=new RegExp("^"+zi+"+|((?:^|[^\\\\])(?:\\\\.)*)"+zi+"+$","g");(function(){function e(){if(!!D){x.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",D.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",Lt.appendChild(x).appendChild(D);var R=l.getComputedStyle(D);n=R.top!=="1%",E=i(R.marginLeft)===12,D.style.right="60%",f=i(R.right)===36,s=i(R.width)===36,D.style.position="absolute",c=i(D.offsetWidth/3)===12,Lt.removeChild(x),D=null}}function i(R){return Math.round(parseFloat(R))}var n,s,c,f,h,E,x=K.createElement("div"),D=K.createElement("div");!D.style||(D.style.backgroundClip="content-box",D.cloneNode(!0).style.backgroundClip="",H.clearCloneStyle=D.style.backgroundClip==="content-box",o.extend(H,{boxSizingReliable:function(){return e(),s},pixelBoxStyles:function(){return e(),f},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),E},scrollboxSize:function(){return e(),c},reliableTrDimensions:function(){var R,B,L,I;return h==null&&(R=K.createElement("table"),B=K.createElement("tr"),L=K.createElement("div"),R.style.cssText="position:absolute;left:-11111px;border-collapse:separate",B.style.cssText="border:1px solid",B.style.height="1px",L.style.height="9px",L.style.display="block",Lt.appendChild(R).appendChild(B).appendChild(L),I=l.getComputedStyle(B),h=parseInt(I.height,10)+parseInt(I.borderTopWidth,10)+parseInt(I.borderBottomWidth,10)===B.offsetHeight,Lt.removeChild(R)),h}}))})();function ur(e,i,n){var s,c,f,h,E=Kr.test(i),x=e.style;return n=n||Rr(e),n&&(h=n.getPropertyValue(i)||n[i],E&&h&&(h=h.replace(Qn,"$1")||void 0),h===""&&!Ot(e)&&(h=o.style(e,i)),!H.pixelBoxStyles()&&Jr.test(h)&&Xn.test(i)&&(s=x.width,c=x.minWidth,f=x.maxWidth,x.minWidth=x.maxWidth=x.width=h,h=n.width,x.width=s,x.minWidth=c,x.maxWidth=f)),h!==void 0?h+"":h}function Vi(e,i){return{get:function(){if(e()){delete this.get;return}return(this.get=i).apply(this,arguments)}}}var Gi=["Webkit","Moz","ms"],qi=K.createElement("div").style,Yi={};function Jn(e){for(var i=e[0].toUpperCase()+e.slice(1),n=Gi.length;n--;)if(e=Gi[n]+i,e in qi)return e}function Zr(e){var i=o.cssProps[e]||Yi[e];return i||(e in qi?e:Yi[e]=Jn(e)||e)}var Xi=/^(none|table(?!-c[ea]).+)/,cr={position:"absolute",visibility:"hidden",display:"block"},ei={letterSpacing:"0",fontWeight:"400"};function jt(e,i,n){var s=Nt.exec(i);return s?Math.max(0,s[2]-(n||0))+(s[3]||"px"):i}function ti(e,i,n,s,c,f){var h=i==="width"?1:0,E=0,x=0;if(n===(s?"border":"content"))return 0;for(;h<4;h+=2)n==="margin"&&(x+=o.css(e,n+wt[h],!0,c)),s?(n==="content"&&(x-=o.css(e,"padding"+wt[h],!0,c)),n!=="margin"&&(x-=o.css(e,"border"+wt[h]+"Width",!0,c))):(x+=o.css(e,"padding"+wt[h],!0,c),n!=="padding"?x+=o.css(e,"border"+wt[h]+"Width",!0,c):E+=o.css(e,"border"+wt[h]+"Width",!0,c));return!s&&f>=0&&(x+=Math.max(0,Math.ceil(e["offset"+i[0].toUpperCase()+i.slice(1)]-f-x-E-.5))||0),x}function fr(e,i,n){var s=Rr(e),c=!H.boxSizingReliable()||n,f=c&&o.css(e,"boxSizing",!1,s)==="border-box",h=f,E=ur(e,i,s),x="offset"+i[0].toUpperCase()+i.slice(1);if(Jr.test(E)){if(!n)return E;E="auto"}return(!H.boxSizingReliable()&&f||!H.reliableTrDimensions()&&Ne(e,"tr")||E==="auto"||!parseFloat(E)&&o.css(e,"display",!1,s)==="inline")&&e.getClientRects().length&&(f=o.css(e,"boxSizing",!1,s)==="border-box",h=x in e,h&&(E=e[x])),E=parseFloat(E)||0,E+ti(e,i,n||(f?"border":"content"),h,s,E)+"px"}o.extend({cssHooks:{opacity:{get:function(e,i){if(i){var n=ur(e,"opacity");return n===""?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,i,n,s){if(!(!e||e.nodeType===3||e.nodeType===8||!e.style)){var c,f,h,E=xt(i),x=Kr.test(i),D=e.style;if(x||(i=Zr(E)),h=o.cssHooks[i]||o.cssHooks[E],n!==void 0){if(f=typeof n,f==="string"&&(c=Nt.exec(n))&&c[1]&&(n=Hr(e,i,c),f="number"),n==null||n!==n)return;f==="number"&&!x&&(n+=c&&c[3]||(o.cssNumber[E]?"":"px")),!H.clearCloneStyle&&n===""&&i.indexOf("background")===0&&(D[i]="inherit"),(!h||!("set"in h)||(n=h.set(e,n,s))!==void 0)&&(x?D.setProperty(i,n):D[i]=n)}else return h&&"get"in h&&(c=h.get(e,!1,s))!==void 0?c:D[i]}},css:function(e,i,n,s){var c,f,h,E=xt(i),x=Kr.test(i);return x||(i=Zr(E)),h=o.cssHooks[i]||o.cssHooks[E],h&&"get"in h&&(c=h.get(e,!0,n)),c===void 0&&(c=ur(e,i,s)),c==="normal"&&i in ei&&(c=ei[i]),n===""||n?(f=parseFloat(c),n===!0||isFinite(f)?f||0:c):c}}),o.each(["height","width"],function(e,i){o.cssHooks[i]={get:function(n,s,c){if(s)return Xi.test(o.css(n,"display"))&&(!n.getClientRects().length||!n.getBoundingClientRect().width)?Hi(n,cr,function(){return fr(n,i,c)}):fr(n,i,c)},set:function(n,s,c){var f,h=Rr(n),E=!H.scrollboxSize()&&h.position==="absolute",x=E||c,D=x&&o.css(n,"boxSizing",!1,h)==="border-box",R=c?ti(n,i,c,D,h):0;return D&&E&&(R-=Math.ceil(n["offset"+i[0].toUpperCase()+i.slice(1)]-parseFloat(h[i])-ti(n,i,"border",!1,h)-.5)),R&&(f=Nt.exec(s))&&(f[3]||"px")!=="px"&&(n.style[i]=s,s=o.css(n,i)),jt(n,s,R)}}}),o.cssHooks.marginLeft=Vi(H.reliableMarginLeft,function(e,i){if(i)return(parseFloat(ur(e,"marginLeft"))||e.getBoundingClientRect().left-Hi(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),o.each({margin:"",padding:"",border:"Width"},function(e,i){o.cssHooks[e+i]={expand:function(n){for(var s=0,c={},f=typeof n=="string"?n.split(" "):[n];s<4;s++)c[e+wt[s]+i]=f[s]||f[s-2]||f[0];return c}},e!=="margin"&&(o.cssHooks[e+i].set=jt)}),o.fn.extend({css:function(e,i){return Pt(this,function(n,s,c){var f,h,E={},x=0;if(Array.isArray(s)){for(f=Rr(n),h=s.length;x<h;x++)E[s[x]]=o.css(n,s[x],!1,f);return E}return c!==void 0?o.style(n,s,c):o.css(n,s)},e,i,arguments.length>1)}});function Xe(e,i,n,s,c){return new Xe.prototype.init(e,i,n,s,c)}o.Tween=Xe,Xe.prototype={constructor:Xe,init:function(e,i,n,s,c,f){this.elem=e,this.prop=n,this.easing=c||o.easing._default,this.options=i,this.start=this.now=this.cur(),this.end=s,this.unit=f||(o.cssNumber[n]?"":"px")},cur:function(){var e=Xe.propHooks[this.prop];return e&&e.get?e.get(this):Xe.propHooks._default.get(this)},run:function(e){var i,n=Xe.propHooks[this.prop];return this.options.duration?this.pos=i=o.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=i=e,this.now=(this.end-this.start)*i+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):Xe.propHooks._default.set(this),this}},Xe.prototype.init.prototype=Xe.prototype,Xe.propHooks={_default:{get:function(e){var i;return e.elem.nodeType!==1||e.elem[e.prop]!=null&&e.elem.style[e.prop]==null?e.elem[e.prop]:(i=o.css(e.elem,e.prop,""),!i||i==="auto"?0:i)},set:function(e){o.fx.step[e.prop]?o.fx.step[e.prop](e):e.elem.nodeType===1&&(o.cssHooks[e.prop]||e.elem.style[Zr(e.prop)]!=null)?o.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},Xe.propHooks.scrollTop=Xe.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},o.easing={linear:function(e){return e},swing:function(e){return .5-Math.cos(e*Math.PI)/2},_default:"swing"},o.fx=Xe.prototype.init,o.fx.step={};var Kt,Ir,ri=/^(?:toggle|show|hide)$/,Kn=/queueHooks$/;function ii(){Ir&&(K.hidden===!1&&l.requestAnimationFrame?l.requestAnimationFrame(ii):l.setTimeout(ii,o.fx.interval),o.fx.tick())}function p(){return l.setTimeout(function(){Kt=void 0}),Kt=Date.now()}function _(e,i){var n,s=0,c={height:e};for(i=i?1:0;s<4;s+=2-i)n=wt[s],c["margin"+n]=c["padding"+n]=e;return i&&(c.opacity=c.width=e),c}function v(e,i,n){for(var s,c=(S.tweeners[i]||[]).concat(S.tweeners["*"]),f=0,h=c.length;f<h;f++)if(s=c[f].call(n,i,e))return s}function C(e,i,n){var s,c,f,h,E,x,D,R,B="width"in i||"height"in i,L=this,I={},ie=e.style,ve=e.nodeType&&lr(e),re=le.get(e,"fxshow");n.queue||(h=o._queueHooks(e,"fx"),h.unqueued==null&&(h.unqueued=0,E=h.empty.fire,h.empty.fire=function(){h.unqueued||E()}),h.unqueued++,L.always(function(){L.always(function(){h.unqueued--,o.queue(e,"fx").length||h.empty.fire()})}));for(s in i)if(c=i[s],ri.test(c)){if(delete i[s],f=f||c==="toggle",c===(ve?"hide":"show"))if(c==="show"&&re&&re[s]!==void 0)ve=!0;else continue;I[s]=re&&re[s]||o.style(e,s)}if(x=!o.isEmptyObject(i),!(!x&&o.isEmptyObject(I))){B&&e.nodeType===1&&(n.overflow=[ie.overflow,ie.overflowX,ie.overflowY],D=re&&re.display,D==null&&(D=le.get(e,"display")),R=o.css(e,"display"),R==="none"&&(D?R=D:($t([e],!0),D=e.style.display||D,R=o.css(e,"display"),$t([e]))),(R==="inline"||R==="inline-block"&&D!=null)&&o.css(e,"float")==="none"&&(x||(L.done(function(){ie.display=D}),D==null&&(R=ie.display,D=R==="none"?"":R)),ie.display="inline-block")),n.overflow&&(ie.overflow="hidden",L.always(function(){ie.overflow=n.overflow[0],ie.overflowX=n.overflow[1],ie.overflowY=n.overflow[2]})),x=!1;for(s in I)x||(re?"hidden"in re&&(ve=re.hidden):re=le.access(e,"fxshow",{display:D}),f&&(re.hidden=!ve),ve&&$t([e],!0),L.done(function(){ve||$t([e]),le.remove(e,"fxshow");for(s in I)o.style(e,s,I[s])})),x=v(ve?re[s]:0,s,L),s in re||(re[s]=x.start,ve&&(x.end=x.start,x.start=0))}}function k(e,i){var n,s,c,f,h;for(n in e)if(s=xt(n),c=i[s],f=e[n],Array.isArray(f)&&(c=f[1],f=e[n]=f[0]),n!==s&&(e[s]=f,delete e[n]),h=o.cssHooks[s],h&&"expand"in h){f=h.expand(f),delete e[s];for(n in f)n in e||(e[n]=f[n],i[n]=c)}else i[s]=c}function S(e,i,n){var s,c,f=0,h=S.prefilters.length,E=o.Deferred().always(function(){delete x.elem}),x=function(){if(c)return!1;for(var B=Kt||p(),L=Math.max(0,D.startTime+D.duration-B),I=L/D.duration||0,ie=1-I,ve=0,re=D.tweens.length;ve<re;ve++)D.tweens[ve].run(ie);return E.notifyWith(e,[D,ie,L]),ie<1&&re?L:(re||E.notifyWith(e,[D,1,0]),E.resolveWith(e,[D]),!1)},D=E.promise({elem:e,props:o.extend({},i),opts:o.extend(!0,{specialEasing:{},easing:o.easing._default},n),originalProperties:i,originalOptions:n,startTime:Kt||p(),duration:n.duration,tweens:[],createTween:function(B,L){var I=o.Tween(e,D.opts,B,L,D.opts.specialEasing[B]||D.opts.easing);return D.tweens.push(I),I},stop:function(B){var L=0,I=B?D.tweens.length:0;if(c)return this;for(c=!0;L<I;L++)D.tweens[L].run(1);return B?(E.notifyWith(e,[D,1,0]),E.resolveWith(e,[D,B])):E.rejectWith(e,[D,B]),this}}),R=D.props;for(k(R,D.opts.specialEasing);f<h;f++)if(s=S.prefilters[f].call(D,e,R,D.opts),s)return V(s.stop)&&(o._queueHooks(D.elem,D.opts.queue).stop=s.stop.bind(s)),s;return o.map(R,v,D),V(D.opts.start)&&D.opts.start.call(e,D),D.progress(D.opts.progress).done(D.opts.done,D.opts.complete).fail(D.opts.fail).always(D.opts.always),o.fx.timer(o.extend(x,{elem:e,anim:D,queue:D.opts.queue})),D}o.Animation=o.extend(S,{tweeners:{"*":[function(e,i){var n=this.createTween(e,i);return Hr(n.elem,e,Nt.exec(i),n),n}]},tweener:function(e,i){V(e)?(i=e,e=["*"]):e=e.match(yt);for(var n,s=0,c=e.length;s<c;s++)n=e[s],S.tweeners[n]=S.tweeners[n]||[],S.tweeners[n].unshift(i)},prefilters:[C],prefilter:function(e,i){i?S.prefilters.unshift(e):S.prefilters.push(e)}}),o.speed=function(e,i,n){var s=e&&typeof e=="object"?o.extend({},e):{complete:n||!n&&i||V(e)&&e,duration:e,easing:n&&i||i&&!V(i)&&i};return o.fx.off?s.duration=0:typeof s.duration!="number"&&(s.duration in o.fx.speeds?s.duration=o.fx.speeds[s.duration]:s.duration=o.fx.speeds._default),(s.queue==null||s.queue===!0)&&(s.queue="fx"),s.old=s.complete,s.complete=function(){V(s.old)&&s.old.call(this),s.queue&&o.dequeue(this,s.queue)},s},o.fn.extend({fadeTo:function(e,i,n,s){return this.filter(lr).css("opacity",0).show().end().animate({opacity:i},e,n,s)},animate:function(e,i,n,s){var c=o.isEmptyObject(e),f=o.speed(i,n,s),h=function(){var E=S(this,o.extend({},e),f);(c||le.get(this,"finish"))&&E.stop(!0)};return h.finish=h,c||f.queue===!1?this.each(h):this.queue(f.queue,h)},stop:function(e,i,n){var s=function(c){var f=c.stop;delete c.stop,f(n)};return typeof e!="string"&&(n=i,i=e,e=void 0),i&&this.queue(e||"fx",[]),this.each(function(){var c=!0,f=e!=null&&e+"queueHooks",h=o.timers,E=le.get(this);if(f)E[f]&&E[f].stop&&s(E[f]);else for(f in E)E[f]&&E[f].stop&&Kn.test(f)&&s(E[f]);for(f=h.length;f--;)h[f].elem===this&&(e==null||h[f].queue===e)&&(h[f].anim.stop(n),c=!1,h.splice(f,1));(c||!n)&&o.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var i,n=le.get(this),s=n[e+"queue"],c=n[e+"queueHooks"],f=o.timers,h=s?s.length:0;for(n.finish=!0,o.queue(this,e,[]),c&&c.stop&&c.stop.call(this,!0),i=f.length;i--;)f[i].elem===this&&f[i].queue===e&&(f[i].anim.stop(!0),f.splice(i,1));for(i=0;i<h;i++)s[i]&&s[i].finish&&s[i].finish.call(this);delete n.finish})}}),o.each(["toggle","show","hide"],function(e,i){var n=o.fn[i];o.fn[i]=function(s,c,f){return s==null||typeof s=="boolean"?n.apply(this,arguments):this.animate(_(i,!0),s,c,f)}}),o.each({slideDown:_("show"),slideUp:_("hide"),slideToggle:_("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,i){o.fn[e]=function(n,s,c){return this.animate(i,n,s,c)}}),o.timers=[],o.fx.tick=function(){var e,i=0,n=o.timers;for(Kt=Date.now();i<n.length;i++)e=n[i],!e()&&n[i]===e&&n.splice(i--,1);n.length||o.fx.stop(),Kt=void 0},o.fx.timer=function(e){o.timers.push(e),o.fx.start()},o.fx.interval=13,o.fx.start=function(){Ir||(Ir=!0,ii())},o.fx.stop=function(){Ir=null},o.fx.speeds={slow:600,fast:200,_default:400},o.fn.delay=function(e,i){return e=o.fx&&o.fx.speeds[e]||e,i=i||"fx",this.queue(i,function(n,s){var c=l.setTimeout(n,e);s.stop=function(){l.clearTimeout(c)}})},function(){var e=K.createElement("input"),i=K.createElement("select"),n=i.appendChild(K.createElement("option"));e.type="checkbox",H.checkOn=e.value!=="",H.optSelected=n.selected,e=K.createElement("input"),e.value="t",e.type="radio",H.radioValue=e.value==="t"}();var N,j=o.expr.attrHandle;o.fn.extend({attr:function(e,i){return Pt(this,o.attr,e,i,arguments.length>1)},removeAttr:function(e){return this.each(function(){o.removeAttr(this,e)})}}),o.extend({attr:function(e,i,n){var s,c,f=e.nodeType;if(!(f===3||f===8||f===2)){if(typeof e.getAttribute=="undefined")return o.prop(e,i,n);if((f!==1||!o.isXMLDoc(e))&&(c=o.attrHooks[i.toLowerCase()]||(o.expr.match.bool.test(i)?N:void 0)),n!==void 0){if(n===null){o.removeAttr(e,i);return}return c&&"set"in c&&(s=c.set(e,n,i))!==void 0?s:(e.setAttribute(i,n+""),n)}return c&&"get"in c&&(s=c.get(e,i))!==null?s:(s=o.find.attr(e,i),s==null?void 0:s)}},attrHooks:{type:{set:function(e,i){if(!H.radioValue&&i==="radio"&&Ne(e,"input")){var n=e.value;return e.setAttribute("type",i),n&&(e.value=n),i}}}},removeAttr:function(e,i){var n,s=0,c=i&&i.match(yt);if(c&&e.nodeType===1)for(;n=c[s++];)e.removeAttribute(n)}}),N={set:function(e,i,n){return i===!1?o.removeAttr(e,n):e.setAttribute(n,n),n}},o.each(o.expr.match.bool.source.match(/\w+/g),function(e,i){var n=j[i]||o.find.attr;j[i]=function(s,c,f){var h,E,x=c.toLowerCase();return f||(E=j[x],j[x]=h,h=n(s,c,f)!=null?x:null,j[x]=E),h}});var G=/^(?:input|select|textarea|button)$/i,q=/^(?:a|area)$/i;o.fn.extend({prop:function(e,i){return Pt(this,o.prop,e,i,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[o.propFix[e]||e]})}}),o.extend({prop:function(e,i,n){var s,c,f=e.nodeType;if(!(f===3||f===8||f===2))return(f!==1||!o.isXMLDoc(e))&&(i=o.propFix[i]||i,c=o.propHooks[i]),n!==void 0?c&&"set"in c&&(s=c.set(e,n,i))!==void 0?s:e[i]=n:c&&"get"in c&&(s=c.get(e,i))!==null?s:e[i]},propHooks:{tabIndex:{get:function(e){var i=o.find.attr(e,"tabindex");return i?parseInt(i,10):G.test(e.nodeName)||q.test(e.nodeName)&&e.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),H.optSelected||(o.propHooks.selected={get:function(e){var i=e.parentNode;return i&&i.parentNode&&i.parentNode.selectedIndex,null},set:function(e){var i=e.parentNode;i&&(i.selectedIndex,i.parentNode&&i.parentNode.selectedIndex)}}),o.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){o.propFix[this.toLowerCase()]=this});function Y(e){var i=e.match(yt)||[];return i.join(" ")}function Z(e){return e.getAttribute&&e.getAttribute("class")||""}function ye(e){return Array.isArray(e)?e:typeof e=="string"?e.match(yt)||[]:[]}o.fn.extend({addClass:function(e){var i,n,s,c,f,h;return V(e)?this.each(function(E){o(this).addClass(e.call(this,E,Z(this)))}):(i=ye(e),i.length?this.each(function(){if(s=Z(this),n=this.nodeType===1&&" "+Y(s)+" ",n){for(f=0;f<i.length;f++)c=i[f],n.indexOf(" "+c+" ")<0&&(n+=c+" ");h=Y(n),s!==h&&this.setAttribute("class",h)}}):this)},removeClass:function(e){var i,n,s,c,f,h;return V(e)?this.each(function(E){o(this).removeClass(e.call(this,E,Z(this)))}):arguments.length?(i=ye(e),i.length?this.each(function(){if(s=Z(this),n=this.nodeType===1&&" "+Y(s)+" ",n){for(f=0;f<i.length;f++)for(c=i[f];n.indexOf(" "+c+" ")>-1;)n=n.replace(" "+c+" "," ");h=Y(n),s!==h&&this.setAttribute("class",h)}}):this):this.attr("class","")},toggleClass:function(e,i){var n,s,c,f,h=typeof e,E=h==="string"||Array.isArray(e);return V(e)?this.each(function(x){o(this).toggleClass(e.call(this,x,Z(this),i),i)}):typeof i=="boolean"&&E?i?this.addClass(e):this.removeClass(e):(n=ye(e),this.each(function(){if(E)for(f=o(this),c=0;c<n.length;c++)s=n[c],f.hasClass(s)?f.removeClass(s):f.addClass(s);else(e===void 0||h==="boolean")&&(s=Z(this),s&&le.set(this,"__className__",s),this.setAttribute&&this.setAttribute("class",s||e===!1?"":le.get(this,"__className__")||""))}))},hasClass:function(e){var i,n,s=0;for(i=" "+e+" ";n=this[s++];)if(n.nodeType===1&&(" "+Y(Z(n))+" ").indexOf(i)>-1)return!0;return!1}});var Pe=/\r/g;o.fn.extend({val:function(e){var i,n,s,c=this[0];return arguments.length?(s=V(e),this.each(function(f){var h;this.nodeType===1&&(s?h=e.call(this,f,o(this).val()):h=e,h==null?h="":typeof h=="number"?h+="":Array.isArray(h)&&(h=o.map(h,function(E){return E==null?"":E+""})),i=o.valHooks[this.type]||o.valHooks[this.nodeName.toLowerCase()],(!i||!("set"in i)||i.set(this,h,"value")===void 0)&&(this.value=h))})):c?(i=o.valHooks[c.type]||o.valHooks[c.nodeName.toLowerCase()],i&&"get"in i&&(n=i.get(c,"value"))!==void 0?n:(n=c.value,typeof n=="string"?n.replace(Pe,""):n==null?"":n)):void 0}}),o.extend({valHooks:{option:{get:function(e){var i=o.find.attr(e,"value");return i!=null?i:Y(o.text(e))}},select:{get:function(e){var i,n,s,c=e.options,f=e.selectedIndex,h=e.type==="select-one",E=h?null:[],x=h?f+1:c.length;for(f<0?s=x:s=h?f:0;s<x;s++)if(n=c[s],(n.selected||s===f)&&!n.disabled&&(!n.parentNode.disabled||!Ne(n.parentNode,"optgroup"))){if(i=o(n).val(),h)return i;E.push(i)}return E},set:function(e,i){for(var n,s,c=e.options,f=o.makeArray(i),h=c.length;h--;)s=c[h],(s.selected=o.inArray(o.valHooks.option.get(s),f)>-1)&&(n=!0);return n||(e.selectedIndex=-1),f}}}}),o.each(["radio","checkbox"],function(){o.valHooks[this]={set:function(e,i){if(Array.isArray(i))return e.checked=o.inArray(o(e).val(),i)>-1}},H.checkOn||(o.valHooks[this].get=function(e){return e.getAttribute("value")===null?"on":e.value})}),H.focusin="onfocusin"in l;var ke=/^(?:focusinfocus|focusoutblur)$/,We=function(e){e.stopPropagation()};o.extend(o.event,{trigger:function(e,i,n,s){var c,f,h,E,x,D,R,B,L=[n||K],I=W.call(e,"type")?e.type:e,ie=W.call(e,"namespace")?e.namespace.split("."):[];if(f=B=h=n=n||K,!(n.nodeType===3||n.nodeType===8)&&!ke.test(I+o.event.triggered)&&(I.indexOf(".")>-1&&(ie=I.split("."),I=ie.shift(),ie.sort()),x=I.indexOf(":")<0&&"on"+I,e=e[o.expando]?e:new o.Event(I,typeof e=="object"&&e),e.isTrigger=s?2:3,e.namespace=ie.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+ie.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),i=i==null?[e]:o.makeArray(i,[e]),R=o.event.special[I]||{},!(!s&&R.trigger&&R.trigger.apply(n,i)===!1))){if(!s&&!R.noBubble&&!de(n)){for(E=R.delegateType||I,ke.test(E+I)||(f=f.parentNode);f;f=f.parentNode)L.push(f),h=f;h===(n.ownerDocument||K)&&L.push(h.defaultView||h.parentWindow||l)}for(c=0;(f=L[c++])&&!e.isPropagationStopped();)B=f,e.type=c>1?E:R.bindType||I,D=(le.get(f,"events")||Object.create(null))[e.type]&&le.get(f,"handle"),D&&D.apply(f,i),D=x&&f[x],D&&D.apply&&sr(f)&&(e.result=D.apply(f,i),e.result===!1&&e.preventDefault());return e.type=I,!s&&!e.isDefaultPrevented()&&(!R._default||R._default.apply(L.pop(),i)===!1)&&sr(n)&&x&&V(n[I])&&!de(n)&&(h=n[x],h&&(n[x]=null),o.event.triggered=I,e.isPropagationStopped()&&B.addEventListener(I,We),n[I](),e.isPropagationStopped()&&B.removeEventListener(I,We),o.event.triggered=void 0,h&&(n[x]=h)),e.result}},simulate:function(e,i,n){var s=o.extend(new o.Event,n,{type:e,isSimulated:!0});o.event.trigger(s,null,i)}}),o.fn.extend({trigger:function(e,i){return this.each(function(){o.event.trigger(e,i,this)})},triggerHandler:function(e,i){var n=this[0];if(n)return o.event.trigger(e,i,n,!0)}}),H.focusin||o.each({focus:"focusin",blur:"focusout"},function(e,i){var n=function(s){o.event.simulate(i,s.target,o.event.fix(s))};o.event.special[i]={setup:function(){var s=this.ownerDocument||this.document||this,c=le.access(s,i);c||s.addEventListener(e,n,!0),le.access(s,i,(c||0)+1)},teardown:function(){var s=this.ownerDocument||this.document||this,c=le.access(s,i)-1;c?le.access(s,i,c):(s.removeEventListener(e,n,!0),le.remove(s,i))}}});var Le=l.location,at={guid:Date.now()},Bt=/\?/;o.parseXML=function(e){var i,n;if(!e||typeof e!="string")return null;try{i=new l.DOMParser().parseFromString(e,"text/xml")}catch(s){}return n=i&&i.getElementsByTagName("parsererror")[0],(!i||n)&&o.error("Invalid XML: "+(n?o.map(n.childNodes,function(s){return s.textContent}).join(`
`):e)),i};var ni=/\[\]$/,Qi=/\r?\n/g,ai=/^(?:submit|button|image|reset|file)$/i,gs=/^(?:input|select|textarea|keygen)/i;function si(e,i,n,s){var c;if(Array.isArray(i))o.each(i,function(f,h){n||ni.test(e)?s(e,h):si(e+"["+(typeof h=="object"&&h!=null?f:"")+"]",h,n,s)});else if(!n&&be(i)==="object")for(c in i)si(e+"["+c+"]",i[c],n,s);else s(e,i)}o.param=function(e,i){var n,s=[],c=function(f,h){var E=V(h)?h():h;s[s.length]=encodeURIComponent(f)+"="+encodeURIComponent(E==null?"":E)};if(e==null)return"";if(Array.isArray(e)||e.jquery&&!o.isPlainObject(e))o.each(e,function(){c(this.name,this.value)});else for(n in e)si(n,e[n],i,c);return s.join("&")},o.fn.extend({serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=o.prop(this,"elements");return e?o.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!o(this).is(":disabled")&&gs.test(this.nodeName)&&!ai.test(e)&&(this.checked||!Qt.test(e))}).map(function(e,i){var n=o(this).val();return n==null?null:Array.isArray(n)?o.map(n,function(s){return{name:i.name,value:s.replace(Qi,`\r
`)}}):{name:i.name,value:n.replace(Qi,`\r
`)}}).get()}});var Zn=/%20/g,Ji=/#.*$/,rl=/([?&])_=[^&]*/,il=/^(.*?):[ \t]*([^\r\n]*)$/mg,nl=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,al=/^(?:GET|HEAD)$/,sl=/^\/\//,ms={},ea={},vs="*/".concat("*"),ta=K.createElement("a");ta.href=Le.href;function bs(e){return function(i,n){typeof i!="string"&&(n=i,i="*");var s,c=0,f=i.toLowerCase().match(yt)||[];if(V(n))for(;s=f[c++];)s[0]==="+"?(s=s.slice(1)||"*",(e[s]=e[s]||[]).unshift(n)):(e[s]=e[s]||[]).push(n)}}function ys(e,i,n,s){var c={},f=e===ea;function h(E){var x;return c[E]=!0,o.each(e[E]||[],function(D,R){var B=R(i,n,s);if(typeof B=="string"&&!f&&!c[B])return i.dataTypes.unshift(B),h(B),!1;if(f)return!(x=B)}),x}return h(i.dataTypes[0])||!c["*"]&&h("*")}function ra(e,i){var n,s,c=o.ajaxSettings.flatOptions||{};for(n in i)i[n]!==void 0&&((c[n]?e:s||(s={}))[n]=i[n]);return s&&o.extend(!0,e,s),e}function ol(e,i,n){for(var s,c,f,h,E=e.contents,x=e.dataTypes;x[0]==="*";)x.shift(),s===void 0&&(s=e.mimeType||i.getResponseHeader("Content-Type"));if(s){for(c in E)if(E[c]&&E[c].test(s)){x.unshift(c);break}}if(x[0]in n)f=x[0];else{for(c in n){if(!x[0]||e.converters[c+" "+x[0]]){f=c;break}h||(h=c)}f=f||h}if(f)return f!==x[0]&&x.unshift(f),n[f]}function ll(e,i,n,s){var c,f,h,E,x,D={},R=e.dataTypes.slice();if(R[1])for(h in e.converters)D[h.toLowerCase()]=e.converters[h];for(f=R.shift();f;)if(e.responseFields[f]&&(n[e.responseFields[f]]=i),!x&&s&&e.dataFilter&&(i=e.dataFilter(i,e.dataType)),x=f,f=R.shift(),f){if(f==="*")f=x;else if(x!=="*"&&x!==f){if(h=D[x+" "+f]||D["* "+f],!h){for(c in D)if(E=c.split(" "),E[1]===f&&(h=D[x+" "+E[0]]||D["* "+E[0]],h)){h===!0?h=D[c]:D[c]!==!0&&(f=E[0],R.unshift(E[1]));break}}if(h!==!0)if(h&&e.throws)i=h(i);else try{i=h(i)}catch(B){return{state:"parsererror",error:h?B:"No conversion from "+x+" to "+f}}}}return{state:"success",data:i}}o.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Le.href,type:"GET",isLocal:nl.test(Le.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":vs,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":o.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,i){return i?ra(ra(e,o.ajaxSettings),i):ra(o.ajaxSettings,e)},ajaxPrefilter:bs(ms),ajaxTransport:bs(ea),ajax:function(e,i){typeof e=="object"&&(i=e,e=void 0),i=i||{};var n,s,c,f,h,E,x,D,R,B,L=o.ajaxSetup({},i),I=L.context||L,ie=L.context&&(I.nodeType||I.jquery)?o(I):o.event,ve=o.Deferred(),re=o.Callbacks("once memory"),Ge=L.statusCode||{},Ve={},ht={},Fe="canceled",ge={readyState:0,getResponseHeader:function(Te){var je;if(x){if(!f)for(f={};je=il.exec(c);)f[je[1].toLowerCase()+" "]=(f[je[1].toLowerCase()+" "]||[]).concat(je[2]);je=f[Te.toLowerCase()+" "]}return je==null?null:je.join(", ")},getAllResponseHeaders:function(){return x?c:null},setRequestHeader:function(Te,je){return x==null&&(Te=ht[Te.toLowerCase()]=ht[Te.toLowerCase()]||Te,Ve[Te]=je),this},overrideMimeType:function(Te){return x==null&&(L.mimeType=Te),this},statusCode:function(Te){var je;if(Te)if(x)ge.always(Te[ge.status]);else for(je in Te)Ge[je]=[Ge[je],Te[je]];return this},abort:function(Te){var je=Te||Fe;return n&&n.abort(je),ut(0,je),this}};if(ve.promise(ge),L.url=((e||L.url||Le.href)+"").replace(sl,Le.protocol+"//"),L.type=i.method||i.type||L.method||L.type,L.dataTypes=(L.dataType||"*").toLowerCase().match(yt)||[""],L.crossDomain==null){E=K.createElement("a");try{E.href=L.url,E.href=E.href,L.crossDomain=ta.protocol+"//"+ta.host!=E.protocol+"//"+E.host}catch(Te){L.crossDomain=!0}}if(L.data&&L.processData&&typeof L.data!="string"&&(L.data=o.param(L.data,L.traditional)),ys(ms,L,i,ge),x)return ge;D=o.event&&L.global,D&&o.active++==0&&o.event.trigger("ajaxStart"),L.type=L.type.toUpperCase(),L.hasContent=!al.test(L.type),s=L.url.replace(Ji,""),L.hasContent?L.data&&L.processData&&(L.contentType||"").indexOf("application/x-www-form-urlencoded")===0&&(L.data=L.data.replace(Zn,"+")):(B=L.url.slice(s.length),L.data&&(L.processData||typeof L.data=="string")&&(s+=(Bt.test(s)?"&":"?")+L.data,delete L.data),L.cache===!1&&(s=s.replace(rl,"$1"),B=(Bt.test(s)?"&":"?")+"_="+at.guid+++B),L.url=s+B),L.ifModified&&(o.lastModified[s]&&ge.setRequestHeader("If-Modified-Since",o.lastModified[s]),o.etag[s]&&ge.setRequestHeader("If-None-Match",o.etag[s])),(L.data&&L.hasContent&&L.contentType!==!1||i.contentType)&&ge.setRequestHeader("Content-Type",L.contentType),ge.setRequestHeader("Accept",L.dataTypes[0]&&L.accepts[L.dataTypes[0]]?L.accepts[L.dataTypes[0]]+(L.dataTypes[0]!=="*"?", "+vs+"; q=0.01":""):L.accepts["*"]);for(R in L.headers)ge.setRequestHeader(R,L.headers[R]);if(L.beforeSend&&(L.beforeSend.call(I,ge,L)===!1||x))return ge.abort();if(Fe="abort",re.add(L.complete),ge.done(L.success),ge.fail(L.error),n=ys(ea,L,i,ge),!n)ut(-1,"No Transport");else{if(ge.readyState=1,D&&ie.trigger("ajaxSend",[ge,L]),x)return ge;L.async&&L.timeout>0&&(h=l.setTimeout(function(){ge.abort("timeout")},L.timeout));try{x=!1,n.send(Ve,ut)}catch(Te){if(x)throw Te;ut(-1,Te)}}function ut(Te,je,li,Ki){var pt,dr,hr,ct,Zt,Et=je;x||(x=!0,h&&l.clearTimeout(h),n=void 0,c=Ki||"",ge.readyState=Te>0?4:0,pt=Te>=200&&Te<300||Te===304,li&&(ct=ol(L,ge,li)),!pt&&o.inArray("script",L.dataTypes)>-1&&o.inArray("json",L.dataTypes)<0&&(L.converters["text script"]=function(){}),ct=ll(L,ct,ge,pt),pt?(L.ifModified&&(Zt=ge.getResponseHeader("Last-Modified"),Zt&&(o.lastModified[s]=Zt),Zt=ge.getResponseHeader("etag"),Zt&&(o.etag[s]=Zt)),Te===204||L.type==="HEAD"?Et="nocontent":Te===304?Et="notmodified":(Et=ct.state,dr=ct.data,hr=ct.error,pt=!hr)):(hr=Et,(Te||!Et)&&(Et="error",Te<0&&(Te=0))),ge.status=Te,ge.statusText=(je||Et)+"",pt?ve.resolveWith(I,[dr,Et,ge]):ve.rejectWith(I,[ge,Et,hr]),ge.statusCode(Ge),Ge=void 0,D&&ie.trigger(pt?"ajaxSuccess":"ajaxError",[ge,L,pt?dr:hr]),re.fireWith(I,[ge,Et]),D&&(ie.trigger("ajaxComplete",[ge,L]),--o.active||o.event.trigger("ajaxStop")))}return ge},getJSON:function(e,i,n){return o.get(e,i,n,"json")},getScript:function(e,i){return o.get(e,void 0,i,"script")}}),o.each(["get","post"],function(e,i){o[i]=function(n,s,c,f){return V(s)&&(f=f||c,c=s,s=void 0),o.ajax(o.extend({url:n,type:i,dataType:f,data:s,success:c},o.isPlainObject(n)&&n))}}),o.ajaxPrefilter(function(e){var i;for(i in e.headers)i.toLowerCase()==="content-type"&&(e.contentType=e.headers[i]||"")}),o._evalUrl=function(e,i,n){return o.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(s){o.globalEval(s,i,n)}})},o.fn.extend({wrapAll:function(e){var i;return this[0]&&(V(e)&&(e=e.call(this[0])),i=o(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&i.insertBefore(this[0]),i.map(function(){for(var n=this;n.firstElementChild;)n=n.firstElementChild;return n}).append(this)),this},wrapInner:function(e){return V(e)?this.each(function(i){o(this).wrapInner(e.call(this,i))}):this.each(function(){var i=o(this),n=i.contents();n.length?n.wrapAll(e):i.append(e)})},wrap:function(e){var i=V(e);return this.each(function(n){o(this).wrapAll(i?e.call(this,n):e)})},unwrap:function(e){return this.parent(e).not("body").each(function(){o(this).replaceWith(this.childNodes)}),this}}),o.expr.pseudos.hidden=function(e){return!o.expr.pseudos.visible(e)},o.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},o.ajaxSettings.xhr=function(){try{return new l.XMLHttpRequest}catch(e){}};var ul={0:200,1223:204},oi=o.ajaxSettings.xhr();H.cors=!!oi&&"withCredentials"in oi,H.ajax=oi=!!oi,o.ajaxTransport(function(e){var i,n;if(H.cors||oi&&!e.crossDomain)return{send:function(s,c){var f,h=e.xhr();if(h.open(e.type,e.url,e.async,e.username,e.password),e.xhrFields)for(f in e.xhrFields)h[f]=e.xhrFields[f];e.mimeType&&h.overrideMimeType&&h.overrideMimeType(e.mimeType),!e.crossDomain&&!s["X-Requested-With"]&&(s["X-Requested-With"]="XMLHttpRequest");for(f in s)h.setRequestHeader(f,s[f]);i=function(E){return function(){i&&(i=n=h.onload=h.onerror=h.onabort=h.ontimeout=h.onreadystatechange=null,E==="abort"?h.abort():E==="error"?typeof h.status!="number"?c(0,"error"):c(h.status,h.statusText):c(ul[h.status]||h.status,h.statusText,(h.responseType||"text")!=="text"||typeof h.responseText!="string"?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=i(),n=h.onerror=h.ontimeout=i("error"),h.onabort!==void 0?h.onabort=n:h.onreadystatechange=function(){h.readyState===4&&l.setTimeout(function(){i&&n()})},i=i("abort");try{h.send(e.hasContent&&e.data||null)}catch(E){if(i)throw E}},abort:function(){i&&i()}}}),o.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),o.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return o.globalEval(e),e}}}),o.ajaxPrefilter("script",function(e){e.cache===void 0&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),o.ajaxTransport("script",function(e){if(e.crossDomain||e.scriptAttrs){var i,n;return{send:function(s,c){i=o("<script>").attr(e.scriptAttrs||{}).prop({charset:e.scriptCharset,src:e.url}).on("load error",n=function(f){i.remove(),n=null,f&&c(f.type==="error"?404:200,f.type)}),K.head.appendChild(i[0])},abort:function(){n&&n()}}}});var xs=[],ia=/(=)\?(?=&|$)|\?\?/;o.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=xs.pop()||o.expando+"_"+at.guid++;return this[e]=!0,e}}),o.ajaxPrefilter("json jsonp",function(e,i,n){var s,c,f,h=e.jsonp!==!1&&(ia.test(e.url)?"url":typeof e.data=="string"&&(e.contentType||"").indexOf("application/x-www-form-urlencoded")===0&&ia.test(e.data)&&"data");if(h||e.dataTypes[0]==="jsonp")return s=e.jsonpCallback=V(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,h?e[h]=e[h].replace(ia,"$1"+s):e.jsonp!==!1&&(e.url+=(Bt.test(e.url)?"&":"?")+e.jsonp+"="+s),e.converters["script json"]=function(){return f||o.error(s+" was not called"),f[0]},e.dataTypes[0]="json",c=l[s],l[s]=function(){f=arguments},n.always(function(){c===void 0?o(l).removeProp(s):l[s]=c,e[s]&&(e.jsonpCallback=i.jsonpCallback,xs.push(s)),f&&V(c)&&c(f[0]),f=c=void 0}),"script"}),H.createHTMLDocument=function(){var e=K.implementation.createHTMLDocument("").body;return e.innerHTML="<form></form><form></form>",e.childNodes.length===2}(),o.parseHTML=function(e,i,n){if(typeof e!="string")return[];typeof i=="boolean"&&(n=i,i=!1);var s,c,f;return i||(H.createHTMLDocument?(i=K.implementation.createHTMLDocument(""),s=i.createElement("base"),s.href=K.location.href,i.head.appendChild(s)):i=K),c=it.exec(e),f=!n&&[],c?[i.createElement(c[1])]:(c=Xr([e],i,f),f&&f.length&&o(f).remove(),o.merge([],c.childNodes))},o.fn.load=function(e,i,n){var s,c,f,h=this,E=e.indexOf(" ");return E>-1&&(s=Y(e.slice(E)),e=e.slice(0,E)),V(i)?(n=i,i=void 0):i&&typeof i=="object"&&(c="POST"),h.length>0&&o.ajax({url:e,type:c||"GET",dataType:"html",data:i}).done(function(x){f=arguments,h.html(s?o("<div>").append(o.parseHTML(x)).find(s):x)}).always(n&&function(x,D){h.each(function(){n.apply(this,f||[x.responseText,D,x])})}),this},o.expr.pseudos.animated=function(e){return o.grep(o.timers,function(i){return e===i.elem}).length},o.offset={setOffset:function(e,i,n){var s,c,f,h,E,x,D,R=o.css(e,"position"),B=o(e),L={};R==="static"&&(e.style.position="relative"),E=B.offset(),f=o.css(e,"top"),x=o.css(e,"left"),D=(R==="absolute"||R==="fixed")&&(f+x).indexOf("auto")>-1,D?(s=B.position(),h=s.top,c=s.left):(h=parseFloat(f)||0,c=parseFloat(x)||0),V(i)&&(i=i.call(e,n,o.extend({},E))),i.top!=null&&(L.top=i.top-E.top+h),i.left!=null&&(L.left=i.left-E.left+c),"using"in i?i.using.call(e,L):B.css(L)}},o.fn.extend({offset:function(e){if(arguments.length)return e===void 0?this:this.each(function(c){o.offset.setOffset(this,e,c)});var i,n,s=this[0];if(!!s)return s.getClientRects().length?(i=s.getBoundingClientRect(),n=s.ownerDocument.defaultView,{top:i.top+n.pageYOffset,left:i.left+n.pageXOffset}):{top:0,left:0}},position:function(){if(!!this[0]){var e,i,n,s=this[0],c={top:0,left:0};if(o.css(s,"position")==="fixed")i=s.getBoundingClientRect();else{for(i=this.offset(),n=s.ownerDocument,e=s.offsetParent||n.documentElement;e&&(e===n.body||e===n.documentElement)&&o.css(e,"position")==="static";)e=e.parentNode;e&&e!==s&&e.nodeType===1&&(c=o(e).offset(),c.top+=o.css(e,"borderTopWidth",!0),c.left+=o.css(e,"borderLeftWidth",!0))}return{top:i.top-c.top-o.css(s,"marginTop",!0),left:i.left-c.left-o.css(s,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent;e&&o.css(e,"position")==="static";)e=e.offsetParent;return e||Lt})}}),o.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,i){var n=i==="pageYOffset";o.fn[e]=function(s){return Pt(this,function(c,f,h){var E;if(de(c)?E=c:c.nodeType===9&&(E=c.defaultView),h===void 0)return E?E[i]:c[f];E?E.scrollTo(n?E.pageXOffset:h,n?h:E.pageYOffset):c[f]=h},e,s,arguments.length)}}),o.each(["top","left"],function(e,i){o.cssHooks[i]=Vi(H.pixelPosition,function(n,s){if(s)return s=ur(n,i),Jr.test(s)?o(n).position()[i]+"px":s})}),o.each({Height:"height",Width:"width"},function(e,i){o.each({padding:"inner"+e,content:i,"":"outer"+e},function(n,s){o.fn[s]=function(c,f){var h=arguments.length&&(n||typeof c!="boolean"),E=n||(c===!0||f===!0?"margin":"border");return Pt(this,function(x,D,R){var B;return de(x)?s.indexOf("outer")===0?x["inner"+e]:x.document.documentElement["client"+e]:x.nodeType===9?(B=x.documentElement,Math.max(x.body["scroll"+e],B["scroll"+e],x.body["offset"+e],B["offset"+e],B["client"+e])):R===void 0?o.css(x,D,E):o.style(x,D,R,E)},i,h?c:void 0,h)}})}),o.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,i){o.fn[i]=function(n){return this.on(i,n)}}),o.fn.extend({bind:function(e,i,n){return this.on(e,null,i,n)},unbind:function(e,i){return this.off(e,null,i)},delegate:function(e,i,n,s){return this.on(i,e,n,s)},undelegate:function(e,i,n){return arguments.length===1?this.off(e,"**"):this.off(i,e||"**",n)},hover:function(e,i){return this.mouseenter(e).mouseleave(i||e)}}),o.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,i){o.fn[i]=function(n,s){return arguments.length>0?this.on(i,null,n,s):this.trigger(i)}});var cl=/^[\s\uFEFF\xA0]+|([^\s\uFEFF\xA0])[\s\uFEFF\xA0]+$/g;o.proxy=function(e,i){var n,s,c;if(typeof i=="string"&&(n=e[i],i=e,e=n),!!V(e))return s=u.call(arguments,2),c=function(){return e.apply(i||this,s.concat(u.call(arguments)))},c.guid=e.guid=e.guid||o.guid++,c},o.holdReady=function(e){e?o.readyWait++:o.ready(!0)},o.isArray=Array.isArray,o.parseJSON=JSON.parse,o.nodeName=Ne,o.isFunction=V,o.isWindow=de,o.camelCase=xt,o.type=be,o.now=Date.now,o.isNumeric=function(e){var i=o.type(e);return(i==="number"||i==="string")&&!isNaN(e-parseFloat(e))},o.trim=function(e){return e==null?"":(e+"").replace(cl,"$1")},typeof define=="function"&&define.amd&&define("jquery",[],function(){return o});var fl=l.jQuery,dl=l.$;return o.noConflict=function(e){return l.$===o&&(l.$=dl),e&&l.jQuery===o&&(l.jQuery=fl),o},typeof t=="undefined"&&(l.jQuery=l.$=o),o})});var rs=hi(wa());var pn=class{constructor(t,r){t=t||[],this.lines=t,this.text=r,this.offset2loc=new Map,this.line2offset=new Map;for(var a of t)a.offset>=0&&(this.offset2loc[a.offset]||(this.offset2loc[a.offset]=a),this.line2offset[a.line]||(this.line2offset[a.line]=a.offset))}findLineForOffset(t,r){if(this.offset2loc)for(var a=0;a<=r;a++){var u=this.offset2loc[t];if(u)return u;t--}return null}lineCount(){return this.lines.length}};function zs(l){return"errors"in l}function Vs(l){return"output"in l}var Gs=hi(wa()),Ea=class{constructor(t){this.preset_id=dt(t)}async getRemoteFile(t){return new Promise((r,a)=>cn(t,r,vr(t)?"arraybuffer":"text"))}async getFileData(t){var r="presets/"+this.preset_id+"/"+t,a=await this.getRemoteFile(r);return a&&console.log("read",r,a.length,"bytes"),a}async setFileData(t,r){}};var mi=class{constructor(t,r){this.basefs=t,this.overlayfs=r}async getFileData(t){var r=await this.overlayfs.getFileData(t);return r==null?this.basefs.getFileData(t):r}async setFileData(t,r){return await this.overlayfs.setFileData(t,r),this.basefs.setFileData(t,r)}},_a=class{constructor(t){this.store=t}async getFileData(t){return this.store.getItem(t)}async setFileData(t,r){return this.store.setItem(t,r)}};var Sa=class{constructor(t,r,a,u){this.filedata={};this.pendingWorkerMessages=0;this.tools_preloaded={};this.isCompiling=!1;this.filename2path={};this.worker=t,this.platform_id=r,this.platform=a,this.filesystem=u,t.onmessage=d=>{this.receiveWorkerMessage(d.data)}}receiveWorkerMessage(t){var r=this.pendingWorkerMessages>1;r?(this.sendBuild(),this.pendingWorkerMessages=1):(this.callbackBuildStatus&&this.callbackBuildStatus(!1),this.isCompiling||(console.log(this.pendingWorkerMessages),console.trace()),this.isCompiling=!1,this.pendingWorkerMessages=0),t&&Vs(t)?this.processBuildResult(t):zs(t)&&this.processBuildListings(t),this.callbackBuildResult(t)}getToolForFilename(t){return this.remoteTool?"remote:"+this.remoteTool:this.platform.getToolForFilename(t)}preloadWorker(t){var r=this.getToolForFilename(t);r&&!this.tools_preloaded[r]&&(this.worker.postMessage({preload:r,platform:this.platform_id}),this.tools_preloaded[r]=!0)}pushAllFiles(t,r){t.push(r);var a=da(this.mainPath);a.length>0&&a!="local"&&t.push(a+"/"+r)}parseIncludeDependencies(t){let r=[],a;if(this.platform_id.startsWith("verilog")){let u=/^\s*(`include|[.]include)\s+"(.+?)"/gmi;for(;a=u.exec(t);)this.pushAllFiles(r,a[2]);let d=/^\s*\$(include|\$dofile|\$write_image_in_table)\('(.+?)'/gmi;for(;a=d.exec(t);)this.pushAllFiles(r,a[2]);let m=/^\s*([.]arch)\s+(\w+)/gmi;for(;a=m.exec(t);)this.pushAllFiles(r,a[2]+".json");let y=/\$readmem[bh]\("(.+?)"/gmi;for(;a=y.exec(t);)this.pushAllFiles(r,a[1])}else{let u=/^\s*[.#%]?(include|incbin|embed)\s+"(.+?)"/gmi;for(;a=u.exec(t);)this.pushAllFiles(r,a[2]);let d=/^\s*([;']|[/][/])#(resource)\s+"(.+?)"/gm;for(;a=d.exec(t);)this.pushAllFiles(r,a[3]);let m=/^\s+(USE|ASM)\s+(\S+[.]\S+)/gm;for(;a=m.exec(t);)this.pushAllFiles(r,a[2]);let y=/^\s*(import|embed)\s*"(.+?)";/gmi;for(;a=y.exec(t);)a[1]=="import"?this.pushAllFiles(r,a[2]+".wiz"):this.pushAllFiles(r,a[2]);let b=/^\s*(import)\s*"(.+?)"/gmi;for(;a=b.exec(t);)this.pushAllFiles(r,a[2]);let F=/^[!]src\s+"(.+?)"/gmi;for(;a=F.exec(t);)this.pushAllFiles(r,a[1])}return r}parseLinkDependencies(t){let r=[],a;if(!this.platform_id.startsWith("verilog")){let u=/^\s*([;]|[/][/])#link\s+"(.+?)"/gm;for(;a=u.exec(t);)this.pushAllFiles(r,a[2])}return r}loadFileDependencies(t){let r=this.parseIncludeDependencies(t),a=this.parseLinkDependencies(t),u=r.concat(a);return this.loadFiles(u).then(d=>{if(d)for(let m of d)m.link=a.indexOf(m.path)>=0;return d})}okToSend(){return this.pendingWorkerMessages++==0&&this.mainPath!=null}updateFileInStore(t,r){this.filesystem.setFileData(t,r)}buildWorkerMessage(t){this.preloadWorker(this.mainPath);var r={updates:[],buildsteps:[]},a=this.stripLocalPath(this.mainPath),u=this.getFile(this.mainPath),d=[];r.updates.push({path:a,data:u}),this.filename2path[a]=this.mainPath;let y=this.getToolForFilename(this.mainPath).startsWith("remote:");for(var b of t)(!b.link||y)&&(r.updates.push({path:b.filename,data:b.data}),d.push(b.filename)),this.filename2path[b.filename]=b.path;r.buildsteps.push({path:a,files:[a].concat(d),platform:this.platform_id,tool:this.getToolForFilename(this.mainPath),mainfile:!0});for(var b of t)b.data&&b.link&&(this.preloadWorker(b.filename),r.updates.push({path:b.filename,data:b.data}),r.buildsteps.push({path:b.filename,files:[b.filename].concat(d),platform:this.platform_id,tool:this.getToolForFilename(b.path)}));return this.dataItems&&(r.setitems=this.dataItems),r}async loadFiles(t){var r=[],a=(m,y)=>{r.push({path:m,filename:this.stripLocalPath(m),link:!0,data:y})};for(var u of t)if(u in this.filedata){var d=this.filedata[u];d&&a(u,d)}else{var d=await this.filesystem.getFileData(u);d?(this.filedata[u]=d,a(u,d)):this.filedata[u]=null}return r}getFile(t){return this.filedata[t]}iterateFiles(t){for(var r in this.filedata)t(r,this.getFile(r))}sendBuild(){if(!this.mainPath)throw Error("need to call setMainFile first");var t=this.getFile(this.mainPath);if(t instanceof Uint8Array){this.isCompiling=!0,this.receiveWorkerMessage({output:t,errors:[],listings:null,symbolmap:null,params:{}});return}var r=typeof t=="string"?t:"";return this.loadFileDependencies(r).then(a=>{a||(a=[]);var u=this.buildWorkerMessage(a);this.worker.postMessage(u),this.isCompiling=!0})}updateFile(t,r){this.filedata[t]!=r&&(this.updateFileInStore(t,r),this.filedata[t]=r,this.okToSend()&&(this.callbackBuildStatus&&this.callbackBuildStatus(!0),this.sendBuild()))}setMainFile(t){this.mainPath=t,this.callbackBuildStatus&&this.callbackBuildStatus(!0),this.sendBuild()}processBuildListings(t){if(t.listings){this.listings=t.listings;for(var r in this.listings){var a=this.listings[r];a.lines&&(a.sourcefile=new pn(a.lines,a.text)),a.asmlines&&(a.assemblyfile=new pn(a.asmlines,a.text))}}}processBuildResult(t){this.processBuildListings(t),this.processBuildSegments(t)}processBuildSegments(t){var r=this.platform.getMemoryMap&&this.platform.getMemoryMap().main||[];(r==null?void 0:r.length)&&r.forEach(a=>a.source="native"),t.segments&&(t.segments.forEach(a=>a.source="linker"),r=r.concat(t.segments||[])),r.sort((a,u)=>a.start-u.start),this.segments=r}getListings(){return this.listings}getListingForFile(t){var r=rt(this.stripLocalPath(t)),a=this.getListings();for(var u in a)if(u==t)return a[u];for(var u in a)if(rt(u)==r)return a[u]}stripLocalPath(t){if(this.mainPath){var r=da(this.mainPath);r!=""&&t.startsWith(r+"/")&&(t=t.substring(r.length+1))}return t}updateDataItems(t){this.dataItems=t,this.okToSend()&&this.sendBuild()}};function gn(l){var t=Gs.default.createInstance({name:"__"+l,version:2});return t}var Ta=Ys(),Ca=class{constructor(t,r){this.id2window={};this.id2createfn={};this.id2showfn={};this.id2div={};this.containerdiv=t,this.project=r,this.undofiles=[]}isWindow(t){return this.id2createfn[t]!=null}setCreateFunc(t,r){this.id2createfn[t]=r}setShowFunc(t,r){this.id2showfn[t]=r}create(t){var r=this.id2window[t];r||(console.log("creating window",t),r=this.id2window[t]=this.id2createfn[t](t));var a=this.id2div[t];return a||(a=this.id2div[t]=r.createDiv(this.containerdiv),Ta(a).hide()),r}createOrShow(t,r){var a=this.create(t),u=this.id2div[t];return this.activewnd!=a?(this.activediv&&Ta(this.activediv).hide(),this.activewnd&&this.activewnd.setVisible&&this.activewnd.setVisible(!1),this.activediv=u,this.activewnd=a,Ta(u).show(),this.refresh(!0),this.refreshErrors(),a.setVisible&&a.setVisible(!0),this.id2showfn[t]&&this.id2showfn[t](t,a)):this.refresh(r),this.activeid=t,a}put(t,r){this.id2window[t]=r}refresh(t){this.activewnd&&this.activewnd.refresh&&this.activewnd.refresh(t)}tick(){this.activewnd&&this.activewnd.tick&&this.activewnd.tick()}setErrors(t){this.lasterrors=t,this.refreshErrors()}refreshErrors(){this.activewnd&&this.activewnd.markErrors&&(this.lasterrors&&this.lasterrors.length?this.activewnd.markErrors(this.lasterrors):this.activewnd.clearErrors())}getActive(){return this.activewnd}getActiveID(){return this.activeid}getCurrentText(){if(this.activewnd&&this.activewnd.getValue)return this.activewnd.getValue();bootbox.alert("Please switch to an editor window.")}resize(){this.activeid&&this.activewnd&&this.activewnd.recreateOnResize&&(this.activewnd=null,this.id2window[this.activeid]=null,this.id2div[this.activeid]=null,this.createOrShow(this.activeid))}updateFile(t,r){var a=this.id2window[t];a&&a.setText&&typeof r=="string"?(a.setText(r),this.undofiles.push(t)):this.project.updateFile(t,r)}undoStep(){var t=this.undofiles.pop(),r=this.id2window[t];r&&r.undoStep?r.undoStep():bootbox.alert("No more steps to undo.")}updateAllOpenWindows(t){for(var r in this.id2window){var a=this.id2window[r];a&&a.setText&&t.getItem(r).then(u=>{this.updateFile(r,u)})}}findWindowWithFilePrefix(t){t=ft(rt(t));for(var r in this.id2createfn)if(!(r.toLowerCase().endsWith(".h")||r.toLowerCase().endsWith(".inc")||r.toLowerCase().endsWith(".bas"))&&ft(rt(r))==t)return r;return null}};var Al=`$NAME
=====
[Open this project in 8bitworkshop](http://8bitworkshop.com/redir.html?platform=$PLATFORM&githubURL=$GITHUBURL&file=$MAINFILE).
`;function Or(){for(var l={},t=0;t<localStorage.length;t++){var r=localStorage.key(t);if(r.startsWith("__repo__")){var a=JSON.parse(localStorage.getItem(r)),u=r.substring("__repo__".length);l[u]=a}}return l}function vi(l){var t=l.split("/",8);return t.length<5||t[0]!="https:"||t[2]!="github.com"||t[5]&&t[5]!="tree"?null:{user:t[3],repo:t[4],repopath:t[3]+"/"+t[4],branch:t[6],subtreepath:t[7]}}var Pa=class{constructor(t,r,a,u){this.githubCons=t,this.githubToken=r,this.store=a,this.project=u,this.recreateGithub()}recreateGithub(){this.github=new this.githubCons({token:this.githubToken})}login(){if(this.githubToken&&this.githubToken.length)return new Promise((r,a)=>{r()});var t=new firebase.auth.GithubAuthProvider;return t.addScope("repo"),firebase.auth().signInWithPopup(t).then(r=>{this.githubToken=r.credential.accessToken;var a=r.user;this.recreateGithub(),document.cookie="__github_key="+this.githubToken+";path=/;max-age=31536000",console.log("Stored GitHub OAUTH key")})}logout(){return this.githubToken&&this.githubToken.length?firebase.auth().signOut().then(()=>{document.cookie="__github_key=;path=/;max-age=0",this.githubToken=null,this.recreateGithub()}):new Promise((t,r)=>{t()})}isFileIgnored(t){return t=t.toUpperCase(),!!(t.startsWith("LICENSE")||t.startsWith("README")||t.startsWith("."))}async getGithubSession(t){var r=vi(t);if(!r)throw new Error("Please enter a valid GitHub URL.");var a=Or()[r.repopath],u=r.branch||a&&a.branch,d=this.github.repos(r.user,r.repo);try{u=(await d.fetch()).defaultBranch||"master"}catch(y){console.log("could not fetch default branch: "+y),u="main"}console.log("branch =",u);var m={url:t,user:r.user,reponame:r.repo,repopath:r.repopath,branch:u,subtreepath:r.subtreepath,prefix:"",repo:d,platform_id:this.project?this.project.platform_id:a?a.platform_id:null};return m}getGithubHEADTree(t){var r;return this.getGithubSession(t).then(a=>(r=a,r.repo.git.refs.heads(r.branch).fetch())).then(a=>(r.head=a,r.sha=a.object.sha,r.repo.git.trees(r.sha).fetch())).then(a=>{if(r.subtreepath){for(let u of a.tree)if(u.type=="tree"&&u.path==r.subtreepath&&u.sha)return r.repo.git.trees(u.sha).fetch();throw Error("Cannot find subtree '"+r.subtreepath+"' in tree "+a.sha)}return a}).then(a=>(r.tree=a,r))}bind(t,r){var a="__repo__"+t.repopath;if(r){var u={url:t.url,branch:t.branch,platform_id:t.platform_id,mainPath:t.mainPath,sha:t.sha};console.log("storing",u),localStorage.setItem(a,JSON.stringify(u))}else localStorage.removeItem(a)}import(t){var r;return this.getGithubSession(t).then(a=>(r=a,r.repo.contents("README.md").read())).catch(a=>(console.log(a),console.log("no README.md found"),r.repo.fetch().then(u=>""))).then(a=>{var u;if(u=/8bitworkshop.com[^)]+file=([^)&]+)/.exec(a),u&&u[1]&&(console.log("main path: '"+u[1]+"'"),r.mainPath=u[1]),u=/8bitworkshop.com[^)]+platform=([A-Za-z0-9._\-]+)/.exec(a),u){if(console.log("platform id: '"+u[1]+"'"),r.platform_id&&!r.platform_id.startsWith(u[1]))throw Error("Platform mismatch: Repository is "+u[1]+", you have "+r.platform_id+" selected.");r.platform_id=u[1]}return this.bind(r,!0),r})}pull(t,r){var a;return this.getGithubHEADTree(t).then(u=>{a=u;let d=[];return a.paths=[],a.tree.tree.forEach(m=>{if(console.log(m.path,m.type,m.size),a.paths.push(m.path),m.type=="blob"&&!this.isFileIgnored(m.path)){var y=a.repo.git.blobs(m.sha).fetch().then(b=>{var F=a.prefix+m.path,W=m.size,ue=b.encoding,z=b.content;if(b.encoding=="base64"){var H=sn(atob(z)),V=vr(m.path,H);z=V?H:ln(H)}return b.size!=z.length&&(z=z.slice(0,b.size)),(r||this.store).setItem(F,z)});d.push(y)}else console.log("ignoring "+m.path)}),Promise.all(d)}).then(u=>a)}importAndPull(t){return this.import(t).then(r=>this.pull(t))}publish(t,r,a,u){var d,m=this.project.platform_id,y=this.project.stripLocalPath(this.project.mainPath);return this.github.user.repos.create({name:t,description:r,private:u,auto_init:!1,license_template:a}).then(b=>{d=b;var F=Al;F=F.replace(/\$NAME/g,encodeURIComponent(t)),F=F.replace(/\$PLATFORM/g,encodeURIComponent(m)),F=F.replace(/\$GITHUBURL/g,encodeURIComponent(d.htmlUrl)),F=F.replace(/\$MAINFILE/g,encodeURIComponent(y));var W={message:"8bitworkshop: updated metadata in README.md",content:btoa(F)};return d.contents("README.md").add(W)}).then(()=>this.getGithubSession(d.htmlUrl))}commit(t,r,a){var u;return r||(r="updated from 8bitworkshop.com"),this.getGithubHEADTree(t).then(d=>{if(u=d,u.subtreepath)throw Error("Sorry, right now you can only commit files to the root directory of a repository.");return Promise.all(a.map(m=>typeof m.data=="string"?u.repo.git.blobs.create({content:m.data,encoding:"utf-8"}):u.repo.git.blobs.create({content:btoa(on(m.data)),encoding:"base64"})))}).then(d=>u.repo.git.trees.create({tree:a.map((m,y)=>({path:m.path,mode:"100644",type:"blob",sha:d[y].sha})),base_tree:u.tree.sha})).then(d=>u.repo.git.commits.create({message:r,tree:d.sha,parents:[u.head.object.sha]})).then(d=>u.repo.commits(d.sha).fetch()).then(d=>(u.commit=d,u))}push(t){return t.head.update({sha:t.commit.sha}).then(r=>t)}deleteRepository(t){return this.getGithubSession(t).then(r=>r.repo.remove())}};var bi=window.matchMedia&&window.matchMedia("only screen and (max-width: 760px)").matches;function zt(l,t){var r=$(document.createElement("div"));return l&&r.appendTo(l),t&&r.addClass(t),r}function Xs(l,t){var r=l.charCoords({line:t,ch:0},"local").top,a=l.getScrollerElement().offsetHeight/2;l.scrollTo(null,r-a-5)}function Qs(l,t){var r=document.createElement("span");return r.setAttribute("class",t),r.appendChild(document.createTextNode(l)),r}var vn=64,Dl=200,ka={default:{theme:"mbo"},"6502":{isAsm:!0},z80:{isAsm:!0},jsasm:{isAsm:!0},gas:{isAsm:!0},vasm:{isAsm:!0},inform6:{theme:"cobalt"},markdown:{lineWrap:!0},fastbasic:{noGutters:!0},basic:{noLineNumbers:!0,noGutters:!0},ecs:{theme:"mbo",isAsm:!0}},Js={input:null},yi=class{constructor(t,r){this.updateTimer=null;this.dirtylisting=!0;this.errormsgs=[];this.errorwidgets=[];this.errormarks=[];this.refreshDelayMsec=300;this.path=t,this.mode=r}createDiv(t){var r=document.createElement("div");r.setAttribute("class","editor"),t.appendChild(r);var a=me.getFile(this.path),u=a&&this.mode=="verilog"&&/__asm\b([\s\S]+?)\b__endasm\b/.test(a);return this.newEditor(r,u),a&&(this.setText(a),this.editor.setSelection({line:0,ch:0},{line:0,ch:0},{scroll:!0})),this.setupEditor(),me.getToolForFilename(this.path).startsWith("remote:")&&(this.refreshDelayMsec=1e3),r}setVisible(t){t&&this.editor.focus()}newEditor(t,r){var a=ka[this.mode]||ka.default,u=r||a.isAsm,d=!!a.lineWrap,m=a.theme||ka.default.theme,y=!a.noLineNumbers&&!bi;te.embed&&(y=!1,u=!1);var b=["CodeMirror-linenumbers","gutter-offset","gutter-info"];u&&(b=["CodeMirror-linenumbers","gutter-offset","gutter-bytes","gutter-clock","gutter-info"]),(a.noGutters||bi)&&(b=["gutter-info"]),this.editor=CodeMirror(t,{theme:m,lineNumbers:y,matchBrackets:!0,tabSize:8,indentAuto:!0,lineWrapping:d,gutters:b})}editorChanged(){clearTimeout(this.updateTimer),this.updateTimer=setTimeout(()=>{me.updateFile(this.path,this.editor.getValue())},this.refreshDelayMsec),this.markHighlight&&(this.markHighlight.clear(),this.markHighlight=null)}setupEditor(){this.editor.on("changes",(t,r)=>{this.editorChanged()}),this.editor.on("cursorActivity",t=>{this.inspectUnderCursor()}),this.editor.on("gutterClick",(t,r)=>{this.toggleBreakpoint(r)}),this.editor.setOption("mode",this.mode),this.editor.on("beforeChange",(t,r)=>{Js.input&&r.text&&(r.text=r.text.map(Js.input))})}inspectUnderCursor(){var t=this.editor.getCursor(!0),r=this.editor.getCursor(!1);if(t.line==r.line&&t.ch<r.ch&&r.ch-t.ch<80){var a=this.editor.getSelection();this.inspect(a)}else this.inspect(null)}inspect(t){var r;if(P.inspect&&(r=P.inspect(t)),this.inspectWidget&&(this.inspectWidget.clear(),this.inspectWidget=null),r){var a=Qs(r,"tooltipinfoline"),u=this.editor.getCursor().line;this.inspectWidget=this.editor.addLineWidget(u,a,{above:!1})}}setText(t){var r,a,u=this.editor.getValue();u!=t&&(this.editor.setValue(t),u==""&&this.editor.clearHistory())}insertText(t){var r=this.editor.getCursor();this.editor.replaceRange(t,r,r)}highlightLines(t,r){var a="hilite-span",u={className:a,inclusiveLeft:!0};this.markHighlight=this.editor.markText({line:t,ch:0},{line:r,ch:0},u),this.editor.scrollIntoView({from:{line:t,ch:0},to:{line:r,ch:0}})}replaceSelection(t,r,a){this.editor.setSelection(this.editor.posFromIndex(t),this.editor.posFromIndex(r)),this.editor.replaceSelection(a)}getValue(){return this.editor.getValue()}getPath(){return this.path}addError(t){if(!t.path||this.path.endsWith(t.path)){var r=this.editor.lineCount(),a=t.line-1;if((isNaN(a)||a<0||a>=r)&&(a=0),this.addErrorMarker(a,t.msg),t.start!=null){var u={className:"mark-error",inclusiveLeft:!0},d={line:a,ch:t.end?t.start:t.start-1},m={line:a,ch:t.end?t.end:t.start},y=this.editor.markText(d,m,u);this.errormarks.push(y)}}}addErrorMarker(t,r){var a=document.createElement("div");a.setAttribute("class","tooltipbox tooltiperror"),a.appendChild(document.createTextNode("\u24CD")),this.editor.setGutterMarker(t,"gutter-info",a),this.errormsgs.push({line:t,msg:r}),$(a).mouseover(u=>{this.expandErrors()})}addErrorLine(t,r){var a=Qs(r,"tooltiperrorline");this.errorwidgets.push(this.editor.addLineWidget(t,a))}expandErrors(){for(var t;t=this.errormsgs.shift();)this.addErrorLine(t.line,t.msg)}markErrors(t){this.clearErrors(),t=t.slice(0,Dl);for(var r of t)this.addError(r)}clearErrors(){for(this.dirtylisting=!0,this.editor.clearGutter("gutter-info"),this.errormsgs=[];this.errorwidgets.length;)this.errorwidgets.shift().clear();for(;this.errormarks.length;)this.errormarks.shift().clear()}getSourceFile(){return this.sourcefile}updateListing(){this.clearErrors(),this.editor.clearGutter("gutter-bytes"),this.editor.clearGutter("gutter-offset"),this.editor.clearGutter("gutter-clock");var t=this.sourcefile.lines||[];for(var r of t)if(r.offset>=0&&this.setGutter("gutter-offset",r.line-1,De(r.offset&65535,4)),r.insns){var a=r.insns.length>9?"...":r.insns;if(this.setGutter("gutter-bytes",r.line-1,a),r.iscode){if(r.cycles)this.setGutter("gutter-clock",r.line-1,r.cycles+"");else if(P.getOpcodeMetadata){var u=parseInt(r.insns.split(" ")[0],16),d=P.getOpcodeMetadata(u,r.offset);if(d&&d.minCycles){var m=d.minCycles+"";this.setGutter("gutter-clock",r.line-1,m)}}}}}setGutter(t,r,a){var u=this.editor.lineInfo(r);if(!(u&&u.gutterMarkers&&u.gutterMarkers[t])){var d=document.createTextNode(a);this.editor.setGutterMarker(r,t,d)}}setGutterBytes(t,r){this.setGutter("gutter-bytes",t-1,r)}setTimingResult(t){if(this.editor.clearGutter("gutter-bytes"),this.sourcefile!=null)for(let d of Object.keys(this.sourcefile.line2offset)){let m=this.sourcefile.line2offset[d],y=t.pc2clockrange[m];var r=y&&y.minclocks,a=y&&y.maxclocks;if(r>=0&&a>=0){var u;a==r?u=r+"":u=r+"-"+a,a==t.MAX_CLOCKS&&(u+="+"),this.setGutterBytes(parseInt(d),u)}}}setCurrentLine(t,r){var a=P.isBlocked&&P.isBlocked(),u=y=>{var b=document.createElement("div"),F=a?"currentpc-marker-blocked":"currentpc-marker";b.classList.add(F),b.appendChild(document.createTextNode("\u25B6")),this.editor.setGutterMarker(y.line-1,"gutter-info",b)};if(this.clearCurrentLine(r),t){u(t),r&&this.editor.setCursor({line:t.line-1,ch:t.start||0},{scroll:!0});var d=a?"currentpc-span-blocked":"currentpc-span",m={className:d,inclusiveLeft:!0};t.start||t.end?this.markCurrentPC=this.editor.markText({line:t.line-1,ch:t.start},{line:t.line-1,ch:t.end||t.start+1},m):this.markCurrentPC=this.editor.markText({line:t.line-1,ch:0},{line:t.line,ch:0},m),this.currentDebugLine=t}}clearCurrentLine(t){this.currentDebugLine&&(this.editor.clearGutter("gutter-info"),t&&this.editor.setSelection(this.editor.getCursor()),this.currentDebugLine=null),this.markCurrentPC&&(this.markCurrentPC.clear(),this.markCurrentPC=null)}getActiveLine(){if(this.sourcefile){var t=tr&&tr.c;if(!t&&P.getCPUState&&!P.isRunning()&&(t=P.getCPUState()),t){var r=t&&(t.EPC||t.PC),a=this.sourcefile.findLineForOffset(r,vn);return a}}}refreshDebugState(t){this.clearCurrentLine(t);var r=this.getActiveLine();r&&this.setCurrentLine(r,t)}refreshListing(){var t=me.getListingForFile(this.path);t&&t.sourcefile&&t.sourcefile!==this.sourcefile&&(this.sourcefile=t.sourcefile,this.dirtylisting=!0),!(!this.sourcefile||!this.dirtylisting)&&(this.updateListing(),this.dirtylisting=!1)}refresh(t){this.refreshListing(),this.refreshDebugState(t)}tick(){this.refreshDebugState(!1)}getLine(t){return this.editor.getLine(t-1)}getCurrentLine(){return this.editor.getCursor().line+1}getCursorPC(){for(var t=this.getCurrentLine();this.sourcefile&&t>=0;){var r=this.sourcefile.line2offset[t];if(r>=0)return r;t--}return-1}undoStep(){this.editor.execCommand("undo")}toggleBreakpoint(t){if(this.sourcefile!=null){var r=this.sourcefile.line2offset[t+1];xi(r)}}},Aa=1024,bn=class{getDisasmView(){return this.disasmview}createDiv(t){var r=document.createElement("div");return r.setAttribute("class","editor"),t.appendChild(r),this.newEditor(r),r}newEditor(t){this.disasmview=CodeMirror(t,{mode:"z80",theme:"cobalt",tabSize:8,readOnly:!0,styleActiveLine:!0})}refresh(t){let r=tr||P.saveState(),a=r.c?r.c.PC:0,u=0,d=0,m=P.debugSymbols&&P.debugSymbols.addr2symbol||{},y=(W,ue)=>{let z="",H=0;for(;H<ue;){let V=W+H|0,de=P.disassemble(V,P.readAddress.bind(P)),K="",xe="";for(let _e=0;_e<de.nbytes;_e++)K+=De(P.readAddress(V+_e));for(;K.length<14;)K+=" ";let Ce=de.line;if(m&&de.isaddr&&(Ce=Ce.replace(/([^#])[$]([0-9A-F]+)/,(_e,...o)=>{let X=parseInt(o[1],16),ne=m[X];return ne?o[0]+ne:(ne=m[X-1],ne?o[0]+ne+"+1":_e)})),m){let _e=m[V];_e&&(xe="; "+_e)}z+=De(V,4)+" "+pi(K,14)+" "+pi(Ce,30)+xe+`
`,V==a&&(d=u),u++,H+=de.nbytes||1}return z};var b=a<0?a-Aa:Math.max(0,a-Aa);let F=y(b,a-b)+y(a,Aa);this.disasmview.setValue(F),t&&this.disasmview.setCursor(d,0),Xs(this.disasmview,d)}getCursorPC(){var t=this.disasmview.getCursor().line;if(t>=0){var r=this.disasmview.getLine(t).trim().split(/\s+/);if(r&&r.length>=1){var a=parseInt(r[0],16);if(a>=0)return a}}return-1}},Da=class extends bn{constructor(t){super();this.path=t}refreshListing(){var t=me.getListingForFile(this.path);this.assemblyfile=t&&(t.assemblyfile||t.sourcefile)}refresh(t){if(this.refreshListing(),!!this.assemblyfile){var r=this.assemblyfile.text,a=this.getDisasmView();if(a.setValue(r),!!P.saveState){var u=tr||P.saveState(),d=u.c?u.c.EPC||u.c.PC:0;if(d>=0&&this.assemblyfile){var m=this.assemblyfile.findLineForOffset(d,vn);m&&(t&&a.setCursor(m.line-1,0),Xs(a,m.line-1))}}}}};function Ks(l){return l.endsWith("_SIZE__")||l.endsWith("_LAST__")||l.endsWith("STACKSIZE__")||l.endsWith("FILEOFFS__")||l.startsWith("l__")||l.startsWith("s__")||l.startsWith(".__.")}var yn=class{constructor(){this.recreateOnResize=!0;this.hibits=0;this.totalRows=5120}createDiv(t){var r=document.createElement("div");return r.setAttribute("class","memdump"),t.appendChild(r),this.showMemoryWindow(t,r),this.maindiv=r}showMemoryWindow(t,r){this.memorylist=new Ms({w:$(t).width(),h:$(t).height(),itemHeight:Os(),totalRows:this.totalRows,generatorFn:u=>{var d=this.getMemoryLineAt(u),m=document.createElement("div");if(this.dumplines){var y=this.dumplines[u];y&&m.classList.add("seg_"+this.getMemorySegment(this.dumplines[u].a|this.hibits))}return m.appendChild(document.createTextNode(d)),m}}),$(r).append(this.memorylist.container),this.tick();let a=wi();a&&this.dumplines&&this.scrollToAddress(a.data_start)}scrollToAddress(t){this.dumplines&&(this.hibits=t&4294901760,this.memorylist.scrollToItem(this.findMemoryWindowLine(t&65535)))}refresh(){this.dumplines=null,this.tick()}tick(){this.memorylist&&$(this.maindiv).find("[data-index]").each((t,r)=>{var a=$(r),u=parseInt(a.attr("data-index")),d=a.text(),m=this.getMemoryLineAt(u);d!=m&&a.text(m)})}getMemoryLineAt(t){var r=t*16,a=0,u=16,d;if(this.getDumpLines()){var m=this.dumplines[t];if(m)r=m.a&65520,a=m.a-r,u=a+m.l,d=m.s;else return"."}for(var y=De(r+a,4)+" ",b=0;b<a;b++)y+=" ";a>8&&(y+=" ");for(var b=a;b<u;b++){var F=this.readAddress(r+b|this.hibits);b==8&&(y+=" "),y+=" "+(typeof F=="number"?De(F,2):"??")}for(var b=u;b<16;b++)y+=" ";return d&&(y+=" "+d),y}readAddress(t){return P.readAddress(t)}getDumpLineAt(t){var r=this.dumplines[t];if(r)return r.a+" "+r.s}getDumpLines(){var t=P.debugSymbols&&P.debugSymbols.addr2symbol||{};if(this.dumplines==null){this.dumplines=[];var r=0,a;for(let y of Object.keys(t)){var u=parseInt(y),d=t[u|this.hibits];if(a)for(Ks(a)&&(a="");r<u&&this.dumplines.length<65536;){var m=r+16&1048560;m>u&&(m=u),this.dumplines.push({a:r,l:m-r,s:a}),r=m}a=d}}return this.dumplines}getMemorySegment(t){let r=wi();if(r){if(t>=r.data_start&&t<r.data_start+r.data_size)return P.getSP&&t>=P.getSP()-15?"stack":"data";if(t>=r.code_start&&t<r.code_start+(r.code_size||r.rom_size))return"code"}var a=me.segments;if(a){for(var u of a)if(t>=u.start&&t<u.start+u.size){if(u.type=="rom")return"code";if(u.type=="ram")return"data";if(u.type=="io")return"io"}}return"unknown"}findMemoryWindowLine(t){for(var r=0;r<this.dumplines.length;r++)if(this.dumplines[r].a>=t)return r}},Fa=class extends yn{constructor(){super(...arguments);this.totalRows=2048}readAddress(t){return P.readVRAMAddress(t)}getMemorySegment(t){return"video"}getDumpLines(){return null}},La=class{constructor(t,r){this.recreateOnResize=!0;this.path=t,this.data=r}createDiv(t){return this.vlist=new gi(t),this.vlist.create(t,this.data.length+15>>4,this.getMemoryLineAt.bind(this)),this.vlist.maindiv}getMemoryLineAt(t){for(var r=t*16,a=0,u=16,d=De(r+a,4)+" ",m=0;m<a;m++)d+=" ";a>8&&(d+=" ");for(var m=a;m<u;m++){var y=this.data[r+m];m==8&&(d+=" "),d+=" "+(y>=0?De(y,2):" ")}return{text:d}}refresh(){this.vlist.refresh()}getPath(){return this.path}},Ra=class{createDiv(t){return this.maindiv=zt(t,"vertical-scroll"),this.maindiv.css("display","grid"),this.maindiv.css("grid-template-columns","5em 40% 40%"),this.maindiv.css("align-content","start"),this.maindiv[0]}addSegment(t,r){if(r){var a=$('<div class="segment-offset" style="grid-column-start:1"/>');a.text("$"+De(t.start,4)),this.maindiv.append(a)}var u=$('<div class="segment"/>');u.text(t.name);let d=`$${De(t.start)} - $${De(t.last||t.start+t.size-1)}`;d+=` (${t.size} bytes)`,u.attr("title",d),(!r||t.source=="linker")&&u.css("grid-column-start",3);var m=Math.max(3,Math.log(t.size+1))*.5;u.css("height",m+"em"),t.type&&u.addClass("segment-"+t.type),this.maindiv.append(u),u.click(()=>{var y=pe.createOrShow("#memory");y.scrollToAddress(t.start)})}refresh(){this.maindiv.empty();var t=me.segments;if(t){var r=0,a=-1;for(var u of t)u.start>r&&this.addSegment({name:"",start:r,size:u.start-r},!0),this.addSegment(u,a!=u.start),a=u.start,r=u.start+u.size}}},At=4278190080,br=class{constructor(){this.cumulativeData=!1;var t=160,r=262;try{t=Math.ceil(P.machine.cpuCyclesPerLine)||t,r=Math.ceil(P.machine.numTotalScanlines)||r}catch(a){}this.cyclesPerLine=t,this.totalScanlines=r}addr2symbol(t){var r=P.debugSymbols&&P.debugSymbols.addr2symbol||{};return r[t]}addr2str(t){var r=this.addr2symbol(t);return typeof r=="string"?"$"+De(t)+" ("+r+")":"$"+De(t)}showTooltip(t){t?(this.tooldiv||(this.tooldiv=document.createElement("div"),this.tooldiv.setAttribute("class","tooltiptrack"),document.body.appendChild(this.tooldiv)),$(this.tooldiv).text(t).show()):$(this.tooldiv).hide()}setVisible(t){t?(this.probe=P.startProbing(),this.probe.singleFrame=!this.cumulativeData,this.tick()):(this.probe&&(this.probe.singleFrame=!0),P.stopProbing(),this.probe=null)}redraw(t){var r=this.probe;if(!(!r||!r.idx)){var a=0,u=0,d=0;this.sp=0;for(var m=0;m<r.idx;m++){var y=r.buf[m],b=y&65535,F=y>>16&255,W=y&At;switch(W){case ee.SCANLINE:a++,u=0;break;case ee.FRAME:a=0,u=0;break;case ee.CLOCKS:u+=b,d+=b;break;case ee.SP_PUSH:case ee.SP_POP:this.sp=b;default:t(W,b,u,a,d,F);break}}}}opToString(t,r,a){var u="";switch(t){case ee.EXECUTE:u="Exec";break;case ee.MEM_READ:u="Read";break;case ee.MEM_WRITE:u="Write";break;case ee.IO_READ:u="IO Read";break;case ee.IO_WRITE:u="IO Write";break;case ee.VRAM_READ:u="VRAM Read";break;case ee.VRAM_WRITE:u="VRAM Write";break;case ee.DMA_READ:u="DMA Read";break;case ee.DMA_WRITE:u="DMA Write";break;case ee.INTERRUPT:u="Interrupt";break;case ee.ILLEGAL:u="Error";break;case ee.WAIT:u="Wait";break;case ee.SP_PUSH:u="Stack Push";break;case ee.SP_POP:u="Stack Pop";break;default:return""}return typeof r=="number"&&(u+=" "+this.addr2str(r)),t&ee.HAS_VALUE&&typeof a=="number"&&(u+=" = $"+De(a,2)),u}getOpRGB(t,r){switch(t){case ee.EXECUTE:return 98305;case ee.MEM_READ:return 8388865;case ee.MEM_WRITE:return 65920;case ee.IO_READ:return 98432;case ee.IO_WRITE:return 12583296;case ee.DMA_READ:case ee.VRAM_READ:return 8421377;case ee.DMA_WRITE:case ee.VRAM_WRITE:return 4227264;case ee.INTERRUPT:return 4177727;case ee.ILLEGAL:return 4145151;case ee.WAIT:return 16727871;default:return 0}}},Zs=class extends br{constructor(){super(...arguments);this.recreateOnResize=!0}createCanvas(t,r,a){var u=document.createElement("div"),d=document.createElement("canvas");return d.width=r,d.height=a,d.classList.add("pixelated"),d.style.width="100%",d.style.height="90vh",d.style.backgroundColor="black",d.style.cursor="crosshair",d.onmousemove=m=>{var y=dn(d,m);this.showTooltip(this.getTooltipText(y.x,y.y)),$(this.tooldiv).css("left",m.pageX+10).css("top",m.pageY-30)},d.onmouseout=m=>{$(this.tooldiv).hide()},t.appendChild(u),u.appendChild(d),this.canvas=d,this.ctx=d.getContext("2d"),this.initCanvas(),this.maindiv=u}initCanvas(){}getTooltipText(t,r){return null}getOpAtPos(t,r,a){t=t|0,r=r|0;let u=0;return this.redraw((d,m,y,b,F,W)=>{!u&&b==r&&y>=t&&(d&a)!=0&&(u=d|m)}),u}clear(){}tick(){this.clear(),this.redraw(this.drawEvent.bind(this))}},Ia=class extends Zs{constructor(){super(...arguments);this.recreateOnResize=!1}createDiv(t){return this.createCanvas(t,this.cyclesPerLine,this.totalScanlines)}initCanvas(){this.imageData=this.ctx.createImageData(this.canvas.width,this.canvas.height),this.datau32=new Uint32Array(this.imageData.data.buffer)}getTooltipText(t,r){t=t|0,r=r|0;var a="",u=null,d=[],m=-1;return this.redraw((y,b,F,W,ue,z)=>{switch(y){case ee.EXECUTE:u=this.addr2symbol(b)||u;break;case ee.SP_PUSH:d.push(u);break;case ee.SP_POP:u=d.pop();break}W==r&&F<=t&&(F!=m&&(a="",m=F),a==""&&u&&(a+=`
`+u),a+=`
`+this.opToString(y,b,z))}),"X: "+t+" Y: "+r+" "+a}refresh(){this.tick(),this.datau32.fill(At)}tick(){super.tick(),this.drawImage()}drawImage(){this.ctx.putImageData(this.imageData,0,0)}clear(){this.datau32.fill(At)}},Ma=class extends Ia{createDiv(t){return this.createCanvas(t,256,256)}initCanvas(){super.initCanvas(),this.canvas.onclick=t=>{var r=dn(this.canvas,t),a=Math.floor(r.x)+Math.floor(r.y)*256,u=-1,d=-1;this.redraw((m,y)=>{d<0&&u>=0&&y==a&&(d=u),m==ee.EXECUTE&&(u=y)}),d>=0&&xi(d)}}clear(){for(var t=0;t<=65535;t++){var r=P.readAddress(t),a=r>>2|r&31;a|=a<<8|a<<16,this.datau32[t]=a|At}}drawEvent(t,r,a,u){var d=this.getOpRGB(t,r);if(!!d){var m=r&255,y=r>>8&255,b=this.datau32[r&65535];b=b|d|At,this.datau32[r&65535]=b}}getTooltipText(t,r){var a=(t&255)+(r<<8),u="",d=-1,m={},y=null,b=[];return this.redraw((F,W,ue,z,H,V)=>{switch(F){case ee.EXECUTE:d=W,y=this.addr2symbol(W)||y;break;case ee.SP_PUSH:b.push(y);break;case ee.SP_POP:y=b.pop();break}var de=F|d;W==a&&!m[de]&&(u==""&&y&&(u+=`
`+y),u+=`
PC `+this.addr2str(d)+" "+this.opToString(F,null,V),m[de]=1)}),this.addr2str(a)+u}},eo=class extends Ia{initCanvas(){super.initCanvas(),this.canvas.onclick=t=>{var r=dn(this.canvas,t),a=Math.floor(r.x),u=Math.floor(r.y),d=this.getOpAtPos(r.x,r.y,ee.EXECUTE);d&&(It("toline"),P.runEval(()=>{let m=P.getRasterScanline&&P.getRasterScanline()>=u;return m&&P.getRasterLineClock?m&&P.getRasterLineClock()>a:m}))}}drawEvent(t,r,a,u){var d=this.getOpRGB(t,r);if(!!d){var m=a+u*this.canvas.width,y=d|At;this.datau32[m]|=y}}drawImage(){let t=At;for(let r=0;r<this.datau32.length;r++)this.datau32[r]==At?this.datau32[r]=t:t=this.datau32[r];super.drawImage()}},Na=class extends eo{constructor(){super(...arguments);this.interrupt=0;this.rgb=0;this.lastpc=0}drawEvent(t,r,a,u){var d=a+u*this.canvas.width;if(t==ee.INTERRUPT&&(this.interrupt=1),this.interrupt==1&&t==ee.SP_PUSH&&(this.interrupt=r),this.interrupt>1&&this.sp>this.interrupt&&(this.interrupt=0),t==ee.MEM_WRITE&&(this.rgb|=47),t==ee.VRAM_WRITE&&(this.rgb|=16256),t==ee.IO_WRITE&&(this.rgb|=2047872),t==ee.IO_READ&&(this.rgb|=7936),t==ee.WAIT&&(this.rgb=32768),t==ee.ILLEGAL||t==ee.DMA_READ)this.datau32[d]=4279176975;else{let m=this.rgb;if(t==ee.EXECUTE){let y=this.sp&15;y>=8&&(y=16-y),Math.abs(this.lastpc)-r>16&&(y+=1),Math.abs(this.lastpc)-r>256&&(y+=1),m=this.rgb=526344*y+2105376,this.lastpc=r}this.interrupt&&(m|=8388672),this.datau32[d]==At&&(this.datau32[d]=m|At)}}},Oa=class extends br{constructor(){super(...arguments);this.recreateOnResize=!0}createDiv(t){return this.vlist=new gi(t),this.vlist.create(t,this.cyclesPerLine*this.totalScanlines,this.getMemoryLineAt.bind(this)),this.vlist.maindiv}getMemoryLineAt(t){var r="",a="seg_data",u=this.dumplines&&this.dumplines[t];if(u!=null){var d=u.info.join(", ");r="("+Rt(u.row,4)+", "+Rt(u.col,4)+") "+pi(u.asm||"",20)+d,d.indexOf("Write ")>=0&&(a="seg_io")}return{text:r,clas:a}}refresh(){this.tick()}tick(){let t=P instanceof ba||P instanceof va;this.dumplines={},this.redraw((r,a,u,d,m,y)=>{t&&(m>>=2);var b=this.dumplines[m];switch(b==null&&(b={op:r,addr:a,row:d,col:u,asm:null,info:[]},this.dumplines[m]=b),r){case ee.EXECUTE:if(P.disassemble){var F=P.disassemble(a,P.readAddress.bind(P));b.asm=F&&F.line}break;default:var W=this.opToString(r,a,y);W!=""&&b.info.push(W);break}}),this.vlist.refresh()}},$a=class extends br{constructor(){super(...arguments);this.recreateOnResize=!0}createDiv(t){return this.vlist=new gi(t),this.vlist.create(t,this.totalScanlines,this.getMemoryLineAt.bind(this)),this.vlist.maindiv}getMemoryLineAt(t){for(var r=Rt(t+"",3)+" ",a="seg_code",u=this.dumplines&&this.dumplines[t]||[],d=Math.round(this.cyclesPerLine/3.3),m=0;m<this.cyclesPerLine;m++){var y=u[m];if(y!==void 0){var b=y&65535,F=F&At;if(F==ee.EXECUTE)r+=",";else{var W=De(b);r+=W,m+=W.length-1}}else r+=m==d?"|":"."}return u[-1]&&(r+=" "+u[-1]),{text:r,clas:a}}refresh(){this.tick()}tick(){let t=P instanceof ba||P instanceof va;this.dumplines={},this.redraw((r,a,u,d,m,y)=>{var b=this.dumplines[d];switch(b==null&&(this.dumplines[d]=b=[]),r){case ee.EXECUTE:var F=P.debugSymbols.addr2symbol[a];F&&(b[-1]=F);break;case ee.IO_READ:case ee.IO_WRITE:case ee.VRAM_READ:case ee.VRAM_WRITE:b[u]=r|a;break}}),this.vlist.refresh()}},Wa=class extends br{constructor(){super(...arguments);this.recreateOnResize=!0;this.cumulativeData=!0}createDiv(t){return P.debugSymbols&&P.debugSymbols.symbolmap?this.keys=Array.from(Object.keys(P.debugSymbols.symbolmap).filter(r=>!Ks(r))):this.keys=["no symbols defined"],this.vlist=new gi(t),this.vlist.create(t,this.keys.length+1,this.getMemoryLineAt.bind(this)),this.vlist.maindiv}getMemoryLineAt(t){if(t==0)return{text:Rt("Symbol",35)+Rt("Reads",8)+Rt("Writes",8)};var r=this.keys[t-1],a=this.dumplines&&this.dumplines[r];function u(y){var b=a[y]|0;return Rt(b?b.toString():"",8)}var d,m;return a!=null?(d=Rt(r,35)+u(ee.MEM_READ)+u(ee.MEM_WRITE),a[ee.EXECUTE]?m="seg_code":a[ee.IO_READ]||a[ee.IO_WRITE]?m="seg_io":m="seg_data"):(d=Rt(r,35),m="seg_unknown"),{text:d,clas:m}}refresh(){this.tick()}tick(){this.dumplines={},this.redraw((t,r,a,u,d,m)=>{var y=P.debugSymbols.addr2symbol[r];if(y!=null){var b=this.dumplines[y];b==null&&(b={},this.dumplines[y]=b),b[t]=(b[t]|0)+1}}),this.vlist.refresh(),this.probe&&this.probe.clear()}};var Yc=js(),xn=/([0#]?)([x$%]|\d'h)([0-9a-f]+)(?:[;].*)?|(\d'b|0b)([01]+)/gim;function Fl(l){return l.replace(/(\shex\s+)([0-9a-f]+)/ig,function(t,r,a){for(var u=r,d=0;d<a.length;d+=2)u+="0x"+a.substr(d,2)+",";return u})}function Ll(l){for(var t=[],r;r=xn.exec(l);){var a;typeof r[4]!="undefined"?a=parseInt(r[5],2):r[2].startsWith("%")||r[2].endsWith("b")?a=parseInt(r[3],2):r[2].startsWith("x")||r[2].startsWith("$")||r[2].endsWith("h")?a=parseInt(r[3],16):a=parseInt(r[3]),t.push(a)}return t}function Rl(l,t){for(var r="",a,u=0,d=0;a=xn.exec(l);)r+=l.slice(u,xn.lastIndex-a[0].length),u=xn.lastIndex,typeof a[4]!="undefined"?r+=a[4]+t[d++].toString(2):a[2].startsWith("%")?r+=a[1]+"%"+t[d++].toString(2):a[2].endsWith("b")?r+=a[1]+a[2]+t[d++].toString(2):a[2].endsWith("h")?r+=a[1]+a[2]+t[d++].toString(16):a[2].startsWith("x")?r+=a[1]+"x"+De(t[d++]):a[2].startsWith("$")?r+=a[1]+"$"+De(t[d++]):r+=a[1]+t[d++].toString();return r+=l.slice(u),r=r.replace(/(\shex\s+)([,x0-9a-f]+)/ig,(m,y,b)=>{var F=y+b;return F=F.replace(/0x/ig,"").replace(/,/ig,""),F}),r}function to(l,t){if(!t)return l;for(var r=0,a=0;a<t.length;a++){var u=t[a];u<0&&(u=-u-1,r^=1<<u),l&1<<a&&(r^=1<<u)}return r}function ro(l,t){var r=t[l%t.length];return[r>>3,r&7]}function Il(l,t){for(var r=t.w,a=t.h,u=t.count||1,d=t.bpp||1,m=t.np||1,y=t.bpw||8,b=t.sl||Math.ceil(r*d/y),F=(1<<d)-1,W=t.pofs||b*a*u,ue=t.skip||0,z=t.wpimg||b*a,H=[],V=0;V<u;V++){for(var de=[],K=0;K<a;K++)for(var xe=t.flip?a-1-K:K,Ce=z*V+xe*b,be=0,_e=0;_e<r;_e++){var o=0,X=to(Ce,t.remap);t.reindex&&([X,be]=ro(_e,t.reindex),X+=Ce);for(var ne=0;ne<m;ne++){var oe=l[X+ne*W+ue];o|=((t.brev?oe>>y-be-d:oe>>be)&F)<<ne*d}de.push(o),be+=d,be>=y&&!t.reindex&&(Ce+=1,be=0)}H.push(new Uint8Array(de))}return H}function Ml(l,t){t.destfmt&&(t=t.destfmt);var r=t.w,a=t.h,u=t.count||1,d=t.bpp||1,m=t.np||1,y=t.bpw||8,b=t.sl||Math.ceil(t.w*d/y),F=(1<<d)-1,W=t.pofs||b*a*u,ue=t.skip||0,z=t.wpimg||b*a,H;m>0&&t.sl?H=new Uint8Array(z*u):y<=8?H=new Uint8Array(z*u*m):H=new Uint32Array(z*u*m);for(var V=0;V<u;V++)for(var de=l[V],K=0,xe=0;xe<a;xe++)for(var Ce=t.flip?a-1-xe:xe,be=V*z+Ce*b,_e=0,o=0;o<r;o++){var X=de[K++],ne=to(be,t.remap);t.reindex&&([ne,_e]=ro(o,t.reindex),ne+=be);for(var oe=0;oe<m;oe++){var Se=X>>oe*d&F;H[ne+oe*W+ue]|=t.brev?Se<<y-_e-d:Se<<_e}_e+=d,_e>=y&&!t.reindex&&(be+=1,_e=0)}return H}function io(l,t,r,a,u,d,m){for(var y=[],b=0;b<l.length;b++){var F=l[b],W=4278190080;W|=(F>>t&(1<<r)-1)<<0+8-r,W|=(F>>a&(1<<u)-1)<<8+8-u,W|=(F>>d&(1<<m)-1)<<16+8-m,y.push(W)}return y}function Nl(l){var t=l.pal;if(typeof t=="number"){var r=Math.floor(Math.abs(t/100)%10),a=Math.floor(Math.abs(t/10)%10),u=Math.floor(Math.abs(t)%10);return 1<<r+a+u}else{var d=ao[t];if(d)return d.length;throw new Error("No palette named "+t)}}function no(l,t){var r=t.pal,a;if(typeof r=="number"){var u=Math.floor(Math.abs(r/100)%10),d=Math.floor(Math.abs(r/10)%10),m=Math.floor(Math.abs(r)%10);r>=0?a=io(l,0,u,u,d,u+d,m):a=io(l,u+d,m,u,d,0,u)}else{var y=ao[r];if(y)a=new Uint32Array(l).map(b=>y[b&y.length-1]|4278190080);else throw new Error("No palette named "+r)}return a}var ao={nes:[5395026,11796480,10485760,11599933,7602281,91,95,6208,12048,543240,26368,1196544,7153664,0,0,0,12899815,16728064,14421538,16729963,14090399,6818519,6588,21681,27227,35843,43776,2918400,10777088,0,0,0,16316664,16755516,16742785,16735173,16730354,14633471,4681215,46327,57599,58229,259115,7911470,15065624,7895160,0,0,16777215,16773822,16300216,16300248,16758527,16761855,13095423,10148607,8973816,8650717,12122296,16119980,16777136,16308472,0,0],ap2lores:[0,16711935,127,8323199,32512,8355711,191,255,12549888,16760576,12566463,16744319,65280,16776960,49023,16777215],vcs:[0,0,4210752,4210752,7105644,7105644,9474192,9474192,11579568,11579568,13158600,13158600,14474460,14474460,16053492,16053492,17476,17476,1074276,1074276,2393220,2393220,3448992,3448992,4241592,4241592,5296336,5296336,6088936,6088936,6880508,6880508,10352,10352,1328260,1328260,2645144,2645144,3963052,3963052,5016764,5016764,6070476,6070476,6862044,6862044,7915756,7915756,6276,6276,1586328,1586328,3166380,3166380,4745408,4745408,6062288,6062288,7378144,7378144,8431852,8431852,9747708,9747708,136,136,2105500,2105500,3947696,3947696,5789888,5789888,7368912,7368912,8947936,8947936,10526956,10526956,11842812,11842812,6029432,6029432,7610508,7610508,8928416,8928416,10246320,10246320,11563200,11563200,12616912,12616912,13671644,13671644,14725356,14725356,7864392,7864392,9445472,9445472,10763384,10763384,12081292,12081292,13398176,13398176,14451892,14451892,15506628,15506628,16560340,16560340,8650772,8650772,9969712,9969712,11287628,11287628,12605544,12605544,13660284,13660284,14715028,14715028,15507624,15507624,16561340,16561340,8912896,8912896,10231836,10231836,11550776,11550776,12606544,12606544,13661288,13661288,14716028,14716028,15508624,15508624,16562340,16562340,8132608,8132608,9451548,9451548,11031608,11031608,12349520,12349520,13404264,13404264,14457980,14457980,15512720,15512720,16566436,16566436,6040576,6040576,7883804,7883804,9463864,9463864,11306064,11306064,12622952,12622952,13939836,13939836,15256720,15256720,16572580,16572580,2898944,2898944,4742172,4742172,6585400,6585400,8428624,8428624,9745512,9745512,11325564,11325564,12641424,12641424,13958308,13958308,15360,15360,2120736,2120736,4226112,4226112,6069340,6069340,7648372,7648372,9228428,9228428,10806436,10806436,12123320,12123320,14356,14356,1858612,1858612,3701840,3701840,5281900,5281900,6861956,6861956,8178844,8178844,9495732,9495732,10812616,10812616,12332,12332,1855564,1855564,3436648,3436648,5016708,5016708,6596764,6596764,7913652,7913652,8967372,8967372,10284256,10284256,10308,10308,1591396,1591396,3172484,3172484,4490400,4490400,5807288,5807288,7124176,7124176,8178920,8178920,9232636,9232636],astrocade:[0,2368548,4737096,7171437,9539985,11974326,14342874,16777215,12255269,14680137,16716142,16725394,16734903,16744155,16753663,16762879,11534409,13959277,16318866,16721334,16730842,16740095,16749311,16758783,10420330,12779662,15138995,16718039,16727291,16736767,16745983,16755199,8847495,11206827,13631696,15994612,16724735,16733951,16743423,16752639,6946975,9306307,11731175,14092287,16461055,16732415,16741631,16751103,4784304,7143637,9568505,11929087,14297599,16731647,16741119,16750335,2425019,4784352,7209215,9570047,12004095,14372863,16741375,16750847,191,2359523,4718847,7146495,9515263,11949311,14318079,16752127,187,224,2294015,4658431,7092735,9461247,11895551,14264063,176,213,249,2367999,4736511,7105279,9539327,11908095,159,195,3303,209151,2577919,4946431,7380735,9749247,135,171,7888,17140,681983,3050495,5484543,7853311,106,3470,12723,22231,31483,1548031,3916799,6285311,73,8557,17810,27318,36570,373759,2742271,5176575,4389,13641,23150,32402,41911,51163,2026495,4456447,9472,18724,27976,37485,46737,56246,1834970,4194303,14080,23296,32803,42055,51564,60816,2031541,4456409,18176,27648,36864,46116,55624,392556,2752401,5177269,21760,30976,40192,49667,58919,1572683,3932016,6291348,24320,33536,43008,52224,716810,3079982,5504851,7864183,25856,35328,44544,250368,2619136,4980503,7405371,9764703,26624,35840,45312,2413824,4782336,7143173,9568041,11927374,26112,35584,2338560,4707328,7141376,9502464,11927326,14286659,24832,2393344,4762112,7196160,9564928,11992832,14352155,16711487,2447360,4815872,7250176,9618688,12052992,14417664,16776990,16777027,4803328,7172096,9606144,11974912,14343424,16776965,16777001,16777038,6962176,9330688,11764992,14133504,16502272,16773655,16777019,16777055,8858112,11226880,13660928,16029440,16759818,16769070,16777043,16777079,10426112,12794624,15163392,16745475,16754727,16764235,16773488,16777108,11534848,13969152,16337664,16740388,16749640,16759148,16768401,16777141,12255232,14684928,16725795,16735047,16744556,16753808,16763317,16772569],c64:[0,16777215,2832232,11707504,8797551,4427096,7940149,7325624,2445167,14659,5859226,4473924,7105644,8704666,11886188,9803157]},Ol={nes:[["Screen Color",0,1],["Background 0",1,3],["Background 1",5,3],["Background 2",9,3],["Background 3",13,3],["Sprite 0",17,3],["Sprite 1",21,3],["Sprite 2",25,3],["Sprite 3",29,3]],astrocade:[["Left",0,-4],["Right",4,-4]]};function Ei(l,t){if(l==null||t==null||l.length!==t.length)return!1;if(l===t)return!0;for(var r=0;r<l.length;r++)if(l[r]!==t[r])return!1;return!0}function wn(l,t){if(l==null||t==null||l.length!==t.length)return!1;if(l===t)return!0;for(var r=0;r<l.length;r++)if(!Ei(l[r],t[r]))return!1;return!0}var Vt=class{refreshLeft(){for(var t=this;t;)t.updateLeft(),t=t.left}refreshRight(){for(var t=this;t;)t.updateRight(),t=t.right}addRight(t){return this.right=t,t.left=this,t}addLeft(t){return this.left=t,t.right=this,t}},ja=class extends Vt{},En=class extends ja{constructor(t,r){super();this.project=t,this.fileid=r,this.label=r}updateLeft(){return this.words=this.right.words,this.project&&this.project.updateFile(this.fileid,this.words),!0}updateRight(){return this.project&&(this.words=this.project.project.getFile(this.fileid)),!0}},Ba=class extends ja{constructor(t,r,a,u,d){super();this.project=t,this.fileid=r,this.label=a,this.start=u,this.end=d}updateLeft(){if(this.right.words.length!=this.words.length)throw Error("Cannot put "+this.right.words.length+" image bytes into array of "+this.words.length+" bytes");this.words=this.right.words;var t=this.text.substring(this.start,this.end);return t=Rl(t,this.words),this.text=this.text.substring(0,this.start)+t+this.text.substring(this.end),this.project&&this.project.updateFile(this.fileid,this.text),!0}updateRight(){this.project&&(this.text=this.project.project.getFile(this.fileid));var t=this.text.substring(this.start,this.end);t=Fl(t);var r=Ll(t);return this.words=r,!0}},Ua=class extends Vt{updateLeft(){return!1}updateRight(){return this.words=Is(new Uint8Array(this.left.words)),!0}},Ha=class extends Vt{constructor(t){super();this.fmt=t}updateLeft(){return this.images=this.right.images,this.words=Ml(this.images,this.fmt),!0}updateRight(){return Ei(this.words,this.left.words)?!1:(this.words=this.left.words,this.images=Il(this.words,this.fmt),!0)}},so=class{constructor(t){this.palcols=t}indexOf(t){return this.palcols.indexOf(t)}},$r=class extends Vt{constructor(t,r){super();this.palindex=0;this.context=t,this.ncolors=1<<(r.bpp||1)*(r.np||1)}updateLeft(){this.right&&(this.rgbimgs=this.right.rgbimgs);var t=new so(this.palette),r=this.rgbimgs.map(a=>{for(var u=new Uint8Array(a.length),d=0;d<a.length;d++)u[d]=t.indexOf(a[d]);return u});return this.images=r,!0}updateRight(){if(!this.updateRefs()&&wn(this.images,this.left.images))return!1;this.images=this.left.images;var t=this.palette.length-1;return this.rgbimgs=this.images.map(r=>{for(var a=new Uint32Array(r.length),u=0;u<r.length;u++)a[u]=this.palette[r[u]&t];return a}),!0}updateRefs(){var t;return this.context!=null&&(this.paloptions=this.context.getPalettes(this.ncolors),this.paloptions&&this.paloptions.length>0&&(t=this.paloptions[this.palindex].palette)),t==null&&(this.ncolors<=2?t=new Uint32Array([4278190080,4294967295]):t=new Uint32Array([4278190080,4294902015,4294967040,4294967295])),Ei(this.palette,t)?!1:(this.palette=t,!0)}};function $l(l){for(var t=new Map,r=new Uint32Array(l.length),a=0,u=0;u<l.length;u++){for(var d=l[u];t[d];)d^=++a;r[u]=d,t[d]=1}return r}var _n=class extends Vt{constructor(t){super();this.palfmt=t}updateLeft(){return!0}updateRight(){return Ei(this.words,this.left.words)?!1:(this.words=this.left.words,this.palette=$l(no(this.words,this.palfmt)),this.layout=Ol[this.palfmt.layout],this.rgbimgs=[],this.palette.forEach(t=>{this.rgbimgs.push(new Uint32Array([t]))}),!0)}getAllColors(){for(var t=[],r=0;r<Nl(this.palfmt);r++)t.push(r);return no(t,this.palfmt)}},oo=class extends Vt{constructor(t){super();this.tileindex=0;this.context=t}updateRefs(){var t=this.tilemap;return this.context!=null&&(this.tileoptions=this.context.getTilemaps(256),this.tileoptions&&this.tileoptions.length>0&&(this.tilemap=this.tileoptions[this.tileindex].images)),!wn(t,this.tilemap)}};var za=class extends oo{constructor(t){super(t)}updateLeft(){return!1}updateRight(){if(!this.updateRefs()&&Ei(this.words,this.left.words))return!1;this.words=this.left.words,this.cols=32,this.rows=30,this.width=this.cols*8,this.height=this.rows*8,this.baseofs=0;var t=new Uint8Array(this.width*this.height);this.images=[t];for(var r=0,a,u=0;u<this.rows;u++)for(var d=0;d<this.cols;d++){var m=this.words[this.baseofs+r];if(typeof m=="undefined")throw Error("No name for address "+this.baseofs+" + "+r);var y=this.tilemap[m];if(!y)throw Error("No tilemap found for tile index "+m);a=r&11264|960|r&3072|r>>4&56|r>>2&7;for(var b=this.words[a],F=m^b<<9^2147483648,W=u*this.cols*8*8+d*8,ue=0,z=(d&2)+((r&64)>>4),H=(b>>z&3)<<2,V=0;V<8;V++){for(var de=0;de<8;de++){var K=y[ue++];K&&(K+=H),t[W++]=K}W+=this.cols*8-8}r++}return!0}},Sn=class{recreate(t,r){var a=$('<div class="asset_grid"/>');t.empty().append(a);var u=Math.max(2,Math.ceil(16/this.width)),d=this.width<=8?16:8,m=null;this.rgbimgs.forEach((y,b)=>{var F=new Tn;F.width=this.width,F.height=this.height,F.recreate(),F.canvas.style.width=F.width*u+"px",F.canvas.title="$"+De(b),F.updateImage(y),$(F.canvas).addClass("asset_cell"),$(F.canvas).click(ue=>{r(b,F)}),m||(m=$("<span/>"),a.append(m)),m.append(F.canvas);var W=b%d==d-1;W&&(a.append($("<br/>")),m=null)})}};function yr(l,t){var r=$(document.createElement("div"));return l&&r.appendTo(l),t&&r.addClass(t),r}var Va=class extends Vt{constructor(t,r,a){super();this.context=t,this.parentdiv=r,this.fmt=a}updateLeft(){return!0}updateRight(){if(wn(this.rgbimgs,this.left.rgbimgs))return!1;this.rgbimgs=this.left.rgbimgs;var t=yr(this.parentdiv.empty(),"asset_dual"),r=yr(t),a=yr(t,"asset_editor").hide(),u=this.chooser=new Sn;u.rgbimgs=this.rgbimgs,u.width=this.fmt.w||1,u.height=this.fmt.h||1,u.recreate(r,(y,b)=>{var F=Math.ceil(256/this.fmt.w),W=F*(this.fmt.aspect||1),ue=this.createEditor(a,b,W,F);this.context.setCurrentEditor(a,$(b.canvas),this),this.rgbimgs[y]=b.rgbdata});var d=this.left;if(d instanceof $r&&d.paloptions.length>1){var m=$(document.createElement("select"));d.paloptions.forEach((y,b)=>{var F=$(document.createElement("option")).text(y.name).val(b).appendTo(m);b==d.palindex&&F.attr("selected","selected")}),m.appendTo(r).change(y=>{var b=$(y.target).val();d.palindex=b,d.refreshRight()})}return!0}createEditor(t,r,a,u){var d=new lo;d.createWith(r),d.updateImage();for(var m=r.width*a,y=r.height*u;m>500||y>500;)m/=2,y/=2;return d.canvas.style.width=m+"px",d.canvas.style.height=y+"px",d.makeEditable(this,t,this.left.palette),d}},Ga=class extends Vt{constructor(t,r,a){super();this.context=t,this.parentdiv=r,this.fmt=a}updateLeft(){return!0}updateRight(){if(wn(this.rgbimgs,this.left.rgbimgs))return!1;this.rgbimgs=this.left.rgbimgs;var t=yr(this.parentdiv.empty(),"asset_dual"),r=yr(t),a=yr(t,"asset_editor").hide(),u=new Tn;return u.width=this.fmt.w,u.height=this.fmt.h,u.recreate(),u.updateImage(this.rgbimgs[0]),r.append(u.canvas),!0}},Tn=class{recreate(){this.canvas=this.newCanvas(),this.imagedata=this.ctx.createImageData(this.width,this.height),this.rgbdata=new Uint32Array(this.imagedata.data.buffer),this.peerviewers=[this]}createWith(t){this.width=t.width,this.height=t.height,this.imagedata=t.imagedata,this.rgbdata=t.rgbdata,this.canvas=this.newCanvas(),this.peerviewers=[this,t]}newCanvas(){var t=document.createElement("canvas");return t.width=this.width,t.height=this.height,t.classList.add("pixels"),t.classList.add("pixelated"),this.ctx=t.getContext("2d"),t}updateImage(t){t&&this.rgbdata.set(t);for(let r of this.peerviewers)r.ctx.putImageData(this.imagedata,0,0)}},lo=class extends Tn{constructor(){super(...arguments);this.curpalcol=-1;this.offscreen=new Map}getPositionFromEvent(t){var r=Math.floor(t.offsetX*this.width/$(this.canvas).width()),a=Math.floor(t.offsetY*this.height/$(this.canvas).height());return{x:r,y:a}}setPaletteColor(t){t&=this.palette.length-1,this.curpalcol!=t&&(this.curpalcol>=0&&this.palbtns[this.curpalcol].removeClass("selected"),this.curpalcol=t,this.currgba=this.palette[t&this.palette.length-1],this.palbtns[t].addClass("selected"))}makeEditable(t,r,a){this.left=t,this.palette=a;var u,d=!1,m=$(this.canvas);m.mousedown(y=>{var b=this.getPositionFromEvent(y);u=this.getPixel(b.x,b.y)==this.currgba?this.palette[0]:this.currgba,this.setPixel(b.x,b.y,this.currgba),d=!0,$(document).mouseup(F=>{$(document).off("mouseup");var W=this.getPositionFromEvent(F);this.setPixel(W.x,W.y,u),d=!1,this.commit()})}).mousemove(y=>{var b=this.getPositionFromEvent(y);d&&this.setPixel(b.x,b.y,u)}),r.empty(),this.createToolbarButtons(r[0]),r.append(this.canvas),r.append(this.createPaletteButtons()),this.setPaletteColor(1)}getPixel(t,r){if(t=Math.round(t),r=Math.round(r),t<0||t>=this.width||r<0||r>=this.height)return this.offscreen[t+","+r]|this.palette[0];var a=t+r*this.width;return this.rgbdata[a]}setPixel(t,r,a){if(t=Math.round(t),r=Math.round(r),t<0||t>=this.width||r<0||r>=this.height)this.offscreen[t+","+r]=a;else{var u=t+r*this.width,d=this.rgbdata[u];d!=a&&(this.rgbdata[u]=a,this.updateImage())}}createPaletteButtons(){this.palbtns=[];for(var t=yr(null,"asset_toolbar"),r=0;r<this.palette.length;r++){var a=$(document.createElement("button")).addClass("palbtn"),u=this.palette[r]&16777215,d="#"+De(un(u),6);a.click(this.setPaletteColor.bind(this,r)),a.css("backgroundColor",d).text(r.toString(16)),a.css("color",u&32768?"black":"white"),t.append(a),this.palbtns.push(a)}return t}createToolbarButtons(t){var r=new hn(t,null);r.add("ctrl+shift+h","Flip X","glyphicon-resize-horizontal",this.flipX.bind(this)),r.add("ctrl+shift+v","Flip Y","glyphicon-resize-vertical",this.flipY.bind(this)),r.add("ctrl+shift+9","Rotate","glyphicon-repeat",this.rotate90.bind(this)),r.add("ctrl+shift+left","Move Left","glyphicon-arrow-left",this.translate.bind(this,1,0)),r.add("ctrl+shift+right","Move Right","glyphicon-arrow-right",this.translate.bind(this,-1,0)),r.add("ctrl+shift+up","Move Up","glyphicon-arrow-up",this.translate.bind(this,0,1)),r.add("ctrl+shift+down","Move Down","glyphicon-arrow-down",this.translate.bind(this,0,-1))}commit(){this.updateImage();try{this.left.refreshLeft()}catch(t){console.log(t),alert(`Could not update source code. ${t}`)}}remapPixels(t){for(var r=0,a=new Uint32Array(this.rgbdata.length),u=0;u<this.height;u++)for(var d=0;d<this.width;d++)a[r]=t(d,u),r++;this.rgbdata.set(a),this.commit()}rotate(t){var r=Math.sin(t*Math.PI/180),a=Math.cos(t*Math.PI/180);this.remapPixels((u,d)=>{var m=u+.5-this.width/2,y=d+.5-this.height/2,b=m*a-y*r+this.width/2-.5,F=y*a+m*r+this.height/2-.5;return this.getPixel(b,F)})}rotate90(){this.rotate(90)}flipX(){this.remapPixels((t,r)=>this.getPixel(this.width-1-t,r))}flipY(){this.remapPixels((t,r)=>this.getPixel(t,this.height-1-r))}translate(t,r){this.remapPixels((a,u)=>this.getPixel(a+t,u+r))}};var Cn=js(),qa=class{createDiv(t){return this.maindiv=zt(t,"vertical-scroll"),this.maindiv[0]}clearAssets(){this.rootnodes=[],this.deferrednodes=[]}registerAsset(t,r,a){this.rootnodes.push(r),a?a>1?this.deferrednodes.push(r):this.deferrednodes.unshift(r):r.refreshRight()}getPalettes(t){var r=[];return this.rootnodes.forEach(a=>{for(;a!=null;){if(a instanceof _n){var u=a.palette;t==u.length&&r.push({node:a,name:"Palette",palette:u}),a.layout&&a.layout.forEach(([d,m,y])=>{if(m<u.length){if(y==t){var b=u.slice(m,m+y);r.push({node:a,name:d,palette:b})}else if(-y==t){var b=u.slice(m,m-y);b.reverse(),r.push({node:a,name:d,palette:b})}else if(y+1==t){var b=new Uint32Array(t);b[0]=u[0],b.set(u.slice(m,m+y),1),r.push({node:a,name:d,palette:b})}}});break}a=a.right}}),r}getTilemaps(t){var r=[];return this.rootnodes.forEach(a=>{for(;a!=null;){if(a instanceof $r){var u=a.rgbimgs;u&&u.length>=t&&r.push({node:a,name:"Tilemap",images:a.images,rgbimgs:u})}a=a.right}}),r}isEditing(){return this.cureditordiv!=null}getCurrentEditNode(){return this.cureditnode}setCurrentEditor(t,r,a){let u=250;for(this.cureditordiv!=t&&(this.cureditordiv&&(this.cureditordiv.hide(u),this.cureditordiv=null),t&&(this.cureditordiv=t,this.cureditordiv.show(),this.cureditordiv[0].scrollIntoView({behavior:"smooth",block:"center"}))),this.cureditelem&&(this.cureditelem.removeClass("selected"),this.cureditelem=null),r&&(this.cureditelem=r,this.cureditelem.addClass("selected"));a.left;)a=a.left;this.cureditnode=a}scanFileTextForAssets(t,r){for(var a=[],u=/[/;][*;]([{].+[}])[*;][/;]/g,d;d=u.exec(r);){var m=d.index+d[0].length,y;if(ae.includes("verilog")?y=r.indexOf("end",m):d[0].startsWith(";;")?y=r.indexOf(";;",m):y=r.indexOf(";",m),y>m)try{var b=d[1].replace(/([A-Za-z]+):/g,'"$1":'),F=JSON.parse(b);a.push({fileid:t,fmt:F,start:m,end:y})}catch(_e){console.log(_e)}}for(var W=/DEF_METASPRITE_(\d+)x(\d+)[(](\w+),\s*(\w+),\s*(\w+)/gi;d=W.exec(r);){for(var ue=parseInt(d[1]),z=parseInt(d[2]),H=d[3],V=parseInt(d[4]),de=parseInt(d[5]),K=[],xe=0;xe<ue;xe++)for(var Ce=0;Ce<z;Ce++)K.push({x:xe*8,y:Ce*8,tile:V,attr:de});var be={defs:K,width:ue*8,height:z*8};a.push({fileid:t,label:H,meta:be})}return a}addPaletteEditorViews(t,r,a){var u=$('<div class="asset_dual"/>').appendTo(t),d=$('<div class="asset_editor"/>').hide(),m=[];r.getAllColors().forEach(H=>{m.push(new Uint32Array([H]))});var y=$("<table/>").appendTo(u);d.appendTo(u);var b=r.layout;if(!b){var F=r.palette.length,W=F>32?8:4;b=[];for(var ue=0;ue<F;ue+=W)b.push(["",ue,Math.min(F-ue,W)])}function z(H,V){var de=r.words[V],K=r.palette[V],xe="#"+De(un(K),6),Ce=K&32768?"black":"white";H.text(De(de,2)).css("background-color",xe).css("color",Ce)}b.forEach(([H,V,de])=>{if(V<r.palette.length){var K=$("<tr/>").appendTo(y);$("<td/>").text(H).appendTo(K);for(var xe=[],Ce=V;Ce<V+Math.abs(de);Ce++)xe.push(Ce);de<0&&xe.reverse(),xe.forEach(be=>{var _e=$("<td/>").addClass("asset_cell asset_editable").appendTo(K);z(_e,be),_e.click(o=>{var X=new Sn;X.rgbimgs=m,X.width=1,X.height=1,X.recreate(d,(ne,oe)=>{a(be,ne),z(_e,be)}),this.setCurrentEditor(d,_e,r)})})}})}addPixelEditor(t,r,a){a.xform="scale(2)";var u=new Ha(a);r.addRight(u);var d=new $r(this,a);u.addRight(d),d.addRight(new Va(this,zt(t),a))}addPaletteEditor(t,r,a){var u=new _n(a);r.addRight(u),r.refreshRight(),this.addPaletteEditorViews(t,u,(d,m)=>{console.log("set entry",d,"=",m),r.words[d]=m,u.words=null,u.updateRight(),u.refreshLeft()})}ensureFileDiv(t){var r=this.getFileDivId(t),a=$(document.getElementById(r));if(a.length===0){var u=zt(this.maindiv,"asset_file"),d=zt(u,"asset_file_header").text(t);a=zt(u).attr("id",r).addClass("disable-select")}return a}refreshAssetsInFile(t,r){let a=0;if(ae.startsWith("nes")&&t.endsWith(".chr")&&r instanceof Uint8Array){let u=new En(pe,t),d={w:8,h:8,bpp:1,count:r.length>>4,brev:!0,np:2,pofs:8,remap:[0,1,2,4,5,6,7,8,9,10,11,12]};this.addPixelEditor(this.ensureFileDiv(t),u,d),this.registerAsset("charmap",u,1),a++}else if(ae.startsWith("nes")&&t.endsWith(".pal")&&r instanceof Uint8Array){let u=new En(pe,t),d={pal:"nes",layout:"nes"};this.addPaletteEditor(this.ensureFileDiv(t),u,d),this.registerAsset("palette",u,0),a++}else if(typeof r=="string"){let u=this.scanFileTextForAssets(t,r);for(let d of u)if(d.fmt){let m=t,y=new Ba(pe,t,m,d.start,d.end),b=y;if(d.fmt.comp=="rletag"&&(y=y.addRight(new Ua)),d.fmt.map=="nesnt"){y=y.addRight(new za(this)),y=y.addRight(new $r(this,{w:8,h:8,bpp:4}));let F={w:8*(d.fmt.w||32),h:8*(d.fmt.h||30),count:1};y=y.addRight(new Ga(this,zt(this.ensureFileDiv(t)),F)),this.registerAsset("nametable",b,2),a++}else d.fmt.w>0&&d.fmt.h>0?(this.addPixelEditor(this.ensureFileDiv(t),y,d.fmt),this.registerAsset("charmap",b,1),a++):d.fmt.pal&&(this.addPaletteEditor(this.ensureFileDiv(t),y,d.fmt),this.registerAsset("palette",b,0),a++)}}return a}getFileDivId(t){return"__asset__"+Rs(t)}refresh(t){if(t)this.maindiv.empty(),this.clearAssets(),me.iterateFiles((a,u)=>{try{var d=this.refreshAssetsInFile(a,u)}catch(m){console.log(m),this.ensureFileDiv(a).text(m+"")}}),console.log("Found "+this.rootnodes.length+" assets"),this.deferrednodes.forEach(a=>{try{a.refreshRight()}catch(u){console.log(u),alert(u+"")}}),this.deferrednodes=[];else for(var r of this.rootnodes)r!==this.getCurrentEditNode()&&r.refreshRight()}setVisible(t){t?Cn.bind&&Cn.bind("ctrl+z",pe.undoStep.bind(pe)):Cn.unbind&&Cn.unbind("ctrl+z")}};var _i=256,uo=100,co=!1,Si=class{constructor(t,r){this.expanded=!1;this.parent=t,this.name=r,this.children=new Map,this.level=t?t.level+1:-1,this.view=t?t.view:null}getDiv(){return this._div==null&&(this._div=document.createElement("div"),this._div.classList.add("vertical-scroll"),this._div.classList.add("tree-content"),this._header=document.createElement("div"),this._header.classList.add("tree-header"),this._header.classList.add("tree-level-"+this.level),this._header.append(this.name),this._inline=document.createElement("span"),this._inline.classList.add("tree-value"),this._header.append(this._inline),this._div.append(this._header),this.parent._content.append(this._div),this._header.onclick=t=>{this.toggleExpanded()}),this.expanded&&this._content==null?(this._content=document.createElement("div"),this._div.append(this._content)):!this.expanded&&this._content!=null&&(this._content.remove(),this._content=null,this.children.clear()),this._div}toggleExpanded(){this.expanded=!this.expanded,this.view.tick()}remove(){this._div.remove(),this._div=null}update(t){this.getDiv();var r="";if(t&&t.$$&&typeof t.$$=="function"&&this._content!=null&&(t=t.$$()),t==null)r=t+"";else if(typeof t=="number")t!=(t|0)?r=t.toString():r=t+" ($"+De(t)+")";else if(typeof t=="boolean")r=t.toString();else if(typeof t=="string")t.length<uo?r=t:r=t.substring(0,uo)+"...";else if(t.buffer&&t.length<=_i)r=Ns(t,0,t.length);else if(typeof t=="object"||typeof t=="function")if(this._content!=null){if(t.slice&&t.length>_i){let b={},F=t;for(var a=_i;t.length/a>_i;)a*=2;for(let W=0;W<F.length;W+=a)b["$"+De(W)]={$$:()=>F.slice(W,W+a)};t=b}if(t instanceof Map){let b={};for(let[F,W]of t.entries())b[F]=W;t=b}let m=t instanceof Array?Array.from(t.keys()):Object.getOwnPropertyNames(t);if(m.length>_i){let b={},F=t;for(var a=100;m.length/a>100;)a*=2;for(let ue=0;ue<m.length;ue+=a){for(var u={},d=ue;d<ue+a;d++)u[m[d]]=F[m[d]];b["["+ue+"...]"]=u}t=b,m=Object.getOwnPropertyNames(t)}let y=new Set(this.children.keys());m.forEach(b=>{var F=!co&&typeof b=="string"&&b.startsWith("$$");if(!F){let W=this.children.get(b);W==null&&(W=new Si(this,b),this.children.set(b,W)),W.update(t[b])}y.delete(b)}),y.forEach(b=>{this.children.get(b).remove(),this.children.delete(b)}),this._header.classList.add("tree-expanded"),this._header.classList.remove("tree-collapsed")}else this._header.classList.add("tree-collapsed"),this._header.classList.remove("tree-expanded");else r=typeof t;this._inline.innerText!=r&&(this._inline.innerText=r)}};function fo(l,t){var r=new Si(null,null);r.view=t,r._content=l;var a=new Si(r,"/");return a.expanded=!0,a.getDiv(),a._div.style.padding="0px",a}var ho=class{createDiv(t){return this.root=fo(t,this),this.root.getDiv()}refresh(){this.tick()}tick(){this.root.update(this.getRootObject())}};var Ya=class extends ho{getRootObject(){return P.getDebugTree()}},Xa=class extends br{constructor(){super(...arguments);this.cumulativeData=!0}createDiv(t){return this.clear(),this.treeroot=fo(t,this),this.treeroot.getDiv()}refresh(){this.tick()}tick(){this.treeroot.update(this.getRootObject()),this.probe&&this.probe.clear()}clear(){this.graph=null,this.reset()}reset(){this.stack=[],this.lastsp=-1,this.lastpc=0,this.jsr=!1,this.rts=!1}newNode(t,r){return{$$SP:r,$$PC:t,count:0,startLine:null,endLine:null,calls:{}}}newRoot(t,r){this.stack.length==0?(this.graph=this.newNode(null,r),this.stack.unshift(this.graph)):r>this.stack[0].$$SP&&(this.graph=this.newNode(null,r),this.graph.calls[this.addr2str(t)]=this.stack[0],this.stack.unshift(this.graph))}getRootObject(){return this.redraw((t,r,a,u,d,m)=>{switch(t){case ee.SP_POP:this.newRoot(this.lastpc,this.lastsp);case ee.SP_PUSH:if(this.stack.length){let b=this.stack[this.stack.length-1];var y=this.lastsp-r;(y==2||y==3)&&r<b.$$SP&&(this.jsr=!0),(y==-2||y==-3)&&this.stack.length>1&&r>b.$$SP&&(this.rts=!0)}this.lastsp=r;break;case ee.EXECUTE:if(Math.abs(r-this.lastpc)>=4){if(this.jsr&&this.stack.length){let b=this.stack[this.stack.length-1],F=this.addr2str(r),W=b.calls[F];W==null?W=b.calls[F]=this.newNode(r,this.lastsp):W.$$PC==null&&(W.$$PC=r),this.stack.push(W),W.count++,W.startLine=u}this.jsr=!1,this.rts&&this.stack.length&&(this.stack.pop().endLine=u),this.rts=!1}this.lastpc=r;break}}),this.graph&&(this.graph.$$Stack=this.stack),co?this.graph:this.graph&&this.graph.calls}};var Qa=hi(ya());function Me(l){l?(Dt(0),$("#pleaseWaitModal").modal("show")):(Dt(1),$("#pleaseWaitModal").modal("hide"))}function Dt(l){$("#pleaseWaitProgressBar").css("width",l*100+"%").show()}function we(l){Me(!1),bootbox.alert({title:'<span class="glyphicon glyphicon-alert" aria-hidden="true"></span> Alert',message:Qa.default.sanitize(l)})}function vt(l){Me(!1),bootbox.alert(Qa.default.sanitize(l))}function po(l){throw we(l),new Error(l)}var Ja=hi(ya());function xr(l,t,r,a){window.ga&&ga("send","event",l,t,r,a)}function go(l){window.ga&&ga("send","pageview",l)}var Ka;async function wr(){if(!Ka){await St("lib/octokat.js"),await St("https://www.gstatic.com/firebasejs/8.8.1/firebase-app.js"),await St("https://www.gstatic.com/firebasejs/8.8.1/firebase-auth.js"),await St("https://8bitworkshop.com/config.js");var l=fn("__github_key");Ka=new Pa(Octokat,l,rr(),Gt()),console.log("loaded github service")}return Ka}function Ti(){var l=(Be||"").split("/");return l.length!=2?(we("You are not in a GitHub repository. Choose one from the pulldown, or Import or Publish one."),null):"https://github.com/"+l[0]+"/"+l[1]}async function Pn(l,t){var r,a=vi(l);if(!a){we("Could not parse Github URL.");return}var u=Or()[a.repopath];if(!(u&&!confirm("You've already imported "+a.repopath+" -- do you want to replace all local files?"))){Me(!0);var d=gn(a.repopath);Dt(.25);var m=await wr();return m.import(l).then(y=>(r=y,Dt(.75),m.pull(l,d))).then(y=>{Me(!1),xr("sync","import",l),Er(t,{repo:a.repopath})}).catch(y=>{Me(!1),console.log(y),we("Could not import "+l+"."+y)})}}async function mo(l){var t=await wr();t.login().then(()=>{vt("You are signed in to Github.")}).catch(r=>{we("Could not sign in."+r)})}async function vo(l){var t=await wr();t.logout().then(()=>{vt("You are logged out of Github.")})}function bo(l){var t=$("#importGithubModal"),r=$("#importGithubButton");t.modal("show"),r.off("click").on("click",()=>{var a=$("#importGithubURL").val()+"";t.modal("hide"),Pn(a,!1)})}function yo(l){if(!(Be&&!confirm("This project ("+Gt().mainPath+") is already bound to a Github repository. Do you want to re-publish to a new repository? (You can instead choose 'Push Changes' to update files in the existing repository.)"))){var t=$("#publishGithubModal"),r=$("#publishGithubButton");$("#githubRepoName").val(rt(ft(Gt().mainPath))),t.modal("show"),r.off("click").on("click",async()=>{var a=$("#githubRepoName").val()+"",u=$("#githubRepoDesc").val()+"",d=$("#githubRepoPrivate").val()=="private",m=$("#githubRepoLicense").val()+"",y;if(!a){we("You did not enter a project name.");return}t.modal("hide"),Me(!0);var b=await wr();b.login().then(()=>(Dt(.25),b.publish(a,u,m,d))).then(F=>(y=F,Dt(.5),Eo("initial import from 8bitworkshop.com"))).then(()=>{xr("sync","publish",d?"":a),Pn(y.url,!1)}).catch(F=>{Me(!1),console.log(F),we("Could not publish GitHub repository: "+F)})})}}function xo(l){var t=Ti();if(!!t){var r=$("#pushGithubModal"),a=$("#pushGithubButton");r.modal("show"),a.off("click").on("click",()=>{var u=$("#githubCommitMsg").val()+"";r.modal("hide"),Eo(u)})}}function wo(l){var t=Ti();!t||bootbox.confirm("Pull from repository and replace all local files? Any changes you've made will be overwritten.",async r=>{if(r){Me(!0);var a=await wr();a.pull(t).then(u=>{Me(!1),pe.updateAllOpenWindows(rr())})}})}function Wl(l){return new Promise((t,r)=>{var a=l.commit.files;if(console.log(a),a.length==0){Me(!1),vt("No files changed.");return}var u="";for(var d of a)u+=Ja.default.sanitize(d.filename)+": "+d.status,(d.additions||d.deletions||d.changes)&&(u+=" ("+d.additions+" additions, "+d.deletions+" deletions, "+d.changes+" changes)"),u+="<br/>";bootbox.confirm(u,m=>{m?t(l):Me(!1)})})}async function Eo(l){var t=Ti();if(!!t){var r=[];for(var a in Gt().filedata){var u=Gt().stripLocalPath(a),d=Gt().filedata[a];u&&d&&r.push({path:u,data:d})}if(st()instanceof Uint8Array){let y="bin/"+Qe()+".rom";r.push({path:y,data:st()})}Me(!0);var m=await wr();return m.login().then(()=>(Dt(.5),m.commit(t,l,r))).then(y=>Wl(y)).then(y=>m.push(y)).then(y=>(Me(!1),vt("Pushed files to "+t),y)).catch(y=>{Me(!1),console.log(y),we("Could not push GitHub repository: "+y)})}}function _o(){var l=Ti();!l||bootbox.prompt("<p>Are you sure you want to delete this repository ("+Ja.default.sanitize(l)+") from browser storage?</p><p>All changes since last commit will be lost.</p><p>Type DELETE to proceed.<p>",t=>{t.trim().toUpperCase()=="DELETE"&&jl()})}async function jl(){var l=Ti();Me(!0);let t=await wr(),r=await t.getGithubSession(l);t.bind(r,!1),await rr().keys().then(a=>Promise.all(a.map(u=>rr().removeItem(u)))),Me(!1),Er(!1,{repo:"/"})}var Za=class{constructor(t){this.options=t,this.sampleRate=44100,this.soundData=[],this.tapData=[67,54,52,45,84,65,80,69,45,82,65,87,1,0,0,0,0,0,0,0]}getWAVHeader(){let t=new Uint8Array(44),r=new DataView(t.buffer);return r.setUint32(0,1380533830,!1),r.setUint32(4,44+this.soundData.length,!0),r.setUint32(8,1463899717,!1),r.setUint32(12,1718449184,!1),r.setUint32(16,16,!0),r.setUint16(20,1,!0),r.setUint16(22,1,!0),r.setUint32(24,this.sampleRate,!0),r.setUint32(28,this.sampleRate*2,!0),r.setUint16(32,1,!0),r.setUint16(34,8,!0),r.setUint32(36,1684108385,!1),r.setUint32(40,this.soundData.length,!0),t}addSilence(t){let r=Math.floor(this.sampleRate*t);for(let u=0;u<r;u++)this.soundData.push(0);let a=He.CLOCK_RATE*t;this.tapData.push(0),this.tapData.push(a&255),this.tapData.push(a>>8&255),this.tapData.push(a>>16&255)}addCycle(t){this.tapData.push(t);let r=Math.floor(this.sampleRate*He.TAP_LENGTH_IN_SECONDS*t);for(let a=0;a<r;a++){let u;this.options.sine_wave?u=-Math.sin(a/r*2*Math.PI):a<r/2?u=-1:u=1,this.options.invert_waveform&&(u=-u),this.soundData.push(Math.round(128+u*127))}}updateTAPHeader(){let t=this.tapData.length-20;this.tapData[16]=t&255,this.tapData[17]=t>>8&255,this.tapData[18]=t>>16&255,this.tapData[19]=t>>24&255}getTAPData(){return this.updateTAPHeader(),new Uint8Array(this.tapData)}getSoundData(){let t=this.getWAVHeader(),r=new Uint8Array(t.length+this.soundData.length);return r.set(t,0),r.set(new Uint8Array(this.soundData),t.length),r}},Ue=class{constructor(t,r){this.options=r,this.checksum=0,this.data=new Uint8Array(0),this.filenameData=this.makeFilename(t),this.startAddress=0,this.endAddress=0,this.fileType=Ue.FILE_TYPE_NONE,this.waveFile=null}makeFilename(t){let r=[],a=32;t=t.toUpperCase();for(let u=0;u<Ue.FILENAME_BUFFER_SIZE;u++)if(t.length<=u)r.push(a);else{let d=t.charCodeAt(u);r.push(d)}return r}setContent(t){this.data=t.data,this.startAddress=t.startAddress,this.endAddress=t.startAddress+t.data.length,this.fileType=t.type}generateSound(t){this.waveFile=t,this.addHeader(!1),this.addHeader(!0),t.addSilence(.1),this.addFile()}addTapCycle(t){this.waveFile.addCycle(t)}addBit(t){t===0?(this.addTapCycle(Ue.SHORT_PULSE),this.addTapCycle(Ue.MEDIUM_PULSE)):(this.addTapCycle(Ue.MEDIUM_PULSE),this.addTapCycle(Ue.SHORT_PULSE))}addDataMarker(t){t?(this.addTapCycle(Ue.LONG_PULSE),this.addTapCycle(Ue.MEDIUM_PULSE)):(this.addTapCycle(Ue.LONG_PULSE),this.addTapCycle(Ue.SHORT_PULSE))}resetChecksum(){this.checksum=0}addByteFrame(t,r){let a=1;for(let u=0;u<8;u++){let d=(t&1<<u)!=0?1:0;this.addBit(d),a^=d}this.addBit(a),this.addDataMarker(r),this.checksum^=t}addLeader(t){let r;t===Ue.LEADER_TYPE_HEADER?r=27136:t===Ue.LEADER_TYPE_CONTENT?r=6656:r=79;for(let a=0;a<r;a++)this.addTapCycle(Ue.SHORT_PULSE)}addSyncChain(t){let r;t?r=9:r=137;let a=9;for(;a>0;)this.addByteFrame(r,!0),r-=1,a-=1}addData(){for(let t=0;t<this.data.length;t++)this.addByteFrame(this.data[t],!0)}addFilename(){for(let t=0;t<this.filenameData.length;t++)this.addByteFrame(this.filenameData[t],!0)}addHeader(t){t?this.addLeader(Ue.LEADER_TYPE_REPEATED):this.addLeader(Ue.LEADER_TYPE_HEADER),this.addDataMarker(!0),this.addSyncChain(t),this.resetChecksum(),this.addByteFrame(this.fileType,!0),this.addByteFrame(this.startAddress&255,!0),this.addByteFrame((this.startAddress&65280)>>8,!0),this.addByteFrame(this.endAddress&255,!0),this.addByteFrame((this.endAddress&65280)>>8,!0),this.addFilename();for(let r=0;r<Ue.NUMBER_OF_PADDING_BYTES;r++)this.addByteFrame(Ue.PADDING_CHARACTER,!0);this.addByteFrame(this.checksum,!1)}addFile(){let t=!1;for(let r=0;r<2;r++)t?this.addLeader(Ue.LEADER_TYPE_REPEATED):this.addLeader(Ue.LEADER_TYPE_CONTENT),this.addDataMarker(!0),this.addSyncChain(t),this.resetChecksum(),this.addData(),this.addByteFrame(this.checksum,!1),t=!0;this.addLeader(1)}},He=Ue;He.CLOCK_RATE=985248,He.TAP_LENGTH_IN_SECONDS=8/Ue.CLOCK_RATE,He.FILENAME_BUFFER_SIZE=16,He.FILE_TYPE_NONE=0,He.FILE_TYPE_RELOCATABLE=1,He.FILE_TYPE_SEQUENTIAL=2,He.FILE_TYPE_NON_RELOCATABLE=3,He.LEADER_TYPE_HEADER=0,He.LEADER_TYPE_CONTENT=1,He.LEADER_TYPE_REPEATED=2,He.NUMBER_OF_PADDING_BYTES=171,He.PADDING_CHARACTER=32,He.SHORT_PULSE=48,He.MEDIUM_PULSE=66,He.LONG_PULSE=86;var Mt=hi(kl());function So(l){return st()==null?(we("Please fix errors before sharing."),!0):st()instanceof Uint8Array?(Bl(),St("lib/liblzg.js").then(()=>{var t=Ls(window.Module,Array.from(st()));window.Module=null;var r=btoa(on(t)),a={p:ae,r},u=$.param(a),d=Ul(u,"player.html"),m='<iframe width=640 height=600 src="'+d+'">';$("#embedLinkTextarea").text(d),$("#embedIframeTextarea").text(m),$("#embedLinkModal").modal("show"),$("#embedAdviceWarnAll").hide(),$("#embedAdviceWarnIE").hide(),d.length>=65536?$("#embedAdviceWarnAll").show():d.length>=5120&&$("#embedAdviceWarnIE").show()}),!0):(we("Can't share a Verilog executable yet. (It's not actually a ROM...)"),!0)}function Bl(){console.log("clipboard"),import("./clipboard-2SP4SJIP.js").then(l=>{let t=l.default;new t(".btn")})}function Ul(l,t){console.log(l);var r=window.location,a=r.pathname.replace("index.html",""),u=r.host=="8bitworkshop.com"?"https:":r.protocol,d=u+"//"+r.host+a+t+"?"+l;return d}function Hl(l){var r;var t=(r=wi())==null?void 0:r.code_start;St("lib/c2t.js").then(()=>{var a="",u=function(z){a+=z+`
`},d=window.c2t({noInitialRun:!0,print:u,printErr:u}),m=d.FS,y=Qe()+".bin",b=Qe()+".wav";m.writeFile(y,st(),{encoding:"binary"});var F=["-2bc",y+","+t.toString(16),b];d.callMain(F);var W=m.readFile(b,{encoding:"binary"});if(W){var ue=new Blob([W],{type:"audio/wav"});(0,Mt.saveAs)(ue,b),a+="Then connect your audio output to the cassette input, turn up the volume, and play the audio file.",vt(a)}})}function zl(l){St("lib/makewav.js").then(()=>{let t="",r=function(y){t+=y+`
`};var a=rt(Qe());let u=a+".bin",d=a+".wav";window.makewav({noInitialRun:!1,print:r,printErr:r,arguments:["-ts","-f0","-v10",u],preRun:y=>{y.FS.writeFile(u,st(),{encoding:"binary"})}}).ready.then(y=>{let b=[u];y.run(b),console.log(t);let W=y.FS.readFile(d,{encoding:"binary"});if(W){let ue=new Blob([W],{type:"audio/wav"});(0,Mt.saveAs)(ue,d),t+=`
Connect your audio output to the SuperCharger input, turn up the volume, and play the audio file.`,vt(t)}})})}function Vl(l){var t=rt(Qe());let r=t+".tap",a=new He(t),u=new Za({sine_wave:!0}),d=st(),m=d[0]+d[1]*256;d=d.slice(2),a.setContent({data:d,startAddress:m,type:He.FILE_TYPE_NON_RELOCATABLE}),a.generateSound(u);let y=u.getTAPData();if(y){let b=new Blob([y],{type:"application/octet-stream"});(0,Mt.saveAs)(b,r)}}function es(){switch(dt(ae)){case"vcs":return zl;case"apple2":return Hl;case"c64":return Vl}}function To(l){if(st()==null)return we("Please fix errors before exporting."),!0;var t=es();if(t===void 0)return we("Cassette export is not supported on this platform."),!0;t(l)}function Co(l){if(st()==null)return we("Please finish compiling with no errors before downloading ROM."),!0;var t=rt(Qe());if(P.getDownloadFile){var r=P.getDownloadFile(),t=rt(Qe());(0,Mt.saveAs)(r.blob,t+r.extension)}else if(st()instanceof Uint8Array){var a=new Blob([st()],{type:"application/octet-stream"}),u=P.getROMExtension&&P.getROMExtension(st())||"-"+dt(ae)+".bin";(0,Mt.saveAs)(a,t+u)}else we(`The "${ae}" platform doesn't have downloadable ROMs.`)}function Po(l){var t=pe.getCurrentText();if(!t)return!1;var r=new Blob([t],{type:"text/plain;charset=utf-8"});(0,Mt.saveAs)(r,Ro(),{autoBom:!1})}async function ko(){let l=(await import("./jszip.min-QZ4ZBVAS.js")).default;return new l}async function Ao(l){var t=await ko();Gt().iterateFiles((r,a)=>{a&&t.file(ft(r),a)}),t.generateAsync({type:"blob"}).then(r=>{(0,Mt.saveAs)(r,Qe()+"-"+dt(ae)+".zip")})}function Do(l){let t=P.getDebugSymbolFile&&P.getDebugSymbolFile();if(!t){we("This project does not have debug information.");return}var r=rt(Qe());(0,Mt.saveAs)(t.blob,r+t.extension,{autoBom:!1})}async function Fo(l){var t=await ko(),r=await rr().keys();Me(!0);try{var a=0;await Promise.all(r.map(d=>rr().getItem(d).then(m=>{Dt(a++/(r.length+1)),m&&t.file(d,m)})));var u=await t.generateAsync({type:"blob"});(0,Mt.saveAs)(u,dt(ae)+"-all.zip")}finally{Me(!1)}}var ts=!1;function Lo(){ts||St("lib/gif.js").then(()=>{var l=$("#emulator").find("canvas")[0];if(!l){we("Could not find canvas element to record video!");return}var t=0;l.style&&l.style.transform&&(l.style.transform.indexOf("rotate(-90deg)")>=0?t=-1:l.style.transform.indexOf("rotate(90deg)")>=0&&(t=1));var r=new GIF({workerScript:"lib/gif.worker.js",workers:4,quality:10,rotate:t}),a=$("#videoPreviewImage");r.on("progress",b=>{Dt(b)}),r.on("finished",b=>{a.attr("src",URL.createObjectURL(b)),Me(!1),P.resume(),$("#videoPreviewModal").modal("show")});var u=20,d=300,m=0;console.log("Recording video",l),$("#emulator").css("backgroundColor","#cc3333");var y=()=>{m++>d?(console.log("Rendering video"),$("#emulator").css("backgroundColor","inherit"),Me(!0),P.pause(),r.render(),ts=!1):(r.addFrame(l,{delay:u,copy:!0}),setTimeout(y,u),ts=!0)};y()})}var Gl=Pl(),_r=ya(),te=ha(window.location.search||"?"),ae,Sr,Be,P,me,pe,tr,Io,is,Ci=$("#controls_top"),Ye,ot,ns,Tr,kn,Tt,Pi=Nr(te.electron),lt=Nr(te.embed),ki,Ai,An=!1,Wr=!1,Dn=null,Mo=null,as=!1,No="c.PC == 0x6000";function rr(){return Tt}function Gt(){return me}function st(){return Tr}function wi(){return Io}var ql={dasm:"6502",acme:"6502",cc65:"text/x-csrc",ca65:"6502",nesasm:"6502",z80asm:"z80",sdasz80:"z80",sdcc:"text/x-csrc",verilator:"verilog",jsasm:"z80",zmac:"z80",bataribasic:"bataribasic",markdown:"markdown",js:"javascript",xasm6809:"z80",cmoc:"text/x-csrc",yasm:"gas",smlrc:"text/x-csrc",inform6:"inform6",fastbasic:"fastbasic",basic:"basic",silice:"verilog",wiz:"text/x-wiz",vasmarm:"vasm",armips:"vasm",ecs:"ecs","remote:llvm-mos":"text/x-csrc",cc7800:"text/x-csrc",armtcc:"text/x-csrc"},Yl={dasm:"https://raw.githubusercontent.com/sehugg/dasm/master/doc/dasm.txt",cc65:"https://cc65.github.io/doc/cc65.html",ca65:"https://cc65.github.io/doc/ca65.html",sdcc:"http://sdcc.sourceforge.net/doc/sdccman.pdf",verilator:"https://www.veripool.org/ftp/verilator_doc.pdf",fastbasic:"https://github.com/dmsc/fastbasic/blob/master/manual.md",bataribasic:"help/bataribasic/manual.html",wiz:"https://github.com/wiz-lang/wiz/blob/master/readme.md#wiz",silice:"https://github.com/sylefeb/Silice",zmac:"https://raw.githubusercontent.com/sehugg/zmac/master/doc.txt",cmoc:"http://perso.b2b2c.ca/~sarrazip/dev/cmoc.html","remote:llvm-mos":"https://llvm-mos.org/wiki/Welcome",acme:"https://raw.githubusercontent.com/sehugg/acme/main/docs/QuickRef.txt"};function Xl(){return new Worker("./gen/worker/bundle.js")}var Ct=function(){try{let t="__some_random_key_you_are_not_going_to_use__";localStorage.setItem(t,t);var l=localStorage.getItem(t)==t;return localStorage.removeItem(t),l}catch(t){return!1}}(),Oo=class{setLastPreset(t){Ct&&!lt&&(Be&&ae&&!Pi?localStorage.setItem("__lastrepo_"+ae,Be):localStorage.removeItem("__lastrepo_"+ae),localStorage.setItem("__lastplatform",ae),localStorage.setItem("__lastid_"+Sr,t))}unsetLastPreset(){Ct&&!lt&&(delete te.file,localStorage.removeItem("__lastid_"+Sr))}getLastPreset(){return Ct&&!lt&&localStorage.getItem("__lastid_"+Sr)}getLastPlatformID(){return Ct&&!lt&&localStorage.getItem("__lastplatform")}getLastRepoID(t){return Ct&&!lt&&t&&localStorage.getItem("__lastrepo_"+t)}shouldCompleteTour(){return Ct&&!lt&&!localStorage.getItem("8bitworkshop.hello")}completedTour(){Ct&&!lt&&localStorage.setItem("8bitworkshop.hello","true")}},Cr=new Oo;function ss(l,t){navigator.storage&&navigator.storage.persist?navigator.storage.persist().then(r=>{console.log("requestPersistPermission =",r),r?l&&!t&&vt("Your browser says it will persist your local file edits, but you may want to back up your work anyway."):l&&we("Your browser refused to expand the peristent storage quota. Your edits may not be preserved after closing the page.")}):l&&we("Your browser may not persist edits after closing the page. Try a different browser.")}function Ql(){return kn?kn.title||kn.name||me.mainPath||"ROM":me.mainPath||"ROM"}async function Jl(){var l=new Ea(ae);return Pi?(console.log("using electron with local filesystem",alternateLocalFilesystem),new mi(l,alternateLocalFilesystem)):te.localfs!=null?new mi(l,await lu(te.localfs)):new mi(l,new _a(Tt))}async function Kl(){var l=await Jl();me=new Sa(Xl(),ae,P,l),me.remoteTool=te.tool||null,pe=new Ca($("#workspace")[0],me),me.callbackBuildResult=t=>{gu(t)},me.callbackBuildStatus=t=>{Zl(t)}}function Zl(l){l?Ci.addClass("is-busy"):Ci.removeClass("is-busy"),$("#compile_spinner").css("visibility",l?"visible":"hidden")}function os(l,t){var r=document.createElement("li"),a=document.createElement("a");return a.setAttribute("class","dropdown-item"),a.setAttribute("href","#"),a.setAttribute("data-wndid",l),l==pe.getActiveID()&&$(a).addClass("dropdown-item-checked"),a.appendChild(document.createTextNode(t)),r.appendChild(a),{li:r,a}}function Di(){var l=$("#windowMenuList").empty(),t=!1;function r(b,F,W){t&&(l.append(document.createElement("hr")),t=!1);let{li:ue,a:z}=os(b,F);if(l.append(ue),W){var H=(V,de)=>{l.find("a").removeClass("dropdown-item-checked"),$(z).addClass("dropdown-item-checked")};pe.setCreateFunc(b,W),pe.setShowFunc(b,H),$(z).click(V=>{pe.createOrShow(b),Dn=b})}}function a(b){var F=P.getToolForFilename(b);F=="dasm"&&b.endsWith(".h")&&Qe().endsWith(".c")&&(F="cc65");var W=F&&ql[F];return new yi(b,W)}function u(b){r(b,ft(b),()=>{var F=me.getFile(b);if(typeof F=="string")return a(b);if(F instanceof Uint8Array)return new La(b,F)})}u(me.mainPath),me.iterateFiles((b,F)=>{F&&b!=me.mainPath&&u(b)}),t=!0;var d=me.getListings();if(d)for(var m in d){var y=d[m];(y.assemblyfile&&y.assemblyfile.text||y.sourcefile&&y.sourcefile.text||y.text)&&r(m,ft(m),b=>new Da(b))}t=!0,P.disassemble&&P.saveState&&r("#disasm","Disassembly",()=>new bn),P.readAddress&&r("#memory","Memory Browser",()=>new yn),me.segments&&me.segments.length&&r("#memmap","Memory Map",()=>new Ra),P.readVRAMAddress&&r("#memvram","VRAM Browser",()=>new Fa),P.startProbing&&(r("#memheatmap","Memory Probe",()=>new Ma),r("#crtheatmap","CRT Probe",()=>new Na),r("#probelog","Probe Log",()=>new Oa),r("#scanlineio","Scanline I/O",()=>new $a),r("#symbolprobe","Symbol Profiler",()=>new Wa),r("#callstack","Call Stack",()=>new Xa)),P.getDebugTree&&r("#debugview","Debug Tree",()=>new Ya),r("#asseteditor","Asset Editor",()=>new qa)}function eu(l,t){if(t){var r=te.highlight.split(","),a=parseInt(r[0])-1,u=parseInt(r[1])-1,d=pe.createOrShow(l);d.highlightLines(a,u)}}function $o(l){Di(),pe.createOrShow(l),me.setMainFile(l),eu(l,te.highlight)}async function tu(l){me.mainPath=l,Cr.setLastPreset(l);var t=await me.loadFiles([l]);if(t&&t.length)$o(l);else{var r=await ru(l);me.filedata[l]=r||`
`,$o(l),te.newfile?ss(!0,!0):vt('Could not find file "'+l+'". Loading default file.'),delete te.newfile,Mn()}}function ls(l){if(l=="/")te={repo:"/"};else if(l.indexOf("://")>=0){var t=vi(l);t&&(te={repo:t.repopath})}else te.platform=ae,te.file=l;Er()}async function ru(l){var t=P.getToolForFilename(l);try{return await $.get("presets/"+dt(ae)+"/skeleton."+t,"text")}catch(r){we("Could not load skeleton for "+ae+"/"+t+"; using blank file")}}function us(l){return l.indexOf(" ")>=0?(we("No spaces in filenames, please."),!1):!0}function iu(l){return bootbox.prompt({title:"Enter the name of your new main source file.",placeholder:"newfile"+P.getDefaultExtension(),callback:t=>{if(t&&t.trim().length>0){if(!us(t))return;t.indexOf(".")<0&&(t+=P.getDefaultExtension());var r=t;xr("workspace","file","new"),te.newfile="1",ls(r)}}}),!0}function nu(l){let t=$('<input type="file" multiple accept="*" style="display:none">'),r=t[0];t.change(a=>{au(r.files)}),t.click()}function au(l){console.log(l);var t=0;function r(){var a=l[t++];if(!a)console.log("Done uploading",t),t>2?(vt("Files uploaded."),setTimeout(Fi,1e3)):(te.file=l[0].name,bootbox.confirm({message:"Open '"+_r.sanitize(te.file)+"' as main project file?",buttons:{confirm:{label:"Open As New Project"},cancel:{label:"Include/Link With Project Later"}},callback:m=>{m?Er():setTimeout(Fi,1e3)}})),xr("workspace","file","upload");else{var u=a.name,d=new FileReader;d.onload=function(m){var y=m.target.result,b=new Uint8Array(y);vr(u,b)||(b=ln(b).replace(`\r
`,`
`)),pe.updateFile(u,b),console.log("Uploaded "+u+" "+b.length+" bytes"),r()},d.readAsArrayBuffer(a)}}l&&r()}async function su(l){var t=window.showDirectoryPicker;t||we("This browser can't open local files on your computer, yet. Try Chrome.");var r=await t(),a=r.name,u="__localfs__"+a,d={handle:r},m=rs.createInstance({name:u,version:2});await m.setItem(u,d),te={localfs:a},Er(!0)}async function ou(l){return new Promise((t,r)=>{bootbox.prompt(_r.sanitize(l),a=>{t(a)})})}async function lu(l){let t={mode:"readwrite"};var r="__localfs__"+l,a=rs.createInstance({name:r,version:2}),u=await a.getItem(r),d=u.handle;console.log(u,d);var m=await d.queryPermission(t);if(console.log(m),m!=="granted"&&(await ou("Request permissions to access filesystem?"),m=await d.requestPermission(t)),m!=="granted"){we("Could not get permission to access filesystem.");return}return{getFileData:async y=>{console.log("getFileData",y);let b=await d.getFileHandle(y,{create:!1});console.log("getFileData",b);let F=await b.getFile();console.log("getFileData",F);let W=await(vr(y)?F.binary():F.text());return console.log(b,F,W),W},setFileData:async(y,b)=>{}}}function Qe(){return ft(me.mainPath)}function Ro(){return ft(pe.getActiveID())}function uu(l){var t=pe.getActive();if(t&&t.setText){var r=pe.getActiveID();$.get("presets/"+dt(ae)+"/"+r,a=>{bootbox.confirm("Reset '"+_r.sanitize(r)+"' to default?",u=>{u&&t.setText(a)})},"text").fail(()=>{Be?we("Can only revert built-in examples. If you want to revert all files, You can pull from the repository."):we("Can only revert built-in examples.")})}else we("Cannot revert the active window. Please choose a text file.")}function cu(l){var t=pe.getActive();if(t&&t.getPath){var r=pe.getActiveID();bootbox.confirm("Delete '"+_r.sanitize(r)+"'?",a=>{a&&Tt.removeItem(r).then(()=>{te.file==r?(Cr.unsetLastPreset(),Er()):(Fi(),vt("Deleted "+r))})})}else we("Cannot delete the active window.")}function fu(l){var t=pe.getActive();if(t&&t.getPath&&me.getFile(t.getPath())){var r=pe.getActiveID();bootbox.prompt({title:"Rename '"+_r.sanitize(r)+"' to?",value:r,callback:a=>{var u=me.getFile(t.getPath());if(a&&a!=r&&u){if(!us(a))return;Tt.removeItem(r).then(()=>Tt.setItem(a,u)).then(()=>{Fi(),alert("Renamed "+r+" to "+a),r==me.mainPath&&ls(a)})}}})}else we("Cannot rename the active window.")}function du(l){let t={},r,a=P.getPresets?P.getPresets():[];for(var u=0;u<a.length;u++){var d=a[u],m=d.chapter?d.chapter+". "+d.name:d.name,y=d.id==me.mainPath;d.category?r=$("<optgroup />").attr("label","Examples: "+d.category).appendTo(l):r||(r=$("<optgroup />").attr("label","Examples").appendTo(l)),r.append($("<option />").val(d.id).text(m).attr("selected",y?"selected":null)),y&&(kn=d),t[d.id]=m}return t}function hu(l){if(Ct&&!Pi){var t=0,r=Or();if(r){let u=$("<optgroup />").attr("label","Repositories").appendTo(l);for(let d in r){var a=r[d];a.platform_id&&dt(a.platform_id)==dt(ae)&&u.append($("<option />").val(a.url).text(a.url.substring(a.url.indexOf("/"))))}}}}async function Wo(l,t,r,a){let u=await Tt.keys();u||(u=[]);let d;for(var m=0;m<u.length;m++){let y=u[m];if(y.startsWith(r)&&!a[y]){d||(d=$("<optgroup />").attr("label",t).appendTo(l));let b=y.substring(r.length);d.append($("<option />").val(y).text(b).attr("selected",y==me.mainPath?"selected":null))}}}function jo(l){l.css("visibility","visible");var t=me.mainPath;l.val()!=t&&l.append($("<option />").val(t).text(t).attr("selected","selected"))}async function Fi(){var l=$("#preset_select").empty();if(Be)l.append($("<option />").val("/").text("Leave Repository")),$("#repo_name").text(ft(Be)+"/").show(),await Wo(l,Be,"",{}),jo(l);else{hu(l);var t=du(l);await Wo(l,"Local Files","",t),jo(l)}l.off("change").change(function(r){ls($(this).val().toString())})}function pu(l){var t=$("<p/>");if(l.path!=null){var r=l.line?l.label?`(${l.path} @ ${l.label})`:`(${l.path}:${l.line})`:`(${l.path})`,a=$("<a/>").text(r),u=l.path;u==Qe()&&(u=me.mainPath),pe.isWindow(u)&&a.click(d=>{var m=pe.createOrShow(u);m instanceof yi&&m.setCurrentLine(l,!0)}),t.append(a),t.append("&nbsp;")}return t.append($("<span/>").text(l.msg)),t}function Bo(){$("#error_alert").hide(),as=!1}function cs(l,t){var r=$("#error_alert_msg").empty();for(var a of l.slice(0,10))r.append(pu(a));$("#error_alert").show(),as=t}function Uo(l,t){if(t!=null){var r={msg:t,line:0};l instanceof ma&&l.$loc&&(r=Object.create(l.$loc),r.msg=t,console.log(r)),cs([r],!0)}}async function gu(l){if("errors"in l&&l.errors.length>0)Ci.addClass("has-errors"),pe.setErrors(l.errors),Di(),cs(l.errors,!1);else{if(Ci.removeClass("has-errors"),pe.setErrors(null),Bo(),l==null||"unchanged"in l&&l.unchanged||!("output"in l))return;P.debugSymbols=new $s(l.symbolmap,l.debuginfo),Io=l.params;var t=l.output;if(t!=null)try{Ri(),Yo(),await P.loadROM(Ql(),t),Tr=t,ns||qt(),ac()}catch(r){console.log(r),Ci.addClass("has-errors"),Uo(r,r+""),Tr=null,Di();return}Di(),pe.refresh(!1)}}async function mu(){if(P.loadBIOS){var l=ae+".rom",t=await Tt.getItem(l);t instanceof Uint8Array?(console.log("loading BIOS",l,t.length+" bytes"),P.loadBIOS(l,t)):console.log("BIOS file must be binary")}}function Ho(){var l=$("#mem_info");l.hide(),ki=null}function Li(l){if(!!Ws(P)){var t=$("#mem_info"),r=$("#mem_info_msg"),a=P.getDebugCategories();a&&!Ai&&(Ai=a[0]);var u=l&&P.getDebugInfo(Ai,l);if(typeof u=="string"){var d=ki?Fs(ki,u):u;t.show(),r.html(d);var m=$('<div class="mem_info_links">'),y=F=>{var W=$("<a>"+F+"</a>");F==Ai&&W.addClass("selected"),W.click(ue=>{Ai=F,ki=null,Li(tr)}),m.append(W),m.append("<span> </span>")};for(var b of a)y(b);r.append("<br>"),r.append(m),ki=u}else Ho()}}function Fn(l,t){$("#debug_bar, #run_bar").find("button").removeClass("btn_active").removeClass("btn_stopped"),$("#dbg_"+l).addClass("btn_"+t)}function fs(){return P&&Tr!=null}function Ft(){return fs()?!0:(we("Can't do this until build successfully completes."),!1)}function vu(l){if(Dn&&Dn.startsWith("#")||["toline","restart","tovsync","stepover"].includes(Mo)||!P.disassemble)return;let t=me.getListings(),r="#disasm",a=256;if(t){let u=l.c?l.c.EPC||l.c.PC:0;for(let d in t){let m=t[d],y=m.assemblyfile||m.sourcefile,b=me.filename2path[d]||d;if(y==m.sourcefile&&(b=pe.findWindowWithFilePrefix(d)),pe.isWindow(b)){let F=y&&y.findLineForOffset(u,vn);if(F){let W=y.lines[F.line+1];if(!W||u<W.offset){let ue=u-F.offset;ue<a&&(r=b,a=ue)}}}}}pe.createOrShow(r,!0)}function Ln(l){tr=l,Li(l),vu(l),pe.refresh(!0),An=!0}function zo(l){P.setupDebug&&(P.setupDebug((t,r)=>{Ln(t),Fn(l||"pause","stopped"),r&&cs([{msg:"STOPPED: "+r,line:0}],!0)}),Mo=l)}function It(l){!Ft()||(hs(),zo(l),l&&Fn(l,"active"))}function ir(){P&&P.isRunning()&&(P.pause(),console.log("Paused")),Fn("pause","stopped")}function bu(){!Ft()||(Ri(),ir(),ns=!0)}function qt(){P.isRunning()||(P.resume(),console.log("Resumed")),Fn("go","active"),as&&Bo()}function Vo(){!Ft()||(Ri(),P.isRunning()||pe.refresh(!1),qt(),ns=!1,Dn=null)}function yu(){!Ft()||(It("step"),P.step())}function xu(){!Ft()||(It("stepover"),P.stepOver())}function wu(){!Ft()||(It("tovsync"),P.runToVsync())}function Go(){var l=pe.getActive();return l&&l.getCursorPC&&l.getCursorPC()}function xi(l){!Ft()||!(l>=0)||(It("toline"),console.log("Run to",l.toString(16)),P.runToPC?P.runToPC(l):P.runEval(t=>t.PC==l))}function Eu(){P.restartAtPC(Go())?Vo():we("Could not restart program at selected line.")}function _u(){xi(Go())}function Su(){!Ft()||(It("stepout"),P.runUntilReturn())}function Tu(){!Ft()||(It("stepback"),P.stepBack())}function Ri(){tr=null,P.clearDebug&&P.clearDebug(),zo(),Li()}function ds(){P.reset(),Yo()}function Cu(){!Ft()||(Ri(),ds(),qt())}function Pu(){if(!!Ft()){var l=Wr;hs(),P.setupDebug&&P.runEval?(Ri(),qt(),ds(),It("restart"),P.runEval(t=>!0)):(ds(),qt()),l&&Xo()}}function ku(){var l=$("#debugExprModal"),t=$("#debugExprSubmit");$("#debugExprInput").val(No),$("#debugExprExamples").text(Au()),l.modal("show"),t.off("click").on("click",()=>{var r=$("#debugExprInput").val()+"";l.modal("hide"),Du(r)})}function Au(){var l=P.saveState&&P.saveState(),t=l.c;console.log(t,l);var r="";return t.PC&&(r+="c.PC == 0x"+De(t.PC)+`
`),t.SP&&(r+="c.SP < 0x"+De(t.SP)+`
`),t.HL&&(r+=`c.HL == 0x4000
`),P.readAddress&&(r+=`this.readAddress(0x1234) == 0x0
`),P.readVRAMAddress&&(r+=`this.readVRAMAddress(0x1234) != 0x80
`),P.getRasterScanline&&(r+=`this.getRasterScanline() > 222
`),r}function Du(l){var t=new Function("c","return ("+l+");").bind(P);It(),P.runEval(t),No=l}function qo(){P.isRunning()?(pe.tick(),An=!1):An||(pe.tick(),An=!0),setTimeout(qo,100)}function Rn(l){P.setFrameRate(l),l>.01?$("#fps_label").text(l.toFixed(2)):$("#fps_label").text("1/"+Math.round(1/l))}function Fu(){var l=P.getFrameRate();l=l/2,l>1e-5&&Rn(l)}function Lu(){var l=P.getFrameRate();l=Math.min(60,l*2),Rn(l)}function Ru(){Rn(60/65536)}function Iu(){qt(),Rn(60)}function Mu(){pe.refresh(!1);var l=pe.getActive();if(l.getSourceFile&&l.setTimingResult){var t=P.newCodeAnalyzer();t.showLoopTimingForPC(0),l.setTimingResult(t)}}function hs(){Wr&&(P.setRecorder(null),$("#dbg_record").removeClass("btn_recording"),$("#replaydiv").hide(),Ho(),Wr=!1)}function Yo(){Wr&&ot.reset()}function Xo(){ot.reset(),P.setRecorder(ot),$("#dbg_record").addClass("btn_recording"),$("#replaydiv").show(),Wr=!0}function Nu(){Wr?hs():Xo()}function Yt(l,t,r){var a=pe.getActive();a&&a.insertText?bootbox.prompt({title:"Add "+_r.sanitize(l)+" File to Project",value:"filename"+_r.sanitize(t),callback:u=>{if(u&&u.trim().length>0){if(!us(u))return;var d=u,m=`
`+r(u)+`
`;me.loadFiles([d]).then(y=>{y&&y.length?we(u+" already exists; including anyway"):me.updateFile(d,`
`),a.insertText(m),Di()})}}}):we("Can't insert text in this window -- switch back to main file")}function Ou(){var l=Qe(),t=P.getToolForFilename(l);l.endsWith(".c")||t=="sdcc"||t=="cc65"||t=="cmoc"||t=="smlrc"?Yt("Header",".h",r=>'#include "'+r+'"'):t=="dasm"||t=="zmac"?Yt("Include",".inc",r=>' include "'+r+'"'):t=="ca65"||t=="sdasz80"||t=="vasm"||t=="armips"?Yt("Include",".inc",r=>' .include "'+r+'"'):t=="verilator"?Yt("Verilog",".v",r=>'`include "'+r+'"'):t=="wiz"?Yt("Include",".wiz",r=>'import "'+r+'";'):t=="ecs"?Yt("Include",".ecs",r=>'import "'+r+'"'):t=="acme"?Yt("Include",".acme",r=>'!src "'+r+'"'):we("Can't add include file to this project type ("+t+")")}function $u(){var l=Qe(),t=P.getToolForFilename(l);l.endsWith(".c")||t=="sdcc"||t=="cc65"||t=="cmoc"||t=="smlrc"?Yt("Linked C (or .s)",".c",r=>'//#link "'+r+'"'):l.endsWith("asm")||l.endsWith(".s")||t=="ca65"||t=="lwasm"?Yt("Linked ASM",".inc",r=>';#link "'+r+'"'):we("Can't add linked file to this project type ("+t+")")}function Wu(){if(Ye=new hn($("#toolbar")[0],null),Ye.grp.prop("id","run_bar"),Ye.add("ctrl+alt+r","Reset","glyphicon-refresh",Cu).prop("id","dbg_reset"),Ye.add("ctrl+alt+,","Pause","glyphicon-pause",bu).prop("id","dbg_pause"),Ye.add("ctrl+alt+.","Resume","glyphicon-play",Vo).prop("id","dbg_go"),P.restartAtPC&&Ye.add("ctrl+alt+/","Restart at Cursor","glyphicon-play-circle",Eu).prop("id","dbg_restartatline"),Ye.newGroup(),Ye.grp.prop("id","debug_bar"),P.runEval&&Ye.add("ctrl+alt+e","Reset and Debug","glyphicon-fast-backward",Pu).prop("id","dbg_restart"),P.stepBack&&Ye.add("ctrl+alt+b","Step Backwards","glyphicon-step-backward",Tu).prop("id","dbg_stepback"),P.step&&Ye.add("ctrl+alt+s","Single Step","glyphicon-step-forward",yu).prop("id","dbg_step"),P.stepOver&&Ye.add("ctrl+alt+t","Step Over","glyphicon-hand-right",xu).prop("id","dbg_stepover"),P.runUntilReturn&&Ye.add("ctrl+alt+o","Step Out of Subroutine","glyphicon-hand-up",Su).prop("id","dbg_stepout"),P.runToVsync&&Ye.add("ctrl+alt+n","Next Frame/Interrupt","glyphicon-forward",wu).prop("id","dbg_tovsync"),(P.runEval||P.runToPC)&&!ae.startsWith("verilog")&&Ye.add("ctrl+alt+l","Run To Line","glyphicon-save",_u).prop("id","dbg_toline"),Ye.newGroup(),Ye.grp.prop("id","xtra_bar"),$(".dropdown-menu").collapse({toggle:!1}),$("#item_new_file").click(iu),$("#item_upload_file").click(nu),$("#item_open_directory").click(su),$("#item_github_login").click(mo),$("#item_github_logout").click(vo),$("#item_github_import").click(bo),$("#item_github_publish").click(yo),$("#item_github_push").click(xo),$("#item_github_pull").click(wo),$("#item_repo_delete").click(_o),$("#item_share_file").click(So),$("#item_reset_file").click(uu),$("#item_rename_file").click(fu),$("#item_delete_file").click(cu),P.runEval?$("#item_debug_expr").click(ku).show():$("#item_debug_expr").hide(),$("#item_download_rom").click(Co),$("#item_download_file").click(Po),$("#item_download_zip").click(Ao),P.getDebugSymbolFile?$("#item_download_sym").click(Do):$("#item_download_sym").hide(),$("#item_download_allzip").click(Fo),$("#item_record_video").click(Lo),es()?$("#item_export_cassette").click(To):$("#item_export_cassette").hide(),P.setFrameRate&&P.getFrameRate&&($("#dbg_slower").click(Fu),$("#dbg_faster").click(Lu),$("#dbg_slowest").click(Ru),$("#dbg_fastest").click(Iu)),$("#item_addfile_include").click(Ou),$("#item_addfile_link").click($u),$("#item_request_persist").click(()=>ss(!0,!1)),qo(),P.newCodeAnalyzer&&Ye.add(null,"Analyze CPU Timing","glyphicon-time",Mu),P.setRecorder&&P.advance&&ju(),P.showHelp){let{li:r,a}=os("help__"+ae,is+" Help");$("#help_menu").append(r),$(a).click(()=>window.open(P.showHelp(),"_8bws_help"))}let l=P.getToolForFilename(Qe()),t=Yl[l];if(t){let{li:r,a}=os("help__"+l,l+" Help");$("#help_menu").append(r),$(a).click(()=>window.open(t,"_8bws_help"))}}function ju(){var l=$("#replayslider"),t=$("#clockslider"),r=$("#replay_frame"),a=$("#replay_clock");P.advanceFrameClock||$("#clockdiv").hide();var u=()=>{r.text(ot.lastSeekFrame+""),a.text(ot.lastSeekStep+"")},d=b=>{ir();var F=parseInt(l.val().toString()),W=parseInt(t.val().toString());ot.loadFrame(F,W)>=0&&(t.attr("min",0),t.attr("max",ot.lastStepCount),u(),Ln(P.saveState()))},m=b=>{ir(),ot.loadFrame(b)>=0&&(l.val(b),u(),Ln(P.saveState()))},y=b=>{ir();var F=parseInt(l.val().toString());ot.loadFrame(F,b)>=0&&(t.val(b),u(),Ln(P.saveState()))};ot.callbackStateChanged=()=>{l.attr("min",0),l.attr("max",ot.numFrames()),l.val(ot.currentFrame()),t.val(ot.currentStep()),u(),Li(P.saveState())},l.on("input",d),t.on("input",d),$("#replay_min").click(()=>{m(1)}),$("#replay_max").click(()=>{m(ot.numFrames())}),$("#replay_back").click(()=>{m(parseInt(l.val().toString())-1)}),$("#replay_fwd").click(()=>{m(parseInt(l.val().toString())+1)}),$("#clock_back").click(()=>{y(parseInt(t.val().toString())-1)}),$("#clock_fwd").click(()=>{y(parseInt(t.val().toString())+1)}),$("#replay_bar").show(),Ye.add("ctrl+alt+0","Start/Stop Replay Recording","glyphicon-record",Nu).prop("id","dbg_record")}function Bu(){try{var l=window.screen.orientation||window.screen.msOrientation||window.screen.mozOrientation||null;if(l){if(l.type.indexOf("landscape")!==-1)return!0;if(l.type.indexOf("portrait")!==-1)return!1}if("orientation"in window){var t=window.orientation;if(t===0||t===180)return!1;if(t===90||t===270)return!0}}catch(r){}return window.innerWidth>window.innerHeight}async function Uu(){if(Cr.shouldCompleteTour()){await St("lib/bootstrap-tourist.js");var l=ae.startsWith("vcs"),t=[{element:"#platformsMenuButton",placement:"right",title:"Platform Selector",content:`You're currently on the "<b>`+ae+'</b>" platform. You can choose a different one from the menu.'},{element:"#preset_select",title:"Project Selector",content:"You can choose different code examples, create your own files, or import projects from GitHub."},{element:"#workspace",title:"Code Editor",content:l?"Type your 6502 assembly code into the editor, and it'll be assembled in real-time.":"Type your source code into the editor, and it'll be compiled in real-time."},{element:"#emulator",placement:"left",title:"Emulator",content:"We'll load your compiled code into the emulator whenever you make changes."},{element:"#debug_bar",placement:"bottom",title:"Debug Tools",content:"Use these buttons to set breakpoints, single step through code, pause/resume, and use debugging tools."},{element:"#dropdownMenuButton",title:"Main Menu",content:"Click the menu to create new files, download your code, or share your work with others."},{element:"#sidebar",title:"Sidebar",content:"Pull right to expose the sidebar. It lets you switch between source files, view assembly listings, and use other tools like Disassembler, Memory Browser, and Asset Editor."}];Bu()||t.unshift({element:"#controls_top",placement:"bottom",title:"Portrait mode detected",content:"This site works best on desktop browsers. For best results, rotate your device to landscape orientation."}),window.location.host.endsWith("8bitworkshop.com")&&(t.unshift({element:"#dropdownMenuButton",placement:"right",title:"Cookie Consent",content:'Before we start, we should tell you that this website stores cookies and other data in your browser. You can review our <a href="/privacy.html" target="_new">privacy policy</a>.'}),t.push({element:"#booksMenuButton",placement:"left",title:"Books",content:"Get some books that explain how to program all of this stuff, and write some games!"})),Pi&&(t.unshift({element:"#dropdownMenuButton",placement:"right",title:"Developer Analytics",content:"BTW, we send stack traces to sentry.io when exceptions are thrown. Hope that's ok."}),t.unshift({element:"#dropdownMenuButton",placement:"right",title:"Welcome to 8bitworkshop Desktop!",content:'The directory "~/8bitworkshop" contains all of your file edits and built ROM images. You can create new projects under the platform directories (e.g. "c64/myproject")'}));var r=new Tour({autoscroll:!1,steps:t,onEnd:()=>{Cr.completedTour()}});setTimeout(()=>{r.start()},2500)}}function In(l){var t=(l.message||l.error||l)+"";if(t.indexOf("QuotaExceededError")>=0)ss(!1,!1);else{var r=l.error||l.reason;r!=null&&r instanceof ma&&Hu(r)}}function Hu(l){console.log("haltEmulation"),ir(),nc(l)}function zu(){window.addEventListener("error",In),window.addEventListener("unhandledrejection",In)}function Qo(){window.removeEventListener("error",In),window.removeEventListener("unhandledrejection",In)}function Er(l,t){t&&(te=t),Qo(),l?window.location.replace("?"+$.param(te)):window.location.href="?"+$.param(te)}function Mn(){ae&&(te.platform=ae),delete te[""],history.replaceState({},"","?"+$.param(te))}function Vu(){var l=!1;document.addEventListener("visibilitychange",()=>{document.visibilityState=="hidden"&&P&&P.isRunning()?(ir(),l=!0):document.visibilityState=="visible"&&l&&(qt(),l=!1)}),$(window).on("focus",()=>{l&&(qt(),l=!1)}),$(window).on("blur",()=>{P&&P.isRunning()&&(ir(),l=!0)}),$(window).on("orientationchange",()=>{P&&P.resize&&setTimeout(P.resize.bind(P),200)})}function Gu(){var l=$(document).find(".emucontrols-"+Mr(ae));ae.endsWith(".mame")&&l.show();var t=$("#emulator").find("canvas");t&&(t.on("focus",()=>{P.isRunning()&&(l.fadeIn(200),P.pause(),P.resume())}),t.on("blur",()=>{l.fadeOut(200)}))}function qu(){window.ga&&($(".dropdown-item").click(l=>{l.target&&l.target.id&&xr("menu",l.target.id)}),go(location.pathname+"?platform="+ae+(Be?"&repo="+Be:"&file="+te.file)))}async function Yu(){if(!pa[ae])throw Error("Invalid platform '"+ae+"'.");let l=$("#emuscreen")[0],t=ha(te.options||"");P=new pa[ae](l,t),ec(),ot=new Bs(P);let r=P.getPresets?P.getPresets():[];if(!te.file){var a=Cr.getLastPreset(),u=a||(Be?null:r[0].id);te.file=u||"DEFAULT",u||we("There is no default main file for this project. Try selecting one from the pulldown.")}ae=="vcs"&&te.file.startsWith("examples/")&&!te.file.endsWith(".a")&&(te.file+=".a"),Mn(),zu(),qu(),await P.start(),await mu(),await Kl(),await tu(te.file),P.sourceFileFetch=d=>me.filedata[d],Wu(),Vu(),Gu(),lt?Xu():(Fi(),Qu(),Uu()),Jo()}function Xu(){$("#dropdownMenuButton").hide(),$("#platformsMenuButton").hide(),$("#booksMenuButton").hide()}function Qu(){Mr(ae)=="nes"?$(".book-nes").addClass("book-active"):Mr(ae)=="vcs"?$(".book-vcs").addClass("book-active"):Mr(ae)=="verilog"?$(".book-verilog").addClass("book-active"):P.getToolForFilename(Qe())=="sdcc"&&$(".book-arcade").addClass("book-active")}function Jo(){setTimeout(()=>{$("#controls_dynamic").css("visibility","inherit")},250)}function Ju(){var l="workspace-split3-"+ae;lt&&(l="embed-"+l);var t;ae.startsWith("vcs")?t=[0,50,50]:lt||bi?t=[0,55,45]:t=[12,44,44];var r=Ct&&localStorage.getItem(l);if(r)try{t=JSON.parse(r)}catch(u){console.log(u)}var a=Gl(["#sidebar","#workspace","#emulator"],{sizes:t,minSize:[0,250,250],onDrag:()=>{P&&P.resize&&P.resize()},onDragEnd:()=>{Ct&&localStorage.setItem(l,JSON.stringify(a.getSizes())),pe&&pe.resize()}})}function Ku(l){let t=Nr(te.ignore)||lt;Me(!0),cn(l,async r=>{if(r){var a=ft(l);console.log("Importing "+r.length+" bytes as "+a);try{var u=await Tt.getItem(a);Me(!1),u!=null&&t||(u==null||confirm("Replace existing file '"+a+"'?"))&&await Tt.setItem(a,r),delete te.importURL,te.file=a,Mn(),Zo()}finally{Me(!1)}}else we("Could not load source code from URL: "+l),Me(!1)},"text")}async function Zu(){var l=Nr(te.ignore),t=Nr(te.force);lt?l=!t:t=!1;for(var r=0;r<20;r++){let u=te["file"+r+"_name"],d=te["file"+r+"_data"];if(u==null||d==null)break;var a=await Tt.getItem(u);if(!(l&&a)){let m=d;te["file"+r+"_type"]=="binary"&&(m=sn(atob(m))),(!a||t||confirm("Replace existing file '"+u+"'?"))&&await Tt.setItem(u,m)}r==0&&(te.file=u),delete te["file"+r+"_name"],delete te["file"+r+"_data"],delete te["file"+r+"_type"]}delete te.ignore,delete te.force,Mn()}function ec(){var l=P.getPlatformName&&P.getPlatformName(),t=$('a[href="?platform='+ae+'"]');t.length&&(t.addClass("dropdown-item-checked"),l=l||t.text()||l),is=l||ae,$(".platform_name").text(is)}function tc(){if(ae=te.platform||Cr.getLastPlatformID(),Be=te.repo,!te.repo&&!te.file&&(Be=Cr.getLastRepoID(ae)),Ct&&Be&&Be!=="/"){var l=Or()[Be];l&&(console.log(ae,te,l),te.repo=Be,l.platform_id&&!te.platform&&(te.platform=ae=l.platform_id),l.mainPath&&!te.file&&(te.file=l.mainPath))}else Be="",delete te.repo;ae||(lt&&po("The 'platform' must be specified when embed=1"),ae=te.platform="vcs")}async function Ko(){if(te.githubURL){Pn(te.githubURL,!0);return}if(tc(),Ju(),Sr=Be||dt(ae),lt&&(Sr=(document.referrer||document.location.href)+Sr),Tt=gn(Sr),te.importURL){Ku(te.importURL);return}te.file0_name&&await Zu(),Zo()}async function Zo(){try{var l=await Us(Mr(ae));console.log("starting platform",ae),await Yu(),document.title=document.title+" ["+ae+"] - "+(Be?"["+Be+"] - ":"")+me.mainPath}catch(t){console.log(t),we('Platform "'+ae+'" failed to load.')}finally{Jo()}}var ps="__use_https";function el(l){document.cookie=ps+"="+l+";domain=8bitworkshop.com;path=/;max-age=315360000"}function rc(){var l=fn(ps);if(typeof l=="string")return!!l;var t=Ct&&!localStorage.getItem("__lastplatform")?1:0;return el(t),!!t}function ic(){bootbox.confirm('<p>Do you want to force the browser to use HTTPS from now on?</p><p>WARNING: This will make all of your local files unavailable, so you should "Download All Changes" first for each platform where you have done work.</p><p>You can go back to HTTP by setting the "'+ps+'" cookie to 0.</p>',l=>{l&&(el(1),tl())})}function tl(){window.location.protocol=="http:"&&window.location.host=="8bitworkshop.com"&&(rc()?(Qo(),window.location.replace(window.location.href.replace(/^http:/,"https:"))):$("#item_switch_https").click(ic).show())}tl();function Jf(l,t){P.writeFile(l,t)}function Kf(l){return P.readFile(l)}function Zf(){return P.saveState()}function nc(l){var t=l&&l.message||t;Uo(l,t),pe.refresh(!1),P.saveState&&Li(P.saveState())}async function ed(l){var t=me.filedata[l];t!=null&&(pe.updateFile(l,await alternateLocalFilesystem.getFileData(l)),console.log("updating file",l))}function ac(){if(Pi&&Tr instanceof Uint8Array){var l=rt(Qe()),t=P.getROMExtension&&P.getROMExtension(Tr)||"-"+dt(ae)+".bin";alternateLocalFilesystem.setFileData(`bin/${l}${t}`,Tr)}}function td(l){var t=pe.getActive();if(t instanceof yi){var r=t.editor.getSearchCursor(l);r.findNext()&&t.editor.setSelection(r.pos.to,r.pos.from)}}function sc(){let l=!1;new IntersectionObserver((r,a)=>{for(var u of r)u.isIntersecting&&!l&&(Ko(),l=!0),u.intersectionRatio==0&&fs()&&P.isRunning()&&ir(),u.intersectionRatio>0&&fs()&&!P.isRunning()&&qt()},{}).observe($("#emulator")[0])}typeof process=="undefined"&&(lt&&typeof IntersectionObserver=="function"?sc():Ko());export{Js as a,te as b,ae as c,Sr as d,Be as e,P as f,me as g,pe as h,tr as i,rr as j,Gt as k,st as l,wi as m,Qe as n,Ro as o,It as p,xi as q,Ri as r,Rn as s,Hu as t,Er as u,Ju as v,tc as w,Ko as x,Jf as y,Kf as z,Zf as A,nc as B,ed as C,td as D};
/*!
localForage -- Offline Storage, Improved
Version 1.10.0
https://localforage.github.io/localForage
(c) 2013-2017 Mozilla, Apache License 2.0
*/
/*!
* jQuery JavaScript Library v3.6.3
* https://jquery.com/
*
* Includes Sizzle.js
* https://sizzlejs.com/
*
* Copyright OpenJS Foundation and other contributors
* Released under the MIT license
* https://jquery.org/license
*
* Date: 2022-12-20T21:28Z
*/
//# sourceMappingURL=chunk-JNII2TLU.js.map