@datagrok/sequence-translator 1.4.1 → 1.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/package.js CHANGED
@@ -1,3 +1,3 @@
1
1
  /*! For license information please see package.js.LICENSE.txt */
2
- var sequencetranslator;(()=>{var t={74:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var r=n(354),i=n.n(r),o=n(314),s=n.n(o)()(i());s.push([t.id,".st-colored-text-input > textarea {\n width: 100%;\n -webkit-text-fill-color: transparent;\n background-color: transparent;\n position: relative;\n z-index: 1;\n resize: none;\n height: 22px; /* Fine tuned value to avoid \"jumping\" of the textarea upon autoresize */\n}\n\n.st-colored-text-input > div {\n /* The values here are fine tuned to those of the ui.input textarea in order\n * to achieve precise overlap */\n overflow: auto;\n position: absolute;\n pointer-events: none;\n cursor: text;\n z-index: 0;\n max-width: 100%;\n padding: 2px;\n line-height: normal;\n font-family: 'Roboto', 'Roboto Local', sans-serif;\n font-size: 13px;\n padding-top: 6px !important;\n color: transparent;\n white-space: pre-wrap;\n word-wrap: break-word;\n}\n","",{version:3,sources:["webpack://./src/apps/common/view/components/colored-input/style.css"],names:[],mappings:"AAAA;EACE,WAAW;EACX,oCAAoC;EACpC,6BAA6B;EAC7B,kBAAkB;EAClB,UAAU;EACV,YAAY;EACZ,YAAY,EAAE,wEAAwE;AACxF;;AAEA;EACE;iCAC+B;EAC/B,cAAc;EACd,kBAAkB;EAClB,oBAAoB;EACpB,YAAY;EACZ,UAAU;EACV,eAAe;EACf,YAAY;EACZ,mBAAmB;EACnB,iDAAiD;EACjD,eAAe;EACf,2BAA2B;EAC3B,kBAAkB;EAClB,qBAAqB;EACrB,qBAAqB;AACvB",sourcesContent:[".st-colored-text-input > textarea {\n width: 100%;\n -webkit-text-fill-color: transparent;\n background-color: transparent;\n position: relative;\n z-index: 1;\n resize: none;\n height: 22px; /* Fine tuned value to avoid \"jumping\" of the textarea upon autoresize */\n}\n\n.st-colored-text-input > div {\n /* The values here are fine tuned to those of the ui.input textarea in order\n * to achieve precise overlap */\n overflow: auto;\n position: absolute;\n pointer-events: none;\n cursor: text;\n z-index: 0;\n max-width: 100%;\n padding: 2px;\n line-height: normal;\n font-family: 'Roboto', 'Roboto Local', sans-serif;\n font-size: 13px;\n padding-top: 6px !important;\n color: transparent;\n white-space: pre-wrap;\n word-wrap: break-word;\n}\n"],sourceRoot:""}]);const a=s},252:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var r=n(354),i=n.n(r),o=n(314),s=n.n(o)()(i());s.push([t.id,"/* Naming convention: class names should begin with st and app name to avoid naming collitions */\n\n.st-pattern-text-input > textarea {\n resize: none;\n}\n","",{version:3,sources:["webpack://./src/apps/pattern/view/style.css"],names:[],mappings:"AAAA,gGAAgG;;AAEhG;EACE,YAAY;AACd",sourcesContent:["/* Naming convention: class names should begin with st and app name to avoid naming collitions */\n\n.st-pattern-text-input > textarea {\n resize: none;\n}\n"],sourceRoot:""}]);const a=s},507:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var r=n(354),i=n.n(r),o=n(314),s=n.n(o)()(i());s.push([t.id,"/* Naming convention: class names should begin with st and app name to avoid naming collitions */\n\n.st-structure-body {\n padding-right: 20px;\n}\n\n.st-structure-mol-img {\n margin-right: 30px;\n float: right;\n}\n\n.st-structure-bool-button-block {\n justify-content: right;\n margin-bottom: 10px;\n}\n\n.st-structure-bottom {\n flex-direction: row-reverse;\n padding-top: 20px;\n}\n\n.st-structure-clear-buttons {\n justify-content: space-between;\n padding: 13px 10px 13px 10px;\n}\n\n.st-direction-inputs {\n align-items: end;\n}\n\n.st-structure-inputs {\n flex-grow: 2;\n padding-left: 10px;\n}","",{version:3,sources:["webpack://./src/apps/structure/view/style.css"],names:[],mappings:"AAAA,gGAAgG;;AAEhG;EACE,mBAAmB;AACrB;;AAEA;EACE,kBAAkB;EAClB,YAAY;AACd;;AAEA;EACE,sBAAsB;EACtB,mBAAmB;AACrB;;AAEA;EACE,2BAA2B;EAC3B,iBAAiB;AACnB;;AAEA;EACE,8BAA8B;EAC9B,4BAA4B;AAC9B;;AAEA;EACE,gBAAgB;AAClB;;AAEA;EACE,YAAY;EACZ,kBAAkB;AACpB",sourcesContent:["/* Naming convention: class names should begin with st and app name to avoid naming collitions */\n\n.st-structure-body {\n padding-right: 20px;\n}\n\n.st-structure-mol-img {\n margin-right: 30px;\n float: right;\n}\n\n.st-structure-bool-button-block {\n justify-content: right;\n margin-bottom: 10px;\n}\n\n.st-structure-bottom {\n flex-direction: row-reverse;\n padding-top: 20px;\n}\n\n.st-structure-clear-buttons {\n justify-content: space-between;\n padding: 13px 10px 13px 10px;\n}\n\n.st-direction-inputs {\n align-items: end;\n}\n\n.st-structure-inputs {\n flex-grow: 2;\n padding-left: 10px;\n}"],sourceRoot:""}]);const a=s},254:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var r=n(354),i=n.n(r),o=n(314),s=n.n(o)()(i());s.push([t.id,"/* Naming convention: class names should begin with st and app name to avoid naming collitions */\n.st-translator-input-table {\n /* width: 100%; */\n margin-right: 20px;\n}\n\n.st-translator-input-table td:has(textarea) {\n width: 100%;\n}\n\n.st-translator-input-table td:has(select) {\n min-width: 120px;\n vertical-align: top;\n}\n\n.st-translator-output-table {\n margin-top: 20px;\n margin-right: 20px;\n margin-bottom: 10px;\n}\n\n.st-translator-output-table table {\n width: 100%;\n table-layout: fixed;\n}\n\n.st-translator-output-table td {\n padding-top: 6px;\n padding-bottom: 6px;\n}\n.st-translator-output-table tr:nth-child(even) {\n background-color: var(--grey-1);\n}\n\n.st-translator-output-table td:nth-child(odd) {\n width: 120px;\n vertical-align: top;\n}\n\n.st-translator-output-table td a {\n overflow-wrap: break-word;\n}\n","",{version:3,sources:["webpack://./src/apps/translator/view/style.css"],names:[],mappings:"AAAA,gGAAgG;AAChG;EACE,iBAAiB;EACjB,kBAAkB;AACpB;;AAEA;EACE,WAAW;AACb;;AAEA;EACE,gBAAgB;EAChB,mBAAmB;AACrB;;AAEA;EACE,gBAAgB;EAChB,kBAAkB;EAClB,mBAAmB;AACrB;;AAEA;EACE,WAAW;EACX,mBAAmB;AACrB;;AAEA;EACE,gBAAgB;EAChB,mBAAmB;AACrB;AACA;EACE,+BAA+B;AACjC;;AAEA;EACE,YAAY;EACZ,mBAAmB;AACrB;;AAEA;EACE,yBAAyB;AAC3B",sourcesContent:["/* Naming convention: class names should begin with st and app name to avoid naming collitions */\n.st-translator-input-table {\n /* width: 100%; */\n margin-right: 20px;\n}\n\n.st-translator-input-table td:has(textarea) {\n width: 100%;\n}\n\n.st-translator-input-table td:has(select) {\n min-width: 120px;\n vertical-align: top;\n}\n\n.st-translator-output-table {\n margin-top: 20px;\n margin-right: 20px;\n margin-bottom: 10px;\n}\n\n.st-translator-output-table table {\n width: 100%;\n table-layout: fixed;\n}\n\n.st-translator-output-table td {\n padding-top: 6px;\n padding-bottom: 6px;\n}\n.st-translator-output-table tr:nth-child(even) {\n background-color: var(--grey-1);\n}\n\n.st-translator-output-table td:nth-child(odd) {\n width: 120px;\n vertical-align: top;\n}\n\n.st-translator-output-table td a {\n overflow-wrap: break-word;\n}\n"],sourceRoot:""}]);const a=s},314:t=>{"use strict";t.exports=function(t){var e=[];return e.toString=function(){return this.map((function(e){var n="",r=void 0!==e[5];return e[4]&&(n+="@supports (".concat(e[4],") {")),e[2]&&(n+="@media ".concat(e[2]," {")),r&&(n+="@layer".concat(e[5].length>0?" ".concat(e[5]):""," {")),n+=t(e),r&&(n+="}"),e[2]&&(n+="}"),e[4]&&(n+="}"),n})).join("")},e.i=function(t,n,r,i,o){"string"==typeof t&&(t=[[null,t,void 0]]);var s={};if(r)for(var a=0;a<this.length;a++){var u=this[a][0];null!=u&&(s[u]=!0)}for(var l=0;l<t.length;l++){var c=[].concat(t[l]);r&&s[c[0]]||(void 0!==o&&(void 0===c[5]||(c[1]="@layer".concat(c[5].length>0?" ".concat(c[5]):""," {").concat(c[1],"}")),c[5]=o),n&&(c[2]?(c[1]="@media ".concat(c[2]," {").concat(c[1],"}"),c[2]=n):c[2]=n),i&&(c[4]?(c[1]="@supports (".concat(c[4],") {").concat(c[1],"}"),c[4]=i):c[4]="".concat(i)),e.push(c))}},e}},354:t=>{"use strict";t.exports=function(t){var e=t[1],n=t[3];if(!n)return e;if("function"==typeof btoa){var r=btoa(unescape(encodeURIComponent(JSON.stringify(n)))),i="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(r),o="/*# ".concat(i," */");return[e].concat([o]).join("\n")}return[e].join("\n")}},982:function(t,e,n){var r;!function(){var e={};!function(t){"use strict";t.__esModule=!0,t.digestLength=32,t.blockSize=64;var e=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]);function n(t,n,r,i,o){for(var s,a,u,l,c,h,f,d,p,g,m,v,y;o>=64;){for(s=n[0],a=n[1],u=n[2],l=n[3],c=n[4],h=n[5],f=n[6],d=n[7],g=0;g<16;g++)m=i+4*g,t[g]=(255&r[m])<<24|(255&r[m+1])<<16|(255&r[m+2])<<8|255&r[m+3];for(g=16;g<64;g++)v=((p=t[g-2])>>>17|p<<15)^(p>>>19|p<<13)^p>>>10,y=((p=t[g-15])>>>7|p<<25)^(p>>>18|p<<14)^p>>>3,t[g]=(v+t[g-7]|0)+(y+t[g-16]|0);for(g=0;g<64;g++)v=(((c>>>6|c<<26)^(c>>>11|c<<21)^(c>>>25|c<<7))+(c&h^~c&f)|0)+(d+(e[g]+t[g]|0)|0)|0,y=((s>>>2|s<<30)^(s>>>13|s<<19)^(s>>>22|s<<10))+(s&a^s&u^a&u)|0,d=f,f=h,h=c,c=l+v|0,l=u,u=a,a=s,s=v+y|0;n[0]+=s,n[1]+=a,n[2]+=u,n[3]+=l,n[4]+=c,n[5]+=h,n[6]+=f,n[7]+=d,i+=64,o-=64}return i}var r=function(){function e(){this.digestLength=t.digestLength,this.blockSize=t.blockSize,this.state=new Int32Array(8),this.temp=new Int32Array(64),this.buffer=new Uint8Array(128),this.bufferLength=0,this.bytesHashed=0,this.finished=!1,this.reset()}return e.prototype.reset=function(){return this.state[0]=1779033703,this.state[1]=3144134277,this.state[2]=1013904242,this.state[3]=2773480762,this.state[4]=1359893119,this.state[5]=2600822924,this.state[6]=528734635,this.state[7]=1541459225,this.bufferLength=0,this.bytesHashed=0,this.finished=!1,this},e.prototype.clean=function(){for(var t=0;t<this.buffer.length;t++)this.buffer[t]=0;for(t=0;t<this.temp.length;t++)this.temp[t]=0;this.reset()},e.prototype.update=function(t,e){if(void 0===e&&(e=t.length),this.finished)throw new Error("SHA256: can't update because hash was finished.");var r=0;if(this.bytesHashed+=e,this.bufferLength>0){for(;this.bufferLength<64&&e>0;)this.buffer[this.bufferLength++]=t[r++],e--;64===this.bufferLength&&(n(this.temp,this.state,this.buffer,0,64),this.bufferLength=0)}for(e>=64&&(r=n(this.temp,this.state,t,r,e),e%=64);e>0;)this.buffer[this.bufferLength++]=t[r++],e--;return this},e.prototype.finish=function(t){if(!this.finished){var e=this.bytesHashed,r=this.bufferLength,i=e/536870912|0,o=e<<3,s=e%64<56?64:128;this.buffer[r]=128;for(var a=r+1;a<s-8;a++)this.buffer[a]=0;this.buffer[s-8]=i>>>24&255,this.buffer[s-7]=i>>>16&255,this.buffer[s-6]=i>>>8&255,this.buffer[s-5]=i>>>0&255,this.buffer[s-4]=o>>>24&255,this.buffer[s-3]=o>>>16&255,this.buffer[s-2]=o>>>8&255,this.buffer[s-1]=o>>>0&255,n(this.temp,this.state,this.buffer,0,s),this.finished=!0}for(a=0;a<8;a++)t[4*a+0]=this.state[a]>>>24&255,t[4*a+1]=this.state[a]>>>16&255,t[4*a+2]=this.state[a]>>>8&255,t[4*a+3]=this.state[a]>>>0&255;return this},e.prototype.digest=function(){var t=new Uint8Array(this.digestLength);return this.finish(t),t},e.prototype._saveState=function(t){for(var e=0;e<this.state.length;e++)t[e]=this.state[e]},e.prototype._restoreState=function(t,e){for(var n=0;n<this.state.length;n++)this.state[n]=t[n];this.bytesHashed=e,this.finished=!1,this.bufferLength=0},e}();t.Hash=r;var i=function(){function t(t){this.inner=new r,this.outer=new r,this.blockSize=this.inner.blockSize,this.digestLength=this.inner.digestLength;var e=new Uint8Array(this.blockSize);if(t.length>this.blockSize)(new r).update(t).finish(e).clean();else for(var n=0;n<t.length;n++)e[n]=t[n];for(n=0;n<e.length;n++)e[n]^=54;for(this.inner.update(e),n=0;n<e.length;n++)e[n]^=106;for(this.outer.update(e),this.istate=new Uint32Array(8),this.ostate=new Uint32Array(8),this.inner._saveState(this.istate),this.outer._saveState(this.ostate),n=0;n<e.length;n++)e[n]=0}return t.prototype.reset=function(){return this.inner._restoreState(this.istate,this.inner.blockSize),this.outer._restoreState(this.ostate,this.outer.blockSize),this},t.prototype.clean=function(){for(var t=0;t<this.istate.length;t++)this.ostate[t]=this.istate[t]=0;this.inner.clean(),this.outer.clean()},t.prototype.update=function(t){return this.inner.update(t),this},t.prototype.finish=function(t){return this.outer.finished?this.outer.finish(t):(this.inner.finish(t),this.outer.update(t,this.digestLength).finish(t)),this},t.prototype.digest=function(){var t=new Uint8Array(this.digestLength);return this.finish(t),t},t}();function o(t){var e=(new r).update(t),n=e.digest();return e.clean(),n}function s(t,e){var n=new i(t).update(e),r=n.digest();return n.clean(),r}function a(t,e,n,r){var i=r[0];if(0===i)throw new Error("hkdf: cannot expand more");e.reset(),i>1&&e.update(t),n&&e.update(n),e.update(r),e.finish(t),r[0]++}t.HMAC=i,t.hash=o,t.default=o,t.hmac=s;var u=new Uint8Array(t.digestLength);t.hkdf=function(t,e,n,r){void 0===e&&(e=u),void 0===r&&(r=32);for(var o=new Uint8Array([1]),l=s(e,t),c=new i(l),h=new Uint8Array(c.digestLength),f=h.length,d=new Uint8Array(r),p=0;p<r;p++)f===h.length&&(a(h,c,n,o),f=0),d[p]=h[f++];return c.clean(),h.fill(0),o.fill(0),d},t.pbkdf2=function(t,e,n,r){for(var o=new i(t),s=o.digestLength,a=new Uint8Array(4),u=new Uint8Array(s),l=new Uint8Array(s),c=new Uint8Array(r),h=0;h*s<r;h++){var f=h+1;a[0]=f>>>24&255,a[1]=f>>>16&255,a[2]=f>>>8&255,a[3]=f>>>0&255,o.reset(),o.update(e),o.update(a),o.finish(l);for(var d=0;d<s;d++)u[d]=l[d];for(d=2;d<=n;d++){o.reset(),o.update(l).finish(l);for(var p=0;p<s;p++)u[p]^=l[p]}for(d=0;d<s&&h*s+d<r;d++)c[h*s+d]=u[d]}for(h=0;h<s;h++)u[h]=l[h]=0;for(h=0;h<4;h++)a[h]=0;return o.clean(),c}}(e);var i=e.default;for(var o in e)i[o]=e[o];"object"==typeof t.exports?t.exports=i:void 0===(r=function(){return i}.call(e,n,e,t))||(t.exports=r)}()},543:function(t,e,n){var r;t=n.nmd(t),function(){var i,o="Expected a function",s="__lodash_hash_undefined__",a="__lodash_placeholder__",u=32,l=128,c=1/0,h=9007199254740991,f=NaN,d=4294967295,p=[["ary",l],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",u],["partialRight",64],["rearg",256]],g="[object Arguments]",m="[object Array]",v="[object Boolean]",y="[object Date]",b="[object Error]",w="[object Function]",C="[object GeneratorFunction]",A="[object Map]",x="[object Number]",_="[object Object]",E="[object Promise]",S="[object RegExp]",T="[object Set]",I="[object String]",N="[object Symbol]",O="[object WeakMap]",M="[object ArrayBuffer]",L="[object DataView]",B="[object Float32Array]",P="[object Float64Array]",R="[object Int8Array]",D="[object Int16Array]",F="[object Int32Array]",k="[object Uint8Array]",H="[object Uint8ClampedArray]",U="[object Uint16Array]",$="[object Uint32Array]",V=/\b__p \+= '';/g,j=/\b(__p \+=) '' \+/g,q=/(__e\(.*?\)|\b__t\)) \+\n'';/g,G=/&(?:amp|lt|gt|quot|#39);/g,W=/[&<>"']/g,z=RegExp(G.source),Y=RegExp(W.source),K=/<%-([\s\S]+?)%>/g,J=/<%([\s\S]+?)%>/g,Q=/<%=([\s\S]+?)%>/g,X=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Z=/^\w*$/,tt=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,et=/[\\^$.*+?()[\]{}|]/g,nt=RegExp(et.source),rt=/^\s+/,it=/\s/,ot=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,st=/\{\n\/\* \[wrapped with (.+)\] \*/,at=/,? & /,ut=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,lt=/[()=,{}\[\]\/\s]/,ct=/\\(\\)?/g,ht=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,ft=/\w*$/,dt=/^[-+]0x[0-9a-f]+$/i,pt=/^0b[01]+$/i,gt=/^\[object .+?Constructor\]$/,mt=/^0o[0-7]+$/i,vt=/^(?:0|[1-9]\d*)$/,yt=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,bt=/($^)/,wt=/['\n\r\u2028\u2029\\]/g,Ct="\\ud800-\\udfff",At="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",xt="\\u2700-\\u27bf",_t="a-z\\xdf-\\xf6\\xf8-\\xff",Et="A-Z\\xc0-\\xd6\\xd8-\\xde",St="\\ufe0e\\ufe0f",Tt="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",It="["+Ct+"]",Nt="["+Tt+"]",Ot="["+At+"]",Mt="\\d+",Lt="["+xt+"]",Bt="["+_t+"]",Pt="[^"+Ct+Tt+Mt+xt+_t+Et+"]",Rt="\\ud83c[\\udffb-\\udfff]",Dt="[^"+Ct+"]",Ft="(?:\\ud83c[\\udde6-\\uddff]){2}",kt="[\\ud800-\\udbff][\\udc00-\\udfff]",Ht="["+Et+"]",Ut="\\u200d",$t="(?:"+Bt+"|"+Pt+")",Vt="(?:"+Ht+"|"+Pt+")",jt="(?:['’](?:d|ll|m|re|s|t|ve))?",qt="(?:['’](?:D|LL|M|RE|S|T|VE))?",Gt="(?:"+Ot+"|"+Rt+")?",Wt="["+St+"]?",zt=Wt+Gt+"(?:"+Ut+"(?:"+[Dt,Ft,kt].join("|")+")"+Wt+Gt+")*",Yt="(?:"+[Lt,Ft,kt].join("|")+")"+zt,Kt="(?:"+[Dt+Ot+"?",Ot,Ft,kt,It].join("|")+")",Jt=RegExp("['’]","g"),Qt=RegExp(Ot,"g"),Xt=RegExp(Rt+"(?="+Rt+")|"+Kt+zt,"g"),Zt=RegExp([Ht+"?"+Bt+"+"+jt+"(?="+[Nt,Ht,"$"].join("|")+")",Vt+"+"+qt+"(?="+[Nt,Ht+$t,"$"].join("|")+")",Ht+"?"+$t+"+"+jt,Ht+"+"+qt,"\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Mt,Yt].join("|"),"g"),te=RegExp("["+Ut+Ct+At+St+"]"),ee=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,ne=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],re=-1,ie={};ie[B]=ie[P]=ie[R]=ie[D]=ie[F]=ie[k]=ie[H]=ie[U]=ie[$]=!0,ie[g]=ie[m]=ie[M]=ie[v]=ie[L]=ie[y]=ie[b]=ie[w]=ie[A]=ie[x]=ie[_]=ie[S]=ie[T]=ie[I]=ie[O]=!1;var oe={};oe[g]=oe[m]=oe[M]=oe[L]=oe[v]=oe[y]=oe[B]=oe[P]=oe[R]=oe[D]=oe[F]=oe[A]=oe[x]=oe[_]=oe[S]=oe[T]=oe[I]=oe[N]=oe[k]=oe[H]=oe[U]=oe[$]=!0,oe[b]=oe[w]=oe[O]=!1;var se={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},ae=parseFloat,ue=parseInt,le="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,ce="object"==typeof self&&self&&self.Object===Object&&self,he=le||ce||Function("return this")(),fe=e&&!e.nodeType&&e,de=fe&&t&&!t.nodeType&&t,pe=de&&de.exports===fe,ge=pe&&le.process,me=function(){try{return de&&de.require&&de.require("util").types||ge&&ge.binding&&ge.binding("util")}catch(t){}}(),ve=me&&me.isArrayBuffer,ye=me&&me.isDate,be=me&&me.isMap,we=me&&me.isRegExp,Ce=me&&me.isSet,Ae=me&&me.isTypedArray;function xe(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)}function _e(t,e,n,r){for(var i=-1,o=null==t?0:t.length;++i<o;){var s=t[i];e(r,s,n(s),t)}return r}function Ee(t,e){for(var n=-1,r=null==t?0:t.length;++n<r&&!1!==e(t[n],n,t););return t}function Se(t,e){for(var n=null==t?0:t.length;n--&&!1!==e(t[n],n,t););return t}function Te(t,e){for(var n=-1,r=null==t?0:t.length;++n<r;)if(!e(t[n],n,t))return!1;return!0}function Ie(t,e){for(var n=-1,r=null==t?0:t.length,i=0,o=[];++n<r;){var s=t[n];e(s,n,t)&&(o[i++]=s)}return o}function Ne(t,e){return!(null==t||!t.length)&&He(t,e,0)>-1}function Oe(t,e,n){for(var r=-1,i=null==t?0:t.length;++r<i;)if(n(e,t[r]))return!0;return!1}function Me(t,e){for(var n=-1,r=null==t?0:t.length,i=Array(r);++n<r;)i[n]=e(t[n],n,t);return i}function Le(t,e){for(var n=-1,r=e.length,i=t.length;++n<r;)t[i+n]=e[n];return t}function Be(t,e,n,r){var i=-1,o=null==t?0:t.length;for(r&&o&&(n=t[++i]);++i<o;)n=e(n,t[i],i,t);return n}function Pe(t,e,n,r){var i=null==t?0:t.length;for(r&&i&&(n=t[--i]);i--;)n=e(n,t[i],i,t);return n}function Re(t,e){for(var n=-1,r=null==t?0:t.length;++n<r;)if(e(t[n],n,t))return!0;return!1}var De=je("length");function Fe(t,e,n){var r;return n(t,(function(t,n,i){if(e(t,n,i))return r=n,!1})),r}function ke(t,e,n,r){for(var i=t.length,o=n+(r?1:-1);r?o--:++o<i;)if(e(t[o],o,t))return o;return-1}function He(t,e,n){return e==e?function(t,e,n){for(var r=n-1,i=t.length;++r<i;)if(t[r]===e)return r;return-1}(t,e,n):ke(t,$e,n)}function Ue(t,e,n,r){for(var i=n-1,o=t.length;++i<o;)if(r(t[i],e))return i;return-1}function $e(t){return t!=t}function Ve(t,e){var n=null==t?0:t.length;return n?We(t,e)/n:f}function je(t){return function(e){return null==e?i:e[t]}}function qe(t){return function(e){return null==t?i:t[e]}}function Ge(t,e,n,r,i){return i(t,(function(t,i,o){n=r?(r=!1,t):e(n,t,i,o)})),n}function We(t,e){for(var n,r=-1,o=t.length;++r<o;){var s=e(t[r]);s!==i&&(n=n===i?s:n+s)}return n}function ze(t,e){for(var n=-1,r=Array(t);++n<t;)r[n]=e(n);return r}function Ye(t){return t?t.slice(0,fn(t)+1).replace(rt,""):t}function Ke(t){return function(e){return t(e)}}function Je(t,e){return Me(e,(function(e){return t[e]}))}function Qe(t,e){return t.has(e)}function Xe(t,e){for(var n=-1,r=t.length;++n<r&&He(e,t[n],0)>-1;);return n}function Ze(t,e){for(var n=t.length;n--&&He(e,t[n],0)>-1;);return n}var tn=qe({À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"}),en=qe({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"});function nn(t){return"\\"+se[t]}function rn(t){return te.test(t)}function on(t){var e=-1,n=Array(t.size);return t.forEach((function(t,r){n[++e]=[r,t]})),n}function sn(t,e){return function(n){return t(e(n))}}function an(t,e){for(var n=-1,r=t.length,i=0,o=[];++n<r;){var s=t[n];s!==e&&s!==a||(t[n]=a,o[i++]=n)}return o}function un(t){var e=-1,n=Array(t.size);return t.forEach((function(t){n[++e]=t})),n}function ln(t){var e=-1,n=Array(t.size);return t.forEach((function(t){n[++e]=[t,t]})),n}function cn(t){return rn(t)?function(t){for(var e=Xt.lastIndex=0;Xt.test(t);)++e;return e}(t):De(t)}function hn(t){return rn(t)?function(t){return t.match(Xt)||[]}(t):function(t){return t.split("")}(t)}function fn(t){for(var e=t.length;e--&&it.test(t.charAt(e)););return e}var dn=qe({"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"}),pn=function t(e){var n,r=(e=null==e?he:pn.defaults(he.Object(),e,pn.pick(he,ne))).Array,it=e.Date,Ct=e.Error,At=e.Function,xt=e.Math,_t=e.Object,Et=e.RegExp,St=e.String,Tt=e.TypeError,It=r.prototype,Nt=At.prototype,Ot=_t.prototype,Mt=e["__core-js_shared__"],Lt=Nt.toString,Bt=Ot.hasOwnProperty,Pt=0,Rt=(n=/[^.]+$/.exec(Mt&&Mt.keys&&Mt.keys.IE_PROTO||""))?"Symbol(src)_1."+n:"",Dt=Ot.toString,Ft=Lt.call(_t),kt=he._,Ht=Et("^"+Lt.call(Bt).replace(et,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Ut=pe?e.Buffer:i,$t=e.Symbol,Vt=e.Uint8Array,jt=Ut?Ut.allocUnsafe:i,qt=sn(_t.getPrototypeOf,_t),Gt=_t.create,Wt=Ot.propertyIsEnumerable,zt=It.splice,Yt=$t?$t.isConcatSpreadable:i,Kt=$t?$t.iterator:i,Xt=$t?$t.toStringTag:i,te=function(){try{var t=uo(_t,"defineProperty");return t({},"",{}),t}catch(t){}}(),se=e.clearTimeout!==he.clearTimeout&&e.clearTimeout,le=it&&it.now!==he.Date.now&&it.now,ce=e.setTimeout!==he.setTimeout&&e.setTimeout,fe=xt.ceil,de=xt.floor,ge=_t.getOwnPropertySymbols,me=Ut?Ut.isBuffer:i,De=e.isFinite,qe=It.join,gn=sn(_t.keys,_t),mn=xt.max,vn=xt.min,yn=it.now,bn=e.parseInt,wn=xt.random,Cn=It.reverse,An=uo(e,"DataView"),xn=uo(e,"Map"),_n=uo(e,"Promise"),En=uo(e,"Set"),Sn=uo(e,"WeakMap"),Tn=uo(_t,"create"),In=Sn&&new Sn,Nn={},On=Fo(An),Mn=Fo(xn),Ln=Fo(_n),Bn=Fo(En),Pn=Fo(Sn),Rn=$t?$t.prototype:i,Dn=Rn?Rn.valueOf:i,Fn=Rn?Rn.toString:i;function kn(t){if(ta(t)&&!js(t)&&!(t instanceof Vn)){if(t instanceof $n)return t;if(Bt.call(t,"__wrapped__"))return ko(t)}return new $n(t)}var Hn=function(){function t(){}return function(e){if(!Zs(e))return{};if(Gt)return Gt(e);t.prototype=e;var n=new t;return t.prototype=i,n}}();function Un(){}function $n(t,e){this.__wrapped__=t,this.__actions__=[],this.__chain__=!!e,this.__index__=0,this.__values__=i}function Vn(t){this.__wrapped__=t,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=d,this.__views__=[]}function jn(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}function qn(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}function Gn(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}function Wn(t){var e=-1,n=null==t?0:t.length;for(this.__data__=new Gn;++e<n;)this.add(t[e])}function zn(t){var e=this.__data__=new qn(t);this.size=e.size}function Yn(t,e){var n=js(t),r=!n&&Vs(t),i=!n&&!r&&zs(t),o=!n&&!r&&!i&&ua(t),s=n||r||i||o,a=s?ze(t.length,St):[],u=a.length;for(var l in t)!e&&!Bt.call(t,l)||s&&("length"==l||i&&("offset"==l||"parent"==l)||o&&("buffer"==l||"byteLength"==l||"byteOffset"==l)||mo(l,u))||a.push(l);return a}function Kn(t){var e=t.length;return e?t[Gr(0,e-1)]:i}function Jn(t,e){return Lo(Si(t),or(e,0,t.length))}function Qn(t){return Lo(Si(t))}function Xn(t,e,n){(n!==i&&!Hs(t[e],n)||n===i&&!(e in t))&&rr(t,e,n)}function Zn(t,e,n){var r=t[e];Bt.call(t,e)&&Hs(r,n)&&(n!==i||e in t)||rr(t,e,n)}function tr(t,e){for(var n=t.length;n--;)if(Hs(t[n][0],e))return n;return-1}function er(t,e,n,r){return cr(t,(function(t,i,o){e(r,t,n(t),o)})),r}function nr(t,e){return t&&Ti(e,Oa(e),t)}function rr(t,e,n){"__proto__"==e&&te?te(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n}function ir(t,e){for(var n=-1,o=e.length,s=r(o),a=null==t;++n<o;)s[n]=a?i:Ea(t,e[n]);return s}function or(t,e,n){return t==t&&(n!==i&&(t=t<=n?t:n),e!==i&&(t=t>=e?t:e)),t}function sr(t,e,n,r,o,s){var a,u=1&e,l=2&e,c=4&e;if(n&&(a=o?n(t,r,o,s):n(t)),a!==i)return a;if(!Zs(t))return t;var h=js(t);if(h){if(a=function(t){var e=t.length,n=new t.constructor(e);return e&&"string"==typeof t[0]&&Bt.call(t,"index")&&(n.index=t.index,n.input=t.input),n}(t),!u)return Si(t,a)}else{var f=ho(t),d=f==w||f==C;if(zs(t))return wi(t,u);if(f==_||f==g||d&&!o){if(a=l||d?{}:po(t),!u)return l?function(t,e){return Ti(t,co(t),e)}(t,function(t,e){return t&&Ti(e,Ma(e),t)}(a,t)):function(t,e){return Ti(t,lo(t),e)}(t,nr(a,t))}else{if(!oe[f])return o?t:{};a=function(t,e,n){var r,i=t.constructor;switch(e){case M:return Ci(t);case v:case y:return new i(+t);case L:return function(t,e){var n=e?Ci(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.byteLength)}(t,n);case B:case P:case R:case D:case F:case k:case H:case U:case $:return Ai(t,n);case A:return new i;case x:case I:return new i(t);case S:return function(t){var e=new t.constructor(t.source,ft.exec(t));return e.lastIndex=t.lastIndex,e}(t);case T:return new i;case N:return r=t,Dn?_t(Dn.call(r)):{}}}(t,f,u)}}s||(s=new zn);var p=s.get(t);if(p)return p;s.set(t,a),oa(t)?t.forEach((function(r){a.add(sr(r,e,n,r,t,s))})):ea(t)&&t.forEach((function(r,i){a.set(i,sr(r,e,n,i,t,s))}));var m=h?i:(c?l?eo:to:l?Ma:Oa)(t);return Ee(m||t,(function(r,i){m&&(r=t[i=r]),Zn(a,i,sr(r,e,n,i,t,s))})),a}function ar(t,e,n){var r=n.length;if(null==t)return!r;for(t=_t(t);r--;){var o=n[r],s=e[o],a=t[o];if(a===i&&!(o in t)||!s(a))return!1}return!0}function ur(t,e,n){if("function"!=typeof t)throw new Tt(o);return Io((function(){t.apply(i,n)}),e)}function lr(t,e,n,r){var i=-1,o=Ne,s=!0,a=t.length,u=[],l=e.length;if(!a)return u;n&&(e=Me(e,Ke(n))),r?(o=Oe,s=!1):e.length>=200&&(o=Qe,s=!1,e=new Wn(e));t:for(;++i<a;){var c=t[i],h=null==n?c:n(c);if(c=r||0!==c?c:0,s&&h==h){for(var f=l;f--;)if(e[f]===h)continue t;u.push(c)}else o(e,h,r)||u.push(c)}return u}kn.templateSettings={escape:K,evaluate:J,interpolate:Q,variable:"",imports:{_:kn}},kn.prototype=Un.prototype,kn.prototype.constructor=kn,$n.prototype=Hn(Un.prototype),$n.prototype.constructor=$n,Vn.prototype=Hn(Un.prototype),Vn.prototype.constructor=Vn,jn.prototype.clear=function(){this.__data__=Tn?Tn(null):{},this.size=0},jn.prototype.delete=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e},jn.prototype.get=function(t){var e=this.__data__;if(Tn){var n=e[t];return n===s?i:n}return Bt.call(e,t)?e[t]:i},jn.prototype.has=function(t){var e=this.__data__;return Tn?e[t]!==i:Bt.call(e,t)},jn.prototype.set=function(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=Tn&&e===i?s:e,this},qn.prototype.clear=function(){this.__data__=[],this.size=0},qn.prototype.delete=function(t){var e=this.__data__,n=tr(e,t);return!(n<0||(n==e.length-1?e.pop():zt.call(e,n,1),--this.size,0))},qn.prototype.get=function(t){var e=this.__data__,n=tr(e,t);return n<0?i:e[n][1]},qn.prototype.has=function(t){return tr(this.__data__,t)>-1},qn.prototype.set=function(t,e){var n=this.__data__,r=tr(n,t);return r<0?(++this.size,n.push([t,e])):n[r][1]=e,this},Gn.prototype.clear=function(){this.size=0,this.__data__={hash:new jn,map:new(xn||qn),string:new jn}},Gn.prototype.delete=function(t){var e=so(this,t).delete(t);return this.size-=e?1:0,e},Gn.prototype.get=function(t){return so(this,t).get(t)},Gn.prototype.has=function(t){return so(this,t).has(t)},Gn.prototype.set=function(t,e){var n=so(this,t),r=n.size;return n.set(t,e),this.size+=n.size==r?0:1,this},Wn.prototype.add=Wn.prototype.push=function(t){return this.__data__.set(t,s),this},Wn.prototype.has=function(t){return this.__data__.has(t)},zn.prototype.clear=function(){this.__data__=new qn,this.size=0},zn.prototype.delete=function(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n},zn.prototype.get=function(t){return this.__data__.get(t)},zn.prototype.has=function(t){return this.__data__.has(t)},zn.prototype.set=function(t,e){var n=this.__data__;if(n instanceof qn){var r=n.__data__;if(!xn||r.length<199)return r.push([t,e]),this.size=++n.size,this;n=this.__data__=new Gn(r)}return n.set(t,e),this.size=n.size,this};var cr=Oi(yr),hr=Oi(br,!0);function fr(t,e){var n=!0;return cr(t,(function(t,r,i){return n=!!e(t,r,i)})),n}function dr(t,e,n){for(var r=-1,o=t.length;++r<o;){var s=t[r],a=e(s);if(null!=a&&(u===i?a==a&&!aa(a):n(a,u)))var u=a,l=s}return l}function pr(t,e){var n=[];return cr(t,(function(t,r,i){e(t,r,i)&&n.push(t)})),n}function gr(t,e,n,r,i){var o=-1,s=t.length;for(n||(n=go),i||(i=[]);++o<s;){var a=t[o];e>0&&n(a)?e>1?gr(a,e-1,n,r,i):Le(i,a):r||(i[i.length]=a)}return i}var mr=Mi(),vr=Mi(!0);function yr(t,e){return t&&mr(t,e,Oa)}function br(t,e){return t&&vr(t,e,Oa)}function wr(t,e){return Ie(e,(function(e){return Js(t[e])}))}function Cr(t,e){for(var n=0,r=(e=mi(e,t)).length;null!=t&&n<r;)t=t[Do(e[n++])];return n&&n==r?t:i}function Ar(t,e,n){var r=e(t);return js(t)?r:Le(r,n(t))}function xr(t){return null==t?t===i?"[object Undefined]":"[object Null]":Xt&&Xt in _t(t)?function(t){var e=Bt.call(t,Xt),n=t[Xt];try{t[Xt]=i;var r=!0}catch(t){}var o=Dt.call(t);return r&&(e?t[Xt]=n:delete t[Xt]),o}(t):function(t){return Dt.call(t)}(t)}function _r(t,e){return t>e}function Er(t,e){return null!=t&&Bt.call(t,e)}function Sr(t,e){return null!=t&&e in _t(t)}function Tr(t,e,n){for(var o=n?Oe:Ne,s=t[0].length,a=t.length,u=a,l=r(a),c=1/0,h=[];u--;){var f=t[u];u&&e&&(f=Me(f,Ke(e))),c=vn(f.length,c),l[u]=!n&&(e||s>=120&&f.length>=120)?new Wn(u&&f):i}f=t[0];var d=-1,p=l[0];t:for(;++d<s&&h.length<c;){var g=f[d],m=e?e(g):g;if(g=n||0!==g?g:0,!(p?Qe(p,m):o(h,m,n))){for(u=a;--u;){var v=l[u];if(!(v?Qe(v,m):o(t[u],m,n)))continue t}p&&p.push(m),h.push(g)}}return h}function Ir(t,e,n){var r=null==(t=Eo(t,e=mi(e,t)))?t:t[Do(Ko(e))];return null==r?i:xe(r,t,n)}function Nr(t){return ta(t)&&xr(t)==g}function Or(t,e,n,r,o){return t===e||(null==t||null==e||!ta(t)&&!ta(e)?t!=t&&e!=e:function(t,e,n,r,o,s){var a=js(t),u=js(e),l=a?m:ho(t),c=u?m:ho(e),h=(l=l==g?_:l)==_,f=(c=c==g?_:c)==_,d=l==c;if(d&&zs(t)){if(!zs(e))return!1;a=!0,h=!1}if(d&&!h)return s||(s=new zn),a||ua(t)?Xi(t,e,n,r,o,s):function(t,e,n,r,i,o,s){switch(n){case L:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case M:return!(t.byteLength!=e.byteLength||!o(new Vt(t),new Vt(e)));case v:case y:case x:return Hs(+t,+e);case b:return t.name==e.name&&t.message==e.message;case S:case I:return t==e+"";case A:var a=on;case T:var u=1&r;if(a||(a=un),t.size!=e.size&&!u)return!1;var l=s.get(t);if(l)return l==e;r|=2,s.set(t,e);var c=Xi(a(t),a(e),r,i,o,s);return s.delete(t),c;case N:if(Dn)return Dn.call(t)==Dn.call(e)}return!1}(t,e,l,n,r,o,s);if(!(1&n)){var p=h&&Bt.call(t,"__wrapped__"),w=f&&Bt.call(e,"__wrapped__");if(p||w){var C=p?t.value():t,E=w?e.value():e;return s||(s=new zn),o(C,E,n,r,s)}}return!!d&&(s||(s=new zn),function(t,e,n,r,o,s){var a=1&n,u=to(t),l=u.length;if(l!=to(e).length&&!a)return!1;for(var c=l;c--;){var h=u[c];if(!(a?h in e:Bt.call(e,h)))return!1}var f=s.get(t),d=s.get(e);if(f&&d)return f==e&&d==t;var p=!0;s.set(t,e),s.set(e,t);for(var g=a;++c<l;){var m=t[h=u[c]],v=e[h];if(r)var y=a?r(v,m,h,e,t,s):r(m,v,h,t,e,s);if(!(y===i?m===v||o(m,v,n,r,s):y)){p=!1;break}g||(g="constructor"==h)}if(p&&!g){var b=t.constructor,w=e.constructor;b==w||!("constructor"in t)||!("constructor"in e)||"function"==typeof b&&b instanceof b&&"function"==typeof w&&w instanceof w||(p=!1)}return s.delete(t),s.delete(e),p}(t,e,n,r,o,s))}(t,e,n,r,Or,o))}function Mr(t,e,n,r){var o=n.length,s=o,a=!r;if(null==t)return!s;for(t=_t(t);o--;){var u=n[o];if(a&&u[2]?u[1]!==t[u[0]]:!(u[0]in t))return!1}for(;++o<s;){var l=(u=n[o])[0],c=t[l],h=u[1];if(a&&u[2]){if(c===i&&!(l in t))return!1}else{var f=new zn;if(r)var d=r(c,h,l,t,e,f);if(!(d===i?Or(h,c,3,r,f):d))return!1}}return!0}function Lr(t){return!(!Zs(t)||(e=t,Rt&&Rt in e))&&(Js(t)?Ht:gt).test(Fo(t));var e}function Br(t){return"function"==typeof t?t:null==t?nu:"object"==typeof t?js(t)?kr(t[0],t[1]):Fr(t):hu(t)}function Pr(t){if(!Co(t))return gn(t);var e=[];for(var n in _t(t))Bt.call(t,n)&&"constructor"!=n&&e.push(n);return e}function Rr(t,e){return t<e}function Dr(t,e){var n=-1,i=Gs(t)?r(t.length):[];return cr(t,(function(t,r,o){i[++n]=e(t,r,o)})),i}function Fr(t){var e=ao(t);return 1==e.length&&e[0][2]?xo(e[0][0],e[0][1]):function(n){return n===t||Mr(n,t,e)}}function kr(t,e){return yo(t)&&Ao(e)?xo(Do(t),e):function(n){var r=Ea(n,t);return r===i&&r===e?Sa(n,t):Or(e,r,3)}}function Hr(t,e,n,r,o){t!==e&&mr(e,(function(s,a){if(o||(o=new zn),Zs(s))!function(t,e,n,r,o,s,a){var u=So(t,n),l=So(e,n),c=a.get(l);if(c)Xn(t,n,c);else{var h=s?s(u,l,n+"",t,e,a):i,f=h===i;if(f){var d=js(l),p=!d&&zs(l),g=!d&&!p&&ua(l);h=l,d||p||g?js(u)?h=u:Ws(u)?h=Si(u):p?(f=!1,h=wi(l,!0)):g?(f=!1,h=Ai(l,!0)):h=[]:ra(l)||Vs(l)?(h=u,Vs(u)?h=ma(u):Zs(u)&&!Js(u)||(h=po(l))):f=!1}f&&(a.set(l,h),o(h,l,r,s,a),a.delete(l)),Xn(t,n,h)}}(t,e,a,n,Hr,r,o);else{var u=r?r(So(t,a),s,a+"",t,e,o):i;u===i&&(u=s),Xn(t,a,u)}}),Ma)}function Ur(t,e){var n=t.length;if(n)return mo(e+=e<0?n:0,n)?t[e]:i}function $r(t,e,n){e=e.length?Me(e,(function(t){return js(t)?function(e){return Cr(e,1===t.length?t[0]:t)}:t})):[nu];var r=-1;e=Me(e,Ke(oo()));var i=Dr(t,(function(t,n,i){var o=Me(e,(function(e){return e(t)}));return{criteria:o,index:++r,value:t}}));return function(t){var e=t.length;for(t.sort((function(t,e){return function(t,e,n){for(var r=-1,i=t.criteria,o=e.criteria,s=i.length,a=n.length;++r<s;){var u=xi(i[r],o[r]);if(u)return r>=a?u:u*("desc"==n[r]?-1:1)}return t.index-e.index}(t,e,n)}));e--;)t[e]=t[e].value;return t}(i)}function Vr(t,e,n){for(var r=-1,i=e.length,o={};++r<i;){var s=e[r],a=Cr(t,s);n(a,s)&&Jr(o,mi(s,t),a)}return o}function jr(t,e,n,r){var i=r?Ue:He,o=-1,s=e.length,a=t;for(t===e&&(e=Si(e)),n&&(a=Me(t,Ke(n)));++o<s;)for(var u=0,l=e[o],c=n?n(l):l;(u=i(a,c,u,r))>-1;)a!==t&&zt.call(a,u,1),zt.call(t,u,1);return t}function qr(t,e){for(var n=t?e.length:0,r=n-1;n--;){var i=e[n];if(n==r||i!==o){var o=i;mo(i)?zt.call(t,i,1):ui(t,i)}}return t}function Gr(t,e){return t+de(wn()*(e-t+1))}function Wr(t,e){var n="";if(!t||e<1||e>h)return n;do{e%2&&(n+=t),(e=de(e/2))&&(t+=t)}while(e);return n}function zr(t,e){return No(_o(t,e,nu),t+"")}function Yr(t){return Kn(Ha(t))}function Kr(t,e){var n=Ha(t);return Lo(n,or(e,0,n.length))}function Jr(t,e,n,r){if(!Zs(t))return t;for(var o=-1,s=(e=mi(e,t)).length,a=s-1,u=t;null!=u&&++o<s;){var l=Do(e[o]),c=n;if("__proto__"===l||"constructor"===l||"prototype"===l)return t;if(o!=a){var h=u[l];(c=r?r(h,l,u):i)===i&&(c=Zs(h)?h:mo(e[o+1])?[]:{})}Zn(u,l,c),u=u[l]}return t}var Qr=In?function(t,e){return In.set(t,e),t}:nu,Xr=te?function(t,e){return te(t,"toString",{configurable:!0,enumerable:!1,value:Za(e),writable:!0})}:nu;function Zr(t){return Lo(Ha(t))}function ti(t,e,n){var i=-1,o=t.length;e<0&&(e=-e>o?0:o+e),(n=n>o?o:n)<0&&(n+=o),o=e>n?0:n-e>>>0,e>>>=0;for(var s=r(o);++i<o;)s[i]=t[i+e];return s}function ei(t,e){var n;return cr(t,(function(t,r,i){return!(n=e(t,r,i))})),!!n}function ni(t,e,n){var r=0,i=null==t?r:t.length;if("number"==typeof e&&e==e&&i<=2147483647){for(;r<i;){var o=r+i>>>1,s=t[o];null!==s&&!aa(s)&&(n?s<=e:s<e)?r=o+1:i=o}return i}return ri(t,e,nu,n)}function ri(t,e,n,r){var o=0,s=null==t?0:t.length;if(0===s)return 0;for(var a=(e=n(e))!=e,u=null===e,l=aa(e),c=e===i;o<s;){var h=de((o+s)/2),f=n(t[h]),d=f!==i,p=null===f,g=f==f,m=aa(f);if(a)var v=r||g;else v=c?g&&(r||d):u?g&&d&&(r||!p):l?g&&d&&!p&&(r||!m):!p&&!m&&(r?f<=e:f<e);v?o=h+1:s=h}return vn(s,4294967294)}function ii(t,e){for(var n=-1,r=t.length,i=0,o=[];++n<r;){var s=t[n],a=e?e(s):s;if(!n||!Hs(a,u)){var u=a;o[i++]=0===s?0:s}}return o}function oi(t){return"number"==typeof t?t:aa(t)?f:+t}function si(t){if("string"==typeof t)return t;if(js(t))return Me(t,si)+"";if(aa(t))return Fn?Fn.call(t):"";var e=t+"";return"0"==e&&1/t==-1/0?"-0":e}function ai(t,e,n){var r=-1,i=Ne,o=t.length,s=!0,a=[],u=a;if(n)s=!1,i=Oe;else if(o>=200){var l=e?null:Wi(t);if(l)return un(l);s=!1,i=Qe,u=new Wn}else u=e?[]:a;t:for(;++r<o;){var c=t[r],h=e?e(c):c;if(c=n||0!==c?c:0,s&&h==h){for(var f=u.length;f--;)if(u[f]===h)continue t;e&&u.push(h),a.push(c)}else i(u,h,n)||(u!==a&&u.push(h),a.push(c))}return a}function ui(t,e){return null==(t=Eo(t,e=mi(e,t)))||delete t[Do(Ko(e))]}function li(t,e,n,r){return Jr(t,e,n(Cr(t,e)),r)}function ci(t,e,n,r){for(var i=t.length,o=r?i:-1;(r?o--:++o<i)&&e(t[o],o,t););return n?ti(t,r?0:o,r?o+1:i):ti(t,r?o+1:0,r?i:o)}function hi(t,e){var n=t;return n instanceof Vn&&(n=n.value()),Be(e,(function(t,e){return e.func.apply(e.thisArg,Le([t],e.args))}),n)}function fi(t,e,n){var i=t.length;if(i<2)return i?ai(t[0]):[];for(var o=-1,s=r(i);++o<i;)for(var a=t[o],u=-1;++u<i;)u!=o&&(s[o]=lr(s[o]||a,t[u],e,n));return ai(gr(s,1),e,n)}function di(t,e,n){for(var r=-1,o=t.length,s=e.length,a={};++r<o;){var u=r<s?e[r]:i;n(a,t[r],u)}return a}function pi(t){return Ws(t)?t:[]}function gi(t){return"function"==typeof t?t:nu}function mi(t,e){return js(t)?t:yo(t,e)?[t]:Ro(va(t))}var vi=zr;function yi(t,e,n){var r=t.length;return n=n===i?r:n,!e&&n>=r?t:ti(t,e,n)}var bi=se||function(t){return he.clearTimeout(t)};function wi(t,e){if(e)return t.slice();var n=t.length,r=jt?jt(n):new t.constructor(n);return t.copy(r),r}function Ci(t){var e=new t.constructor(t.byteLength);return new Vt(e).set(new Vt(t)),e}function Ai(t,e){var n=e?Ci(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.length)}function xi(t,e){if(t!==e){var n=t!==i,r=null===t,o=t==t,s=aa(t),a=e!==i,u=null===e,l=e==e,c=aa(e);if(!u&&!c&&!s&&t>e||s&&a&&l&&!u&&!c||r&&a&&l||!n&&l||!o)return 1;if(!r&&!s&&!c&&t<e||c&&n&&o&&!r&&!s||u&&n&&o||!a&&o||!l)return-1}return 0}function _i(t,e,n,i){for(var o=-1,s=t.length,a=n.length,u=-1,l=e.length,c=mn(s-a,0),h=r(l+c),f=!i;++u<l;)h[u]=e[u];for(;++o<a;)(f||o<s)&&(h[n[o]]=t[o]);for(;c--;)h[u++]=t[o++];return h}function Ei(t,e,n,i){for(var o=-1,s=t.length,a=-1,u=n.length,l=-1,c=e.length,h=mn(s-u,0),f=r(h+c),d=!i;++o<h;)f[o]=t[o];for(var p=o;++l<c;)f[p+l]=e[l];for(;++a<u;)(d||o<s)&&(f[p+n[a]]=t[o++]);return f}function Si(t,e){var n=-1,i=t.length;for(e||(e=r(i));++n<i;)e[n]=t[n];return e}function Ti(t,e,n,r){var o=!n;n||(n={});for(var s=-1,a=e.length;++s<a;){var u=e[s],l=r?r(n[u],t[u],u,n,t):i;l===i&&(l=t[u]),o?rr(n,u,l):Zn(n,u,l)}return n}function Ii(t,e){return function(n,r){var i=js(n)?_e:er,o=e?e():{};return i(n,t,oo(r,2),o)}}function Ni(t){return zr((function(e,n){var r=-1,o=n.length,s=o>1?n[o-1]:i,a=o>2?n[2]:i;for(s=t.length>3&&"function"==typeof s?(o--,s):i,a&&vo(n[0],n[1],a)&&(s=o<3?i:s,o=1),e=_t(e);++r<o;){var u=n[r];u&&t(e,u,r,s)}return e}))}function Oi(t,e){return function(n,r){if(null==n)return n;if(!Gs(n))return t(n,r);for(var i=n.length,o=e?i:-1,s=_t(n);(e?o--:++o<i)&&!1!==r(s[o],o,s););return n}}function Mi(t){return function(e,n,r){for(var i=-1,o=_t(e),s=r(e),a=s.length;a--;){var u=s[t?a:++i];if(!1===n(o[u],u,o))break}return e}}function Li(t){return function(e){var n=rn(e=va(e))?hn(e):i,r=n?n[0]:e.charAt(0),o=n?yi(n,1).join(""):e.slice(1);return r[t]()+o}}function Bi(t){return function(e){return Be(Ja(Va(e).replace(Jt,"")),t,"")}}function Pi(t){return function(){var e=arguments;switch(e.length){case 0:return new t;case 1:return new t(e[0]);case 2:return new t(e[0],e[1]);case 3:return new t(e[0],e[1],e[2]);case 4:return new t(e[0],e[1],e[2],e[3]);case 5:return new t(e[0],e[1],e[2],e[3],e[4]);case 6:return new t(e[0],e[1],e[2],e[3],e[4],e[5]);case 7:return new t(e[0],e[1],e[2],e[3],e[4],e[5],e[6])}var n=Hn(t.prototype),r=t.apply(n,e);return Zs(r)?r:n}}function Ri(t){return function(e,n,r){var o=_t(e);if(!Gs(e)){var s=oo(n,3);e=Oa(e),n=function(t){return s(o[t],t,o)}}var a=t(e,n,r);return a>-1?o[s?e[a]:a]:i}}function Di(t){return Zi((function(e){var n=e.length,r=n,s=$n.prototype.thru;for(t&&e.reverse();r--;){var a=e[r];if("function"!=typeof a)throw new Tt(o);if(s&&!u&&"wrapper"==ro(a))var u=new $n([],!0)}for(r=u?r:n;++r<n;){var l=ro(a=e[r]),c="wrapper"==l?no(a):i;u=c&&bo(c[0])&&424==c[1]&&!c[4].length&&1==c[9]?u[ro(c[0])].apply(u,c[3]):1==a.length&&bo(a)?u[l]():u.thru(a)}return function(){var t=arguments,r=t[0];if(u&&1==t.length&&js(r))return u.plant(r).value();for(var i=0,o=n?e[i].apply(this,t):r;++i<n;)o=e[i].call(this,o);return o}}))}function Fi(t,e,n,o,s,a,u,c,h,f){var d=e&l,p=1&e,g=2&e,m=24&e,v=512&e,y=g?i:Pi(t);return function l(){for(var b=arguments.length,w=r(b),C=b;C--;)w[C]=arguments[C];if(m)var A=io(l),x=function(t,e){for(var n=t.length,r=0;n--;)t[n]===e&&++r;return r}(w,A);if(o&&(w=_i(w,o,s,m)),a&&(w=Ei(w,a,u,m)),b-=x,m&&b<f){var _=an(w,A);return qi(t,e,Fi,l.placeholder,n,w,_,c,h,f-b)}var E=p?n:this,S=g?E[t]:t;return b=w.length,c?w=function(t,e){for(var n=t.length,r=vn(e.length,n),o=Si(t);r--;){var s=e[r];t[r]=mo(s,n)?o[s]:i}return t}(w,c):v&&b>1&&w.reverse(),d&&h<b&&(w.length=h),this&&this!==he&&this instanceof l&&(S=y||Pi(S)),S.apply(E,w)}}function ki(t,e){return function(n,r){return function(t,e,n,r){return yr(t,(function(t,i,o){e(r,n(t),i,o)})),r}(n,t,e(r),{})}}function Hi(t,e){return function(n,r){var o;if(n===i&&r===i)return e;if(n!==i&&(o=n),r!==i){if(o===i)return r;"string"==typeof n||"string"==typeof r?(n=si(n),r=si(r)):(n=oi(n),r=oi(r)),o=t(n,r)}return o}}function Ui(t){return Zi((function(e){return e=Me(e,Ke(oo())),zr((function(n){var r=this;return t(e,(function(t){return xe(t,r,n)}))}))}))}function $i(t,e){var n=(e=e===i?" ":si(e)).length;if(n<2)return n?Wr(e,t):e;var r=Wr(e,fe(t/cn(e)));return rn(e)?yi(hn(r),0,t).join(""):r.slice(0,t)}function Vi(t){return function(e,n,o){return o&&"number"!=typeof o&&vo(e,n,o)&&(n=o=i),e=fa(e),n===i?(n=e,e=0):n=fa(n),function(t,e,n,i){for(var o=-1,s=mn(fe((e-t)/(n||1)),0),a=r(s);s--;)a[i?s:++o]=t,t+=n;return a}(e,n,o=o===i?e<n?1:-1:fa(o),t)}}function ji(t){return function(e,n){return"string"==typeof e&&"string"==typeof n||(e=ga(e),n=ga(n)),t(e,n)}}function qi(t,e,n,r,o,s,a,l,c,h){var f=8&e;e|=f?u:64,4&(e&=~(f?64:u))||(e&=-4);var d=[t,e,o,f?s:i,f?a:i,f?i:s,f?i:a,l,c,h],p=n.apply(i,d);return bo(t)&&To(p,d),p.placeholder=r,Oo(p,t,e)}function Gi(t){var e=xt[t];return function(t,n){if(t=ga(t),(n=null==n?0:vn(da(n),292))&&De(t)){var r=(va(t)+"e").split("e");return+((r=(va(e(r[0]+"e"+(+r[1]+n)))+"e").split("e"))[0]+"e"+(+r[1]-n))}return e(t)}}var Wi=En&&1/un(new En([,-0]))[1]==c?function(t){return new En(t)}:au;function zi(t){return function(e){var n=ho(e);return n==A?on(e):n==T?ln(e):function(t,e){return Me(e,(function(e){return[e,t[e]]}))}(e,t(e))}}function Yi(t,e,n,s,c,h,f,d){var p=2&e;if(!p&&"function"!=typeof t)throw new Tt(o);var g=s?s.length:0;if(g||(e&=-97,s=c=i),f=f===i?f:mn(da(f),0),d=d===i?d:da(d),g-=c?c.length:0,64&e){var m=s,v=c;s=c=i}var y=p?i:no(t),b=[t,e,n,s,c,m,v,h,f,d];if(y&&function(t,e){var n=t[1],r=e[1],i=n|r,o=i<131,s=r==l&&8==n||r==l&&256==n&&t[7].length<=e[8]||384==r&&e[7].length<=e[8]&&8==n;if(!o&&!s)return t;1&r&&(t[2]=e[2],i|=1&n?0:4);var u=e[3];if(u){var c=t[3];t[3]=c?_i(c,u,e[4]):u,t[4]=c?an(t[3],a):e[4]}(u=e[5])&&(c=t[5],t[5]=c?Ei(c,u,e[6]):u,t[6]=c?an(t[5],a):e[6]),(u=e[7])&&(t[7]=u),r&l&&(t[8]=null==t[8]?e[8]:vn(t[8],e[8])),null==t[9]&&(t[9]=e[9]),t[0]=e[0],t[1]=i}(b,y),t=b[0],e=b[1],n=b[2],s=b[3],c=b[4],!(d=b[9]=b[9]===i?p?0:t.length:mn(b[9]-g,0))&&24&e&&(e&=-25),e&&1!=e)w=8==e||16==e?function(t,e,n){var o=Pi(t);return function s(){for(var a=arguments.length,u=r(a),l=a,c=io(s);l--;)u[l]=arguments[l];var h=a<3&&u[0]!==c&&u[a-1]!==c?[]:an(u,c);return(a-=h.length)<n?qi(t,e,Fi,s.placeholder,i,u,h,i,i,n-a):xe(this&&this!==he&&this instanceof s?o:t,this,u)}}(t,e,d):e!=u&&33!=e||c.length?Fi.apply(i,b):function(t,e,n,i){var o=1&e,s=Pi(t);return function e(){for(var a=-1,u=arguments.length,l=-1,c=i.length,h=r(c+u),f=this&&this!==he&&this instanceof e?s:t;++l<c;)h[l]=i[l];for(;u--;)h[l++]=arguments[++a];return xe(f,o?n:this,h)}}(t,e,n,s);else var w=function(t,e,n){var r=1&e,i=Pi(t);return function e(){return(this&&this!==he&&this instanceof e?i:t).apply(r?n:this,arguments)}}(t,e,n);return Oo((y?Qr:To)(w,b),t,e)}function Ki(t,e,n,r){return t===i||Hs(t,Ot[n])&&!Bt.call(r,n)?e:t}function Ji(t,e,n,r,o,s){return Zs(t)&&Zs(e)&&(s.set(e,t),Hr(t,e,i,Ji,s),s.delete(e)),t}function Qi(t){return ra(t)?i:t}function Xi(t,e,n,r,o,s){var a=1&n,u=t.length,l=e.length;if(u!=l&&!(a&&l>u))return!1;var c=s.get(t),h=s.get(e);if(c&&h)return c==e&&h==t;var f=-1,d=!0,p=2&n?new Wn:i;for(s.set(t,e),s.set(e,t);++f<u;){var g=t[f],m=e[f];if(r)var v=a?r(m,g,f,e,t,s):r(g,m,f,t,e,s);if(v!==i){if(v)continue;d=!1;break}if(p){if(!Re(e,(function(t,e){if(!Qe(p,e)&&(g===t||o(g,t,n,r,s)))return p.push(e)}))){d=!1;break}}else if(g!==m&&!o(g,m,n,r,s)){d=!1;break}}return s.delete(t),s.delete(e),d}function Zi(t){return No(_o(t,i,qo),t+"")}function to(t){return Ar(t,Oa,lo)}function eo(t){return Ar(t,Ma,co)}var no=In?function(t){return In.get(t)}:au;function ro(t){for(var e=t.name+"",n=Nn[e],r=Bt.call(Nn,e)?n.length:0;r--;){var i=n[r],o=i.func;if(null==o||o==t)return i.name}return e}function io(t){return(Bt.call(kn,"placeholder")?kn:t).placeholder}function oo(){var t=kn.iteratee||ru;return t=t===ru?Br:t,arguments.length?t(arguments[0],arguments[1]):t}function so(t,e){var n,r,i=t.__data__;return("string"==(r=typeof(n=e))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?i["string"==typeof e?"string":"hash"]:i.map}function ao(t){for(var e=Oa(t),n=e.length;n--;){var r=e[n],i=t[r];e[n]=[r,i,Ao(i)]}return e}function uo(t,e){var n=function(t,e){return null==t?i:t[e]}(t,e);return Lr(n)?n:i}var lo=ge?function(t){return null==t?[]:(t=_t(t),Ie(ge(t),(function(e){return Wt.call(t,e)})))}:pu,co=ge?function(t){for(var e=[];t;)Le(e,lo(t)),t=qt(t);return e}:pu,ho=xr;function fo(t,e,n){for(var r=-1,i=(e=mi(e,t)).length,o=!1;++r<i;){var s=Do(e[r]);if(!(o=null!=t&&n(t,s)))break;t=t[s]}return o||++r!=i?o:!!(i=null==t?0:t.length)&&Xs(i)&&mo(s,i)&&(js(t)||Vs(t))}function po(t){return"function"!=typeof t.constructor||Co(t)?{}:Hn(qt(t))}function go(t){return js(t)||Vs(t)||!!(Yt&&t&&t[Yt])}function mo(t,e){var n=typeof t;return!!(e=null==e?h:e)&&("number"==n||"symbol"!=n&&vt.test(t))&&t>-1&&t%1==0&&t<e}function vo(t,e,n){if(!Zs(n))return!1;var r=typeof e;return!!("number"==r?Gs(n)&&mo(e,n.length):"string"==r&&e in n)&&Hs(n[e],t)}function yo(t,e){if(js(t))return!1;var n=typeof t;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=t&&!aa(t))||Z.test(t)||!X.test(t)||null!=e&&t in _t(e)}function bo(t){var e=ro(t),n=kn[e];if("function"!=typeof n||!(e in Vn.prototype))return!1;if(t===n)return!0;var r=no(n);return!!r&&t===r[0]}(An&&ho(new An(new ArrayBuffer(1)))!=L||xn&&ho(new xn)!=A||_n&&ho(_n.resolve())!=E||En&&ho(new En)!=T||Sn&&ho(new Sn)!=O)&&(ho=function(t){var e=xr(t),n=e==_?t.constructor:i,r=n?Fo(n):"";if(r)switch(r){case On:return L;case Mn:return A;case Ln:return E;case Bn:return T;case Pn:return O}return e});var wo=Mt?Js:gu;function Co(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||Ot)}function Ao(t){return t==t&&!Zs(t)}function xo(t,e){return function(n){return null!=n&&n[t]===e&&(e!==i||t in _t(n))}}function _o(t,e,n){return e=mn(e===i?t.length-1:e,0),function(){for(var i=arguments,o=-1,s=mn(i.length-e,0),a=r(s);++o<s;)a[o]=i[e+o];o=-1;for(var u=r(e+1);++o<e;)u[o]=i[o];return u[e]=n(a),xe(t,this,u)}}function Eo(t,e){return e.length<2?t:Cr(t,ti(e,0,-1))}function So(t,e){if(("constructor"!==e||"function"!=typeof t[e])&&"__proto__"!=e)return t[e]}var To=Mo(Qr),Io=ce||function(t,e){return he.setTimeout(t,e)},No=Mo(Xr);function Oo(t,e,n){var r=e+"";return No(t,function(t,e){var n=e.length;if(!n)return t;var r=n-1;return e[r]=(n>1?"& ":"")+e[r],e=e.join(n>2?", ":" "),t.replace(ot,"{\n/* [wrapped with "+e+"] */\n")}(r,function(t,e){return Ee(p,(function(n){var r="_."+n[0];e&n[1]&&!Ne(t,r)&&t.push(r)})),t.sort()}(function(t){var e=t.match(st);return e?e[1].split(at):[]}(r),n)))}function Mo(t){var e=0,n=0;return function(){var r=yn(),o=16-(r-n);if(n=r,o>0){if(++e>=800)return arguments[0]}else e=0;return t.apply(i,arguments)}}function Lo(t,e){var n=-1,r=t.length,o=r-1;for(e=e===i?r:e;++n<e;){var s=Gr(n,o),a=t[s];t[s]=t[n],t[n]=a}return t.length=e,t}var Bo,Po,Ro=(Bo=Bs((function(t){var e=[];return 46===t.charCodeAt(0)&&e.push(""),t.replace(tt,(function(t,n,r,i){e.push(r?i.replace(ct,"$1"):n||t)})),e}),(function(t){return 500===Po.size&&Po.clear(),t})),Po=Bo.cache,Bo);function Do(t){if("string"==typeof t||aa(t))return t;var e=t+"";return"0"==e&&1/t==-1/0?"-0":e}function Fo(t){if(null!=t){try{return Lt.call(t)}catch(t){}try{return t+""}catch(t){}}return""}function ko(t){if(t instanceof Vn)return t.clone();var e=new $n(t.__wrapped__,t.__chain__);return e.__actions__=Si(t.__actions__),e.__index__=t.__index__,e.__values__=t.__values__,e}var Ho=zr((function(t,e){return Ws(t)?lr(t,gr(e,1,Ws,!0)):[]})),Uo=zr((function(t,e){var n=Ko(e);return Ws(n)&&(n=i),Ws(t)?lr(t,gr(e,1,Ws,!0),oo(n,2)):[]})),$o=zr((function(t,e){var n=Ko(e);return Ws(n)&&(n=i),Ws(t)?lr(t,gr(e,1,Ws,!0),i,n):[]}));function Vo(t,e,n){var r=null==t?0:t.length;if(!r)return-1;var i=null==n?0:da(n);return i<0&&(i=mn(r+i,0)),ke(t,oo(e,3),i)}function jo(t,e,n){var r=null==t?0:t.length;if(!r)return-1;var o=r-1;return n!==i&&(o=da(n),o=n<0?mn(r+o,0):vn(o,r-1)),ke(t,oo(e,3),o,!0)}function qo(t){return null!=t&&t.length?gr(t,1):[]}function Go(t){return t&&t.length?t[0]:i}var Wo=zr((function(t){var e=Me(t,pi);return e.length&&e[0]===t[0]?Tr(e):[]})),zo=zr((function(t){var e=Ko(t),n=Me(t,pi);return e===Ko(n)?e=i:n.pop(),n.length&&n[0]===t[0]?Tr(n,oo(e,2)):[]})),Yo=zr((function(t){var e=Ko(t),n=Me(t,pi);return(e="function"==typeof e?e:i)&&n.pop(),n.length&&n[0]===t[0]?Tr(n,i,e):[]}));function Ko(t){var e=null==t?0:t.length;return e?t[e-1]:i}var Jo=zr(Qo);function Qo(t,e){return t&&t.length&&e&&e.length?jr(t,e):t}var Xo=Zi((function(t,e){var n=null==t?0:t.length,r=ir(t,e);return qr(t,Me(e,(function(t){return mo(t,n)?+t:t})).sort(xi)),r}));function Zo(t){return null==t?t:Cn.call(t)}var ts=zr((function(t){return ai(gr(t,1,Ws,!0))})),es=zr((function(t){var e=Ko(t);return Ws(e)&&(e=i),ai(gr(t,1,Ws,!0),oo(e,2))})),ns=zr((function(t){var e=Ko(t);return e="function"==typeof e?e:i,ai(gr(t,1,Ws,!0),i,e)}));function rs(t){if(!t||!t.length)return[];var e=0;return t=Ie(t,(function(t){if(Ws(t))return e=mn(t.length,e),!0})),ze(e,(function(e){return Me(t,je(e))}))}function is(t,e){if(!t||!t.length)return[];var n=rs(t);return null==e?n:Me(n,(function(t){return xe(e,i,t)}))}var os=zr((function(t,e){return Ws(t)?lr(t,e):[]})),ss=zr((function(t){return fi(Ie(t,Ws))})),as=zr((function(t){var e=Ko(t);return Ws(e)&&(e=i),fi(Ie(t,Ws),oo(e,2))})),us=zr((function(t){var e=Ko(t);return e="function"==typeof e?e:i,fi(Ie(t,Ws),i,e)})),ls=zr(rs),cs=zr((function(t){var e=t.length,n=e>1?t[e-1]:i;return n="function"==typeof n?(t.pop(),n):i,is(t,n)}));function hs(t){var e=kn(t);return e.__chain__=!0,e}function fs(t,e){return e(t)}var ds=Zi((function(t){var e=t.length,n=e?t[0]:0,r=this.__wrapped__,o=function(e){return ir(e,t)};return!(e>1||this.__actions__.length)&&r instanceof Vn&&mo(n)?((r=r.slice(n,+n+(e?1:0))).__actions__.push({func:fs,args:[o],thisArg:i}),new $n(r,this.__chain__).thru((function(t){return e&&!t.length&&t.push(i),t}))):this.thru(o)})),ps=Ii((function(t,e,n){Bt.call(t,n)?++t[n]:rr(t,n,1)})),gs=Ri(Vo),ms=Ri(jo);function vs(t,e){return(js(t)?Ee:cr)(t,oo(e,3))}function ys(t,e){return(js(t)?Se:hr)(t,oo(e,3))}var bs=Ii((function(t,e,n){Bt.call(t,n)?t[n].push(e):rr(t,n,[e])})),ws=zr((function(t,e,n){var i=-1,o="function"==typeof e,s=Gs(t)?r(t.length):[];return cr(t,(function(t){s[++i]=o?xe(e,t,n):Ir(t,e,n)})),s})),Cs=Ii((function(t,e,n){rr(t,n,e)}));function As(t,e){return(js(t)?Me:Dr)(t,oo(e,3))}var xs=Ii((function(t,e,n){t[n?0:1].push(e)}),(function(){return[[],[]]})),_s=zr((function(t,e){if(null==t)return[];var n=e.length;return n>1&&vo(t,e[0],e[1])?e=[]:n>2&&vo(e[0],e[1],e[2])&&(e=[e[0]]),$r(t,gr(e,1),[])})),Es=le||function(){return he.Date.now()};function Ss(t,e,n){return e=n?i:e,e=t&&null==e?t.length:e,Yi(t,l,i,i,i,i,e)}function Ts(t,e){var n;if("function"!=typeof e)throw new Tt(o);return t=da(t),function(){return--t>0&&(n=e.apply(this,arguments)),t<=1&&(e=i),n}}var Is=zr((function(t,e,n){var r=1;if(n.length){var i=an(n,io(Is));r|=u}return Yi(t,r,e,n,i)})),Ns=zr((function(t,e,n){var r=3;if(n.length){var i=an(n,io(Ns));r|=u}return Yi(e,r,t,n,i)}));function Os(t,e,n){var r,s,a,u,l,c,h=0,f=!1,d=!1,p=!0;if("function"!=typeof t)throw new Tt(o);function g(e){var n=r,o=s;return r=s=i,h=e,u=t.apply(o,n)}function m(t){var n=t-c;return c===i||n>=e||n<0||d&&t-h>=a}function v(){var t=Es();if(m(t))return y(t);l=Io(v,function(t){var n=e-(t-c);return d?vn(n,a-(t-h)):n}(t))}function y(t){return l=i,p&&r?g(t):(r=s=i,u)}function b(){var t=Es(),n=m(t);if(r=arguments,s=this,c=t,n){if(l===i)return function(t){return h=t,l=Io(v,e),f?g(t):u}(c);if(d)return bi(l),l=Io(v,e),g(c)}return l===i&&(l=Io(v,e)),u}return e=ga(e)||0,Zs(n)&&(f=!!n.leading,a=(d="maxWait"in n)?mn(ga(n.maxWait)||0,e):a,p="trailing"in n?!!n.trailing:p),b.cancel=function(){l!==i&&bi(l),h=0,r=c=s=l=i},b.flush=function(){return l===i?u:y(Es())},b}var Ms=zr((function(t,e){return ur(t,1,e)})),Ls=zr((function(t,e,n){return ur(t,ga(e)||0,n)}));function Bs(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new Tt(o);var n=function(){var r=arguments,i=e?e.apply(this,r):r[0],o=n.cache;if(o.has(i))return o.get(i);var s=t.apply(this,r);return n.cache=o.set(i,s)||o,s};return n.cache=new(Bs.Cache||Gn),n}function Ps(t){if("function"!=typeof t)throw new Tt(o);return function(){var e=arguments;switch(e.length){case 0:return!t.call(this);case 1:return!t.call(this,e[0]);case 2:return!t.call(this,e[0],e[1]);case 3:return!t.call(this,e[0],e[1],e[2])}return!t.apply(this,e)}}Bs.Cache=Gn;var Rs=vi((function(t,e){var n=(e=1==e.length&&js(e[0])?Me(e[0],Ke(oo())):Me(gr(e,1),Ke(oo()))).length;return zr((function(r){for(var i=-1,o=vn(r.length,n);++i<o;)r[i]=e[i].call(this,r[i]);return xe(t,this,r)}))})),Ds=zr((function(t,e){var n=an(e,io(Ds));return Yi(t,u,i,e,n)})),Fs=zr((function(t,e){var n=an(e,io(Fs));return Yi(t,64,i,e,n)})),ks=Zi((function(t,e){return Yi(t,256,i,i,i,e)}));function Hs(t,e){return t===e||t!=t&&e!=e}var Us=ji(_r),$s=ji((function(t,e){return t>=e})),Vs=Nr(function(){return arguments}())?Nr:function(t){return ta(t)&&Bt.call(t,"callee")&&!Wt.call(t,"callee")},js=r.isArray,qs=ve?Ke(ve):function(t){return ta(t)&&xr(t)==M};function Gs(t){return null!=t&&Xs(t.length)&&!Js(t)}function Ws(t){return ta(t)&&Gs(t)}var zs=me||gu,Ys=ye?Ke(ye):function(t){return ta(t)&&xr(t)==y};function Ks(t){if(!ta(t))return!1;var e=xr(t);return e==b||"[object DOMException]"==e||"string"==typeof t.message&&"string"==typeof t.name&&!ra(t)}function Js(t){if(!Zs(t))return!1;var e=xr(t);return e==w||e==C||"[object AsyncFunction]"==e||"[object Proxy]"==e}function Qs(t){return"number"==typeof t&&t==da(t)}function Xs(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=h}function Zs(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}function ta(t){return null!=t&&"object"==typeof t}var ea=be?Ke(be):function(t){return ta(t)&&ho(t)==A};function na(t){return"number"==typeof t||ta(t)&&xr(t)==x}function ra(t){if(!ta(t)||xr(t)!=_)return!1;var e=qt(t);if(null===e)return!0;var n=Bt.call(e,"constructor")&&e.constructor;return"function"==typeof n&&n instanceof n&&Lt.call(n)==Ft}var ia=we?Ke(we):function(t){return ta(t)&&xr(t)==S},oa=Ce?Ke(Ce):function(t){return ta(t)&&ho(t)==T};function sa(t){return"string"==typeof t||!js(t)&&ta(t)&&xr(t)==I}function aa(t){return"symbol"==typeof t||ta(t)&&xr(t)==N}var ua=Ae?Ke(Ae):function(t){return ta(t)&&Xs(t.length)&&!!ie[xr(t)]},la=ji(Rr),ca=ji((function(t,e){return t<=e}));function ha(t){if(!t)return[];if(Gs(t))return sa(t)?hn(t):Si(t);if(Kt&&t[Kt])return function(t){for(var e,n=[];!(e=t.next()).done;)n.push(e.value);return n}(t[Kt]());var e=ho(t);return(e==A?on:e==T?un:Ha)(t)}function fa(t){return t?(t=ga(t))===c||t===-1/0?17976931348623157e292*(t<0?-1:1):t==t?t:0:0===t?t:0}function da(t){var e=fa(t),n=e%1;return e==e?n?e-n:e:0}function pa(t){return t?or(da(t),0,d):0}function ga(t){if("number"==typeof t)return t;if(aa(t))return f;if(Zs(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=Zs(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=Ye(t);var n=pt.test(t);return n||mt.test(t)?ue(t.slice(2),n?2:8):dt.test(t)?f:+t}function ma(t){return Ti(t,Ma(t))}function va(t){return null==t?"":si(t)}var ya=Ni((function(t,e){if(Co(e)||Gs(e))Ti(e,Oa(e),t);else for(var n in e)Bt.call(e,n)&&Zn(t,n,e[n])})),ba=Ni((function(t,e){Ti(e,Ma(e),t)})),wa=Ni((function(t,e,n,r){Ti(e,Ma(e),t,r)})),Ca=Ni((function(t,e,n,r){Ti(e,Oa(e),t,r)})),Aa=Zi(ir),xa=zr((function(t,e){t=_t(t);var n=-1,r=e.length,o=r>2?e[2]:i;for(o&&vo(e[0],e[1],o)&&(r=1);++n<r;)for(var s=e[n],a=Ma(s),u=-1,l=a.length;++u<l;){var c=a[u],h=t[c];(h===i||Hs(h,Ot[c])&&!Bt.call(t,c))&&(t[c]=s[c])}return t})),_a=zr((function(t){return t.push(i,Ji),xe(Ba,i,t)}));function Ea(t,e,n){var r=null==t?i:Cr(t,e);return r===i?n:r}function Sa(t,e){return null!=t&&fo(t,e,Sr)}var Ta=ki((function(t,e,n){null!=e&&"function"!=typeof e.toString&&(e=Dt.call(e)),t[e]=n}),Za(nu)),Ia=ki((function(t,e,n){null!=e&&"function"!=typeof e.toString&&(e=Dt.call(e)),Bt.call(t,e)?t[e].push(n):t[e]=[n]}),oo),Na=zr(Ir);function Oa(t){return Gs(t)?Yn(t):Pr(t)}function Ma(t){return Gs(t)?Yn(t,!0):function(t){if(!Zs(t))return function(t){var e=[];if(null!=t)for(var n in _t(t))e.push(n);return e}(t);var e=Co(t),n=[];for(var r in t)("constructor"!=r||!e&&Bt.call(t,r))&&n.push(r);return n}(t)}var La=Ni((function(t,e,n){Hr(t,e,n)})),Ba=Ni((function(t,e,n,r){Hr(t,e,n,r)})),Pa=Zi((function(t,e){var n={};if(null==t)return n;var r=!1;e=Me(e,(function(e){return e=mi(e,t),r||(r=e.length>1),e})),Ti(t,eo(t),n),r&&(n=sr(n,7,Qi));for(var i=e.length;i--;)ui(n,e[i]);return n})),Ra=Zi((function(t,e){return null==t?{}:function(t,e){return Vr(t,e,(function(e,n){return Sa(t,n)}))}(t,e)}));function Da(t,e){if(null==t)return{};var n=Me(eo(t),(function(t){return[t]}));return e=oo(e),Vr(t,n,(function(t,n){return e(t,n[0])}))}var Fa=zi(Oa),ka=zi(Ma);function Ha(t){return null==t?[]:Je(t,Oa(t))}var Ua=Bi((function(t,e,n){return e=e.toLowerCase(),t+(n?$a(e):e)}));function $a(t){return Ka(va(t).toLowerCase())}function Va(t){return(t=va(t))&&t.replace(yt,tn).replace(Qt,"")}var ja=Bi((function(t,e,n){return t+(n?"-":"")+e.toLowerCase()})),qa=Bi((function(t,e,n){return t+(n?" ":"")+e.toLowerCase()})),Ga=Li("toLowerCase"),Wa=Bi((function(t,e,n){return t+(n?"_":"")+e.toLowerCase()})),za=Bi((function(t,e,n){return t+(n?" ":"")+Ka(e)})),Ya=Bi((function(t,e,n){return t+(n?" ":"")+e.toUpperCase()})),Ka=Li("toUpperCase");function Ja(t,e,n){return t=va(t),(e=n?i:e)===i?function(t){return ee.test(t)}(t)?function(t){return t.match(Zt)||[]}(t):function(t){return t.match(ut)||[]}(t):t.match(e)||[]}var Qa=zr((function(t,e){try{return xe(t,i,e)}catch(t){return Ks(t)?t:new Ct(t)}})),Xa=Zi((function(t,e){return Ee(e,(function(e){e=Do(e),rr(t,e,Is(t[e],t))})),t}));function Za(t){return function(){return t}}var tu=Di(),eu=Di(!0);function nu(t){return t}function ru(t){return Br("function"==typeof t?t:sr(t,1))}var iu=zr((function(t,e){return function(n){return Ir(n,t,e)}})),ou=zr((function(t,e){return function(n){return Ir(t,n,e)}}));function su(t,e,n){var r=Oa(e),i=wr(e,r);null!=n||Zs(e)&&(i.length||!r.length)||(n=e,e=t,t=this,i=wr(e,Oa(e)));var o=!(Zs(n)&&"chain"in n&&!n.chain),s=Js(t);return Ee(i,(function(n){var r=e[n];t[n]=r,s&&(t.prototype[n]=function(){var e=this.__chain__;if(o||e){var n=t(this.__wrapped__);return(n.__actions__=Si(this.__actions__)).push({func:r,args:arguments,thisArg:t}),n.__chain__=e,n}return r.apply(t,Le([this.value()],arguments))})})),t}function au(){}var uu=Ui(Me),lu=Ui(Te),cu=Ui(Re);function hu(t){return yo(t)?je(Do(t)):function(t){return function(e){return Cr(e,t)}}(t)}var fu=Vi(),du=Vi(!0);function pu(){return[]}function gu(){return!1}var mu,vu=Hi((function(t,e){return t+e}),0),yu=Gi("ceil"),bu=Hi((function(t,e){return t/e}),1),wu=Gi("floor"),Cu=Hi((function(t,e){return t*e}),1),Au=Gi("round"),xu=Hi((function(t,e){return t-e}),0);return kn.after=function(t,e){if("function"!=typeof e)throw new Tt(o);return t=da(t),function(){if(--t<1)return e.apply(this,arguments)}},kn.ary=Ss,kn.assign=ya,kn.assignIn=ba,kn.assignInWith=wa,kn.assignWith=Ca,kn.at=Aa,kn.before=Ts,kn.bind=Is,kn.bindAll=Xa,kn.bindKey=Ns,kn.castArray=function(){if(!arguments.length)return[];var t=arguments[0];return js(t)?t:[t]},kn.chain=hs,kn.chunk=function(t,e,n){e=(n?vo(t,e,n):e===i)?1:mn(da(e),0);var o=null==t?0:t.length;if(!o||e<1)return[];for(var s=0,a=0,u=r(fe(o/e));s<o;)u[a++]=ti(t,s,s+=e);return u},kn.compact=function(t){for(var e=-1,n=null==t?0:t.length,r=0,i=[];++e<n;){var o=t[e];o&&(i[r++]=o)}return i},kn.concat=function(){var t=arguments.length;if(!t)return[];for(var e=r(t-1),n=arguments[0],i=t;i--;)e[i-1]=arguments[i];return Le(js(n)?Si(n):[n],gr(e,1))},kn.cond=function(t){var e=null==t?0:t.length,n=oo();return t=e?Me(t,(function(t){if("function"!=typeof t[1])throw new Tt(o);return[n(t[0]),t[1]]})):[],zr((function(n){for(var r=-1;++r<e;){var i=t[r];if(xe(i[0],this,n))return xe(i[1],this,n)}}))},kn.conforms=function(t){return function(t){var e=Oa(t);return function(n){return ar(n,t,e)}}(sr(t,1))},kn.constant=Za,kn.countBy=ps,kn.create=function(t,e){var n=Hn(t);return null==e?n:nr(n,e)},kn.curry=function t(e,n,r){var o=Yi(e,8,i,i,i,i,i,n=r?i:n);return o.placeholder=t.placeholder,o},kn.curryRight=function t(e,n,r){var o=Yi(e,16,i,i,i,i,i,n=r?i:n);return o.placeholder=t.placeholder,o},kn.debounce=Os,kn.defaults=xa,kn.defaultsDeep=_a,kn.defer=Ms,kn.delay=Ls,kn.difference=Ho,kn.differenceBy=Uo,kn.differenceWith=$o,kn.drop=function(t,e,n){var r=null==t?0:t.length;return r?ti(t,(e=n||e===i?1:da(e))<0?0:e,r):[]},kn.dropRight=function(t,e,n){var r=null==t?0:t.length;return r?ti(t,0,(e=r-(e=n||e===i?1:da(e)))<0?0:e):[]},kn.dropRightWhile=function(t,e){return t&&t.length?ci(t,oo(e,3),!0,!0):[]},kn.dropWhile=function(t,e){return t&&t.length?ci(t,oo(e,3),!0):[]},kn.fill=function(t,e,n,r){var o=null==t?0:t.length;return o?(n&&"number"!=typeof n&&vo(t,e,n)&&(n=0,r=o),function(t,e,n,r){var o=t.length;for((n=da(n))<0&&(n=-n>o?0:o+n),(r=r===i||r>o?o:da(r))<0&&(r+=o),r=n>r?0:pa(r);n<r;)t[n++]=e;return t}(t,e,n,r)):[]},kn.filter=function(t,e){return(js(t)?Ie:pr)(t,oo(e,3))},kn.flatMap=function(t,e){return gr(As(t,e),1)},kn.flatMapDeep=function(t,e){return gr(As(t,e),c)},kn.flatMapDepth=function(t,e,n){return n=n===i?1:da(n),gr(As(t,e),n)},kn.flatten=qo,kn.flattenDeep=function(t){return null!=t&&t.length?gr(t,c):[]},kn.flattenDepth=function(t,e){return null!=t&&t.length?gr(t,e=e===i?1:da(e)):[]},kn.flip=function(t){return Yi(t,512)},kn.flow=tu,kn.flowRight=eu,kn.fromPairs=function(t){for(var e=-1,n=null==t?0:t.length,r={};++e<n;){var i=t[e];r[i[0]]=i[1]}return r},kn.functions=function(t){return null==t?[]:wr(t,Oa(t))},kn.functionsIn=function(t){return null==t?[]:wr(t,Ma(t))},kn.groupBy=bs,kn.initial=function(t){return null!=t&&t.length?ti(t,0,-1):[]},kn.intersection=Wo,kn.intersectionBy=zo,kn.intersectionWith=Yo,kn.invert=Ta,kn.invertBy=Ia,kn.invokeMap=ws,kn.iteratee=ru,kn.keyBy=Cs,kn.keys=Oa,kn.keysIn=Ma,kn.map=As,kn.mapKeys=function(t,e){var n={};return e=oo(e,3),yr(t,(function(t,r,i){rr(n,e(t,r,i),t)})),n},kn.mapValues=function(t,e){var n={};return e=oo(e,3),yr(t,(function(t,r,i){rr(n,r,e(t,r,i))})),n},kn.matches=function(t){return Fr(sr(t,1))},kn.matchesProperty=function(t,e){return kr(t,sr(e,1))},kn.memoize=Bs,kn.merge=La,kn.mergeWith=Ba,kn.method=iu,kn.methodOf=ou,kn.mixin=su,kn.negate=Ps,kn.nthArg=function(t){return t=da(t),zr((function(e){return Ur(e,t)}))},kn.omit=Pa,kn.omitBy=function(t,e){return Da(t,Ps(oo(e)))},kn.once=function(t){return Ts(2,t)},kn.orderBy=function(t,e,n,r){return null==t?[]:(js(e)||(e=null==e?[]:[e]),js(n=r?i:n)||(n=null==n?[]:[n]),$r(t,e,n))},kn.over=uu,kn.overArgs=Rs,kn.overEvery=lu,kn.overSome=cu,kn.partial=Ds,kn.partialRight=Fs,kn.partition=xs,kn.pick=Ra,kn.pickBy=Da,kn.property=hu,kn.propertyOf=function(t){return function(e){return null==t?i:Cr(t,e)}},kn.pull=Jo,kn.pullAll=Qo,kn.pullAllBy=function(t,e,n){return t&&t.length&&e&&e.length?jr(t,e,oo(n,2)):t},kn.pullAllWith=function(t,e,n){return t&&t.length&&e&&e.length?jr(t,e,i,n):t},kn.pullAt=Xo,kn.range=fu,kn.rangeRight=du,kn.rearg=ks,kn.reject=function(t,e){return(js(t)?Ie:pr)(t,Ps(oo(e,3)))},kn.remove=function(t,e){var n=[];if(!t||!t.length)return n;var r=-1,i=[],o=t.length;for(e=oo(e,3);++r<o;){var s=t[r];e(s,r,t)&&(n.push(s),i.push(r))}return qr(t,i),n},kn.rest=function(t,e){if("function"!=typeof t)throw new Tt(o);return zr(t,e=e===i?e:da(e))},kn.reverse=Zo,kn.sampleSize=function(t,e,n){return e=(n?vo(t,e,n):e===i)?1:da(e),(js(t)?Jn:Kr)(t,e)},kn.set=function(t,e,n){return null==t?t:Jr(t,e,n)},kn.setWith=function(t,e,n,r){return r="function"==typeof r?r:i,null==t?t:Jr(t,e,n,r)},kn.shuffle=function(t){return(js(t)?Qn:Zr)(t)},kn.slice=function(t,e,n){var r=null==t?0:t.length;return r?(n&&"number"!=typeof n&&vo(t,e,n)?(e=0,n=r):(e=null==e?0:da(e),n=n===i?r:da(n)),ti(t,e,n)):[]},kn.sortBy=_s,kn.sortedUniq=function(t){return t&&t.length?ii(t):[]},kn.sortedUniqBy=function(t,e){return t&&t.length?ii(t,oo(e,2)):[]},kn.split=function(t,e,n){return n&&"number"!=typeof n&&vo(t,e,n)&&(e=n=i),(n=n===i?d:n>>>0)?(t=va(t))&&("string"==typeof e||null!=e&&!ia(e))&&!(e=si(e))&&rn(t)?yi(hn(t),0,n):t.split(e,n):[]},kn.spread=function(t,e){if("function"!=typeof t)throw new Tt(o);return e=null==e?0:mn(da(e),0),zr((function(n){var r=n[e],i=yi(n,0,e);return r&&Le(i,r),xe(t,this,i)}))},kn.tail=function(t){var e=null==t?0:t.length;return e?ti(t,1,e):[]},kn.take=function(t,e,n){return t&&t.length?ti(t,0,(e=n||e===i?1:da(e))<0?0:e):[]},kn.takeRight=function(t,e,n){var r=null==t?0:t.length;return r?ti(t,(e=r-(e=n||e===i?1:da(e)))<0?0:e,r):[]},kn.takeRightWhile=function(t,e){return t&&t.length?ci(t,oo(e,3),!1,!0):[]},kn.takeWhile=function(t,e){return t&&t.length?ci(t,oo(e,3)):[]},kn.tap=function(t,e){return e(t),t},kn.throttle=function(t,e,n){var r=!0,i=!0;if("function"!=typeof t)throw new Tt(o);return Zs(n)&&(r="leading"in n?!!n.leading:r,i="trailing"in n?!!n.trailing:i),Os(t,e,{leading:r,maxWait:e,trailing:i})},kn.thru=fs,kn.toArray=ha,kn.toPairs=Fa,kn.toPairsIn=ka,kn.toPath=function(t){return js(t)?Me(t,Do):aa(t)?[t]:Si(Ro(va(t)))},kn.toPlainObject=ma,kn.transform=function(t,e,n){var r=js(t),i=r||zs(t)||ua(t);if(e=oo(e,4),null==n){var o=t&&t.constructor;n=i?r?new o:[]:Zs(t)&&Js(o)?Hn(qt(t)):{}}return(i?Ee:yr)(t,(function(t,r,i){return e(n,t,r,i)})),n},kn.unary=function(t){return Ss(t,1)},kn.union=ts,kn.unionBy=es,kn.unionWith=ns,kn.uniq=function(t){return t&&t.length?ai(t):[]},kn.uniqBy=function(t,e){return t&&t.length?ai(t,oo(e,2)):[]},kn.uniqWith=function(t,e){return e="function"==typeof e?e:i,t&&t.length?ai(t,i,e):[]},kn.unset=function(t,e){return null==t||ui(t,e)},kn.unzip=rs,kn.unzipWith=is,kn.update=function(t,e,n){return null==t?t:li(t,e,gi(n))},kn.updateWith=function(t,e,n,r){return r="function"==typeof r?r:i,null==t?t:li(t,e,gi(n),r)},kn.values=Ha,kn.valuesIn=function(t){return null==t?[]:Je(t,Ma(t))},kn.without=os,kn.words=Ja,kn.wrap=function(t,e){return Ds(gi(e),t)},kn.xor=ss,kn.xorBy=as,kn.xorWith=us,kn.zip=ls,kn.zipObject=function(t,e){return di(t||[],e||[],Zn)},kn.zipObjectDeep=function(t,e){return di(t||[],e||[],Jr)},kn.zipWith=cs,kn.entries=Fa,kn.entriesIn=ka,kn.extend=ba,kn.extendWith=wa,su(kn,kn),kn.add=vu,kn.attempt=Qa,kn.camelCase=Ua,kn.capitalize=$a,kn.ceil=yu,kn.clamp=function(t,e,n){return n===i&&(n=e,e=i),n!==i&&(n=(n=ga(n))==n?n:0),e!==i&&(e=(e=ga(e))==e?e:0),or(ga(t),e,n)},kn.clone=function(t){return sr(t,4)},kn.cloneDeep=function(t){return sr(t,5)},kn.cloneDeepWith=function(t,e){return sr(t,5,e="function"==typeof e?e:i)},kn.cloneWith=function(t,e){return sr(t,4,e="function"==typeof e?e:i)},kn.conformsTo=function(t,e){return null==e||ar(t,e,Oa(e))},kn.deburr=Va,kn.defaultTo=function(t,e){return null==t||t!=t?e:t},kn.divide=bu,kn.endsWith=function(t,e,n){t=va(t),e=si(e);var r=t.length,o=n=n===i?r:or(da(n),0,r);return(n-=e.length)>=0&&t.slice(n,o)==e},kn.eq=Hs,kn.escape=function(t){return(t=va(t))&&Y.test(t)?t.replace(W,en):t},kn.escapeRegExp=function(t){return(t=va(t))&&nt.test(t)?t.replace(et,"\\$&"):t},kn.every=function(t,e,n){var r=js(t)?Te:fr;return n&&vo(t,e,n)&&(e=i),r(t,oo(e,3))},kn.find=gs,kn.findIndex=Vo,kn.findKey=function(t,e){return Fe(t,oo(e,3),yr)},kn.findLast=ms,kn.findLastIndex=jo,kn.findLastKey=function(t,e){return Fe(t,oo(e,3),br)},kn.floor=wu,kn.forEach=vs,kn.forEachRight=ys,kn.forIn=function(t,e){return null==t?t:mr(t,oo(e,3),Ma)},kn.forInRight=function(t,e){return null==t?t:vr(t,oo(e,3),Ma)},kn.forOwn=function(t,e){return t&&yr(t,oo(e,3))},kn.forOwnRight=function(t,e){return t&&br(t,oo(e,3))},kn.get=Ea,kn.gt=Us,kn.gte=$s,kn.has=function(t,e){return null!=t&&fo(t,e,Er)},kn.hasIn=Sa,kn.head=Go,kn.identity=nu,kn.includes=function(t,e,n,r){t=Gs(t)?t:Ha(t),n=n&&!r?da(n):0;var i=t.length;return n<0&&(n=mn(i+n,0)),sa(t)?n<=i&&t.indexOf(e,n)>-1:!!i&&He(t,e,n)>-1},kn.indexOf=function(t,e,n){var r=null==t?0:t.length;if(!r)return-1;var i=null==n?0:da(n);return i<0&&(i=mn(r+i,0)),He(t,e,i)},kn.inRange=function(t,e,n){return e=fa(e),n===i?(n=e,e=0):n=fa(n),function(t,e,n){return t>=vn(e,n)&&t<mn(e,n)}(t=ga(t),e,n)},kn.invoke=Na,kn.isArguments=Vs,kn.isArray=js,kn.isArrayBuffer=qs,kn.isArrayLike=Gs,kn.isArrayLikeObject=Ws,kn.isBoolean=function(t){return!0===t||!1===t||ta(t)&&xr(t)==v},kn.isBuffer=zs,kn.isDate=Ys,kn.isElement=function(t){return ta(t)&&1===t.nodeType&&!ra(t)},kn.isEmpty=function(t){if(null==t)return!0;if(Gs(t)&&(js(t)||"string"==typeof t||"function"==typeof t.splice||zs(t)||ua(t)||Vs(t)))return!t.length;var e=ho(t);if(e==A||e==T)return!t.size;if(Co(t))return!Pr(t).length;for(var n in t)if(Bt.call(t,n))return!1;return!0},kn.isEqual=function(t,e){return Or(t,e)},kn.isEqualWith=function(t,e,n){var r=(n="function"==typeof n?n:i)?n(t,e):i;return r===i?Or(t,e,i,n):!!r},kn.isError=Ks,kn.isFinite=function(t){return"number"==typeof t&&De(t)},kn.isFunction=Js,kn.isInteger=Qs,kn.isLength=Xs,kn.isMap=ea,kn.isMatch=function(t,e){return t===e||Mr(t,e,ao(e))},kn.isMatchWith=function(t,e,n){return n="function"==typeof n?n:i,Mr(t,e,ao(e),n)},kn.isNaN=function(t){return na(t)&&t!=+t},kn.isNative=function(t){if(wo(t))throw new Ct("Unsupported core-js use. Try https://npms.io/search?q=ponyfill.");return Lr(t)},kn.isNil=function(t){return null==t},kn.isNull=function(t){return null===t},kn.isNumber=na,kn.isObject=Zs,kn.isObjectLike=ta,kn.isPlainObject=ra,kn.isRegExp=ia,kn.isSafeInteger=function(t){return Qs(t)&&t>=-9007199254740991&&t<=h},kn.isSet=oa,kn.isString=sa,kn.isSymbol=aa,kn.isTypedArray=ua,kn.isUndefined=function(t){return t===i},kn.isWeakMap=function(t){return ta(t)&&ho(t)==O},kn.isWeakSet=function(t){return ta(t)&&"[object WeakSet]"==xr(t)},kn.join=function(t,e){return null==t?"":qe.call(t,e)},kn.kebabCase=ja,kn.last=Ko,kn.lastIndexOf=function(t,e,n){var r=null==t?0:t.length;if(!r)return-1;var o=r;return n!==i&&(o=(o=da(n))<0?mn(r+o,0):vn(o,r-1)),e==e?function(t,e,n){for(var r=n+1;r--;)if(t[r]===e)return r;return r}(t,e,o):ke(t,$e,o,!0)},kn.lowerCase=qa,kn.lowerFirst=Ga,kn.lt=la,kn.lte=ca,kn.max=function(t){return t&&t.length?dr(t,nu,_r):i},kn.maxBy=function(t,e){return t&&t.length?dr(t,oo(e,2),_r):i},kn.mean=function(t){return Ve(t,nu)},kn.meanBy=function(t,e){return Ve(t,oo(e,2))},kn.min=function(t){return t&&t.length?dr(t,nu,Rr):i},kn.minBy=function(t,e){return t&&t.length?dr(t,oo(e,2),Rr):i},kn.stubArray=pu,kn.stubFalse=gu,kn.stubObject=function(){return{}},kn.stubString=function(){return""},kn.stubTrue=function(){return!0},kn.multiply=Cu,kn.nth=function(t,e){return t&&t.length?Ur(t,da(e)):i},kn.noConflict=function(){return he._===this&&(he._=kt),this},kn.noop=au,kn.now=Es,kn.pad=function(t,e,n){t=va(t);var r=(e=da(e))?cn(t):0;if(!e||r>=e)return t;var i=(e-r)/2;return $i(de(i),n)+t+$i(fe(i),n)},kn.padEnd=function(t,e,n){t=va(t);var r=(e=da(e))?cn(t):0;return e&&r<e?t+$i(e-r,n):t},kn.padStart=function(t,e,n){t=va(t);var r=(e=da(e))?cn(t):0;return e&&r<e?$i(e-r,n)+t:t},kn.parseInt=function(t,e,n){return n||null==e?e=0:e&&(e=+e),bn(va(t).replace(rt,""),e||0)},kn.random=function(t,e,n){if(n&&"boolean"!=typeof n&&vo(t,e,n)&&(e=n=i),n===i&&("boolean"==typeof e?(n=e,e=i):"boolean"==typeof t&&(n=t,t=i)),t===i&&e===i?(t=0,e=1):(t=fa(t),e===i?(e=t,t=0):e=fa(e)),t>e){var r=t;t=e,e=r}if(n||t%1||e%1){var o=wn();return vn(t+o*(e-t+ae("1e-"+((o+"").length-1))),e)}return Gr(t,e)},kn.reduce=function(t,e,n){var r=js(t)?Be:Ge,i=arguments.length<3;return r(t,oo(e,4),n,i,cr)},kn.reduceRight=function(t,e,n){var r=js(t)?Pe:Ge,i=arguments.length<3;return r(t,oo(e,4),n,i,hr)},kn.repeat=function(t,e,n){return e=(n?vo(t,e,n):e===i)?1:da(e),Wr(va(t),e)},kn.replace=function(){var t=arguments,e=va(t[0]);return t.length<3?e:e.replace(t[1],t[2])},kn.result=function(t,e,n){var r=-1,o=(e=mi(e,t)).length;for(o||(o=1,t=i);++r<o;){var s=null==t?i:t[Do(e[r])];s===i&&(r=o,s=n),t=Js(s)?s.call(t):s}return t},kn.round=Au,kn.runInContext=t,kn.sample=function(t){return(js(t)?Kn:Yr)(t)},kn.size=function(t){if(null==t)return 0;if(Gs(t))return sa(t)?cn(t):t.length;var e=ho(t);return e==A||e==T?t.size:Pr(t).length},kn.snakeCase=Wa,kn.some=function(t,e,n){var r=js(t)?Re:ei;return n&&vo(t,e,n)&&(e=i),r(t,oo(e,3))},kn.sortedIndex=function(t,e){return ni(t,e)},kn.sortedIndexBy=function(t,e,n){return ri(t,e,oo(n,2))},kn.sortedIndexOf=function(t,e){var n=null==t?0:t.length;if(n){var r=ni(t,e);if(r<n&&Hs(t[r],e))return r}return-1},kn.sortedLastIndex=function(t,e){return ni(t,e,!0)},kn.sortedLastIndexBy=function(t,e,n){return ri(t,e,oo(n,2),!0)},kn.sortedLastIndexOf=function(t,e){if(null!=t&&t.length){var n=ni(t,e,!0)-1;if(Hs(t[n],e))return n}return-1},kn.startCase=za,kn.startsWith=function(t,e,n){return t=va(t),n=null==n?0:or(da(n),0,t.length),e=si(e),t.slice(n,n+e.length)==e},kn.subtract=xu,kn.sum=function(t){return t&&t.length?We(t,nu):0},kn.sumBy=function(t,e){return t&&t.length?We(t,oo(e,2)):0},kn.template=function(t,e,n){var r=kn.templateSettings;n&&vo(t,e,n)&&(e=i),t=va(t),e=wa({},e,r,Ki);var o,s,a=wa({},e.imports,r.imports,Ki),u=Oa(a),l=Je(a,u),c=0,h=e.interpolate||bt,f="__p += '",d=Et((e.escape||bt).source+"|"+h.source+"|"+(h===Q?ht:bt).source+"|"+(e.evaluate||bt).source+"|$","g"),p="//# sourceURL="+(Bt.call(e,"sourceURL")?(e.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++re+"]")+"\n";t.replace(d,(function(e,n,r,i,a,u){return r||(r=i),f+=t.slice(c,u).replace(wt,nn),n&&(o=!0,f+="' +\n__e("+n+") +\n'"),a&&(s=!0,f+="';\n"+a+";\n__p += '"),r&&(f+="' +\n((__t = ("+r+")) == null ? '' : __t) +\n'"),c=u+e.length,e})),f+="';\n";var g=Bt.call(e,"variable")&&e.variable;if(g){if(lt.test(g))throw new Ct("Invalid `variable` option passed into `_.template`")}else f="with (obj) {\n"+f+"\n}\n";f=(s?f.replace(V,""):f).replace(j,"$1").replace(q,"$1;"),f="function("+(g||"obj")+") {\n"+(g?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(o?", __e = _.escape":"")+(s?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+f+"return __p\n}";var m=Qa((function(){return At(u,p+"return "+f).apply(i,l)}));if(m.source=f,Ks(m))throw m;return m},kn.times=function(t,e){if((t=da(t))<1||t>h)return[];var n=d,r=vn(t,d);e=oo(e),t-=d;for(var i=ze(r,e);++n<t;)e(n);return i},kn.toFinite=fa,kn.toInteger=da,kn.toLength=pa,kn.toLower=function(t){return va(t).toLowerCase()},kn.toNumber=ga,kn.toSafeInteger=function(t){return t?or(da(t),-9007199254740991,h):0===t?t:0},kn.toString=va,kn.toUpper=function(t){return va(t).toUpperCase()},kn.trim=function(t,e,n){if((t=va(t))&&(n||e===i))return Ye(t);if(!t||!(e=si(e)))return t;var r=hn(t),o=hn(e);return yi(r,Xe(r,o),Ze(r,o)+1).join("")},kn.trimEnd=function(t,e,n){if((t=va(t))&&(n||e===i))return t.slice(0,fn(t)+1);if(!t||!(e=si(e)))return t;var r=hn(t);return yi(r,0,Ze(r,hn(e))+1).join("")},kn.trimStart=function(t,e,n){if((t=va(t))&&(n||e===i))return t.replace(rt,"");if(!t||!(e=si(e)))return t;var r=hn(t);return yi(r,Xe(r,hn(e))).join("")},kn.truncate=function(t,e){var n=30,r="...";if(Zs(e)){var o="separator"in e?e.separator:o;n="length"in e?da(e.length):n,r="omission"in e?si(e.omission):r}var s=(t=va(t)).length;if(rn(t)){var a=hn(t);s=a.length}if(n>=s)return t;var u=n-cn(r);if(u<1)return r;var l=a?yi(a,0,u).join(""):t.slice(0,u);if(o===i)return l+r;if(a&&(u+=l.length-u),ia(o)){if(t.slice(u).search(o)){var c,h=l;for(o.global||(o=Et(o.source,va(ft.exec(o))+"g")),o.lastIndex=0;c=o.exec(h);)var f=c.index;l=l.slice(0,f===i?u:f)}}else if(t.indexOf(si(o),u)!=u){var d=l.lastIndexOf(o);d>-1&&(l=l.slice(0,d))}return l+r},kn.unescape=function(t){return(t=va(t))&&z.test(t)?t.replace(G,dn):t},kn.uniqueId=function(t){var e=++Pt;return va(t)+e},kn.upperCase=Ya,kn.upperFirst=Ka,kn.each=vs,kn.eachRight=ys,kn.first=Go,su(kn,(mu={},yr(kn,(function(t,e){Bt.call(kn.prototype,e)||(mu[e]=t)})),mu),{chain:!1}),kn.VERSION="4.17.21",Ee(["bind","bindKey","curry","curryRight","partial","partialRight"],(function(t){kn[t].placeholder=kn})),Ee(["drop","take"],(function(t,e){Vn.prototype[t]=function(n){n=n===i?1:mn(da(n),0);var r=this.__filtered__&&!e?new Vn(this):this.clone();return r.__filtered__?r.__takeCount__=vn(n,r.__takeCount__):r.__views__.push({size:vn(n,d),type:t+(r.__dir__<0?"Right":"")}),r},Vn.prototype[t+"Right"]=function(e){return this.reverse()[t](e).reverse()}})),Ee(["filter","map","takeWhile"],(function(t,e){var n=e+1,r=1==n||3==n;Vn.prototype[t]=function(t){var e=this.clone();return e.__iteratees__.push({iteratee:oo(t,3),type:n}),e.__filtered__=e.__filtered__||r,e}})),Ee(["head","last"],(function(t,e){var n="take"+(e?"Right":"");Vn.prototype[t]=function(){return this[n](1).value()[0]}})),Ee(["initial","tail"],(function(t,e){var n="drop"+(e?"":"Right");Vn.prototype[t]=function(){return this.__filtered__?new Vn(this):this[n](1)}})),Vn.prototype.compact=function(){return this.filter(nu)},Vn.prototype.find=function(t){return this.filter(t).head()},Vn.prototype.findLast=function(t){return this.reverse().find(t)},Vn.prototype.invokeMap=zr((function(t,e){return"function"==typeof t?new Vn(this):this.map((function(n){return Ir(n,t,e)}))})),Vn.prototype.reject=function(t){return this.filter(Ps(oo(t)))},Vn.prototype.slice=function(t,e){t=da(t);var n=this;return n.__filtered__&&(t>0||e<0)?new Vn(n):(t<0?n=n.takeRight(-t):t&&(n=n.drop(t)),e!==i&&(n=(e=da(e))<0?n.dropRight(-e):n.take(e-t)),n)},Vn.prototype.takeRightWhile=function(t){return this.reverse().takeWhile(t).reverse()},Vn.prototype.toArray=function(){return this.take(d)},yr(Vn.prototype,(function(t,e){var n=/^(?:filter|find|map|reject)|While$/.test(e),r=/^(?:head|last)$/.test(e),o=kn[r?"take"+("last"==e?"Right":""):e],s=r||/^find/.test(e);o&&(kn.prototype[e]=function(){var e=this.__wrapped__,a=r?[1]:arguments,u=e instanceof Vn,l=a[0],c=u||js(e),h=function(t){var e=o.apply(kn,Le([t],a));return r&&f?e[0]:e};c&&n&&"function"==typeof l&&1!=l.length&&(u=c=!1);var f=this.__chain__,d=!!this.__actions__.length,p=s&&!f,g=u&&!d;if(!s&&c){e=g?e:new Vn(this);var m=t.apply(e,a);return m.__actions__.push({func:fs,args:[h],thisArg:i}),new $n(m,f)}return p&&g?t.apply(this,a):(m=this.thru(h),p?r?m.value()[0]:m.value():m)})})),Ee(["pop","push","shift","sort","splice","unshift"],(function(t){var e=It[t],n=/^(?:push|sort|unshift)$/.test(t)?"tap":"thru",r=/^(?:pop|shift)$/.test(t);kn.prototype[t]=function(){var t=arguments;if(r&&!this.__chain__){var i=this.value();return e.apply(js(i)?i:[],t)}return this[n]((function(n){return e.apply(js(n)?n:[],t)}))}})),yr(Vn.prototype,(function(t,e){var n=kn[e];if(n){var r=n.name+"";Bt.call(Nn,r)||(Nn[r]=[]),Nn[r].push({name:e,func:n})}})),Nn[Fi(i,2).name]=[{name:"wrapper",func:i}],Vn.prototype.clone=function(){var t=new Vn(this.__wrapped__);return t.__actions__=Si(this.__actions__),t.__dir__=this.__dir__,t.__filtered__=this.__filtered__,t.__iteratees__=Si(this.__iteratees__),t.__takeCount__=this.__takeCount__,t.__views__=Si(this.__views__),t},Vn.prototype.reverse=function(){if(this.__filtered__){var t=new Vn(this);t.__dir__=-1,t.__filtered__=!0}else(t=this.clone()).__dir__*=-1;return t},Vn.prototype.value=function(){var t=this.__wrapped__.value(),e=this.__dir__,n=js(t),r=e<0,i=n?t.length:0,o=function(t,e,n){for(var r=-1,i=n.length;++r<i;){var o=n[r],s=o.size;switch(o.type){case"drop":t+=s;break;case"dropRight":e-=s;break;case"take":e=vn(e,t+s);break;case"takeRight":t=mn(t,e-s)}}return{start:t,end:e}}(0,i,this.__views__),s=o.start,a=o.end,u=a-s,l=r?a:s-1,c=this.__iteratees__,h=c.length,f=0,d=vn(u,this.__takeCount__);if(!n||!r&&i==u&&d==u)return hi(t,this.__actions__);var p=[];t:for(;u--&&f<d;){for(var g=-1,m=t[l+=e];++g<h;){var v=c[g],y=v.iteratee,b=v.type,w=y(m);if(2==b)m=w;else if(!w){if(1==b)continue t;break t}}p[f++]=m}return p},kn.prototype.at=ds,kn.prototype.chain=function(){return hs(this)},kn.prototype.commit=function(){return new $n(this.value(),this.__chain__)},kn.prototype.next=function(){this.__values__===i&&(this.__values__=ha(this.value()));var t=this.__index__>=this.__values__.length;return{done:t,value:t?i:this.__values__[this.__index__++]}},kn.prototype.plant=function(t){for(var e,n=this;n instanceof Un;){var r=ko(n);r.__index__=0,r.__values__=i,e?o.__wrapped__=r:e=r;var o=r;n=n.__wrapped__}return o.__wrapped__=t,e},kn.prototype.reverse=function(){var t=this.__wrapped__;if(t instanceof Vn){var e=t;return this.__actions__.length&&(e=new Vn(this)),(e=e.reverse()).__actions__.push({func:fs,args:[Zo],thisArg:i}),new $n(e,this.__chain__)}return this.thru(Zo)},kn.prototype.toJSON=kn.prototype.valueOf=kn.prototype.value=function(){return hi(this.__wrapped__,this.__actions__)},kn.prototype.first=kn.prototype.head,Kt&&(kn.prototype[Kt]=function(){return this}),kn}();he._=pn,(r=function(){return pn}.call(e,n,e,t))===i||(t.exports=r)}.call(this)},802:t=>{t.exports=function t(e,n,r){function i(s,a){if(!n[s]){if(!e[s]){if(o)return o(s,!0);throw new Error("Cannot find module '"+s+"'")}a=n[s]={exports:{}},e[s][0].call(a.exports,(function(t){return i(e[s][1][t]||t)}),a,a.exports,t,e,n,r)}return n[s].exports}for(var o=void 0,s=0;s<r.length;s++)i(r[s]);return i}({1:[function(t,e,n){(function(r,i,o,s,a,u,l,c,h){"use strict";var f=t("crypto");function d(t,e){var n;return void 0===(n="passthrough"!==(e=m(t,e)).algorithm?f.createHash(e.algorithm):new b).write&&(n.write=n.update,n.end=n.update),y(e,n).dispatch(t),n.update||n.end(""),n.digest?n.digest("buffer"===e.encoding?void 0:e.encoding):(t=n.read(),"buffer"!==e.encoding?t.toString(e.encoding):t)}(n=e.exports=d).sha1=function(t){return d(t)},n.keys=function(t){return d(t,{excludeValues:!0,algorithm:"sha1",encoding:"hex"})},n.MD5=function(t){return d(t,{algorithm:"md5",encoding:"hex"})},n.keysMD5=function(t){return d(t,{algorithm:"md5",encoding:"hex",excludeValues:!0})};var p=f.getHashes?f.getHashes().slice():["sha1","md5"],g=(p.push("passthrough"),["buffer","hex","binary","base64"]);function m(t,e){var n={};if(n.algorithm=(e=e||{}).algorithm||"sha1",n.encoding=e.encoding||"hex",n.excludeValues=!!e.excludeValues,n.algorithm=n.algorithm.toLowerCase(),n.encoding=n.encoding.toLowerCase(),n.ignoreUnknown=!0===e.ignoreUnknown,n.respectType=!1!==e.respectType,n.respectFunctionNames=!1!==e.respectFunctionNames,n.respectFunctionProperties=!1!==e.respectFunctionProperties,n.unorderedArrays=!0===e.unorderedArrays,n.unorderedSets=!1!==e.unorderedSets,n.unorderedObjects=!1!==e.unorderedObjects,n.replacer=e.replacer||void 0,n.excludeKeys=e.excludeKeys||void 0,void 0===t)throw new Error("Object argument required.");for(var r=0;r<p.length;++r)p[r].toLowerCase()===n.algorithm.toLowerCase()&&(n.algorithm=p[r]);if(-1===p.indexOf(n.algorithm))throw new Error('Algorithm "'+n.algorithm+'" not supported. supported values: '+p.join(", "));if(-1===g.indexOf(n.encoding)&&"passthrough"!==n.algorithm)throw new Error('Encoding "'+n.encoding+'" not supported. supported values: '+g.join(", "));return n}function v(t){if("function"==typeof t)return null!=/^function\s+\w*\s*\(\s*\)\s*{\s+\[native code\]\s+}$/i.exec(Function.prototype.toString.call(t))}function y(t,e,n){function r(t){return e.update?e.update(t,"utf8"):e.write(t,"utf8")}return n=n||[],{dispatch:function(e){return this["_"+(null===(e=t.replacer?t.replacer(e):e)?"null":typeof e)](e)},_object:function(e){var i,s=Object.prototype.toString.call(e),a=/\[object (.*)\]/i.exec(s);if(a=(a=a?a[1]:"unknown:["+s+"]").toLowerCase(),0<=(s=n.indexOf(e)))return this.dispatch("[CIRCULAR:"+s+"]");if(n.push(e),void 0!==o&&o.isBuffer&&o.isBuffer(e))return r("buffer:"),r(e);if("object"===a||"function"===a||"asyncfunction"===a)return s=Object.keys(e),t.unorderedObjects&&(s=s.sort()),!1===t.respectType||v(e)||s.splice(0,0,"prototype","__proto__","constructor"),t.excludeKeys&&(s=s.filter((function(e){return!t.excludeKeys(e)}))),r("object:"+s.length+":"),i=this,s.forEach((function(n){i.dispatch(n),r(":"),t.excludeValues||i.dispatch(e[n]),r(",")}));if(!this["_"+a]){if(t.ignoreUnknown)return r("["+a+"]");throw new Error('Unknown object type "'+a+'"')}this["_"+a](e)},_array:function(e,i){i=void 0!==i?i:!1!==t.unorderedArrays;var o=this;if(r("array:"+e.length+":"),!i||e.length<=1)return e.forEach((function(t){return o.dispatch(t)}));var s=[];return i=e.map((function(e){var r=new b,i=n.slice();return y(t,r,i).dispatch(e),s=s.concat(i.slice(n.length)),r.read().toString()})),n=n.concat(s),i.sort(),this._array(i,!1)},_date:function(t){return r("date:"+t.toJSON())},_symbol:function(t){return r("symbol:"+t.toString())},_error:function(t){return r("error:"+t.toString())},_boolean:function(t){return r("bool:"+t.toString())},_string:function(t){r("string:"+t.length+":"),r(t.toString())},_function:function(e){r("fn:"),v(e)?this.dispatch("[native]"):this.dispatch(e.toString()),!1!==t.respectFunctionNames&&this.dispatch("function-name:"+String(e.name)),t.respectFunctionProperties&&this._object(e)},_number:function(t){return r("number:"+t.toString())},_xml:function(t){return r("xml:"+t.toString())},_null:function(){return r("Null")},_undefined:function(){return r("Undefined")},_regexp:function(t){return r("regex:"+t.toString())},_uint8array:function(t){return r("uint8array:"),this.dispatch(Array.prototype.slice.call(t))},_uint8clampedarray:function(t){return r("uint8clampedarray:"),this.dispatch(Array.prototype.slice.call(t))},_int8array:function(t){return r("int8array:"),this.dispatch(Array.prototype.slice.call(t))},_uint16array:function(t){return r("uint16array:"),this.dispatch(Array.prototype.slice.call(t))},_int16array:function(t){return r("int16array:"),this.dispatch(Array.prototype.slice.call(t))},_uint32array:function(t){return r("uint32array:"),this.dispatch(Array.prototype.slice.call(t))},_int32array:function(t){return r("int32array:"),this.dispatch(Array.prototype.slice.call(t))},_float32array:function(t){return r("float32array:"),this.dispatch(Array.prototype.slice.call(t))},_float64array:function(t){return r("float64array:"),this.dispatch(Array.prototype.slice.call(t))},_arraybuffer:function(t){return r("arraybuffer:"),this.dispatch(new Uint8Array(t))},_url:function(t){return r("url:"+t.toString())},_map:function(e){return r("map:"),e=Array.from(e),this._array(e,!1!==t.unorderedSets)},_set:function(e){return r("set:"),e=Array.from(e),this._array(e,!1!==t.unorderedSets)},_file:function(t){return r("file:"),this.dispatch([t.name,t.size,t.type,t.lastModfied])},_blob:function(){if(t.ignoreUnknown)return r("[blob]");throw Error('Hashing Blob objects is currently not supported\n(see https://github.com/puleos/object-hash/issues/26)\nUse "options.replacer" or "options.ignoreUnknown"\n')},_domwindow:function(){return r("domwindow")},_bigint:function(t){return r("bigint:"+t.toString())},_process:function(){return r("process")},_timer:function(){return r("timer")},_pipe:function(){return r("pipe")},_tcp:function(){return r("tcp")},_udp:function(){return r("udp")},_tty:function(){return r("tty")},_statwatcher:function(){return r("statwatcher")},_securecontext:function(){return r("securecontext")},_connection:function(){return r("connection")},_zlib:function(){return r("zlib")},_context:function(){return r("context")},_nodescript:function(){return r("nodescript")},_httpparser:function(){return r("httpparser")},_dataview:function(){return r("dataview")},_signal:function(){return r("signal")},_fsevent:function(){return r("fsevent")},_tlswrap:function(){return r("tlswrap")}}}function b(){return{buf:"",write:function(t){this.buf+=t},end:function(t){this.buf+=t},read:function(){return this.buf}}}n.writeToStream=function(t,e,n){return void 0===n&&(n=e,e={}),y(e=m(t,e),n).dispatch(t)}}).call(this,t("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},t("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/fake_9a5aa49d.js","/")},{buffer:3,crypto:5,lYpoI2:11}],2:[function(t,e,n){(function(t,e,r,i,o,s,a,u,l){!function(t){"use strict";var e="undefined"!=typeof Uint8Array?Uint8Array:Array,n="+".charCodeAt(0),r="/".charCodeAt(0),i="0".charCodeAt(0),o="a".charCodeAt(0),s="A".charCodeAt(0),a="-".charCodeAt(0),u="_".charCodeAt(0);function l(t){return(t=t.charCodeAt(0))===n||t===a?62:t===r||t===u?63:t<i?-1:t<i+10?t-i+26+26:t<s+26?t-s:t<o+26?t-o+26:void 0}t.toByteArray=function(t){var n,r;if(0<t.length%4)throw new Error("Invalid string. Length must be a multiple of 4");var i=t.length,o=(i="="===t.charAt(i-2)?2:"="===t.charAt(i-1)?1:0,new e(3*t.length/4-i)),s=0<i?t.length-4:t.length,a=0;function u(t){o[a++]=t}for(n=0;n<s;n+=4,0)u((16711680&(r=l(t.charAt(n))<<18|l(t.charAt(n+1))<<12|l(t.charAt(n+2))<<6|l(t.charAt(n+3))))>>16),u((65280&r)>>8),u(255&r);return 2==i?u(255&(r=l(t.charAt(n))<<2|l(t.charAt(n+1))>>4)):1==i&&(u((r=l(t.charAt(n))<<10|l(t.charAt(n+1))<<4|l(t.charAt(n+2))>>2)>>8&255),u(255&r)),o},t.fromByteArray=function(t){var e,n,r,i,o=t.length%3,s="";function a(t){return"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(t)}for(e=0,r=t.length-o;e<r;e+=3)s+=a((i=n=(t[e]<<16)+(t[e+1]<<8)+t[e+2])>>18&63)+a(i>>12&63)+a(i>>6&63)+a(63&i);switch(o){case 1:s=(s+=a((n=t[t.length-1])>>2))+a(n<<4&63)+"==";break;case 2:s=(s=(s+=a((n=(t[t.length-2]<<8)+t[t.length-1])>>10))+a(n>>4&63))+a(n<<2&63)+"="}return s}}(void 0===n?this.base64js={}:n)}).call(this,t("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},t("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/base64-js/lib/b64.js","/node_modules/gulp-browserify/node_modules/base64-js/lib")},{buffer:3,lYpoI2:11}],3:[function(t,e,n){(function(e,r,i,o,s,a,u,l,c){var h=t("base64-js"),f=t("ieee754");function i(t,e,n){if(!(this instanceof i))return new i(t,e,n);var r,o,s,a,u=typeof t;if("base64"===e&&"string"==u)for(t=(a=t).trim?a.trim():a.replace(/^\s+|\s+$/g,"");t.length%4!=0;)t+="=";if("number"==u)r=T(t);else if("string"==u)r=i.byteLength(t,e);else{if("object"!=u)throw new Error("First argument needs to be a number, array or string.");r=T(t.length)}if(i._useTypedArrays?o=i._augment(new Uint8Array(r)):((o=this).length=r,o._isBuffer=!0),i._useTypedArrays&&"number"==typeof t.byteLength)o._set(t);else if(I(a=t)||i.isBuffer(a)||a&&"object"==typeof a&&"number"==typeof a.length)for(s=0;s<r;s++)i.isBuffer(t)?o[s]=t.readUInt8(s):o[s]=t[s];else if("string"==u)o.write(t,0,e);else if("number"==u&&!i._useTypedArrays&&!n)for(s=0;s<r;s++)o[s]=0;return o}function d(t,e,n,r){var i;if(r||(F("boolean"==typeof n,"missing or invalid endian"),F(null!=e,"missing offset"),F(e+1<t.length,"Trying to read beyond buffer length")),!((r=t.length)<=e))return n?(i=t[e],e+1<r&&(i|=t[e+1]<<8)):(i=t[e]<<8,e+1<r&&(i|=t[e+1])),i}function p(t,e,n,r){var i;if(r||(F("boolean"==typeof n,"missing or invalid endian"),F(null!=e,"missing offset"),F(e+3<t.length,"Trying to read beyond buffer length")),!((r=t.length)<=e))return n?(e+2<r&&(i=t[e+2]<<16),e+1<r&&(i|=t[e+1]<<8),i|=t[e],e+3<r&&(i+=t[e+3]<<24>>>0)):(e+1<r&&(i=t[e+1]<<16),e+2<r&&(i|=t[e+2]<<8),e+3<r&&(i|=t[e+3]),i+=t[e]<<24>>>0),i}function g(t,e,n,r){if(r||(F("boolean"==typeof n,"missing or invalid endian"),F(null!=e,"missing offset"),F(e+1<t.length,"Trying to read beyond buffer length")),!(t.length<=e))return 32768&(r=d(t,e,n,!0))?-1*(65535-r+1):r}function m(t,e,n,r){if(r||(F("boolean"==typeof n,"missing or invalid endian"),F(null!=e,"missing offset"),F(e+3<t.length,"Trying to read beyond buffer length")),!(t.length<=e))return 2147483648&(r=p(t,e,n,!0))?-1*(4294967295-r+1):r}function v(t,e,n,r){return r||(F("boolean"==typeof n,"missing or invalid endian"),F(e+3<t.length,"Trying to read beyond buffer length")),f.read(t,e,n,23,4)}function y(t,e,n,r){return r||(F("boolean"==typeof n,"missing or invalid endian"),F(e+7<t.length,"Trying to read beyond buffer length")),f.read(t,e,n,52,8)}function b(t,e,n,r,i){if(i||(F(null!=e,"missing value"),F("boolean"==typeof r,"missing or invalid endian"),F(null!=n,"missing offset"),F(n+1<t.length,"trying to write beyond buffer length"),P(e,65535)),!((i=t.length)<=n))for(var o=0,s=Math.min(i-n,2);o<s;o++)t[n+o]=(e&255<<8*(r?o:1-o))>>>8*(r?o:1-o)}function w(t,e,n,r,i){if(i||(F(null!=e,"missing value"),F("boolean"==typeof r,"missing or invalid endian"),F(null!=n,"missing offset"),F(n+3<t.length,"trying to write beyond buffer length"),P(e,4294967295)),!((i=t.length)<=n))for(var o=0,s=Math.min(i-n,4);o<s;o++)t[n+o]=e>>>8*(r?o:3-o)&255}function C(t,e,n,r,i){i||(F(null!=e,"missing value"),F("boolean"==typeof r,"missing or invalid endian"),F(null!=n,"missing offset"),F(n+1<t.length,"Trying to write beyond buffer length"),R(e,32767,-32768)),t.length<=n||b(t,0<=e?e:65535+e+1,n,r,i)}function A(t,e,n,r,i){i||(F(null!=e,"missing value"),F("boolean"==typeof r,"missing or invalid endian"),F(null!=n,"missing offset"),F(n+3<t.length,"Trying to write beyond buffer length"),R(e,2147483647,-2147483648)),t.length<=n||w(t,0<=e?e:4294967295+e+1,n,r,i)}function x(t,e,n,r,i){i||(F(null!=e,"missing value"),F("boolean"==typeof r,"missing or invalid endian"),F(null!=n,"missing offset"),F(n+3<t.length,"Trying to write beyond buffer length"),D(e,34028234663852886e22,-34028234663852886e22)),t.length<=n||f.write(t,e,n,r,23,4)}function _(t,e,n,r,i){i||(F(null!=e,"missing value"),F("boolean"==typeof r,"missing or invalid endian"),F(null!=n,"missing offset"),F(n+7<t.length,"Trying to write beyond buffer length"),D(e,17976931348623157e292,-17976931348623157e292)),t.length<=n||f.write(t,e,n,r,52,8)}n.Buffer=i,n.SlowBuffer=i,n.INSPECT_MAX_BYTES=50,i.poolSize=8192,i._useTypedArrays=function(){try{var t=new ArrayBuffer(0),e=new Uint8Array(t);return e.foo=function(){return 42},42===e.foo()&&"function"==typeof e.subarray}catch(t){return!1}}(),i.isEncoding=function(t){switch(String(t).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"raw":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},i.isBuffer=function(t){return!(null==t||!t._isBuffer)},i.byteLength=function(t,e){var n;switch(t+="",e||"utf8"){case"hex":n=t.length/2;break;case"utf8":case"utf-8":n=O(t).length;break;case"ascii":case"binary":case"raw":n=t.length;break;case"base64":n=M(t).length;break;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":n=2*t.length;break;default:throw new Error("Unknown encoding")}return n},i.concat=function(t,e){if(F(I(t),"Usage: Buffer.concat(list, [totalLength])\nlist should be an Array."),0===t.length)return new i(0);if(1===t.length)return t[0];if("number"!=typeof e)for(o=e=0;o<t.length;o++)e+=t[o].length;for(var n=new i(e),r=0,o=0;o<t.length;o++){var s=t[o];s.copy(n,r),r+=s.length}return n},i.prototype.write=function(t,e,n,r){isFinite(e)?isFinite(n)||(r=n,n=void 0):(l=r,r=e,e=n,n=l),e=Number(e)||0;var o,s,a,u,l=this.length-e;switch((!n||l<(n=Number(n)))&&(n=l),r=String(r||"utf8").toLowerCase()){case"hex":o=function(t,e,n,r){n=Number(n)||0;var o=t.length-n;(!r||o<(r=Number(r)))&&(r=o),F((o=e.length)%2==0,"Invalid hex string"),o/2<r&&(r=o/2);for(var s=0;s<r;s++){var a=parseInt(e.substr(2*s,2),16);F(!isNaN(a),"Invalid hex string"),t[n+s]=a}return i._charsWritten=2*s,s}(this,t,e,n);break;case"utf8":case"utf-8":s=this,a=e,u=n,o=i._charsWritten=L(O(t),s,a,u);break;case"ascii":case"binary":o=function(t,e,n,r){return i._charsWritten=L(function(t){for(var e=[],n=0;n<t.length;n++)e.push(255&t.charCodeAt(n));return e}(e),t,n,r)}(this,t,e,n);break;case"base64":s=this,a=e,u=n,o=i._charsWritten=L(M(t),s,a,u);break;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":o=function(t,e,n,r){return i._charsWritten=L(function(t){for(var e,n,r=[],i=0;i<t.length;i++)e=(n=t.charCodeAt(i))>>8,n%=256,r.push(n),r.push(e);return r}(e),t,n,r)}(this,t,e,n);break;default:throw new Error("Unknown encoding")}return o},i.prototype.toString=function(t,e,n){var r,i,o,s,a=this;if(t=String(t||"utf8").toLowerCase(),e=Number(e)||0,(n=void 0!==n?Number(n):a.length)===e)return"";switch(t){case"hex":r=function(t,e,n){var r=t.length;(!e||e<0)&&(e=0),(!n||n<0||r<n)&&(n=r);for(var i="",o=e;o<n;o++)i+=N(t[o]);return i}(a,e,n);break;case"utf8":case"utf-8":r=function(t,e,n){var r="",i="";n=Math.min(t.length,n);for(var o=e;o<n;o++)t[o]<=127?(r+=B(i)+String.fromCharCode(t[o]),i=""):i+="%"+t[o].toString(16);return r+B(i)}(a,e,n);break;case"ascii":case"binary":r=function(t,e,n){var r="";n=Math.min(t.length,n);for(var i=e;i<n;i++)r+=String.fromCharCode(t[i]);return r}(a,e,n);break;case"base64":i=a,s=n,r=0===(o=e)&&s===i.length?h.fromByteArray(i):h.fromByteArray(i.slice(o,s));break;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":r=function(t,e,n){for(var r=t.slice(e,n),i="",o=0;o<r.length;o+=2)i+=String.fromCharCode(r[o]+256*r[o+1]);return i}(a,e,n);break;default:throw new Error("Unknown encoding")}return r},i.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}},i.prototype.copy=function(t,e,n,r){if(e=e||0,(r=r||0===r?r:this.length)!==(n=n||0)&&0!==t.length&&0!==this.length){F(n<=r,"sourceEnd < sourceStart"),F(0<=e&&e<t.length,"targetStart out of bounds"),F(0<=n&&n<this.length,"sourceStart out of bounds"),F(0<=r&&r<=this.length,"sourceEnd out of bounds"),r>this.length&&(r=this.length);var o=(r=t.length-e<r-n?t.length-e+n:r)-n;if(o<100||!i._useTypedArrays)for(var s=0;s<o;s++)t[s+e]=this[s+n];else t._set(this.subarray(n,n+o),e)}},i.prototype.slice=function(t,e){var n=this.length;if(t=S(t,n,0),e=S(e,n,n),i._useTypedArrays)return i._augment(this.subarray(t,e));for(var r=e-t,o=new i(r,void 0,!0),s=0;s<r;s++)o[s]=this[s+t];return o},i.prototype.get=function(t){return console.log(".get() is deprecated. Access using array indexes instead."),this.readUInt8(t)},i.prototype.set=function(t,e){return console.log(".set() is deprecated. Access using array indexes instead."),this.writeUInt8(t,e)},i.prototype.readUInt8=function(t,e){if(e||(F(null!=t,"missing offset"),F(t<this.length,"Trying to read beyond buffer length")),!(t>=this.length))return this[t]},i.prototype.readUInt16LE=function(t,e){return d(this,t,!0,e)},i.prototype.readUInt16BE=function(t,e){return d(this,t,!1,e)},i.prototype.readUInt32LE=function(t,e){return p(this,t,!0,e)},i.prototype.readUInt32BE=function(t,e){return p(this,t,!1,e)},i.prototype.readInt8=function(t,e){if(e||(F(null!=t,"missing offset"),F(t<this.length,"Trying to read beyond buffer length")),!(t>=this.length))return 128&this[t]?-1*(255-this[t]+1):this[t]},i.prototype.readInt16LE=function(t,e){return g(this,t,!0,e)},i.prototype.readInt16BE=function(t,e){return g(this,t,!1,e)},i.prototype.readInt32LE=function(t,e){return m(this,t,!0,e)},i.prototype.readInt32BE=function(t,e){return m(this,t,!1,e)},i.prototype.readFloatLE=function(t,e){return v(this,t,!0,e)},i.prototype.readFloatBE=function(t,e){return v(this,t,!1,e)},i.prototype.readDoubleLE=function(t,e){return y(this,t,!0,e)},i.prototype.readDoubleBE=function(t,e){return y(this,t,!1,e)},i.prototype.writeUInt8=function(t,e,n){n||(F(null!=t,"missing value"),F(null!=e,"missing offset"),F(e<this.length,"trying to write beyond buffer length"),P(t,255)),e>=this.length||(this[e]=t)},i.prototype.writeUInt16LE=function(t,e,n){b(this,t,e,!0,n)},i.prototype.writeUInt16BE=function(t,e,n){b(this,t,e,!1,n)},i.prototype.writeUInt32LE=function(t,e,n){w(this,t,e,!0,n)},i.prototype.writeUInt32BE=function(t,e,n){w(this,t,e,!1,n)},i.prototype.writeInt8=function(t,e,n){n||(F(null!=t,"missing value"),F(null!=e,"missing offset"),F(e<this.length,"Trying to write beyond buffer length"),R(t,127,-128)),e>=this.length||(0<=t?this.writeUInt8(t,e,n):this.writeUInt8(255+t+1,e,n))},i.prototype.writeInt16LE=function(t,e,n){C(this,t,e,!0,n)},i.prototype.writeInt16BE=function(t,e,n){C(this,t,e,!1,n)},i.prototype.writeInt32LE=function(t,e,n){A(this,t,e,!0,n)},i.prototype.writeInt32BE=function(t,e,n){A(this,t,e,!1,n)},i.prototype.writeFloatLE=function(t,e,n){x(this,t,e,!0,n)},i.prototype.writeFloatBE=function(t,e,n){x(this,t,e,!1,n)},i.prototype.writeDoubleLE=function(t,e,n){_(this,t,e,!0,n)},i.prototype.writeDoubleBE=function(t,e,n){_(this,t,e,!1,n)},i.prototype.fill=function(t,e,n){if(e=e||0,n=n||this.length,F("number"==typeof(t="string"==typeof(t=t||0)?t.charCodeAt(0):t)&&!isNaN(t),"value is not a number"),F(e<=n,"end < start"),n!==e&&0!==this.length){F(0<=e&&e<this.length,"start out of bounds"),F(0<=n&&n<=this.length,"end out of bounds");for(var r=e;r<n;r++)this[r]=t}},i.prototype.inspect=function(){for(var t=[],e=this.length,r=0;r<e;r++)if(t[r]=N(this[r]),r===n.INSPECT_MAX_BYTES){t[r+1]="...";break}return"<Buffer "+t.join(" ")+">"},i.prototype.toArrayBuffer=function(){if("undefined"==typeof Uint8Array)throw new Error("Buffer.toArrayBuffer not supported in this browser");if(i._useTypedArrays)return new i(this).buffer;for(var t=new Uint8Array(this.length),e=0,n=t.length;e<n;e+=1)t[e]=this[e];return t.buffer};var E=i.prototype;function S(t,e,n){return"number"!=typeof t?n:e<=(t=~~t)?e:0<=t||0<=(t+=e)?t:0}function T(t){return(t=~~Math.ceil(+t))<0?0:t}function I(t){return(Array.isArray||function(t){return"[object Array]"===Object.prototype.toString.call(t)})(t)}function N(t){return t<16?"0"+t.toString(16):t.toString(16)}function O(t){for(var e=[],n=0;n<t.length;n++){var r=t.charCodeAt(n);if(r<=127)e.push(t.charCodeAt(n));else for(var i=n,o=(55296<=r&&r<=57343&&n++,encodeURIComponent(t.slice(i,n+1)).substr(1).split("%")),s=0;s<o.length;s++)e.push(parseInt(o[s],16))}return e}function M(t){return h.toByteArray(t)}function L(t,e,n,r){for(var i=0;i<r&&!(i+n>=e.length||i>=t.length);i++)e[i+n]=t[i];return i}function B(t){try{return decodeURIComponent(t)}catch(t){return String.fromCharCode(65533)}}function P(t,e){F("number"==typeof t,"cannot write a non-number as a number"),F(0<=t,"specified a negative value for writing an unsigned value"),F(t<=e,"value is larger than maximum value for type"),F(Math.floor(t)===t,"value has a fractional component")}function R(t,e,n){F("number"==typeof t,"cannot write a non-number as a number"),F(t<=e,"value larger than maximum allowed value"),F(n<=t,"value smaller than minimum allowed value"),F(Math.floor(t)===t,"value has a fractional component")}function D(t,e,n){F("number"==typeof t,"cannot write a non-number as a number"),F(t<=e,"value larger than maximum allowed value"),F(n<=t,"value smaller than minimum allowed value")}function F(t,e){if(!t)throw new Error(e||"Failed assertion")}i._augment=function(t){return t._isBuffer=!0,t._get=t.get,t._set=t.set,t.get=E.get,t.set=E.set,t.write=E.write,t.toString=E.toString,t.toLocaleString=E.toString,t.toJSON=E.toJSON,t.copy=E.copy,t.slice=E.slice,t.readUInt8=E.readUInt8,t.readUInt16LE=E.readUInt16LE,t.readUInt16BE=E.readUInt16BE,t.readUInt32LE=E.readUInt32LE,t.readUInt32BE=E.readUInt32BE,t.readInt8=E.readInt8,t.readInt16LE=E.readInt16LE,t.readInt16BE=E.readInt16BE,t.readInt32LE=E.readInt32LE,t.readInt32BE=E.readInt32BE,t.readFloatLE=E.readFloatLE,t.readFloatBE=E.readFloatBE,t.readDoubleLE=E.readDoubleLE,t.readDoubleBE=E.readDoubleBE,t.writeUInt8=E.writeUInt8,t.writeUInt16LE=E.writeUInt16LE,t.writeUInt16BE=E.writeUInt16BE,t.writeUInt32LE=E.writeUInt32LE,t.writeUInt32BE=E.writeUInt32BE,t.writeInt8=E.writeInt8,t.writeInt16LE=E.writeInt16LE,t.writeInt16BE=E.writeInt16BE,t.writeInt32LE=E.writeInt32LE,t.writeInt32BE=E.writeInt32BE,t.writeFloatLE=E.writeFloatLE,t.writeFloatBE=E.writeFloatBE,t.writeDoubleLE=E.writeDoubleLE,t.writeDoubleBE=E.writeDoubleBE,t.fill=E.fill,t.inspect=E.inspect,t.toArrayBuffer=E.toArrayBuffer,t}}).call(this,t("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},t("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/buffer/index.js","/node_modules/gulp-browserify/node_modules/buffer")},{"base64-js":2,buffer:3,ieee754:10,lYpoI2:11}],4:[function(t,e,n){(function(n,r,i,o,s,a,u,l,c){i=t("buffer").Buffer;var h=new i(4);h.fill(0),e.exports={hash:function(t,e,n,r){for(var o=e(function(t,e){t.length%4!=0&&(n=t.length+(4-t.length%4),t=i.concat([t,h],n));for(var n,r=[],o=e?t.readInt32BE:t.readInt32LE,s=0;s<t.length;s+=4)r.push(o.call(t,s));return r}(t=i.isBuffer(t)?t:new i(t),r),8*t.length),s=(e=r,new i(n)),a=e?s.writeInt32BE:s.writeInt32LE,u=0;u<o.length;u++)a.call(s,o[u],4*u,!0);return s}}}).call(this,t("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},t("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/crypto-browserify/helpers.js","/node_modules/gulp-browserify/node_modules/crypto-browserify")},{buffer:3,lYpoI2:11}],5:[function(t,e,n){(function(e,r,i,o,s,a,u,l,c){i=t("buffer").Buffer;var h=t("./sha"),f=t("./sha256"),d=t("./rng"),p={sha1:h,sha256:f,md5:t("./md5")},g=64,m=new i(g);function v(t,e){var n=p[t=t||"sha1"],r=[];return n||y("algorithm:",t,"is not yet supported"),{update:function(t){return i.isBuffer(t)||(t=new i(t)),r.push(t),t.length,this},digest:function(t){var o=i.concat(r);return o=e?function(t,e,n){i.isBuffer(e)||(e=new i(e)),i.isBuffer(n)||(n=new i(n)),e.length>g?e=t(e):e.length<g&&(e=i.concat([e,m],g));for(var r=new i(g),o=new i(g),s=0;s<g;s++)r[s]=54^e[s],o[s]=92^e[s];return n=t(i.concat([r,n])),t(i.concat([o,n]))}(n,e,o):n(o),r=null,t?o.toString(t):o}}}function y(){var t=[].slice.call(arguments).join(" ");throw new Error([t,"we accept pull requests","http://github.com/dominictarr/crypto-browserify"].join("\n"))}m.fill(0),n.createHash=function(t){return v(t)},n.createHmac=v,n.randomBytes=function(t,e){if(!e||!e.call)return new i(d(t));try{e.call(this,void 0,new i(d(t)))}catch(t){e(t)}};var b,w=["createCredentials","createCipher","createCipheriv","createDecipher","createDecipheriv","createSign","createVerify","createDiffieHellman","pbkdf2"],C=function(t){n[t]=function(){y("sorry,",t,"is not implemented yet")}};for(b in w)C(w[b])}).call(this,t("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},t("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/crypto-browserify/index.js","/node_modules/gulp-browserify/node_modules/crypto-browserify")},{"./md5":6,"./rng":7,"./sha":8,"./sha256":9,buffer:3,lYpoI2:11}],6:[function(t,e,n){(function(n,r,i,o,s,a,u,l,c){var h=t("./helpers");function f(t,e){t[e>>5]|=128<<e%32,t[14+(e+64>>>9<<4)]=e;for(var n=1732584193,r=-271733879,i=-1732584194,o=271733878,s=0;s<t.length;s+=16){var a=n,u=r,l=i,c=o;n=p(n,r,i,o,t[s+0],7,-680876936),o=p(o,n,r,i,t[s+1],12,-389564586),i=p(i,o,n,r,t[s+2],17,606105819),r=p(r,i,o,n,t[s+3],22,-1044525330),n=p(n,r,i,o,t[s+4],7,-176418897),o=p(o,n,r,i,t[s+5],12,1200080426),i=p(i,o,n,r,t[s+6],17,-1473231341),r=p(r,i,o,n,t[s+7],22,-45705983),n=p(n,r,i,o,t[s+8],7,1770035416),o=p(o,n,r,i,t[s+9],12,-1958414417),i=p(i,o,n,r,t[s+10],17,-42063),r=p(r,i,o,n,t[s+11],22,-1990404162),n=p(n,r,i,o,t[s+12],7,1804603682),o=p(o,n,r,i,t[s+13],12,-40341101),i=p(i,o,n,r,t[s+14],17,-1502002290),n=g(n,r=p(r,i,o,n,t[s+15],22,1236535329),i,o,t[s+1],5,-165796510),o=g(o,n,r,i,t[s+6],9,-1069501632),i=g(i,o,n,r,t[s+11],14,643717713),r=g(r,i,o,n,t[s+0],20,-373897302),n=g(n,r,i,o,t[s+5],5,-701558691),o=g(o,n,r,i,t[s+10],9,38016083),i=g(i,o,n,r,t[s+15],14,-660478335),r=g(r,i,o,n,t[s+4],20,-405537848),n=g(n,r,i,o,t[s+9],5,568446438),o=g(o,n,r,i,t[s+14],9,-1019803690),i=g(i,o,n,r,t[s+3],14,-187363961),r=g(r,i,o,n,t[s+8],20,1163531501),n=g(n,r,i,o,t[s+13],5,-1444681467),o=g(o,n,r,i,t[s+2],9,-51403784),i=g(i,o,n,r,t[s+7],14,1735328473),n=m(n,r=g(r,i,o,n,t[s+12],20,-1926607734),i,o,t[s+5],4,-378558),o=m(o,n,r,i,t[s+8],11,-2022574463),i=m(i,o,n,r,t[s+11],16,1839030562),r=m(r,i,o,n,t[s+14],23,-35309556),n=m(n,r,i,o,t[s+1],4,-1530992060),o=m(o,n,r,i,t[s+4],11,1272893353),i=m(i,o,n,r,t[s+7],16,-155497632),r=m(r,i,o,n,t[s+10],23,-1094730640),n=m(n,r,i,o,t[s+13],4,681279174),o=m(o,n,r,i,t[s+0],11,-358537222),i=m(i,o,n,r,t[s+3],16,-722521979),r=m(r,i,o,n,t[s+6],23,76029189),n=m(n,r,i,o,t[s+9],4,-640364487),o=m(o,n,r,i,t[s+12],11,-421815835),i=m(i,o,n,r,t[s+15],16,530742520),n=v(n,r=m(r,i,o,n,t[s+2],23,-995338651),i,o,t[s+0],6,-198630844),o=v(o,n,r,i,t[s+7],10,1126891415),i=v(i,o,n,r,t[s+14],15,-1416354905),r=v(r,i,o,n,t[s+5],21,-57434055),n=v(n,r,i,o,t[s+12],6,1700485571),o=v(o,n,r,i,t[s+3],10,-1894986606),i=v(i,o,n,r,t[s+10],15,-1051523),r=v(r,i,o,n,t[s+1],21,-2054922799),n=v(n,r,i,o,t[s+8],6,1873313359),o=v(o,n,r,i,t[s+15],10,-30611744),i=v(i,o,n,r,t[s+6],15,-1560198380),r=v(r,i,o,n,t[s+13],21,1309151649),n=v(n,r,i,o,t[s+4],6,-145523070),o=v(o,n,r,i,t[s+11],10,-1120210379),i=v(i,o,n,r,t[s+2],15,718787259),r=v(r,i,o,n,t[s+9],21,-343485551),n=y(n,a),r=y(r,u),i=y(i,l),o=y(o,c)}return Array(n,r,i,o)}function d(t,e,n,r,i,o){return y((e=y(y(e,t),y(r,o)))<<i|e>>>32-i,n)}function p(t,e,n,r,i,o,s){return d(e&n|~e&r,t,e,i,o,s)}function g(t,e,n,r,i,o,s){return d(e&r|n&~r,t,e,i,o,s)}function m(t,e,n,r,i,o,s){return d(e^n^r,t,e,i,o,s)}function v(t,e,n,r,i,o,s){return d(n^(e|~r),t,e,i,o,s)}function y(t,e){var n=(65535&t)+(65535&e);return(t>>16)+(e>>16)+(n>>16)<<16|65535&n}e.exports=function(t){return h.hash(t,f,16)}}).call(this,t("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},t("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/crypto-browserify/md5.js","/node_modules/gulp-browserify/node_modules/crypto-browserify")},{"./helpers":4,buffer:3,lYpoI2:11}],7:[function(t,e,n){(function(t,n,r,i,o,s,a,u,l){e.exports=function(t){for(var e,n=new Array(t),r=0;r<t;r++)!(3&r)&&(e=4294967296*Math.random()),n[r]=e>>>((3&r)<<3)&255;return n}}).call(this,t("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},t("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/crypto-browserify/rng.js","/node_modules/gulp-browserify/node_modules/crypto-browserify")},{buffer:3,lYpoI2:11}],8:[function(t,e,n){(function(n,r,i,o,s,a,u,l,c){var h=t("./helpers");function f(t,e){t[e>>5]|=128<<24-e%32,t[15+(e+64>>9<<4)]=e;for(var n,r,i,o=Array(80),s=1732584193,a=-271733879,u=-1732584194,l=271733878,c=-1009589776,h=0;h<t.length;h+=16){for(var f=s,g=a,m=u,v=l,y=c,b=0;b<80;b++){o[b]=b<16?t[h+b]:p(o[b-3]^o[b-8]^o[b-14]^o[b-16],1);var w=d(d(p(s,5),(w=a,r=u,i=l,(n=b)<20?w&r|~w&i:!(n<40)&&n<60?w&r|w&i|r&i:w^r^i)),d(d(c,o[b]),(n=b)<20?1518500249:n<40?1859775393:n<60?-1894007588:-899497514));c=l,l=u,u=p(a,30),a=s,s=w}s=d(s,f),a=d(a,g),u=d(u,m),l=d(l,v),c=d(c,y)}return Array(s,a,u,l,c)}function d(t,e){var n=(65535&t)+(65535&e);return(t>>16)+(e>>16)+(n>>16)<<16|65535&n}function p(t,e){return t<<e|t>>>32-e}e.exports=function(t){return h.hash(t,f,20,!0)}}).call(this,t("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},t("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/crypto-browserify/sha.js","/node_modules/gulp-browserify/node_modules/crypto-browserify")},{"./helpers":4,buffer:3,lYpoI2:11}],9:[function(t,e,n){(function(n,r,i,o,s,a,u,l,c){function h(t,e){var n=(65535&t)+(65535&e);return(t>>16)+(e>>16)+(n>>16)<<16|65535&n}function f(t,e){var n,r=new Array(1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298),i=new Array(1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225),o=new Array(64);t[e>>5]|=128<<24-e%32,t[15+(e+64>>9<<4)]=e;for(var s,a,u=0;u<t.length;u+=16){for(var l=i[0],c=i[1],f=i[2],d=i[3],m=i[4],v=i[5],y=i[6],b=i[7],w=0;w<64;w++)o[w]=w<16?t[w+u]:h(h(h((a=o[w-2],p(a,17)^p(a,19)^g(a,10)),o[w-7]),(a=o[w-15],p(a,7)^p(a,18)^g(a,3))),o[w-16]),n=h(h(h(h(b,p(a=m,6)^p(a,11)^p(a,25)),m&v^~m&y),r[w]),o[w]),s=h(p(s=l,2)^p(s,13)^p(s,22),l&c^l&f^c&f),b=y,y=v,v=m,m=h(d,n),d=f,f=c,c=l,l=h(n,s);i[0]=h(l,i[0]),i[1]=h(c,i[1]),i[2]=h(f,i[2]),i[3]=h(d,i[3]),i[4]=h(m,i[4]),i[5]=h(v,i[5]),i[6]=h(y,i[6]),i[7]=h(b,i[7])}return i}var d=t("./helpers"),p=function(t,e){return t>>>e|t<<32-e},g=function(t,e){return t>>>e};e.exports=function(t){return d.hash(t,f,32,!0)}}).call(this,t("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},t("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/crypto-browserify/sha256.js","/node_modules/gulp-browserify/node_modules/crypto-browserify")},{"./helpers":4,buffer:3,lYpoI2:11}],10:[function(t,e,n){(function(t,e,r,i,o,s,a,u,l){n.read=function(t,e,n,r,i){var o,s,a=8*i-r-1,u=(1<<a)-1,l=u>>1,c=-7,h=n?i-1:0,f=n?-1:1;for(i=t[e+h],h+=f,o=i&(1<<-c)-1,i>>=-c,c+=a;0<c;o=256*o+t[e+h],h+=f,c-=8);for(s=o&(1<<-c)-1,o>>=-c,c+=r;0<c;s=256*s+t[e+h],h+=f,c-=8);if(0===o)o=1-l;else{if(o===u)return s?NaN:1/0*(i?-1:1);s+=Math.pow(2,r),o-=l}return(i?-1:1)*s*Math.pow(2,o-r)},n.write=function(t,e,n,r,i,o){var s,a,u=8*o-i-1,l=(1<<u)-1,c=l>>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,f=r?0:o-1,d=r?1:-1;for(o=e<0||0===e&&1/e<0?1:0,e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,s=l):(s=Math.floor(Math.log(e)/Math.LN2),e*(r=Math.pow(2,-s))<1&&(s--,r*=2),2<=(e+=1<=s+c?h/r:h*Math.pow(2,1-c))*r&&(s++,r/=2),l<=s+c?(a=0,s=l):1<=s+c?(a=(e*r-1)*Math.pow(2,i),s+=c):(a=e*Math.pow(2,c-1)*Math.pow(2,i),s=0));8<=i;t[n+f]=255&a,f+=d,a/=256,i-=8);for(s=s<<i|a,u+=i;0<u;t[n+f]=255&s,f+=d,s/=256,u-=8);t[n+f-d]|=128*o}}).call(this,t("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},t("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/ieee754/index.js","/node_modules/gulp-browserify/node_modules/ieee754")},{buffer:3,lYpoI2:11}],11:[function(t,e,n){(function(t,n,r,i,o,s,a,u,l){var c,h,f;function d(){}(t=e.exports={}).nextTick=(h="undefined"!=typeof window&&window.setImmediate,f="undefined"!=typeof window&&window.postMessage&&window.addEventListener,h?function(t){return window.setImmediate(t)}:f?(c=[],window.addEventListener("message",(function(t){var e=t.source;e!==window&&null!==e||"process-tick"!==t.data||(t.stopPropagation(),0<c.length&&c.shift()())}),!0),function(t){c.push(t),window.postMessage("process-tick","*")}):function(t){setTimeout(t,0)}),t.title="browser",t.browser=!0,t.env={},t.argv=[],t.on=d,t.addListener=d,t.once=d,t.off=d,t.removeListener=d,t.removeAllListeners=d,t.emit=d,t.binding=function(t){throw new Error("process.binding is not supported")},t.cwd=function(){return"/"},t.chdir=function(t){throw new Error("process.chdir is not supported")}}).call(this,t("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},t("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/process/browser.js","/node_modules/gulp-browserify/node_modules/process")},{buffer:3,lYpoI2:11}]},{},[1])(1)},146:(t,e)=>{"use strict";var n;!function(){var r=e||{}||this||window;void 0===(n=function(){return r}.apply(e,[]))||(t.exports=n),r.default=r;var i="http://www.w3.org/2000/xmlns/",o="http://www.w3.org/2000/svg",s=/url\(["']?(.+?)["']?\)/,a={woff2:"font/woff2",woff:"font/woff",otf:"application/x-font-opentype",ttf:"application/x-font-ttf",eot:"application/vnd.ms-fontobject",sfnt:"application/font-sfnt",svg:"image/svg+xml"},u=function(t){return t instanceof HTMLElement||t instanceof SVGElement},l=function(t){if(!u(t))throw new Error("an HTMLElement or SVGElement is required; got "+t)},c=function(t){return new Promise((function(e,n){u(t)?e(t):n(new Error("an HTMLElement or SVGElement is required; got "+t))}))},h=function(t,e,n){var r=t.viewBox&&t.viewBox.baseVal&&t.viewBox.baseVal[n]||null!==e.getAttribute(n)&&!e.getAttribute(n).match(/%$/)&&parseInt(e.getAttribute(n))||t.getBoundingClientRect()[n]||parseInt(e.style[n])||parseInt(window.getComputedStyle(t).getPropertyValue(n));return null==r||isNaN(parseFloat(r))?0:r},f=function(t){for(var e=window.atob(t.split(",")[1]),n=t.split(",")[0].split(":")[1].split(";")[0],r=new ArrayBuffer(e.length),i=new Uint8Array(r),o=0;o<e.length;o++)i[o]=e.charCodeAt(o);return new Blob([r],{type:n})},d={},p=null,g=function(t,e){var n=e||{},r=n.selectorRemap,i=n.modifyStyle,o=n.modifyCss,u=n.fonts,l=n.excludeUnusedCss,c=o||function(t,e){return(r?r(t):t)+"{"+(i?i(e):e)+"}\n"},h=[],f=void 0===u,g=u||[];return(p||(p=Array.from(document.styleSheets).map((function(t){try{return{rules:t.cssRules,href:t.href}}catch(e){return console.warn("Stylesheet could not be loaded: "+t.href,e),{}}})))).forEach((function(e){var n=e.rules,r=e.href;n&&Array.from(n).forEach((function(e){if(void 0!==e.style)if(function(t,e){if(e)try{return t.querySelector(e)||t.parentNode&&t.parentNode.querySelector(e)}catch(t){console.warn('Invalid CSS selector "'+e+'"',t)}}(t,e.selectorText))h.push(c(e.selectorText,e.style.cssText));else if(f&&e.cssText.match(/^@font-face/)){var n=function(t,e){var n=t.cssText.match(s),r=n&&n[1]||"";if(r&&!r.match(/^data:/)&&"about:blank"!==r){var i,o,u=r.startsWith("../")?e+"/../"+r:r.startsWith("./")?e+"/."+r:r;return{text:t.cssText,format:(i=u,o=Object.keys(a).filter((function(t){return i.indexOf("."+t)>0})).map((function(t){return a[t]})),o?o[0]:(console.error("Unknown font format for "+i+". Fonts may not be working correctly."),"application/octet-stream")),url:u}}}(e,r);n&&g.push(n)}else l||h.push(e.cssText)}))})),function(t){return Promise.all(t.map((function(t){return new Promise((function(e,n){if(d[t.url])return e(d[t.url]);var r=new XMLHttpRequest;r.addEventListener("load",(function(){var n=function(t){for(var e="",n=new Uint8Array(t),r=0;r<n.byteLength;r++)e+=String.fromCharCode(n[r]);return window.btoa(e)}(r.response),i=t.text.replace(s,'url("data:'+t.format+";base64,"+n+'")')+"\n";d[t.url]=i,e(i)})),r.addEventListener("error",(function(n){console.warn("Failed to load font from: "+t.url,n),d[t.url]=null,e(null)})),r.addEventListener("abort",(function(n){console.warn("Aborted loading font from: "+t.url,n),e(null)})),r.open("GET",t.url),r.responseType="arraybuffer",r.send()}))}))).then((function(t){return t.filter((function(t){return t})).join("")}))}(g).then((function(t){return h.join("\n")+t}))},m=function(){if(!navigator.msSaveOrOpenBlob&&!("download"in document.createElement("a")))return{popup:window.open()}};r.prepareSvg=function(t,e,n){l(t);var r=e||{},s=r.left,a=void 0===s?0:s,u=r.top,c=void 0===u?0:u,f=r.width,d=r.height,p=r.scale,m=void 0===p?1:p,v=r.responsive,y=void 0!==v&&v,b=r.excludeCss,w=void 0!==b&&b;return function(t){return Promise.all(Array.from(t.querySelectorAll("image")).map((function(t){var e,n=t.getAttributeNS("http://www.w3.org/1999/xlink","href")||t.getAttribute("href");return n?((e=n)&&0===e.lastIndexOf("http",0)&&-1===e.lastIndexOf(window.location.host)&&(n+=(-1===n.indexOf("?")?"?":"&")+"t="+(new Date).valueOf()),new Promise((function(e,r){var i=document.createElement("canvas"),o=new Image;o.crossOrigin="anonymous",o.src=n,o.onerror=function(){return r(new Error("Could not load "+n))},o.onload=function(){i.width=o.width,i.height=o.height,i.getContext("2d").drawImage(o,0,0),t.setAttributeNS("http://www.w3.org/1999/xlink","href",i.toDataURL("image/png")),e(!0)}}))):Promise.resolve(null)})))}(t).then((function(){var r=t.cloneNode(!0);r.style.backgroundColor=(e||{}).backgroundColor||t.style.backgroundColor;var s=function(t,e,n,r){if("svg"===t.tagName)return{width:n||h(t,e,"width"),height:r||h(t,e,"height")};if(t.getBBox){var i=t.getBBox(),o=i.x,s=i.y;return{width:o+i.width,height:s+i.height}}}(t,r,f,d),u=s.width,l=s.height;if("svg"!==t.tagName){if(!t.getBBox)return void console.error("Attempted to render non-SVG element",t);null!=r.getAttribute("transform")&&r.setAttribute("transform",r.getAttribute("transform").replace(/translate\(.*?\)/,""));var p=document.createElementNS("http://www.w3.org/2000/svg","svg");p.appendChild(r),r=p}if(r.setAttribute("version","1.1"),r.setAttribute("viewBox",[a,c,u,l].join(" ")),r.getAttribute("xmlns")||r.setAttributeNS(i,"xmlns",o),r.getAttribute("xmlns:xlink")||r.setAttributeNS(i,"xmlns:xlink","http://www.w3.org/1999/xlink"),y?(r.removeAttribute("width"),r.removeAttribute("height"),r.setAttribute("preserveAspectRatio","xMinYMin meet")):(r.setAttribute("width",u*m),r.setAttribute("height",l*m)),Array.from(r.querySelectorAll("foreignObject > *")).forEach((function(t){t.setAttributeNS(i,"xmlns","svg"===t.tagName?o:"http://www.w3.org/1999/xhtml")})),!w)return g(t,e).then((function(t){var e=document.createElement("style");e.setAttribute("type","text/css"),e.innerHTML="<![CDATA[\n"+t+"\n]]>";var i=document.createElement("defs");i.appendChild(e),r.insertBefore(i,r.firstChild);var o=document.createElement("div");o.appendChild(r);var s=o.innerHTML.replace(/NS\d+:href/gi,'xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href');if("function"!=typeof n)return{src:s,width:u,height:l};n(s,u,l)}));var v=document.createElement("div");v.appendChild(r);var b=v.innerHTML;if("function"!=typeof n)return{src:b,width:u,height:l};n(b,u,l)}))},r.svgAsDataUri=function(t,e,n){return l(t),r.prepareSvg(t,e).then((function(t){var e=t.src,r=t.width,i=t.height,o="data:image/svg+xml;base64,"+window.btoa(decodeURIComponent(encodeURIComponent('<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [<!ENTITY nbsp "&#160;">]>'+e).replace(/%([0-9A-F]{2})/g,(function(t,e){var n=String.fromCharCode("0x"+e);return"%"===n?"%25":n}))));return"function"==typeof n&&n(o,r,i),o}))},r.svgAsPngUri=function(t,e,n){l(t);var i=e||{},o=i.encoderType,s=void 0===o?"image/png":o,a=i.encoderOptions,u=void 0===a?.8:a,c=i.canvg,h=function(t){var e=t.src,r=t.width,i=t.height,o=document.createElement("canvas"),a=o.getContext("2d"),l=window.devicePixelRatio||1;o.width=r*l,o.height=i*l,o.style.width=o.width+"px",o.style.height=o.height+"px",a.setTransform(l,0,0,l,0,0),c?c(o,e):a.drawImage(e,0,0);var h=void 0;try{h=o.toDataURL(s,u)}catch(t){if("undefined"!=typeof SecurityError&&t instanceof SecurityError||"SecurityError"===t.name)return void console.error("Rendered SVG images cannot be downloaded in this browser.");throw t}return"function"==typeof n&&n(h,o.width,o.height),Promise.resolve(h)};return c?r.prepareSvg(t,e).then(h):r.svgAsDataUri(t,e).then((function(t){return new Promise((function(e,n){var r=new Image;r.onload=function(){return e(h({src:r,width:r.width,height:r.height}))},r.onerror=function(){n("There was an error loading the data URI as an image on the following SVG\n"+window.atob(t.slice(26))+"Open the following link to see browser's diagnosis\n"+t)},r.src=t}))}))},r.download=function(t,e,n){if(navigator.msSaveOrOpenBlob)navigator.msSaveOrOpenBlob(f(e),t);else{var r=document.createElement("a");if("download"in r){r.download=t,r.style.display="none",document.body.appendChild(r);try{var i=f(e),o=URL.createObjectURL(i);r.href=o,r.onclick=function(){return requestAnimationFrame((function(){return URL.revokeObjectURL(o)}))}}catch(t){console.error(t),console.warn("Error while getting object URL. Falling back to string URL."),r.href=e}r.click(),document.body.removeChild(r)}else n&&n.popup&&(n.popup.document.title=t,n.popup.location.replace(e))}},r.saveSvg=function(t,e,n){var i=m();return c(t).then((function(t){return r.svgAsDataUri(t,n||{})})).then((function(t){return r.download(e,t,i)}))},r.saveSvgAsPng=function(t,e,n){var i=m();return c(t).then((function(t){return r.svgAsPngUri(t,n||{})})).then((function(t){return r.download(e,t,i)}))}}()},72:t=>{"use strict";var e=[];function n(t){for(var n=-1,r=0;r<e.length;r++)if(e[r].identifier===t){n=r;break}return n}function r(t,r){for(var o={},s=[],a=0;a<t.length;a++){var u=t[a],l=r.base?u[0]+r.base:u[0],c=o[l]||0,h="".concat(l," ").concat(c);o[l]=c+1;var f=n(h),d={css:u[1],media:u[2],sourceMap:u[3],supports:u[4],layer:u[5]};if(-1!==f)e[f].references++,e[f].updater(d);else{var p=i(d,r);r.byIndex=a,e.splice(a,0,{identifier:h,updater:p,references:1})}s.push(h)}return s}function i(t,e){var n=e.domAPI(e);return n.update(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap&&e.supports===t.supports&&e.layer===t.layer)return;n.update(t=e)}else n.remove()}}t.exports=function(t,i){var o=r(t=t||[],i=i||{});return function(t){t=t||[];for(var s=0;s<o.length;s++){var a=n(o[s]);e[a].references--}for(var u=r(t,i),l=0;l<o.length;l++){var c=n(o[l]);0===e[c].references&&(e[c].updater(),e.splice(c,1))}o=u}}},659:t=>{"use strict";var e={};t.exports=function(t,n){var r=function(t){if(void 0===e[t]){var n=document.querySelector(t);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(t){n=null}e[t]=n}return e[t]}(t);if(!r)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");r.appendChild(n)}},540:t=>{"use strict";t.exports=function(t){var e=document.createElement("style");return t.setAttributes(e,t.attributes),t.insert(e,t.options),e}},56:(t,e,n)=>{"use strict";t.exports=function(t){var e=n.nc;e&&t.setAttribute("nonce",e)}},825:t=>{"use strict";t.exports=function(t){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var e=t.insertStyleElement(t);return{update:function(n){!function(t,e,n){var r="";n.supports&&(r+="@supports (".concat(n.supports,") {")),n.media&&(r+="@media ".concat(n.media," {"));var i=void 0!==n.layer;i&&(r+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," {")),r+=n.css,i&&(r+="}"),n.media&&(r+="}"),n.supports&&(r+="}");var o=n.sourceMap;o&&"undefined"!=typeof btoa&&(r+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(o))))," */")),e.styleTagTransform(r,t,e.options)}(e,t,n)},remove:function(){!function(t){if(null===t.parentNode)return!1;t.parentNode.removeChild(t)}(e)}}}},113:t=>{"use strict";t.exports=function(t,e){if(e.styleSheet)e.styleSheet.cssText=t;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(t))}}}},e={};function n(r){var i=e[r];if(void 0!==i)return i.exports;var o=e[r]={id:r,loaded:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.loaded=!0,o.exports}n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.nmd=t=>(t.paths=[],t.children||(t.children=[]),t),n.nc=void 0;var r={};(()=>{"use strict";n.r(r),n.d(r,{_package:()=>kr,addContextMenu:()=>si,createMonomerLibraryForPolyTool:()=>oi,demoOligoPattern:()=>Kr,demoOligoStructure:()=>Jr,demoTranslateSequence:()=>Yr,getCodeToWeightsMap:()=>qr,getMolfileFromGcrsSequence:()=>Wr,getPolyToolConvertEditor:()=>ti,getTranslationHelper:()=>jr,linkStrands:()=>zr,oligoPatternApp:()=>$r,oligoStructureApp:()=>Vr,oligoToolkitApp:()=>Hr,oligoTranslatorApp:()=>Ur,polyToolColumnChoice:()=>ii,polyToolConvert2:()=>ei,polyToolConvertTopMenu:()=>Zr,polyToolEnumerateChemTopMenu:()=>ri,polyToolEnumerateHelmTopMenu:()=>ni,ptEnumeratorChemApp:()=>li,ptEnumeratorHelmApp:()=>ai,translateOligonucleotideSequence:()=>Qr,validateSequence:()=>Gr});const t=grok,e=DG;class i{constructor(t,e=!1){if(this._length=0,this._version=0,this._updateLevel=0,this._selectedCount=0,this._selectedCountVersion=-1,this._selectedIndexesVersion=-1,this._versionedName="",this._versionedNameVersion=-1,this.SHRINK_THRESHOLD=256,"number"==typeof t){const n=t,r=i._createBuffer(n);if(e)for(let t=0;t<r.length;t++)r[t]=-1;this._data=r,this._length=n}else{if(!(t instanceof Uint32Array))throw new Error("Invalid constructor");this._data=t,this._length=e}}getRawData(){return this._data}assureGoez(t,e){if(t<0)throw new Error(`${e} should be greater than zero`)}assureInRange(t,e,n,r){if(t<e||t>n)throw new Error(`Argument ${r} (${t}) out of range (${e}, ${n})`)}copy(t,e,n){for(let r=0;r<n;r++)e[r]=t[r]}copyFrom(t){if(this._length!=t._length)throw new Error(`Lengths differ (${this._length} != ${t._length})`);this.copy(t._data,this._data,this.lengthInInts),this._version++}get length(){return this._length}get buffer(){return this._data}set buffer(t){this._data=t,this._version++}get version(){return this._version}set version(t){this._version=t}incrementVersion(t=!0){this._version++}get lengthInInts(){return Math.floor((this._length+31)/32)}get versionedName(){return this._version==this._versionedNameVersion?this._versionedName:""}set versionedName(t){this._versionedName=t,this._versionedNameVersion=this._version}get self(){return this}setLength(t){if(t<0)throw new Error("should be >= 0");if(t==this._length)return;const e=Math.floor((t+31)/32);if(e>this._data.length||e+this.SHRINK_THRESHOLD<this._data.length){const t=new Uint32Array(e);this.copy(this._data,t,e>this._data.length?this._data.length:e),this._data=t}t>this._length&&(this._length%32>0&&(this._data[this.lengthInInts-1]&=(1<<(this._length%32&31))-1),this._data.fill(0,this.lengthInInts,e)),this._length=t,this._version++}static fromAnd(t,e){if(t._length!=e._length)throw new Error(`Lengths differ (${t._length} != ${e._length})`);const n=new i(t._length);n._length=t._length,n._data=i._createBuffer(n._length),n._version=0;const r=t.lengthInInts;for(let i=0;i<r;i++)n._data[i]=t._data[i]&e._data[i];return n}static _createBuffer(t){return new Uint32Array(Math.floor((t+31)/32))}static fromValues(t){const e=new i(t.length);e._version=0;for(let n=0;n<e._length;n++)t[n]&&(e._data[Math.floor(n/32)]|=1<<(n%32&31));return e}static fromSeq(t,e){const n=new i(t);for(let r=0;r<t;++r)n.setBit(r,e(r));return n._version=0,n}static fromString(t){return i.fromSeq(t.length,(e=>"1"==t.charAt(e)))}static fromUint32Array(t,e){const n=new i(t);return n._data=e,n}static fromBytes(t){const e=t.length,n=new i(8*e);n._data=new Uint32Array(Math.floor((e+3)/4)),n._length=8*e;let r=0,o=0;for(;e-o>=4;)n._data[r++]=255&t[o]|(255&t[o+1])<<8|(255&t[o+2])<<16|(255&t[o+3])<<24,o+=4;return e-o==3&&(n._data[r]=(255&t[o+2])<<16),e-o==2&&(n._data[r]|=(255&t[o+1])<<8),e-o==1&&(n._data[r]|=255&t[o]),n._version=0,n}toString(){return`${this._length} bits, ${this.countBits(!0)} set`}equals(t){if(this==t)return!0;if(null==t)return!1;if(this._length!=t._length)return!1;if(0==this._length)return!0;for(let e=0;e<this._data.length-1;e++)if(this._data[e]!=t._data[e])return!1;for(let e=8*(this._data.length-1);e<this._length;e++)if(this.getBit(e)!=t.getBit(e))return!1;return!0}clone(){const t=new i(0,!1);return t._data=Uint32Array.from(this._data),t._length=this._length,t._version=this._version,t}init(t,e){this.setAll(!1,!1);for(let e=0;e<this._length;e++)t(e)&&(this._data[Math.floor(e/32)]|=1<<(e%32&31));return this.incrementVersion(e),this}invert(t=!0){for(let t=0;t<this._data.length;t++)this._data[t]^=-1;this.incrementVersion(t)}setAll(t,e=!1){const n=t?-1:0,r=this.lengthInInts;for(let t=0;t<r;t++)this._data[t]=n;this.incrementVersion(e)}setIndexes(t,e=!0,n=!0,r=!0){n&&this.setAll(!e,!1);for(const n of t)this.setFast(n,e);this.incrementVersion(r)}everyIndex(t,e=!0){for(const n of t)if(this.getBit(n)!=e)return!1;return!0}anyIndex(t,e=!0){for(const n of t)if(this.getBit(n)==e)return!0;return!1}setWhere(t,e=!0,n=!0,r=!0,i=!0){if(n&&i&&this.setAll(!e,!1),i)for(let n=0;n<this._length;n++)t(n)&&this.setFast(n,e);else for(let n=0;n<this._length;n++)this.setFast(n,t(n)?e:!e);this.incrementVersion(r)}getRange(t,e){this.assureInRange(t,0,this._length-1,"from"),this.assureInRange(e,0,this._length,"to");const n=[];for(let r=t;r<e;++r)n.push(this.getBit(r));return i.fromValues(n)}getRangeAsList(t,e){this.assureInRange(t,0,this._length-1,"from"),this.assureInRange(e,0,this._length,"to");const n=[];for(let r=t;r<e;++r)n.push(this.getBit(r));return n}setRange(t,e,n,r=!0){this.assureInRange(t,0,this._length-1,"from"),this.assureInRange(e,0,this._length-1,"to");const i=Math.min(t,e),o=Math.max(t,e);if(n)for(let t=i;t<=o;t++)this.setTrue(t);else for(let t=i;t<=o;t++)this.setFalse(t);return this.incrementVersion(r),this}setRandom(t,e,n=!0){if(t<0||t>this._length)throw new Error("n must be >= 0 && <= Count");t>this._length/2&&this.setRandom(this._length-t,!e),this.setAll(!e);for(let n=0;n<t;){const t=Math.floor(Math.random()*this._length);this.getBit(t)!=e&&(this.setFast(t,e),n++)}this.incrementVersion(n)}and(t,e=!0){if(this._length!=t._length)throw new Error("Array lengths differ.");for(let e=0,n=this.lengthInInts;e<n;e++)this._data[e]&=t._data[e];return this.incrementVersion(e),this}andNot(t,e=!0){if(this._length!=t._length)throw new Error("Array lengths differ.");const n=this.lengthInInts;for(let e=0;e<n;e++)this._data[e]&=~t._data[e];return this.incrementVersion(e),this}notAnd(t,e=!0){if(this._length!=t._length)throw new Error("Array lengths differ.");for(let e=0,n=this.lengthInInts;e<n;e++)this._data[e]=~this._data[e]&t._data[e];return this.incrementVersion(e),this}not(t=!0){for(let t=0,e=this.lengthInInts;t<e;t++)this._data[t]=~this._data[t];return this.incrementVersion(t),this}or(t,e=!0){if(this._length!=t._length)throw new Error("Array lengths differ.");for(let e=0,n=this.lengthInInts;e<n;e++)this._data[e]|=t._data[e];return this.incrementVersion(e),this}xor(t,e=!0){if(this._length!=t._length)throw new Error("Array lengths differ.");for(let e=0,n=this.lengthInInts;e<n;e++)this._data[e]^=t._data[e];return this.incrementVersion(e),this}insertAt(t,e,n=!1){if(this.assureInRange(t,0,this._length,"pos"),0==e)return;const r=this._length;this.setLength(this._length+e);for(let n=r-1;n>=t;n--)this.setBit(n+e,this.getBit(n));for(let r=t;r<t+e;r++)this.setBit(r,n)}removeAt(t,e=1){if(e<0)throw new Error("n cannot be negative");if(this.assureInRange(t,0,this._length-e,"pos"),this.contains(!0))for(let n=t;n<this._length-e;n++)this.setBit(n,this.getBit(n+e));this.setLength(this._length-e)}removeByMask(t,e=!0){if(this._length!=t.length)throw new Error("length != mask.length");if(t==this)this.setLength(t.countBits(!e)),this.setAll(!e);else{let n=0;for(let r=-1;-1!=(r=t.findNext(r,!e));)this.setFast(n++,this.getBit(r));this._length=n,this._version++}return this}getBit(t){return!!(this._data[Math.floor(t/32)]&1<<(31&t))}setBit(t,e,n=!0){this.setFast(t,e),this._version++}setFast(t,e){e?this._data[Math.floor(t/32)]|=1<<(31&t):this._data[Math.floor(t/32)]&=~(1<<(31&t))}setTrue(t){this._data[Math.floor(t/32)]|=1<<(31&t)}setFalse(t){this._data[Math.floor(t/32)]&=~(1<<(31&t))}trueCount(){return this.countBits(!0)}falseCount(){return this.countBits(!1)}countBits(t){if(0==this._length)return 0;if(this._selectedCountVersion!=this._version){this._selectedCount=0;const t=this.lengthInInts;let e=0;for(;e<t-1;e++)for(let t=this._data[e];0!=t;t>>>=8)this._selectedCount+=i._onBitCount[255&t];let n=this._data[e];const r=31&this._length;for(0!=r&&(n&=~(4294967295<<r));0!=n;n>>>=8)this._selectedCount+=i._onBitCount[255&n];this._selectedCountVersion=this._version}return t?this._selectedCount:this._length-this._selectedCount}countWhere(t){let e=0;if(this.trueCount()==this._length)for(let n=0;n<this._length;n++)e+=t(n)?1:0;else for(let n=-1;-1!=(n=this.findNext(n,!0));)e+=t(n)?1:0;return e}andWithCountBits(t,e){if(0==this._length)return 0;let n=0;const r=this.lengthInInts;let o=0;for(;o<r-1;o++)for(let e=this._data[o]&t._data[o];0!=e;e>>>=8)n+=i._onBitCount[255&e];let s=this._data[o]&t._data[o];const a=31&this._length;for(0!=a&&(s&=~(4294967295<<a));0!=s;s>>>=8)n+=i._onBitCount[255&s];return e?n:this._length-n}clear(){this.setLength(0)}contains(t){return this.findNext(-1,t)>=0}get allTrue(){return this.countBits(!0)==this._length}get allFalse(){return this.countBits(!1)==this._length}get anyTrue(){return this.countBits(!0)>0}get anyFalse(){return this.countBits(!1)>0}findNext(t,e=!0){if(this.assureInRange(t,-1,this._length,"index"),t>=this._length-1)return-1;let n=31&(t=t<0?0:t+1);const r=this.lengthInInts;for(let o=Math.floor(t/32);o<r;o++){let r=e?this._data[o]:~this._data[o];if(0!=n)r&=4294967295<<n&4294967295,n=0;else if(!e&&-4294967296==r)continue;for(let e=0;0!=r;e+=8,r>>>=8){const n=i._firstOnBit[255&r];if(n>=0)return(t=n+32*o+e)>=this._length?-1:t}}return-1}findPrev(t,e=!0){if(0==t)return-1;this.assureInRange(t,-1,this._length,"index");let n=1+(t=t<0?this._length-1:t-1)&31;for(let r=Math.floor(t/32);r>=0;r--){let t=e?this._data[r]:~this._data[r];0!=n&&(t&=~(4294967295<<n),n=0);for(let e=24;0!=t;e-=8,t<<=8){const n=i._lastOnBit[t>>>24];if(n>=0)return n+32*r+e}}return-1}}var o,s,a,u,l,c,h;function f(t={}){const e=function(){if(!t||!t.scoringMatrix||!t.alphabetIndexes)return(t,e)=>t===e?0:1;if(t.scoringMatrix.length!==Object.keys(t.alphabetIndexes).length)throw new Error("Scoring matrix and alphabet indexes should have the same length");const e=t.alphabetIndexes,n=t.scoringMatrix,r=Math.min(...Object.keys(e).map((t=>t.charCodeAt(0))))+1,i=new Float32Array((n.length+r)*(n.length+r));return Object.entries(e).forEach((([t,r])=>{const o=n[r];Object.entries(e).forEach((([e,r])=>{i[t.charCodeAt(0)*n.length+e.charCodeAt(0)]=o[r]}))})),(t,e)=>1-i[t.charCodeAt(0)*n.length+e.charCodeAt(0)]}(),n=t?.threshold??0;return(t,r)=>{let i=0;const o=t.length,s=r.length,a=Math.ceil(Math.max(o,s)*(1-n));o!==s&&(i=Math.abs(o-s));let u=0;for(let n=0;n<Math.min(o,s);n++)if(t[n]!==r[n]&&(u+=e(t[n],r[n]),u>a))return 1;return u+=i,u/=Math.max(o,s),u}}i._onBitCount=Int8Array.from([0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8]),i._firstOnBit=Int8Array.from([-1,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0]),i._lastOnBit=Int8Array.from([-1,0,1,1,2,2,2,2,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7]),function(t){t.Levenshtein="Levenshtein",t.JaroWinkler="Jaro-Winkler",t.Manhattan="Manhattan",t.Onehot="One-Hot"}(o||(o={})),function(t){t.Euclidean="Euclidean"}(s||(s={})),function(t){t.Tanimoto="Tanimoto",t.Dice="Dice",t.Asymmetric="Asymmetric",t.BraunBlanquet="Braun-Blanquet",t.Cosine="Cosine",t.Kulczynski="Kulczynski",t.McConnaughey="Mc-Connaughey",t.RogotGoldberg="Rogot-Goldberg",t.Russel="Russel",t.Sokal="Sokal",t.Hamming="Hamming",t.Euclidean="Euclidean"}(a||(a={})),function(t){t.TanimotoIntArray="TanimotoIntArray"}(u||(u={})),function(t){t.Vector="Vector",t.String="String",t.BitArray="BitArray",t.MacroMolecule="MacroMolecule",t.Number="Number",t.IntArray="IntArray",t.NumberArray="NumberArray"}(l||(l={})),function(t){t.Difference="Difference"}(c||(c={})),function(t){t.CommonItems="Common Items"}(h||(h={}));const d=new Uint32Array(65536),p={gapOpen:1,gapExtend:.6,scoringMatrix:[[4,-1,-2,-2,0,-1,-1,0,-2,-1,-1,-1,-1,-2,-1,1,0,-3,-2,0,-2,-1,0,-4],[-1,5,0,-2,-3,1,0,-2,0,-3,-2,2,-1,-3,-2,-1,-1,-3,-2,-3,-1,0,-1,-4],[-2,0,6,1,-3,0,0,0,1,-3,-3,0,-2,-3,-2,1,0,-4,-2,-3,3,0,-1,-4],[-2,-2,1,6,-3,0,2,-1,-1,-3,-4,-1,-3,-3,-1,0,-1,-4,-3,-3,4,1,-1,-4],[0,-3,-3,-3,9,-3,-4,-3,-3,-1,-1,-3,-1,-2,-3,-1,-1,-2,-2,-1,-3,-3,-2,-4],[-1,1,0,0,-3,5,2,-2,0,-3,-2,1,0,-3,-1,0,-1,-2,-1,-2,0,3,-1,-4],[-1,0,0,2,-4,2,5,-2,0,-3,-3,1,-2,-3,-1,0,-1,-3,-2,-2,1,4,-1,-4],[0,-2,0,-1,-3,-2,-2,6,-2,-4,-4,-2,-3,-3,-2,0,-2,-2,-3,-3,-1,-2,-1,-4],[-2,0,1,-1,-3,0,0,-2,8,-3,-3,-1,-2,-1,-2,-1,-2,-2,2,-3,0,0,-1,-4],[-1,-3,-3,-3,-1,-3,-3,-4,-3,4,2,-3,1,0,-3,-2,-1,-3,-1,3,-3,-3,-1,-4],[-1,-2,-3,-4,-1,-2,-3,-4,-3,2,4,-2,2,0,-3,-2,-1,-2,-1,1,-4,-3,-1,-4],[-1,2,0,-1,-3,1,1,-2,-1,-3,-2,5,-1,-3,-1,0,-1,-3,-2,-2,0,1,-1,-4],[-1,-1,-2,-3,-1,0,-2,-3,-2,1,2,-1,5,0,-2,-1,-1,-1,-1,1,-3,-1,-1,-4],[-2,-3,-3,-3,-2,-3,-3,-3,-1,0,0,-3,0,6,-4,-2,-2,1,3,-1,-3,-3,-1,-4],[-1,-2,-2,-1,-3,-1,-1,-2,-2,-3,-3,-1,-2,-4,7,-1,-1,-4,-3,-2,-2,-1,-2,-4],[1,-1,1,0,-1,0,0,0,-1,-2,-2,0,-1,-2,-1,4,1,-3,-2,-2,0,0,0,-4],[0,-1,0,-1,-1,-1,-1,-2,-2,-1,-1,-1,-1,-2,-1,1,5,-2,-2,0,-1,-1,0,-4],[-3,-3,-4,-4,-2,-2,-3,-2,-2,-3,-2,-3,-1,1,-4,-3,-2,11,2,-3,-4,-3,-2,-4],[-2,-2,-2,-3,-2,-1,-2,-3,2,-1,-1,-2,-1,3,-3,-2,-2,2,7,-1,-3,-2,-1,-4],[0,-3,-3,-3,-1,-2,-2,-3,-3,3,1,-2,1,-1,-2,-2,0,-3,-1,4,-3,-2,-1,-4],[-2,-1,3,4,-3,0,1,-1,0,-3,-4,0,-3,-3,-2,0,-1,-4,-3,-3,4,1,-1,-4],[-1,0,0,1,-3,3,4,-2,0,-3,-3,1,-1,-3,-1,0,-1,-3,-2,-2,1,4,-1,-4],[0,-1,-1,-1,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,0,0,-2,-1,-1,-1,-1,-1,-4],[-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,1]],alphabetIndexes:{A:0,R:1,N:2,D:3,C:4,Q:5,E:6,G:7,H:8,I:9,L:10,K:11,M:12,F:13,P:14,S:15,T:16,W:17,Y:18,V:19,B:20,Z:21,X:22,"*":23}};var g;!function(t){t.HAMMING="Hamming",t.LEVENSHTEIN="Levenshtein",t.NEEDLEMANN_WUNSCH="Needlemann-Wunsch",t.MONOMER_CHEMICAL_DISTANCE="Monomer chemical distance"}(g||(g={}));const m={[g.HAMMING]:f,[g.LEVENSHTEIN]:function(){return(t,e)=>((t,e)=>{if(t.length<e.length){const n=e;e=t,t=n}return 0===e.length?t.length:t.length<=32?((t,e)=>{const n=t.length,r=e.length,i=1<<n-1;let o=-1,s=0,a=n,u=n;for(;u--;)d[t.charCodeAt(u)]|=1<<u;for(u=0;u<r;u++){let t=d[e.charCodeAt(u)];const n=t|s;t|=(t&o)+o^o,s|=~(t|o),o&=t,s&i&&a++,o&i&&a--,s=s<<1|1,o=o<<1|~(n|s),s&=n}for(u=n;u--;)d[t.charCodeAt(u)]=0;return a})(t,e):((t,e)=>{const n=e.length,r=t.length,i=[],o=[],s=Math.ceil(n/32),a=Math.ceil(r/32);for(let t=0;t<s;t++)o[t]=-1,i[t]=0;let u=0;for(;u<a-1;u++){let s=0,a=-1;const l=32*u,c=Math.min(32,r)+l;for(let e=l;e<c;e++)d[t.charCodeAt(e)]|=1<<e;for(let t=0;t<n;t++){const n=d[e.charCodeAt(t)],r=o[t/32|0]>>>t&1,u=i[t/32|0]>>>t&1,l=n|s,c=((n|u)&a)+a^a|n|u;let h=s|~(c|a),f=a&c;h>>>31^r&&(o[t/32|0]^=1<<t),f>>>31^u&&(i[t/32|0]^=1<<t),h=h<<1|r,f=f<<1|u,a=f|~(l|h),s=h&l}for(let e=l;e<c;e++)d[t.charCodeAt(e)]=0}let l=0,c=-1;const h=32*u,f=Math.min(32,r-h)+h;for(let e=h;e<f;e++)d[t.charCodeAt(e)]|=1<<e;let p=r;for(let t=0;t<n;t++){const n=d[e.charCodeAt(t)],s=o[t/32|0]>>>t&1,a=i[t/32|0]>>>t&1,u=n|l,h=((n|a)&c)+c^c|n|a;let f=l|~(h|c),g=c&h;p+=f>>>r-1&1,p-=g>>>r-1&1,f>>>31^s&&(o[t/32|0]^=1<<t),g>>>31^a&&(i[t/32|0]^=1<<t),f=f<<1|s,g=g<<1|a,c=g|~(u|f),l=f&u}for(let e=h;e<f;e++)d[t.charCodeAt(e)]=0;return p})(t,e)})(t,e)/Math.max(t.length,e.length)},[g.NEEDLEMANN_WUNSCH]:function(t){const e=new Uint16Array(65536),{gapOpen:n,gapExtend:r,scoringMatrix:i,alphabetIndexes:o}={...p,...t};Object.entries(o).forEach((([t,n])=>e[t.charCodeAt(0)]=n));const s=[new Float32Array(1e4),new Float32Array(1e4)];return(t,o)=>{const a=new Array(t.length+1).fill(!1),u=new Array(t.length+1).fill(!1);let l=0,c=1;for(let e=1;e<t.length+1;e++)s[0][e]=-r-(e-1)*r,s[1][e]=0;s[0][0]=0;for(let h=1;h<o.length+1;h++){s[c][0]=-r-(h-1)*r;for(let f=1;f<t.length+1;f++){const d=s[l][f-1]+i[e[t.charCodeAt(f-1)]][e[o.charCodeAt(h-1)]],p=s[l][f]-(a[f]||1===h||h===o.length?r:n),g=s[c][f-1]-(u[f-1]||1===f||f===t.length?r:n);s[c][f]=Math.max(d,g,p),s[c][f]===d?(a[f]=!1,u[f]=!1):s[c][f]===g?(a[f]=!1,u[f]=!0):(a[f]=!0,u[f]=!1)}l=c,c=(c+1)%2}const h=Math.min(t.length,o.length);return(h-s[l][t.length])/h}},[g.MONOMER_CHEMICAL_DISTANCE]:f};a.Tanimoto,a.Dice,a.Asymmetric,a.BraunBlanquet,a.Cosine,a.Kulczynski,a.McConnaughey,a.RogotGoldberg,a.Russel,a.Sokal,a.Hamming,a.Euclidean,a.Tanimoto,a.Dice,a.Asymmetric,a.BraunBlanquet,a.Cosine,a.Kulczynski,a.McConnaughey,a.RogotGoldberg,a.Russel,a.Sokal,a.Hamming,a.Euclidean,a.Tanimoto,a.Dice,a.Cosine,a.Tanimoto,a.Asymmetric,a.Cosine,a.Sokal,g.HAMMING,g.LEVENSHTEIN,g.MONOMER_CHEMICAL_DISTANCE,g.NEEDLEMANN_WUNSCH;const v={monomerType:"Backbone",smiles:"",name:"",author:"Datagrok",molfile:"",naturalAnalog:"",rgroups:[],createDate:null,id:0,polymerType:"PEPTIDE",symbol:""},y="p",b=new RegExp(`[rd]\\((\\w)\\)${y}?`,"g");class w{constructor(t,e,n){this.name=t,this.alphabet=e,this.cutoff=n}}class C extends w{constructor(t,e,n){super(t.name,t.alphabet,t.cutoff),this.freq=e,this.similarity=n}}const A=wu;var x,_,E,S,T,I=n.n(A);(T=x||(x={})).FASTA="fasta",T.SEPARATOR="separator",T.HELM="helm",(S=_||(_={})).DNA="DNA",S.RNA="RNA",S.PT="PT",S.UN="UN",function(t){t.aligned="aligned",t.alphabet="alphabet",t.alphabetSize=".alphabetSize",t.alphabetIsMultichar=".alphabetIsMultichar",t.separator="separator",t.isHelmCompatible=".isHelmCompatible",t.positionNames=".positionNames",t.positionLabels=".positionLabels",t.regions=".regions"}(E||(E={}));const N=/(?:\[([A-Za-z0-9_\-,()]+)\])|([A-Za-z\-])/g,O=new class{constructor(){this.fasta={peptide:new Set(["G","L","Y","S","E","Q","D","N","F","A","K","R","H","C","V","P","W","I","M","T"]),dna:new Set(["A","C","G","T"]),rna:new Set(["A","C","G","U"])}}},M=[new w(_.PT,O.fasta.peptide,.5),new w(_.DNA,O.fasta.dna,.55),new w(_.RNA,O.fasta.rna,.55)];class L extends Float32Array{}function B(t){let e=0;for(let n=0;n<t.length;n++)e+=t[n]*t[n];return Math.sqrt(e)}class P{static makePalette(t,e=!1,n=P){const r={};return t.forEach((t=>{const n=t[0],i=t[1];n.forEach(((t,n)=>{r[t]=this.colourPalette[i][e?0:n]}))})),new n(r)}constructor(t){this._palette=t}get(t){return this._palette[t]}}P.undefinedColor="rgb(100,100,100)",P.colourPalette={orange:["rgb(255,187,120)","rgb(245,167,100)","rgb(235,137,70)","rgb(205, 111, 71)"],all_green:["rgb(44,160,44)","rgb(74,160,74)","rgb(23,103,57)","rgb(30,110,96)","rgb(60,131,95)","rgb(24,110,79)","rgb(152,223,138)","rgb(182, 223, 138)","rgb(152, 193, 138)"],all_blue:["rgb(31,119,180)","rgb(23,190,207)","rgb(122, 102, 189)","rgb(158,218,229)","rgb(141, 124, 217)","rgb(31, 120, 150)"],magenta:["rgb(162,106,192)","rgb(197,165,224)","rgb(208,113,218)"],red:["rgb(214,39,40)","rgb(255,152,150)"],st_blue:["rgb(23,190,207)","rgb(158,218,229)","rgb(31,119,180)"],dark_blue:["rgb(31,119,180)","rgb(31, 120, 150)"],light_blue:["rgb(23,190,207)","rgb(158,218,229)","rgb(108, 218, 229)","rgb(23,190,227)"],lilac_blue:["rgb(124,102,211)","rgb(149,134,217)","rgb(97, 81, 150)"],dark_green:["rgb(23,103,57)","rgb(30,110,96)","rgb(60,131,95)","rgb(24,110,79)"],green:["rgb(44,160,44)","rgb(74,160,74)"],light_green:["rgb(152,223,138)","rgb(182, 223, 138)","rgb(152, 193, 138)"],st_green:["rgb(44,160,44)","rgb(152,223,138)","rgb(39, 174, 96)","rgb(74,160,74)"],pink:["rgb(247,182,210)"],brown:["rgb(140,86,75)","rgb(102, 62, 54)"],gray:["rgb(127,127,127)","rgb(199,199,199)","rgb(196,156,148)","rgb(222, 222, 180)"],yellow:["rgb(188,189,34)"],white:["rgb(230,230,230)"]};class R extends P{static get Lesk(){return void 0===this.lesk&&(this.lesk=this.makePalette([[["G","A","S","T"],"orange"],[["C","V","I","L","P","F","Y","M","W"],"all_green"],[["N","Q","H"],"magenta"],[["D","E"],"red"],[["K","R"],"all_blue"]],!1,R)),this.lesk}static get GrokGroups(){return void 0===this.grokGroups&&(this.grokGroups=this.makePalette([[["C","U"],"yellow"],[["G","P"],"red"],[["A","V","I","L","M","F","Y","W"],"all_green"],[["R","H","K"],"light_blue"],[["D","E"],"dark_blue"],[["S","T","N","Q"],"orange"]],!1,R)),this.grokGroups}static get RasMol(){return void 0===this.rasMol&&(this.rasMol=new R({D:"#E60A0A",E:"#E60A0A",C:"#E6E600",M:"#E6E600",K:"#145AFF",R:"#145AFF",S:"#FA9600",T:"#FA9600",F:"#3232AA",Y:"#3232AA",N:"#00DCDC",Q:"#00DCDC",G:"#EBEBEB",L:"#0F820F",V:"#0F820F",I:"#0F820F",A:"#C8C8C8",W:"#B45AB4",H:"#8282D2",P:"#DC9682",others:"#BEA06E"})),this.rasMol}get(t){const e=t in R.aaSynonyms?R.aaSynonyms[t]:t;return super.get(e)}}R.aaSynonyms={MeNle:"L",MeA:"A",MeG:"G",MeF:"F"};class D{static getPalette(t="grok"){switch(t){case"grok":return R.GrokGroups;case"lesk":return R.Lesk;default:throw new Error(`ChemPalette: scheme \`${t}\` does not exist`)}}static getInnerOuter(t){let e=0,n="",r="";for(const i of t)"("==i?e++:")"==i?e--:e?n+=i:r+=i;return isNaN(parseInt(n))?[r,n]:[r,""]}static getColorAAPivot(t="",e="grok"){const n=this.getPalette(e);let[r,i]=this.getInnerOuter(t);if(r=r.length>6?`${r.slice(0,3)}...`:r,i=i.length>6?`${i.slice(0,3)}...`:i,1==t.length||"("==t[1]){const e=t[0]?.toUpperCase();return e in n?[n.get(e),e,i,1]:[this.undefinedColor,r,i,1]}if("d"==t[0]&&t[1]in n&&(2==t.length||"("==t[2])){const e=t[1]?.toUpperCase();return e in n?[n.get(e),e,i,2]:[this.undefinedColor,r,i,2]}if(t.substring(0,3)in this.AAFullNames&&(3==t.length||"("==t[3])){const e=this.AAFullNames[t.substring(0,3)];return e in n?[n.get(e),e,i,3]:[this.undefinedColor,r,i,3]}if(t[0]?.toLowerCase()==t[0]&&t.substring(1,3)in this.AAFullNames&&(4==t.length||"("==t[4])){const e=this.AAFullNames[t.substring(1,3)];return e in n?[n.get(e),e,i,4]:[this.undefinedColor,r,i,4]}return[this.undefinedColor,r,i,0]}}D.SemType="Aminoacids",D.SemTypeMultipleAlignment="AminoacidsMultipleAlignment",D.undefinedColor="rgb(100,100,100)",D.Names={G:"Glycine",L:"Leucine",Y:"Tyrosine",S:"Serine",E:"Glutamic acid",Q:"Glutamine",D:"Aspartic acid",N:"Asparagine",F:"Phenylalanine",A:"Alanine",K:"Lysine",R:"Arginine",H:"Histidine",C:"Cysteine",V:"Valine",P:"Proline",W:"Tryptophan",I:"Isoleucine",M:"Methionine",T:"Threonine"},D.AASmiles={G:"NCC(=O)O",L:"N[C@H](CC(C)C)C(=O)O",Y:"NC(CC1=CC=C(O)C=C1)C(=O)O",S:"NC(CO)C(=O)O",E:"N[C@@H](CCC(O)=O)C(=O)O",Q:"N[C@@H](CCC(N)=O)C(=O)O",D:"N[C@@H](CC(O)=O)C(=O)O",N:"N[C@@H](CC(N)=O)C(=O)O",F:"NC(CC1=CC=CC=C1)C(=O)O",A:"N[C@H](C)C(=O)O",K:"NC(CCCCN)C(=O)O",R:"N[C@H](CCCNC(=N)C)C(=O)O",H:"NC(CC1=CN=C[N]1)C(=O)O",C:"N[C@@H](CS)C(=O)O",V:"NC(C(C)C)C(=O)O",P:"N(CCC1)C1C(=O)O",W:"N[C@@H](Cc1c2ccccc2n([H])c1)C(=O)O",I:"N[C@H]([C@H](C)CC)C(=O)O",M:"NC(CCSC)C(=O)O",T:"NC(C(O)C)C(=O)O"},D.AASmilesTruncated={G:"*C*",L:"CC(C)C[C@H](*)*",Y:"C1=CC(=CC=C1CC(*)*)O",S:"OCC(*)C*",E:"*[C@@H](CCC(O)=O)*",Q:"*N[C@@H](CCC(N)=O)*",D:"*[C@@H](CC(O)=O)*",N:"*[C@@H](CC(N)=O)*",F:"C1=CC=C(C=C1)CC(*)*",A:"C[C@H](*)*",K:"C(CCN)CC(*)*",R:"*[C@H](CCCNC(=N)C)*",H:"C1=C(NC=N1)CC(*)*",C:"C([C@@H](*)*)S",V:"CC(C)C(*)*",P:"C1CCN(*)C1*",W:"*[C@@H](Cc1c2ccccc2n([H])c1)*",I:"CC[C@H](C)[C@H](*)*",M:"CSCCC(*)*",T:"CC(O)C(*)*"},D.AAFullNames={Ala:"A",Arg:"R",Asn:"N",Asp:"D",Cys:"C",Gln:"Q",Glu:"E",Gly:"G",His:"H",Ile:"I",Leu:"L",Lys:"K",Met:"M",Phe:"F",Pro:"P",Ser:"S",Thr:"T",Trp:"W",Tyr:"Y",Val:"V"};class F{}F.SemType="Nucleotides",F.SemTypeMultipleAlignment="NucleotidesMultipleAlignment",F.Names={A:"Adenine",C:"Cytosine",G:"Guanine",T:"Thymine",U:"Uracil"};class k{static hashCode(t){let e=0;if(0===t.length)return e;for(let n=0;n<t.length;n++)e=(e<<5)-e+t.charCodeAt(n),e|=0;return e}}class H{}class U extends H{static buildPalette(){return[].concat(...Object.values(P.colourPalette))}get(t){const n=k.hashCode(t)%U.palette.length;return function(t){if(null==t)return"rgb(100,100,100)";const n=e.Color.fromHtml(t),r=e.Color.g(n),i=e.Color.r(n),o=e.Color.b(n),s=Math.sqrt(Math.pow(0-i,2)+Math.pow(0-r,2)+Math.pow(0-o,2));return s>210?`rgb(${i/s*210},${r/s*210},${o/s*210})`:e.Color.toRgb(n)}(U.palette[n])}}U.palette=U.buildPalette();class V{get length(){return this.mList.length}get canonicals(){return this.mList}get originals(){return this.mList}isGap(t){return this.getOriginal(t)===this.gapOriginalMonomer}getCanonical(t){if(this.length<=t)throw new Error("Index out of bounds");return this.mList[t]}getOriginal(t){if(this.length<=t)throw new Error("Index out of bounds");return this.mList[t]}constructor(t,e){this.mList=t,this.gapOriginalMonomer=e}}class j{get length(){return this.seqS.length}get canonicals(){return this.seqS}get originals(){return this.seqS}isGap(t){return this.getOriginal(t)===X[x.FASTA]}getCanonical(t){if(this.length<=t)throw new Error("Index out of bounds");return this.isGap(t)?"":this.seqS[t]}getOriginal(t){if(this.length<=t)throw new Error("Index out of bounds");return this.seqS[t]}constructor(t){this.seqS=t}}const q=t=>{const e=I()(t.toString().matchAll(N)).map((t=>t[2]??t[1])).toArray();return new V(e,X[x.FASTA])},G=t=>t?new j(t):new V([],X[x.FASTA]);function W(t,e=void 0){return n=>{if(n){let r;const i=new RegExp(String.raw`"-"|'-'|[^${t}]+`,"g");if(void 0!==e){i.lastIndex=0,r=new Array(Math.ceil(e));let t=null,o=0;for(;null!==(t=i.exec(n))&&o<e;)r[o++]=t[0].replace('"-"',"").replace("'-'","");r.splice(o)}else r=n.replaceAll('"-"',"").replaceAll("'-'","").split(t,e);return new V(r,X[x.SEPARATOR])}return new V([],X[x.SEPARATOR])}}const z=/(PEPTIDE1|DNA1|RNA1)\{([^}]+)}/g,Y=/\[([^\[\]]+)]/g,K=t=>{z.lastIndex=0;const e=z.exec(t.toString()),n=e?e[2]:null,r=n?n.split("."):[];return new V(r.map((t=>{Y.lastIndex=0;const e=Y.exec(t);return e&&e.length>=2?e[1]:t})),X[x.HELM])};function J(t,e,n="-"){const r=e.map((e=>{const r=function(t,e,n="-"){const r=new Set([...new Set(Object.keys(t)),...e]);r.delete(n);const i=[],o=[];for(const n of r)i.push(n in t?t[n]:0),o.push(e.has(n)?1:0);const s=new L(i),a=new L(o);return function(t,e){if(t.length!=e.length)throw new Error("The dimensionality of the vectors must match");let n=0;for(let r=0;r<t.length;r++)n+=t[r]*e[r];return n}(s,a)/(B(s)*B(a))}(t,e.alphabet,n);return new C(e,t,r)}));let i;const o=Math.max(...r.map((t=>t.similarity>t.cutoff?t.similarity:-1)));return i=o>0?r.find((t=>t.similarity===o)).name:_.UN,i}const Q=new class{constructor(){this.seqHandler="seq-handler",this.notationProvider="seq-handler.notation-provider"}},X={[x.FASTA]:"-",[x.SEPARATOR]:"",[x.HELM]:"*"};class Z{constructor(t){if(this._splitter=null,this.cached=!0,this._splitted=null,this.columnVersion=null,this._stats=null,this._maxLength=null,this._posList=null,this._joiner=void 0,t.type!==e.TYPE.STRING)throw new Error(`Unexpected column type '${t.type}', must be '${e.TYPE.STRING}'.`);this._column=t;const n=this._column.meta.units;if(null==n)throw new Error("Units are not specified in column");if(this._units=n,this._notation=this.getNotation(),this._defaultGapOriginal=this.isFasta()?X[x.FASTA]:this.isHelm()?X[x.HELM]:X[x.SEPARATOR],!this.column.tags.has(E.aligned)||!this.column.tags.has(E.alphabet)||!this.column.tags.has(E.alphabetIsMultichar)&&!this.isHelm()&&this.alphabet===_.UN)if(this.isFasta())Z.setUnitsToFastaColumn(this);else if(this.isSeparator()){const e=t.getTag(E.separator);Z.setUnitsToSeparatorColumn(this,e)}else{if(!this.isHelm())throw new Error(`Unexpected units '${this.column.meta.units}'.`);Z.setUnitsToHelmColumn(this)}if(!this.column.tags.has(E.alphabetIsMultichar))if(this.isHelm())this.column.setTag(E.alphabetIsMultichar,"true");else if(["UN"].includes(this.alphabet))throw new Error(`For column '${this.column.name}' of alphabet '${this.alphabet}' tag '${E.alphabetIsMultichar}' is mandatory.`);this.notationProvider=this.column.temp[Q.notationProvider]??null,this.columnVersion=this.column.version}static setUnitsToFastaColumn(t){if(t.column.semType!==e.SEMTYPE.MACROMOLECULE||t.column.meta.units!==x.FASTA)throw new Error(`The column of notation '${x.FASTA}' must be '${e.SEMTYPE.MACROMOLECULE}'.`);t.column.meta.units=x.FASTA,Z.setTags(t)}static setUnitsToSeparatorColumn(t,n){if(t.column.semType!==e.SEMTYPE.MACROMOLECULE||t.column.meta.units!==x.SEPARATOR)throw new Error(`The column of notation '${x.SEPARATOR}' must be '${e.SEMTYPE.MACROMOLECULE}'.`);if(!n)throw new Error(`The column of notation '${x.SEPARATOR}' must have the separator tag.`);t.column.meta.units=x.SEPARATOR,t.column.setTag(E.separator,n),Z.setTags(t)}static setUnitsToHelmColumn(t){if(t.column.semType!==e.SEMTYPE.MACROMOLECULE)throw new Error(`The column of notation '${x.HELM}' must be '${e.SEMTYPE.MACROMOLECULE}'`);t.column.meta.units=x.HELM,Z.setTags(t)}static setTags(t){const e=t.column.meta.units;if([x.FASTA,x.SEPARATOR].includes(e)){if(!t.column.getTag(E.alphabet)&&0===Object.keys(t.stats.freq).length)throw new Error("Alphabet is empty and not annotated.");let e=t.column.getTag(E.aligned);null===e&&(e=t.stats.sameLength?"SEQ.MSA":"SEQ",t.column.setTag(E.aligned,e));let n=t.column.getTag(E.alphabet);if(null===n&&(n=J(t.stats.freq,M),t.column.setTag(E.alphabet,n)),n===_.UN){const e=Object.keys(t.stats.freq).length,n=Object.keys(t.stats.freq).some((t=>t.length>1));t.column.setTag(E.alphabetSize,e.toString()),t.column.setTag(E.alphabetIsMultichar,n?"true":"false")}}}get column(){return this._column}get length(){return this._column.length}get units(){return this._units}get notation(){return this._notation}get defaultGapOriginal(){return this._defaultGapOriginal}get separator(){const t=this.column.getTag(E.separator)??void 0;if(this.notation===x.SEPARATOR&&void 0===t)throw new Error(`Separator is mandatory for column '${this.column.name}' of notation '${this.notation}'.`);return t}get aligned(){const t=this.column.getTag(E.aligned);if(!t&&(this.isFasta()||this.isSeparator()))throw new Error("Tag aligned not set");return t}get alphabet(){const t=this.column.getTag(E.alphabet);if(!t&&(this.isFasta()||this.isSeparator()))throw new Error("Tag alphabet not set");return t}get helmCompatible(){return this.column.getTag(E.isHelmCompatible)}getAlphabetSize(){if(this.notation==x.HELM||this.alphabet==_.UN){const t=this.column.getTag(E.alphabetSize);let e;if(t)e=parseInt(t);else{const t=this.stats;e=Object.keys(t.freq).length}return e}switch(this.alphabet){case _.PT:return 20;case _.DNA:case _.RNA:return 4;case"NT":return console.warn("Unexpected alphabet 'NT'."),4;default:throw new Error(`Unexpected alphabet '${this.alphabet}'.`)}}getAlphabetIsMultichar(){return this.notation===x.HELM||this.alphabet===_.UN&&"true"===this.column.getTag(E.alphabetIsMultichar)}getSplitted(t,e){if(this.cached&&void 0===e){this.column.version===this.columnVersion&&null!==this._splitted||(this.columnVersion=this.column.version,this._splitted=new Array(this.column.length));let e=this._splitted[t]?this._splitted[t].deref():void 0;if(!e){const n=this.column.get(t);e=this.splitter(n),this._splitted[t]=new WeakRef(e)}return e}{const n=this.column.get(t);return this.getSplitter(e)(n)}}async getHelm(t,e){const n=this.column.get(t);return this.notationProvider?(await this.notationProvider.getHelm(this.column,e)).get(t):this.convertToHelm(n)}get stats(){if(null===this._stats){const t={};let e=!0,n=null;const r=this.column.length;for(let i=0;i<r;++i){const r=this.getSplitted(i);null==n?n=r.length:r.length!==n&&(e=!1);for(const e of r.canonicals)e in t||(t[e]=0),t[e]+=1}this._stats={freq:t,sameLength:e}}return this._stats}get maxLength(){return null===this._maxLength&&(this._maxLength=0===this.column.length?0:Math.max(...I().count(0).take(this.column.length).map((t=>this.getSplitted(t).length)))),this._maxLength}get posList(){if(null===this._posList){const t=this.column.getTag(E.positionNames);this._posList=t?t.split(", ").map((t=>t.trim())):I().count(1).take(this.maxLength).map((t=>t.toString())).toArray()}return this._posList}isFasta(){return this.notation===x.FASTA}isSeparator(){return this.notation===x.SEPARATOR}isHelm(){return this.notation===x.HELM}isRna(){return this.alphabet===_.RNA}isDna(){return this.alphabet===_.DNA}isPeptide(){return this.alphabet===_.PT}isMsa(){return!!this.aligned&&this.aligned.toUpperCase().includes("MSA")}isHelmCompatible(){return"true"===this.helmCompatible}isGap(t){return!t||t===this._defaultGapOriginal}getNotation(){if(this.units.toLowerCase().startsWith(x.FASTA))return x.FASTA;if(this.units.toLowerCase().startsWith(x.SEPARATOR))return x.SEPARATOR;if(this.units.toLowerCase().startsWith(x.HELM))return x.HELM;throw new Error(`Column '${this.column.name}' has unexpected notation '${this.units}'.`)}getHelmWrappers(){return[this.isDna()||this.isRna()||this.isHelmCompatible()?"RNA1{":"PEPTIDE1{",this.isDna()?"d(":this.isRna()?"r(":"",this.isDna()||this.isRna()?")p":"","}$$$$"]}getNewColumn(t,n,r,i){const o=this.column,s=t.toLowerCase()+"("+o.name+")",a=r??o.dataFrame.columns.getUnusedName(s),u=e.Column.fromList("string",a,i??new Array(this.column.length).fill(""));if(u.semType=e.SEMTYPE.MACROMOLECULE,u.meta.units=t,t===x.SEPARATOR){if(!n)throw new Error(`Notation '${x.SEPARATOR}' requires separator value.`);u.setTag(E.separator,n)}u.setTag(e.TAGS.CELL_RENDERER,t===x.HELM?"helm":"sequence");const l=o.getTag(E.aligned);l&&u.setTag(E.aligned,l);let c=o.getTag(E.alphabet);c||this.notation!==x.HELM||t===x.HELM||(c=_.UN),null!=c&&u.setTag(E.alphabet,c);let h=o.getTag(E.alphabetSize);null!=c&&h&&u.setTag(E.alphabetSize,h);const f=o.getTag(E.alphabetIsMultichar);return null!=c&&void 0!==f&&u.setTag(E.alphabetIsMultichar,f),t==x.HELM&&(h=this.getAlphabetSize().toString(),u.setTag(E.alphabetSize,h)),u}getNewColumnFromList(t,e){return this.getNewColumn(this.notation,this.separator,t,e)}static getNewColumn(t){const e=Z.forColumn(t),n=e.notation;return e.getNewColumn(n)}static unitsStringIsValid(t){return t=t.toLowerCase(),[x.FASTA,x.SEPARATOR,x.HELM].some((e=>t.startsWith(e.toLowerCase())))}static getNewColumnFromParams(t,n,r){if(!Z.unitsStringIsValid(r))throw new Error("Invalid format of 'units' parameter");const i=e.Column.fromList("string",n,new Array(t).fill(""));return i.semType=e.SEMTYPE.MACROMOLECULE,i.meta.units=r,i}getSplitter(t){let e=null;if(e=this.notationProvider?this.notationProvider.splitter:null,e)return e;if(this.units.toLowerCase().startsWith(x.FASTA))return null===this.column.getTag(E.alphabet)||this.getAlphabetIsMultichar()?q:G;if(this.units.toLowerCase().startsWith(x.SEPARATOR))return W(this.separator,t);if(this.units.toLowerCase().startsWith(x.HELM))return K;throw new Error(`Unexpected units ${this.units} .`)}split(t){return this.splitter(t)}getDistanceFunctionName(){if(!this.isFasta())throw new Error("Only FASTA notation is supported");if(this.isMsa())return g.HAMMING;switch(this.alphabet){case _.DNA:case _.RNA:case _.PT:}return g.LEVENSHTEIN}getDistanceFunction(){return m[this.getDistanceFunctionName()]()}async checkHelmCompatibility(){if(this.column.tags.has(E.isHelmCompatible))return"true"===this.column.getTag(E.isHelmCompatible);const t=(await nt()).getMonomerLib().getMonomerSymbolsByType("PEPTIDE"),e=new Set(t),n=(W(this.separator),new Set),r=this.column.length,i=this.column.getRawData();for(let t=0;t<r;++t){const r=i[t];if(!(r in n)){n.add(r);const i=this.getSplitted(t);for(const t of i.canonicals)if(!e.has(t))return this.column.setTag(E.isHelmCompatible,"false"),!1}}return this.column.setTag(E.isHelmCompatible,"true"),!0}get splitter(){return null===this._splitter&&(this._splitter=this.getSplitter()),this._splitter}toFasta(t){return t===x.FASTA}toSeparator(t){return t===x.SEPARATOR}toHelm(t){return t===x.HELM}convertHelmToFastaSeparator(t,e,n,r){r||(r=this.toFasta(e)?X[x.FASTA]:X[x.SEPARATOR]),n||(n=this.toFasta(e)?"":this.separator);const i=t.startsWith("RNA"),o=this.splitter(t),s=[];for(let t=0;t<o.length;++t){let n=o.getOriginal(t);if(i&&(n=n.replace(b,"")),n===X[x.HELM])s.push(r);else if(this.toFasta(e)&&n.length>1){const t="["+n+"]";s.push(t)}else s.push(n)}return s.join(n)}convert(t,e){const n=this.getJoiner({notation:t,separator:e}),r=this.getNewColumn(t,e);return r.init((t=>{const e=this.getSplitted(t);return n(e)})),r}getRegion(t,e,n){const r=this.getNewColumn(this.notation,this.separator);r.name=n;const i=t??0,o=e??this.maxLength-1,s=this.getJoiner(),a=o-i+1,u=X[this.notation];r.init((t=>{const e=this.getSplitted(t),n=new Array(a);for(let t=0;t<a;++t){const r=i+t;n[t]=r<e.length?e.getOriginal(r):u}return s(new V(n,u))}));const l=t=>{const e=t.split(",").map((t=>t.trim())),n=new Array(a);for(let t=0;t<a;++t){const r=i+t;n[t]=r<e.length?e[r]:"?"}return n.join(", ")},c=this.column.getTag(E.positionNames);c&&r.setTag(E.positionNames,l(c));const h=this.column.getTag(E.positionLabels);return h&&r.setTag(E.positionLabels,l(h)),r}get joiner(){return this._joiner||(this._joiner=this.getJoiner()),this._joiner}getJoiner(t){const e=t?t.notation:this.notation,n=t?t.separator:this.separator;let r;const i=this;switch(e){case x.FASTA:r=function(t){return i.joinToFasta(t,i.isHelm())};break;case x.SEPARATOR:if(!n)throw new Error(`Separator is mandatory for notation '${e}'.`);r=function(t){return tt(t,n,i.isHelm())};break;case x.HELM:{const t=i.alphabet===_.DNA||i.alphabet===_.RNA,e=i.getHelmWrappers();r=function(n){return et(n,e,t)};break}default:throw new Error(`Unexpected notation '${e}'.`)}return r}getConverter(t,e=void 0){if(t===x.SEPARATOR&&!e)throw new Error(`Target separator is not specified for target units '${x.SEPARATOR}'.`);const n=this;if(t===x.FASTA)return function(t){return n.convertToFasta(t)};if(t===x.HELM)return function(t){return n.convertToHelm(t)};if(t===x.SEPARATOR)return function(t){return n.convertToSeparator(t,e)};throw new Error}static forColumn(t){let e=t.temp[Q.seqHandler];return e&&e.columnVersion===t.version||(e=t.temp[Q.seqHandler]=new Z(t)),e}joinToFasta(t,e){const n=new Array(t.length);for(let r=0;r<t.length;++r){const i=t.getOriginal(r);let o=t.getOriginal(r);e&&(o=o.replace(b,"$1")),""===i?o=X[x.FASTA]:i===y?o="":o.length>1&&(o="["+o+"]"),n[r]=o}return n.join("")}convertToFasta(t){const e=this.splitter,n=this.isHelm()?this.splitterAsHelmNucl(t):e(t);return this.joinToFasta(n,this.isHelm())}convertToSeparator(t,e){return tt(this.isHelm()?this.splitterAsHelmNucl(t):this.splitter(t),e,this.isHelm())}convertToHelm(t){if(this.notation==x.HELM)return t;const e=this.getHelmWrappers(),n=t.startsWith("DNA")||t.startsWith("RNA");return et(this.splitter(t),e,n)}splitterAsHelmNucl(t){const e=this.splitter(t),n=new Array(e.length),r=t.startsWith("DNA"),i=t.startsWith("RNA");for(let t=0;t<e.length;++t){let o=e.getOriginal(t);(r||i)&&(o=o.replace(b,"$1"),o=o===y?null:o),n[t]=o||null}return new V(n.filter((t=>!!t)),X[x.HELM])}}function tt(t,e,n){const r=new Array(t.length);for(let e=0;e<t.length;++e){const i=t.getCanonical(e);let o=t.getOriginal(e);n&&(o=o.replace(b,"$1")),""===i?o=X[x.SEPARATOR]:i===y&&(o=""),r[e]=o}return r.join(e)}function et(t,e,n){const[r,i,o,s]=e,a=new Array(t.length);for(let e=0;e<t.length;++e){const r=t.getCanonical(e);let s=t.getOriginal(e);""===r?s=X[x.HELM]:(n&&(s=s.replace(b,"$1")),s=1===s.length?`${i}${s}${o}`:`${i}[${s}]${o}`),a[e]=s}return`${r}${a.join(".")}${s}`}async function nt(){const t=e.Func.find({package:"Bio",name:"getMonomerLibHelper"});if(0===t.length)throw new Error('Package "Bio" must be installed for MonomerLibHelper.');return(await t[0].prepare().call()).getOutputParamValue()}class rt{constructor(t,e,n=""){this.target=t,this.debugEnabled=e,this.prefix=n}error(t,e,n){return this.target.error(this.prefix+t,e,n)}warning(t,e){return this.target.warning(this.prefix+t,e)}info(t,e){return this.target.info(this.prefix+t,e)}debug(t,e){if(this.debugEnabled)return this.target.debug(this.prefix+t,e)}}const it="System:AppData/SequenceTranslator/monomers-sample",ot="pattern-app-data.json",st="formats-to-helm.json",at="codes-to-symbols.json",ut="linkers.json",lt=["A","G","C","U"];var ct;function ht(t){return t.sort(((t,e)=>e.length-t.length))}function ft(t,e){const n=document.createElement("a");n.setAttribute("href","data:text/plain;charset=utf-8,"+e),n.setAttribute("download",t),n.click()}async function dt(e,n,r="Oligo app"){try{return await e()}catch(e){const n=e.hasOwnProperty("message")?e.message:e.toString();throw t.shell.error(`${r} error: `+n),e}finally{n&&n()}}!function(t){t.HELM="HELM",t.AXOLABS="Axolabs"}(ct||(ct={}));class pt{constructor(t,e){this.sequence=t,this.th=e,this.libWrapper=this.th.monomerLibWrapper}getInvalidCodeIndex(t){if(t===ct.HELM)return this.sequence.length;const e=["r","d"],n=ht(this.libWrapper.getCodesByFormat(t));let r=0;for(;r<this.sequence.length;){const t=n.find((t=>t===this.sequence.substring(r,r+t.length)));if(!t)break;if(r>1&&lt.includes(this.sequence[r])&&e.includes(this.sequence[r-2]))break;if(e.includes(this.sequence[r+1])&&lt.includes(this.sequence[r])){r++;break}r+=t.length}return r===this.sequence.length&&(r=-1),r}isValidSequence(t){return-1===this.getInvalidCodeIndex(t)}}class gt{constructor(t,e,n,r){this.patternAppData=t,this.codesToHelmDict=e,this.codesToSymbolsDict=n,this.monomersWithPhosphate=r}}async function mt(e){const n=await Promise.all([ot,st,at,ut].map((n=>async function(e,n){const r=e.endsWith("/")?`${e}${n}`:`${e}/${n}`;try{const e=await t.dapi.files.readAsText(r);return JSON.parse(e)}catch(t){console.error(`Error loading json from '${r}':`,t)}}(e,n))));return new gt(n[0],n[1],n[2],n[3])}class vt{constructor(t,e){if(this.lib=t,this.jsonData=e,null===this.lib)throw new Error("SequenceTranslator: monomer library is null");this.allMonomers=this.getAllMonomers()}formatMonomerForViewer(t){const e={};return e.name=t.symbol,e.symbol=t.symbol,e.molfile=t.molfile,this.getAllFormats().forEach((n=>{if(n===ct.HELM)return;const r=this.jsonData.codesToSymbolsDict[n],i=Object.keys(r).filter((e=>r[e]===t.symbol));e[n]=i.join(", ")})),e}getAllMonomers(){const t=this.lib.getPolymerTypes();let e=[];for(const n of t){const t=this.lib.getMonomerSymbolsByType(n).map((t=>this.lib.getMonomer(n,t))).filter((t=>null!==t));e=e.concat(t)}return e}getMonomer(t){const e=this.lib.getMonomer("RNA",t);if(void 0===e)throw new Error(`SequenceTranslator: no monomer with symbol ${t}`);return e}getMolfileBySymbol(t){return this.getMonomer(t).molfile}getNaturalAnalogBySymbol(t){const e=this.getMonomer(t).naturalAnalog;if(!e)throw new Error(`ST: no natural analog for ${t}`);return e}isModification(t){return!!this.getMolfileBySymbol(t).includes("MODIFICATION")}getCodeToSymbolMap(t){return new Map(Object.entries(this.jsonData.codesToSymbolsDict[t]))}getCodesByFormat(t){return Object.keys(this.jsonData.codesToSymbolsDict[t])}getAllFormats(){return Object.keys(this.jsonData.codesToSymbolsDict)}getTableForViewer(){const t=this.allMonomers.map((t=>this.formatMonomerForViewer(t)));return e.DataFrame.fromObjects(t)}getCodesToWeightsMap(){const t=new Map;return Object.entries(this.jsonData.codesToSymbolsDict).forEach((([e,n])=>{Object.entries(n).forEach((([e,n])=>{const r=this.getMonomer(n),i=r.meta?.molecularWeight;t.set(e,i)}))})),t}}const yt="<?>",bt=(t,e)=>e.length-t.length;class wt{constructor(t){this.th=t,this.formats=this.getFormats()}getFormatNames(){return this.formats.sort()}getCodesByFormat(t){if(this.validateFormat(t),this.isHelm(t))throw new Error("Codes cannot be obtained for HELM");return this.getFormatCodes(t)}getHelmToFormatDict(t){return this.validateFormat(t),function(t){const e={};return Object.values(t).forEach((t=>{Object.entries(t).forEach((([t,n])=>{const r=n.replace(/\)p/g,")").replace(/\]p/g,"]");void 0===e[r]?e[r]=[t]:e[r].push(t)}))})),Object.entries(e).forEach((([t,n])=>{const r=n.sort(bt);e[t]=r[0]})),e}(this.th.jsonData.codesToHelmDict[t])}getFormatToHelmDict(t){this.validateFormat(t);const e=this.th.jsonData.codesToHelmDict[t];return Object.assign({},...Object.values(e))}getTargetFormatHelmCodes(t){this.validateFormat(t);const e=this.getHelmToFormatDict(t);return Object.keys(e).sort(bt)}getTargetFormatHelmCodesRegExp(t){this.validateFormat(t);const e=this.getTargetFormatHelmCodes(t);return new RegExp(Ct(e)+"|.","g")}getFormatRegExp(t){if(this.validateFormat(t),this.isHelm(t))throw new Error("Helm RegExp can be built for non-HELM target formats");return this.getNonHelmFormatRegExp(t)}getPhosphateHelmCodesRegExp(t){this.validateFormat(t);const e=this.th.jsonData.codesToHelmDict[t],n=Ct(Array.from(new Set(Object.values(e.phosphateBackbone))).sort(bt));return new RegExp(`p.(${n})`,"g")}isValidFormat(t){return this.formats.includes(t)}getFormats(){return Object.keys(this.th.jsonData.codesToHelmDict)}validateFormat(t){if(!this.isValidFormat(t))throw new Error(`Invalid format: ${t}`)}isHelm(t){return t===ct.HELM}getFormatCodes(t){const e=this.getFormatToHelmDict(t);return Object.keys(e).sort(bt)}getNonHelmFormatRegExp(t){const e=this.getCodesByFormat(t);return new RegExp(Ct(e)+"|\\([^()]*\\)|.","g")}}function Ct(t){return t.map((t=>t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"))).map((t=>t.includes("(")||t.includes(")")?t:`(?<!\\([^()]*)${t}(?![^()]*\\))`)).join("|")}const At={LEFT:"RNA1{",RIGHT:"}$$$$"};class xt{constructor(t,e,n){this.sequence=t,this.sourceFormat=e,this.th=n,this.formats=new wt(this.th)}convertTo(t){const e=this.formats.getFormatNames();if(this.sourceFormat===ct.HELM&&e.includes(t))return this.helmToFormat(this.sequence,t);if(e.includes(this.sourceFormat)&&t===ct.HELM)return this.formatToHelm(this.sequence,this.sourceFormat);if([this.sourceFormat,t].every((t=>e.includes(t)))){const e=this.formatToHelm(this.sequence,this.sourceFormat);return this.helmToFormat(e,t)}throw new Error(`ST: unsupported translation direction ${this.sourceFormat} -> ${t}`)}helmToFormat(t,e){const n=new RegExp(Ct(Object.values(At)),"g");let r=t.replace(n,"");const i=this.formats.getHelmToFormatDict(e),o=this.formats.getTargetFormatHelmCodes(e),s=this.formats.getTargetFormatHelmCodesRegExp(e);return r=r.replace(s,(t=>o.includes(t)?i[t]:"p"===t||"."===t?t:"?")).replace(/\?+/g,yt).replace(/p\.|\./g,""),r=r.replace(/<empty>/g,""),r=r.replace(/\/\//g,"/"),r}formatToHelm(t,e){const n=this.formats.getFormatToHelmDict(e),r=this.formats.getCodesByFormat(e),i=this.formats.getFormatRegExp(e),o=this.formats.getPhosphateHelmCodesRegExp(e);let s=t?t.replace(i,(t=>r.includes(t)?n[t]+".":"?")):"";return s=s.replace(/\?+/g,`${yt}.`),s=s.slice(0,-1),"p"===s[s.length-1]&&(s=s.slice(0,-1)),s=s.replace(o,((t,e)=>e)),s=s.replace(/<empty>/g,""),`${At.LEFT+s+At.RIGHT}`}}class _t{constructor(t,e){this.sequence=t,this.th=e,this.libWrapper=this.th.monomerLibWrapper,this.formats=Object.keys(this.th.jsonData.codesToHelmDict)}getFormat(){if(this.sequence.startsWith("RNA"))return ct.HELM;const t=this.getListOfPossibleSynthesizersByFirstMatchedCode();if(0===t.length)return null;const e=this.th.createSequenceValidator(this.sequence),n=Array(t.length).fill(0);for(let r=0;r<t.length;++r){const i=t[r];n[r]=e.getInvalidCodeIndex(i)}const r=n.some((t=>-1===t))?-1:Math.max(...n);return t[n.indexOf(r)]}getListOfPossibleSynthesizersByFirstMatchedCode(){const t=this.sequence,e=[];for(const n of this.formats){const r=ht(this.libWrapper.getCodesByFormat(n));let i=0;for(let e=0;e<t.length;e++)if(")"===t[e]&&e!==t.length-1){i=e+1;break}r.some((e=>e===t.slice(i,i+e.length)))&&e.push(n)}return e}}const Et=ui,St=$;var Tt=n.n(St);function It(t,e){let n=0;const r=e.createFormatDetector(t).getFormat();null!==r&&(n=new pt(t,e).getInvalidCodeIndex(r));const i=n<0||""===t,o=Et.span([]);Tt()(o).css("-webkit-text-fill-color","var(--grey-6)");const s=Et.span([]);return Tt()(s).css("-webkit-text-fill-color","red"),i?o.innerHTML=t:(o.innerHTML=t.slice(0,n),s.innerHTML=t.slice(n)),[o,s]}class Nt extends e.Package{get monomerLib(){if(!this._monomerLib)throw new Error("Monomer lib not loaded");return this._monomerLib}get jsonData(){if(!this._jsonData)throw new Error("Json data not loaded");return this._jsonData}get monomerLibWrapper(){if(!this._monomerLibWrapper)throw new Error("Monomer lib wrapper not loaded");return this._monomerLibWrapper}constructor(t={debug:!1}){super(),this.highlightInvalidSubsequence=t=>It(t,this),super._logger=new rt(super.logger,t.debug)}async initLibData(){return this.initPromise||(this.initPromise=(async()=>{let e=(await this.getSettings()).MonomersPath;e&&await t.dapi.files.exists(e)||(this.logger.warning(`Monomers path '${e}' not found. Fallback to monomers sample path '${it}'.`),e=it),[this._jsonData,this._monomerLib]=await Promise.all([mt(e),Ot(e)]),this._monomerLibWrapper=new vt(this.monomerLib,this.jsonData)})()),this.initPromise}async getTranslationHelper(){return await t.functions.call(`${this.name}:getTranslationHelper`)}createSequenceValidator(t){return new pt(t,this)}createFormatConverter(t,e){return new xt(t,e,this)}createFormatDetector(t){return new _t(t,this)}}async function Ot(t){const n=e.TaskBarProgressIndicator.create("Initializing Oligo Toolkit monomer library ...");try{const e=await nt();return await e.readLibrary(t,"monomer-lib.json")}finally{n.close()}}class Mt{constructor(t,e){this.appName=t,this.parentAppName=e}async getAppView(){const n=e.TaskBarProgressIndicator.create(`Loading ${this.appName}...`),r=t.shell.v?.root;r&&Et.setUpdateIndicator(r,!0);try{return await this.constructView()}finally{n.close(),r&&Et.setUpdateIndicator(r,!1)}}}class Lt extends Mt{constructor(t){super(t),this.view=e.View.create(),this.configureView()}async constructView(){await this.initView();const t=this.parentAppName?this.parentAppName+"/"+this.appName:this.appName;return this.view.path=`/apps/${kr.name}/${t.replace(/\s/g,"")}/`,this.view}async initView(){const t=await this.getContent();this.view.append(t)}configureView(){this.view.box=!0,this.view.name=this.appName;const e=t.shell.windows;e.showProperties=!1,e.showToolbox=!1,e.showHelp=!1}getView(){return this.view}}const Bt=["SS","AS"],Pt={SS:"Sense strand",AS:"Anti sense"},Rt=["3'","5'"],Dt="OligoToolkit";var Ft,kt,Ht,Ut;!function(t){t.IS_ANTISENSE_STRAND_INCLUDED="isAntisenseStrandIncluded",t.NUCLEOTIDE_SEQUENCES="nucleotideSequences",t.PHOSPHOROTHIOATE_LINKAGE_FLAGS="phosphorothioateLinkageFlags",t.STRAND_TERMINUS_MODIFICATIONS="strandTerminusModifications"}(Ft||(Ft={})),function(t){t.PATTERN_NAME="patternName",t.PATTERN_COMMENT="patternComment",t.NUCLEOTIDES_WITH_NUMERIC_LABELS="nucleotidesWithNumericLabels"}(kt||(kt={})),function(t){t.PATTERN_CONFIG="patternConfig",t.AUTHOR_ID="authorID",t.DATE="date"}(Ht||(Ht={})),function(t){t.CREATE="create",t.MODIFY="modify"}(Ut||(Ut={}));const $t=[Ft.IS_ANTISENSE_STRAND_INCLUDED,Ft.NUCLEOTIDE_SEQUENCES,Ft.PHOSPHOROTHIOATE_LINKAGE_FLAGS,Ft.STRAND_TERMINUS_MODIFICATIONS],Vt=(kt.PATTERN_NAME,kt.PATTERN_COMMENT,kt.NUCLEOTIDES_WITH_NUMERIC_LABELS,{patternConfig:{patternName:"<default example>",isAntisenseStrandIncluded:!0,nucleotideSequences:{SS:["RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA"],AS:["RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA"]},phosphorothioateLinkageFlags:{SS:[!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0],AS:[!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0]},strandTerminusModifications:{SS:{"3'":"","5'":""},AS:{"3'":"","5'":""}},patternComment:"",nucleotidesWithNumericLabels:["RNA"]},authorID:""}),jt="2024-01-01T18:00:00.000Z";class qt extends Error{constructor(t){super(t),this.name="PatternNameExistsError"}}class Gt extends Error{constructor(t){super(t),this.name="PatternExistsError"}}var Wt=n(802),zt=n.n(Wt);class Yt{constructor(t){this.th=t,this.otherUsersPatternNameToHash=new Map,this.currentUserPatternNameToHash=new Map}static async getInstance(){const t=await kr.getTranslationHelper(),e=new Yt(t);e.currentUserName=await e.fetchCurrentUserName(),e.currentUserId=await e.fetchCurrentUserId();const n=await e.fetchPatterns();return await e.initializePatternMaps(n),e}getCurrentUserPatternNames(){return Array.from(this.currentUserPatternNameToHash.keys()).sort(((t,e)=>t.toLowerCase().localeCompare(e.toLowerCase())))}getOtherUsersPatternNames(){return Array.from(this.otherUsersPatternNameToHash.keys()).sort(((t,e)=>t.toLowerCase().localeCompare(e.toLowerCase())))}getCurrentUserName(){return this.currentUserName}validatePatternNameUniqueness(t){if(this.currentUserPatternNameToHash.has(t))throw new qt(`Pattern with name ${t} already exists`)}validatePatternUniqueness(t){if(Array.from(this.currentUserPatternNameToHash.values()).concat(Array.from(this.otherUsersPatternNameToHash.values())).includes(t))throw new Gt(t)}getPatternHash(t,e){const n=e?this.currentUserPatternNameToHash.get(t):this.otherUsersPatternNameToHash.get(t);if(void 0===n)throw new Error(`Pattern with name ${t} not found`);return n}async getPatternRecordByHash(e){if(null===e||""===e)return null;try{const n=await t.dapi.userDataStorage.getValue(Dt,e,!1);return JSON.parse(n)}catch{return null}}async getPatternConfig(t){if(""===t||null===t)return null;const e=await this.getPatternRecordByHash(t);return null===e?null:e[Ht.PATTERN_CONFIG]}getDefaultPatternRecord(){const t=Vt;return t[Ht.AUTHOR_ID]=this.currentUserId,t}getDefaultPatternConfig(){return Vt[Ht.PATTERN_CONFIG]}getAuthorCategoryByHash(t){if(this.isCurrentUserPattern(t))return this.getCurrentUserAuthorshipCategory();if(this.isOtherUserPattern(t))return this.getOtherUsersAuthorshipCategory();throw new Error(`Pattern with hash ${t} not found`)}isCurrentUserPattern(t){return Array.from(this.currentUserPatternNameToHash.values()).includes(t)}isOtherUserPattern(t){return Array.from(this.otherUsersPatternNameToHash.values()).includes(t)}getPatternNameByHash(t){const e=[this.currentUserPatternNameToHash,this.otherUsersPatternNameToHash];for(const n of e)for(const[e,r]of n.entries())if(r===t)return e;throw new Error(`Pattern with hash ${t} not found`)}getHashOfPatternToBeLoadedAfterDeletion(){const t=this.getCurrentUserPatternNames()[0];if(!t)throw new Error("Cannot load pattern after deletion, as there are no patterns left");const e=this.currentUserPatternNameToHash.get(t);if(void 0===e)throw new Error(`Pattern with name ${t} not found`);return e}async getRecordFromPattern(e){return{[Ht.PATTERN_CONFIG]:e,[Ht.AUTHOR_ID]:await t.dapi.users.current().then((t=>t.id))}}getHash(t){const e=$t.reduce(((e,n)=>(e[n]=t[n],e)),{});return zt().sha1(e)}async savePatternToUserStorage(e){const n=e.getPatternConfig();try{const r=this.getHash(n);this.validatePatternUniqueness(r);const i=n[kt.PATTERN_NAME];this.validatePatternNameUniqueness(i);const o=await this.getRecordFromPattern(n),s=(new Date).toISOString();o[Ht.DATE]={[Ut.CREATE]:s,[Ut.MODIFY]:s};const a=JSON.stringify(o);await t.dapi.userDataStorage.postValue(Dt,r,a,!1),this.currentUserPatternNameToHash.set(i,r),e.selectAuthor(this.getCurrentUserAuthorshipCategory()),e.updatePatternList(),e.requestPatternLoad(r),e.updateUrlState(r)}catch(t){if(t instanceof qt||t instanceof Gt)throw t;console.error("Error while saving pattern to user storage",t)}}async overwriteExistingPatternInUserStorage(e){const n=e.getPatternConfig(),r=n[kt.PATTERN_NAME],i=this.currentUserPatternNameToHash.get(r);if(void 0===i)throw new Error("Old hash is undefined");const o=this.getHash(n),s=await this.getRecordFromPattern(n),a=(new Date).toISOString();s[Ht.DATE]={[Ut.MODIFY]:a};const u=await t.dapi.userDataStorage.getValue(Dt,i,!1),l=JSON.parse(u);void 0!==l[Ht.DATE]&&null!=l[Ht.DATE][Ut.CREATE]&&(s[Ht.DATE][Ut.CREATE]=l[Ht.DATE][Ut.CREATE]);const c=JSON.stringify(s);await t.dapi.userDataStorage.postValue(Dt,o,c,!1),await t.dapi.userDataStorage.remove(Dt,i,!1),this.currentUserPatternNameToHash.set(r,o),e.requestPatternLoad(o),e.updateUrlState(o)}async deletePattern(e,n){const r=this.currentUserPatternNameToHash.get(e);if(e===this.getDefaultPatternName())return void t.shell.warning("Cannot delete default pattern");if(void 0===r)throw new Error(`Pattern with name ${e} not found`);await t.dapi.userDataStorage.remove(Dt,r,!1),this.currentUserPatternNameToHash.delete(e),n.updatePatternList();const i=this.getHashOfPatternToBeLoadedAfterDeletion();n.requestPatternLoad(i)}fetchDefaultNucleobase(){return this.fetchAvailableNucleotideBases()[0]}fetchAvailableNucleotideBases(){const t=Object.keys(this.th.jsonData.patternAppData)[0];return Object.keys(this.th.jsonData.patternAppData[t])}async fetchCurrentUserName(){return(await t.dapi.users.current()).friendlyName}async fetchCurrentUserId(){return(await t.dapi.users.current()).id}async fetchPatterns(){return await t.dapi.userDataStorage.get(Dt,!1)}async initializePatternMaps(t){if(!this.currentUserId)throw new Error("Current user ID is not set");const e=new Map;for(const[n,r]of Object.entries(t))await this.extractDataFromRecordToMaps(n,r,e);this.setDefaultPattern()}setDefaultPattern(){const t=Vt[Ht.PATTERN_CONFIG];this.currentUserPatternNameToHash.set(t[kt.PATTERN_NAME],"")}async extractDataFromRecordToMaps(e,n,r){const i=JSON.parse(n),o=i[Ht.PATTERN_CONFIG].patternName,s=i[Ht.AUTHOR_ID];if(this.isCurrentUserId(s))this.currentUserPatternNameToHash.set(o,e);else{if(!r.has(s)){let e="<UNKNOWN_USER>";try{e=(await t.dapi.users.find(s)).friendlyName}catch(t){}r.set(s,e)}const n=o+` (created by ${r.get(s)})`;this.otherUsersPatternNameToHash.set(n,e)}}getDefaultPatternName(){return Vt[Ht.PATTERN_CONFIG][kt.PATTERN_NAME]}getCurrentUserAuthorshipCategory(){return this.currentUserName+" (me)"}getOtherUsersAuthorshipCategory(){return"Other users"}isCurrentUserId(t){return t===this.currentUserId}}const Kt=rxjs,Jt=rxjs.operators;function Qt(t){return t.endsWith("(o)")}function Xt(t){const e=Object.values(t).flat().reduce(((t,e)=>(t[e]=(t[e]||0)+1,t)),{});return Object.entries(e).reduce(((t,e)=>t[1]>e[1]?t:e),["",0])[0]}var Zt;function te(t){const e=Array.from(new Set(t));return Array.from(e).sort(((t,e)=>t.toLowerCase().localeCompare(e.toLowerCase())))}!function(t){t.getTruncatedStrandData=function(t,e,n){return{nucleotides:t.slice(0,n),ptoFlags:e.slice(0,n+1)}},t.getExtendedStrandData=function(t,e,n,r){const i=n-t.length,o=t.concat(new Array(n-t.length).fill(r)),s=0===t.length?n+1:i;return{nucleotides:o,ptoFlags:e.concat(new Array(s).fill(!0))}}}(Zt||(Zt={}));var ee=n(543),ne=n.n(ee);class re{constructor(t,e){this.dataManager=t,this._patternListUpdated$=new Kt.Subject,this._patternLoadRequested$=new Kt.Subject,this._patternLoaded$=new Kt.Subject,this._uniqueNucleotides$=new Kt.BehaviorSubject([]),this._patternDeletionRequested$=new Kt.Subject,this._tableSelection$=new Kt.BehaviorSubject(null),this._svgSaveRequested$=new Kt.Subject,this._loadPatternInNewTabRequested$=new Kt.Subject,this._urlStateUpdated$=new Kt.Subject,this._patternHasUnsavedChanges$=new Kt.BehaviorSubject(!1),this._selectedStrandColumn=new Kt.BehaviorSubject(null),this._selectedIdColumn=new Kt.BehaviorSubject(null),this.initializeAuthorSelection(e),this.initializePatternState(e),this._lastLoadedPatternConfig=new Kt.BehaviorSubject(ne().cloneDeep(this.getPatternConfig())),this.setupSubscriptions()}setupSubscriptions(){this._nucleotideSequences$.subscribe((()=>{this.updateUniqueNucleotides(),this.updateSequenceBase()})),this._isAntisenseStrandActive$.subscribe((t=>{t||Rt.forEach((t=>{this.updateTerminusModification("AS",t,"")}))})),this.patternStateChanged$.pipe((0,Jt.debounceTime)(20)).subscribe((()=>{const t=this._lastLoadedPatternConfig.getValue(),e=this.getPatternConfig(),n=!ne().isEqual(e,t);this._patternHasUnsavedChanges$.next(n)}))}updateUniqueNucleotides(){const t=(e=this._nucleotideSequences$.getValue(),te(Object.values(e).flat()));var e;this._uniqueNucleotides$.next(t)}updateSequenceBase(){const t=Xt(this._nucleotideSequences$.getValue());this._sequenceBase$.next(t)}get nucleotideSequencesChanged$(){return this._nucleotideSequences$.asObservable()}initializeAuthorSelection(t){const e=t[Ht.AUTHOR_ID];this.dataManager.isCurrentUserId(e)?this._patternAuthorSelection$=new Kt.BehaviorSubject(this.dataManager.getCurrentUserAuthorshipCategory()):this._patternAuthorSelection$=new Kt.BehaviorSubject(this.dataManager.getOtherUsersAuthorshipCategory())}initializePatternState(t){const e=t[Ht.PATTERN_CONFIG];this._patternName$=new Kt.BehaviorSubject(e[kt.PATTERN_NAME]),this._isAntisenseStrandActive$=new Kt.BehaviorSubject(e[Ft.IS_ANTISENSE_STRAND_INCLUDED]),this._nucleotideSequences$=new Kt.BehaviorSubject(e[Ft.NUCLEOTIDE_SEQUENCES]),this._phosphorothioateLinkageFlags=new Kt.BehaviorSubject(e[Ft.PHOSPHOROTHIOATE_LINKAGE_FLAGS]),this._terminalModifications=new Kt.BehaviorSubject(e[Ft.STRAND_TERMINUS_MODIFICATIONS]),this._comment$=new Kt.BehaviorSubject(e[kt.PATTERN_COMMENT]),this._modificationsWithNumericLabels$=new Kt.BehaviorSubject(e[kt.NUCLEOTIDES_WITH_NUMERIC_LABELS]),this._sequenceBase$=new Kt.BehaviorSubject(Xt(e[Ft.NUCLEOTIDE_SEQUENCES]))}getPatternName(){return this._patternName$.getValue()}updatePatternName(t){this._patternName$.next(t)}get antisenseStrandToggled$(){return this._isAntisenseStrandActive$.asObservable()}isAntisenseStrandActive(){return this._isAntisenseStrandActive$.getValue()}toggleAntisenseStrand(t){t?this.updateStrandLength("AS",this.getNucleotideSequences().SS.length):this.updateStrandLength("AS",0),this._isAntisenseStrandActive$.next(t)}getNucleotideSequences(){return this._nucleotideSequences$.getValue()}updateNucleotideSequences(t){this._nucleotideSequences$.next(t)}updateStrandLength(t,e){const n=this.getNucleotideSequences()[t];if(n.length===e)return;const r=this.getPhosphorothioateLinkageFlags()[t];if(0===e)return void this.setNewStrandData([],[],t);if(n.length>e){const{nucleotides:i,ptoFlags:o}=Zt.getTruncatedStrandData(n,r,e);return void this.setNewStrandData(i,o,t)}const i=this.getSequenceBase(),{nucleotides:o,ptoFlags:s}=Zt.getExtendedStrandData(n,r,e,i);this.setNewStrandData(o,s,t)}setNewStrandData(t,e,n){this.updateNucleotideSequences({...this.getNucleotideSequences(),[n]:t}),this.updatePhosphorothioateLinkageFlags({...this.getPhosphorothioateLinkageFlags(),[n]:e})}getPhosphorothioateLinkageFlags(){return this._phosphorothioateLinkageFlags.getValue()}updatePhosphorothioateLinkageFlags(t){this._phosphorothioateLinkageFlags.next(t)}get phosphorothioateLingeFlagsChanged$(){return this._phosphorothioateLinkageFlags.asObservable()}getTerminalModifications(){return this._terminalModifications.getValue()}updateTerminalModifications(t){this._terminalModifications.next(t)}updateTerminusModification(t,e,n){const r=this.getTerminalModifications();r[t][e]=n,this.updateTerminalModifications(r)}terminalModificationsUpdated$(){return this._terminalModifications.asObservable()}getComment(){return this._comment$.getValue()}updateComment(t){this._comment$.next(t)}getModificationsWithNumericLabels(){return this._modificationsWithNumericLabels$.getValue()}updateModificationsWithNumericLabels(t){const e=function(t){return te(t).filter((t=>!Qt(t)))}(t);this._modificationsWithNumericLabels$.next(e)}get patternLoadRequested$(){return this._patternLoadRequested$.asObservable()}requestPatternLoad(t){this._patternLoadRequested$.next(t)}get patternListUpdated$(){return this._patternListUpdated$.asObservable()}updatePatternList(){this._patternListUpdated$.next()}get tableSelectionChanged$(){return this._tableSelection$.asObservable()}selectTable(t){this._tableSelection$.next(t)}getTableSelection(){return this._tableSelection$.getValue()}requestPatternDeletion(t){this._patternDeletionRequested$.next(t)}get patternDeletionRequested$(){return this._patternDeletionRequested$.asObservable()}replaceSequenceBase(t){const e=this._nucleotideSequences$.getValue(),n={};Bt.forEach((r=>{n[r]=e[r].map((()=>t))})),this._nucleotideSequences$.next(n);const r=this._modificationsWithNumericLabels$.getValue();r.includes(t)||this.updateModificationsWithNumericLabels(r.concat(t))}get patternStateChanged$(){return Kt.merge(this._patternName$.pipe((0,Jt.debounceTime)(300),(0,Jt.map)((()=>{}))),this._isAntisenseStrandActive$,this._nucleotideSequences$,this._phosphorothioateLinkageFlags,this._terminalModifications,this._comment$.pipe((0,Jt.debounceTime)(300)),this._modificationsWithNumericLabels$)}getSequenceBase(){return this._sequenceBase$.getValue()}uniqueNucleotidesChanged$(){return this.patternStateChanged$.pipe((0,Jt.switchMap)((()=>this._uniqueNucleotides$)))}getUniqueNucleotides(){return this._uniqueNucleotides$.getValue()}get svgSaveRequested$(){return this._svgSaveRequested$.asObservable()}requestSvgSave(){this._svgSaveRequested$.next()}setAllPTOLinkages(t){const e=this.getPhosphorothioateLinkageFlags();Bt.forEach((n=>{e[n]=e[n].map((()=>t))})),this.updatePhosphorothioateLinkageFlags(e)}setPatternConfig(t){this._patternName$.next(t[kt.PATTERN_NAME]),this._isAntisenseStrandActive$.next(t[Ft.IS_ANTISENSE_STRAND_INCLUDED]),this._nucleotideSequences$.next(t[Ft.NUCLEOTIDE_SEQUENCES]),this._phosphorothioateLinkageFlags.next(t[Ft.PHOSPHOROTHIOATE_LINKAGE_FLAGS]),this._terminalModifications.next(t[Ft.STRAND_TERMINUS_MODIFICATIONS]),this._comment$.next(t[kt.PATTERN_COMMENT]),this._modificationsWithNumericLabels$.next(t[kt.NUCLEOTIDES_WITH_NUMERIC_LABELS])}setLastLoadedPatternConfig(t){this._lastLoadedPatternConfig.next(ne().cloneDeep(t))}getPatternConfig(){return{[kt.PATTERN_NAME]:this.getPatternName(),[Ft.IS_ANTISENSE_STRAND_INCLUDED]:this.isAntisenseStrandActive(),[Ft.NUCLEOTIDE_SEQUENCES]:this.getNucleotideSequences(),[Ft.PHOSPHOROTHIOATE_LINKAGE_FLAGS]:this.getPhosphorothioateLinkageFlags(),[Ft.STRAND_TERMINUS_MODIFICATIONS]:this.getTerminalModifications(),[kt.PATTERN_COMMENT]:this.getComment(),[kt.NUCLEOTIDES_WITH_NUMERIC_LABELS]:this.getModificationsWithNumericLabels()}}setPhosphorothioateLinkageFlag(t,e,n){const r=this.getPhosphorothioateLinkageFlags();r[t][e]=n,this.updatePhosphorothioateLinkageFlags(r)}setNucleotide(t,e,n){const r=this.getNucleotideSequences();r[t][e]=n;const i=this.getModificationsWithNumericLabels();this.updateModificationsWithNumericLabels(i.concat(n)),this.updateNucleotideSequences(r)}get strandsUpdated$(){return Kt.merge(this._isAntisenseStrandActive$.asObservable().pipe((0,Jt.map)((()=>{}))),this._nucleotideSequences$.asObservable().pipe((0,Jt.map)((()=>{}))),this._patternLoaded$.asObservable().pipe((0,Jt.map)((()=>{})))).pipe((0,Jt.debounceTime)(10))}get strandsLinkagesAndTerminalsUpdated$(){return Kt.merge(this.strandsUpdated$,this._phosphorothioateLinkageFlags.asObservable().pipe((0,Jt.map)((()=>{}))),this._terminalModifications.asObservable().pipe((0,Jt.map)((()=>{}))))}updateControlsUponPatternLoaded(t){this._patternLoaded$.next(t)}get patternLoaded$(){return this._patternLoaded$.asObservable()}get userSelection$(){return this._patternAuthorSelection$.asObservable().pipe((0,Jt.skip)(1))}selectAuthor(t){if("string"!=typeof t)throw new Error("Selected user must be defined");this._patternAuthorSelection$.next(t)}getSelectedAuthor(){return this._patternAuthorSelection$.getValue()}get loadPatternInNewTabRequested$(){return this._loadPatternInNewTabRequested$.asObservable()}requestLoadPatternInNewTab(t){this._loadPatternInNewTabRequested$.next(t)}updateUrlState(t){this._urlStateUpdated$.next(t)}get urlStateUpdated$(){return this._urlStateUpdated$.asObservable()}get patternHasUnsavedChanges$(){return this._patternHasUnsavedChanges$.asObservable()}selectStrandColumn(t,e){this._selectedStrandColumn.next({...this._selectedStrandColumn.getValue(),[t]:e})}getSelectedStrandColumn(t){const e=this._selectedStrandColumn.getValue();return e?e[t]:null}selectIdColumn(t){this._selectedIdColumn.next(t)}getSelectedIdColumn(){return this._selectedIdColumn.getValue()}get updateSvgContainer$(){return this.patternStateChanged$.pipe((0,Jt.debounceTime)(100))}}const ie="pattern";class oe{constructor(){this.urlSearchParams=new URLSearchParams(window.location.search)}subscribeToObservables(t){t.urlStateUpdated$.subscribe((t=>this.setPatternURL(t))),t.loadPatternInNewTabRequested$.subscribe((t=>{const e=`${window.location.origin}${window.location.pathname}?${ie}=${t}`;window.open(e,"_blank")})),window.addEventListener("popstate",(()=>{this.urlSearchParams=new URLSearchParams(window.location.search);const e=this.getPatternHash();null!==e&&t.requestPatternLoad(e)}))}getPatternHash(){return this.urlSearchParams.get(ie)}setPatternURL(t){null!==t&&""!==t?(this.urlSearchParams.set(ie,t),window.history.pushState({},"",`${window.location.pathname}?${this.urlSearchParams}`)):this.clearPatternURL()}clearPatternURL(){this.urlSearchParams.delete(ie),window.history.pushState({},"",`${window.location.pathname}`)}}var se=n(72),ae=n.n(se),ue=n(825),le=n.n(ue),ce=n(659),he=n.n(ce),fe=n(56),de=n.n(fe),pe=n(540),ge=n.n(pe),me=n(113),ve=n.n(me),ye=n(252),be={};be.styleTagTransform=ve(),be.setAttributes=de(),be.insert=he().bind(null,"head"),be.domAPI=le(),be.insertStyleElement=ge(),ae()(ye.A,be),ye.A&&ye.A.locals&&ye.A.locals;class we{constructor(t){this.eventBus=t,this.columnControlsContainer=Et.div([]),this.eventBus.tableSelectionChanged$.subscribe((()=>this.handleTableChoice())),this.refreshColumnControls()}getColumnControlsContainer(){return this.columnControlsContainer}get selectedTable(){return this.eventBus.getTableSelection()}handleTableChoice(){this.refreshColumnControls()}refreshColumnControls(){Tt()(this.columnControlsContainer).empty(),Tt()(this.columnControlsContainer).append(this.constructColumnControls())}constructColumnControls(){const t=this.createStrandColumnInput(),e=t.SS,n=t.AS;this.eventBus.antisenseStrandToggled$.subscribe((t=>{Tt()(n).toggle(t)}));const r=this.createIdColumnInput();return[e,n,r]}createStrandColumnInput(){const t=this.selectedTable?this.selectedTable.columns.names().sort(((t,e)=>t.localeCompare(e))):[];return Object.fromEntries(Bt.map((e=>{const n=Et.input.choice(`${Pt[e]} column`,{value:t[0],items:t,onValueChanged:t=>this.eventBus.selectStrandColumn(e,t)});return this.eventBus.selectStrandColumn(e,t[0]),[e,n.root]})))}createIdColumnInput(){const t=this.selectedTable?this.selectedTable.columns.names():[],e=Et.input.choice("ID column",{value:t[0],items:t,onValueChanged:t=>this.eventBus.selectIdColumn(t)});return this.eventBus.selectIdColumn(t[0]),e.root}}class Ce{constructor(t){this.eventBus=t,this.availableTables=[],this.tableInputContainer=Et.div([]),this.subscribeToTableEvents(),this.refreshTableInput()}getTableInputContainer(){return this.tableInputContainer}subscribeToTableEvents(){t.events.onTableAdded.subscribe((t=>this.handleTableAdded(t))),t.events.onTableRemoved.subscribe((t=>this.handleTableRemoved(t))),this.eventBus.tableSelectionChanged$.subscribe((()=>this.handleTableChoice()))}getTableFromEventData(t){if(!t&&t.args&&t.args.dataFrame instanceof e.DataFrame)throw new Error("EventData does not contain a dataframe",t);return t.args.dataFrame}handleTableAdded(t){const e=this.getTableFromEventData(t);this.availableTables.some((t=>t.name===e.name))||(this.availableTables.push(e),this.eventBus.selectTable(e),this.refreshTableInput())}handleTableRemoved(t){const e=this.getTableFromEventData(t);this.availableTables=this.availableTables.filter((t=>t.name!==e.name));const n=this.availableTables[0];this.eventBus.selectTable(n||null),this.refreshTableInput()}refreshTableInput(){const t=this.createTableInput();Tt()(this.tableInputContainer).empty(),this.tableInputContainer.append(t.root)}createTableInput(){const t=this.eventBus.getTableSelection();return Et.input.table("Tables",{value:t,items:this.availableTables,onValueChanged:t=>{null!==t&&this.eventBus.selectTable(t)}})}handleTableChoice(){const t=this.eventBus.getTableSelection();t&&(this.isTableDisplayed(t)||this.displayTable(t))}isTableDisplayed(e){return t.shell.tableNames.includes(e.name)}displayTable(e){const n=t.shell.v;t.shell.addTableView(e),t.shell.v=n}}function Ae(t,e,n,r){const i=function(t,e,n){const r=new Array(t.length+e.filter((t=>t)).length+Rt.length);r[0]=n["5'"],r[r.length-1]=n["3'"];let i=1;return e[0]&&(r[i]="ps",i++),t.forEach(((t,n)=>{r[n+i]=t,e[n+1]&&(r[n+i+1]="ps",i++)})),r}(t.split("").map(((t,n)=>{const r=function(t,e,n){const r=Object.keys(n.patternAppData)[0],i=n.patternAppData[r][e].substitution;return t.replace(/([AGCTU])/,i)}(t,e[n],kr.jsonData);return r})),n,r);return i.join("")}class xe{constructor(t){this.eventBus=t,this.tableInputManager=new Ce(t),this.columnInputManager=new we(t)}createControls(){const t=Et.h1("Bulk convert"),e=this.tableInputManager.getTableInputContainer(),n=this.columnInputManager.getColumnControlsContainer(),r=Et.bigButton("Convert",(()=>this.processConvertButtonClick()));return[t,e,n,Et.buttonsInput([r])]}processConvertButtonClick(){!function(e){const n=e.getTableSelection();if(!n)return void t.shell.warning("Please select a table");const r=Bt.filter((t=>!("AS"===t&&!e.isAntisenseStrandActive()))).map((t=>({strand:t,column:e.getSelectedStrandColumn(t)}))).filter((t=>t.column));if(0===r.length)return void t.shell.warning("Select a sense strand column");const i=e.getSelectedIdColumn();if(!i)throw new Error("No ID column selected");n.getCol(i);const o=r.map((t=>({strand:t.strand,column:n.getCol(t.column)})));!function(t,e){const n=e.getNucleotideSequences();return t.every((t=>{const e=n[t.strand].length;return t.column.toList().every((t=>t.length===e))}))}(o,e)?t.shell.warning("Some strands in the table input do not match pattern length"):o.forEach((t=>{const r=t.column,i=t.strand,o=e.getNucleotideSequences()[i],s=e.getTerminalModifications()[i],a=e.getPhosphorothioateLinkageFlags()[i],u=`${e.getPatternName()}(${r.name})`;n.columns.addNewString(u).init((t=>Ae(r.get(t),o,a,s)))}))}(this.eventBus)}}class _e{constructor(t,e,n){this.eventBus=t,this.initialPatternConfig=e,this.subscriptions=n}create(){return Et.divV([Et.h1("PTO"),Et.divH([this.createAllPtoActivationInput().root,...this.createFirstPtoInputs().map((t=>t.root))],{style:{gap:"12px"}})])}areAllPtoLinkagesSet(t){return Bt.map((e=>t[e].filter((t=>t)).length)).reduce(((t,e)=>t+e),0)===Bt.map((t=>this.initialPatternConfig.nucleotideSequences[t].length)).reduce(((t,e)=>t+e),0)+Bt.filter((e=>t[e].length)).length}createAllPtoActivationInput(){const t=this.initialPatternConfig.phosphorothioateLinkageFlags,e=this.areAllPtoLinkagesSet(t),n=Et.input.bool("All PTO",{value:e});n.onInput.subscribe((()=>{const t=n.value;this.eventBus.setAllPTOLinkages(t)}));const r=this.eventBus.phosphorothioateLingeFlagsChanged$.subscribe((()=>{const t=this.eventBus.getPatternConfig().phosphorothioateLinkageFlags,e=this.areAllPtoLinkagesSet(t);n.value=e}));return this.subscriptions.add(r),this.addStyleToPtoInput(n),Et.tooltip.bind(n.captionLabel,"Activate all phosphothioates"),n}addStyleToPtoInput(t){const e=t.captionLabel;e.classList.add("ui-label-right"),Object.assign(e.style,{textAlign:"left",maxWidth:"100px",minWidth:"40px",width:"auto"})}createFirstPtoInputs(){return Bt.map((t=>{if(!this.eventBus.isAntisenseStrandActive()&&"AS"===t)return;const e=this.isFirstPtoActive(t),n=Et.input.bool(`First ${t} PTO`,{value:e});n.onInput.subscribe((()=>{const e=n.value;this.eventBus.setPhosphorothioateLinkageFlag(t,0,e)}));const r=this.eventBus.phosphorothioateLingeFlagsChanged$.subscribe((e=>{const r=e[t][0];n.value=r}));return this.subscriptions.add(r),this.addStyleToPtoInput(n),Et.tooltip.bind(n.captionLabel,`Activate first phosphothioate in ${t}`),n})).filter((t=>void 0!==t))}isFirstPtoActive(t){return this.initialPatternConfig.phosphorothioateLinkageFlags[t][0]}}class Ee{constructor(t,e,n){this.eventBus=t,this.dataManager=e,this.subscriptions=n;const r=this.eventBus.nucleotideSequencesChanged$.subscribe((()=>{this.displayedInputLabels=this.computeDisplayedInputLabels()}));this.subscriptions.add(r)}create(){const t=Bt.map((t=>this.constructControlsPanel(t)));return Et.divH(t,{style:{gap:"24px"}})}constructControlsPanel(t){if(!this.eventBus.isAntisenseStrandActive()&&"AS"===t)return Et.div([]);const e=this.constructHeader(),n=this.createControls(t);return Et.block([Et.h1(`${Pt[t]}`),e,n],{style:{paddingTop:"12px"}})}constructHeader(){return Et.divH([Et.div([Et.divText("#")],{style:{width:"20px"}}),Et.block75([Et.divText("Modification")]),Et.div([Et.divText("PTO")])])}createControls(t){const e=this.createNucleobaseInputs(t),n=this.createLabelDivs(t),r=this.createPTOFlagInputs(t);return Et.div(e.map(((t,e)=>Et.divH([n[e],Et.block75([t.root]),r[e].root],{style:{alignItems:"center"}}))))}createNucleobaseInputs(t){const e=this.dataManager.fetchAvailableNucleotideBases().sort(((t,e)=>t.toLowerCase().localeCompare(e.toLowerCase())));return this.eventBus.getNucleotideSequences()[t].map(((n,r)=>{const i=Et.input.choice("",{value:n,items:e});return i.onInput.subscribe((()=>{const e=i.value;this.eventBus.setNucleotide(t,r,e)})),i}))}createPTOFlagInputs(t){return this.eventBus.getPhosphorothioateLinkageFlags()[t].slice(1).map(((e,n)=>{const r=Et.input.bool("",{value:e});r.onInput.subscribe((()=>{const e=r.value;this.eventBus.setPhosphorothioateLinkageFlag(t,n+1,e)}));const i=this.eventBus.phosphorothioateLingeFlagsChanged$.subscribe((e=>{const i=e[t][n+1];r.value=i}));return this.subscriptions.add(i),r}))}computeDisplayedInputLabels(){const t=this.eventBus.getNucleotideSequences(),e=new Map;return Bt.forEach((n=>{let r=1;const i=t[n].map((t=>{if(Qt(t))return"";const e=String(r);return r++,e}));e.set(n,i)})),e}createLabelDivs(t){const e=this.createLabels(t).map((t=>Et.div([t],{style:{width:"20px"}}))),n=this.eventBus.nucleotideSequencesChanged$.subscribe((()=>{this.createLabels(t).forEach(((t,n)=>{Tt()(e[n]).empty(),Tt()(e[n]).append(t)}))}));return this.subscriptions.add(n),e}createLabels(t){return this.eventBus.getNucleotideSequences()[t].map(((e,n)=>{const r=this.displayedInputLabels.get(t)[n];return Et.label(r)}))}}class Se{constructor(){this.rxjsSubscriptions=[],this.dgSubscriptions=[]}add(t){t instanceof Kt.Subscription?this.rxjsSubscriptions.push(t):this.dgSubscriptions.push(t)}unsubscribeAll(){for(const t of[this.rxjsSubscriptions,this.dgSubscriptions])t.forEach((t=>t.unsubscribe())),t.length=0}}class Te{constructor(t,e){this.eventBus=t,this.dataManager=e,this.subscriptions=new Se}static open(t,e){Te.isDialogOpen||(Te.instance||(Te.instance=new Te(t,e)),Te.instance.openDialog())}openDialog(){this.initialPatternConfig=ne().cloneDeep(this.eventBus.getPatternConfig()),Te.isDialogOpen=!0,this.createDialog().show()}createDialog(){const t=Et.divV([]);this.subscriptions.add(this.eventBus.strandsUpdated$.subscribe((()=>this.onStrandsUpdated(t))));const e=Et.dialog("Edit strands").add(t).onOK((()=>{})).onCancel((()=>this.resetToInitialState()));return this.subscriptions.add(e.onClose.subscribe((()=>{Te.isDialogOpen=!1,this.subscriptions.unsubscribeAll()}))),e}onStrandsUpdated(t){const e=new _e(this.eventBus,this.initialPatternConfig,this.subscriptions).create(),n=new Ee(this.eventBus,this.dataManager,this.subscriptions).create();Tt()(t).empty(),Tt()(t).append(e,n)}resetToInitialState(){this.eventBus.setPatternConfig(this.initialPatternConfig)}}Te.isDialogOpen=!1;class Ie{constructor(t){this.eventBus=t,this.subscriptions=new Se}static open(t){Ie.isDialogOpen||(Ie.instance||(Ie.instance=new Ie(t)),Ie.instance.openDialog())}openDialog(){this.initialPatternConfig=ne().cloneDeep(this.eventBus.getPatternConfig()),Ie.isDialogOpen=!0,this.createDialog().show()}createDialog(){const t=Et.divV([]);this.subscriptions.add(this.eventBus.strandsUpdated$.subscribe((()=>this.onStrandsUpdated(t))));const e=Et.dialog("Edit terminal modifications").add(t).onOK((()=>{})).onCancel((()=>this.resetToInitialState()));return this.subscriptions.add(e.onClose.subscribe((()=>{Ie.isDialogOpen=!1,this.subscriptions.unsubscribeAll()}))),e}onStrandsUpdated(t){const e=new Ne(this.eventBus).create();Tt()(t).empty(),Tt()(t).append(e)}resetToInitialState(){this.eventBus.setPatternConfig(this.initialPatternConfig)}}Ie.isDialogOpen=!1;class Ne{constructor(t){this.eventBus=t}create(){const t=Bt.map((t=>this.constructControlsPanel(t)));return Et.divH(t,{style:{gap:"24px"}})}constructControlsPanel(t){if(!this.eventBus.isAntisenseStrandActive()&&"AS"===t)return Et.div([]);const e=this.createInputs(t);return Et.block([Et.h1(`${Pt[t]}`),e],{style:{paddingTop:"12px"}})}createInputs(t){const e=("SS"===t?[...Rt].reverse():Rt).map((e=>this.createInputForTerminus(t,e)));return Et.form(e)}createInputForTerminus(t,e){const n=this.eventBus.getTerminalModifications()[t][e],r=Et.input.textArea(e,{value:n});return this.applyStylingToInput(r),r.onInput.subscribe((()=>{const n=r.value;null!==n&&this.eventBus.updateTerminusModification(t,e,n)})),r}applyStylingToInput(t){const e=t.root.getElementsByTagName("textarea")[0];Tt()(e).css("resize","none")}}class Oe{constructor(t,e){this.eventBus=t,this.dataManager=e}createControls(){const t=this.createAntisenseStrandToggle(),e=this.createStrandLengthInputs(),n=e.SS.root,r=e.AS.root,i=this.createSequenceBaseInput().root,o=this.createPatternCommentInput().root,s=this.createPatternNameInputBlock(),a=this.createEditPatternButton(),u=this.createEditTerminalModificationsButton();return[Et.h1("Edit"),t,n,r,i,s,o,Et.buttonsInput([u,a])]}createEditPatternButton(){const t=Et.button("Edit strands",(()=>Te.open(this.eventBus,this.dataManager)));return Et.tooltip.bind(t,"Edit strand modifications and PTOs"),t}createEditTerminalModificationsButton(){const t=Et.button("Edit terminals",(()=>Ie.open(this.eventBus)));return Et.tooltip.bind(t,"Edit terminal modifications"),Tt()(t).css("margin-right","20px"),t}createAntisenseStrandToggle(){const t=Et.input.toggle(`${Pt.AS} strand`,{value:this.eventBus.isAntisenseStrandActive()});return t.onInput.subscribe((()=>this.eventBus.toggleAntisenseStrand(t.value))),this.eventBus.patternLoaded$.subscribe((()=>{t.value=this.eventBus.isAntisenseStrandActive()})),t.setTooltip("Toggle antisense strand"),t.root}createStrandLengthInputs(){const e=t=>{const e=this.eventBus.getNucleotideSequences()[t].length,r=Et.input.int(`${Pt[t]} length`,{value:e});return r.onInput.subscribe((()=>n(t,r))),this.eventBus.nucleotideSequencesChanged$.subscribe((()=>{r.value=this.eventBus.getNucleotideSequences()[t].length})),r.setTooltip(`Number of nucleotides in ${t}, including overhangs`),[t,r]},n=(e,n)=>{const r=n.value;null!==r&&(r<=0&&(t.shell.warning("Sequence length must be greater than 0"),n.value=1),r>34&&(t.shell.warning("Sequence length must be less than 35"),n.value=34),this.eventBus.updateStrandLength(e,n.value))},r=Object.fromEntries(Bt.map((t=>e(t))));return this.eventBus.antisenseStrandToggled$.subscribe((t=>{Tt()(r.AS.root).toggle(t)})),r}createSequenceBaseInput(){const t=this.dataManager.fetchAvailableNucleotideBases().sort(((t,e)=>t.toLowerCase().localeCompare(e.toLowerCase()))),e=this.dataManager.fetchDefaultNucleobase(),n=Et.input.choice("Sequence basis",{value:e,items:t});return n.onInput.subscribe((()=>this.eventBus.replaceSequenceBase(n.value))),this.eventBus.nucleotideSequencesChanged$.subscribe((()=>{n.value=this.eventBus.getSequenceBase()})),n.setTooltip("Most frequent nucleobase in the strands"),n}createPatternCommentInput(){const t=Et.input.textArea("Comment",{value:this.eventBus.getComment()});return Tt()(t.root).addClass("st-pattern-text-input"),t.onInput.subscribe((()=>this.eventBus.updateComment(t.value))),this.eventBus.patternLoaded$.subscribe((()=>{t.value=this.eventBus.getComment()})),t}createPatternNameInputBlock(){const t=Et.input.textArea("Pattern name",{value:this.eventBus.getPatternName()});return Tt()(t.root).addClass("st-pattern-text-input"),t.onInput.subscribe((()=>this.eventBus.updatePatternName(t.value))),this.eventBus.patternLoaded$.subscribe((()=>{t.value=this.eventBus.getPatternName()})),t.setTooltip("Name under which pattern will be saved"),t.root}}class Me{constructor(t,e){this.eventBus=t,this.dataManager=e,this.subscriptions=new Se,this.authorSelectedByUser=!1,this.eventBus.patternLoadRequested$.subscribe((t=>this.handlePatternChoice(t))),this.eventBus.patternDeletionRequested$.subscribe((async t=>{await this.dataManager.deletePattern(t,this.eventBus)}))}async handlePatternChoice(t){let e=await this.dataManager.getPatternConfig(t);null===e&&(e=this.dataManager.getDefaultPatternConfig()),this.eventBus.setPatternConfig(e),this.eventBus.updateControlsUponPatternLoaded(t),this.eventBus.setLastLoadedPatternConfig(e)}isCurrentUserSelected(){return this.eventBus.getSelectedAuthor()!==this.dataManager.getOtherUsersAuthorshipCategory()}createControls(){const t=this.getPatternInputsContainer();return[Et.h1("Load"),t]}getPatternInputsContainer(){const t=Et.divH(this.createPatternInputs());return this.eventBus.patternListUpdated$.subscribe((()=>{this.subscriptions.unsubscribeAll(),Tt()(t).empty(),Tt()(t).append(this.createPatternInputs())})),t}createPatternInputs(){const t=this.createAuthorChoiceInput(),e=this.createPatternChoiceInputContainer(),n=this.createDeletePatternButton();return[t.root,e,n]}createPatternChoiceInputContainer(){const t=this.createPatternChoiceInput(),e=Et.div([t.root]),n=this.eventBus.userSelection$.subscribe((()=>{Tt()(e).empty(),Tt()(e).append(this.createPatternChoiceInput().root)}));return this.subscriptions.add(n),e}createAuthorChoiceInput(){const t=[this.dataManager.getCurrentUserAuthorshipCategory()];this.dataManager.getOtherUsersPatternNames().length>0&&t.push(this.dataManager.getOtherUsersAuthorshipCategory());const e=Et.input.choice("Author",{value:this.eventBus.getSelectedAuthor(),items:t});return e.onInput.subscribe((()=>{if(this.authorSelectedByUser=!0,null===e.value)throw new Error("author choice must be non-null");this.eventBus.selectAuthor(e.value)})),this.setAuthorChoiceInputStyle(e),e.setTooltip("Select pattern author"),e}setAuthorChoiceInputStyle(t){Tt()(t.input).css({"max-width":"100px","min-width":"100px"}),Tt()(t.root).css({"padding-right":"30px","padding-left":"30px"})}createPatternChoiceInput(){const t=this.isCurrentUserSelected()?this.dataManager.getCurrentUserPatternNames():this.dataManager.getOtherUsersPatternNames();if(this.authorSelectedByUser){const e=this.dataManager.getPatternHash(t[0],this.isCurrentUserSelected());this.eventBus.requestPatternLoad(e),this.eventBus.updateUrlState(e),this.authorSelectedByUser=!1}const e=this.getPatternName(t),n=Et.input.choice("Pattern",{value:e,items:t});return n.setTooltip("Select pattern to load"),Tt()(n.input).css({"max-width":"100px","min-width":"100px"}),this.subscriptions.add(n.onInput.subscribe((()=>{const t=this.dataManager.getPatternHash(n.value,this.isCurrentUserSelected());this.eventBus.requestPatternLoad(t),this.eventBus.updateUrlState(t)}))),this.subscriptions.add(this.eventBus.patternLoaded$.subscribe((()=>{const e=this.eventBus.getPatternName();n.value!==e&&(n.value=this.getPatternName(t))}))),n}getPatternName(t){return t.find((t=>t.split(" (")[0]===this.eventBus.getPatternName()))??t[0]}createDeletePatternButton(){const e=Et.button(Et.iconFA("trash-alt"),(()=>{this.eventBus.getPatternName()!==this.dataManager.getDefaultPatternName()?this.showDeletePatternDialog():t.shell.warning("Cannot delete example pattern")}));Et.tooltip.bind(e,"Delete pattern from user storage");const n=this.eventBus.userSelection$.subscribe((()=>{e.disabled=!this.isCurrentUserSelected()}));return this.subscriptions.add(n),e}showDeletePatternDialog(){const t=Et.dialog("Delete pattern"),e=this.eventBus.getPatternName();t.add(Et.divText(`Are you sure you want to delete pattern ${e}?`)),t.onOK((()=>this.eventBus.requestPatternDeletion(e))),t.show()}}class Le{constructor(t,e){this.eventBus=t,this.dataManager=e}getLayout(){const t=new Me(this.eventBus,this.dataManager),e=new Oe(this.eventBus,this.dataManager),n=new xe(this.eventBus),r=t.createControls(),i=e.createControls(),o=n.createControls(),s=Et.div(r);Tt()(s).css({"padding-bottom":"20px"});const a=Et.div([...i,...o],"ui-form"),u=Et.div([s,a]);return Tt()(u).css({padding:"25px"}),Et.box(u,{style:{maxWidth:"450px"}})}}var Be=n(146);class Pe{constructor(t,e,n){this.svgElementFactory=t,this.config=e,this.yShift=n}shiftElements(t){this.svgElements.forEach((e=>{const n=e.getAttribute("transform")||"",r=`translate(${t.x},${t.y})`;e.setAttribute("transform",`${n} ${r}`)}))}}class Re{constructor(){}static getInstance(){return Re.instance||(Re.instance=new Re,Re.instance.canvas=document.createElement("canvas")),Re.instance}static getTextDimensions(t,e){const n=Re.getInstance().canvas.getContext("2d");if(!n)throw new Error("Canvas 2D context is not available");return n.font=`${e}px Arial`,{width:1.1*n.measureText(t).width,height:1.1*e}}}function De(t){const e=Object.keys(kr.jsonData.patternAppData)[0];if(!e)throw new Error(`No format found in '${ot}'`);return kr.jsonData.patternAppData[e][t].color||""}class Fe extends Pe{constructor(t,e,n){super(t,e,n);const r=Bt.filter((t=>e.nucleotideSequences[t].length>0));this.strands=r.map((t=>new ke(this.svgElementFactory,e,n,t))),this.terminalModifications=r.map(((t,r)=>new Ue(this.svgElementFactory,e,n,t,this.strands[r]))),this.labels=r.map(((t,r)=>new He(this.svgElementFactory,e,n,t,this.terminalModifications[r])))}get svgElements(){return[...this.strands,...this.terminalModifications,...this.labels].map((t=>t.svgElements)).flat()}getContentWidth(){return Math.max(...this.labels.map((t=>t.getContentWidth())))}getContentHeight(){return this.strands.reduce(((t,e)=>t+e.getContentHeight()),0)}}class ke extends Pe{constructor(t,e,n,r){super(t,e,n),this.svgElementFactory=t,this.config=e,this.yShift=n,this.strand=r,this.nucleotideNumericLabels=this.computeNucleotideNumericLabels(),"AS"===this.strand&&(this.config.phosphorothioateLinkageFlags[this.strand].reverse(),this.config.nucleotideSequences[this.strand].reverse(),this.nucleotideNumericLabels.reverse()),this._svgElements=[this.createStrandCircles(),this.createPTOLinkageStars()].flat()}computeNucleotideNumericLabels(){let t=0;return this.config.nucleotideSequences[this.strand].map((e=>Qt(e)?null:(t++,t)))}get svgElements(){return this._svgElements}getStrandCircleYShift(){return $e(this.strand,this.yShift)}createStrandCircles(){const t={x:80,y:this.getStrandCircleYShift()};return this.config.nucleotideSequences[this.strand].map(((e,n)=>this.createNucleotideElementGroup(e,n,t))).flat()}createNucleotideElementGroup(t,e,n){return[...this.createNucleotideCircleElements(t,e,n),this.config.nucleotidesWithNumericLabels.includes(t)?this.createNucleotideNumericLabel(e,n):null].filter((t=>null!==t))}createNucleotideCircleElements(t,e,n){const r=De(t),i={...n,x:n.x+30*e};return[this.svgElementFactory.createCircleElement(i,15,r),this.createNucleotideLetterLabel(e,n,t)]}getNucleotideCircleCenterPosition(t,e){return{x:e.x+30*t,y:e.y}}createNucleotideLetterLabel(t,e,n){if(!lt.includes(n))return null;const r=function(t){return!Qt(t)&&lt.includes(t)?t:""}(n),i=function(t){const e=De(t),n=e.match(/\d+/g)?.map(Number);if(!n||n.length<3)return"#ffffff";const[r,i,o]=n;return.299*r+.587*i+.114*o>186?"#333333":"#ffffff"}(n),o=this.getPositionForNucleotideLabel(t,e);return this.svgElementFactory.createTextElement(r,o,17,i)}getPositionForNucleotideLabel(t,e){const n=this.getNucleotideCircleCenterPosition(t,e),r=Re.getTextDimensions("A",17);return{x:n.x-r.width/2,y:n.y+r.height/3}}getNumericLabelYShift(t){return"SS"===this.strand?t.y-20:t.y+15+5+15}createNucleotideNumericLabel(t,e){const n=this.nucleotideNumericLabels[t];if(null===n)return null;const r=Re.getTextDimensions(n.toString(),15).width,i={x:e.x+30*t-r/2,y:this.getNumericLabelYShift(e)};return this.svgElementFactory.createTextElement(n.toString(),i,15,"var(--grey-6)")}createPTOLinkageStars(){const t=this.config.phosphorothioateLinkageFlags[this.strand],e=this.getStrandCircleYShift()+12;return t.map(((t,n)=>{if(!t)return null;const r={x:65+30*n,y:e};return this.svgElementFactory.createStarElement(r,"red")})).filter((t=>null!==t))}getContentWidth(){return 30*this.config.nucleotideSequences[this.strand].length}getContentHeight(){return 62}}class He extends Pe{constructor(t,e,n,r,i){super(t,e,n),this.svgElementFactory=t,this.config=e,this.yShift=n,this.strand=r,this.terminalModifications=i,this._svgElements=this.createSVGElements()}createSVGElements(){return[this.createLeftLabel(),this.createRightLabel()]}getLeftLabelWidth(){return 55}getRightLabelWidth(){return 20}createLeftLabel(){const t="SS"===this.strand?"5'":"3'",e=`${this.strand}: ${t} `,n=Re.getTextDimensions(e,17),r={x:10,y:$e(this.strand,this.yShift)+n.height/3};return this.svgElementFactory.createTextElement(e,r,17,"var(--grey-6)")}createRightLabel(){const t=" "+("SS"===this.strand?"3'":"5'"),e=Re.getTextDimensions(t,17),n={x:65+this.terminalModifications.getContentWidth()+5,y:$e(this.strand,this.yShift)+e.height/3};return this.svgElementFactory.createTextElement(t,n,17,"var(--grey-6)")}get svgElements(){return this._svgElements}getContentWidth(){return this.terminalModifications.getContentWidth()+this.getLeftLabelWidth()+this.getRightLabelWidth()+10}getContentHeight(){return this.terminalModifications.getContentHeight()}}class Ue extends Pe{constructor(t,e,n,r,i){super(t,e,n),this.svgElementFactory=t,this.config=e,this.yShift=n,this.strand=r,this.strandSvgWrapper=i,this._svgElements=this.createSVGElements()}createSVGElements(){return this.createTerminalModifications()}getTerminalModification(t){return this.config.strandTerminusModifications[this.strand][t]}getTerminalModificationTextDimensions(t){const e=this.getTerminalModification(t);return Re.getTextDimensions(e,17)}getLeftTerminus(){return"SS"===this.strand?"5'":"3'"}createTerminalModification(t){const e=this.getTerminalModification(t),n=this.getTerminalModificationTextDimensions(t),r=t===this.getLeftTerminus(),i={x:r?65:65+this.getTerminalModificationTextDimensions(this.getLeftTerminus()).width+this.strandSvgWrapper.getContentWidth(),y:$e(this.strand,this.yShift)+n.height/3};return r&&this.strandSvgWrapper.shiftElements({x:n.width,y:0}),this.svgElementFactory.createTextElement(e,i,17,"red")}createTerminalModifications(){return("AS"===this.strand?Rt:Array.from(Rt).reverse()).map((t=>this.createTerminalModification(t)))}get svgElements(){return this._svgElements}getContentWidth(){return this.strandSvgWrapper.getContentWidth()+Rt.map((t=>this.getTerminalModificationTextDimensions(t).width)).reduce(((t,e)=>t+e),0)}getContentHeight(){return this.strandSvgWrapper.getContentHeight()}}function $e(t,e){return"SS"===t?e+5+15+15:e+52+10+15}class Ve{constructor(){this.xmlNamespace="http://www.w3.org/2000/svg"}createElement(t){return document.createElementNS(this.xmlNamespace,t)}setAttributes(t,e){Object.entries(e).forEach((([e,n])=>{t.setAttribute(e,String(n))}))}createCanvas(t,e){const n=this.createElement("svg");return this.setAttributes(n,{id:"mySvg",width:t,height:e}),n}createCircleElement(t,e,n){const r=this.createElement("circle");return this.setAttributes(r,{cx:t.x,cy:t.y,r:e,fill:n}),r}createTextElement(t,e,n,r){const i=this.createElement("text");return this.setAttributes(i,{x:e.x,y:e.y,"font-size":n,"font-weight":"normal","font-family":"Arial",fill:r}),i.textContent=t,i}createStarElement(t,e){const n=this.createElement("polygon"),r=this.computeStarVertexCoordinates(t).map((t=>t.join(","))).join(" ");return this.setAttributes(n,{points:r,fill:e}),n}computeStarVertexCoordinates(t){const e=Math.PI/5,n=-e/2;return Array.from({length:10},((r,i)=>{const o=i%2==0?6:3,s=i*e+n;return[t.x+Math.cos(s)*o,t.y+Math.sin(s)*o]}))}createRectangleElement(t,e,n,r){const i=this.createElement("rect");return this.setAttributes(i,{x:t.x,y:t.y,width:e,height:n,fill:r}),i}}class je extends Pe{constructor(t,e,n){super(t,e,n),this.svgElementFactory=t,this.config=e,this.yShift=n,this._svgElements=[],this.titleText=this.getTitleText(),this._svgElements=[this.getTitle()]}get svgElements(){return this._svgElements}getTitle(){return this.svgElementFactory.createTextElement(this.titleText,{x:15,y:this.yShift+17},17,"black")}getContentWidth(){return Re.getTextDimensions(this.titleText,17).width}getContentHeight(){return Re.getTextDimensions(this.titleText,17).height}getTitleText(){const t=`${this.config.nucleotideSequences.SS.length}`,e=this.config.isAntisenseStrandIncluded?`/${this.config.nucleotideSequences.AS.length}`:"";return`${this.config.patternName} for ${t}${e}-mer`}}class qe extends Pe{constructor(t,e,n){super(t,e,n),this._svgElements=[];const{elements:r,width:i}=this.createLegendItems();this._svgElements=r,this.width=i}isPhosphorothioatePresent(){return Object.values(this.config.phosphorothioateLinkageFlags).flat().some((t=>t))}getModificationTypesList(){return[...new Set(Object.values(this.config.nucleotideSequences).flat().sort(((t,e)=>t.toLowerCase().localeCompare(e.toLowerCase()))))]}get svgElements(){return this._svgElements}createLegendItem(t,e){const n={x:e,y:this.yShift-6},r=t.includes("linkage")?this.svgElementFactory.createStarElement(n,"red"):this.svgElementFactory.createCircleElement(n,6,De(t));e+=12;const i={y:this.yShift,x:e};return{elements:[r,this.svgElementFactory.createTextElement(t,i,15,"var(--grey-6)")],width:12+Re.getTextDimensions(t,15).width}}createLegendItems(){let t=10;const e=[],n=e=>t+=e+15;if(this.isPhosphorothioatePresent()){const{elements:r,width:i}=this.createLegendItem("PTO linkage",t);n(i),e.push(r)}return this.getModificationTypesList().forEach((r=>{const{elements:i,width:o}=this.createLegendItem(r,t);n(o),e.push(i)})),{elements:e.flat(),width:t}}getContentHeight(){return 20}getContentWidth(){return this.width}}class Ge{constructor(t){this.svgElementFactory=new Ve;const e=ne().cloneDeep(t);let n=10;this.title=new je(this.svgElementFactory,e,n),n+=this.title.getContentHeight(),this.strands=new Fe(this.svgElementFactory,e,n),n+=this.strands.getContentHeight()+10,this.legend=new qe(this.svgElementFactory,e,n)}renderPattern(){const t=this.getGlobalWidth(),e=this.getGlobalHeight(),n=this.svgElementFactory.createCanvas(t,e),r=[this.title,this.strands,this.legend].map((t=>t.svgElements)).flat();return n.append(...r),n}getGlobalWidth(){const t=[this.title,this.strands,this.legend];return Math.max(...t.map((t=>t.getContentWidth())))}getGlobalHeight(){return[this.title,this.strands,this.legend].reduce(((t,e)=>t+e.getContentHeight()),10)}}class We{constructor(t){this.eventBus=t,this.svgDisplayDiv=Et.div([]),t.updateSvgContainer$.subscribe((()=>this.updateSvgContainer())),t.svgSaveRequested$.subscribe((()=>this.saveSvgAsPng()))}static createSvgDiv(t){return new We(t).svgDisplayDiv}updateSvgContainer(){$(this.svgDisplayDiv).empty();const t=this.eventBus.getPatternConfig();this.svgElement=this.createSvg(t),this.svgDisplayDiv.append(this.svgElement)}createSvg(t){return new Ge(t).renderPattern()}saveSvgAsPng(){const t=this.eventBus.getPatternName();Be.saveSvgAsPng(this.svgElement,t,{backgroundColor:"white"})}}class ze{constructor(t){this.eventBus=t,this.togglesContainer=Et.div([]),this.eventBus.uniqueNucleotidesChanged$().subscribe((()=>{this.updateContainer()}))}getContainer(){return this.togglesContainer}updateContainer(){Tt()(this.togglesContainer).empty(),Tt()(this.togglesContainer).append(this.createInputs())}createInputs(){const t=this.eventBus.getUniqueNucleotides().filter((t=>!Qt(t))).map((t=>this.createSingleInput(t)));return t.sort(((t,e)=>t.captionLabel.textContent.localeCompare(e.captionLabel.textContent))),Et.divH(t.map((t=>t.root)))}createSingleInput(t){const e=this.eventBus.getModificationsWithNumericLabels().includes(t),n=Et.input.bool(t,{value:e,onValueChanged:e=>this.handleNumericLabelToggle(t,e)});return Tt()(n.root).css("padding-right","20px"),n.setTooltip(`Show numeric labels for ${t}`),n}handleNumericLabelToggle(t,e){const n=this.eventBus.getModificationsWithNumericLabels();if(n.includes(t)===e)return;const r=e?n.concat(t):n.filter((e=>e!==t));this.eventBus.updateModificationsWithNumericLabels(r)}}class Ye{constructor(t,e){this.eventBus=t,this.dataManager=e,this.subscriptions=new Se}createContainer(){return Et.div([Et.h1("Translation example"),this.createTranslationExamples()],{style:{paddingTop:"20px"}})}createTranslationExamples(){const t=Et.divH([...this.getExampleElements()],"ui-form");return this.eventBus.antisenseStrandToggled$.subscribe((()=>{this.subscriptions.unsubscribeAll(),Tt()(t).empty(),Tt()(t).append(this.getExampleElements())})),t}getExampleElements(){return Bt.map((t=>new Ke(t,this.eventBus,this.subscriptions).create()))}}class Ke{constructor(t,e,n){this.strand=t,this.eventBus=e,this.subscriptions=n}create(){return this.eventBus.isAntisenseStrandActive()||"AS"!==this.strand?(this.inputExample=this.createInputExample(),this.outputExample=this.createOutputExample(this.inputExample.value),this.subscribeToEvents(),Et.block50([Et.h2(Pt[this.strand]),this.inputExample.root,this.outputExample.root],{style:{paddingRight:"20px"}})):Et.div([])}subscribeToEvents(){const t=this.eventBus.strandsLinkagesAndTerminalsUpdated$.subscribe((()=>{const t=this.generateExampleSequence();this.inputExample.value=t,this.outputExample.value=this.computeOutputValue(t)}));"AS"===this.strand&&this.subscriptions.add(t)}createInputExample(){const t=this.createTextInputForExamples(),e=this.generateExampleSequence();return t.value=e,t.setTooltip(`Example raw nucleotides input for ${Pt[this.strand]}`),t}generateExampleSequence(){return this.eventBus.getNucleotideSequences()[this.strand].map(((t,e)=>lt[e%lt.length])).join("")}createOutputExample(t){const e=this.createTextInputForExamples();return e.value=this.computeOutputValue(t),e.setTooltip(`Pattern applied to the example input for ${Pt[this.strand]}`),e}computeOutputValue(t){const e=this.eventBus.getNucleotideSequences()[this.strand],n=this.eventBus.getTerminalModifications()[this.strand];return Ae(t,e,this.eventBus.getPhosphorothioateLinkageFlags()[this.strand],n)}createTextInputForExamples(){const t=Et.input.textArea("",{value:""});return this.applyStylingToInput(t),t}applyStylingToInput(t){const e=t.root.getElementsByTagName("textarea")[0];e.setAttribute("readonly","true"),Tt()(e).css("resize","none"),Tt()(t.root).css("opacity","75%")}}class Je{constructor(t,e){this.eventBus=t,this.dataManager=e,this.svgDisplay=We.createSvgDiv(t)}getLayout(){const t=new ze(this.eventBus).getContainer(),e=this.generateDownloadControls(),n=new Ye(this.eventBus,this.dataManager).createContainer();return Et.panel([this.svgDisplay,t,e,n],{style:{overflowX:"scroll",padding:"12px 24px"}})}generateDownloadControls(){return Et.divH([this.createSavePatternButton(),this.createDownloadPngButton(),this.createShareLinkButton(),this.createInfoButton()],{style:{gap:"12px",marginTop:"12px"}})}createDownloadPngButton(){const t=Et.button("Get PNG",(()=>this.eventBus.requestSvgSave()));return Et.tooltip.bind(t,"Download pattern as PNG"),t}createInfoButton(){const t=Et.button(Et.iconFA("info-circle"),(()=>this.openInfoDialog()));return this.eventBus.patternHasUnsavedChanges$.subscribe((e=>{t.disabled=e})),Et.tooltip.bind(t,"View pattern metadata"),t}async openInfoDialog(){let e=this.dataManager.getCurrentUserName(),n=this.dataManager.getDefaultPatternName(),r=jt,i=jt;const o=new URLSearchParams(window.location.search).get("pattern");if(null!==o){const s=await this.dataManager.getPatternRecordByHash(o);if(null!==s){const o=s[Ht.AUTHOR_ID];if(e=(await t.dapi.users.find(o)).friendlyName,n=s[Ht.PATTERN_CONFIG][kt.PATTERN_NAME],void 0!==s[Ht.DATE]){const t=s[Ht.DATE][Ut.CREATE];void 0!==t&&(r=t);const e=s[Ht.DATE][Ut.MODIFY];void 0!==e&&(i=e)}}}const s=Et.divV([Et.divText(`Pattern Name: ${n}`),Et.divText(`Author: ${e}`),Et.divText(`Created: ${Xe(new Date(r))}`),Et.divText(`Modified: ${Xe(new Date(i))}`)]);t.shell.info(s)}createShareLinkButton(){const e=Et.button(Et.iconFA("link"),(()=>navigator.clipboard.writeText(window.location.href).then((()=>t.shell.info("Link to pattern copied to clipboard")))));return this.eventBus.patternHasUnsavedChanges$.subscribe((t=>{e.disabled=t})),Et.tooltip.bind(e,"Share pattern link"),e}createSavePatternButton(){const t=Et.button("Save",(()=>this.processSaveButtonClick()));return this.eventBus.patternHasUnsavedChanges$.subscribe((e=>{t.disabled=!e})),Et.tooltip.bind(t,"Save pattern to user storage"),t}processSaveButtonClick(){const e=this.eventBus.getPatternName();e!==this.dataManager.getDefaultPatternName()?""!==e?this.dataManager.savePatternToUserStorage(this.eventBus).then((()=>{t.shell.info(`Pattern ${e} saved`)})).catch((t=>this.handleErrorWhileSavingPattern(t))):t.shell.warning("Insert pattern name"):t.shell.warning("Cannot save default pattern")}handleErrorWhileSavingPattern(e){e instanceof qt?new Qe(this.eventBus,this.dataManager).show():e instanceof Gt?t.shell.warning(Et.div([Et.divText("Pattern already exists"),Et.button("Load",(()=>{const t=e.message;this.eventBus.requestLoadPatternInNewTab(t)}))])):console.error("Error while saving pattern",e)}}class Qe{constructor(t,e){this.eventBus=t,this.dataManager=e}show(){const t=this.eventBus.getPatternName(),e=Et.dialog(`Pattern "${t}" already exists`);e.add(Et.divText(`Pattern "${t}" already exists. Do you want to overwrite it?`)),e.show(),e.onOK((()=>this.processOverwriteNamesakePattern()))}processOverwriteNamesakePattern(){const e=this.eventBus.getPatternName();this.dataManager.overwriteExistingPatternInUserStorage(this.eventBus).then((()=>{t.shell.info(`Pattern ${e} overwritten`)})).catch((e=>{console.error("Error while overwriting pattern in user storage",e),t.shell.error("Error while overwriting pattern")}))}}function Xe(t){return t.toLocaleString().split(":").slice(0,-1).join(":")}class Ze extends Lt{constructor(t){super("Oligo Pattern"),this.th=t}getContent(){return async function(){const t=await Yt.getInstance(),e=new oe,n=await async function(t,e){const n=e.getPatternHash();if(!n)return e.clearPatternURL(),t.getDefaultPatternRecord();let r=await t.getPatternRecordByHash(n);return r||(e.clearPatternURL(),r=t.getDefaultPatternRecord()),r}(t,e),r=new re(t,n);e.subscribeToObservables(r);const i=new Le(r,t).getLayout(),o=new Je(r,t).getLayout();return Et.splitH([i,o],{},!0)}()}}var tn=n(507),en={};function nn(t){var e;return"string"==typeof t||t instanceof String?t:("object"==typeof t||t instanceof Object)&&"$thrownJsError"in t?nn(t.$thrownJsError):t instanceof Error?null!==(e=t.stack)&&void 0!==e?e:t.message:t.toString()}en.styleTagTransform=ve(),en.setAttributes=de(),en.insert=he().bind(null,"head"),en.domAPI=le(),en.insertStyleElement=ge(),ae()(tn.A,en),tn.A&&tn.A.locals&&tn.A.locals;var rn,on=n(74),sn={};sn.styleTagTransform=ve(),sn.setAttributes=de(),sn.insert=he().bind(null,"head"),sn.domAPI=le(),sn.insertStyleElement=ge(),ae()(on.A,sn),on.A&&on.A.locals&&on.A.locals;class an{constructor(t,e,n=!0){this.textInputBase=t,this.painter=e,Tt()(this.root).addClass("st-colored-text-input"),n&&this.textInputBase.onChanged.subscribe((()=>{Tt()(this.textArea).css("height",0),Tt()(this.textArea).css("height",this.textArea.scrollHeight+"px")})),this.highlights=Et.div([]),this.root.appendChild(this.highlights),this.colorize(),this.textInputBase.onChanged.subscribe((()=>this.colorize()))}get textArea(){return this.textInputBase.root.getElementsByTagName("textarea").item(0)}get inputBase(){return this.textInputBase}get root(){return this.textInputBase.root}colorize(){const t=this.painter(this.textInputBase.value);this.highlights.innerHTML="",t.forEach((t=>this.highlights.appendChild(t)))}}!function(t){t.TYPE="V2000",t[t.NUM_OF_HEADER_LINES=3]="NUM_OF_HEADER_LINES",t[t.NUM_OF_COUNTS_DIGITS=3]="NUM_OF_COUNTS_DIGITS",t[t.ATOM_TYPE_COL=4]="ATOM_TYPE_COL",t[t.FIRST_BONDED_ATOM_COL=1]="FIRST_BONDED_ATOM_COL",t[t.BOND_TYPE_COL=3]="BOND_TYPE_COL",t[t.RGP_SHIFT=8]="RGP_SHIFT",t[t.MAX_ATOM_COUNT=999]="MAX_ATOM_COUNT",t.RGP_LINE_START="M RGP",t.ATOM_ALIAS_LINE_START="A ",t.END="M END"}(rn||(rn={}));class un{constructor(t){this.init(t)}init(t){this.fileContent=t.replace(/\r/g,""),this._atomCount=void 0,this._atomTypes=void 0,this._bondCount=void 0,this._bondTypes=void 0,this.xyzAtomCoordinates=void 0,this._pairsOfBondedAtoms=void 0}get atomCount(){return void 0===this._atomCount&&this.setAtomAndBondCounts(),this._atomCount}get bondCount(){return void 0===this._bondCount&&this.setAtomAndBondCounts(),this._bondCount}get x(){var t;return null!==(t=this.xyzAtomCoordinates)&&void 0!==t||(this.xyzAtomCoordinates=this.parseAtomCoordinates()),this.xyzAtomCoordinates.x}get y(){var t;return null!==(t=this.xyzAtomCoordinates)&&void 0!==t||(this.xyzAtomCoordinates=this.parseAtomCoordinates()),this.xyzAtomCoordinates.y}get z(){var t;return null!==(t=this.xyzAtomCoordinates)&&void 0!==t||(this.xyzAtomCoordinates=this.parseAtomCoordinates()),this.xyzAtomCoordinates.z}get atomTypes(){var t;return null!==(t=this._atomTypes)&&void 0!==t||(this._atomTypes=this.parseAtomTypes()),this._atomTypes}get pairsOfBondedAtoms(){var t;return null!==(t=this._pairsOfBondedAtoms)&&void 0!==t||(this._pairsOfBondedAtoms=this.parseBondedAtomPairs()),this._pairsOfBondedAtoms}get bondTypes(){var t;return null!==(t=this._bondTypes)&&void 0!==t||(this._bondTypes=this.parseBondTypes()),this._bondTypes}setAtomAndBondCounts(){const{atomCount:t,bondCount:e}=this.parseAtomAndBondCounts();this._atomCount=t,this._bondCount=e}getNextColumnIdx(t){for(;!this.isWhitespace(t);)++t;for(;this.isWhitespace(t);)++t;return t}shiftIdxToSpecifiedColumn(t,e){let n=t;const r=this.isWhitespace(n)?e:e-1;for(let t=0;t<r;t++)n=this.getNextColumnIdx(n);return n}parseAtomTypes(){const t=this.atomCount,e=new Array(t);let n=this.getAtomBlockIdx();for(let r=0;r<t;r++)n=this.shiftIdxToAtomType(n),e[r]=this.parseAtomType(n),n=this.getNextLineIdx(n);return e}parseAtomCoordinates(){const t=new Float32Array(this.atomCount),e=new Float32Array(this.atomCount),n=new Float32Array(this.atomCount);let r=this.getAtomBlockIdx();for(let i=0;i<this.atomCount;i++){r=this.shiftIdxToXColumn(r);for(const o of[t,e,n])o[i]=this.parseFloatValue(r),r=this.getNextColumnIdx(r);r=this.getNextLineIdx(r)}return{x:t,y:e,z:n}}parseBondedAtomPairs(){const t=new Array(this.bondCount);let e=this.getBondBlockIdx();for(let n=0;n<this.bondCount;n++){e=this.shiftIdxToBondedAtomsPair(e);const r=new Uint16Array(2);r[0]=this.parseIntValue(e),e=this.getNextColumnIdx(e),r[1]=this.parseIntValue(e),t[n]=r,e=this.getNextLineIdx(e)}return t}parseBondTypes(){const t=this.bondCount,e=new Uint16Array(t);let n=this.getBondBlockIdx();for(let r=0;r<t;r++)n=this.shiftIdxToBondType(n),e[r]=this.parseIntValue(n),n=this.getNextLineIdx(n);return e}isWhitespace(t){const e=this.fileContent[t];return" "===e||"\t"===e}getNextLineIdx(t){return"\n"!==this.fileContent[t]?this.fileContent.indexOf("\n",t)+1:t+1}parseFloatValue(t){return this.parseNumericValue(parseFloat,t)}parseIntValue(t){return this.parseNumericValue(parseInt,t)}parseNumericValue(t,e){let n=e+1;for(;!this.isWhitespace(n);)++n;return t(this.fileContent.substring(e,n))}}class ln extends un{constructor(t){super(t),this.init(t)}init(t){super.init(t)}parseAtomType(t){let e=t,n=e;return this.isQuote(e)?(n=this.getNextIdenticalChar(e),e++):n=this.fileContent.indexOf(" ",n),this.fileContent.substring(e,n)}isQuote(t){const e=this.fileContent[t].charCodeAt(0);return 39===e||34===e}getNextIdenticalChar(t){const e=this.fileContent[t];return e?this.fileContent.indexOf(e,t+1):-1}isQuery(){return this.isQueryOrFragment(((t,e)=>{return 39===t||34===t||76===t&&!((n=this.fileContent.charCodeAt(e+1))>64&&n<91||n>96&&n<123);var n}))}isFragment(){return this.isQueryOrFragment((t=>82===t||42===t))}isQueryOrFragment(t){const e=this.atomCount;let n=this.getAtomBlockIdx();for(let r=0;r<e;r++){if(n=this.shiftIdxToAtomType(n),t(this.fileContent.charCodeAt(n),n))return!0;n=this.getNextLineIdx(n)}return!1}}class cn extends ln{constructor(t){super(t)}getAtomLines(){const t=this.getAtomBlockIdx(),e=this.getBondBlockIdx();return this.fileContent.substring(t,e).split("\n").slice(0,this.atomCount)}getBondLines(){const t=this.getBondBlockIdx();return this.fileContent.substring(t).split("\n").slice(0,this.bondCount)}getRGroupIdToAtomicIdxMap(){const t=new Map,e=this.fileContent.split("\n");e.filter((t=>t.startsWith(rn.RGP_LINE_START))).forEach((e=>{const n=this.getAtomIdxToRgpIdxList(e);for(const[e,r]of n){if(t.has(e))throw new Error(`R group ${e} is already in the map`);t.set(e,r)}}));const n=e.map(((t,e)=>{if(t.startsWith(rn.ATOM_ALIAS_LINE_START))return e})).filter((t=>void 0!==t)),r=n.map((t=>e[t])),i=n.map((t=>e[t+1]));r.forEach(((e,n)=>{const r=parseInt(e.split(/\s+/)[1])-1,o=parseInt(i[n].substring(1));if(t.has(o))throw new Error(`R group ${o} is already in the map`);t.set(o,r)}));const o=this.getRGroupAtomicIndices().filter((e=>!Array.from(t.values()).includes(e)));if(0!==o.length)throw new Error(`Unaccounted R group indices: ${o}`);return t}getAtomIdxToRgpIdxList(t){const e=t.split(/\s+/).filter((t=>t)).slice(3).map((t=>parseInt(t))),n=new Array(e.length/2);for(let t=0;t<e.length;t+=2)n[t/2]=[e[t+1],e[t]-1];return n}getRGroupAtomicIndices(){return this.atomTypes.map(((t,e)=>{if(t.includes("R#"))return e})).filter((t=>void 0!==t))}static isValidMolfile(t){return-1!==t.indexOf(rn.TYPE)&&-1!==t.indexOf(rn.END)}shiftIdxToAtomType(t){return this.shiftIdxToSpecifiedColumn(t,rn.ATOM_TYPE_COL)}getCountsLineIdx(){let t=0;for(let e=0;e<rn.NUM_OF_HEADER_LINES;++e)t=this.getNextLineIdx(t);return t}getAtomBlockIdx(){let t=this.getCountsLineIdx();return t=this.getNextLineIdx(t),t}shiftIdxToXColumn(t){return this.getNextColumnIdx(t)}shiftIdxToBondedAtomsPair(t){return this.shiftIdxToSpecifiedColumn(t,rn.FIRST_BONDED_ATOM_COL)}shiftIdxToBondType(t){return this.shiftIdxToSpecifiedColumn(t,rn.BOND_TYPE_COL)}getBondBlockIdx(){let t=this.getAtomBlockIdx();for(let e=0;e<this.atomCount;e++)t=this.getNextLineIdx(t);return t}parseAtomAndBondCounts(){let t=this.getCountsLineIdx(),e=t+rn.NUM_OF_COUNTS_DIGITS;const n=parseInt(this.fileContent.substring(t,e));return t=e,e+=rn.NUM_OF_COUNTS_DIGITS,{atomCount:n,bondCount:parseInt(this.fileContent.substring(t,e))}}}class hn extends ln{constructor(t){super(t),this.init(t)}getAtomLines(){const t=this.getAtomBlockIdx(),e=this.getBondBlockIdx();return this.fileContent.substring(t,e).split("\n").slice(0,this.atomCount)}getBondLines(){const t=this.getBondBlockIdx();return this.fileContent.substring(t).split("\n").slice(0,this.bondCount)}getRGroupIdToAtomicIdxMap(){const t=new Map;return this.getAtomLines().forEach(((e,n)=>{const r=e.match(/RGROUPS=\(([\d\s]+)\)/);if(r){const e=r[1].split(/\s+/).map((t=>parseInt(t)));if(e.length>2)throw new Error(`R group data ${e} has more than 2 elements`);const i=e[1];if(t.has(i))throw new Error(`R group ${i} is already in the map`);t.set(i,n)}})),t}shiftIdxToAtomType(t){return this.shiftIdxToSpecifiedColumn(t,4)}getCountsLineIdx(){return this.fileContent.indexOf("M V30 COUNTS ")}getAtomBlockIdx(){let t=this.fileContent.indexOf("M V30 BEGIN ATOM");return t=this.getNextLineIdx(t),t}shiftIdxToXColumn(t){let e=this.shiftIdxToAtomType(t);return this.isQuote(e)?(e=this.getNextIdenticalChar(e),e=this.getNextColumnIdx(e),e):this.shiftIdxToSpecifiedColumn(t,5)}shiftIdxToBondedAtomsPair(t){return this.shiftIdxToSpecifiedColumn(t,5)}shiftIdxToBondType(t){return this.shiftIdxToSpecifiedColumn(t,4)}getBondBlockIdx(){return this.getNextLineIdx(this.fileContent.indexOf("M V30 BEGIN BOND"))}static isValidMolfile(t){return-1!==t.indexOf("V3000")&&-1!==t.indexOf("M END")}parseAtomAndBondCounts(){let t=this.fileContent.indexOf("M V30 COUNTS ")+14,e=this.fileContent.indexOf(" ",t+1);const n=parseInt(this.fileContent.substring(t,e));return t=e+1,e=this.fileContent.indexOf(" ",t+1),{atomCount:n,bondCount:parseInt(this.fileContent.substring(t,e))}}}class fn{constructor(){}static getInstance(t){if(fn.isMolfileV2K(t))return new cn(t);if(fn.isMolfileV3K(t))return new hn(t);throw new Error("Malformed molfile")}static isMolfileV2K(t){return cn.isValidMolfile(t)}static isMolfileV3K(t){return hn.isValidMolfile(t)}}const dn=class extends Error{constructor(t){super(t)}};class pn{constructor(t){this.molblock=t}get molblock(){return this._validMolBlock}set molblock(t){if(""!==t){try{this.validateMolBlock(t)}catch(e){e instanceof dn&&(t="");const n=nn(e);console.error(n)}this._validMolBlock=t}else this._validMolBlock=t}validateMolBlock(t){if(""===t)throw new dn("MoleculeImage: invalid molblock")}async drawMolBlockOnCanvas(e){try{await t.functions.call("Chem:canvasMol",{x:0,y:0,w:e.width,h:e.height,canvas:e,molString:this.molblock,scaffoldMolString:"",options:{normalizeDepiction:!1,straightenDepiction:!1}})}catch(t){const e=nn(t);console.error(e)}}getMoleculeDimensions(){const t=fn.getInstance(this.molblock),e=Math.max(...t.x)-Math.min(...t.x);return{height:Math.max(...t.y)-Math.min(...t.y),width:e}}async zoomIn(){const t=Et.dialog({title:"Molecule",showFooter:!1}),e=.7*Tt()(window).height(),n=this.getMoleculeDimensions(),r=e/n.height,i=e,o=n.width*r,s=Et.canvas(o,i);await this.drawMolBlockOnCanvas(s);const a=Et.block([s],{style:{overflowX:"scroll"}});t.add(a).showModal(!0),Tt()(t.root).find(".d4-dialog-contents").removeClass("ui-form"),Tt()(t.root).find(".d4-dialog-contents").removeClass("ui-panel"),Tt()(t.root).find(".d4-dialog-contents").addClass("ui-box"),Tt()(t.root).find(".d4-dialog-contents").css("padding","0")}async drawMolecule(t,e,n){t.innerHTML="";const r=Et.canvas(e*window.devicePixelRatio,n*window.devicePixelRatio);r.style.width=`${e}px`,r.style.height=`${n}px`,r.style.cursor="zoom-in",this.drawMolBlockOnCanvas(r),r.addEventListener("click",(async()=>{await this.zoomIn()})),t.append(Et.tooltip.bind(r,"Click to zoom"))}}class gn extends Error{constructor(t,e){super(t,e)}}class mn{constructor(t,e){this.sequence=t,this.codeMap=e}parseSequence(){const t=this.parseRawSequence();return this.addLinkers(t)}addLinkers(t){const e=[];return t.forEach(((n,r)=>{const i=this.getSymbolForCode(n);r>0&&function(t){return kr.jsonData.monomersWithPhosphate.left.includes(t)}(i)&&e.pop(),e.push(i);const o=vn(i),s=r===t.length-1,a=r+1<t.length&&vn(this.getSymbolForCode(t[r+1]));o||function(t){return kr.jsonData.monomersWithPhosphate.right.includes(t)}(i)||a||s||e.push("p")})),e}getSymbolForCode(t){let e=this.codeMap.get(t);return e??(e=t),e}parseRawSequence(){const t=this.getAllCodesOfFormat(),e=[];let n=0;for(;n<this.sequence.length;){const r=t.find((t=>t===this.sequence.substring(n,n+t.length)));if(void 0===r)throw new gn(`Unable to match a monomer for the rest of the sequence '${this.sequence.slice(n)}'.`);e.push(r),n+=r.length}return e}getAllCodesOfFormat(){return ht(Array.from(this.codeMap.keys()))}}function vn(t){return kr.jsonData.monomersWithPhosphate.phosphate.includes(t)}class yn{constructor(t,e=!1,n){this.invert=e,this.lib=kr.monomerLibWrapper;const r=this.lib.getCodeToSymbolMap(n);this.parser=new mn(t,r)}convert(){const t=this.parser.parseSequence(),e=[];t.forEach(((t,n)=>{const r=this.getMonomerMolfile(t,n);e.push(r)}));let n=this.getPolymerMolfile(e);return this.invert&&(n=this.reflect(n),n=this.invertBondConfiguration(n)),n}invertBondConfiguration(t){const e=t.indexOf("M V30 BEGIN BOND"),n=t.indexOf("M V30 END BOND");let r=t.substring(e,n);return r=r.replace(/(CFG=)([13])/g,((t,e,n)=>"1"===n?`${e}3`:"3"===n?`${e}1`:t)),t.substring(0,e)+r+t.substring(n)}getMonomerMolfile(t,e){const n=this.lib.getMolfileBySymbol(t);return this.lib.isModification(t)?0===e?this.reflect(n):n:this.rotateNucleotidesV3000(n)}getPolymerMolfile(t){return this.linkV3000(t)}reflect(t){const e=this.extractAtomDataV3000(t),n=e.atomIndex.length,r=e.atomIndex.indexOf(1),i=e.atomIndex.indexOf(n),o=(e.x[i]+e.x[r])/2,s=(e.y[i]+e.y[r])/2;for(let t=0;t<n;t++)e.x[t]-=o,e.y[t]-=s;for(let t=0;t<n;t++)e.x[t]=-e.x[t];const a=e.x[r];for(let t=0;t<n;t++)e.x[t]-=a;let u=t.indexOf("M V30 BEGIN ATOM");u=t.indexOf("\n",u);let l=u;for(let r=0;r<n;r++)u=t.indexOf("V30",u)+4,u=t.indexOf(" ",u)+1,u=t.indexOf(" ",u)+1,l=t.indexOf(" ",u)+1,l=t.indexOf(" ",l),u=(t=t.slice(0,u)+e.x[r]+" "+e.y[r]+t.slice(l)).indexOf("\n",u)+1;return t}extractAtomDataV3000(t){const e=this.extractAtomsBondsNumbersV3000(t);let n=t.indexOf("M V30 BEGIN ATOM");n=t.indexOf("\n",n);let r=n;const i=Array(e.natom),o=Array(e.natom),s=Array(e.natom),a=Array(e.natom);for(let u=0;u<e.natom;u++)n=t.indexOf("V30",n)+4,r=t.indexOf(" ",n),i[u]=parseInt(t.substring(n,r)),n=r+1,r=t.indexOf(" ",n),o[u]=t.substring(n,r),n=r+1,r=t.indexOf(" ",n),s[u]=parseFloat(t.substring(n,r)),n=r+1,r=t.indexOf(" ",n),a[u]=parseFloat(t.substring(n,r)),n=t.indexOf("\n",n)+1;return{atomIndex:i,atomType:o,x:s,y:a}}extractAtomsBondsNumbersV3000(t){let e=(t=t.replaceAll("\r","")).indexOf("COUNTS")+7,n=t.indexOf(" ",e);const r=parseInt(t.substring(e,n));return e=n+1,n=t.indexOf(" ",e),{natom:r,nbond:parseInt(t.substring(e,n))}}rotateNucleotidesV3000(t){const e=this.extractAtomDataV3000(t),n=e.atomIndex.length,r=e.atomIndex.indexOf(1),i=e.atomIndex.indexOf(n);n>8&&this.fix5Prime(e,r,i);const o=(e.x[i]+e.x[r])/2,s=(e.y[i]+e.y[r])/2;for(let t=0;t<n;t++)e.x[t]-=o,e.y[t]-=s;let a=0;if(0===e.x[r])a=e.y[r]>e.y[i]?Math.PI/2:3*Math.PI/2;else if(0===e.y[r])a=e.x[r]>e.x[i]?Math.PI:0;else{const t=e.y[r]/e.x[r];a=t>0?e.x[r]>0?Math.PI-Math.atan(t):2*Math.PI-Math.atan(t):e.x[r]>0?-Math.PI-Math.atan(t):Math.atan(t)}const u=Math.cos(a),l=Math.sin(a);for(let t=0;t<n;t++){const n=e.x[t];e.x[t]=n*u-e.y[t]*l,e.y[t]=n*l+e.y[t]*u}const c=e.x[r];for(let t=0;t<n;t++)e.x[t]-=c;let h=t.indexOf("M V30 BEGIN ATOM");h=t.indexOf("\n",h);let f=h;for(let r=0;r<n;r++)h=t.indexOf("V30",h)+4,h=t.indexOf(" ",h)+1,h=t.indexOf(" ",h)+1,f=t.indexOf(" ",h)+1,f=t.indexOf(" ",f),h=(t=t.slice(0,h)+e.x[r]+" "+e.y[r]+t.slice(f)).indexOf("\n",h)+1;return t}linkV3000(t,e=!0){let n="\n Datagrok macromolecule handler\n\n";n+=" 0 0 0 0 0 0 999 V3000\n",n+="M V30 BEGIN CTAB\n";let r="",i="",o="";const s=[];let a=0,u=0,l=0;for(let e=0;e<t.length;e++){const n=t[e].includes("MODIFICATION")&&0===e;let o=0;n&&(o=this.extractAtomDataV3000(t[e]).atomIndex.length),t[e]=t[e].replaceAll("(-\nM V30 ","(").replaceAll("-\nM V30 ","").replaceAll(" )",")");const c=this.extractAtomsBondsNumbersV3000(t[e]),h=this.extractAtomDataV3000(t[e]);let f=t[e].indexOf("M V30 BEGIN ATOM");f=t[e].indexOf("\n",f);let d=f,p=f;for(let r=0;r<c.natom;r++)if(1!==h.atomIndex[r]||0===e){d=t[e].indexOf("V30",d)+4,p=t[e].indexOf(" ",d);let r=0;n?(r=parseInt(t[e].substring(d,p)),1===r?r=o:r===o&&(r=1),r+=a):r=parseInt(t[e].substring(d,p))+a,t[e]=t[e].slice(0,d)+r+t[e].slice(p),d=t[e].indexOf(" ",d)+1,d=t[e].indexOf(" ",d)+1,p=t[e].indexOf(" ",d);const i=l-h.x[0];let s=Math.round(1e4*(parseFloat(t[e].substring(d,p))+i))/1e4;t[e]=t[e].slice(0,d)+s+t[e].slice(p),d=t[e].indexOf(" ",d)+1,p=t[e].indexOf(" ",d),s=Math.round(1e4*parseFloat(t[e].substring(d,p)))/1e4,t[e]=t[e].slice(0,d)+s+t[e].slice(p),d=t[e].indexOf("\n",d)+1}else d=t[e].indexOf("M V30",d)-1,p=t[e].indexOf("\n",d+1),t[e]=t[e].slice(0,d)+t[e].slice(p);const g=t[e].indexOf("M V30 END ATOM");r+=t[e].substring(f+1,g);let m=t[e].indexOf("M V30 BEGIN BOND");m=t[e].indexOf("\n",m),d=m,p=m;for(let r=0;r<c.nbond;r++){d=t[e].indexOf("V30",d)+4,p=t[e].indexOf(" ",d);const r=parseInt(t[e].substring(d,p))+u;t[e]=t[e].slice(0,d)+r+t[e].slice(p),d=t[e].indexOf(" ",d)+1,d=t[e].indexOf(" ",d)+1,p=t[e].indexOf(" ",d);let i=0;n?(i=parseInt(t[e].substring(d,p)),1===i?i=o:i===o&&(i=1),i+=a):i=parseInt(t[e].substring(d,p))+a,t[e]=t[e].slice(0,d)+i+t[e].slice(p),d=t[e].indexOf(" ",d)+1,p=Math.min(t[e].indexOf("\n",d),t[e].indexOf(" ",d)),i=0,n?(i=parseInt(t[e].substring(d,p)),1===i?i=o:i===o&&(i=1),i+=a):i=parseInt(t[e].substring(d,p))+a,t[e]=t[e].slice(0,d)+i+t[e].slice(p),d=t[e].indexOf("\n",d)+1}const v=t[e].indexOf("M V30 END BOND");i+=t[e].substring(m+1,v);let y=t[e].indexOf("M V30 MDLV30/STEABS ATOMS=(");for(;-1!==y;){y+=28;const n=t[e].indexOf(")",y);t[e].substring(y,n).split(" ").slice(1).forEach((t=>{s.push(parseInt(t)+a)})),y=n,y=t[e].indexOf("M V30 MDLV30/STEABS ATOMS=(",y)}a+=c.natom-1,u+=c.nbond,l+=n?Math.max(...h.x):h.x[c.natom-1]-h.x[0]}const c=Math.ceil(s.length/4);o+="M V30 MDLV30/STEABS ATOMS=("+s.length+" -\n";for(let t=0;t<c;t++){o+="M V30 ";const e=t+1===c?s.length-4*(c-1):4;for(let n=0;n<e;n++)o+=n+1===e?t===c-1?s[4*t+n]+")\n":s[4*t+n]+" -\n":s[4*t+n]+" "}return a++,n+="M V30 COUNTS "+a+" "+u+" 0 0 0\n",n+="M V30 BEGIN ATOM\n",n+=r,n+="M V30 END ATOM\n",n+="M V30 BEGIN BOND\n",n+=i,n+="M V30 END BOND\n",e&&s.length>0?(n+="M V30 BEGIN COLLECTION\n",n+=o,n+="M V30 END COLLECTION\n"):n=n.replace(/ CFG=\d/g," "),n+="M V30 END CTAB\n",n+="M END",n}fix5Prime(t,e,n){const r=e+1,i=t.x[r],o=t.y[r],s=t.x[n]-i,a=t.y[n]-o,u=t.x[e]-i,l=t.y[e]-o,c=u*Math.cos(2*Math.PI/3)-l*Math.sin(2*Math.PI/3),h=u*Math.sin(2*Math.PI/3)+l*Math.cos(2*Math.PI/3),f=u-s,d=l-a,p=c-s,g=h-a;Math.sqrt(g*g+p*p)>=Math.sqrt(d*d+f*f)&&(t.x[e]=c+i,t.y[e]=h+o)}}function bn(t,e=!0){let n="\n Datagrok macromolecule handler\n\n";n+=" 0 0 0 0 0 0 999 V3000\n",n+="M V30 BEGIN CTAB\n";let r="",i="",o="";const s=[];let a=0,u=0,l=0;if(t.antiStrands.length>0)for(let e=0;e<t.antiStrands.length;e++)t.antiStrands[e]=wn(t.antiStrands[e]);let c=!1;const h=t.senseStrands.concat(t.antiStrands);let f=0;for(let e=0;e<h.length;e++){h[e]=h[e].replaceAll("(-\nM V30 ","(").replaceAll("-\nM V30 ","").replaceAll(" )",")");const n=Cn(h[e]),o=An(h[e]);if(e>=t.senseStrands.length?!1===c&&(c=!0,l=0):f=Math.min(f,Math.min(...o.y.filter((t=>t<0)))),c){const t=Math.min(...o.x)-l,e=Math.max(...o.y)+5;for(let e=0;e<o.x.length;e++)o.x[e]-=t;for(let t=0;t<o.y.length;t++)o.y[t]-=e-f}let d=h[e].indexOf("M V30 BEGIN ATOM");d=h[e].indexOf("\n",d);let p=d,g=d;for(let t=0;t<n.natom;t++){p=h[e].indexOf("V30",p)+4,g=h[e].indexOf(" ",p);const n=parseInt(h[e].substring(p,g))+a;h[e]=h[e].slice(0,p)+n+h[e].slice(g),p=h[e].indexOf(" ",p)+1,p=h[e].indexOf(" ",p)+1,g=h[e].indexOf(" ",p);let r=Math.round(1e4*o.x[t])/1e4;h[e]=h[e].slice(0,p)+r+h[e].slice(g),p=h[e].indexOf(" ",p)+1,g=h[e].indexOf(" ",p),r=Math.round(1e4*o.y[t])/1e4,h[e]=h[e].slice(0,p)+r+h[e].slice(g),p=h[e].indexOf("\n",p)+1}const m=h[e].indexOf("M V30 END ATOM");r+=h[e].substring(d+1,m);let v=h[e].indexOf("M V30 BEGIN BOND");v=h[e].indexOf("\n",v),p=v,g=v;for(let t=0;t<n.nbond;t++){p=h[e].indexOf("V30",p)+4,g=h[e].indexOf(" ",p);const t=parseInt(h[e].substring(p,g))+u;h[e]=h[e].slice(0,p)+t+h[e].slice(g),p=h[e].indexOf(" ",p)+1,p=h[e].indexOf(" ",p)+1,g=h[e].indexOf(" ",p);let n=parseInt(h[e].substring(p,g))+a;h[e]=h[e].slice(0,p)+n+h[e].slice(g),p=h[e].indexOf(" ",p)+1,g=Math.min(h[e].indexOf("\n",p),h[e].indexOf(" ",p)),n=parseInt(h[e].substring(p,g))+a,h[e]=h[e].slice(0,p)+n+h[e].slice(g),p=h[e].indexOf("\n",p)+1}const y=h[e].indexOf("M V30 END BOND");i+=h[e].substring(v+1,y);let b=h[e].indexOf("M V30 MDLV30/STEABS ATOMS=(");for(;-1!==b;){b+=28;const t=h[e].indexOf(")",b);h[e].substring(b,t).split(" ").slice(1).forEach((t=>{s.push(parseInt(t)+a)})),b=t,b=h[e].indexOf("M V30 MDLV30/STEABS ATOMS=(",b)}a+=n.natom,u+=n.nbond,l+=Math.max(...o.x)+5}const d=Math.ceil(s.length/4);o+="M V30 MDLV30/STEABS ATOMS=("+s.length+" -\n";for(let t=0;t<d;t++){o+="M V30 ";const e=t+1===d?s.length-4*(d-1):4;for(let n=0;n<e;n++)o+=n+1===e?t===d-1?s[4*t+n]+")\n":s[4*t+n]+" -\n":s[4*t+n]+" "}return n+="M V30 COUNTS "+a+" "+u+" 0 0 0\n",n+="M V30 BEGIN ATOM\n",n+=r,n+="M V30 END ATOM\n",n+="M V30 BEGIN BOND\n",n+=i,n+="M V30 END BOND\n",e&&s.length>0?(n+="M V30 BEGIN COLLECTION\n",n+=o,n+="M V30 END COLLECTION\n"):n=n.replace(/ CFG=\d/g," "),n+="M V30 END CTAB\n",n+="M END",n}function wn(t){const e=An(t),n=e.atomIndex.length,r=(Math.max(...e.x)+Math.min(...e.x))/2,i=(Math.max(...e.y)+Math.min(...e.y))/2;for(let t=0;t<n;t++)e.x[t]-=r,e.y[t]-=i;const o=Math.PI,s=Math.cos(o),a=Math.sin(o);for(let t=0;t<n;t++){const n=e.x[t];e.x[t]=n*s-e.y[t]*a,e.y[t]=n*a+e.y[t]*s}const u=Math.max(...e.y);for(let t=0;t<n;t++)e.x[t]+=r,e.y[t]-=u;let l=t.indexOf("M V30 BEGIN ATOM");l=t.indexOf("\n",l);let c=l;for(let r=0;r<n;r++)l=t.indexOf("V30",l)+4,l=t.indexOf(" ",l)+1,l=t.indexOf(" ",l)+1,c=t.indexOf(" ",l)+1,c=t.indexOf(" ",c),l=(t=t.slice(0,l)+e.x[r]+" "+e.y[r]+t.slice(c)).indexOf("\n",l)+1;return t}function Cn(t){let e=(t=t.replaceAll("\r","")).indexOf("COUNTS")+7,n=t.indexOf(" ",e);const r=parseInt(t.substring(e,n));return e=n+1,n=t.indexOf(" ",e),{natom:r,nbond:parseInt(t.substring(e,n))}}function An(t){const e=Cn(t);let n=t.indexOf("M V30 BEGIN ATOM");n=t.indexOf("\n",n);let r=n;const i=Array(e.natom),o=Array(e.natom),s=Array(e.natom),a=Array(e.natom);for(let u=0;u<e.natom;u++)n=t.indexOf("V30",n)+4,r=t.indexOf(" ",n),i[u]=parseInt(t.substring(n,r)),n=r+1,r=t.indexOf(" ",n),o[u]=t.substring(n,r),n=r+1,r=t.indexOf(" ",n),s[u]=parseFloat(t.substring(n,r)),n=r+1,r=t.indexOf(" ",n),a[u]=parseFloat(t.substring(n,r)),n=t.indexOf("\n",n)+1;return{atomIndex:i,atomType:o,x:s,y:a}}function xn(t,e,n){if(""===t)return"";const r=n.createFormatDetector(t).getFormat();if(!r)return"";let i="";try{i=new yn(t,e,r).convert()}catch(t){const e=nn(t);console.error(e)}return i}function _n(t,e,n,r,i){const o=[t,e,n].filter((t=>""!==t.strand));return 1===o.length?xn(o[0].strand,o[0].invert,i):bn({senseStrands:[xn(t.strand,t.invert,i)],antiStrands:[xn(e.strand,e.invert,i),xn(n.strand,n.invert,i)].filter((t=>""!==t))},r)}const En=["ss","as","as2"];class Sn{constructor(){this.th=kr,this.onInput=new Kt.Subject,this.onInvalidInput=new Kt.Subject,this.inputBase=Object.fromEntries(En.map((t=>{const e=Et.input.textArea(t.toUpperCase(),{value:"",onValueChanged:()=>{this.onInput.next(),Tt()(e.root.getElementsByTagName("div")).css("padding-left","38px")}});return[t,e]}))),this.useChiralInput=Et.input.bool("Use chiral",{value:!0}),this.saveAllStrandsInput=Et.input.bool("Save as one entity",{value:!0}),Et.tooltip.bind(this.saveAllStrandsInput.root,"Save SDF with all strands in one molfile"),this.directionInversion=Object.fromEntries(En.map((t=>[t,!1]))),this.moleculeImgDiv=Et.block([]),Tt()(this.moleculeImgDiv).addClass("st-structure-mol-img"),e.debounce(this.onInput,300).subscribe((async()=>{await this.updateMoleculeImg()})),e.debounce(this.onInvalidInput,1e3).subscribe((async()=>{t.shell.warning("Insert Sense strand")}))}async getHtmlDivElement(t){const e=this.getTableInput(t),n=this.getBoolInputsAndButton();await this.updateMoleculeImg();const r=Et.divH([n,this.moleculeImgDiv]);Tt()(r).addClass("st-structure-bottom");const i=Et.divV([e,r]);return Tt()(i).addClass("st-structure-body"),i}getBoolInputsAndButton(){const e=Et.buttonsInput([Et.bigButton("Save SDF",(()=>{const e=this.getStrandData();!function(e,n,r,i,o,s){const a=[e.strand,n.strand,r.strand].filter((t=>""!==t));if(0===a.length||1===a.length&&""===e.strand)t.shell.warning("Enter SENSE_STRAND and optionally ANTISENSE_STRAND/AS2 to save SDF");else{let u;if(o)u=_n(e,n,r,i,s)+"\n$$$$\n";else{const h=xn(e.strand,e.invert,s),f=xn(n.strand,n.invert,s),d=xn(r.strand,r.invert,s);u=h+"\n> <Sequence>\nSense Strand\n$$$$\n",f&&(u+=f+"\n> <Sequence>\nAnti Sense\n$$$$\n"),d&&(u+=d+"\n> <Sequence>\nAnti Sense 2\n$$$$\n")}const l=new Date;function c(t){return t>=10?t.toString():"0"+t.toString()}ft(`SequenceTranslator-${l.getFullYear()+"-"+c(l.getMonth()+1)+"-"+c(l.getDate())+"_"+c(l.getHours())+"-"+c(l.getMinutes())+"-"+c(l.getSeconds())}.sdf`,encodeURIComponent(u))}}(e.ss,e.as,e.as2,this.useChiralInput.value,this.saveAllStrandsInput.value,this.th)}))]),n=[this.saveAllStrandsInput.root,this.useChiralInput.root,e],r=Et.divV(n);for(const t of n)Tt()(t).addClass("st-structure-bool-button-block");return r}getTableInput(t){const e=Object.fromEntries(En.map((e=>[e,new an(this.inputBase[e],t.highlightInvalidSubsequence)]))),n=Object.fromEntries(En.map(((t,e)=>{const n=0===e?"5′ → 3′":"3′ → 5′";return[t,Et.input.choice(`${t.toUpperCase()} direction`,{value:n,items:["5′ → 3′","3′ → 5′"]})]})));En.forEach(((t,e)=>{n[t].onChanged.subscribe((n=>{let r="3′ → 5′"===n;e>0&&(r=!r),this.directionInversion[t]=r,this.onInput.next()}))}));const r=["Sense Strand","Anti Sense","Anti Sense 2"],i=new Map(En.map(((t,e)=>[t,r[e]]))),o=(Object.fromEntries(En.map((t=>[t,Et.label(i.get(t))]))),Object.fromEntries(En.map((t=>{const n=Et.icons.delete((()=>{e[t].inputBase.value=""})),r=Et.button(n,(()=>{}));return Et.tooltip.bind(r,`Clear ${t.toUpperCase()}`),[t,n]})))),s=Et.form([],"st-structure-inputs"),a=Et.divV([],"st-structure-clear-buttons"),u=Et.form([],"st-direction-inputs");for(const t of En)s.append(this.inputBase[t].root),a.append(o[t]),u.append(n[t].root);return Et.divH([s,a,u])}getStrandData(){return Object.fromEntries(En.map((t=>{const e=this.directionInversion[t];return[t,{strand:this.inputBase[t].value.replace(/\s*/g,""),invert:e}]})))}getMolfile(t,e,n){return _n(t,e,n,this.useChiralInput.value,this.th)}async updateMoleculeImg(){let t="";try{const e=this.getStrandData();Object.values(e).some((t=>""!==t.strand))&&(t=this.getMolfile(e.ss,e.as,e.as2))}catch(t){const e=nn(t);console.error(e)}const e=new pn(t);await e.drawMolecule(this.moleculeImgDiv,650,150),Tt()(this.moleculeImgDiv).find("canvas").css("float","inherit")}}class Tn extends Lt{constructor(t){super("Oligo Structure"),this.th=t,this.layout=new Sn}getContent(){return this.layout.getHtmlDivElement(this.th)}}async function In(e){try{const n={overflowX:"scroll"},r=Et.div([],{style:n}),i=An(e),o=.7*Tt()(window).height(),s=Math.max(...i.x)-Math.min(...i.x),a=Math.max(...i.y)-Math.min(...i.y),u=o/a,l=u*s,c=u*a,h=Et.canvas(l*window.devicePixelRatio,c*window.devicePixelRatio);h.style.width=`${l}px`,h.style.height=`${c}px`,await async function(e,n){await t.functions.call("Chem:canvasMol",{x:0,y:0,w:e.width,h:e.height,canvas:e,molString:n,scaffoldMolString:"",options:{normalizeDepiction:!1,straightenDepiction:!1}})}(h,e),r.appendChild(h),Et.dialog("Molecule").add(r).showModal(!0)}catch(t){const e=nn(t);console.error(e)}}class Nn{static async view(){const e=kr.monomerLibWrapper.getTableForViewer();e.name="Monomer Library";const n=t.shell.addTableView(e);n.grid.props.allowEdit=!1,n.grid.onCellDoubleClick.subscribe((async t=>{const e=t.cell.value;"Molecule"===t.tableColumn?.semType&&await In(e)}))}}const On="Copied",Mn="Nucleotides";function Ln(t,e){const n=new RegExp("\\([^()]*\\)","g"),r=t.match(n);return r?r.map((t=>{const n=t.replace(/[\[\]()]/g,"");return lt.includes(n)?n:e.getNaturalAnalogBySymbol(n)})).map((t=>t||yt)).join(""):null}var Bn=n(254),Pn={};Pn.styleTagTransform=ve(),Pn.setAttributes=de(),Pn.insert=he().bind(null,"head"),Pn.domAPI=le(),Pn.insertStyleElement=ge(),ae()(Bn.A,Pn),Bn.A&&Bn.A.locals&&Bn.A.locals;const Rn=["Sequence"];class Dn{constructor(t){this.th=t,this.inputFormats=Object.keys(kr.jsonData.codesToHelmDict).concat(ct.HELM),this.onInput=new Kt.Subject,this.moleculeImgDiv=Et.div([]),this.moleculeImgDiv.className="mol-host",this.moleculeImgDiv.style.border="1px solid var(--grey-2)",this.moleculeImgDiv.style.borderRadius="1px",this.moleculeImgDiv.style.marginTop="12px",this.outputTableDiv=Et.div([]),this.formatChoiceInput=Et.input.choice("",{value:ct.HELM,items:this.inputFormats,onValueChanged:async(t,e)=>{this.format=t,this.updateTable(),await this.updateMolImg()}}),Tt()(this.formatChoiceInput.root.getElementsByTagName("select")[0]).css("width","20%"),this.sequenceInputBase=Et.input.textArea("",{value:"Afcgacsu",onValueChanged:()=>{this.onInput.next()}}),this.init(),e.debounce(this.onInput,300).subscribe((async()=>{this.init(),this.formatChoiceInput.value=this.format,this.updateTable(),await this.updateMolImg()})),this.eventBus=Un.getInstance()}async getHtmlElement(){const t=this.constructSingleSequenceControls(),e=this.constructBulkTranslationControls(),n=Et.box(Et.panel([t,e,Et.block([Et.box(this.moleculeImgDiv)])]));return this.formatChoiceInput.value=this.format,this.updateTable(),await this.updateMolImg(),n}constructBulkTranslationControls(){const t=Et.h1("Bulk");Et.tooltip.bind(t,"Bulk translation from table input");const e=new Fn(this.eventBus).createUIComponents(),n=Et.input.choice("Input format",{value:ct.AXOLABS,items:this.inputFormats,onValueChanged:t=>this.eventBus.selectInputFormat(t)}),r=Et.input.choice("Output format",{value:Mn,items:(i=this.th,Object.keys(i.jsonData.codesToHelmDict).concat([ct.HELM,Mn]).sort()),onValueChanged:t=>this.eventBus.selectOutputFormat(t)});var i;const o=this.createConvertBulkButton(),s=Et.div([...e,n,r,o],"ui-form");return Et.block25([t,s])}createConvertBulkButton(){const t=Et.bigButton("Convert",(()=>this.processConvertBulkButtonClick()));return Et.tooltip.bind(t,"Convert sequences from table input"),Tt()(t).css({float:"right","margin-top":"20px"}),t}processConvertBulkButtonClick(){const n=this.eventBus.getSelectedTable();if(!n)return void t.shell.warning("No table selected");const r=this.eventBus.getSelectedInputFormat(),i=this.eventBus.getSelectedOutputFormat(),o=this.eventBus.getSelectedColumn("Sequence");if(!o)return void t.shell.warning("No sequence column selected");const s=`${o.name} (${i})`,a=e.Column.fromList(e.TYPE.STRING,s,o.toList().map((t=>{const e=function(t,e,n,r){const i=r.createFormatConverter(t,e);return n===Mn?Ln(i.convertTo(ct.HELM),r.monomerLibWrapper):i.convertTo(n)}(t,r,i,this.th);return e})));if(i===Mn||i===ct.HELM){a.semType=e.SEMTYPE.MACROMOLECULE;const t=i==Mn?x.FASTA:x.HELM;a.meta.units=t;const n=Z.forColumn(a);(i==Mn?Z.setUnitsToFastaColumn:Z.setUnitsToHelmColumn)(n)}n.columns.add(a),t.data.detectSemanticTypes(n),t.shell.v=t.shell.getTableView(n.name)}constructSingleSequenceControls(){const t=new an(this.sequenceInputBase,(t=>It(t,this.th))),e=Et.button("Get SDF",(()=>{this.saveMolfile()}),"Save structure as SDF"),n=Et.button("Copy SMILES",(()=>{this.copySmiles()}),"Copy SMILES for the sequence"),r=Et.div([this.formatChoiceInput]),i=Et.button(Et.icons.delete((()=>{t.inputBase.value=""})),(()=>{}));Et.tooltip.bind(i,"Clear input");const o={format:r,textInput:t.root,clearBtn:i},s=Et.table([o],(t=>[t.format,t.textInput,t.clearBtn]));s.classList.add("st-translator-input-table");const a=Et.block([this.outputTableDiv,e,n]);return Et.block75([Et.h1("Single sequence"),s,a])}saveMolfile(){const t=new yn(this.sequence,!1,this.formatChoiceInput.value).convert()+"\n$$$$";ft(this.sequence+".sdf",encodeURIComponent(t))}copySmiles(){const n=e.chem.convert(this.molfile,e.chem.Notation.MolBlock,e.chem.Notation.Smiles);navigator.clipboard.writeText(n).then((()=>t.shell.info(On)))}updateTable(){this.outputTableDiv.innerHTML="";const e=this.format?this.th.createSequenceValidator(this.sequence).getInvalidCodeIndex(this.format):0,n=function(t,e,n,r){const i=Object.keys(r.jsonData.codesToHelmDict).concat([ct.HELM]);if(!t||-1!==e&&n!==ct.HELM)return{};if(!i.includes(n))throw new Error(`${n} format is not supported by SequenceTranslator`);const o=i.filter((t=>t!=n)).sort(((t,e)=>t.localeCompare(e))),s=r.createFormatConverter(t,n),a=Object.fromEntries(o.map((t=>{let e;try{e=s.convertTo(t)}catch{e=null}return[t,e]})).filter((([t,e])=>e))),u=Ln(n===ct.HELM?t:a[ct.HELM],r.monomerLibWrapper);return u&&(a.Nucleotides=u),a}(this.sequence,e,this.format,this.th),r=[];for(const e of Object.keys(n)){const i="indexOfFirstInvalidChar"in n?Et.divH([]):Et.link(n[e],(()=>navigator.clipboard.writeText(n[e]).then((()=>t.shell.info(On)))),"Copy sequence","");r.push({format:e,sequence:i})}const i=Et.table(r,(t=>[t.format,t.sequence]),["FORMAT","SEQUENCE"]);this.outputTableDiv.append(i),this.outputTableDiv.classList.add("st-translator-output-table")}async updateMolImg(){const t=new pn(this.molfile);await t.drawMolecule(this.moleculeImgDiv,500,170)}init(){this.sequence=this.getFormattedSequence(),this.format=this.th.createFormatDetector(this.sequence).getFormat(),this.molfile=this.getMolfile()}getFormattedSequence(){return this.sequenceInputBase.value.replace(/\s/g,"")}getMolfile(){if(!this.format)return"";if(this.format===ct.HELM){const t=this.th.createFormatConverter(this.sequence,this.format).convertTo(ct.AXOLABS);return new yn(t,!1,ct.AXOLABS).convert()}return new yn(this.sequence,!1,this.format).convert()}}class Fn{constructor(t){this.tableInputManager=new kn(t),this.columnInputManager=new Hn(t)}createUIComponents(){return[this.tableInputManager.getTableInputContainer(),this.columnInputManager.getColumnControlsContainer()]}}class kn{constructor(t){this.eventBus=t,this.availableTables=[],this.tableInputContainer=Et.div([]),this.subscribeToTableEvents(),this.refreshTableInput()}getTableInputContainer(){return this.tableInputContainer}subscribeToTableEvents(){t.events.onTableAdded.subscribe((t=>this.handleTableAdded(t))),t.events.onTableRemoved.subscribe((t=>this.handleTableRemoved(t))),this.eventBus.tableSelected$.subscribe((()=>this.handleTableChoice()))}getTableFromEventData(t){return t.args.dataFrame}handleTableAdded(t){const e=this.getTableFromEventData(t);this.availableTables.some((t=>t.name===e.name))||(this.availableTables.push(e),this.eventBus.selectTable(e),this.refreshTableInput())}handleTableRemoved(t){const e=this.getTableFromEventData(t);this.availableTables=this.availableTables.filter((t=>t.name!==e.name));const n=this.availableTables[0];this.eventBus.selectTable(n||null),this.refreshTableInput()}refreshTableInput(){const t=this.createTableInput();Tt()(this.tableInputContainer).empty(),this.tableInputContainer.append(t.root)}createTableInput(){const t=this.eventBus.getSelectedTable();return Et.input.table("Table",{value:t,items:this.availableTables,onValueChanged:t=>{null!==t&&this.eventBus.selectTable(t)}})}handleTableChoice(){const t=this.eventBus.getSelectedTable();t&&(this.isTableDisplayed(t)||this.displayTable(t))}isTableDisplayed(e){return t.shell.tableNames.includes(e.name)}displayTable(e){const n=t.shell.v;t.shell.addTableView(e),t.shell.v=n}}class Hn{constructor(t){this.eventBus=t,this.columnControlsContainer=Et.div([]),this.eventBus.tableSelected$.subscribe((()=>this.handleTableChoice())),this.refreshColumnControls()}getColumnControlsContainer(){return this.columnControlsContainer}handleTableChoice(){this.refreshColumnControls()}refreshColumnControls(){const t=this.createColumnInputs();Tt()(this.columnControlsContainer).empty();const e=t.map((t=>t.root));this.columnControlsContainer.append(...e)}createColumnInputs(){const t=this.eventBus.getSelectedTable(),e=null!==t?t.columns.names().sort(((t,e)=>t.localeCompare(e))):[];return Rn.map((n=>this.createColumnInput(n,e,t)))}createColumnInput(t,e,n){const r=t.toLowerCase(),i=e.find((t=>t.toLowerCase().includes(r)))||e[0];return this.selectColumnIfTableNotNull(n,i,t),Et.input.choice(`${t}`,{value:i,items:e,onValueChanged:e=>this.selectColumnIfTableNotNull(n,e,t)})}selectColumnIfTableNotNull(t,e,n){if(null!==t){const r=t.getCol(e);this.eventBus.selectColumn(n,r)}}}class Un{constructor(){this._tableSelection$=new Kt.BehaviorSubject(null),this._columnSelection=Object.fromEntries(Rn.map((t=>[t,new Kt.BehaviorSubject(null)]))),this._inputFormatSelection$=new Kt.BehaviorSubject(ct.AXOLABS),this._outputFormatSelection$=new Kt.BehaviorSubject(Mn)}static getInstance(){return void 0===Un._instance&&(Un._instance=new Un),Un._instance}get tableSelected$(){return this._tableSelection$.asObservable()}getSelectedTable(){return this._tableSelection$.getValue()}selectTable(t){this._tableSelection$.next(t)}selectColumn(t,e){this._columnSelection[t].next(e)}getSelectedColumn(t){return this._columnSelection[t].getValue()}getSelectedInputFormat(){return this._inputFormatSelection$.getValue()}selectInputFormat(t){this._inputFormatSelection$.next(t)}selectOutputFormat(t){this._outputFormatSelection$.next(t)}getSelectedOutputFormat(){return this._outputFormatSelection$.getValue()}}class $n extends Lt{constructor(t){super("Oligo Translator"),this.th=t,this.th=kr,this.layout=new Dn(this.th);const e=Et.iconFA("book",Nn.view,"View monomer library");this.topPanel=[e],this.view.setRibbonPanels([this.topPanel])}getContent(){return this.layout.getHtmlElement()}}class Vn extends Lt{constructor(t,e){super(t),this.content=e}getContent(){return Promise.resolve(this.content)}}class jn extends Mt{constructor(t,n){super("Oligo Toolkit"),this.externalViewFactories=t,this.th=n;const r=this.getViewFactories(this.th);this.multiView=new e.MultiView({viewFactories:r})}getViewFactories(t){function n(n){e.View.create();const r=new n(t);return r.initView().catch((t=>console.error(`Failed to initialize ${n.name}: ${t}`))),()=>r.getView()}let r={TRANSLATOR:n($n),PATTERN:n(Ze),STRUCTURE:n(Tn)};return this.externalViewFactories&&(r=Object.assign({},r,this.externalViewFactories)),r}getCurrentPanePath(){let t=this.multiView.tabs.currentPane.name;return t=t.charAt(0).toUpperCase()+t.substring(1).toLowerCase(),`/apps/${kr.name}/OligoToolkit/${t}`}setUrl(){this.multiView.path=this.getCurrentPanePath()}async constructView(){return this.multiView.tabs.onTabChanged.subscribe((()=>this.setUrl())),this.setUrl(),this.multiView}}n(982),e.DataFrame.fromCsv('countries,fasta,smiles,molregno,LON,Zip Code,Street Address Line 1,ImageUrl,user_id,error_message,xray,flag,magnitude,CS-id,pdb_id,accel_a,time_offset,chart,fit,Questions,empty_number,empty_string\nBelgium,MSNFHNEHVMQFYRNNLKTKGVFGRQ,CC(C(=O)OCCCc1cccnc1)c2cccc(c2)C(=O)c3ccccc3,1480014,36.276729583740234,995042300,14016 ROUTE 31W,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,1,1,1QBS,1,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[2.497360340644872, 1.7058694986686864, 5.278052678195135, 0.16000320889028383],""points"":[{""x"":0.10000000149011612,""y"":2.374499797821045},{""x"":0.6000000238418579,""y"":2.6242473125457764},{""x"":1.100000023841858,""y"":2.367267608642578},{""x"":1.600000023841858,""y"":2.6723148822784424},{""x"":2.0999999046325684,""y"":2.6537344455718994},{""x"":2.5999999046325684,""y"":2.3651671409606934},{""x"":3.0999999046325684,""y"":2.5654284954071045},{""x"":3.5999999046325684,""y"":2.4160959720611572},{""x"":4.099999904632568,""y"":2.286726713180542},{""x"":4.599999904632568,""y"":2.5100042819976807},{""x"":5.099999904632568,""y"":1.6676985025405884},{""x"":5.599999904632568,""y"":0.680136501789093},{""x"":6.099999904632568,""y"":0.3391543924808502},{""x"":6.599999904632568,""y"":0.09038983285427094},{""x"":7.099999904632568,""y"":0.19802775979042053}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[7.525235855508179, 1.3186911876809984, 5.335672608564294, 0.7860743343958098],""points"":[{""x"":0.10000000149011612,""y"":7.988070487976074},{""x"":0.6000000238418579,""y"":7.018453121185303},{""x"":1.100000023841858,""y"":8.115279197692871},{""x"":1.600000023841858,""y"":7.486658096313477},{""x"":2.0999999046325684,""y"":7.396438121795654},{""x"":2.5999999046325684,""y"":7.477052211761475},{""x"":3.0999999046325684,""y"":6.913095474243164},{""x"":3.5999999046325684,""y"":8.01385498046875},{""x"":4.099999904632568,""y"":6.985900402069092},{""x"":4.599999904632568,""y"":6.970335960388184},{""x"":5.099999904632568,""y"":5.448817253112793},{""x"":5.599999904632568,""y"":2.5534818172454834},{""x"":6.099999904632568,""y"":1.893947958946228},{""x"":6.599999904632568,""y"":0.6340042352676392},{""x"":7.099999904632568,""y"":0.8403874039649963}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,100,abc\nBurundi,MDYKETLLMPKTDFPMRGGLPNKEPQIQEKW,COc1ccc2cc(ccc2c1)C(C)C(=O)Oc3ccc(C)cc3OC,1480015,36.276729583740234,995073444,80 STATE HIGHWAY 310,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,2,2,1ZP8,2,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[4.431460753103398, 2.1691498799246745, 5.266445597102774, 0.7825762827017926],""points"":[{""x"":0.10000000149011612,""y"":4.751083850860596},{""x"":0.6000000238418579,""y"":4.203000068664551},{""x"":1.100000023841858,""y"":4.415858745574951},{""x"":1.600000023841858,""y"":4.68414306640625},{""x"":2.0999999046325684,""y"":4.198400974273682},{""x"":2.5999999046325684,""y"":4.179222106933594},{""x"":3.0999999046325684,""y"":4.638473987579346},{""x"":3.5999999046325684,""y"":4.708553314208984},{""x"":4.099999904632568,""y"":4.291589260101318},{""x"":4.599999904632568,""y"":4.038082599639893},{""x"":5.099999904632568,""y"":3.4349939823150635},{""x"":5.599999904632568,""y"":1.2194708585739136},{""x"":6.099999904632568,""y"":1.1920831203460693},{""x"":6.599999904632568,""y"":0.5352635979652405},{""x"":7.099999904632568,""y"":0.3346920311450958}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[2.339458017970126, -1.0734184310171178, 4.746332950550934, 0.2482416857595658],""points"":[{""x"":0.10000000149011612,""y"":0.2139337658882141},{""x"":0.6000000238418579,""y"":0.4269562065601349},{""x"":1.100000023841858,""y"":0.2441573292016983},{""x"":1.600000023841858,""y"":0.146635964512825},{""x"":2.0999999046325684,""y"":0.08818462491035461},{""x"":2.5999999046325684,""y"":0.2560656666755676},{""x"":3.0999999046325684,""y"":0.42434045672416687},{""x"":3.5999999046325684,""y"":0.37111231684684753},{""x"":4.099999904632568,""y"":0.5581737160682678},{""x"":4.599999904632568,""y"":1.183590054512024},{""x"":5.099999904632568,""y"":1.5629843473434448},{""x"":5.599999904632568,""y"":2.3211288452148438},{""x"":6.099999904632568,""y"":2.229961633682251},{""x"":6.599999904632568,""y"":2.2560226917266846},{""x"":7.099999904632568,""y"":2.2142398357391357}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nCameroon,MIEVFLFGIVLGLIPITLAGLFVTAYLQYRRGDQLDL,COc1ccc2cc(ccc2c1)C(C)C(=O)OCCCc3cccnc3,1480016,36.26095962524414,995153596,30-56 WHITESTONE EXPY,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,3,3,2BDJ,3,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[4.6760652578642325, 0.9046956320756703, 5.651408971856738, 0.07738846012184185],""points"":[{""x"":0.10000000149011612,""y"":4.32425594329834},{""x"":0.6000000238418579,""y"":4.668442249298096},{""x"":1.100000023841858,""y"":4.379785060882568},{""x"":1.600000023841858,""y"":5.0345139503479},{""x"":2.0999999046325684,""y"":4.878653526306152},{""x"":2.5999999046325684,""y"":4.3451313972473145},{""x"":3.0999999046325684,""y"":4.336992263793945},{""x"":3.5999999046325684,""y"":5.037430286407471},{""x"":4.099999904632568,""y"":5.0092692375183105},{""x"":4.599999904632568,""y"":4.151902675628662},{""x"":5.099999904632568,""y"":3.4066951274871826},{""x"":5.599999904632568,""y"":2.3732759952545166},{""x"":6.099999904632568,""y"":1.673728108406067},{""x"":6.599999904632568,""y"":0.48574790358543396},{""x"":7.099999904632568,""y"":0.2783052325248718}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[2.938395863010111, -1.4658480661392117, 5.462702751996584, 0.3473139023615039],""points"":[{""x"":0.10000000149011612,""y"":0.4941710829734802},{""x"":0.6000000238418579,""y"":0.15323974192142487},{""x"":1.100000023841858,""y"":0.46373432874679565},{""x"":1.600000023841858,""y"":0.3370431363582611},{""x"":2.0999999046325684,""y"":0.5179030299186707},{""x"":2.5999999046325684,""y"":0.27899765968322754},{""x"":3.0999999046325684,""y"":0.22075064480304718},{""x"":3.5999999046325684,""y"":0.5789918899536133},{""x"":4.099999904632568,""y"":0.21169911324977875},{""x"":4.599999904632568,""y"":0.27857646346092224},{""x"":5.099999904632568,""y"":1.0906332731246948},{""x"":5.599999904632568,""y"":1.8520300388336182},{""x"":6.099999904632568,""y"":2.7177059650421143},{""x"":6.599999904632568,""y"":2.8680918216705322},{""x"":7.099999904632568,""y"":3.2413077354431152}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nCanada,MMELVLKTIIGPIVVGVVLRIVDKWLNKDK,CC(C(=O)NCCS)c1cccc(c1)C(=O)c2ccccc2,1480017,36.26095962524414,99515,30-56 WHITESTONE EXPY,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,4,4,1IAN,4,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[0.8597390975430008, 1.0957625732481946, 5.260537067987958, 0.07974187998177736],""points"":[{""x"":0.10000000149011612,""y"":0.8190152645111084},{""x"":0.6000000238418579,""y"":0.8421689867973328},{""x"":1.100000023841858,""y"":0.8740922212600708},{""x"":1.600000023841858,""y"":0.8924275040626526},{""x"":2.0999999046325684,""y"":0.8249067664146423},{""x"":2.5999999046325684,""y"":0.9327669143676758},{""x"":3.0999999046325684,""y"":0.8522974252700806},{""x"":3.5999999046325684,""y"":0.8174492716789246},{""x"":4.099999904632568,""y"":0.8394647240638733},{""x"":4.599999904632568,""y"":0.7139387726783752},{""x"":5.099999904632568,""y"":0.5561167597770691},{""x"":5.599999904632568,""y"":0.3276226818561554},{""x"":6.099999904632568,""y"":0.12479474395513535},{""x"":6.599999904632568,""y"":0.13006797432899475},{""x"":7.099999904632568,""y"":0.059702079743146896}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[5.760930219582546, 1.6591793293833013, 4.667155929720851, 0.7858109544121652],""points"":[{""x"":0.10000000149011612,""y"":6.156993389129639},{""x"":0.6000000238418579,""y"":5.236701965332031},{""x"":1.100000023841858,""y"":6.010560512542725},{""x"":1.600000023841858,""y"":5.495512962341309},{""x"":2.0999999046325684,""y"":6.087770462036133},{""x"":2.5999999046325684,""y"":5.79986572265625},{""x"":3.0999999046325684,""y"":5.597546577453613},{""x"":3.5999999046325684,""y"":5.520902156829834},{""x"":4.099999904632568,""y"":5.360654354095459},{""x"":4.599999904632568,""y"":3.5539746284484863},{""x"":5.099999904632568,""y"":1.577236294746399},{""x"":5.599999904632568,""y"":1.0001264810562134},{""x"":6.099999904632568,""y"":0.9305797815322876},{""x"":6.599999904632568,""y"":0.6033638715744019},{""x"":7.099999904632568,""y"":0.4203685522079468}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nColombia,MDRTDEVSNHTHDKPTLTWFEEIFEEYHSPFHN,FC(F)(F)c1ccc(OC2CCNCC2)cc1,1480029,36.3309440612793,995152050,1 COURT HOUSE SQUARE,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,5,5,4UJ1,5,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[6.4995088314153655, 2.4270351004539914, 5.178659535348579, 0.625653346241577],""points"":[{""x"":0.10000000149011612,""y"":6.496231555938721},{""x"":0.6000000238418579,""y"":6.42543363571167},{""x"":1.100000023841858,""y"":7.040063858032227},{""x"":1.600000023841858,""y"":6.1115403175354},{""x"":2.0999999046325684,""y"":6.680728435516357},{""x"":2.5999999046325684,""y"":6.406774520874023},{""x"":3.0999999046325684,""y"":6.611269474029541},{""x"":3.5999999046325684,""y"":5.889094352722168},{""x"":4.099999904632568,""y"":6.75344705581665},{""x"":4.599999904632568,""y"":6.361435890197754},{""x"":5.099999904632568,""y"":4.1666975021362305},{""x"":5.599999904632568,""y"":1.172118902206421},{""x"":6.099999904632568,""y"":0.801048994064331},{""x"":6.599999904632568,""y"":0.4640021026134491},{""x"":7.099999904632568,""y"":0.0010357667924836278}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[1.4734381347446401, 1.1649805188074196, 4.82958608866421, 0.09500545496710007],""points"":[{""x"":0.10000000149011612,""y"":1.5279096364974976},{""x"":0.6000000238418579,""y"":1.3559974431991577},{""x"":1.100000023841858,""y"":1.5246378183364868},{""x"":1.600000023841858,""y"":1.5567657947540283},{""x"":2.0999999046325684,""y"":1.4114240407943726},{""x"":2.5999999046325684,""y"":1.4045010805130005},{""x"":3.0999999046325684,""y"":1.4769829511642456},{""x"":3.5999999046325684,""y"":1.4875500202178955},{""x"":4.099999904632568,""y"":1.2991987466812134},{""x"":4.599999904632568,""y"":0.922961413860321},{""x"":5.099999904632568,""y"":0.6520044803619385},{""x"":5.599999904632568,""y"":0.15350978076457977},{""x"":6.099999904632568,""y"":0.1078903079032898},{""x"":6.599999904632568,""y"":0.17276449501514435},{""x"":7.099999904632568,""y"":0.14066608250141144}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nCosta Rica,MKSTKEEIQTIKTLLKDSRTAKYHKRLQIVL,CC(C)Cc1ccc(cc1)C(C)C(=O)N2CCCC2C(=O)OCCCc3ccccc3,1480018,36.3309440612793,995084218,4041 SOUTHWESTERN BLVD,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,6,6,2BPW,6,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[2.4833641843311227, -1.8945978742090062, 4.671127708092568, 0.24159861311815153],""points"":[{""x"":0.10000000149011612,""y"":0.0969524160027504},{""x"":0.6000000238418579,""y"":0.028483040630817413},{""x"":1.100000023841858,""y"":0.22087176144123077},{""x"":1.600000023841858,""y"":0.0068915546871721745},{""x"":2.0999999046325684,""y"":0.4305879771709442},{""x"":2.5999999046325684,""y"":0.44774115085601807},{""x"":3.0999999046325684,""y"":0.45346319675445557},{""x"":3.5999999046325684,""y"":0.2370593100786209},{""x"":4.099999904632568,""y"":0.4657953977584839},{""x"":4.599999904632568,""y"":1.155200719833374},{""x"":5.099999904632568,""y"":2.2294070720672607},{""x"":5.599999904632568,""y"":2.4311530590057373},{""x"":6.099999904632568,""y"":2.33846116065979},{""x"":6.599999904632568,""y"":2.608201026916504},{""x"":7.099999904632568,""y"":2.8136143684387207}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[5.224573521642033, 1.4454033924198528, 5.6014197746076535, 0.2823216054197577],""points"":[{""x"":0.10000000149011612,""y"":4.95027494430542},{""x"":0.6000000238418579,""y"":5.1754679679870605},{""x"":1.100000023841858,""y"":5.276752948760986},{""x"":1.600000023841858,""y"":5.589294910430908},{""x"":2.0999999046325684,""y"":5.616994857788086},{""x"":2.5999999046325684,""y"":5.120813846588135},{""x"":3.0999999046325684,""y"":5.340766906738281},{""x"":3.5999999046325684,""y"":4.876471042633057},{""x"":4.099999904632568,""y"":4.94999361038208},{""x"":4.599999904632568,""y"":5.162564754486084},{""x"":5.099999904632568,""y"":4.399557590484619},{""x"":5.599999904632568,""y"":2.7977969646453857},{""x"":6.099999904632568,""y"":1.0229872465133667},{""x"":6.599999904632568,""y"":0.48275601863861084},{""x"":7.099999904632568,""y"":0.10408931970596313}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nCuba,MHAILRYFIRRLFYHIFYKIYSLISKKHQSLPSDVRQF,COc1ccc2c(c1)c(CC(=O)N3CCCC3C(=O)Oc4ccc(C)cc4OC)c(C)n2C(=O)c5ccc(Cl)cc5,1480019,36.33115768432617,995081928,1227 US HIGHWAY 11,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,7,7,1QBS,7,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[3.320838679713925, -1.2421619987316728, 4.831325425225256, 0.3236011098403072],""points"":[{""x"":0.10000000149011612,""y"":0.3727470338344574},{""x"":0.6000000238418579,""y"":0.12365014106035233},{""x"":1.100000023841858,""y"":0.48422467708587646},{""x"":1.600000023841858,""y"":0.2264465093612671},{""x"":2.0999999046325684,""y"":0.16821794211864471},{""x"":2.5999999046325684,""y"":0.3879014551639557},{""x"":3.0999999046325684,""y"":0.5470244884490967},{""x"":3.5999999046325684,""y"":0.3419053554534912},{""x"":4.099999904632568,""y"":0.7655120491981506},{""x"":4.599999904632568,""y"":1.2346516847610474},{""x"":5.099999904632568,""y"":2.453336715698242},{""x"":5.599999904632568,""y"":2.9565491676330566},{""x"":6.099999904632568,""y"":3.335299491882324},{""x"":6.599999904632568,""y"":3.240290880203247},{""x"":7.099999904632568,""y"":3.1107218265533447}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[3.6401853521511094, 1.26211588875013, 5.399028074402744, 0.5089580830068091],""points"":[{""x"":0.10000000149011612,""y"":3.8585598468780518},{""x"":0.6000000238418579,""y"":3.6077206134796143},{""x"":1.100000023841858,""y"":3.855252265930176},{""x"":1.600000023841858,""y"":3.619039297103882},{""x"":2.0999999046325684,""y"":3.839388370513916},{""x"":2.5999999046325684,""y"":3.335283041000366},{""x"":3.0999999046325684,""y"":3.571141481399536},{""x"":3.5999999046325684,""y"":3.4155046939849854},{""x"":4.099999904632568,""y"":3.7316646575927734},{""x"":4.599999904632568,""y"":3.0680155754089355},{""x"":5.099999904632568,""y"":2.891066551208496},{""x"":5.599999904632568,""y"":1.6022753715515137},{""x"":6.099999904632568,""y"":0.7652576565742493},{""x"":6.599999904632568,""y"":0.6875326037406921},{""x"":7.099999904632568,""y"":0.5828871726989746}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nItaly,MSNFHNEHVMQFYRNNLKTKGVFGRQ,CC(C)Cc1ccc(cc1)C(C)C(=O)N2CCCC2C(=O)OCCO[N+](=O)[O-],1480020,36.33115768432617,99502,"168-46 91ST AVE., 2ND FLR",https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,8,8,1ZP8,8,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[2.293592105923809, 1.3781586549141835, 5.1025898038676605, 0.03493851245291291],""points"":[{""x"":0.10000000149011612,""y"":2.1287283897399902},{""x"":0.6000000238418579,""y"":2.267972230911255},{""x"":1.100000023841858,""y"":2.398442506790161},{""x"":1.600000023841858,""y"":2.5130622386932373},{""x"":2.0999999046325684,""y"":2.3255116939544678},{""x"":2.5999999046325684,""y"":2.127340793609619},{""x"":3.0999999046325684,""y"":2.47259783744812},{""x"":3.5999999046325684,""y"":2.131181478500366},{""x"":4.099999904632568,""y"":2.090421438217163},{""x"":4.599999904632568,""y"":2.02299165725708},{""x"":5.099999904632568,""y"":1.1105059385299683},{""x"":5.599999904632568,""y"":0.4494485855102539},{""x"":6.099999904632568,""y"":0.1375635862350464},{""x"":6.599999904632568,""y"":0.036351121962070465},{""x"":7.099999904632568,""y"":0.1619771122932434}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[5.953125499439879, 1.2528620255306528, 5.187637440149802, 0.3110348753260886],""points"":[{""x"":0.10000000149011612,""y"":5.6585283279418945},{""x"":0.6000000238418579,""y"":5.911152362823486},{""x"":1.100000023841858,""y"":5.924920082092285},{""x"":1.600000023841858,""y"":5.8469438552856445},{""x"":2.0999999046325684,""y"":5.929472923278809},{""x"":2.5999999046325684,""y"":6.190037727355957},{""x"":3.0999999046325684,""y"":6.236179828643799},{""x"":3.5999999046325684,""y"":6.141019344329834},{""x"":4.099999904632568,""y"":5.295210838317871},{""x"":4.599999904632568,""y"":5.265801906585693},{""x"":5.099999904632568,""y"":3.3722851276397705},{""x"":5.599999904632568,""y"":1.8299226760864258},{""x"":6.099999904632568,""y"":0.32690900564193726},{""x"":6.599999904632568,""y"":0.6274543404579163},{""x"":7.099999904632568,""y"":0.8441857099533081}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nRwanda,MPNSEPASLLELFNSIATQGELVRSLKAGNASK,CC(C)Cc1ccc(cc1)C(C)C(=O)N2CCCC2C(=O)OCCO,1480021,36.33137130737305,995037247,"168-46 91ST AVE., 2ND FLR",https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,9,9,2BDJ,9,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[3.8209972202654474, 1.3779216716448506, 5.299882228439686, 0.06040645519069608],""points"":[{""x"":0.10000000149011612,""y"":3.7821109294891357},{""x"":0.6000000238418579,""y"":3.542433023452759},{""x"":1.100000023841858,""y"":3.7008674144744873},{""x"":1.600000023841858,""y"":3.717301607131958},{""x"":2.0999999046325684,""y"":4.024452209472656},{""x"":2.5999999046325684,""y"":4.013899326324463},{""x"":3.0999999046325684,""y"":3.945094347000122},{""x"":3.5999999046325684,""y"":3.866621971130371},{""x"":4.099999904632568,""y"":3.7461626529693604},{""x"":4.599999904632568,""y"":3.3454740047454834},{""x"":5.099999904632568,""y"":2.61944317817688},{""x"":5.599999904632568,""y"":0.999405026435852},{""x"":6.099999904632568,""y"":0.46259793639183044},{""x"":6.599999904632568,""y"":0.054134611040353775},{""x"":7.099999904632568,""y"":0.05711187422275543}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[5.6318079657726035, 1.8495493770000595, 5.391793312471116, 0.17060707587348442],""points"":[{""x"":0.10000000149011612,""y"":5.458079814910889},{""x"":0.6000000238418579,""y"":5.554427146911621},{""x"":1.100000023841858,""y"":5.799983024597168},{""x"":1.600000023841858,""y"":5.364140033721924},{""x"":2.0999999046325684,""y"":5.864485740661621},{""x"":2.5999999046325684,""y"":5.4509806632995605},{""x"":3.0999999046325684,""y"":5.702574729919434},{""x"":3.5999999046325684,""y"":5.7314534187316895},{""x"":4.099999904632568,""y"":5.5123443603515625},{""x"":4.599999904632568,""y"":5.724395751953125},{""x"":5.099999904632568,""y"":4.354506969451904},{""x"":5.599999904632568,""y"":1.7307666540145874},{""x"":6.099999904632568,""y"":0.6305936574935913},{""x"":6.599999904632568,""y"":0.035183437168598175},{""x"":7.099999904632568,""y"":0.7575169205665588}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nSwitzerland,IRVVGRYLIEVWKAAGMDMDKVLFLWSSDEI,CN1CCC(CC1)Oc2ccc(cc2)C(F)(F)F,1480028,36.33137130737305,99504,92-11 179TH PLACE,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,9,10,1IAN,10,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[1.1190255865097471, 2.3163895161544437, 5.4968866182279195, 0.2035204047289052],""points"":[{""x"":0.10000000149011612,""y"":1.1057683229446411},{""x"":0.6000000238418579,""y"":1.1019697189331055},{""x"":1.100000023841858,""y"":1.0818607807159424},{""x"":1.600000023841858,""y"":1.062997817993164},{""x"":2.0999999046325684,""y"":1.046447515487671},{""x"":2.5999999046325684,""y"":1.1217249631881714},{""x"":3.0999999046325684,""y"":1.2166996002197266},{""x"":3.5999999046325684,""y"":1.215477705001831},{""x"":4.099999904632568,""y"":1.0581893920898438},{""x"":4.599999904632568,""y"":1.1747995615005493},{""x"":5.099999904632568,""y"":1.0181127786636353},{""x"":5.599999904632568,""y"":0.5344523191452026},{""x"":6.099999904632568,""y"":0.2569526433944702},{""x"":6.599999904632568,""y"":0.1912207305431366},{""x"":7.099999904632568,""y"":0.15060538053512573}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[3.1038581025805785, 2.0032224204185245, 5.087602825989163, 0.13277988512492753],""points"":[{""x"":0.10000000149011612,""y"":3.0498509407043457},{""x"":0.6000000238418579,""y"":2.805217742919922},{""x"":1.100000023841858,""y"":3.3415253162384033},{""x"":1.600000023841858,""y"":3.0549843311309814},{""x"":2.0999999046325684,""y"":3.250074863433838},{""x"":2.5999999046325684,""y"":3.0432586669921875},{""x"":3.0999999046325684,""y"":3.265852451324463},{""x"":3.5999999046325684,""y"":2.9475724697113037},{""x"":4.099999904632568,""y"":3.1929898262023926},{""x"":4.599999904632568,""y"":2.7460060119628906},{""x"":5.099999904632568,""y"":1.6175861358642578},{""x"":5.599999904632568,""y"":0.3006608486175537},{""x"":6.099999904632568,""y"":0.3444803059101105},{""x"":6.599999904632568,""y"":0.015537971630692482},{""x"":7.099999904632568,""y"":0.5527358055114746}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\n,,,,,,,,,,,,,,,,,,,,,').columns.add(e.Column.fromList(e.TYPE.BYTE_ARRAY,"BinaryImage",Array.from(new Uint8Array(11))));var qn,Gn=function(t,e,n,r){return new(n||(n=Promise))((function(i,o){function s(t){try{u(r.next(t))}catch(t){o(t)}}function a(t){try{u(r.throw(t))}catch(t){o(t)}}function u(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(s,a)}u((r=r.apply(t,e||[])).next())}))};async function Wn(){await dt((async()=>{const e=await Vr();t.shell.addView(e),["Afcgacsu","Afcgacsu","Afcgacsu"].forEach((async(t,e)=>{await async function(t,e){await function(t){return Gn(this,void 0,void 0,(function*(){yield new Promise((e=>setTimeout(e,t)))}))}(500);const n=document.querySelectorAll(".st-colored-text-input > textarea")[t];n.value=e;const r=new Event("input");n.dispatchEvent(r)}(e,t)}))}))}function zn(t){const e=Et.input.textArea("",{value:""});return{coloredInput:new an(e,t.highlightInvalidSubsequence),codes:t.jsonData.codesToSymbolsDict}}async function Yn(){const t="Helm",n=e.Func.find({package:t,name:"getHelmHelper"});if(0===n.length)throw new Error(`Package '${t}' must be installed for HelmHelper.`);return(await n[0].prepare().call()).getOutputParamValue()}function Kn(t){return"string"==typeof t||t instanceof String?t:"StateError"===t.constructor.name?t.message:"StateError"===t.constructor.name&&"$thrownJsError"in t?Kn(t.$thrownJsError):t instanceof Error?t.message:t.toString()}function Jn(t){return t instanceof Error?t.stack:"StateError"===t.constructor.name&&"$thrownJsError"in t?Jn(t.$thrownJsError):void 0}function Qn(t){return[Kn(t),Jn(t)]}async function Xn(){const t=e.Func.find({package:"Bio",name:"getSeqHelper"});if(0===t.length)throw new Error("Package 'Bio' must be installed for SeqHelper.");return(await t[0].prepare().call()).getOutputParamValue()}console.log.bind(console),console.info.bind(console),console.warn.bind(console),console.error.bind(console),function(t){t.notNull=function(t,e){if(null==t)throw new Error(`${null==e?"Value":e} not defined`)}}(qn||(qn={})),e.DataFrame.fromColumns([e.Column.fromStrings("col",["val1","val2","val3"])]),e.JsInputBase,Et.input.helmAsync=async function(t,e){return(await Yn()).createHelmInput(t,e)};var Zn=function(t,e,n,r){return new(n||(n=Promise))((function(i,o){function s(t){try{u(r.next(t))}catch(t){o(t)}}function a(t){try{u(r.throw(t))}catch(t){o(t)}}function u(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(s,a)}u((r=r.apply(t,e||[])).next())}))};class tr{constructor(t,e,n=".csv"){this.path=t,this.userStorageName=e,this.ext=n,"/"!==this.path[this.path.length-1]&&(this.path+="/"),"."!==this.ext[0]&&(this.ext="."+this.ext)}getUserSettings(){return Zn(this,void 0,void 0,(function*(){if(this.settings)return this.settings;const e=t.userSettings.getValue(this.userStorageName,"Settings"),n=e?JSON.parse(e):{excluded:[],explicit:[]};return n.explicit=n.explicit instanceof Array?n.explicit:[],n.excluded=n.excluded instanceof Array?n.excluded:[],this.settings=n}))}setUserSettings(e){this.settings=e,t.userSettings.add(this.userStorageName,"Settings",JSON.stringify(e))}getAllAvailable(){return Zn(this,void 0,void 0,(function*(){return(yield t.dapi.files.list(this.path)).map((t=>t.fullPath.replace(`${this.path}`,"")))}))}getActive(){return Zn(this,void 0,void 0,(function*(){const t=yield this.getUserSettings();return t.explicit.length>0?t.explicit:(yield this.getAllAvailable()).filter((e=>!t.excluded.includes(e)))}))}createInput(t,e){const n=Et.input.bool(t,{value:e,onValueChanged:e=>this.updateSelectionStatus(t,e)});return n.addOptions(Et.button(Et.iconFA("trash"),(()=>{Et.dialog({title:"Warning"}).add(Et.divText(`Delete file '${t}'?`)).onOK((()=>{n.root.remove(),this.availableRemove(t)})).show()}),`Delete ${t}`)),n}getInputs(){return Zn(this,void 0,void 0,(function*(){const t=yield this.getAllAvailable(),e=yield this.getActive(),n=new Array(t.length);for(let r=0;r<t.length;r++){const i=e.includes(t[r]);n[r]=this.createInput(t[r],i)}return n}))}getForm(){return Zn(this,void 0,void 0,(function*(){const t=yield this.getInputs(),e=Et.divV(t);return Et.divV([e,Et.button("ADD",(()=>Zn(this,void 0,void 0,(function*(){let t="";t=yield this.getNewAvailable(),""!==t&&e.append(this.createInput(t,!0).root)}))))])}))}updateSelectionStatus(t,e){return Zn(this,void 0,void 0,(function*(){const n=yield this.getUserSettings();if(!n.excluded.includes(t)!==e){if(e){const e=n.excluded.indexOf(t);e>-1&&n.excluded.splice(e,1)}else n.excluded.push(t);this.setUserSettings(n)}}))}availableRemove(e){return Zn(this,void 0,void 0,(function*(){const n=yield this.getUserSettings(),r=n.excluded.indexOf(e);r>-1&&n.excluded.splice(r,1),this.setUserSettings(n),yield t.dapi.files.delete(this.path+e),t.shell.info(`File ${e} successfully deleted`)}))}getNewAvailable(){return Zn(this,void 0,void 0,(function*(){return new Promise(((n,r)=>{e.Utils.openFile({accept:this.ext,open:e=>Zn(this,void 0,void 0,(function*(){const r=e.name,i=yield e.arrayBuffer();yield t.dapi.files.write(this.path+`${e.name}`,new Uint8Array(i)),n(r)}))})}))}))}}const er="System:AppData/SequenceTranslator/polytool-rules/",nr="Polytool",rr="link",ir="fragmentDuplication",or="differentFragments";class sr extends tr{constructor(t,e,n){super(t,e,n)}}class ar{constructor(t,e){this.linkages=e,this.monomers=t}static fromHelm(t){const e=t.split("$"),n=e[0].split("|"),r=e[1].split("|"),i=new Array(n.length),o=[];for(let t=0;t<n.length;t++){const e=n[t].indexOf("{"),r=n[t].indexOf("}");i[t]=n[t].slice(e+1,r).split(".")}for(let t=0;t<r.length;t++)if(""!==r[t]&&"V2.0"!==r[t]){const e=r[t].split(","),n=e[0].replace("PEPTIDE","")-1,i=e[1].replace("PEPTIDE","")-1,s=e[2].split("-"),a=s[0].split(":"),u=s[1].split(":");o.push({fChain:n,sChain:i,fMonomer:a[0],sMonomer:u[0],fR:a[1].replace("R",""),sR:u[1].replace("R","")})}return new ar(i,o)}static fromNotation(t,e){const n=e.heterodimerCode,r=e.homodimerCode,i=[],o=[],s=null!==n?t.split(`(${e.heterodimerCode})`):"";null!==n&&s.length>1?(o.push({fChain:0,sChain:1,fMonomer:1,sMonomer:1,fR:1,sR:1}),i.push(s[1].replaceAll("{","").replaceAll("}","")),i.push(s[2].replaceAll("{","").replaceAll("}",""))):i.push(t);for(let t=0;t<i.length;t++)if(null!==r&&i[t].includes(`(${r})`)){const e=i.length;o.push({fChain:t,sChain:e,fMonomer:1,sMonomer:1,fR:1,sR:1});const n=i[t].replace(`(${r})`,""),s=n.indexOf("{"),a=n.slice(0,s),u=n.replace(a,"").replaceAll("{","").replaceAll("}","");i[t]=a+u,i.push(u)}const a=new Array(i.length);for(let t=0;t<i.length;t++){const n=i[t].split("-"),r=this.getLinkedPositions(n,e.linkRules),[s,u,l,c,h]=this.getAllCycles(e.linkRules,n,r),f=new Array(s.length);for(let t=0;t<s.length;t++)f[t]=`[${s[t]}]`;for(let e=0;e<u.length;e++)o.push({fChain:t,sChain:t,fMonomer:u[e],sMonomer:l[e],fR:c[e],sR:h[e]});a[t]=f}return new ar(a,o)}getHelmChanged(t,e){let n=0,r=0,i=0;t:for(let e=0;e<this.monomers.length;e++)for(let o=0;o<this.monomers[e].length;o++){if(n==t){r=e,i=o;break t}n++}const o=this.monomers[r][i];this.monomers[r][i]=`[${e}]`;const s=this.getHelm();return this.monomers[r][i]=o,s}getHelm(){let t="";for(let e=0;e<this.monomers.length;e++){e>0&&(t+="|"),t+=`PEPTIDE${e+1}{`;for(let n=0;n<this.monomers[e].length;n++)n>0&&(t+="."),t+=this.monomers[e][n];t+="}"}t+="$";for(let e=0;e<this.linkages.length;e++)e>0&&(t+="|"),t+=`PEPTIDE${this.linkages[e].fChain+1},PEPTIDE${this.linkages[e].sChain+1},`,t+=`${this.linkages[e].fMonomer}:R${this.linkages[e].fR}-`,t+=`${this.linkages[e].sMonomer}:R${this.linkages[e].sR}`;return t+="$$$",t}static getLinkedPositions(t,e){const n=new Array(e.length);for(let r=0;r<e.length;r++){let i=!1,o=!1,s=!1,a=-1,u=-1;const l=`(${e[r].code})`;for(let n=0;n<t.length;n++)if(t[n].includes(l)){if(i){if(s&&t[n]==e[r].secondMonomer+l){o=!0,u=n;break}if(s||t[n]!=e[r].firstMonomer+l)continue;o=!0,u=n;break}if(t[n]==e[r].firstMonomer+l)i=!0,s=!0,a=n;else{if(t[n]!=e[r].secondMonomer+l)continue;i=!0,s=!1,a=n}}n[r]=i&&o?s?[a,u]:[u,a]:[-1,-1]}return n}static getAllCycles(t,e,n){const r=[],i=[],o=[],s=[],a=t.length;for(let u=0;u<a;u++){if(-1==n[u][0])continue;const a=e[n[u][0]],l=e[n[u][1]];e[n[u][0]]=e[n[u][0]].replace(a,t[u].firstSubstitution),e[n[u][1]]=e[n[u][1]].replace(l,t[u].secondSubstitution),r.push(n[u][0]+1),i.push(n[u][1]+1),o.push(t[u].firstLinkingGroup),s.push(t[u].secondLinkingGroup)}return[e,r,i,o,s]}}function ur(e,n=!0){const[r,i]=Qn(e);return kr.logger.error(r,void 0,i),n&&t.shell.error(r),[r,i]}const lr="System:AppData/Bio/monomer-libraries/";async function cr(){const e=await t.functions.call("Bio:getMonomerLibHelper",{});return(await e.getFileManager()).getValidLibraryPaths()}const hr="\n\n\n 22 24 0 0 0 0 0 0 0 0999 V2000\n 0.3128 -0.7509 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.3128 0.0740 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -0.4054 -1.1623 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -1.1081 -0.7509 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -0.4054 0.4877 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -1.1081 0.0740 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -1.8175 -1.1623 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.0222 0.4877 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -1.8175 0.4877 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -2.5292 -0.7509 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.0222 1.3127 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.7227 1.7263 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -0.4054 -1.9896 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -2.5292 0.0740 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 2.4544 1.3127 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.7406 0.0740 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.0222 -1.1623 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 2.4544 0.4877 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -1.8175 -1.9896 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -3.2453 0.4877 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 3.1670 1.7285 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 1.7149 2.5513 0.0000 R# 0 0 0 0 0 0 0 0 0 0 0 0\n 2 1 2 0 0 0 0\n 3 1 1 0 0 0 0\n 4 3 1 0 0 0 0\n 5 2 1 0 0 0 0\n 6 5 1 0 0 0 0\n 7 4 1 0 0 0 0\n 8 2 1 0 0 0 0\n 9 6 1 0 0 0 0\n 10 7 2 0 0 0 0\n 11 8 2 0 0 0 0\n 12 11 1 0 0 0 0\n 13 3 2 0 0 0 0\n 14 9 2 0 0 0 0\n 15 18 1 0 0 0 0\n 16 8 1 0 0 0 0\n 17 1 1 0 0 0 0\n 18 16 2 0 0 0 0\n 19 7 1 0 0 0 0\n 20 14 1 0 0 0 0\n 6 4 2 0 0 0 0\n 15 12 2 0 0 0 0\n 14 10 1 0 0 0 0\n 15 21 1 0 0 0 0\n 12 22 1 0 0 0 0\nM RGP 1 22 1\nM END";const fr={symbol:"Short Name",name:"Medium Name",smiles:"SMILES"},dr=[{capGroupSmiles:"[*:1][H]",alternateId:"R1-H",capGroupName:"H",label:"R1"},{capGroupSmiles:"O[*:2]",alternateId:"R2-OH",capGroupName:"OH",label:"R2"},{capGroupSmiles:"[*:3][H]",alternateId:"R3-H",capGroupName:"H",label:"R3"}],pr="No dataframe with macromolecule columns open",gr="Get HELM",mr="Add HELM column",vr="Chirality engine",yr="Poly Tool Conversion",br="Poly Tool Enumeration",wr="Rules used";function Cr(n){(async function(n){const r=[],i=()=>{for(const t of r)t.unsubscribe()};try{const[o,s]=await Promise.all([cr(),Yn()]),a=n&&n.rowIndex>=0?n.value:hr;let u=await(async()=>e.chem.isMolBlock(a)?a:await t.functions.call("Chem:convertMolNotation",{molecule:a,sourceNotation:n?.column.getTag(e.TAGS.UNITS)??e.chem.Notation.Unknown,targetNotation:e.chem.Notation.MolBlock}))();const l=new e.chem.Sketcher(e.chem.SKETCHER_MODE.EXTERNAL);l.syncCurrentObject=!1,l.onChanged.subscribe((t=>{u=l.getMolFile()})),l.root.classList.add("ui-input-editor"),l.root.style.marginTop="3px",l.setMolFile(u);const c=Et.input.choice("Library to use",{value:null,items:o});l.root.setAttribute("style","min-width:250px!important;"),l.root.setAttribute("style","max-width:250px!important;"),c.input.setAttribute("style","min-width:250px!important;");const h=Et.div([l.root,c.root]);r.push(t.events.onCurrentCellChanged.subscribe((()=>{const n=t.shell.tv.dataFrame.currentCell;n.column.semType===e.SEMTYPE.MOLECULE&&l.setValue(n.value)})));const f=async()=>{try{const n=l.getMolFile();if(void 0===n||""===n)t.shell.warning("PolyTool: no molecule was provided");else if(n.includes("R#")){const r=await async function(e,n){const r=await async function(e){const n=await t.functions.call("Bio:getMonomerLibHelper",{});return(await n.readLibrary(lr,e)).getMonomerSymbolsByType("PEPTIDE")}(n),i=await async function(e){const n=await t.functions.call("Bio:getMonomerLibHelper",{}),r=await n.readLibrary(lr,e),i=r.getMonomerSymbolsByType("PEPTIDE");return new Array(i.length),r.getMonomerMolsByPolymerType("PEPTIDE")}(n),o=new Array(r.length),s=await t.functions.call("Chem:getRdKitModule"),a=s.get_mol(e),u=a.get_smiles();a.delete();const l=new Array(r.length);for(let t=0;t<r.length;t++){const e=i[r[t]],n=s.get_mol(e);l[t]=n.get_smiles(),n.delete()}for(let t=0;t<r.length;t++){let e=null;try{const n=`${`${u}.${l[t]}`.replaceAll("[1*]C","C([1*])").replaceAll("[1*]c","c([1*])").replaceAll("[1*]O","O([1*])").replaceAll("[1*]N","N([1*])")}`.replaceAll("([1*])","9").replaceAll("[1*]","9");e=s.get_mol(n,JSON.stringify({mappedDummiesAreRGroups:!0}));const r=e.get_v3Kmolblock();o[t]=r}catch(e){o[t]=""}finally{e?.delete()}}return o}(n,c.value),i=e.Column.fromStrings("Enumerated",r),o=e.DataFrame.fromColumns([i]);t.shell.addTableView(o)}else t.shell.warning("PolyTool: no R group was provided")}catch(t){ur(t)}},d=Et.dialog(br).add(h).onOK((()=>{f().finally((()=>{i()}))})).onCancel((()=>{i()}));return r.push(d.onClose.subscribe((()=>{i()}))),d}catch(t){throw i(),t}})(n).then((t=>{t.show({resizable:!0})})).catch((e=>{t.shell.warning("To run PolyTool Enumeration, sketch the molecule and specify the R group to vary")}))}async function Ar(n,r,i,o){const s=e.TaskBarProgressIndicator.create("PolyTool converting...");try{const s=(t,e)=>t?t.columns.getUnusedName(e):e;await Yn();const a=n.dataFrame,u=await async function(n){const r=new e.FileSource(er),i=[],o={homodimerCode:null,heterodimerCode:null,linkRules:i};for(let e=0;e<n.length;e++){const s=await r.readAsText(n[e].replace(er,"")),a=JSON.parse(s);for(let e=0;e<a.length;e++)if(void 0!==a[e].type&&void 0!==a[e].code)switch(a[e].type){case rr:{const t=a[e].monomericSubstitution;t.code=a[e].code,i.push(t);break}case ir:o.homodimerCode&&t.shell.warning("PolyTool: homodimer code is duplicated in rules."),o.homodimerCode=a[e].code;break;case or:o.heterodimerCode&&t.shell.warning("PolyTool: heterodimer code is duplicated in rules."),o.heterodimerCode=a[e].code;break;default:t.shell.warning(`PolyTool: Unexpected type - '${a[e]}'.`)}else t.shell.warning("Polytool: rules contain invalid rule")}return o}(o),l=function(t,e){const n=new Array(t.length);for(let r=0;r<t.length;r++)if(void 0===t[r])n[r]="";else{const i=ar.fromNotation(t[r],e);n[r]=i.getHelm()}return n}(n.toList(),u),c=s(a,`transformed(${n.name})`),h=e.Column.fromType(e.COLUMN_TYPE.STRING,c,l.length).init((t=>l[t]));h.semType=e.SEMTYPE.MACROMOLECULE,h.meta.units=x.HELM,h.setTag(e.TAGS.CELL_RENDERER,"helm"),r&&a&&a.columns.add(h,!0);const f=await Xn(),d=(await f.helmToAtomicLevel(h,i,r)).molCol;return d.name=s(a,`molfile(${n.name})`),d.semType=e.SEMTYPE.MOLECULE,a&&(a.columns.add(d,!0),await t.data.detectSemanticTypes(a)),[h,d]}finally{s.close()}}var xr,_r;function Er(t){let e;switch(t){case xr.BASE:case xr.SUGAR:case xr.LINKER:case xr.NUCLEOTIDE:case"nucleotide":e="RNA";break;case xr.AA:e="PEPTIDE";break;case xr.CHEM:e="CHEM";break;case xr.BLOB:e="BLOB";break;default:e="PEPTIDE",console.warn(`Unexpected HelmType '${t}'`)}return e}!function(t){t.BASE="HELM_BASE",t.SUGAR="HELM_SUGAR",t.LINKER="HELM_LINKER",t.AA="HELM_AA",t.CHEM="HELM_CHEM",t.BLOB="HELM_BLOB",t.NUCLEOTIDE="HELM_NUCLETIDE"}(xr||(xr={}));class Sr extends e.InputBase{constructor(t,e){super(Et.input.column(t,e).dart,e?.onValueChanged),this.options=e}setColumnInputTable(t){Et.input.setColumnInputTable(this,t,this.options?.filter)}}Et.input.column2=function(t,e){return new Sr(t,e)},function(t){t.Single="single",t.Matrix="matrix"}(_r||(_r={}));const Tr="PEPTIDE1{R.[Aca].T.G.H.F.G.A.A.Y.P.E.[meI]}$$$$";function Ir(t,e,n){const r=new Array(n.length);for(let i=0;i<n.length;i++){const o=n[i],s=r[i]=t.clone(),a=s.atoms[e].elem;s.atoms[e].elem=o;const u=a?.length>1?`[${a}]`:a,l=o?.length>1?`[${o}]`:o;s.name=`${t.name}-${u}${e+1}${l}`}return r}class Nr extends e.JsInputBase{get inputType(){return"Positions"}get dataType(){return e.TYPE.DATA_FRAME}getInput(){return this.gridHost}getValue(){return this.grid.dataFrame}setValue(t){this.grid.dataFrame=t}getStringValue(){return this.grid.dataFrame.toCsv()}setStringValue(t){this.grid.dataFrame=e.DataFrame.fromCsv(t)}get placeholdersValue(){return function(t){const e={};for(let n=0;n<t.rowCount;n++){const r=parseInt(t.get("Position",n));if(!isNaN(r)){const i=t.get("Monomers",n).split(/,(?![^(]*\))/).map((t=>('"'===(t=t.trim()).slice(0,1)&&'"'===t.slice(-1)&&(t=t.slice(1,-1)),"'"===t.slice(0,1)&&"'"===t.slice(-1)&&(t=t.slice(1,-1)),t.trim()))).filter((t=>!!t));e[r-1]=i}}return e}(this.grid.dataFrame)}constructor(t,e,n){super(),this.subs=[],t&&(this.captionLabel.innerText=t),this.gridHost=Et.div([],{classes:"ui-input-editor",style:{width:"100%",height:"100%",marginTop:"-8px",marginBottom:"8px",paddingBottom:"4px"}}),this.grid=e,this.gridHost.append(this.grid.root),null!=n?this.updateGridHeight(n+.7):(this.updateGridHeight(this.grid.dataFrame.rowCount+.6),this.subs.push(this.grid.dataFrame.onRowsAdded.subscribe((()=>{this.updateGridHeight(this.grid.dataFrame.rowCount+.6)})))),this.grid.root.style.width="100%",this.subs.push(this.grid.dataFrame.onDataChanged.subscribe((()=>{this.fireChanged()}))),this.subs.push(Et.onSizeChanged(this.grid.root).subscribe((()=>{this.grid.columns.byIndex(2).width=this.grid.root.clientWidth-this.grid.horzScroll.root.offsetWidth-this.grid.columns.byIndex(0).width-this.grid.columns.byIndex(1).width-10}))),this.root.classList.add("ui-input-polytool-pos-grid"),this.root.append(this.gridHost)}detach(){for(const t of this.subs)t.unsubscribe()}static async create(t,n,r){const i=e.DataFrame.fromObjects([{Position:"",Monomers:""}]),o=await i.plot.fromType(e.VIEWER.GRID,n);return o.sort(["Position"]),new Nr(t,o,r)}updateGridHeight(t){const e=this.grid.colHeaderHeight+t*this.grid.props.rowHeight+6+2;this.grid.root.style.height=`${e}px`}gridRootOnSizeChanged(){this.grid.columns.byIndex(2).width=this.grid.root.clientWidth-this.grid.horzScroll.root.offsetWidth-this.grid.columns.byIndex(0).width-this.grid.columns.byIndex(1).width-10}}async function Or(n){const r=window.innerWidth,i=window.innerHeight;try{let o;const s=()=>{if(null==o)return;const t=Tt()(o.root).find("div.d4-dialog-contents").get(0),e=t.clientHeight,n={0:1},r=Object.values(n).reduce(((t,e)=>t+e),0),i=e-I().count(0).take(t.children.length).filter((t=>!(t in n))).map((e=>t.children[e])).filter((t=>t instanceof HTMLElement)).map((t=>t.offsetHeight)).reduce(((t,e)=>t+e),0)-38;o.inputs.forEach(((t,e)=>{if(e in n){const o=i*n[e]/r;t.root.style.height=`${o}px`}}))};o=await async function(n,r){const i="ST: PT: HelmDialog()";let o;const s=[],a=()=>{for(const t of s)t.unsubscribe();o.placeholders.detach()};try{const u=(await nt()).getMonomerLib(),l=(await Xn(),e.DataFrame.fromColumns([])),[c,h]=await Promise.all([cr(),Yn()]);let f=null;const d=Et.divText("",{style:{marginLeft:"8px",marginTop:"2px"}}),p=Et.divText("",{style:{color:"red"}});o={enumeratorType:Et.input.choice("Enumerator type",{value:_r.Single,items:Object.values(_r)}),macromolecule:h.createHelmInput("Macromolecule",{editable:!1}),placeholders:await Nr.create("Placeholders",{showAddNewRowIcon:!0,showRemoveRowIcon:!0,showRowHeader:!1,showCellTooltip:!1}),toAtomicLevel:Et.input.bool("To atomic level",{value:!1}),keepOriginal:Et.input.bool("Keep original",{value:!1}),trivialNameCol:Et.input.column2("Trivial name",{table:n?.dataFrame,filter:t=>t.type===e.COLUMN_TYPE.STRING&&t!=n?.column,onValueChanged:()=>{const t=o.trivialNameCol.value;let e=null;n&&t&&(e={value:t.get(n.rowIndex),colName:t.name}),f=e,d.textContent=f?`Original ID: ${f.value}`:""},nullable:!0})},o.trivialNameCol.addOptions(d);let g=null;o.placeholders.addValidator((t=>{const e=[];try{const t=[];for(const[n,r]of Object.entries(o.placeholders.placeholdersValue)){const i=parseInt(n);if(i>=o.macromolecule.molValue.atoms.length){e.push(`There is no monomer at position ${i+1}.`);continue}const s=Er(o.macromolecule.molValue.atoms[i].biotype());for(const e of r){const n=u.getMonomer(s,e);n&&n.lib||t.push({polymerType:s,symbol:e})}}const n={};for(const e of t){let t=n[e.polymerType];t||(t=n[e.polymerType]=[]),t.push(e.symbol)}const r=Object.entries(n).map((([t,e])=>`${t}: ${e.join(", ")}`)).join("\n");Object.keys(r).length>0&&e.push(`Placeholders contain missed monomers: ${r}`),g=e.length>0?e.join("\n"):null}catch(t){const[e,n]=ur(t,!1);g=e}return setTimeout((()=>{v()}),0),g})),s.push(o.macromolecule.onMouseMove.subscribe((t=>{try{kr.logger.debug(`${i}, placeholdersInput.onMouseMove()`);const e=t.offsetX,n=t.offsetY,r=o.macromolecule.molValue,s=h.getHoveredAtom(e,n,r,o.macromolecule.root.clientHeight);if(s){const e=s._parent.atoms.indexOf(s),n=((e+1).toString(),o.placeholders.placeholdersValue[e]);if(n){const e=Et.divText(n.join(", "));o.macromolecule.showTooltip(e,s),t.preventDefault(),t.stopPropagation()}}}catch(t){ur(t,!1)}}))),s.push(o.macromolecule.onClick.subscribe((t=>{try{kr.logger.debug(`${i}, placeholdersInput.onClick()`);const e=t.offsetX,n=t.offsetY,r=o.macromolecule.molValue,s=h.getHoveredAtom(e,n,r,o.macromolecule.root.clientHeight);if(s){const t=(s._parent.atoms.indexOf(s)+1).toString(),e=o.placeholders.grid.dataFrame,n=e.columns.byName("Position").toList();let r=n.indexOf(t);-1===r&&(r=n.findIndex((t=>isNaN(t))),-1===r&&(r=e.rows.addNew([t,""]).idx),e.set("Position",r,t)),e.currentCell=e.cell(r,"Monomers")}}catch(t){ur(t)}}))),s.push(o.placeholders.grid.dataFrame.onDataChanged.subscribe((()=>{m()}))),s.push((0,Kt.fromEvent)(o.placeholders.grid.root,"keydown").subscribe((t=>{"Enter"===t.key&&t.stopPropagation()}))),s.push(Et.onSizeChanged(o.placeholders.root).subscribe((()=>{r&&r()}))),s.push(t.events.onCurrentCellChanged.subscribe((()=>{const n=t.shell.tv.dataFrame.currentCell;n.column.semType===e.SEMTYPE.MACROMOLECULE&&b(n)}))),o.macromolecule.root.style.setProperty("min-width","250px","important");const m=()=>{const t=o.macromolecule.molValue;for(let e=0;e<t.atoms.length;e++)t.atoms[e].highlighted=e in o.placeholders.placeholdersValue;o.macromolecule.redraw()},v=()=>{const t=g,e=p;t?(e.innerText=t,e.style.removeProperty("display")):(e.innerText="",e.style.setProperty("display","none"))},y=t=>{t?(o.trivialNameCol.setColumnInputTable(t),o.trivialNameCol.root.style.removeProperty("display")):(o.trivialNameCol.setColumnInputTable(l),o.trivialNameCol.root.style.setProperty("display","none")),r&&r()},b=async t=>{let n,r;if(t&&t.rowIndex>=0&&t?.column.semType==e.SEMTYPE.MACROMOLECULE){const e=Z.forColumn(t.column);n=await e.getHelm(t.rowIndex),r=t.dataFrame}else n=Tr;o.macromolecule.stringValue=n,y(r)};await b(n);const w=async()=>{try{const n=o.macromolecule.stringValue;if(I().enumerate(o.macromolecule.molValue.atoms).filter((([t,e])=>t.highlighted)).map((([t,e])=>e)).toArray(),void 0===n||""===n)t.shell.warning("PolyTool: no molecule was provided");else{if(0===Object.keys(o.placeholders.placeholdersValue).length)return void t.shell.warning(`${br}: placeholders are empty`);await Yn();const r={type:o.enumeratorType.value,placeholders:o.placeholders.placeholdersValue,keepOriginal:o.keepOriginal.value},i=await async function(t,n,r,i){const o=e.TaskBarProgressIndicator.create("PolyTool enumerating...");try{await Yn();const o=function(t,e,n){const r=new JSDraw2.MolHandler,i=new org.helm.webeditor.Plugin(r);org.helm.webeditor.IO.parseHelm(i,t,new JSDraw2.Point(0,0),void 0);const o=r.m;let s;switch(o.name=e,n.type){case _r.Single:s=function(t,e){return Object.entries(e).map((([e,n])=>Ir(t,parseInt(e),n))).reduce(((t,e)=>t.concat(e)),[])}(r.m,n.placeholders);break;case _r.Matrix:s=function(t,e){let n=[t];for(const[t,r]of Object.entries(e)){const e=parseInt(t),i=n.map((t=>Ir(t,e,r)));n=i.reduce(((t,e)=>t.concat(e)),[])}return n}(r.m,n.placeholders)}n.keepOriginal&&(s=[o,...s]);const a=s.map((t=>[org.helm.webeditor.IO.getHelm(t),t.name]));return a}(t,n?.value??"",r),s=e.Column.fromType(e.COLUMN_TYPE.STRING,"Enumerated",o.length).init((t=>o[t][0])),a=e.DataFrame.fromColumns([s]);if(i){const t=await Xn(),n=await t.helmToAtomicLevel(s,!0,!0);n.molCol.semType=e.SEMTYPE.MOLECULE,a.columns.add(n.molCol,!1),a.columns.add(n.molHighlightCol,!1)}if(n){const t=e.Column.fromType(e.COLUMN_TYPE.STRING,n.colName,o.length).init((t=>o[t][1]));a.columns.add(t)}return a}finally{o.close()}}(n,f,r,o.toAtomicLevel.value);t.shell.addTableView(i)}}catch(t){ur(t)}},C=Et.dialog({title:br,showFooter:!0}).add(o.macromolecule).add(o.placeholders).add(o.enumeratorType).add(o.trivialNameCol).add(o.toAtomicLevel).add(o.keepOriginal).add(p).onOK((()=>{w()}));return s.push(C.onClose.subscribe((()=>{a()}))),C.history((()=>({macromolecule:o.macromolecule.stringValue,placeholders:o.placeholders.stringValue,enumeratorType:o.enumeratorType.value,trivialNameCol:o.trivialNameCol.stringValue,toAtomicLevel:o.toAtomicLevel.value,keepOriginal:o.keepOriginal.value})),(t=>{o.macromolecule.stringValue=t.macromolecule,o.placeholders.stringValue=t.placeholders,o.enumeratorType.value=t.enumeratorType,o.trivialNameCol.stringValue=t.trivialNameCol,o.toAtomicLevel.value=t.toAtomicLevel,o.keepOriginal.value=t.keepOriginal})),C}catch(t){throw a(),t}}(n,s);let a=!0;Et.onSizeChanged(o.root).subscribe((()=>{if(a){o.inputs;const t=Tt()(o.root),e=(t.find("div.d4-dialog-header").get(0).offsetHeight,t.find("div.d4-dialog-footer").get(0).offsetHeight,.7*r),n=.7*i;o.root.style.width=`${Math.min(r,e)}px`,o.root.style.height=`${Math.min(i,n)}px`,o.root.style.left=`${Math.floor((r-o.root.offsetWidth)/2)}px`,o.root.style.top=`${Math.floor((i-o.root.offsetHeight)/2)}px`,a=!1}s()})),s(),kr.logger.debug("PolyToolEnumerateHelmUI: dialog before show"),o.show({width:Math.max(350,.7*r),resizable:!0}),kr.logger.debug("PolyToolEnumerateHelmUI: dialog after show")}catch(e){const[n,r]=Qn(e);t.shell.warning("To run PolyTool Enumeration, sketch the macromolecule and select monomers to vary"),kr.logger.error(n,void 0,r)}}class Mr{constructor(t){this.rawLib=t}isValid(){return this.rawLib.every((t=>"object"==typeof t&&Object.values(fr).every((e=>e in t&&"string"==typeof t[e]))))}getJsonMonomerLib(){const t=[];return this.rawLib.forEach((e=>{const n=this.prepareMonomer(e);t.push(n)})),t}prepareMonomer(t){const e={...v};Object.entries(fr).forEach((([n,r])=>{const i=t[r];e[n]=i}));let n="smiles";const r=t[fr[n]],i=new Lr(r),o=i.getCappedSmiles();return e[n]=o,n="rgroups",e[n]=Br.getRGroups(i.getNumberOfRGroups()),n="molfile",e[n]=new Pr(i.getSmilesWithRGroups()).getMolfile(),e}}class Lr{constructor(t){let e=0;this.smilesWithRGroups=t.replace(/\[R(\d+)\]/g,((t,n)=>(++e,`[${n}*]`))),this.numberOfRGroups=e}getSmilesWithRGroups(){return this.smilesWithRGroups}getCappedSmiles(){return this.capRGroups()}getNumberOfRGroups(){return this.numberOfRGroups}capRGroups(){let t=this.smilesWithRGroups.replace("[1*]","[H:1]");return t=t.replace("[2*]","[OH:2]"),t.replace("[3*]","[H:3]")}}class Br{constructor(){}static getRGroups(t){return dr.slice(0,t)}}class Pr{constructor(t){this.smilesWithRGroups=t}getMolfile(){let t=e.chem.convert(this.smilesWithRGroups,e.chem.Notation.Smiles,e.chem.Notation.MolBlock);return t=this.restoreRGPLine(t),t=this.fixRGroupSymbols(t),t}restoreRGPLine(t){return t.replace("M ISO","M RGP")}fixRGroupSymbols(t){return t.replace(/\bR\b/g,"R#")}}class Rr{constructor(t,n){this.fileName=t,this.fileContent=n,this.validateFileType();const r=e.DataFrame.fromCsv(this.fileContent),i=this.toJson(r);this.polyToolMonomerLib=new Mr(i),this.validateContent()}async getJson(){return this.polyToolMonomerLib.getJsonMonomerLib()}toJson(t){return Array.from({length:t.rowCount},((e,n)=>t.columns.names().reduce(((e,r)=>(e[r]=t.get(r,n),e)),{})))}validateFileType(){if(!this.fileName.endsWith(".csv"))throw new Error(`File ${this.fileName} is not an CSV file`)}validateContent(){if(!this.polyToolMonomerLib.isValid())throw new Error("Invalid format of CSV monomer lib")}}var Dr;!function(t){t.table="table",t.seqCol="seqCol",t.generateHelm="generateHelm",t.chiralityEngine="chiralityEngine",t.rules="rules"}(Dr||(Dr={}));class Fr{constructor(t){this.call=t,this.ruleInputs=new sr(er,nr,".json")}async initInputs(){const t=t=>this.call.inputParams[t];this.inputs={table:(()=>{const e=t(Dr.table);return Et.input.table(e.property.caption,{value:e.value})})(),seqCol:(()=>{const e=t(Dr.seqCol);return Et.input.column(e.property.caption,{value:e.value,table:e.value.dataFrame})})(),generateHelm:Et.input.forProperty(t(Dr.generateHelm).property),chiralityEngine:Et.input.forProperty(t(Dr.chiralityEngine).property),rules:{header:Et.inlineText([wr]),form:await this.ruleInputs.getForm()}}}static async create(t){const e=new Fr(t);return await e.initInputs(),e}async getParams(){return{table:this.inputs.table.value,seqCol:this.inputs.seqCol.value,generateHelm:this.inputs.generateHelm.value,chiralityEngine:this.inputs.chiralityEngine.value,rules:await this.ruleInputs.getActive()}}async showDialog(){const t=Et.div([this.inputs.table,this.inputs.seqCol,this.inputs.generateHelm,this.inputs.chiralityEngine,this.inputs.rules.header,this.inputs.rules.form],{style:{minWidth:"320px"}});return new Promise(((e,n)=>{Et.dialog({title:yr}).add(t).onOK((async()=>{const t=await this.getParams(),n=(await this.call.func.prepare(t).call(!0)).getOutputParamValue();e(n)})).onCancel((()=>{n(new Error("Cancelled by user"))})).show()}))}widget(){throw new Error("not implemented")}}const kr=new Nt({debug:!0});async function Hr(){await kr.initLibData();const e=await async function(e){const n={"Mermadesynthesis:merMadeSynthesis":{tabName:"SYNTHESIZE",parameters:zn(e)}},r={};for(const[e,i]of Object.entries(n)){let n;try{n=await t.functions.call(e,i.parameters);const o=new Vn(i.tabName,n);o.initView(),r[i.tabName]=()=>o.getView()}catch(t){console.warn(`Plugin ${e} not loaded, reason:`,t);continue}}return r}(kr);if(!e)throw new Error("External app view factories not loaded");const n=new jn(e,kr);return await n.getAppView()}async function Ur(){return await Xr("Oligo Translator")}async function $r(){return await Xr("Oligo Pattern")}async function Vr(){return await Xr("Oligo Structure")}async function jr(){return await kr.initLibData(),kr}function qr(){const t=kr.monomerLibWrapper.getCodesToWeightsMap();return Object.fromEntries(t)}function Gr(t){const e=kr.createSequenceValidator(t),n=kr.createFormatDetector(t).getFormat();return null!==n&&e.isValidSequence(n)}function Wr(t,e){return new yn(t,e,"GCRS").convert()}function zr(t){return bn(t,!0)}async function Yr(){await async function(){await dt((async()=>{const e=await Ur();t.shell.addView(e)}))}()}async function Kr(){await async function(){await dt((async()=>{const e=await $r();t.shell.addView(e)}))}()}async function Jr(){await Wn()}async function Qr(t,e,n){return await kr.initLibData(),kr.createFormatConverter(t,e).convertTo(n)}async function Xr(t){await kr.initLibData();const e=function(t,e){switch(t){case"Oligo Translator":return new $n(e);case"Oligo Pattern":return new Ze(e);case"Oligo Structure":return new Tn(e);default:throw new Error(`Unknown app name: ${t}`)}}(t,kr);return await e.getAppView()}async function Zr(){await async function(){let n;try{n=await async function(){const n=[],r=()=>{for(const t of n)t.unsubscribe()};try{const i=t.shell.t.columns.bySemTypeAll(e.SEMTYPE.MACROMOLECULE);if(!i)throw new Error(pr);const o=Et.input.column("Column",{table:t.shell.t,value:i[0],filter:t=>t.semType===e.SEMTYPE.MACROMOLECULE});o.value=o.value;const s=Et.input.bool(gr,{value:!0});Et.tooltip.bind(s.root,mr);const a=Et.input.bool(vr,{value:!1}),u=new sr(er,nr,".json"),l=Et.inlineText([wr]);Et.tooltip.bind(l,"Add or specify rules to use");const c=await u.getForm(),h=Et.div([o,s,a,l,c]),f=async()=>{try{const t=await u.getActive();await Ar(o.value,s.value,a.value,t)}catch(t){ur(t)}},d=Et.dialog(yr).add(h).onOK((()=>{f()}));return n.push(d.onClose.subscribe((()=>{r()}))),d}catch(t){throw r(),t}}(),n.show()}catch(e){const[n,r]=Qn(e);t.shell.warning("To run PolyTool Conversion, open a dataframe with macromolecules"),kr.logger.error(n,void 0,r)}}()}async function ti(t){const e=await Fr.create(t);return await e.showDialog()}async function ei(t,e,n,r,i){return(await Ar(e,n,r,i))[0]}async function ni(){await Or(t.shell.tv?.dataFrame.currentCell)}async function ri(){Cr()}async function ii(n,r){var i;(function(t){t.semType=e.SEMTYPE.MACROMOLECULE,t.setTag("aligned","SEQ"),t.setTag("alphabet",_.PT)})(i=r),i.meta.units=x.SEPARATOR,i.setTag("separator","-"),await t.data.detectSemanticTypes(n)}async function oi(t){const n=await t.readAsString(),r=new Rr(t.fileName,n),i=await r.getJson(),o=t.fileName.replace(/\.csv$/,".json"),s=JSON.stringify(i,null,2);e.Utils.download(o,s)}function si(t){!function(t){try{const n=t.args.item;if(n){const r=t.args.menu;(n instanceof e.GridCell||"GridCell"==n.constructor.name)&&function(t,n){if(kr.logger.debug("ST: addContextMenuForCell(), start"),t&&t.tableColumn)switch(t.tableColumn.semType){case e.SEMTYPE.MACROMOLECULE:return n.item("PolyTool-Enumerate",(()=>{Or(t.cell)})),!0;case e.SEMTYPE.MOLECULE:return n.item("PolyTool-Enumerate",(()=>{Cr(t.cell)})),!0}return!1}(n,r)&&t.preventDefault()}}catch(t){ur(t),window.$sequenceTranslator||(window.$sequenceTranslator={}),window.$sequenceTranslator.contextMenuError=t}}(t)}async function ai(){await Or()}async function li(){Cr()}})(),sequencetranslator=r})();
2
+ var sequencetranslator;(()=>{var t={74:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var r=n(354),i=n.n(r),o=n(314),s=n.n(o)()(i());s.push([t.id,".st-colored-text-input > textarea {\n width: 100%;\n -webkit-text-fill-color: transparent;\n background-color: transparent;\n position: relative;\n z-index: 1;\n resize: none;\n height: 22px; /* Fine tuned value to avoid \"jumping\" of the textarea upon autoresize */\n}\n\n.st-colored-text-input > div {\n /* The values here are fine tuned to those of the ui.input textarea in order\n * to achieve precise overlap */\n overflow: auto;\n position: absolute;\n pointer-events: none;\n cursor: text;\n z-index: 0;\n max-width: 100%;\n padding: 2px;\n line-height: normal;\n font-family: 'Roboto', 'Roboto Local', sans-serif;\n font-size: 13px;\n padding-top: 6px !important;\n color: transparent;\n white-space: pre-wrap;\n word-wrap: break-word;\n}\n","",{version:3,sources:["webpack://./src/apps/common/view/components/colored-input/style.css"],names:[],mappings:"AAAA;EACE,WAAW;EACX,oCAAoC;EACpC,6BAA6B;EAC7B,kBAAkB;EAClB,UAAU;EACV,YAAY;EACZ,YAAY,EAAE,wEAAwE;AACxF;;AAEA;EACE;iCAC+B;EAC/B,cAAc;EACd,kBAAkB;EAClB,oBAAoB;EACpB,YAAY;EACZ,UAAU;EACV,eAAe;EACf,YAAY;EACZ,mBAAmB;EACnB,iDAAiD;EACjD,eAAe;EACf,2BAA2B;EAC3B,kBAAkB;EAClB,qBAAqB;EACrB,qBAAqB;AACvB",sourcesContent:[".st-colored-text-input > textarea {\n width: 100%;\n -webkit-text-fill-color: transparent;\n background-color: transparent;\n position: relative;\n z-index: 1;\n resize: none;\n height: 22px; /* Fine tuned value to avoid \"jumping\" of the textarea upon autoresize */\n}\n\n.st-colored-text-input > div {\n /* The values here are fine tuned to those of the ui.input textarea in order\n * to achieve precise overlap */\n overflow: auto;\n position: absolute;\n pointer-events: none;\n cursor: text;\n z-index: 0;\n max-width: 100%;\n padding: 2px;\n line-height: normal;\n font-family: 'Roboto', 'Roboto Local', sans-serif;\n font-size: 13px;\n padding-top: 6px !important;\n color: transparent;\n white-space: pre-wrap;\n word-wrap: break-word;\n}\n"],sourceRoot:""}]);const a=s},252:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var r=n(354),i=n.n(r),o=n(314),s=n.n(o)()(i());s.push([t.id,"/* Naming convention: class names should begin with st and app name to avoid naming collitions */\n\n.st-pattern-text-input > textarea {\n resize: none;\n}\n","",{version:3,sources:["webpack://./src/apps/pattern/view/style.css"],names:[],mappings:"AAAA,gGAAgG;;AAEhG;EACE,YAAY;AACd",sourcesContent:["/* Naming convention: class names should begin with st and app name to avoid naming collitions */\n\n.st-pattern-text-input > textarea {\n resize: none;\n}\n"],sourceRoot:""}]);const a=s},507:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var r=n(354),i=n.n(r),o=n(314),s=n.n(o)()(i());s.push([t.id,"/* Naming convention: class names should begin with st and app name to avoid naming collitions */\n\n.st-structure-body {\n padding-right: 20px;\n}\n\n.st-structure-mol-img {\n margin-right: 30px;\n float: right;\n}\n\n.st-structure-bool-button-block {\n justify-content: right;\n margin-bottom: 10px;\n}\n\n.st-structure-bottom {\n flex-direction: row-reverse;\n padding-top: 20px;\n}\n\n.st-structure-clear-buttons {\n justify-content: space-between;\n padding: 13px 10px 13px 10px;\n}\n\n.st-direction-inputs {\n align-items: end;\n}\n\n.st-structure-inputs {\n flex-grow: 2;\n padding-left: 10px;\n}","",{version:3,sources:["webpack://./src/apps/structure/view/style.css"],names:[],mappings:"AAAA,gGAAgG;;AAEhG;EACE,mBAAmB;AACrB;;AAEA;EACE,kBAAkB;EAClB,YAAY;AACd;;AAEA;EACE,sBAAsB;EACtB,mBAAmB;AACrB;;AAEA;EACE,2BAA2B;EAC3B,iBAAiB;AACnB;;AAEA;EACE,8BAA8B;EAC9B,4BAA4B;AAC9B;;AAEA;EACE,gBAAgB;AAClB;;AAEA;EACE,YAAY;EACZ,kBAAkB;AACpB",sourcesContent:["/* Naming convention: class names should begin with st and app name to avoid naming collitions */\n\n.st-structure-body {\n padding-right: 20px;\n}\n\n.st-structure-mol-img {\n margin-right: 30px;\n float: right;\n}\n\n.st-structure-bool-button-block {\n justify-content: right;\n margin-bottom: 10px;\n}\n\n.st-structure-bottom {\n flex-direction: row-reverse;\n padding-top: 20px;\n}\n\n.st-structure-clear-buttons {\n justify-content: space-between;\n padding: 13px 10px 13px 10px;\n}\n\n.st-direction-inputs {\n align-items: end;\n}\n\n.st-structure-inputs {\n flex-grow: 2;\n padding-left: 10px;\n}"],sourceRoot:""}]);const a=s},254:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var r=n(354),i=n.n(r),o=n(314),s=n.n(o)()(i());s.push([t.id,"/* Naming convention: class names should begin with st and app name to avoid naming collitions */\n.st-translator-input-table {\n /* width: 100%; */\n margin-right: 20px;\n}\n\n.st-translator-input-table td:has(textarea) {\n width: 100%;\n}\n\n.st-translator-input-table td:has(select) {\n min-width: 120px;\n vertical-align: top;\n}\n\n.st-translator-output-table {\n margin-top: 20px;\n margin-right: 20px;\n margin-bottom: 10px;\n}\n\n.st-translator-output-table table {\n width: 100%;\n table-layout: fixed;\n}\n\n.st-translator-output-table td {\n padding-top: 6px;\n padding-bottom: 6px;\n}\n.st-translator-output-table tr:nth-child(even) {\n background-color: var(--grey-1);\n}\n\n.st-translator-output-table td:nth-child(odd) {\n width: 120px;\n vertical-align: top;\n}\n\n.st-translator-output-table td a {\n overflow-wrap: break-word;\n}\n","",{version:3,sources:["webpack://./src/apps/translator/view/style.css"],names:[],mappings:"AAAA,gGAAgG;AAChG;EACE,iBAAiB;EACjB,kBAAkB;AACpB;;AAEA;EACE,WAAW;AACb;;AAEA;EACE,gBAAgB;EAChB,mBAAmB;AACrB;;AAEA;EACE,gBAAgB;EAChB,kBAAkB;EAClB,mBAAmB;AACrB;;AAEA;EACE,WAAW;EACX,mBAAmB;AACrB;;AAEA;EACE,gBAAgB;EAChB,mBAAmB;AACrB;AACA;EACE,+BAA+B;AACjC;;AAEA;EACE,YAAY;EACZ,mBAAmB;AACrB;;AAEA;EACE,yBAAyB;AAC3B",sourcesContent:["/* Naming convention: class names should begin with st and app name to avoid naming collitions */\n.st-translator-input-table {\n /* width: 100%; */\n margin-right: 20px;\n}\n\n.st-translator-input-table td:has(textarea) {\n width: 100%;\n}\n\n.st-translator-input-table td:has(select) {\n min-width: 120px;\n vertical-align: top;\n}\n\n.st-translator-output-table {\n margin-top: 20px;\n margin-right: 20px;\n margin-bottom: 10px;\n}\n\n.st-translator-output-table table {\n width: 100%;\n table-layout: fixed;\n}\n\n.st-translator-output-table td {\n padding-top: 6px;\n padding-bottom: 6px;\n}\n.st-translator-output-table tr:nth-child(even) {\n background-color: var(--grey-1);\n}\n\n.st-translator-output-table td:nth-child(odd) {\n width: 120px;\n vertical-align: top;\n}\n\n.st-translator-output-table td a {\n overflow-wrap: break-word;\n}\n"],sourceRoot:""}]);const a=s},314:t=>{"use strict";t.exports=function(t){var e=[];return e.toString=function(){return this.map((function(e){var n="",r=void 0!==e[5];return e[4]&&(n+="@supports (".concat(e[4],") {")),e[2]&&(n+="@media ".concat(e[2]," {")),r&&(n+="@layer".concat(e[5].length>0?" ".concat(e[5]):""," {")),n+=t(e),r&&(n+="}"),e[2]&&(n+="}"),e[4]&&(n+="}"),n})).join("")},e.i=function(t,n,r,i,o){"string"==typeof t&&(t=[[null,t,void 0]]);var s={};if(r)for(var a=0;a<this.length;a++){var u=this[a][0];null!=u&&(s[u]=!0)}for(var l=0;l<t.length;l++){var c=[].concat(t[l]);r&&s[c[0]]||(void 0!==o&&(void 0===c[5]||(c[1]="@layer".concat(c[5].length>0?" ".concat(c[5]):""," {").concat(c[1],"}")),c[5]=o),n&&(c[2]?(c[1]="@media ".concat(c[2]," {").concat(c[1],"}"),c[2]=n):c[2]=n),i&&(c[4]?(c[1]="@supports (".concat(c[4],") {").concat(c[1],"}"),c[4]=i):c[4]="".concat(i)),e.push(c))}},e}},354:t=>{"use strict";t.exports=function(t){var e=t[1],n=t[3];if(!n)return e;if("function"==typeof btoa){var r=btoa(unescape(encodeURIComponent(JSON.stringify(n)))),i="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(r),o="/*# ".concat(i," */");return[e].concat([o]).join("\n")}return[e].join("\n")}},982:function(t,e,n){var r;!function(){var e={};!function(t){"use strict";t.__esModule=!0,t.digestLength=32,t.blockSize=64;var e=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]);function n(t,n,r,i,o){for(var s,a,u,l,c,h,f,d,p,g,m,y,v;o>=64;){for(s=n[0],a=n[1],u=n[2],l=n[3],c=n[4],h=n[5],f=n[6],d=n[7],g=0;g<16;g++)m=i+4*g,t[g]=(255&r[m])<<24|(255&r[m+1])<<16|(255&r[m+2])<<8|255&r[m+3];for(g=16;g<64;g++)y=((p=t[g-2])>>>17|p<<15)^(p>>>19|p<<13)^p>>>10,v=((p=t[g-15])>>>7|p<<25)^(p>>>18|p<<14)^p>>>3,t[g]=(y+t[g-7]|0)+(v+t[g-16]|0);for(g=0;g<64;g++)y=(((c>>>6|c<<26)^(c>>>11|c<<21)^(c>>>25|c<<7))+(c&h^~c&f)|0)+(d+(e[g]+t[g]|0)|0)|0,v=((s>>>2|s<<30)^(s>>>13|s<<19)^(s>>>22|s<<10))+(s&a^s&u^a&u)|0,d=f,f=h,h=c,c=l+y|0,l=u,u=a,a=s,s=y+v|0;n[0]+=s,n[1]+=a,n[2]+=u,n[3]+=l,n[4]+=c,n[5]+=h,n[6]+=f,n[7]+=d,i+=64,o-=64}return i}var r=function(){function e(){this.digestLength=t.digestLength,this.blockSize=t.blockSize,this.state=new Int32Array(8),this.temp=new Int32Array(64),this.buffer=new Uint8Array(128),this.bufferLength=0,this.bytesHashed=0,this.finished=!1,this.reset()}return e.prototype.reset=function(){return this.state[0]=1779033703,this.state[1]=3144134277,this.state[2]=1013904242,this.state[3]=2773480762,this.state[4]=1359893119,this.state[5]=2600822924,this.state[6]=528734635,this.state[7]=1541459225,this.bufferLength=0,this.bytesHashed=0,this.finished=!1,this},e.prototype.clean=function(){for(var t=0;t<this.buffer.length;t++)this.buffer[t]=0;for(t=0;t<this.temp.length;t++)this.temp[t]=0;this.reset()},e.prototype.update=function(t,e){if(void 0===e&&(e=t.length),this.finished)throw new Error("SHA256: can't update because hash was finished.");var r=0;if(this.bytesHashed+=e,this.bufferLength>0){for(;this.bufferLength<64&&e>0;)this.buffer[this.bufferLength++]=t[r++],e--;64===this.bufferLength&&(n(this.temp,this.state,this.buffer,0,64),this.bufferLength=0)}for(e>=64&&(r=n(this.temp,this.state,t,r,e),e%=64);e>0;)this.buffer[this.bufferLength++]=t[r++],e--;return this},e.prototype.finish=function(t){if(!this.finished){var e=this.bytesHashed,r=this.bufferLength,i=e/536870912|0,o=e<<3,s=e%64<56?64:128;this.buffer[r]=128;for(var a=r+1;a<s-8;a++)this.buffer[a]=0;this.buffer[s-8]=i>>>24&255,this.buffer[s-7]=i>>>16&255,this.buffer[s-6]=i>>>8&255,this.buffer[s-5]=i>>>0&255,this.buffer[s-4]=o>>>24&255,this.buffer[s-3]=o>>>16&255,this.buffer[s-2]=o>>>8&255,this.buffer[s-1]=o>>>0&255,n(this.temp,this.state,this.buffer,0,s),this.finished=!0}for(a=0;a<8;a++)t[4*a+0]=this.state[a]>>>24&255,t[4*a+1]=this.state[a]>>>16&255,t[4*a+2]=this.state[a]>>>8&255,t[4*a+3]=this.state[a]>>>0&255;return this},e.prototype.digest=function(){var t=new Uint8Array(this.digestLength);return this.finish(t),t},e.prototype._saveState=function(t){for(var e=0;e<this.state.length;e++)t[e]=this.state[e]},e.prototype._restoreState=function(t,e){for(var n=0;n<this.state.length;n++)this.state[n]=t[n];this.bytesHashed=e,this.finished=!1,this.bufferLength=0},e}();t.Hash=r;var i=function(){function t(t){this.inner=new r,this.outer=new r,this.blockSize=this.inner.blockSize,this.digestLength=this.inner.digestLength;var e=new Uint8Array(this.blockSize);if(t.length>this.blockSize)(new r).update(t).finish(e).clean();else for(var n=0;n<t.length;n++)e[n]=t[n];for(n=0;n<e.length;n++)e[n]^=54;for(this.inner.update(e),n=0;n<e.length;n++)e[n]^=106;for(this.outer.update(e),this.istate=new Uint32Array(8),this.ostate=new Uint32Array(8),this.inner._saveState(this.istate),this.outer._saveState(this.ostate),n=0;n<e.length;n++)e[n]=0}return t.prototype.reset=function(){return this.inner._restoreState(this.istate,this.inner.blockSize),this.outer._restoreState(this.ostate,this.outer.blockSize),this},t.prototype.clean=function(){for(var t=0;t<this.istate.length;t++)this.ostate[t]=this.istate[t]=0;this.inner.clean(),this.outer.clean()},t.prototype.update=function(t){return this.inner.update(t),this},t.prototype.finish=function(t){return this.outer.finished?this.outer.finish(t):(this.inner.finish(t),this.outer.update(t,this.digestLength).finish(t)),this},t.prototype.digest=function(){var t=new Uint8Array(this.digestLength);return this.finish(t),t},t}();function o(t){var e=(new r).update(t),n=e.digest();return e.clean(),n}function s(t,e){var n=new i(t).update(e),r=n.digest();return n.clean(),r}function a(t,e,n,r){var i=r[0];if(0===i)throw new Error("hkdf: cannot expand more");e.reset(),i>1&&e.update(t),n&&e.update(n),e.update(r),e.finish(t),r[0]++}t.HMAC=i,t.hash=o,t.default=o,t.hmac=s;var u=new Uint8Array(t.digestLength);t.hkdf=function(t,e,n,r){void 0===e&&(e=u),void 0===r&&(r=32);for(var o=new Uint8Array([1]),l=s(e,t),c=new i(l),h=new Uint8Array(c.digestLength),f=h.length,d=new Uint8Array(r),p=0;p<r;p++)f===h.length&&(a(h,c,n,o),f=0),d[p]=h[f++];return c.clean(),h.fill(0),o.fill(0),d},t.pbkdf2=function(t,e,n,r){for(var o=new i(t),s=o.digestLength,a=new Uint8Array(4),u=new Uint8Array(s),l=new Uint8Array(s),c=new Uint8Array(r),h=0;h*s<r;h++){var f=h+1;a[0]=f>>>24&255,a[1]=f>>>16&255,a[2]=f>>>8&255,a[3]=f>>>0&255,o.reset(),o.update(e),o.update(a),o.finish(l);for(var d=0;d<s;d++)u[d]=l[d];for(d=2;d<=n;d++){o.reset(),o.update(l).finish(l);for(var p=0;p<s;p++)u[p]^=l[p]}for(d=0;d<s&&h*s+d<r;d++)c[h*s+d]=u[d]}for(h=0;h<s;h++)u[h]=l[h]=0;for(h=0;h<4;h++)a[h]=0;return o.clean(),c}}(e);var i=e.default;for(var o in e)i[o]=e[o];"object"==typeof t.exports?t.exports=i:void 0===(r=function(){return i}.call(e,n,e,t))||(t.exports=r)}()},543:function(t,e,n){var r;t=n.nmd(t),function(){var i,o="Expected a function",s="__lodash_hash_undefined__",a="__lodash_placeholder__",u=32,l=128,c=1/0,h=9007199254740991,f=NaN,d=4294967295,p=[["ary",l],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",u],["partialRight",64],["rearg",256]],g="[object Arguments]",m="[object Array]",y="[object Boolean]",v="[object Date]",b="[object Error]",w="[object Function]",C="[object GeneratorFunction]",A="[object Map]",x="[object Number]",_="[object Object]",E="[object Promise]",T="[object RegExp]",S="[object Set]",I="[object String]",N="[object Symbol]",M="[object WeakMap]",O="[object ArrayBuffer]",L="[object DataView]",B="[object Float32Array]",P="[object Float64Array]",R="[object Int8Array]",D="[object Int16Array]",F="[object Int32Array]",H="[object Uint8Array]",U="[object Uint8ClampedArray]",k="[object Uint16Array]",$="[object Uint32Array]",V=/\b__p \+= '';/g,j=/\b(__p \+=) '' \+/g,q=/(__e\(.*?\)|\b__t\)) \+\n'';/g,G=/&(?:amp|lt|gt|quot|#39);/g,W=/[&<>"']/g,z=RegExp(G.source),Y=RegExp(W.source),K=/<%-([\s\S]+?)%>/g,J=/<%([\s\S]+?)%>/g,Q=/<%=([\s\S]+?)%>/g,X=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Z=/^\w*$/,tt=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,et=/[\\^$.*+?()[\]{}|]/g,nt=RegExp(et.source),rt=/^\s+/,it=/\s/,ot=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,st=/\{\n\/\* \[wrapped with (.+)\] \*/,at=/,? & /,ut=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,lt=/[()=,{}\[\]\/\s]/,ct=/\\(\\)?/g,ht=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,ft=/\w*$/,dt=/^[-+]0x[0-9a-f]+$/i,pt=/^0b[01]+$/i,gt=/^\[object .+?Constructor\]$/,mt=/^0o[0-7]+$/i,yt=/^(?:0|[1-9]\d*)$/,vt=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,bt=/($^)/,wt=/['\n\r\u2028\u2029\\]/g,Ct="\\ud800-\\udfff",At="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",xt="\\u2700-\\u27bf",_t="a-z\\xdf-\\xf6\\xf8-\\xff",Et="A-Z\\xc0-\\xd6\\xd8-\\xde",Tt="\\ufe0e\\ufe0f",St="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",It="["+Ct+"]",Nt="["+St+"]",Mt="["+At+"]",Ot="\\d+",Lt="["+xt+"]",Bt="["+_t+"]",Pt="[^"+Ct+St+Ot+xt+_t+Et+"]",Rt="\\ud83c[\\udffb-\\udfff]",Dt="[^"+Ct+"]",Ft="(?:\\ud83c[\\udde6-\\uddff]){2}",Ht="[\\ud800-\\udbff][\\udc00-\\udfff]",Ut="["+Et+"]",kt="\\u200d",$t="(?:"+Bt+"|"+Pt+")",Vt="(?:"+Ut+"|"+Pt+")",jt="(?:['’](?:d|ll|m|re|s|t|ve))?",qt="(?:['’](?:D|LL|M|RE|S|T|VE))?",Gt="(?:"+Mt+"|"+Rt+")?",Wt="["+Tt+"]?",zt=Wt+Gt+"(?:"+kt+"(?:"+[Dt,Ft,Ht].join("|")+")"+Wt+Gt+")*",Yt="(?:"+[Lt,Ft,Ht].join("|")+")"+zt,Kt="(?:"+[Dt+Mt+"?",Mt,Ft,Ht,It].join("|")+")",Jt=RegExp("['’]","g"),Qt=RegExp(Mt,"g"),Xt=RegExp(Rt+"(?="+Rt+")|"+Kt+zt,"g"),Zt=RegExp([Ut+"?"+Bt+"+"+jt+"(?="+[Nt,Ut,"$"].join("|")+")",Vt+"+"+qt+"(?="+[Nt,Ut+$t,"$"].join("|")+")",Ut+"?"+$t+"+"+jt,Ut+"+"+qt,"\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Ot,Yt].join("|"),"g"),te=RegExp("["+kt+Ct+At+Tt+"]"),ee=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,ne=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],re=-1,ie={};ie[B]=ie[P]=ie[R]=ie[D]=ie[F]=ie[H]=ie[U]=ie[k]=ie[$]=!0,ie[g]=ie[m]=ie[O]=ie[y]=ie[L]=ie[v]=ie[b]=ie[w]=ie[A]=ie[x]=ie[_]=ie[T]=ie[S]=ie[I]=ie[M]=!1;var oe={};oe[g]=oe[m]=oe[O]=oe[L]=oe[y]=oe[v]=oe[B]=oe[P]=oe[R]=oe[D]=oe[F]=oe[A]=oe[x]=oe[_]=oe[T]=oe[S]=oe[I]=oe[N]=oe[H]=oe[U]=oe[k]=oe[$]=!0,oe[b]=oe[w]=oe[M]=!1;var se={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},ae=parseFloat,ue=parseInt,le="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,ce="object"==typeof self&&self&&self.Object===Object&&self,he=le||ce||Function("return this")(),fe=e&&!e.nodeType&&e,de=fe&&t&&!t.nodeType&&t,pe=de&&de.exports===fe,ge=pe&&le.process,me=function(){try{return de&&de.require&&de.require("util").types||ge&&ge.binding&&ge.binding("util")}catch(t){}}(),ye=me&&me.isArrayBuffer,ve=me&&me.isDate,be=me&&me.isMap,we=me&&me.isRegExp,Ce=me&&me.isSet,Ae=me&&me.isTypedArray;function xe(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)}function _e(t,e,n,r){for(var i=-1,o=null==t?0:t.length;++i<o;){var s=t[i];e(r,s,n(s),t)}return r}function Ee(t,e){for(var n=-1,r=null==t?0:t.length;++n<r&&!1!==e(t[n],n,t););return t}function Te(t,e){for(var n=null==t?0:t.length;n--&&!1!==e(t[n],n,t););return t}function Se(t,e){for(var n=-1,r=null==t?0:t.length;++n<r;)if(!e(t[n],n,t))return!1;return!0}function Ie(t,e){for(var n=-1,r=null==t?0:t.length,i=0,o=[];++n<r;){var s=t[n];e(s,n,t)&&(o[i++]=s)}return o}function Ne(t,e){return!(null==t||!t.length)&&Ue(t,e,0)>-1}function Me(t,e,n){for(var r=-1,i=null==t?0:t.length;++r<i;)if(n(e,t[r]))return!0;return!1}function Oe(t,e){for(var n=-1,r=null==t?0:t.length,i=Array(r);++n<r;)i[n]=e(t[n],n,t);return i}function Le(t,e){for(var n=-1,r=e.length,i=t.length;++n<r;)t[i+n]=e[n];return t}function Be(t,e,n,r){var i=-1,o=null==t?0:t.length;for(r&&o&&(n=t[++i]);++i<o;)n=e(n,t[i],i,t);return n}function Pe(t,e,n,r){var i=null==t?0:t.length;for(r&&i&&(n=t[--i]);i--;)n=e(n,t[i],i,t);return n}function Re(t,e){for(var n=-1,r=null==t?0:t.length;++n<r;)if(e(t[n],n,t))return!0;return!1}var De=je("length");function Fe(t,e,n){var r;return n(t,(function(t,n,i){if(e(t,n,i))return r=n,!1})),r}function He(t,e,n,r){for(var i=t.length,o=n+(r?1:-1);r?o--:++o<i;)if(e(t[o],o,t))return o;return-1}function Ue(t,e,n){return e==e?function(t,e,n){for(var r=n-1,i=t.length;++r<i;)if(t[r]===e)return r;return-1}(t,e,n):He(t,$e,n)}function ke(t,e,n,r){for(var i=n-1,o=t.length;++i<o;)if(r(t[i],e))return i;return-1}function $e(t){return t!=t}function Ve(t,e){var n=null==t?0:t.length;return n?We(t,e)/n:f}function je(t){return function(e){return null==e?i:e[t]}}function qe(t){return function(e){return null==t?i:t[e]}}function Ge(t,e,n,r,i){return i(t,(function(t,i,o){n=r?(r=!1,t):e(n,t,i,o)})),n}function We(t,e){for(var n,r=-1,o=t.length;++r<o;){var s=e(t[r]);s!==i&&(n=n===i?s:n+s)}return n}function ze(t,e){for(var n=-1,r=Array(t);++n<t;)r[n]=e(n);return r}function Ye(t){return t?t.slice(0,fn(t)+1).replace(rt,""):t}function Ke(t){return function(e){return t(e)}}function Je(t,e){return Oe(e,(function(e){return t[e]}))}function Qe(t,e){return t.has(e)}function Xe(t,e){for(var n=-1,r=t.length;++n<r&&Ue(e,t[n],0)>-1;);return n}function Ze(t,e){for(var n=t.length;n--&&Ue(e,t[n],0)>-1;);return n}var tn=qe({À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"}),en=qe({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"});function nn(t){return"\\"+se[t]}function rn(t){return te.test(t)}function on(t){var e=-1,n=Array(t.size);return t.forEach((function(t,r){n[++e]=[r,t]})),n}function sn(t,e){return function(n){return t(e(n))}}function an(t,e){for(var n=-1,r=t.length,i=0,o=[];++n<r;){var s=t[n];s!==e&&s!==a||(t[n]=a,o[i++]=n)}return o}function un(t){var e=-1,n=Array(t.size);return t.forEach((function(t){n[++e]=t})),n}function ln(t){var e=-1,n=Array(t.size);return t.forEach((function(t){n[++e]=[t,t]})),n}function cn(t){return rn(t)?function(t){for(var e=Xt.lastIndex=0;Xt.test(t);)++e;return e}(t):De(t)}function hn(t){return rn(t)?function(t){return t.match(Xt)||[]}(t):function(t){return t.split("")}(t)}function fn(t){for(var e=t.length;e--&&it.test(t.charAt(e)););return e}var dn=qe({"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"}),pn=function t(e){var n,r=(e=null==e?he:pn.defaults(he.Object(),e,pn.pick(he,ne))).Array,it=e.Date,Ct=e.Error,At=e.Function,xt=e.Math,_t=e.Object,Et=e.RegExp,Tt=e.String,St=e.TypeError,It=r.prototype,Nt=At.prototype,Mt=_t.prototype,Ot=e["__core-js_shared__"],Lt=Nt.toString,Bt=Mt.hasOwnProperty,Pt=0,Rt=(n=/[^.]+$/.exec(Ot&&Ot.keys&&Ot.keys.IE_PROTO||""))?"Symbol(src)_1."+n:"",Dt=Mt.toString,Ft=Lt.call(_t),Ht=he._,Ut=Et("^"+Lt.call(Bt).replace(et,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),kt=pe?e.Buffer:i,$t=e.Symbol,Vt=e.Uint8Array,jt=kt?kt.allocUnsafe:i,qt=sn(_t.getPrototypeOf,_t),Gt=_t.create,Wt=Mt.propertyIsEnumerable,zt=It.splice,Yt=$t?$t.isConcatSpreadable:i,Kt=$t?$t.iterator:i,Xt=$t?$t.toStringTag:i,te=function(){try{var t=uo(_t,"defineProperty");return t({},"",{}),t}catch(t){}}(),se=e.clearTimeout!==he.clearTimeout&&e.clearTimeout,le=it&&it.now!==he.Date.now&&it.now,ce=e.setTimeout!==he.setTimeout&&e.setTimeout,fe=xt.ceil,de=xt.floor,ge=_t.getOwnPropertySymbols,me=kt?kt.isBuffer:i,De=e.isFinite,qe=It.join,gn=sn(_t.keys,_t),mn=xt.max,yn=xt.min,vn=it.now,bn=e.parseInt,wn=xt.random,Cn=It.reverse,An=uo(e,"DataView"),xn=uo(e,"Map"),_n=uo(e,"Promise"),En=uo(e,"Set"),Tn=uo(e,"WeakMap"),Sn=uo(_t,"create"),In=Tn&&new Tn,Nn={},Mn=Fo(An),On=Fo(xn),Ln=Fo(_n),Bn=Fo(En),Pn=Fo(Tn),Rn=$t?$t.prototype:i,Dn=Rn?Rn.valueOf:i,Fn=Rn?Rn.toString:i;function Hn(t){if(ta(t)&&!js(t)&&!(t instanceof Vn)){if(t instanceof $n)return t;if(Bt.call(t,"__wrapped__"))return Ho(t)}return new $n(t)}var Un=function(){function t(){}return function(e){if(!Zs(e))return{};if(Gt)return Gt(e);t.prototype=e;var n=new t;return t.prototype=i,n}}();function kn(){}function $n(t,e){this.__wrapped__=t,this.__actions__=[],this.__chain__=!!e,this.__index__=0,this.__values__=i}function Vn(t){this.__wrapped__=t,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=d,this.__views__=[]}function jn(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}function qn(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}function Gn(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}function Wn(t){var e=-1,n=null==t?0:t.length;for(this.__data__=new Gn;++e<n;)this.add(t[e])}function zn(t){var e=this.__data__=new qn(t);this.size=e.size}function Yn(t,e){var n=js(t),r=!n&&Vs(t),i=!n&&!r&&zs(t),o=!n&&!r&&!i&&ua(t),s=n||r||i||o,a=s?ze(t.length,Tt):[],u=a.length;for(var l in t)!e&&!Bt.call(t,l)||s&&("length"==l||i&&("offset"==l||"parent"==l)||o&&("buffer"==l||"byteLength"==l||"byteOffset"==l)||mo(l,u))||a.push(l);return a}function Kn(t){var e=t.length;return e?t[Gr(0,e-1)]:i}function Jn(t,e){return Lo(Ti(t),or(e,0,t.length))}function Qn(t){return Lo(Ti(t))}function Xn(t,e,n){(n!==i&&!Us(t[e],n)||n===i&&!(e in t))&&rr(t,e,n)}function Zn(t,e,n){var r=t[e];Bt.call(t,e)&&Us(r,n)&&(n!==i||e in t)||rr(t,e,n)}function tr(t,e){for(var n=t.length;n--;)if(Us(t[n][0],e))return n;return-1}function er(t,e,n,r){return cr(t,(function(t,i,o){e(r,t,n(t),o)})),r}function nr(t,e){return t&&Si(e,Ma(e),t)}function rr(t,e,n){"__proto__"==e&&te?te(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n}function ir(t,e){for(var n=-1,o=e.length,s=r(o),a=null==t;++n<o;)s[n]=a?i:Ea(t,e[n]);return s}function or(t,e,n){return t==t&&(n!==i&&(t=t<=n?t:n),e!==i&&(t=t>=e?t:e)),t}function sr(t,e,n,r,o,s){var a,u=1&e,l=2&e,c=4&e;if(n&&(a=o?n(t,r,o,s):n(t)),a!==i)return a;if(!Zs(t))return t;var h=js(t);if(h){if(a=function(t){var e=t.length,n=new t.constructor(e);return e&&"string"==typeof t[0]&&Bt.call(t,"index")&&(n.index=t.index,n.input=t.input),n}(t),!u)return Ti(t,a)}else{var f=ho(t),d=f==w||f==C;if(zs(t))return wi(t,u);if(f==_||f==g||d&&!o){if(a=l||d?{}:po(t),!u)return l?function(t,e){return Si(t,co(t),e)}(t,function(t,e){return t&&Si(e,Oa(e),t)}(a,t)):function(t,e){return Si(t,lo(t),e)}(t,nr(a,t))}else{if(!oe[f])return o?t:{};a=function(t,e,n){var r,i=t.constructor;switch(e){case O:return Ci(t);case y:case v:return new i(+t);case L:return function(t,e){var n=e?Ci(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.byteLength)}(t,n);case B:case P:case R:case D:case F:case H:case U:case k:case $:return Ai(t,n);case A:return new i;case x:case I:return new i(t);case T:return function(t){var e=new t.constructor(t.source,ft.exec(t));return e.lastIndex=t.lastIndex,e}(t);case S:return new i;case N:return r=t,Dn?_t(Dn.call(r)):{}}}(t,f,u)}}s||(s=new zn);var p=s.get(t);if(p)return p;s.set(t,a),oa(t)?t.forEach((function(r){a.add(sr(r,e,n,r,t,s))})):ea(t)&&t.forEach((function(r,i){a.set(i,sr(r,e,n,i,t,s))}));var m=h?i:(c?l?eo:to:l?Oa:Ma)(t);return Ee(m||t,(function(r,i){m&&(r=t[i=r]),Zn(a,i,sr(r,e,n,i,t,s))})),a}function ar(t,e,n){var r=n.length;if(null==t)return!r;for(t=_t(t);r--;){var o=n[r],s=e[o],a=t[o];if(a===i&&!(o in t)||!s(a))return!1}return!0}function ur(t,e,n){if("function"!=typeof t)throw new St(o);return Io((function(){t.apply(i,n)}),e)}function lr(t,e,n,r){var i=-1,o=Ne,s=!0,a=t.length,u=[],l=e.length;if(!a)return u;n&&(e=Oe(e,Ke(n))),r?(o=Me,s=!1):e.length>=200&&(o=Qe,s=!1,e=new Wn(e));t:for(;++i<a;){var c=t[i],h=null==n?c:n(c);if(c=r||0!==c?c:0,s&&h==h){for(var f=l;f--;)if(e[f]===h)continue t;u.push(c)}else o(e,h,r)||u.push(c)}return u}Hn.templateSettings={escape:K,evaluate:J,interpolate:Q,variable:"",imports:{_:Hn}},Hn.prototype=kn.prototype,Hn.prototype.constructor=Hn,$n.prototype=Un(kn.prototype),$n.prototype.constructor=$n,Vn.prototype=Un(kn.prototype),Vn.prototype.constructor=Vn,jn.prototype.clear=function(){this.__data__=Sn?Sn(null):{},this.size=0},jn.prototype.delete=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e},jn.prototype.get=function(t){var e=this.__data__;if(Sn){var n=e[t];return n===s?i:n}return Bt.call(e,t)?e[t]:i},jn.prototype.has=function(t){var e=this.__data__;return Sn?e[t]!==i:Bt.call(e,t)},jn.prototype.set=function(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=Sn&&e===i?s:e,this},qn.prototype.clear=function(){this.__data__=[],this.size=0},qn.prototype.delete=function(t){var e=this.__data__,n=tr(e,t);return!(n<0||(n==e.length-1?e.pop():zt.call(e,n,1),--this.size,0))},qn.prototype.get=function(t){var e=this.__data__,n=tr(e,t);return n<0?i:e[n][1]},qn.prototype.has=function(t){return tr(this.__data__,t)>-1},qn.prototype.set=function(t,e){var n=this.__data__,r=tr(n,t);return r<0?(++this.size,n.push([t,e])):n[r][1]=e,this},Gn.prototype.clear=function(){this.size=0,this.__data__={hash:new jn,map:new(xn||qn),string:new jn}},Gn.prototype.delete=function(t){var e=so(this,t).delete(t);return this.size-=e?1:0,e},Gn.prototype.get=function(t){return so(this,t).get(t)},Gn.prototype.has=function(t){return so(this,t).has(t)},Gn.prototype.set=function(t,e){var n=so(this,t),r=n.size;return n.set(t,e),this.size+=n.size==r?0:1,this},Wn.prototype.add=Wn.prototype.push=function(t){return this.__data__.set(t,s),this},Wn.prototype.has=function(t){return this.__data__.has(t)},zn.prototype.clear=function(){this.__data__=new qn,this.size=0},zn.prototype.delete=function(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n},zn.prototype.get=function(t){return this.__data__.get(t)},zn.prototype.has=function(t){return this.__data__.has(t)},zn.prototype.set=function(t,e){var n=this.__data__;if(n instanceof qn){var r=n.__data__;if(!xn||r.length<199)return r.push([t,e]),this.size=++n.size,this;n=this.__data__=new Gn(r)}return n.set(t,e),this.size=n.size,this};var cr=Mi(vr),hr=Mi(br,!0);function fr(t,e){var n=!0;return cr(t,(function(t,r,i){return n=!!e(t,r,i)})),n}function dr(t,e,n){for(var r=-1,o=t.length;++r<o;){var s=t[r],a=e(s);if(null!=a&&(u===i?a==a&&!aa(a):n(a,u)))var u=a,l=s}return l}function pr(t,e){var n=[];return cr(t,(function(t,r,i){e(t,r,i)&&n.push(t)})),n}function gr(t,e,n,r,i){var o=-1,s=t.length;for(n||(n=go),i||(i=[]);++o<s;){var a=t[o];e>0&&n(a)?e>1?gr(a,e-1,n,r,i):Le(i,a):r||(i[i.length]=a)}return i}var mr=Oi(),yr=Oi(!0);function vr(t,e){return t&&mr(t,e,Ma)}function br(t,e){return t&&yr(t,e,Ma)}function wr(t,e){return Ie(e,(function(e){return Js(t[e])}))}function Cr(t,e){for(var n=0,r=(e=mi(e,t)).length;null!=t&&n<r;)t=t[Do(e[n++])];return n&&n==r?t:i}function Ar(t,e,n){var r=e(t);return js(t)?r:Le(r,n(t))}function xr(t){return null==t?t===i?"[object Undefined]":"[object Null]":Xt&&Xt in _t(t)?function(t){var e=Bt.call(t,Xt),n=t[Xt];try{t[Xt]=i;var r=!0}catch(t){}var o=Dt.call(t);return r&&(e?t[Xt]=n:delete t[Xt]),o}(t):function(t){return Dt.call(t)}(t)}function _r(t,e){return t>e}function Er(t,e){return null!=t&&Bt.call(t,e)}function Tr(t,e){return null!=t&&e in _t(t)}function Sr(t,e,n){for(var o=n?Me:Ne,s=t[0].length,a=t.length,u=a,l=r(a),c=1/0,h=[];u--;){var f=t[u];u&&e&&(f=Oe(f,Ke(e))),c=yn(f.length,c),l[u]=!n&&(e||s>=120&&f.length>=120)?new Wn(u&&f):i}f=t[0];var d=-1,p=l[0];t:for(;++d<s&&h.length<c;){var g=f[d],m=e?e(g):g;if(g=n||0!==g?g:0,!(p?Qe(p,m):o(h,m,n))){for(u=a;--u;){var y=l[u];if(!(y?Qe(y,m):o(t[u],m,n)))continue t}p&&p.push(m),h.push(g)}}return h}function Ir(t,e,n){var r=null==(t=Eo(t,e=mi(e,t)))?t:t[Do(Ko(e))];return null==r?i:xe(r,t,n)}function Nr(t){return ta(t)&&xr(t)==g}function Mr(t,e,n,r,o){return t===e||(null==t||null==e||!ta(t)&&!ta(e)?t!=t&&e!=e:function(t,e,n,r,o,s){var a=js(t),u=js(e),l=a?m:ho(t),c=u?m:ho(e),h=(l=l==g?_:l)==_,f=(c=c==g?_:c)==_,d=l==c;if(d&&zs(t)){if(!zs(e))return!1;a=!0,h=!1}if(d&&!h)return s||(s=new zn),a||ua(t)?Xi(t,e,n,r,o,s):function(t,e,n,r,i,o,s){switch(n){case L:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case O:return!(t.byteLength!=e.byteLength||!o(new Vt(t),new Vt(e)));case y:case v:case x:return Us(+t,+e);case b:return t.name==e.name&&t.message==e.message;case T:case I:return t==e+"";case A:var a=on;case S:var u=1&r;if(a||(a=un),t.size!=e.size&&!u)return!1;var l=s.get(t);if(l)return l==e;r|=2,s.set(t,e);var c=Xi(a(t),a(e),r,i,o,s);return s.delete(t),c;case N:if(Dn)return Dn.call(t)==Dn.call(e)}return!1}(t,e,l,n,r,o,s);if(!(1&n)){var p=h&&Bt.call(t,"__wrapped__"),w=f&&Bt.call(e,"__wrapped__");if(p||w){var C=p?t.value():t,E=w?e.value():e;return s||(s=new zn),o(C,E,n,r,s)}}return!!d&&(s||(s=new zn),function(t,e,n,r,o,s){var a=1&n,u=to(t),l=u.length;if(l!=to(e).length&&!a)return!1;for(var c=l;c--;){var h=u[c];if(!(a?h in e:Bt.call(e,h)))return!1}var f=s.get(t),d=s.get(e);if(f&&d)return f==e&&d==t;var p=!0;s.set(t,e),s.set(e,t);for(var g=a;++c<l;){var m=t[h=u[c]],y=e[h];if(r)var v=a?r(y,m,h,e,t,s):r(m,y,h,t,e,s);if(!(v===i?m===y||o(m,y,n,r,s):v)){p=!1;break}g||(g="constructor"==h)}if(p&&!g){var b=t.constructor,w=e.constructor;b==w||!("constructor"in t)||!("constructor"in e)||"function"==typeof b&&b instanceof b&&"function"==typeof w&&w instanceof w||(p=!1)}return s.delete(t),s.delete(e),p}(t,e,n,r,o,s))}(t,e,n,r,Mr,o))}function Or(t,e,n,r){var o=n.length,s=o,a=!r;if(null==t)return!s;for(t=_t(t);o--;){var u=n[o];if(a&&u[2]?u[1]!==t[u[0]]:!(u[0]in t))return!1}for(;++o<s;){var l=(u=n[o])[0],c=t[l],h=u[1];if(a&&u[2]){if(c===i&&!(l in t))return!1}else{var f=new zn;if(r)var d=r(c,h,l,t,e,f);if(!(d===i?Mr(h,c,3,r,f):d))return!1}}return!0}function Lr(t){return!(!Zs(t)||(e=t,Rt&&Rt in e))&&(Js(t)?Ut:gt).test(Fo(t));var e}function Br(t){return"function"==typeof t?t:null==t?nu:"object"==typeof t?js(t)?Hr(t[0],t[1]):Fr(t):hu(t)}function Pr(t){if(!Co(t))return gn(t);var e=[];for(var n in _t(t))Bt.call(t,n)&&"constructor"!=n&&e.push(n);return e}function Rr(t,e){return t<e}function Dr(t,e){var n=-1,i=Gs(t)?r(t.length):[];return cr(t,(function(t,r,o){i[++n]=e(t,r,o)})),i}function Fr(t){var e=ao(t);return 1==e.length&&e[0][2]?xo(e[0][0],e[0][1]):function(n){return n===t||Or(n,t,e)}}function Hr(t,e){return vo(t)&&Ao(e)?xo(Do(t),e):function(n){var r=Ea(n,t);return r===i&&r===e?Ta(n,t):Mr(e,r,3)}}function Ur(t,e,n,r,o){t!==e&&mr(e,(function(s,a){if(o||(o=new zn),Zs(s))!function(t,e,n,r,o,s,a){var u=To(t,n),l=To(e,n),c=a.get(l);if(c)Xn(t,n,c);else{var h=s?s(u,l,n+"",t,e,a):i,f=h===i;if(f){var d=js(l),p=!d&&zs(l),g=!d&&!p&&ua(l);h=l,d||p||g?js(u)?h=u:Ws(u)?h=Ti(u):p?(f=!1,h=wi(l,!0)):g?(f=!1,h=Ai(l,!0)):h=[]:ra(l)||Vs(l)?(h=u,Vs(u)?h=ma(u):Zs(u)&&!Js(u)||(h=po(l))):f=!1}f&&(a.set(l,h),o(h,l,r,s,a),a.delete(l)),Xn(t,n,h)}}(t,e,a,n,Ur,r,o);else{var u=r?r(To(t,a),s,a+"",t,e,o):i;u===i&&(u=s),Xn(t,a,u)}}),Oa)}function kr(t,e){var n=t.length;if(n)return mo(e+=e<0?n:0,n)?t[e]:i}function $r(t,e,n){e=e.length?Oe(e,(function(t){return js(t)?function(e){return Cr(e,1===t.length?t[0]:t)}:t})):[nu];var r=-1;e=Oe(e,Ke(oo()));var i=Dr(t,(function(t,n,i){var o=Oe(e,(function(e){return e(t)}));return{criteria:o,index:++r,value:t}}));return function(t){var e=t.length;for(t.sort((function(t,e){return function(t,e,n){for(var r=-1,i=t.criteria,o=e.criteria,s=i.length,a=n.length;++r<s;){var u=xi(i[r],o[r]);if(u)return r>=a?u:u*("desc"==n[r]?-1:1)}return t.index-e.index}(t,e,n)}));e--;)t[e]=t[e].value;return t}(i)}function Vr(t,e,n){for(var r=-1,i=e.length,o={};++r<i;){var s=e[r],a=Cr(t,s);n(a,s)&&Jr(o,mi(s,t),a)}return o}function jr(t,e,n,r){var i=r?ke:Ue,o=-1,s=e.length,a=t;for(t===e&&(e=Ti(e)),n&&(a=Oe(t,Ke(n)));++o<s;)for(var u=0,l=e[o],c=n?n(l):l;(u=i(a,c,u,r))>-1;)a!==t&&zt.call(a,u,1),zt.call(t,u,1);return t}function qr(t,e){for(var n=t?e.length:0,r=n-1;n--;){var i=e[n];if(n==r||i!==o){var o=i;mo(i)?zt.call(t,i,1):ui(t,i)}}return t}function Gr(t,e){return t+de(wn()*(e-t+1))}function Wr(t,e){var n="";if(!t||e<1||e>h)return n;do{e%2&&(n+=t),(e=de(e/2))&&(t+=t)}while(e);return n}function zr(t,e){return No(_o(t,e,nu),t+"")}function Yr(t){return Kn(Ua(t))}function Kr(t,e){var n=Ua(t);return Lo(n,or(e,0,n.length))}function Jr(t,e,n,r){if(!Zs(t))return t;for(var o=-1,s=(e=mi(e,t)).length,a=s-1,u=t;null!=u&&++o<s;){var l=Do(e[o]),c=n;if("__proto__"===l||"constructor"===l||"prototype"===l)return t;if(o!=a){var h=u[l];(c=r?r(h,l,u):i)===i&&(c=Zs(h)?h:mo(e[o+1])?[]:{})}Zn(u,l,c),u=u[l]}return t}var Qr=In?function(t,e){return In.set(t,e),t}:nu,Xr=te?function(t,e){return te(t,"toString",{configurable:!0,enumerable:!1,value:Za(e),writable:!0})}:nu;function Zr(t){return Lo(Ua(t))}function ti(t,e,n){var i=-1,o=t.length;e<0&&(e=-e>o?0:o+e),(n=n>o?o:n)<0&&(n+=o),o=e>n?0:n-e>>>0,e>>>=0;for(var s=r(o);++i<o;)s[i]=t[i+e];return s}function ei(t,e){var n;return cr(t,(function(t,r,i){return!(n=e(t,r,i))})),!!n}function ni(t,e,n){var r=0,i=null==t?r:t.length;if("number"==typeof e&&e==e&&i<=2147483647){for(;r<i;){var o=r+i>>>1,s=t[o];null!==s&&!aa(s)&&(n?s<=e:s<e)?r=o+1:i=o}return i}return ri(t,e,nu,n)}function ri(t,e,n,r){var o=0,s=null==t?0:t.length;if(0===s)return 0;for(var a=(e=n(e))!=e,u=null===e,l=aa(e),c=e===i;o<s;){var h=de((o+s)/2),f=n(t[h]),d=f!==i,p=null===f,g=f==f,m=aa(f);if(a)var y=r||g;else y=c?g&&(r||d):u?g&&d&&(r||!p):l?g&&d&&!p&&(r||!m):!p&&!m&&(r?f<=e:f<e);y?o=h+1:s=h}return yn(s,4294967294)}function ii(t,e){for(var n=-1,r=t.length,i=0,o=[];++n<r;){var s=t[n],a=e?e(s):s;if(!n||!Us(a,u)){var u=a;o[i++]=0===s?0:s}}return o}function oi(t){return"number"==typeof t?t:aa(t)?f:+t}function si(t){if("string"==typeof t)return t;if(js(t))return Oe(t,si)+"";if(aa(t))return Fn?Fn.call(t):"";var e=t+"";return"0"==e&&1/t==-1/0?"-0":e}function ai(t,e,n){var r=-1,i=Ne,o=t.length,s=!0,a=[],u=a;if(n)s=!1,i=Me;else if(o>=200){var l=e?null:Wi(t);if(l)return un(l);s=!1,i=Qe,u=new Wn}else u=e?[]:a;t:for(;++r<o;){var c=t[r],h=e?e(c):c;if(c=n||0!==c?c:0,s&&h==h){for(var f=u.length;f--;)if(u[f]===h)continue t;e&&u.push(h),a.push(c)}else i(u,h,n)||(u!==a&&u.push(h),a.push(c))}return a}function ui(t,e){return null==(t=Eo(t,e=mi(e,t)))||delete t[Do(Ko(e))]}function li(t,e,n,r){return Jr(t,e,n(Cr(t,e)),r)}function ci(t,e,n,r){for(var i=t.length,o=r?i:-1;(r?o--:++o<i)&&e(t[o],o,t););return n?ti(t,r?0:o,r?o+1:i):ti(t,r?o+1:0,r?i:o)}function hi(t,e){var n=t;return n instanceof Vn&&(n=n.value()),Be(e,(function(t,e){return e.func.apply(e.thisArg,Le([t],e.args))}),n)}function fi(t,e,n){var i=t.length;if(i<2)return i?ai(t[0]):[];for(var o=-1,s=r(i);++o<i;)for(var a=t[o],u=-1;++u<i;)u!=o&&(s[o]=lr(s[o]||a,t[u],e,n));return ai(gr(s,1),e,n)}function di(t,e,n){for(var r=-1,o=t.length,s=e.length,a={};++r<o;){var u=r<s?e[r]:i;n(a,t[r],u)}return a}function pi(t){return Ws(t)?t:[]}function gi(t){return"function"==typeof t?t:nu}function mi(t,e){return js(t)?t:vo(t,e)?[t]:Ro(ya(t))}var yi=zr;function vi(t,e,n){var r=t.length;return n=n===i?r:n,!e&&n>=r?t:ti(t,e,n)}var bi=se||function(t){return he.clearTimeout(t)};function wi(t,e){if(e)return t.slice();var n=t.length,r=jt?jt(n):new t.constructor(n);return t.copy(r),r}function Ci(t){var e=new t.constructor(t.byteLength);return new Vt(e).set(new Vt(t)),e}function Ai(t,e){var n=e?Ci(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.length)}function xi(t,e){if(t!==e){var n=t!==i,r=null===t,o=t==t,s=aa(t),a=e!==i,u=null===e,l=e==e,c=aa(e);if(!u&&!c&&!s&&t>e||s&&a&&l&&!u&&!c||r&&a&&l||!n&&l||!o)return 1;if(!r&&!s&&!c&&t<e||c&&n&&o&&!r&&!s||u&&n&&o||!a&&o||!l)return-1}return 0}function _i(t,e,n,i){for(var o=-1,s=t.length,a=n.length,u=-1,l=e.length,c=mn(s-a,0),h=r(l+c),f=!i;++u<l;)h[u]=e[u];for(;++o<a;)(f||o<s)&&(h[n[o]]=t[o]);for(;c--;)h[u++]=t[o++];return h}function Ei(t,e,n,i){for(var o=-1,s=t.length,a=-1,u=n.length,l=-1,c=e.length,h=mn(s-u,0),f=r(h+c),d=!i;++o<h;)f[o]=t[o];for(var p=o;++l<c;)f[p+l]=e[l];for(;++a<u;)(d||o<s)&&(f[p+n[a]]=t[o++]);return f}function Ti(t,e){var n=-1,i=t.length;for(e||(e=r(i));++n<i;)e[n]=t[n];return e}function Si(t,e,n,r){var o=!n;n||(n={});for(var s=-1,a=e.length;++s<a;){var u=e[s],l=r?r(n[u],t[u],u,n,t):i;l===i&&(l=t[u]),o?rr(n,u,l):Zn(n,u,l)}return n}function Ii(t,e){return function(n,r){var i=js(n)?_e:er,o=e?e():{};return i(n,t,oo(r,2),o)}}function Ni(t){return zr((function(e,n){var r=-1,o=n.length,s=o>1?n[o-1]:i,a=o>2?n[2]:i;for(s=t.length>3&&"function"==typeof s?(o--,s):i,a&&yo(n[0],n[1],a)&&(s=o<3?i:s,o=1),e=_t(e);++r<o;){var u=n[r];u&&t(e,u,r,s)}return e}))}function Mi(t,e){return function(n,r){if(null==n)return n;if(!Gs(n))return t(n,r);for(var i=n.length,o=e?i:-1,s=_t(n);(e?o--:++o<i)&&!1!==r(s[o],o,s););return n}}function Oi(t){return function(e,n,r){for(var i=-1,o=_t(e),s=r(e),a=s.length;a--;){var u=s[t?a:++i];if(!1===n(o[u],u,o))break}return e}}function Li(t){return function(e){var n=rn(e=ya(e))?hn(e):i,r=n?n[0]:e.charAt(0),o=n?vi(n,1).join(""):e.slice(1);return r[t]()+o}}function Bi(t){return function(e){return Be(Ja(Va(e).replace(Jt,"")),t,"")}}function Pi(t){return function(){var e=arguments;switch(e.length){case 0:return new t;case 1:return new t(e[0]);case 2:return new t(e[0],e[1]);case 3:return new t(e[0],e[1],e[2]);case 4:return new t(e[0],e[1],e[2],e[3]);case 5:return new t(e[0],e[1],e[2],e[3],e[4]);case 6:return new t(e[0],e[1],e[2],e[3],e[4],e[5]);case 7:return new t(e[0],e[1],e[2],e[3],e[4],e[5],e[6])}var n=Un(t.prototype),r=t.apply(n,e);return Zs(r)?r:n}}function Ri(t){return function(e,n,r){var o=_t(e);if(!Gs(e)){var s=oo(n,3);e=Ma(e),n=function(t){return s(o[t],t,o)}}var a=t(e,n,r);return a>-1?o[s?e[a]:a]:i}}function Di(t){return Zi((function(e){var n=e.length,r=n,s=$n.prototype.thru;for(t&&e.reverse();r--;){var a=e[r];if("function"!=typeof a)throw new St(o);if(s&&!u&&"wrapper"==ro(a))var u=new $n([],!0)}for(r=u?r:n;++r<n;){var l=ro(a=e[r]),c="wrapper"==l?no(a):i;u=c&&bo(c[0])&&424==c[1]&&!c[4].length&&1==c[9]?u[ro(c[0])].apply(u,c[3]):1==a.length&&bo(a)?u[l]():u.thru(a)}return function(){var t=arguments,r=t[0];if(u&&1==t.length&&js(r))return u.plant(r).value();for(var i=0,o=n?e[i].apply(this,t):r;++i<n;)o=e[i].call(this,o);return o}}))}function Fi(t,e,n,o,s,a,u,c,h,f){var d=e&l,p=1&e,g=2&e,m=24&e,y=512&e,v=g?i:Pi(t);return function l(){for(var b=arguments.length,w=r(b),C=b;C--;)w[C]=arguments[C];if(m)var A=io(l),x=function(t,e){for(var n=t.length,r=0;n--;)t[n]===e&&++r;return r}(w,A);if(o&&(w=_i(w,o,s,m)),a&&(w=Ei(w,a,u,m)),b-=x,m&&b<f){var _=an(w,A);return qi(t,e,Fi,l.placeholder,n,w,_,c,h,f-b)}var E=p?n:this,T=g?E[t]:t;return b=w.length,c?w=function(t,e){for(var n=t.length,r=yn(e.length,n),o=Ti(t);r--;){var s=e[r];t[r]=mo(s,n)?o[s]:i}return t}(w,c):y&&b>1&&w.reverse(),d&&h<b&&(w.length=h),this&&this!==he&&this instanceof l&&(T=v||Pi(T)),T.apply(E,w)}}function Hi(t,e){return function(n,r){return function(t,e,n,r){return vr(t,(function(t,i,o){e(r,n(t),i,o)})),r}(n,t,e(r),{})}}function Ui(t,e){return function(n,r){var o;if(n===i&&r===i)return e;if(n!==i&&(o=n),r!==i){if(o===i)return r;"string"==typeof n||"string"==typeof r?(n=si(n),r=si(r)):(n=oi(n),r=oi(r)),o=t(n,r)}return o}}function ki(t){return Zi((function(e){return e=Oe(e,Ke(oo())),zr((function(n){var r=this;return t(e,(function(t){return xe(t,r,n)}))}))}))}function $i(t,e){var n=(e=e===i?" ":si(e)).length;if(n<2)return n?Wr(e,t):e;var r=Wr(e,fe(t/cn(e)));return rn(e)?vi(hn(r),0,t).join(""):r.slice(0,t)}function Vi(t){return function(e,n,o){return o&&"number"!=typeof o&&yo(e,n,o)&&(n=o=i),e=fa(e),n===i?(n=e,e=0):n=fa(n),function(t,e,n,i){for(var o=-1,s=mn(fe((e-t)/(n||1)),0),a=r(s);s--;)a[i?s:++o]=t,t+=n;return a}(e,n,o=o===i?e<n?1:-1:fa(o),t)}}function ji(t){return function(e,n){return"string"==typeof e&&"string"==typeof n||(e=ga(e),n=ga(n)),t(e,n)}}function qi(t,e,n,r,o,s,a,l,c,h){var f=8&e;e|=f?u:64,4&(e&=~(f?64:u))||(e&=-4);var d=[t,e,o,f?s:i,f?a:i,f?i:s,f?i:a,l,c,h],p=n.apply(i,d);return bo(t)&&So(p,d),p.placeholder=r,Mo(p,t,e)}function Gi(t){var e=xt[t];return function(t,n){if(t=ga(t),(n=null==n?0:yn(da(n),292))&&De(t)){var r=(ya(t)+"e").split("e");return+((r=(ya(e(r[0]+"e"+(+r[1]+n)))+"e").split("e"))[0]+"e"+(+r[1]-n))}return e(t)}}var Wi=En&&1/un(new En([,-0]))[1]==c?function(t){return new En(t)}:au;function zi(t){return function(e){var n=ho(e);return n==A?on(e):n==S?ln(e):function(t,e){return Oe(e,(function(e){return[e,t[e]]}))}(e,t(e))}}function Yi(t,e,n,s,c,h,f,d){var p=2&e;if(!p&&"function"!=typeof t)throw new St(o);var g=s?s.length:0;if(g||(e&=-97,s=c=i),f=f===i?f:mn(da(f),0),d=d===i?d:da(d),g-=c?c.length:0,64&e){var m=s,y=c;s=c=i}var v=p?i:no(t),b=[t,e,n,s,c,m,y,h,f,d];if(v&&function(t,e){var n=t[1],r=e[1],i=n|r,o=i<131,s=r==l&&8==n||r==l&&256==n&&t[7].length<=e[8]||384==r&&e[7].length<=e[8]&&8==n;if(!o&&!s)return t;1&r&&(t[2]=e[2],i|=1&n?0:4);var u=e[3];if(u){var c=t[3];t[3]=c?_i(c,u,e[4]):u,t[4]=c?an(t[3],a):e[4]}(u=e[5])&&(c=t[5],t[5]=c?Ei(c,u,e[6]):u,t[6]=c?an(t[5],a):e[6]),(u=e[7])&&(t[7]=u),r&l&&(t[8]=null==t[8]?e[8]:yn(t[8],e[8])),null==t[9]&&(t[9]=e[9]),t[0]=e[0],t[1]=i}(b,v),t=b[0],e=b[1],n=b[2],s=b[3],c=b[4],!(d=b[9]=b[9]===i?p?0:t.length:mn(b[9]-g,0))&&24&e&&(e&=-25),e&&1!=e)w=8==e||16==e?function(t,e,n){var o=Pi(t);return function s(){for(var a=arguments.length,u=r(a),l=a,c=io(s);l--;)u[l]=arguments[l];var h=a<3&&u[0]!==c&&u[a-1]!==c?[]:an(u,c);return(a-=h.length)<n?qi(t,e,Fi,s.placeholder,i,u,h,i,i,n-a):xe(this&&this!==he&&this instanceof s?o:t,this,u)}}(t,e,d):e!=u&&33!=e||c.length?Fi.apply(i,b):function(t,e,n,i){var o=1&e,s=Pi(t);return function e(){for(var a=-1,u=arguments.length,l=-1,c=i.length,h=r(c+u),f=this&&this!==he&&this instanceof e?s:t;++l<c;)h[l]=i[l];for(;u--;)h[l++]=arguments[++a];return xe(f,o?n:this,h)}}(t,e,n,s);else var w=function(t,e,n){var r=1&e,i=Pi(t);return function e(){return(this&&this!==he&&this instanceof e?i:t).apply(r?n:this,arguments)}}(t,e,n);return Mo((v?Qr:So)(w,b),t,e)}function Ki(t,e,n,r){return t===i||Us(t,Mt[n])&&!Bt.call(r,n)?e:t}function Ji(t,e,n,r,o,s){return Zs(t)&&Zs(e)&&(s.set(e,t),Ur(t,e,i,Ji,s),s.delete(e)),t}function Qi(t){return ra(t)?i:t}function Xi(t,e,n,r,o,s){var a=1&n,u=t.length,l=e.length;if(u!=l&&!(a&&l>u))return!1;var c=s.get(t),h=s.get(e);if(c&&h)return c==e&&h==t;var f=-1,d=!0,p=2&n?new Wn:i;for(s.set(t,e),s.set(e,t);++f<u;){var g=t[f],m=e[f];if(r)var y=a?r(m,g,f,e,t,s):r(g,m,f,t,e,s);if(y!==i){if(y)continue;d=!1;break}if(p){if(!Re(e,(function(t,e){if(!Qe(p,e)&&(g===t||o(g,t,n,r,s)))return p.push(e)}))){d=!1;break}}else if(g!==m&&!o(g,m,n,r,s)){d=!1;break}}return s.delete(t),s.delete(e),d}function Zi(t){return No(_o(t,i,qo),t+"")}function to(t){return Ar(t,Ma,lo)}function eo(t){return Ar(t,Oa,co)}var no=In?function(t){return In.get(t)}:au;function ro(t){for(var e=t.name+"",n=Nn[e],r=Bt.call(Nn,e)?n.length:0;r--;){var i=n[r],o=i.func;if(null==o||o==t)return i.name}return e}function io(t){return(Bt.call(Hn,"placeholder")?Hn:t).placeholder}function oo(){var t=Hn.iteratee||ru;return t=t===ru?Br:t,arguments.length?t(arguments[0],arguments[1]):t}function so(t,e){var n,r,i=t.__data__;return("string"==(r=typeof(n=e))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?i["string"==typeof e?"string":"hash"]:i.map}function ao(t){for(var e=Ma(t),n=e.length;n--;){var r=e[n],i=t[r];e[n]=[r,i,Ao(i)]}return e}function uo(t,e){var n=function(t,e){return null==t?i:t[e]}(t,e);return Lr(n)?n:i}var lo=ge?function(t){return null==t?[]:(t=_t(t),Ie(ge(t),(function(e){return Wt.call(t,e)})))}:pu,co=ge?function(t){for(var e=[];t;)Le(e,lo(t)),t=qt(t);return e}:pu,ho=xr;function fo(t,e,n){for(var r=-1,i=(e=mi(e,t)).length,o=!1;++r<i;){var s=Do(e[r]);if(!(o=null!=t&&n(t,s)))break;t=t[s]}return o||++r!=i?o:!!(i=null==t?0:t.length)&&Xs(i)&&mo(s,i)&&(js(t)||Vs(t))}function po(t){return"function"!=typeof t.constructor||Co(t)?{}:Un(qt(t))}function go(t){return js(t)||Vs(t)||!!(Yt&&t&&t[Yt])}function mo(t,e){var n=typeof t;return!!(e=null==e?h:e)&&("number"==n||"symbol"!=n&&yt.test(t))&&t>-1&&t%1==0&&t<e}function yo(t,e,n){if(!Zs(n))return!1;var r=typeof e;return!!("number"==r?Gs(n)&&mo(e,n.length):"string"==r&&e in n)&&Us(n[e],t)}function vo(t,e){if(js(t))return!1;var n=typeof t;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=t&&!aa(t))||Z.test(t)||!X.test(t)||null!=e&&t in _t(e)}function bo(t){var e=ro(t),n=Hn[e];if("function"!=typeof n||!(e in Vn.prototype))return!1;if(t===n)return!0;var r=no(n);return!!r&&t===r[0]}(An&&ho(new An(new ArrayBuffer(1)))!=L||xn&&ho(new xn)!=A||_n&&ho(_n.resolve())!=E||En&&ho(new En)!=S||Tn&&ho(new Tn)!=M)&&(ho=function(t){var e=xr(t),n=e==_?t.constructor:i,r=n?Fo(n):"";if(r)switch(r){case Mn:return L;case On:return A;case Ln:return E;case Bn:return S;case Pn:return M}return e});var wo=Ot?Js:gu;function Co(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||Mt)}function Ao(t){return t==t&&!Zs(t)}function xo(t,e){return function(n){return null!=n&&n[t]===e&&(e!==i||t in _t(n))}}function _o(t,e,n){return e=mn(e===i?t.length-1:e,0),function(){for(var i=arguments,o=-1,s=mn(i.length-e,0),a=r(s);++o<s;)a[o]=i[e+o];o=-1;for(var u=r(e+1);++o<e;)u[o]=i[o];return u[e]=n(a),xe(t,this,u)}}function Eo(t,e){return e.length<2?t:Cr(t,ti(e,0,-1))}function To(t,e){if(("constructor"!==e||"function"!=typeof t[e])&&"__proto__"!=e)return t[e]}var So=Oo(Qr),Io=ce||function(t,e){return he.setTimeout(t,e)},No=Oo(Xr);function Mo(t,e,n){var r=e+"";return No(t,function(t,e){var n=e.length;if(!n)return t;var r=n-1;return e[r]=(n>1?"& ":"")+e[r],e=e.join(n>2?", ":" "),t.replace(ot,"{\n/* [wrapped with "+e+"] */\n")}(r,function(t,e){return Ee(p,(function(n){var r="_."+n[0];e&n[1]&&!Ne(t,r)&&t.push(r)})),t.sort()}(function(t){var e=t.match(st);return e?e[1].split(at):[]}(r),n)))}function Oo(t){var e=0,n=0;return function(){var r=vn(),o=16-(r-n);if(n=r,o>0){if(++e>=800)return arguments[0]}else e=0;return t.apply(i,arguments)}}function Lo(t,e){var n=-1,r=t.length,o=r-1;for(e=e===i?r:e;++n<e;){var s=Gr(n,o),a=t[s];t[s]=t[n],t[n]=a}return t.length=e,t}var Bo,Po,Ro=(Bo=Bs((function(t){var e=[];return 46===t.charCodeAt(0)&&e.push(""),t.replace(tt,(function(t,n,r,i){e.push(r?i.replace(ct,"$1"):n||t)})),e}),(function(t){return 500===Po.size&&Po.clear(),t})),Po=Bo.cache,Bo);function Do(t){if("string"==typeof t||aa(t))return t;var e=t+"";return"0"==e&&1/t==-1/0?"-0":e}function Fo(t){if(null!=t){try{return Lt.call(t)}catch(t){}try{return t+""}catch(t){}}return""}function Ho(t){if(t instanceof Vn)return t.clone();var e=new $n(t.__wrapped__,t.__chain__);return e.__actions__=Ti(t.__actions__),e.__index__=t.__index__,e.__values__=t.__values__,e}var Uo=zr((function(t,e){return Ws(t)?lr(t,gr(e,1,Ws,!0)):[]})),ko=zr((function(t,e){var n=Ko(e);return Ws(n)&&(n=i),Ws(t)?lr(t,gr(e,1,Ws,!0),oo(n,2)):[]})),$o=zr((function(t,e){var n=Ko(e);return Ws(n)&&(n=i),Ws(t)?lr(t,gr(e,1,Ws,!0),i,n):[]}));function Vo(t,e,n){var r=null==t?0:t.length;if(!r)return-1;var i=null==n?0:da(n);return i<0&&(i=mn(r+i,0)),He(t,oo(e,3),i)}function jo(t,e,n){var r=null==t?0:t.length;if(!r)return-1;var o=r-1;return n!==i&&(o=da(n),o=n<0?mn(r+o,0):yn(o,r-1)),He(t,oo(e,3),o,!0)}function qo(t){return null!=t&&t.length?gr(t,1):[]}function Go(t){return t&&t.length?t[0]:i}var Wo=zr((function(t){var e=Oe(t,pi);return e.length&&e[0]===t[0]?Sr(e):[]})),zo=zr((function(t){var e=Ko(t),n=Oe(t,pi);return e===Ko(n)?e=i:n.pop(),n.length&&n[0]===t[0]?Sr(n,oo(e,2)):[]})),Yo=zr((function(t){var e=Ko(t),n=Oe(t,pi);return(e="function"==typeof e?e:i)&&n.pop(),n.length&&n[0]===t[0]?Sr(n,i,e):[]}));function Ko(t){var e=null==t?0:t.length;return e?t[e-1]:i}var Jo=zr(Qo);function Qo(t,e){return t&&t.length&&e&&e.length?jr(t,e):t}var Xo=Zi((function(t,e){var n=null==t?0:t.length,r=ir(t,e);return qr(t,Oe(e,(function(t){return mo(t,n)?+t:t})).sort(xi)),r}));function Zo(t){return null==t?t:Cn.call(t)}var ts=zr((function(t){return ai(gr(t,1,Ws,!0))})),es=zr((function(t){var e=Ko(t);return Ws(e)&&(e=i),ai(gr(t,1,Ws,!0),oo(e,2))})),ns=zr((function(t){var e=Ko(t);return e="function"==typeof e?e:i,ai(gr(t,1,Ws,!0),i,e)}));function rs(t){if(!t||!t.length)return[];var e=0;return t=Ie(t,(function(t){if(Ws(t))return e=mn(t.length,e),!0})),ze(e,(function(e){return Oe(t,je(e))}))}function is(t,e){if(!t||!t.length)return[];var n=rs(t);return null==e?n:Oe(n,(function(t){return xe(e,i,t)}))}var os=zr((function(t,e){return Ws(t)?lr(t,e):[]})),ss=zr((function(t){return fi(Ie(t,Ws))})),as=zr((function(t){var e=Ko(t);return Ws(e)&&(e=i),fi(Ie(t,Ws),oo(e,2))})),us=zr((function(t){var e=Ko(t);return e="function"==typeof e?e:i,fi(Ie(t,Ws),i,e)})),ls=zr(rs),cs=zr((function(t){var e=t.length,n=e>1?t[e-1]:i;return n="function"==typeof n?(t.pop(),n):i,is(t,n)}));function hs(t){var e=Hn(t);return e.__chain__=!0,e}function fs(t,e){return e(t)}var ds=Zi((function(t){var e=t.length,n=e?t[0]:0,r=this.__wrapped__,o=function(e){return ir(e,t)};return!(e>1||this.__actions__.length)&&r instanceof Vn&&mo(n)?((r=r.slice(n,+n+(e?1:0))).__actions__.push({func:fs,args:[o],thisArg:i}),new $n(r,this.__chain__).thru((function(t){return e&&!t.length&&t.push(i),t}))):this.thru(o)})),ps=Ii((function(t,e,n){Bt.call(t,n)?++t[n]:rr(t,n,1)})),gs=Ri(Vo),ms=Ri(jo);function ys(t,e){return(js(t)?Ee:cr)(t,oo(e,3))}function vs(t,e){return(js(t)?Te:hr)(t,oo(e,3))}var bs=Ii((function(t,e,n){Bt.call(t,n)?t[n].push(e):rr(t,n,[e])})),ws=zr((function(t,e,n){var i=-1,o="function"==typeof e,s=Gs(t)?r(t.length):[];return cr(t,(function(t){s[++i]=o?xe(e,t,n):Ir(t,e,n)})),s})),Cs=Ii((function(t,e,n){rr(t,n,e)}));function As(t,e){return(js(t)?Oe:Dr)(t,oo(e,3))}var xs=Ii((function(t,e,n){t[n?0:1].push(e)}),(function(){return[[],[]]})),_s=zr((function(t,e){if(null==t)return[];var n=e.length;return n>1&&yo(t,e[0],e[1])?e=[]:n>2&&yo(e[0],e[1],e[2])&&(e=[e[0]]),$r(t,gr(e,1),[])})),Es=le||function(){return he.Date.now()};function Ts(t,e,n){return e=n?i:e,e=t&&null==e?t.length:e,Yi(t,l,i,i,i,i,e)}function Ss(t,e){var n;if("function"!=typeof e)throw new St(o);return t=da(t),function(){return--t>0&&(n=e.apply(this,arguments)),t<=1&&(e=i),n}}var Is=zr((function(t,e,n){var r=1;if(n.length){var i=an(n,io(Is));r|=u}return Yi(t,r,e,n,i)})),Ns=zr((function(t,e,n){var r=3;if(n.length){var i=an(n,io(Ns));r|=u}return Yi(e,r,t,n,i)}));function Ms(t,e,n){var r,s,a,u,l,c,h=0,f=!1,d=!1,p=!0;if("function"!=typeof t)throw new St(o);function g(e){var n=r,o=s;return r=s=i,h=e,u=t.apply(o,n)}function m(t){var n=t-c;return c===i||n>=e||n<0||d&&t-h>=a}function y(){var t=Es();if(m(t))return v(t);l=Io(y,function(t){var n=e-(t-c);return d?yn(n,a-(t-h)):n}(t))}function v(t){return l=i,p&&r?g(t):(r=s=i,u)}function b(){var t=Es(),n=m(t);if(r=arguments,s=this,c=t,n){if(l===i)return function(t){return h=t,l=Io(y,e),f?g(t):u}(c);if(d)return bi(l),l=Io(y,e),g(c)}return l===i&&(l=Io(y,e)),u}return e=ga(e)||0,Zs(n)&&(f=!!n.leading,a=(d="maxWait"in n)?mn(ga(n.maxWait)||0,e):a,p="trailing"in n?!!n.trailing:p),b.cancel=function(){l!==i&&bi(l),h=0,r=c=s=l=i},b.flush=function(){return l===i?u:v(Es())},b}var Os=zr((function(t,e){return ur(t,1,e)})),Ls=zr((function(t,e,n){return ur(t,ga(e)||0,n)}));function Bs(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new St(o);var n=function(){var r=arguments,i=e?e.apply(this,r):r[0],o=n.cache;if(o.has(i))return o.get(i);var s=t.apply(this,r);return n.cache=o.set(i,s)||o,s};return n.cache=new(Bs.Cache||Gn),n}function Ps(t){if("function"!=typeof t)throw new St(o);return function(){var e=arguments;switch(e.length){case 0:return!t.call(this);case 1:return!t.call(this,e[0]);case 2:return!t.call(this,e[0],e[1]);case 3:return!t.call(this,e[0],e[1],e[2])}return!t.apply(this,e)}}Bs.Cache=Gn;var Rs=yi((function(t,e){var n=(e=1==e.length&&js(e[0])?Oe(e[0],Ke(oo())):Oe(gr(e,1),Ke(oo()))).length;return zr((function(r){for(var i=-1,o=yn(r.length,n);++i<o;)r[i]=e[i].call(this,r[i]);return xe(t,this,r)}))})),Ds=zr((function(t,e){var n=an(e,io(Ds));return Yi(t,u,i,e,n)})),Fs=zr((function(t,e){var n=an(e,io(Fs));return Yi(t,64,i,e,n)})),Hs=Zi((function(t,e){return Yi(t,256,i,i,i,e)}));function Us(t,e){return t===e||t!=t&&e!=e}var ks=ji(_r),$s=ji((function(t,e){return t>=e})),Vs=Nr(function(){return arguments}())?Nr:function(t){return ta(t)&&Bt.call(t,"callee")&&!Wt.call(t,"callee")},js=r.isArray,qs=ye?Ke(ye):function(t){return ta(t)&&xr(t)==O};function Gs(t){return null!=t&&Xs(t.length)&&!Js(t)}function Ws(t){return ta(t)&&Gs(t)}var zs=me||gu,Ys=ve?Ke(ve):function(t){return ta(t)&&xr(t)==v};function Ks(t){if(!ta(t))return!1;var e=xr(t);return e==b||"[object DOMException]"==e||"string"==typeof t.message&&"string"==typeof t.name&&!ra(t)}function Js(t){if(!Zs(t))return!1;var e=xr(t);return e==w||e==C||"[object AsyncFunction]"==e||"[object Proxy]"==e}function Qs(t){return"number"==typeof t&&t==da(t)}function Xs(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=h}function Zs(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}function ta(t){return null!=t&&"object"==typeof t}var ea=be?Ke(be):function(t){return ta(t)&&ho(t)==A};function na(t){return"number"==typeof t||ta(t)&&xr(t)==x}function ra(t){if(!ta(t)||xr(t)!=_)return!1;var e=qt(t);if(null===e)return!0;var n=Bt.call(e,"constructor")&&e.constructor;return"function"==typeof n&&n instanceof n&&Lt.call(n)==Ft}var ia=we?Ke(we):function(t){return ta(t)&&xr(t)==T},oa=Ce?Ke(Ce):function(t){return ta(t)&&ho(t)==S};function sa(t){return"string"==typeof t||!js(t)&&ta(t)&&xr(t)==I}function aa(t){return"symbol"==typeof t||ta(t)&&xr(t)==N}var ua=Ae?Ke(Ae):function(t){return ta(t)&&Xs(t.length)&&!!ie[xr(t)]},la=ji(Rr),ca=ji((function(t,e){return t<=e}));function ha(t){if(!t)return[];if(Gs(t))return sa(t)?hn(t):Ti(t);if(Kt&&t[Kt])return function(t){for(var e,n=[];!(e=t.next()).done;)n.push(e.value);return n}(t[Kt]());var e=ho(t);return(e==A?on:e==S?un:Ua)(t)}function fa(t){return t?(t=ga(t))===c||t===-1/0?17976931348623157e292*(t<0?-1:1):t==t?t:0:0===t?t:0}function da(t){var e=fa(t),n=e%1;return e==e?n?e-n:e:0}function pa(t){return t?or(da(t),0,d):0}function ga(t){if("number"==typeof t)return t;if(aa(t))return f;if(Zs(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=Zs(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=Ye(t);var n=pt.test(t);return n||mt.test(t)?ue(t.slice(2),n?2:8):dt.test(t)?f:+t}function ma(t){return Si(t,Oa(t))}function ya(t){return null==t?"":si(t)}var va=Ni((function(t,e){if(Co(e)||Gs(e))Si(e,Ma(e),t);else for(var n in e)Bt.call(e,n)&&Zn(t,n,e[n])})),ba=Ni((function(t,e){Si(e,Oa(e),t)})),wa=Ni((function(t,e,n,r){Si(e,Oa(e),t,r)})),Ca=Ni((function(t,e,n,r){Si(e,Ma(e),t,r)})),Aa=Zi(ir),xa=zr((function(t,e){t=_t(t);var n=-1,r=e.length,o=r>2?e[2]:i;for(o&&yo(e[0],e[1],o)&&(r=1);++n<r;)for(var s=e[n],a=Oa(s),u=-1,l=a.length;++u<l;){var c=a[u],h=t[c];(h===i||Us(h,Mt[c])&&!Bt.call(t,c))&&(t[c]=s[c])}return t})),_a=zr((function(t){return t.push(i,Ji),xe(Ba,i,t)}));function Ea(t,e,n){var r=null==t?i:Cr(t,e);return r===i?n:r}function Ta(t,e){return null!=t&&fo(t,e,Tr)}var Sa=Hi((function(t,e,n){null!=e&&"function"!=typeof e.toString&&(e=Dt.call(e)),t[e]=n}),Za(nu)),Ia=Hi((function(t,e,n){null!=e&&"function"!=typeof e.toString&&(e=Dt.call(e)),Bt.call(t,e)?t[e].push(n):t[e]=[n]}),oo),Na=zr(Ir);function Ma(t){return Gs(t)?Yn(t):Pr(t)}function Oa(t){return Gs(t)?Yn(t,!0):function(t){if(!Zs(t))return function(t){var e=[];if(null!=t)for(var n in _t(t))e.push(n);return e}(t);var e=Co(t),n=[];for(var r in t)("constructor"!=r||!e&&Bt.call(t,r))&&n.push(r);return n}(t)}var La=Ni((function(t,e,n){Ur(t,e,n)})),Ba=Ni((function(t,e,n,r){Ur(t,e,n,r)})),Pa=Zi((function(t,e){var n={};if(null==t)return n;var r=!1;e=Oe(e,(function(e){return e=mi(e,t),r||(r=e.length>1),e})),Si(t,eo(t),n),r&&(n=sr(n,7,Qi));for(var i=e.length;i--;)ui(n,e[i]);return n})),Ra=Zi((function(t,e){return null==t?{}:function(t,e){return Vr(t,e,(function(e,n){return Ta(t,n)}))}(t,e)}));function Da(t,e){if(null==t)return{};var n=Oe(eo(t),(function(t){return[t]}));return e=oo(e),Vr(t,n,(function(t,n){return e(t,n[0])}))}var Fa=zi(Ma),Ha=zi(Oa);function Ua(t){return null==t?[]:Je(t,Ma(t))}var ka=Bi((function(t,e,n){return e=e.toLowerCase(),t+(n?$a(e):e)}));function $a(t){return Ka(ya(t).toLowerCase())}function Va(t){return(t=ya(t))&&t.replace(vt,tn).replace(Qt,"")}var ja=Bi((function(t,e,n){return t+(n?"-":"")+e.toLowerCase()})),qa=Bi((function(t,e,n){return t+(n?" ":"")+e.toLowerCase()})),Ga=Li("toLowerCase"),Wa=Bi((function(t,e,n){return t+(n?"_":"")+e.toLowerCase()})),za=Bi((function(t,e,n){return t+(n?" ":"")+Ka(e)})),Ya=Bi((function(t,e,n){return t+(n?" ":"")+e.toUpperCase()})),Ka=Li("toUpperCase");function Ja(t,e,n){return t=ya(t),(e=n?i:e)===i?function(t){return ee.test(t)}(t)?function(t){return t.match(Zt)||[]}(t):function(t){return t.match(ut)||[]}(t):t.match(e)||[]}var Qa=zr((function(t,e){try{return xe(t,i,e)}catch(t){return Ks(t)?t:new Ct(t)}})),Xa=Zi((function(t,e){return Ee(e,(function(e){e=Do(e),rr(t,e,Is(t[e],t))})),t}));function Za(t){return function(){return t}}var tu=Di(),eu=Di(!0);function nu(t){return t}function ru(t){return Br("function"==typeof t?t:sr(t,1))}var iu=zr((function(t,e){return function(n){return Ir(n,t,e)}})),ou=zr((function(t,e){return function(n){return Ir(t,n,e)}}));function su(t,e,n){var r=Ma(e),i=wr(e,r);null!=n||Zs(e)&&(i.length||!r.length)||(n=e,e=t,t=this,i=wr(e,Ma(e)));var o=!(Zs(n)&&"chain"in n&&!n.chain),s=Js(t);return Ee(i,(function(n){var r=e[n];t[n]=r,s&&(t.prototype[n]=function(){var e=this.__chain__;if(o||e){var n=t(this.__wrapped__);return(n.__actions__=Ti(this.__actions__)).push({func:r,args:arguments,thisArg:t}),n.__chain__=e,n}return r.apply(t,Le([this.value()],arguments))})})),t}function au(){}var uu=ki(Oe),lu=ki(Se),cu=ki(Re);function hu(t){return vo(t)?je(Do(t)):function(t){return function(e){return Cr(e,t)}}(t)}var fu=Vi(),du=Vi(!0);function pu(){return[]}function gu(){return!1}var mu,yu=Ui((function(t,e){return t+e}),0),vu=Gi("ceil"),bu=Ui((function(t,e){return t/e}),1),wu=Gi("floor"),Cu=Ui((function(t,e){return t*e}),1),Au=Gi("round"),xu=Ui((function(t,e){return t-e}),0);return Hn.after=function(t,e){if("function"!=typeof e)throw new St(o);return t=da(t),function(){if(--t<1)return e.apply(this,arguments)}},Hn.ary=Ts,Hn.assign=va,Hn.assignIn=ba,Hn.assignInWith=wa,Hn.assignWith=Ca,Hn.at=Aa,Hn.before=Ss,Hn.bind=Is,Hn.bindAll=Xa,Hn.bindKey=Ns,Hn.castArray=function(){if(!arguments.length)return[];var t=arguments[0];return js(t)?t:[t]},Hn.chain=hs,Hn.chunk=function(t,e,n){e=(n?yo(t,e,n):e===i)?1:mn(da(e),0);var o=null==t?0:t.length;if(!o||e<1)return[];for(var s=0,a=0,u=r(fe(o/e));s<o;)u[a++]=ti(t,s,s+=e);return u},Hn.compact=function(t){for(var e=-1,n=null==t?0:t.length,r=0,i=[];++e<n;){var o=t[e];o&&(i[r++]=o)}return i},Hn.concat=function(){var t=arguments.length;if(!t)return[];for(var e=r(t-1),n=arguments[0],i=t;i--;)e[i-1]=arguments[i];return Le(js(n)?Ti(n):[n],gr(e,1))},Hn.cond=function(t){var e=null==t?0:t.length,n=oo();return t=e?Oe(t,(function(t){if("function"!=typeof t[1])throw new St(o);return[n(t[0]),t[1]]})):[],zr((function(n){for(var r=-1;++r<e;){var i=t[r];if(xe(i[0],this,n))return xe(i[1],this,n)}}))},Hn.conforms=function(t){return function(t){var e=Ma(t);return function(n){return ar(n,t,e)}}(sr(t,1))},Hn.constant=Za,Hn.countBy=ps,Hn.create=function(t,e){var n=Un(t);return null==e?n:nr(n,e)},Hn.curry=function t(e,n,r){var o=Yi(e,8,i,i,i,i,i,n=r?i:n);return o.placeholder=t.placeholder,o},Hn.curryRight=function t(e,n,r){var o=Yi(e,16,i,i,i,i,i,n=r?i:n);return o.placeholder=t.placeholder,o},Hn.debounce=Ms,Hn.defaults=xa,Hn.defaultsDeep=_a,Hn.defer=Os,Hn.delay=Ls,Hn.difference=Uo,Hn.differenceBy=ko,Hn.differenceWith=$o,Hn.drop=function(t,e,n){var r=null==t?0:t.length;return r?ti(t,(e=n||e===i?1:da(e))<0?0:e,r):[]},Hn.dropRight=function(t,e,n){var r=null==t?0:t.length;return r?ti(t,0,(e=r-(e=n||e===i?1:da(e)))<0?0:e):[]},Hn.dropRightWhile=function(t,e){return t&&t.length?ci(t,oo(e,3),!0,!0):[]},Hn.dropWhile=function(t,e){return t&&t.length?ci(t,oo(e,3),!0):[]},Hn.fill=function(t,e,n,r){var o=null==t?0:t.length;return o?(n&&"number"!=typeof n&&yo(t,e,n)&&(n=0,r=o),function(t,e,n,r){var o=t.length;for((n=da(n))<0&&(n=-n>o?0:o+n),(r=r===i||r>o?o:da(r))<0&&(r+=o),r=n>r?0:pa(r);n<r;)t[n++]=e;return t}(t,e,n,r)):[]},Hn.filter=function(t,e){return(js(t)?Ie:pr)(t,oo(e,3))},Hn.flatMap=function(t,e){return gr(As(t,e),1)},Hn.flatMapDeep=function(t,e){return gr(As(t,e),c)},Hn.flatMapDepth=function(t,e,n){return n=n===i?1:da(n),gr(As(t,e),n)},Hn.flatten=qo,Hn.flattenDeep=function(t){return null!=t&&t.length?gr(t,c):[]},Hn.flattenDepth=function(t,e){return null!=t&&t.length?gr(t,e=e===i?1:da(e)):[]},Hn.flip=function(t){return Yi(t,512)},Hn.flow=tu,Hn.flowRight=eu,Hn.fromPairs=function(t){for(var e=-1,n=null==t?0:t.length,r={};++e<n;){var i=t[e];r[i[0]]=i[1]}return r},Hn.functions=function(t){return null==t?[]:wr(t,Ma(t))},Hn.functionsIn=function(t){return null==t?[]:wr(t,Oa(t))},Hn.groupBy=bs,Hn.initial=function(t){return null!=t&&t.length?ti(t,0,-1):[]},Hn.intersection=Wo,Hn.intersectionBy=zo,Hn.intersectionWith=Yo,Hn.invert=Sa,Hn.invertBy=Ia,Hn.invokeMap=ws,Hn.iteratee=ru,Hn.keyBy=Cs,Hn.keys=Ma,Hn.keysIn=Oa,Hn.map=As,Hn.mapKeys=function(t,e){var n={};return e=oo(e,3),vr(t,(function(t,r,i){rr(n,e(t,r,i),t)})),n},Hn.mapValues=function(t,e){var n={};return e=oo(e,3),vr(t,(function(t,r,i){rr(n,r,e(t,r,i))})),n},Hn.matches=function(t){return Fr(sr(t,1))},Hn.matchesProperty=function(t,e){return Hr(t,sr(e,1))},Hn.memoize=Bs,Hn.merge=La,Hn.mergeWith=Ba,Hn.method=iu,Hn.methodOf=ou,Hn.mixin=su,Hn.negate=Ps,Hn.nthArg=function(t){return t=da(t),zr((function(e){return kr(e,t)}))},Hn.omit=Pa,Hn.omitBy=function(t,e){return Da(t,Ps(oo(e)))},Hn.once=function(t){return Ss(2,t)},Hn.orderBy=function(t,e,n,r){return null==t?[]:(js(e)||(e=null==e?[]:[e]),js(n=r?i:n)||(n=null==n?[]:[n]),$r(t,e,n))},Hn.over=uu,Hn.overArgs=Rs,Hn.overEvery=lu,Hn.overSome=cu,Hn.partial=Ds,Hn.partialRight=Fs,Hn.partition=xs,Hn.pick=Ra,Hn.pickBy=Da,Hn.property=hu,Hn.propertyOf=function(t){return function(e){return null==t?i:Cr(t,e)}},Hn.pull=Jo,Hn.pullAll=Qo,Hn.pullAllBy=function(t,e,n){return t&&t.length&&e&&e.length?jr(t,e,oo(n,2)):t},Hn.pullAllWith=function(t,e,n){return t&&t.length&&e&&e.length?jr(t,e,i,n):t},Hn.pullAt=Xo,Hn.range=fu,Hn.rangeRight=du,Hn.rearg=Hs,Hn.reject=function(t,e){return(js(t)?Ie:pr)(t,Ps(oo(e,3)))},Hn.remove=function(t,e){var n=[];if(!t||!t.length)return n;var r=-1,i=[],o=t.length;for(e=oo(e,3);++r<o;){var s=t[r];e(s,r,t)&&(n.push(s),i.push(r))}return qr(t,i),n},Hn.rest=function(t,e){if("function"!=typeof t)throw new St(o);return zr(t,e=e===i?e:da(e))},Hn.reverse=Zo,Hn.sampleSize=function(t,e,n){return e=(n?yo(t,e,n):e===i)?1:da(e),(js(t)?Jn:Kr)(t,e)},Hn.set=function(t,e,n){return null==t?t:Jr(t,e,n)},Hn.setWith=function(t,e,n,r){return r="function"==typeof r?r:i,null==t?t:Jr(t,e,n,r)},Hn.shuffle=function(t){return(js(t)?Qn:Zr)(t)},Hn.slice=function(t,e,n){var r=null==t?0:t.length;return r?(n&&"number"!=typeof n&&yo(t,e,n)?(e=0,n=r):(e=null==e?0:da(e),n=n===i?r:da(n)),ti(t,e,n)):[]},Hn.sortBy=_s,Hn.sortedUniq=function(t){return t&&t.length?ii(t):[]},Hn.sortedUniqBy=function(t,e){return t&&t.length?ii(t,oo(e,2)):[]},Hn.split=function(t,e,n){return n&&"number"!=typeof n&&yo(t,e,n)&&(e=n=i),(n=n===i?d:n>>>0)?(t=ya(t))&&("string"==typeof e||null!=e&&!ia(e))&&!(e=si(e))&&rn(t)?vi(hn(t),0,n):t.split(e,n):[]},Hn.spread=function(t,e){if("function"!=typeof t)throw new St(o);return e=null==e?0:mn(da(e),0),zr((function(n){var r=n[e],i=vi(n,0,e);return r&&Le(i,r),xe(t,this,i)}))},Hn.tail=function(t){var e=null==t?0:t.length;return e?ti(t,1,e):[]},Hn.take=function(t,e,n){return t&&t.length?ti(t,0,(e=n||e===i?1:da(e))<0?0:e):[]},Hn.takeRight=function(t,e,n){var r=null==t?0:t.length;return r?ti(t,(e=r-(e=n||e===i?1:da(e)))<0?0:e,r):[]},Hn.takeRightWhile=function(t,e){return t&&t.length?ci(t,oo(e,3),!1,!0):[]},Hn.takeWhile=function(t,e){return t&&t.length?ci(t,oo(e,3)):[]},Hn.tap=function(t,e){return e(t),t},Hn.throttle=function(t,e,n){var r=!0,i=!0;if("function"!=typeof t)throw new St(o);return Zs(n)&&(r="leading"in n?!!n.leading:r,i="trailing"in n?!!n.trailing:i),Ms(t,e,{leading:r,maxWait:e,trailing:i})},Hn.thru=fs,Hn.toArray=ha,Hn.toPairs=Fa,Hn.toPairsIn=Ha,Hn.toPath=function(t){return js(t)?Oe(t,Do):aa(t)?[t]:Ti(Ro(ya(t)))},Hn.toPlainObject=ma,Hn.transform=function(t,e,n){var r=js(t),i=r||zs(t)||ua(t);if(e=oo(e,4),null==n){var o=t&&t.constructor;n=i?r?new o:[]:Zs(t)&&Js(o)?Un(qt(t)):{}}return(i?Ee:vr)(t,(function(t,r,i){return e(n,t,r,i)})),n},Hn.unary=function(t){return Ts(t,1)},Hn.union=ts,Hn.unionBy=es,Hn.unionWith=ns,Hn.uniq=function(t){return t&&t.length?ai(t):[]},Hn.uniqBy=function(t,e){return t&&t.length?ai(t,oo(e,2)):[]},Hn.uniqWith=function(t,e){return e="function"==typeof e?e:i,t&&t.length?ai(t,i,e):[]},Hn.unset=function(t,e){return null==t||ui(t,e)},Hn.unzip=rs,Hn.unzipWith=is,Hn.update=function(t,e,n){return null==t?t:li(t,e,gi(n))},Hn.updateWith=function(t,e,n,r){return r="function"==typeof r?r:i,null==t?t:li(t,e,gi(n),r)},Hn.values=Ua,Hn.valuesIn=function(t){return null==t?[]:Je(t,Oa(t))},Hn.without=os,Hn.words=Ja,Hn.wrap=function(t,e){return Ds(gi(e),t)},Hn.xor=ss,Hn.xorBy=as,Hn.xorWith=us,Hn.zip=ls,Hn.zipObject=function(t,e){return di(t||[],e||[],Zn)},Hn.zipObjectDeep=function(t,e){return di(t||[],e||[],Jr)},Hn.zipWith=cs,Hn.entries=Fa,Hn.entriesIn=Ha,Hn.extend=ba,Hn.extendWith=wa,su(Hn,Hn),Hn.add=yu,Hn.attempt=Qa,Hn.camelCase=ka,Hn.capitalize=$a,Hn.ceil=vu,Hn.clamp=function(t,e,n){return n===i&&(n=e,e=i),n!==i&&(n=(n=ga(n))==n?n:0),e!==i&&(e=(e=ga(e))==e?e:0),or(ga(t),e,n)},Hn.clone=function(t){return sr(t,4)},Hn.cloneDeep=function(t){return sr(t,5)},Hn.cloneDeepWith=function(t,e){return sr(t,5,e="function"==typeof e?e:i)},Hn.cloneWith=function(t,e){return sr(t,4,e="function"==typeof e?e:i)},Hn.conformsTo=function(t,e){return null==e||ar(t,e,Ma(e))},Hn.deburr=Va,Hn.defaultTo=function(t,e){return null==t||t!=t?e:t},Hn.divide=bu,Hn.endsWith=function(t,e,n){t=ya(t),e=si(e);var r=t.length,o=n=n===i?r:or(da(n),0,r);return(n-=e.length)>=0&&t.slice(n,o)==e},Hn.eq=Us,Hn.escape=function(t){return(t=ya(t))&&Y.test(t)?t.replace(W,en):t},Hn.escapeRegExp=function(t){return(t=ya(t))&&nt.test(t)?t.replace(et,"\\$&"):t},Hn.every=function(t,e,n){var r=js(t)?Se:fr;return n&&yo(t,e,n)&&(e=i),r(t,oo(e,3))},Hn.find=gs,Hn.findIndex=Vo,Hn.findKey=function(t,e){return Fe(t,oo(e,3),vr)},Hn.findLast=ms,Hn.findLastIndex=jo,Hn.findLastKey=function(t,e){return Fe(t,oo(e,3),br)},Hn.floor=wu,Hn.forEach=ys,Hn.forEachRight=vs,Hn.forIn=function(t,e){return null==t?t:mr(t,oo(e,3),Oa)},Hn.forInRight=function(t,e){return null==t?t:yr(t,oo(e,3),Oa)},Hn.forOwn=function(t,e){return t&&vr(t,oo(e,3))},Hn.forOwnRight=function(t,e){return t&&br(t,oo(e,3))},Hn.get=Ea,Hn.gt=ks,Hn.gte=$s,Hn.has=function(t,e){return null!=t&&fo(t,e,Er)},Hn.hasIn=Ta,Hn.head=Go,Hn.identity=nu,Hn.includes=function(t,e,n,r){t=Gs(t)?t:Ua(t),n=n&&!r?da(n):0;var i=t.length;return n<0&&(n=mn(i+n,0)),sa(t)?n<=i&&t.indexOf(e,n)>-1:!!i&&Ue(t,e,n)>-1},Hn.indexOf=function(t,e,n){var r=null==t?0:t.length;if(!r)return-1;var i=null==n?0:da(n);return i<0&&(i=mn(r+i,0)),Ue(t,e,i)},Hn.inRange=function(t,e,n){return e=fa(e),n===i?(n=e,e=0):n=fa(n),function(t,e,n){return t>=yn(e,n)&&t<mn(e,n)}(t=ga(t),e,n)},Hn.invoke=Na,Hn.isArguments=Vs,Hn.isArray=js,Hn.isArrayBuffer=qs,Hn.isArrayLike=Gs,Hn.isArrayLikeObject=Ws,Hn.isBoolean=function(t){return!0===t||!1===t||ta(t)&&xr(t)==y},Hn.isBuffer=zs,Hn.isDate=Ys,Hn.isElement=function(t){return ta(t)&&1===t.nodeType&&!ra(t)},Hn.isEmpty=function(t){if(null==t)return!0;if(Gs(t)&&(js(t)||"string"==typeof t||"function"==typeof t.splice||zs(t)||ua(t)||Vs(t)))return!t.length;var e=ho(t);if(e==A||e==S)return!t.size;if(Co(t))return!Pr(t).length;for(var n in t)if(Bt.call(t,n))return!1;return!0},Hn.isEqual=function(t,e){return Mr(t,e)},Hn.isEqualWith=function(t,e,n){var r=(n="function"==typeof n?n:i)?n(t,e):i;return r===i?Mr(t,e,i,n):!!r},Hn.isError=Ks,Hn.isFinite=function(t){return"number"==typeof t&&De(t)},Hn.isFunction=Js,Hn.isInteger=Qs,Hn.isLength=Xs,Hn.isMap=ea,Hn.isMatch=function(t,e){return t===e||Or(t,e,ao(e))},Hn.isMatchWith=function(t,e,n){return n="function"==typeof n?n:i,Or(t,e,ao(e),n)},Hn.isNaN=function(t){return na(t)&&t!=+t},Hn.isNative=function(t){if(wo(t))throw new Ct("Unsupported core-js use. Try https://npms.io/search?q=ponyfill.");return Lr(t)},Hn.isNil=function(t){return null==t},Hn.isNull=function(t){return null===t},Hn.isNumber=na,Hn.isObject=Zs,Hn.isObjectLike=ta,Hn.isPlainObject=ra,Hn.isRegExp=ia,Hn.isSafeInteger=function(t){return Qs(t)&&t>=-9007199254740991&&t<=h},Hn.isSet=oa,Hn.isString=sa,Hn.isSymbol=aa,Hn.isTypedArray=ua,Hn.isUndefined=function(t){return t===i},Hn.isWeakMap=function(t){return ta(t)&&ho(t)==M},Hn.isWeakSet=function(t){return ta(t)&&"[object WeakSet]"==xr(t)},Hn.join=function(t,e){return null==t?"":qe.call(t,e)},Hn.kebabCase=ja,Hn.last=Ko,Hn.lastIndexOf=function(t,e,n){var r=null==t?0:t.length;if(!r)return-1;var o=r;return n!==i&&(o=(o=da(n))<0?mn(r+o,0):yn(o,r-1)),e==e?function(t,e,n){for(var r=n+1;r--;)if(t[r]===e)return r;return r}(t,e,o):He(t,$e,o,!0)},Hn.lowerCase=qa,Hn.lowerFirst=Ga,Hn.lt=la,Hn.lte=ca,Hn.max=function(t){return t&&t.length?dr(t,nu,_r):i},Hn.maxBy=function(t,e){return t&&t.length?dr(t,oo(e,2),_r):i},Hn.mean=function(t){return Ve(t,nu)},Hn.meanBy=function(t,e){return Ve(t,oo(e,2))},Hn.min=function(t){return t&&t.length?dr(t,nu,Rr):i},Hn.minBy=function(t,e){return t&&t.length?dr(t,oo(e,2),Rr):i},Hn.stubArray=pu,Hn.stubFalse=gu,Hn.stubObject=function(){return{}},Hn.stubString=function(){return""},Hn.stubTrue=function(){return!0},Hn.multiply=Cu,Hn.nth=function(t,e){return t&&t.length?kr(t,da(e)):i},Hn.noConflict=function(){return he._===this&&(he._=Ht),this},Hn.noop=au,Hn.now=Es,Hn.pad=function(t,e,n){t=ya(t);var r=(e=da(e))?cn(t):0;if(!e||r>=e)return t;var i=(e-r)/2;return $i(de(i),n)+t+$i(fe(i),n)},Hn.padEnd=function(t,e,n){t=ya(t);var r=(e=da(e))?cn(t):0;return e&&r<e?t+$i(e-r,n):t},Hn.padStart=function(t,e,n){t=ya(t);var r=(e=da(e))?cn(t):0;return e&&r<e?$i(e-r,n)+t:t},Hn.parseInt=function(t,e,n){return n||null==e?e=0:e&&(e=+e),bn(ya(t).replace(rt,""),e||0)},Hn.random=function(t,e,n){if(n&&"boolean"!=typeof n&&yo(t,e,n)&&(e=n=i),n===i&&("boolean"==typeof e?(n=e,e=i):"boolean"==typeof t&&(n=t,t=i)),t===i&&e===i?(t=0,e=1):(t=fa(t),e===i?(e=t,t=0):e=fa(e)),t>e){var r=t;t=e,e=r}if(n||t%1||e%1){var o=wn();return yn(t+o*(e-t+ae("1e-"+((o+"").length-1))),e)}return Gr(t,e)},Hn.reduce=function(t,e,n){var r=js(t)?Be:Ge,i=arguments.length<3;return r(t,oo(e,4),n,i,cr)},Hn.reduceRight=function(t,e,n){var r=js(t)?Pe:Ge,i=arguments.length<3;return r(t,oo(e,4),n,i,hr)},Hn.repeat=function(t,e,n){return e=(n?yo(t,e,n):e===i)?1:da(e),Wr(ya(t),e)},Hn.replace=function(){var t=arguments,e=ya(t[0]);return t.length<3?e:e.replace(t[1],t[2])},Hn.result=function(t,e,n){var r=-1,o=(e=mi(e,t)).length;for(o||(o=1,t=i);++r<o;){var s=null==t?i:t[Do(e[r])];s===i&&(r=o,s=n),t=Js(s)?s.call(t):s}return t},Hn.round=Au,Hn.runInContext=t,Hn.sample=function(t){return(js(t)?Kn:Yr)(t)},Hn.size=function(t){if(null==t)return 0;if(Gs(t))return sa(t)?cn(t):t.length;var e=ho(t);return e==A||e==S?t.size:Pr(t).length},Hn.snakeCase=Wa,Hn.some=function(t,e,n){var r=js(t)?Re:ei;return n&&yo(t,e,n)&&(e=i),r(t,oo(e,3))},Hn.sortedIndex=function(t,e){return ni(t,e)},Hn.sortedIndexBy=function(t,e,n){return ri(t,e,oo(n,2))},Hn.sortedIndexOf=function(t,e){var n=null==t?0:t.length;if(n){var r=ni(t,e);if(r<n&&Us(t[r],e))return r}return-1},Hn.sortedLastIndex=function(t,e){return ni(t,e,!0)},Hn.sortedLastIndexBy=function(t,e,n){return ri(t,e,oo(n,2),!0)},Hn.sortedLastIndexOf=function(t,e){if(null!=t&&t.length){var n=ni(t,e,!0)-1;if(Us(t[n],e))return n}return-1},Hn.startCase=za,Hn.startsWith=function(t,e,n){return t=ya(t),n=null==n?0:or(da(n),0,t.length),e=si(e),t.slice(n,n+e.length)==e},Hn.subtract=xu,Hn.sum=function(t){return t&&t.length?We(t,nu):0},Hn.sumBy=function(t,e){return t&&t.length?We(t,oo(e,2)):0},Hn.template=function(t,e,n){var r=Hn.templateSettings;n&&yo(t,e,n)&&(e=i),t=ya(t),e=wa({},e,r,Ki);var o,s,a=wa({},e.imports,r.imports,Ki),u=Ma(a),l=Je(a,u),c=0,h=e.interpolate||bt,f="__p += '",d=Et((e.escape||bt).source+"|"+h.source+"|"+(h===Q?ht:bt).source+"|"+(e.evaluate||bt).source+"|$","g"),p="//# sourceURL="+(Bt.call(e,"sourceURL")?(e.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++re+"]")+"\n";t.replace(d,(function(e,n,r,i,a,u){return r||(r=i),f+=t.slice(c,u).replace(wt,nn),n&&(o=!0,f+="' +\n__e("+n+") +\n'"),a&&(s=!0,f+="';\n"+a+";\n__p += '"),r&&(f+="' +\n((__t = ("+r+")) == null ? '' : __t) +\n'"),c=u+e.length,e})),f+="';\n";var g=Bt.call(e,"variable")&&e.variable;if(g){if(lt.test(g))throw new Ct("Invalid `variable` option passed into `_.template`")}else f="with (obj) {\n"+f+"\n}\n";f=(s?f.replace(V,""):f).replace(j,"$1").replace(q,"$1;"),f="function("+(g||"obj")+") {\n"+(g?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(o?", __e = _.escape":"")+(s?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+f+"return __p\n}";var m=Qa((function(){return At(u,p+"return "+f).apply(i,l)}));if(m.source=f,Ks(m))throw m;return m},Hn.times=function(t,e){if((t=da(t))<1||t>h)return[];var n=d,r=yn(t,d);e=oo(e),t-=d;for(var i=ze(r,e);++n<t;)e(n);return i},Hn.toFinite=fa,Hn.toInteger=da,Hn.toLength=pa,Hn.toLower=function(t){return ya(t).toLowerCase()},Hn.toNumber=ga,Hn.toSafeInteger=function(t){return t?or(da(t),-9007199254740991,h):0===t?t:0},Hn.toString=ya,Hn.toUpper=function(t){return ya(t).toUpperCase()},Hn.trim=function(t,e,n){if((t=ya(t))&&(n||e===i))return Ye(t);if(!t||!(e=si(e)))return t;var r=hn(t),o=hn(e);return vi(r,Xe(r,o),Ze(r,o)+1).join("")},Hn.trimEnd=function(t,e,n){if((t=ya(t))&&(n||e===i))return t.slice(0,fn(t)+1);if(!t||!(e=si(e)))return t;var r=hn(t);return vi(r,0,Ze(r,hn(e))+1).join("")},Hn.trimStart=function(t,e,n){if((t=ya(t))&&(n||e===i))return t.replace(rt,"");if(!t||!(e=si(e)))return t;var r=hn(t);return vi(r,Xe(r,hn(e))).join("")},Hn.truncate=function(t,e){var n=30,r="...";if(Zs(e)){var o="separator"in e?e.separator:o;n="length"in e?da(e.length):n,r="omission"in e?si(e.omission):r}var s=(t=ya(t)).length;if(rn(t)){var a=hn(t);s=a.length}if(n>=s)return t;var u=n-cn(r);if(u<1)return r;var l=a?vi(a,0,u).join(""):t.slice(0,u);if(o===i)return l+r;if(a&&(u+=l.length-u),ia(o)){if(t.slice(u).search(o)){var c,h=l;for(o.global||(o=Et(o.source,ya(ft.exec(o))+"g")),o.lastIndex=0;c=o.exec(h);)var f=c.index;l=l.slice(0,f===i?u:f)}}else if(t.indexOf(si(o),u)!=u){var d=l.lastIndexOf(o);d>-1&&(l=l.slice(0,d))}return l+r},Hn.unescape=function(t){return(t=ya(t))&&z.test(t)?t.replace(G,dn):t},Hn.uniqueId=function(t){var e=++Pt;return ya(t)+e},Hn.upperCase=Ya,Hn.upperFirst=Ka,Hn.each=ys,Hn.eachRight=vs,Hn.first=Go,su(Hn,(mu={},vr(Hn,(function(t,e){Bt.call(Hn.prototype,e)||(mu[e]=t)})),mu),{chain:!1}),Hn.VERSION="4.17.21",Ee(["bind","bindKey","curry","curryRight","partial","partialRight"],(function(t){Hn[t].placeholder=Hn})),Ee(["drop","take"],(function(t,e){Vn.prototype[t]=function(n){n=n===i?1:mn(da(n),0);var r=this.__filtered__&&!e?new Vn(this):this.clone();return r.__filtered__?r.__takeCount__=yn(n,r.__takeCount__):r.__views__.push({size:yn(n,d),type:t+(r.__dir__<0?"Right":"")}),r},Vn.prototype[t+"Right"]=function(e){return this.reverse()[t](e).reverse()}})),Ee(["filter","map","takeWhile"],(function(t,e){var n=e+1,r=1==n||3==n;Vn.prototype[t]=function(t){var e=this.clone();return e.__iteratees__.push({iteratee:oo(t,3),type:n}),e.__filtered__=e.__filtered__||r,e}})),Ee(["head","last"],(function(t,e){var n="take"+(e?"Right":"");Vn.prototype[t]=function(){return this[n](1).value()[0]}})),Ee(["initial","tail"],(function(t,e){var n="drop"+(e?"":"Right");Vn.prototype[t]=function(){return this.__filtered__?new Vn(this):this[n](1)}})),Vn.prototype.compact=function(){return this.filter(nu)},Vn.prototype.find=function(t){return this.filter(t).head()},Vn.prototype.findLast=function(t){return this.reverse().find(t)},Vn.prototype.invokeMap=zr((function(t,e){return"function"==typeof t?new Vn(this):this.map((function(n){return Ir(n,t,e)}))})),Vn.prototype.reject=function(t){return this.filter(Ps(oo(t)))},Vn.prototype.slice=function(t,e){t=da(t);var n=this;return n.__filtered__&&(t>0||e<0)?new Vn(n):(t<0?n=n.takeRight(-t):t&&(n=n.drop(t)),e!==i&&(n=(e=da(e))<0?n.dropRight(-e):n.take(e-t)),n)},Vn.prototype.takeRightWhile=function(t){return this.reverse().takeWhile(t).reverse()},Vn.prototype.toArray=function(){return this.take(d)},vr(Vn.prototype,(function(t,e){var n=/^(?:filter|find|map|reject)|While$/.test(e),r=/^(?:head|last)$/.test(e),o=Hn[r?"take"+("last"==e?"Right":""):e],s=r||/^find/.test(e);o&&(Hn.prototype[e]=function(){var e=this.__wrapped__,a=r?[1]:arguments,u=e instanceof Vn,l=a[0],c=u||js(e),h=function(t){var e=o.apply(Hn,Le([t],a));return r&&f?e[0]:e};c&&n&&"function"==typeof l&&1!=l.length&&(u=c=!1);var f=this.__chain__,d=!!this.__actions__.length,p=s&&!f,g=u&&!d;if(!s&&c){e=g?e:new Vn(this);var m=t.apply(e,a);return m.__actions__.push({func:fs,args:[h],thisArg:i}),new $n(m,f)}return p&&g?t.apply(this,a):(m=this.thru(h),p?r?m.value()[0]:m.value():m)})})),Ee(["pop","push","shift","sort","splice","unshift"],(function(t){var e=It[t],n=/^(?:push|sort|unshift)$/.test(t)?"tap":"thru",r=/^(?:pop|shift)$/.test(t);Hn.prototype[t]=function(){var t=arguments;if(r&&!this.__chain__){var i=this.value();return e.apply(js(i)?i:[],t)}return this[n]((function(n){return e.apply(js(n)?n:[],t)}))}})),vr(Vn.prototype,(function(t,e){var n=Hn[e];if(n){var r=n.name+"";Bt.call(Nn,r)||(Nn[r]=[]),Nn[r].push({name:e,func:n})}})),Nn[Fi(i,2).name]=[{name:"wrapper",func:i}],Vn.prototype.clone=function(){var t=new Vn(this.__wrapped__);return t.__actions__=Ti(this.__actions__),t.__dir__=this.__dir__,t.__filtered__=this.__filtered__,t.__iteratees__=Ti(this.__iteratees__),t.__takeCount__=this.__takeCount__,t.__views__=Ti(this.__views__),t},Vn.prototype.reverse=function(){if(this.__filtered__){var t=new Vn(this);t.__dir__=-1,t.__filtered__=!0}else(t=this.clone()).__dir__*=-1;return t},Vn.prototype.value=function(){var t=this.__wrapped__.value(),e=this.__dir__,n=js(t),r=e<0,i=n?t.length:0,o=function(t,e,n){for(var r=-1,i=n.length;++r<i;){var o=n[r],s=o.size;switch(o.type){case"drop":t+=s;break;case"dropRight":e-=s;break;case"take":e=yn(e,t+s);break;case"takeRight":t=mn(t,e-s)}}return{start:t,end:e}}(0,i,this.__views__),s=o.start,a=o.end,u=a-s,l=r?a:s-1,c=this.__iteratees__,h=c.length,f=0,d=yn(u,this.__takeCount__);if(!n||!r&&i==u&&d==u)return hi(t,this.__actions__);var p=[];t:for(;u--&&f<d;){for(var g=-1,m=t[l+=e];++g<h;){var y=c[g],v=y.iteratee,b=y.type,w=v(m);if(2==b)m=w;else if(!w){if(1==b)continue t;break t}}p[f++]=m}return p},Hn.prototype.at=ds,Hn.prototype.chain=function(){return hs(this)},Hn.prototype.commit=function(){return new $n(this.value(),this.__chain__)},Hn.prototype.next=function(){this.__values__===i&&(this.__values__=ha(this.value()));var t=this.__index__>=this.__values__.length;return{done:t,value:t?i:this.__values__[this.__index__++]}},Hn.prototype.plant=function(t){for(var e,n=this;n instanceof kn;){var r=Ho(n);r.__index__=0,r.__values__=i,e?o.__wrapped__=r:e=r;var o=r;n=n.__wrapped__}return o.__wrapped__=t,e},Hn.prototype.reverse=function(){var t=this.__wrapped__;if(t instanceof Vn){var e=t;return this.__actions__.length&&(e=new Vn(this)),(e=e.reverse()).__actions__.push({func:fs,args:[Zo],thisArg:i}),new $n(e,this.__chain__)}return this.thru(Zo)},Hn.prototype.toJSON=Hn.prototype.valueOf=Hn.prototype.value=function(){return hi(this.__wrapped__,this.__actions__)},Hn.prototype.first=Hn.prototype.head,Kt&&(Hn.prototype[Kt]=function(){return this}),Hn}();he._=pn,(r=function(){return pn}.call(e,n,e,t))===i||(t.exports=r)}.call(this)},802:t=>{t.exports=function t(e,n,r){function i(s,a){if(!n[s]){if(!e[s]){if(o)return o(s,!0);throw new Error("Cannot find module '"+s+"'")}a=n[s]={exports:{}},e[s][0].call(a.exports,(function(t){return i(e[s][1][t]||t)}),a,a.exports,t,e,n,r)}return n[s].exports}for(var o=void 0,s=0;s<r.length;s++)i(r[s]);return i}({1:[function(t,e,n){(function(r,i,o,s,a,u,l,c,h){"use strict";var f=t("crypto");function d(t,e){var n;return void 0===(n="passthrough"!==(e=m(t,e)).algorithm?f.createHash(e.algorithm):new b).write&&(n.write=n.update,n.end=n.update),v(e,n).dispatch(t),n.update||n.end(""),n.digest?n.digest("buffer"===e.encoding?void 0:e.encoding):(t=n.read(),"buffer"!==e.encoding?t.toString(e.encoding):t)}(n=e.exports=d).sha1=function(t){return d(t)},n.keys=function(t){return d(t,{excludeValues:!0,algorithm:"sha1",encoding:"hex"})},n.MD5=function(t){return d(t,{algorithm:"md5",encoding:"hex"})},n.keysMD5=function(t){return d(t,{algorithm:"md5",encoding:"hex",excludeValues:!0})};var p=f.getHashes?f.getHashes().slice():["sha1","md5"],g=(p.push("passthrough"),["buffer","hex","binary","base64"]);function m(t,e){var n={};if(n.algorithm=(e=e||{}).algorithm||"sha1",n.encoding=e.encoding||"hex",n.excludeValues=!!e.excludeValues,n.algorithm=n.algorithm.toLowerCase(),n.encoding=n.encoding.toLowerCase(),n.ignoreUnknown=!0===e.ignoreUnknown,n.respectType=!1!==e.respectType,n.respectFunctionNames=!1!==e.respectFunctionNames,n.respectFunctionProperties=!1!==e.respectFunctionProperties,n.unorderedArrays=!0===e.unorderedArrays,n.unorderedSets=!1!==e.unorderedSets,n.unorderedObjects=!1!==e.unorderedObjects,n.replacer=e.replacer||void 0,n.excludeKeys=e.excludeKeys||void 0,void 0===t)throw new Error("Object argument required.");for(var r=0;r<p.length;++r)p[r].toLowerCase()===n.algorithm.toLowerCase()&&(n.algorithm=p[r]);if(-1===p.indexOf(n.algorithm))throw new Error('Algorithm "'+n.algorithm+'" not supported. supported values: '+p.join(", "));if(-1===g.indexOf(n.encoding)&&"passthrough"!==n.algorithm)throw new Error('Encoding "'+n.encoding+'" not supported. supported values: '+g.join(", "));return n}function y(t){if("function"==typeof t)return null!=/^function\s+\w*\s*\(\s*\)\s*{\s+\[native code\]\s+}$/i.exec(Function.prototype.toString.call(t))}function v(t,e,n){function r(t){return e.update?e.update(t,"utf8"):e.write(t,"utf8")}return n=n||[],{dispatch:function(e){return this["_"+(null===(e=t.replacer?t.replacer(e):e)?"null":typeof e)](e)},_object:function(e){var i,s=Object.prototype.toString.call(e),a=/\[object (.*)\]/i.exec(s);if(a=(a=a?a[1]:"unknown:["+s+"]").toLowerCase(),0<=(s=n.indexOf(e)))return this.dispatch("[CIRCULAR:"+s+"]");if(n.push(e),void 0!==o&&o.isBuffer&&o.isBuffer(e))return r("buffer:"),r(e);if("object"===a||"function"===a||"asyncfunction"===a)return s=Object.keys(e),t.unorderedObjects&&(s=s.sort()),!1===t.respectType||y(e)||s.splice(0,0,"prototype","__proto__","constructor"),t.excludeKeys&&(s=s.filter((function(e){return!t.excludeKeys(e)}))),r("object:"+s.length+":"),i=this,s.forEach((function(n){i.dispatch(n),r(":"),t.excludeValues||i.dispatch(e[n]),r(",")}));if(!this["_"+a]){if(t.ignoreUnknown)return r("["+a+"]");throw new Error('Unknown object type "'+a+'"')}this["_"+a](e)},_array:function(e,i){i=void 0!==i?i:!1!==t.unorderedArrays;var o=this;if(r("array:"+e.length+":"),!i||e.length<=1)return e.forEach((function(t){return o.dispatch(t)}));var s=[];return i=e.map((function(e){var r=new b,i=n.slice();return v(t,r,i).dispatch(e),s=s.concat(i.slice(n.length)),r.read().toString()})),n=n.concat(s),i.sort(),this._array(i,!1)},_date:function(t){return r("date:"+t.toJSON())},_symbol:function(t){return r("symbol:"+t.toString())},_error:function(t){return r("error:"+t.toString())},_boolean:function(t){return r("bool:"+t.toString())},_string:function(t){r("string:"+t.length+":"),r(t.toString())},_function:function(e){r("fn:"),y(e)?this.dispatch("[native]"):this.dispatch(e.toString()),!1!==t.respectFunctionNames&&this.dispatch("function-name:"+String(e.name)),t.respectFunctionProperties&&this._object(e)},_number:function(t){return r("number:"+t.toString())},_xml:function(t){return r("xml:"+t.toString())},_null:function(){return r("Null")},_undefined:function(){return r("Undefined")},_regexp:function(t){return r("regex:"+t.toString())},_uint8array:function(t){return r("uint8array:"),this.dispatch(Array.prototype.slice.call(t))},_uint8clampedarray:function(t){return r("uint8clampedarray:"),this.dispatch(Array.prototype.slice.call(t))},_int8array:function(t){return r("int8array:"),this.dispatch(Array.prototype.slice.call(t))},_uint16array:function(t){return r("uint16array:"),this.dispatch(Array.prototype.slice.call(t))},_int16array:function(t){return r("int16array:"),this.dispatch(Array.prototype.slice.call(t))},_uint32array:function(t){return r("uint32array:"),this.dispatch(Array.prototype.slice.call(t))},_int32array:function(t){return r("int32array:"),this.dispatch(Array.prototype.slice.call(t))},_float32array:function(t){return r("float32array:"),this.dispatch(Array.prototype.slice.call(t))},_float64array:function(t){return r("float64array:"),this.dispatch(Array.prototype.slice.call(t))},_arraybuffer:function(t){return r("arraybuffer:"),this.dispatch(new Uint8Array(t))},_url:function(t){return r("url:"+t.toString())},_map:function(e){return r("map:"),e=Array.from(e),this._array(e,!1!==t.unorderedSets)},_set:function(e){return r("set:"),e=Array.from(e),this._array(e,!1!==t.unorderedSets)},_file:function(t){return r("file:"),this.dispatch([t.name,t.size,t.type,t.lastModfied])},_blob:function(){if(t.ignoreUnknown)return r("[blob]");throw Error('Hashing Blob objects is currently not supported\n(see https://github.com/puleos/object-hash/issues/26)\nUse "options.replacer" or "options.ignoreUnknown"\n')},_domwindow:function(){return r("domwindow")},_bigint:function(t){return r("bigint:"+t.toString())},_process:function(){return r("process")},_timer:function(){return r("timer")},_pipe:function(){return r("pipe")},_tcp:function(){return r("tcp")},_udp:function(){return r("udp")},_tty:function(){return r("tty")},_statwatcher:function(){return r("statwatcher")},_securecontext:function(){return r("securecontext")},_connection:function(){return r("connection")},_zlib:function(){return r("zlib")},_context:function(){return r("context")},_nodescript:function(){return r("nodescript")},_httpparser:function(){return r("httpparser")},_dataview:function(){return r("dataview")},_signal:function(){return r("signal")},_fsevent:function(){return r("fsevent")},_tlswrap:function(){return r("tlswrap")}}}function b(){return{buf:"",write:function(t){this.buf+=t},end:function(t){this.buf+=t},read:function(){return this.buf}}}n.writeToStream=function(t,e,n){return void 0===n&&(n=e,e={}),v(e=m(t,e),n).dispatch(t)}}).call(this,t("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},t("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/fake_9a5aa49d.js","/")},{buffer:3,crypto:5,lYpoI2:11}],2:[function(t,e,n){(function(t,e,r,i,o,s,a,u,l){!function(t){"use strict";var e="undefined"!=typeof Uint8Array?Uint8Array:Array,n="+".charCodeAt(0),r="/".charCodeAt(0),i="0".charCodeAt(0),o="a".charCodeAt(0),s="A".charCodeAt(0),a="-".charCodeAt(0),u="_".charCodeAt(0);function l(t){return(t=t.charCodeAt(0))===n||t===a?62:t===r||t===u?63:t<i?-1:t<i+10?t-i+26+26:t<s+26?t-s:t<o+26?t-o+26:void 0}t.toByteArray=function(t){var n,r;if(0<t.length%4)throw new Error("Invalid string. Length must be a multiple of 4");var i=t.length,o=(i="="===t.charAt(i-2)?2:"="===t.charAt(i-1)?1:0,new e(3*t.length/4-i)),s=0<i?t.length-4:t.length,a=0;function u(t){o[a++]=t}for(n=0;n<s;n+=4,0)u((16711680&(r=l(t.charAt(n))<<18|l(t.charAt(n+1))<<12|l(t.charAt(n+2))<<6|l(t.charAt(n+3))))>>16),u((65280&r)>>8),u(255&r);return 2==i?u(255&(r=l(t.charAt(n))<<2|l(t.charAt(n+1))>>4)):1==i&&(u((r=l(t.charAt(n))<<10|l(t.charAt(n+1))<<4|l(t.charAt(n+2))>>2)>>8&255),u(255&r)),o},t.fromByteArray=function(t){var e,n,r,i,o=t.length%3,s="";function a(t){return"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(t)}for(e=0,r=t.length-o;e<r;e+=3)s+=a((i=n=(t[e]<<16)+(t[e+1]<<8)+t[e+2])>>18&63)+a(i>>12&63)+a(i>>6&63)+a(63&i);switch(o){case 1:s=(s+=a((n=t[t.length-1])>>2))+a(n<<4&63)+"==";break;case 2:s=(s=(s+=a((n=(t[t.length-2]<<8)+t[t.length-1])>>10))+a(n>>4&63))+a(n<<2&63)+"="}return s}}(void 0===n?this.base64js={}:n)}).call(this,t("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},t("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/base64-js/lib/b64.js","/node_modules/gulp-browserify/node_modules/base64-js/lib")},{buffer:3,lYpoI2:11}],3:[function(t,e,n){(function(e,r,i,o,s,a,u,l,c){var h=t("base64-js"),f=t("ieee754");function i(t,e,n){if(!(this instanceof i))return new i(t,e,n);var r,o,s,a,u=typeof t;if("base64"===e&&"string"==u)for(t=(a=t).trim?a.trim():a.replace(/^\s+|\s+$/g,"");t.length%4!=0;)t+="=";if("number"==u)r=S(t);else if("string"==u)r=i.byteLength(t,e);else{if("object"!=u)throw new Error("First argument needs to be a number, array or string.");r=S(t.length)}if(i._useTypedArrays?o=i._augment(new Uint8Array(r)):((o=this).length=r,o._isBuffer=!0),i._useTypedArrays&&"number"==typeof t.byteLength)o._set(t);else if(I(a=t)||i.isBuffer(a)||a&&"object"==typeof a&&"number"==typeof a.length)for(s=0;s<r;s++)i.isBuffer(t)?o[s]=t.readUInt8(s):o[s]=t[s];else if("string"==u)o.write(t,0,e);else if("number"==u&&!i._useTypedArrays&&!n)for(s=0;s<r;s++)o[s]=0;return o}function d(t,e,n,r){var i;if(r||(F("boolean"==typeof n,"missing or invalid endian"),F(null!=e,"missing offset"),F(e+1<t.length,"Trying to read beyond buffer length")),!((r=t.length)<=e))return n?(i=t[e],e+1<r&&(i|=t[e+1]<<8)):(i=t[e]<<8,e+1<r&&(i|=t[e+1])),i}function p(t,e,n,r){var i;if(r||(F("boolean"==typeof n,"missing or invalid endian"),F(null!=e,"missing offset"),F(e+3<t.length,"Trying to read beyond buffer length")),!((r=t.length)<=e))return n?(e+2<r&&(i=t[e+2]<<16),e+1<r&&(i|=t[e+1]<<8),i|=t[e],e+3<r&&(i+=t[e+3]<<24>>>0)):(e+1<r&&(i=t[e+1]<<16),e+2<r&&(i|=t[e+2]<<8),e+3<r&&(i|=t[e+3]),i+=t[e]<<24>>>0),i}function g(t,e,n,r){if(r||(F("boolean"==typeof n,"missing or invalid endian"),F(null!=e,"missing offset"),F(e+1<t.length,"Trying to read beyond buffer length")),!(t.length<=e))return 32768&(r=d(t,e,n,!0))?-1*(65535-r+1):r}function m(t,e,n,r){if(r||(F("boolean"==typeof n,"missing or invalid endian"),F(null!=e,"missing offset"),F(e+3<t.length,"Trying to read beyond buffer length")),!(t.length<=e))return 2147483648&(r=p(t,e,n,!0))?-1*(4294967295-r+1):r}function y(t,e,n,r){return r||(F("boolean"==typeof n,"missing or invalid endian"),F(e+3<t.length,"Trying to read beyond buffer length")),f.read(t,e,n,23,4)}function v(t,e,n,r){return r||(F("boolean"==typeof n,"missing or invalid endian"),F(e+7<t.length,"Trying to read beyond buffer length")),f.read(t,e,n,52,8)}function b(t,e,n,r,i){if(i||(F(null!=e,"missing value"),F("boolean"==typeof r,"missing or invalid endian"),F(null!=n,"missing offset"),F(n+1<t.length,"trying to write beyond buffer length"),P(e,65535)),!((i=t.length)<=n))for(var o=0,s=Math.min(i-n,2);o<s;o++)t[n+o]=(e&255<<8*(r?o:1-o))>>>8*(r?o:1-o)}function w(t,e,n,r,i){if(i||(F(null!=e,"missing value"),F("boolean"==typeof r,"missing or invalid endian"),F(null!=n,"missing offset"),F(n+3<t.length,"trying to write beyond buffer length"),P(e,4294967295)),!((i=t.length)<=n))for(var o=0,s=Math.min(i-n,4);o<s;o++)t[n+o]=e>>>8*(r?o:3-o)&255}function C(t,e,n,r,i){i||(F(null!=e,"missing value"),F("boolean"==typeof r,"missing or invalid endian"),F(null!=n,"missing offset"),F(n+1<t.length,"Trying to write beyond buffer length"),R(e,32767,-32768)),t.length<=n||b(t,0<=e?e:65535+e+1,n,r,i)}function A(t,e,n,r,i){i||(F(null!=e,"missing value"),F("boolean"==typeof r,"missing or invalid endian"),F(null!=n,"missing offset"),F(n+3<t.length,"Trying to write beyond buffer length"),R(e,2147483647,-2147483648)),t.length<=n||w(t,0<=e?e:4294967295+e+1,n,r,i)}function x(t,e,n,r,i){i||(F(null!=e,"missing value"),F("boolean"==typeof r,"missing or invalid endian"),F(null!=n,"missing offset"),F(n+3<t.length,"Trying to write beyond buffer length"),D(e,34028234663852886e22,-34028234663852886e22)),t.length<=n||f.write(t,e,n,r,23,4)}function _(t,e,n,r,i){i||(F(null!=e,"missing value"),F("boolean"==typeof r,"missing or invalid endian"),F(null!=n,"missing offset"),F(n+7<t.length,"Trying to write beyond buffer length"),D(e,17976931348623157e292,-17976931348623157e292)),t.length<=n||f.write(t,e,n,r,52,8)}n.Buffer=i,n.SlowBuffer=i,n.INSPECT_MAX_BYTES=50,i.poolSize=8192,i._useTypedArrays=function(){try{var t=new ArrayBuffer(0),e=new Uint8Array(t);return e.foo=function(){return 42},42===e.foo()&&"function"==typeof e.subarray}catch(t){return!1}}(),i.isEncoding=function(t){switch(String(t).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"raw":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},i.isBuffer=function(t){return!(null==t||!t._isBuffer)},i.byteLength=function(t,e){var n;switch(t+="",e||"utf8"){case"hex":n=t.length/2;break;case"utf8":case"utf-8":n=M(t).length;break;case"ascii":case"binary":case"raw":n=t.length;break;case"base64":n=O(t).length;break;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":n=2*t.length;break;default:throw new Error("Unknown encoding")}return n},i.concat=function(t,e){if(F(I(t),"Usage: Buffer.concat(list, [totalLength])\nlist should be an Array."),0===t.length)return new i(0);if(1===t.length)return t[0];if("number"!=typeof e)for(o=e=0;o<t.length;o++)e+=t[o].length;for(var n=new i(e),r=0,o=0;o<t.length;o++){var s=t[o];s.copy(n,r),r+=s.length}return n},i.prototype.write=function(t,e,n,r){isFinite(e)?isFinite(n)||(r=n,n=void 0):(l=r,r=e,e=n,n=l),e=Number(e)||0;var o,s,a,u,l=this.length-e;switch((!n||l<(n=Number(n)))&&(n=l),r=String(r||"utf8").toLowerCase()){case"hex":o=function(t,e,n,r){n=Number(n)||0;var o=t.length-n;(!r||o<(r=Number(r)))&&(r=o),F((o=e.length)%2==0,"Invalid hex string"),o/2<r&&(r=o/2);for(var s=0;s<r;s++){var a=parseInt(e.substr(2*s,2),16);F(!isNaN(a),"Invalid hex string"),t[n+s]=a}return i._charsWritten=2*s,s}(this,t,e,n);break;case"utf8":case"utf-8":s=this,a=e,u=n,o=i._charsWritten=L(M(t),s,a,u);break;case"ascii":case"binary":o=function(t,e,n,r){return i._charsWritten=L(function(t){for(var e=[],n=0;n<t.length;n++)e.push(255&t.charCodeAt(n));return e}(e),t,n,r)}(this,t,e,n);break;case"base64":s=this,a=e,u=n,o=i._charsWritten=L(O(t),s,a,u);break;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":o=function(t,e,n,r){return i._charsWritten=L(function(t){for(var e,n,r=[],i=0;i<t.length;i++)e=(n=t.charCodeAt(i))>>8,n%=256,r.push(n),r.push(e);return r}(e),t,n,r)}(this,t,e,n);break;default:throw new Error("Unknown encoding")}return o},i.prototype.toString=function(t,e,n){var r,i,o,s,a=this;if(t=String(t||"utf8").toLowerCase(),e=Number(e)||0,(n=void 0!==n?Number(n):a.length)===e)return"";switch(t){case"hex":r=function(t,e,n){var r=t.length;(!e||e<0)&&(e=0),(!n||n<0||r<n)&&(n=r);for(var i="",o=e;o<n;o++)i+=N(t[o]);return i}(a,e,n);break;case"utf8":case"utf-8":r=function(t,e,n){var r="",i="";n=Math.min(t.length,n);for(var o=e;o<n;o++)t[o]<=127?(r+=B(i)+String.fromCharCode(t[o]),i=""):i+="%"+t[o].toString(16);return r+B(i)}(a,e,n);break;case"ascii":case"binary":r=function(t,e,n){var r="";n=Math.min(t.length,n);for(var i=e;i<n;i++)r+=String.fromCharCode(t[i]);return r}(a,e,n);break;case"base64":i=a,s=n,r=0===(o=e)&&s===i.length?h.fromByteArray(i):h.fromByteArray(i.slice(o,s));break;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":r=function(t,e,n){for(var r=t.slice(e,n),i="",o=0;o<r.length;o+=2)i+=String.fromCharCode(r[o]+256*r[o+1]);return i}(a,e,n);break;default:throw new Error("Unknown encoding")}return r},i.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}},i.prototype.copy=function(t,e,n,r){if(e=e||0,(r=r||0===r?r:this.length)!==(n=n||0)&&0!==t.length&&0!==this.length){F(n<=r,"sourceEnd < sourceStart"),F(0<=e&&e<t.length,"targetStart out of bounds"),F(0<=n&&n<this.length,"sourceStart out of bounds"),F(0<=r&&r<=this.length,"sourceEnd out of bounds"),r>this.length&&(r=this.length);var o=(r=t.length-e<r-n?t.length-e+n:r)-n;if(o<100||!i._useTypedArrays)for(var s=0;s<o;s++)t[s+e]=this[s+n];else t._set(this.subarray(n,n+o),e)}},i.prototype.slice=function(t,e){var n=this.length;if(t=T(t,n,0),e=T(e,n,n),i._useTypedArrays)return i._augment(this.subarray(t,e));for(var r=e-t,o=new i(r,void 0,!0),s=0;s<r;s++)o[s]=this[s+t];return o},i.prototype.get=function(t){return console.log(".get() is deprecated. Access using array indexes instead."),this.readUInt8(t)},i.prototype.set=function(t,e){return console.log(".set() is deprecated. Access using array indexes instead."),this.writeUInt8(t,e)},i.prototype.readUInt8=function(t,e){if(e||(F(null!=t,"missing offset"),F(t<this.length,"Trying to read beyond buffer length")),!(t>=this.length))return this[t]},i.prototype.readUInt16LE=function(t,e){return d(this,t,!0,e)},i.prototype.readUInt16BE=function(t,e){return d(this,t,!1,e)},i.prototype.readUInt32LE=function(t,e){return p(this,t,!0,e)},i.prototype.readUInt32BE=function(t,e){return p(this,t,!1,e)},i.prototype.readInt8=function(t,e){if(e||(F(null!=t,"missing offset"),F(t<this.length,"Trying to read beyond buffer length")),!(t>=this.length))return 128&this[t]?-1*(255-this[t]+1):this[t]},i.prototype.readInt16LE=function(t,e){return g(this,t,!0,e)},i.prototype.readInt16BE=function(t,e){return g(this,t,!1,e)},i.prototype.readInt32LE=function(t,e){return m(this,t,!0,e)},i.prototype.readInt32BE=function(t,e){return m(this,t,!1,e)},i.prototype.readFloatLE=function(t,e){return y(this,t,!0,e)},i.prototype.readFloatBE=function(t,e){return y(this,t,!1,e)},i.prototype.readDoubleLE=function(t,e){return v(this,t,!0,e)},i.prototype.readDoubleBE=function(t,e){return v(this,t,!1,e)},i.prototype.writeUInt8=function(t,e,n){n||(F(null!=t,"missing value"),F(null!=e,"missing offset"),F(e<this.length,"trying to write beyond buffer length"),P(t,255)),e>=this.length||(this[e]=t)},i.prototype.writeUInt16LE=function(t,e,n){b(this,t,e,!0,n)},i.prototype.writeUInt16BE=function(t,e,n){b(this,t,e,!1,n)},i.prototype.writeUInt32LE=function(t,e,n){w(this,t,e,!0,n)},i.prototype.writeUInt32BE=function(t,e,n){w(this,t,e,!1,n)},i.prototype.writeInt8=function(t,e,n){n||(F(null!=t,"missing value"),F(null!=e,"missing offset"),F(e<this.length,"Trying to write beyond buffer length"),R(t,127,-128)),e>=this.length||(0<=t?this.writeUInt8(t,e,n):this.writeUInt8(255+t+1,e,n))},i.prototype.writeInt16LE=function(t,e,n){C(this,t,e,!0,n)},i.prototype.writeInt16BE=function(t,e,n){C(this,t,e,!1,n)},i.prototype.writeInt32LE=function(t,e,n){A(this,t,e,!0,n)},i.prototype.writeInt32BE=function(t,e,n){A(this,t,e,!1,n)},i.prototype.writeFloatLE=function(t,e,n){x(this,t,e,!0,n)},i.prototype.writeFloatBE=function(t,e,n){x(this,t,e,!1,n)},i.prototype.writeDoubleLE=function(t,e,n){_(this,t,e,!0,n)},i.prototype.writeDoubleBE=function(t,e,n){_(this,t,e,!1,n)},i.prototype.fill=function(t,e,n){if(e=e||0,n=n||this.length,F("number"==typeof(t="string"==typeof(t=t||0)?t.charCodeAt(0):t)&&!isNaN(t),"value is not a number"),F(e<=n,"end < start"),n!==e&&0!==this.length){F(0<=e&&e<this.length,"start out of bounds"),F(0<=n&&n<=this.length,"end out of bounds");for(var r=e;r<n;r++)this[r]=t}},i.prototype.inspect=function(){for(var t=[],e=this.length,r=0;r<e;r++)if(t[r]=N(this[r]),r===n.INSPECT_MAX_BYTES){t[r+1]="...";break}return"<Buffer "+t.join(" ")+">"},i.prototype.toArrayBuffer=function(){if("undefined"==typeof Uint8Array)throw new Error("Buffer.toArrayBuffer not supported in this browser");if(i._useTypedArrays)return new i(this).buffer;for(var t=new Uint8Array(this.length),e=0,n=t.length;e<n;e+=1)t[e]=this[e];return t.buffer};var E=i.prototype;function T(t,e,n){return"number"!=typeof t?n:e<=(t=~~t)?e:0<=t||0<=(t+=e)?t:0}function S(t){return(t=~~Math.ceil(+t))<0?0:t}function I(t){return(Array.isArray||function(t){return"[object Array]"===Object.prototype.toString.call(t)})(t)}function N(t){return t<16?"0"+t.toString(16):t.toString(16)}function M(t){for(var e=[],n=0;n<t.length;n++){var r=t.charCodeAt(n);if(r<=127)e.push(t.charCodeAt(n));else for(var i=n,o=(55296<=r&&r<=57343&&n++,encodeURIComponent(t.slice(i,n+1)).substr(1).split("%")),s=0;s<o.length;s++)e.push(parseInt(o[s],16))}return e}function O(t){return h.toByteArray(t)}function L(t,e,n,r){for(var i=0;i<r&&!(i+n>=e.length||i>=t.length);i++)e[i+n]=t[i];return i}function B(t){try{return decodeURIComponent(t)}catch(t){return String.fromCharCode(65533)}}function P(t,e){F("number"==typeof t,"cannot write a non-number as a number"),F(0<=t,"specified a negative value for writing an unsigned value"),F(t<=e,"value is larger than maximum value for type"),F(Math.floor(t)===t,"value has a fractional component")}function R(t,e,n){F("number"==typeof t,"cannot write a non-number as a number"),F(t<=e,"value larger than maximum allowed value"),F(n<=t,"value smaller than minimum allowed value"),F(Math.floor(t)===t,"value has a fractional component")}function D(t,e,n){F("number"==typeof t,"cannot write a non-number as a number"),F(t<=e,"value larger than maximum allowed value"),F(n<=t,"value smaller than minimum allowed value")}function F(t,e){if(!t)throw new Error(e||"Failed assertion")}i._augment=function(t){return t._isBuffer=!0,t._get=t.get,t._set=t.set,t.get=E.get,t.set=E.set,t.write=E.write,t.toString=E.toString,t.toLocaleString=E.toString,t.toJSON=E.toJSON,t.copy=E.copy,t.slice=E.slice,t.readUInt8=E.readUInt8,t.readUInt16LE=E.readUInt16LE,t.readUInt16BE=E.readUInt16BE,t.readUInt32LE=E.readUInt32LE,t.readUInt32BE=E.readUInt32BE,t.readInt8=E.readInt8,t.readInt16LE=E.readInt16LE,t.readInt16BE=E.readInt16BE,t.readInt32LE=E.readInt32LE,t.readInt32BE=E.readInt32BE,t.readFloatLE=E.readFloatLE,t.readFloatBE=E.readFloatBE,t.readDoubleLE=E.readDoubleLE,t.readDoubleBE=E.readDoubleBE,t.writeUInt8=E.writeUInt8,t.writeUInt16LE=E.writeUInt16LE,t.writeUInt16BE=E.writeUInt16BE,t.writeUInt32LE=E.writeUInt32LE,t.writeUInt32BE=E.writeUInt32BE,t.writeInt8=E.writeInt8,t.writeInt16LE=E.writeInt16LE,t.writeInt16BE=E.writeInt16BE,t.writeInt32LE=E.writeInt32LE,t.writeInt32BE=E.writeInt32BE,t.writeFloatLE=E.writeFloatLE,t.writeFloatBE=E.writeFloatBE,t.writeDoubleLE=E.writeDoubleLE,t.writeDoubleBE=E.writeDoubleBE,t.fill=E.fill,t.inspect=E.inspect,t.toArrayBuffer=E.toArrayBuffer,t}}).call(this,t("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},t("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/buffer/index.js","/node_modules/gulp-browserify/node_modules/buffer")},{"base64-js":2,buffer:3,ieee754:10,lYpoI2:11}],4:[function(t,e,n){(function(n,r,i,o,s,a,u,l,c){i=t("buffer").Buffer;var h=new i(4);h.fill(0),e.exports={hash:function(t,e,n,r){for(var o=e(function(t,e){t.length%4!=0&&(n=t.length+(4-t.length%4),t=i.concat([t,h],n));for(var n,r=[],o=e?t.readInt32BE:t.readInt32LE,s=0;s<t.length;s+=4)r.push(o.call(t,s));return r}(t=i.isBuffer(t)?t:new i(t),r),8*t.length),s=(e=r,new i(n)),a=e?s.writeInt32BE:s.writeInt32LE,u=0;u<o.length;u++)a.call(s,o[u],4*u,!0);return s}}}).call(this,t("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},t("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/crypto-browserify/helpers.js","/node_modules/gulp-browserify/node_modules/crypto-browserify")},{buffer:3,lYpoI2:11}],5:[function(t,e,n){(function(e,r,i,o,s,a,u,l,c){i=t("buffer").Buffer;var h=t("./sha"),f=t("./sha256"),d=t("./rng"),p={sha1:h,sha256:f,md5:t("./md5")},g=64,m=new i(g);function y(t,e){var n=p[t=t||"sha1"],r=[];return n||v("algorithm:",t,"is not yet supported"),{update:function(t){return i.isBuffer(t)||(t=new i(t)),r.push(t),t.length,this},digest:function(t){var o=i.concat(r);return o=e?function(t,e,n){i.isBuffer(e)||(e=new i(e)),i.isBuffer(n)||(n=new i(n)),e.length>g?e=t(e):e.length<g&&(e=i.concat([e,m],g));for(var r=new i(g),o=new i(g),s=0;s<g;s++)r[s]=54^e[s],o[s]=92^e[s];return n=t(i.concat([r,n])),t(i.concat([o,n]))}(n,e,o):n(o),r=null,t?o.toString(t):o}}}function v(){var t=[].slice.call(arguments).join(" ");throw new Error([t,"we accept pull requests","http://github.com/dominictarr/crypto-browserify"].join("\n"))}m.fill(0),n.createHash=function(t){return y(t)},n.createHmac=y,n.randomBytes=function(t,e){if(!e||!e.call)return new i(d(t));try{e.call(this,void 0,new i(d(t)))}catch(t){e(t)}};var b,w=["createCredentials","createCipher","createCipheriv","createDecipher","createDecipheriv","createSign","createVerify","createDiffieHellman","pbkdf2"],C=function(t){n[t]=function(){v("sorry,",t,"is not implemented yet")}};for(b in w)C(w[b])}).call(this,t("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},t("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/crypto-browserify/index.js","/node_modules/gulp-browserify/node_modules/crypto-browserify")},{"./md5":6,"./rng":7,"./sha":8,"./sha256":9,buffer:3,lYpoI2:11}],6:[function(t,e,n){(function(n,r,i,o,s,a,u,l,c){var h=t("./helpers");function f(t,e){t[e>>5]|=128<<e%32,t[14+(e+64>>>9<<4)]=e;for(var n=1732584193,r=-271733879,i=-1732584194,o=271733878,s=0;s<t.length;s+=16){var a=n,u=r,l=i,c=o;n=p(n,r,i,o,t[s+0],7,-680876936),o=p(o,n,r,i,t[s+1],12,-389564586),i=p(i,o,n,r,t[s+2],17,606105819),r=p(r,i,o,n,t[s+3],22,-1044525330),n=p(n,r,i,o,t[s+4],7,-176418897),o=p(o,n,r,i,t[s+5],12,1200080426),i=p(i,o,n,r,t[s+6],17,-1473231341),r=p(r,i,o,n,t[s+7],22,-45705983),n=p(n,r,i,o,t[s+8],7,1770035416),o=p(o,n,r,i,t[s+9],12,-1958414417),i=p(i,o,n,r,t[s+10],17,-42063),r=p(r,i,o,n,t[s+11],22,-1990404162),n=p(n,r,i,o,t[s+12],7,1804603682),o=p(o,n,r,i,t[s+13],12,-40341101),i=p(i,o,n,r,t[s+14],17,-1502002290),n=g(n,r=p(r,i,o,n,t[s+15],22,1236535329),i,o,t[s+1],5,-165796510),o=g(o,n,r,i,t[s+6],9,-1069501632),i=g(i,o,n,r,t[s+11],14,643717713),r=g(r,i,o,n,t[s+0],20,-373897302),n=g(n,r,i,o,t[s+5],5,-701558691),o=g(o,n,r,i,t[s+10],9,38016083),i=g(i,o,n,r,t[s+15],14,-660478335),r=g(r,i,o,n,t[s+4],20,-405537848),n=g(n,r,i,o,t[s+9],5,568446438),o=g(o,n,r,i,t[s+14],9,-1019803690),i=g(i,o,n,r,t[s+3],14,-187363961),r=g(r,i,o,n,t[s+8],20,1163531501),n=g(n,r,i,o,t[s+13],5,-1444681467),o=g(o,n,r,i,t[s+2],9,-51403784),i=g(i,o,n,r,t[s+7],14,1735328473),n=m(n,r=g(r,i,o,n,t[s+12],20,-1926607734),i,o,t[s+5],4,-378558),o=m(o,n,r,i,t[s+8],11,-2022574463),i=m(i,o,n,r,t[s+11],16,1839030562),r=m(r,i,o,n,t[s+14],23,-35309556),n=m(n,r,i,o,t[s+1],4,-1530992060),o=m(o,n,r,i,t[s+4],11,1272893353),i=m(i,o,n,r,t[s+7],16,-155497632),r=m(r,i,o,n,t[s+10],23,-1094730640),n=m(n,r,i,o,t[s+13],4,681279174),o=m(o,n,r,i,t[s+0],11,-358537222),i=m(i,o,n,r,t[s+3],16,-722521979),r=m(r,i,o,n,t[s+6],23,76029189),n=m(n,r,i,o,t[s+9],4,-640364487),o=m(o,n,r,i,t[s+12],11,-421815835),i=m(i,o,n,r,t[s+15],16,530742520),n=y(n,r=m(r,i,o,n,t[s+2],23,-995338651),i,o,t[s+0],6,-198630844),o=y(o,n,r,i,t[s+7],10,1126891415),i=y(i,o,n,r,t[s+14],15,-1416354905),r=y(r,i,o,n,t[s+5],21,-57434055),n=y(n,r,i,o,t[s+12],6,1700485571),o=y(o,n,r,i,t[s+3],10,-1894986606),i=y(i,o,n,r,t[s+10],15,-1051523),r=y(r,i,o,n,t[s+1],21,-2054922799),n=y(n,r,i,o,t[s+8],6,1873313359),o=y(o,n,r,i,t[s+15],10,-30611744),i=y(i,o,n,r,t[s+6],15,-1560198380),r=y(r,i,o,n,t[s+13],21,1309151649),n=y(n,r,i,o,t[s+4],6,-145523070),o=y(o,n,r,i,t[s+11],10,-1120210379),i=y(i,o,n,r,t[s+2],15,718787259),r=y(r,i,o,n,t[s+9],21,-343485551),n=v(n,a),r=v(r,u),i=v(i,l),o=v(o,c)}return Array(n,r,i,o)}function d(t,e,n,r,i,o){return v((e=v(v(e,t),v(r,o)))<<i|e>>>32-i,n)}function p(t,e,n,r,i,o,s){return d(e&n|~e&r,t,e,i,o,s)}function g(t,e,n,r,i,o,s){return d(e&r|n&~r,t,e,i,o,s)}function m(t,e,n,r,i,o,s){return d(e^n^r,t,e,i,o,s)}function y(t,e,n,r,i,o,s){return d(n^(e|~r),t,e,i,o,s)}function v(t,e){var n=(65535&t)+(65535&e);return(t>>16)+(e>>16)+(n>>16)<<16|65535&n}e.exports=function(t){return h.hash(t,f,16)}}).call(this,t("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},t("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/crypto-browserify/md5.js","/node_modules/gulp-browserify/node_modules/crypto-browserify")},{"./helpers":4,buffer:3,lYpoI2:11}],7:[function(t,e,n){(function(t,n,r,i,o,s,a,u,l){e.exports=function(t){for(var e,n=new Array(t),r=0;r<t;r++)!(3&r)&&(e=4294967296*Math.random()),n[r]=e>>>((3&r)<<3)&255;return n}}).call(this,t("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},t("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/crypto-browserify/rng.js","/node_modules/gulp-browserify/node_modules/crypto-browserify")},{buffer:3,lYpoI2:11}],8:[function(t,e,n){(function(n,r,i,o,s,a,u,l,c){var h=t("./helpers");function f(t,e){t[e>>5]|=128<<24-e%32,t[15+(e+64>>9<<4)]=e;for(var n,r,i,o=Array(80),s=1732584193,a=-271733879,u=-1732584194,l=271733878,c=-1009589776,h=0;h<t.length;h+=16){for(var f=s,g=a,m=u,y=l,v=c,b=0;b<80;b++){o[b]=b<16?t[h+b]:p(o[b-3]^o[b-8]^o[b-14]^o[b-16],1);var w=d(d(p(s,5),(w=a,r=u,i=l,(n=b)<20?w&r|~w&i:!(n<40)&&n<60?w&r|w&i|r&i:w^r^i)),d(d(c,o[b]),(n=b)<20?1518500249:n<40?1859775393:n<60?-1894007588:-899497514));c=l,l=u,u=p(a,30),a=s,s=w}s=d(s,f),a=d(a,g),u=d(u,m),l=d(l,y),c=d(c,v)}return Array(s,a,u,l,c)}function d(t,e){var n=(65535&t)+(65535&e);return(t>>16)+(e>>16)+(n>>16)<<16|65535&n}function p(t,e){return t<<e|t>>>32-e}e.exports=function(t){return h.hash(t,f,20,!0)}}).call(this,t("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},t("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/crypto-browserify/sha.js","/node_modules/gulp-browserify/node_modules/crypto-browserify")},{"./helpers":4,buffer:3,lYpoI2:11}],9:[function(t,e,n){(function(n,r,i,o,s,a,u,l,c){function h(t,e){var n=(65535&t)+(65535&e);return(t>>16)+(e>>16)+(n>>16)<<16|65535&n}function f(t,e){var n,r=new Array(1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298),i=new Array(1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225),o=new Array(64);t[e>>5]|=128<<24-e%32,t[15+(e+64>>9<<4)]=e;for(var s,a,u=0;u<t.length;u+=16){for(var l=i[0],c=i[1],f=i[2],d=i[3],m=i[4],y=i[5],v=i[6],b=i[7],w=0;w<64;w++)o[w]=w<16?t[w+u]:h(h(h((a=o[w-2],p(a,17)^p(a,19)^g(a,10)),o[w-7]),(a=o[w-15],p(a,7)^p(a,18)^g(a,3))),o[w-16]),n=h(h(h(h(b,p(a=m,6)^p(a,11)^p(a,25)),m&y^~m&v),r[w]),o[w]),s=h(p(s=l,2)^p(s,13)^p(s,22),l&c^l&f^c&f),b=v,v=y,y=m,m=h(d,n),d=f,f=c,c=l,l=h(n,s);i[0]=h(l,i[0]),i[1]=h(c,i[1]),i[2]=h(f,i[2]),i[3]=h(d,i[3]),i[4]=h(m,i[4]),i[5]=h(y,i[5]),i[6]=h(v,i[6]),i[7]=h(b,i[7])}return i}var d=t("./helpers"),p=function(t,e){return t>>>e|t<<32-e},g=function(t,e){return t>>>e};e.exports=function(t){return d.hash(t,f,32,!0)}}).call(this,t("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},t("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/crypto-browserify/sha256.js","/node_modules/gulp-browserify/node_modules/crypto-browserify")},{"./helpers":4,buffer:3,lYpoI2:11}],10:[function(t,e,n){(function(t,e,r,i,o,s,a,u,l){n.read=function(t,e,n,r,i){var o,s,a=8*i-r-1,u=(1<<a)-1,l=u>>1,c=-7,h=n?i-1:0,f=n?-1:1;for(i=t[e+h],h+=f,o=i&(1<<-c)-1,i>>=-c,c+=a;0<c;o=256*o+t[e+h],h+=f,c-=8);for(s=o&(1<<-c)-1,o>>=-c,c+=r;0<c;s=256*s+t[e+h],h+=f,c-=8);if(0===o)o=1-l;else{if(o===u)return s?NaN:1/0*(i?-1:1);s+=Math.pow(2,r),o-=l}return(i?-1:1)*s*Math.pow(2,o-r)},n.write=function(t,e,n,r,i,o){var s,a,u=8*o-i-1,l=(1<<u)-1,c=l>>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,f=r?0:o-1,d=r?1:-1;for(o=e<0||0===e&&1/e<0?1:0,e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,s=l):(s=Math.floor(Math.log(e)/Math.LN2),e*(r=Math.pow(2,-s))<1&&(s--,r*=2),2<=(e+=1<=s+c?h/r:h*Math.pow(2,1-c))*r&&(s++,r/=2),l<=s+c?(a=0,s=l):1<=s+c?(a=(e*r-1)*Math.pow(2,i),s+=c):(a=e*Math.pow(2,c-1)*Math.pow(2,i),s=0));8<=i;t[n+f]=255&a,f+=d,a/=256,i-=8);for(s=s<<i|a,u+=i;0<u;t[n+f]=255&s,f+=d,s/=256,u-=8);t[n+f-d]|=128*o}}).call(this,t("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},t("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/ieee754/index.js","/node_modules/gulp-browserify/node_modules/ieee754")},{buffer:3,lYpoI2:11}],11:[function(t,e,n){(function(t,n,r,i,o,s,a,u,l){var c,h,f;function d(){}(t=e.exports={}).nextTick=(h="undefined"!=typeof window&&window.setImmediate,f="undefined"!=typeof window&&window.postMessage&&window.addEventListener,h?function(t){return window.setImmediate(t)}:f?(c=[],window.addEventListener("message",(function(t){var e=t.source;e!==window&&null!==e||"process-tick"!==t.data||(t.stopPropagation(),0<c.length&&c.shift()())}),!0),function(t){c.push(t),window.postMessage("process-tick","*")}):function(t){setTimeout(t,0)}),t.title="browser",t.browser=!0,t.env={},t.argv=[],t.on=d,t.addListener=d,t.once=d,t.off=d,t.removeListener=d,t.removeAllListeners=d,t.emit=d,t.binding=function(t){throw new Error("process.binding is not supported")},t.cwd=function(){return"/"},t.chdir=function(t){throw new Error("process.chdir is not supported")}}).call(this,t("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},t("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/process/browser.js","/node_modules/gulp-browserify/node_modules/process")},{buffer:3,lYpoI2:11}]},{},[1])(1)},146:(t,e)=>{"use strict";var n;!function(){var r=e||{}||this||window;void 0===(n=function(){return r}.apply(e,[]))||(t.exports=n),r.default=r;var i="http://www.w3.org/2000/xmlns/",o="http://www.w3.org/2000/svg",s=/url\(["']?(.+?)["']?\)/,a={woff2:"font/woff2",woff:"font/woff",otf:"application/x-font-opentype",ttf:"application/x-font-ttf",eot:"application/vnd.ms-fontobject",sfnt:"application/font-sfnt",svg:"image/svg+xml"},u=function(t){return t instanceof HTMLElement||t instanceof SVGElement},l=function(t){if(!u(t))throw new Error("an HTMLElement or SVGElement is required; got "+t)},c=function(t){return new Promise((function(e,n){u(t)?e(t):n(new Error("an HTMLElement or SVGElement is required; got "+t))}))},h=function(t,e,n){var r=t.viewBox&&t.viewBox.baseVal&&t.viewBox.baseVal[n]||null!==e.getAttribute(n)&&!e.getAttribute(n).match(/%$/)&&parseInt(e.getAttribute(n))||t.getBoundingClientRect()[n]||parseInt(e.style[n])||parseInt(window.getComputedStyle(t).getPropertyValue(n));return null==r||isNaN(parseFloat(r))?0:r},f=function(t){for(var e=window.atob(t.split(",")[1]),n=t.split(",")[0].split(":")[1].split(";")[0],r=new ArrayBuffer(e.length),i=new Uint8Array(r),o=0;o<e.length;o++)i[o]=e.charCodeAt(o);return new Blob([r],{type:n})},d={},p=null,g=function(t,e){var n=e||{},r=n.selectorRemap,i=n.modifyStyle,o=n.modifyCss,u=n.fonts,l=n.excludeUnusedCss,c=o||function(t,e){return(r?r(t):t)+"{"+(i?i(e):e)+"}\n"},h=[],f=void 0===u,g=u||[];return(p||(p=Array.from(document.styleSheets).map((function(t){try{return{rules:t.cssRules,href:t.href}}catch(e){return console.warn("Stylesheet could not be loaded: "+t.href,e),{}}})))).forEach((function(e){var n=e.rules,r=e.href;n&&Array.from(n).forEach((function(e){if(void 0!==e.style)if(function(t,e){if(e)try{return t.querySelector(e)||t.parentNode&&t.parentNode.querySelector(e)}catch(t){console.warn('Invalid CSS selector "'+e+'"',t)}}(t,e.selectorText))h.push(c(e.selectorText,e.style.cssText));else if(f&&e.cssText.match(/^@font-face/)){var n=function(t,e){var n=t.cssText.match(s),r=n&&n[1]||"";if(r&&!r.match(/^data:/)&&"about:blank"!==r){var i,o,u=r.startsWith("../")?e+"/../"+r:r.startsWith("./")?e+"/."+r:r;return{text:t.cssText,format:(i=u,o=Object.keys(a).filter((function(t){return i.indexOf("."+t)>0})).map((function(t){return a[t]})),o?o[0]:(console.error("Unknown font format for "+i+". Fonts may not be working correctly."),"application/octet-stream")),url:u}}}(e,r);n&&g.push(n)}else l||h.push(e.cssText)}))})),function(t){return Promise.all(t.map((function(t){return new Promise((function(e,n){if(d[t.url])return e(d[t.url]);var r=new XMLHttpRequest;r.addEventListener("load",(function(){var n=function(t){for(var e="",n=new Uint8Array(t),r=0;r<n.byteLength;r++)e+=String.fromCharCode(n[r]);return window.btoa(e)}(r.response),i=t.text.replace(s,'url("data:'+t.format+";base64,"+n+'")')+"\n";d[t.url]=i,e(i)})),r.addEventListener("error",(function(n){console.warn("Failed to load font from: "+t.url,n),d[t.url]=null,e(null)})),r.addEventListener("abort",(function(n){console.warn("Aborted loading font from: "+t.url,n),e(null)})),r.open("GET",t.url),r.responseType="arraybuffer",r.send()}))}))).then((function(t){return t.filter((function(t){return t})).join("")}))}(g).then((function(t){return h.join("\n")+t}))},m=function(){if(!navigator.msSaveOrOpenBlob&&!("download"in document.createElement("a")))return{popup:window.open()}};r.prepareSvg=function(t,e,n){l(t);var r=e||{},s=r.left,a=void 0===s?0:s,u=r.top,c=void 0===u?0:u,f=r.width,d=r.height,p=r.scale,m=void 0===p?1:p,y=r.responsive,v=void 0!==y&&y,b=r.excludeCss,w=void 0!==b&&b;return function(t){return Promise.all(Array.from(t.querySelectorAll("image")).map((function(t){var e,n=t.getAttributeNS("http://www.w3.org/1999/xlink","href")||t.getAttribute("href");return n?((e=n)&&0===e.lastIndexOf("http",0)&&-1===e.lastIndexOf(window.location.host)&&(n+=(-1===n.indexOf("?")?"?":"&")+"t="+(new Date).valueOf()),new Promise((function(e,r){var i=document.createElement("canvas"),o=new Image;o.crossOrigin="anonymous",o.src=n,o.onerror=function(){return r(new Error("Could not load "+n))},o.onload=function(){i.width=o.width,i.height=o.height,i.getContext("2d").drawImage(o,0,0),t.setAttributeNS("http://www.w3.org/1999/xlink","href",i.toDataURL("image/png")),e(!0)}}))):Promise.resolve(null)})))}(t).then((function(){var r=t.cloneNode(!0);r.style.backgroundColor=(e||{}).backgroundColor||t.style.backgroundColor;var s=function(t,e,n,r){if("svg"===t.tagName)return{width:n||h(t,e,"width"),height:r||h(t,e,"height")};if(t.getBBox){var i=t.getBBox(),o=i.x,s=i.y;return{width:o+i.width,height:s+i.height}}}(t,r,f,d),u=s.width,l=s.height;if("svg"!==t.tagName){if(!t.getBBox)return void console.error("Attempted to render non-SVG element",t);null!=r.getAttribute("transform")&&r.setAttribute("transform",r.getAttribute("transform").replace(/translate\(.*?\)/,""));var p=document.createElementNS("http://www.w3.org/2000/svg","svg");p.appendChild(r),r=p}if(r.setAttribute("version","1.1"),r.setAttribute("viewBox",[a,c,u,l].join(" ")),r.getAttribute("xmlns")||r.setAttributeNS(i,"xmlns",o),r.getAttribute("xmlns:xlink")||r.setAttributeNS(i,"xmlns:xlink","http://www.w3.org/1999/xlink"),v?(r.removeAttribute("width"),r.removeAttribute("height"),r.setAttribute("preserveAspectRatio","xMinYMin meet")):(r.setAttribute("width",u*m),r.setAttribute("height",l*m)),Array.from(r.querySelectorAll("foreignObject > *")).forEach((function(t){t.setAttributeNS(i,"xmlns","svg"===t.tagName?o:"http://www.w3.org/1999/xhtml")})),!w)return g(t,e).then((function(t){var e=document.createElement("style");e.setAttribute("type","text/css"),e.innerHTML="<![CDATA[\n"+t+"\n]]>";var i=document.createElement("defs");i.appendChild(e),r.insertBefore(i,r.firstChild);var o=document.createElement("div");o.appendChild(r);var s=o.innerHTML.replace(/NS\d+:href/gi,'xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href');if("function"!=typeof n)return{src:s,width:u,height:l};n(s,u,l)}));var y=document.createElement("div");y.appendChild(r);var b=y.innerHTML;if("function"!=typeof n)return{src:b,width:u,height:l};n(b,u,l)}))},r.svgAsDataUri=function(t,e,n){return l(t),r.prepareSvg(t,e).then((function(t){var e=t.src,r=t.width,i=t.height,o="data:image/svg+xml;base64,"+window.btoa(decodeURIComponent(encodeURIComponent('<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [<!ENTITY nbsp "&#160;">]>'+e).replace(/%([0-9A-F]{2})/g,(function(t,e){var n=String.fromCharCode("0x"+e);return"%"===n?"%25":n}))));return"function"==typeof n&&n(o,r,i),o}))},r.svgAsPngUri=function(t,e,n){l(t);var i=e||{},o=i.encoderType,s=void 0===o?"image/png":o,a=i.encoderOptions,u=void 0===a?.8:a,c=i.canvg,h=function(t){var e=t.src,r=t.width,i=t.height,o=document.createElement("canvas"),a=o.getContext("2d"),l=window.devicePixelRatio||1;o.width=r*l,o.height=i*l,o.style.width=o.width+"px",o.style.height=o.height+"px",a.setTransform(l,0,0,l,0,0),c?c(o,e):a.drawImage(e,0,0);var h=void 0;try{h=o.toDataURL(s,u)}catch(t){if("undefined"!=typeof SecurityError&&t instanceof SecurityError||"SecurityError"===t.name)return void console.error("Rendered SVG images cannot be downloaded in this browser.");throw t}return"function"==typeof n&&n(h,o.width,o.height),Promise.resolve(h)};return c?r.prepareSvg(t,e).then(h):r.svgAsDataUri(t,e).then((function(t){return new Promise((function(e,n){var r=new Image;r.onload=function(){return e(h({src:r,width:r.width,height:r.height}))},r.onerror=function(){n("There was an error loading the data URI as an image on the following SVG\n"+window.atob(t.slice(26))+"Open the following link to see browser's diagnosis\n"+t)},r.src=t}))}))},r.download=function(t,e,n){if(navigator.msSaveOrOpenBlob)navigator.msSaveOrOpenBlob(f(e),t);else{var r=document.createElement("a");if("download"in r){r.download=t,r.style.display="none",document.body.appendChild(r);try{var i=f(e),o=URL.createObjectURL(i);r.href=o,r.onclick=function(){return requestAnimationFrame((function(){return URL.revokeObjectURL(o)}))}}catch(t){console.error(t),console.warn("Error while getting object URL. Falling back to string URL."),r.href=e}r.click(),document.body.removeChild(r)}else n&&n.popup&&(n.popup.document.title=t,n.popup.location.replace(e))}},r.saveSvg=function(t,e,n){var i=m();return c(t).then((function(t){return r.svgAsDataUri(t,n||{})})).then((function(t){return r.download(e,t,i)}))},r.saveSvgAsPng=function(t,e,n){var i=m();return c(t).then((function(t){return r.svgAsPngUri(t,n||{})})).then((function(t){return r.download(e,t,i)}))}}()},72:t=>{"use strict";var e=[];function n(t){for(var n=-1,r=0;r<e.length;r++)if(e[r].identifier===t){n=r;break}return n}function r(t,r){for(var o={},s=[],a=0;a<t.length;a++){var u=t[a],l=r.base?u[0]+r.base:u[0],c=o[l]||0,h="".concat(l," ").concat(c);o[l]=c+1;var f=n(h),d={css:u[1],media:u[2],sourceMap:u[3],supports:u[4],layer:u[5]};if(-1!==f)e[f].references++,e[f].updater(d);else{var p=i(d,r);r.byIndex=a,e.splice(a,0,{identifier:h,updater:p,references:1})}s.push(h)}return s}function i(t,e){var n=e.domAPI(e);return n.update(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap&&e.supports===t.supports&&e.layer===t.layer)return;n.update(t=e)}else n.remove()}}t.exports=function(t,i){var o=r(t=t||[],i=i||{});return function(t){t=t||[];for(var s=0;s<o.length;s++){var a=n(o[s]);e[a].references--}for(var u=r(t,i),l=0;l<o.length;l++){var c=n(o[l]);0===e[c].references&&(e[c].updater(),e.splice(c,1))}o=u}}},659:t=>{"use strict";var e={};t.exports=function(t,n){var r=function(t){if(void 0===e[t]){var n=document.querySelector(t);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(t){n=null}e[t]=n}return e[t]}(t);if(!r)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");r.appendChild(n)}},540:t=>{"use strict";t.exports=function(t){var e=document.createElement("style");return t.setAttributes(e,t.attributes),t.insert(e,t.options),e}},56:(t,e,n)=>{"use strict";t.exports=function(t){var e=n.nc;e&&t.setAttribute("nonce",e)}},825:t=>{"use strict";t.exports=function(t){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var e=t.insertStyleElement(t);return{update:function(n){!function(t,e,n){var r="";n.supports&&(r+="@supports (".concat(n.supports,") {")),n.media&&(r+="@media ".concat(n.media," {"));var i=void 0!==n.layer;i&&(r+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," {")),r+=n.css,i&&(r+="}"),n.media&&(r+="}"),n.supports&&(r+="}");var o=n.sourceMap;o&&"undefined"!=typeof btoa&&(r+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(o))))," */")),e.styleTagTransform(r,t,e.options)}(e,t,n)},remove:function(){!function(t){if(null===t.parentNode)return!1;t.parentNode.removeChild(t)}(e)}}}},113:t=>{"use strict";t.exports=function(t,e){if(e.styleSheet)e.styleSheet.cssText=t;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(t))}}}},e={};function n(r){var i=e[r];if(void 0!==i)return i.exports;var o=e[r]={id:r,loaded:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.loaded=!0,o.exports}n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.nmd=t=>(t.paths=[],t.children||(t.children=[]),t),n.nc=void 0;var r={};(()=>{"use strict";n.r(r),n.d(r,{_package:()=>$r,addContextMenu:()=>ci,createMonomerLibraryForPolyTool:()=>li,demoOligoPattern:()=>Xr,demoOligoStructure:()=>Zr,demoTranslateSequence:()=>Qr,getCodeToWeightsMap:()=>zr,getMolfileFromGcrsSequence:()=>Kr,getPolyToolConvertEditor:()=>ri,getTranslationHelper:()=>Wr,linkStrands:()=>Jr,oligoPatternApp:()=>qr,oligoStructureApp:()=>Gr,oligoToolkitApp:()=>Vr,oligoTranslatorApp:()=>jr,polyToolColumnChoice:()=>ai,polyToolConvert2:()=>ii,polyToolConvertTopMenu:()=>ni,polyToolEnumerateChemTopMenu:()=>si,polyToolEnumerateHelmTopMenu:()=>oi,ptEnumeratorChemApp:()=>fi,ptEnumeratorHelmApp:()=>hi,translateOligonucleotideSequence:()=>ti,validateSequence:()=>Yr});const t=grok,e=DG;class i{constructor(t,e=!1){if(this._length=0,this._version=0,this._updateLevel=0,this._selectedCount=0,this._selectedCountVersion=-1,this._selectedIndexesVersion=-1,this._versionedName="",this._versionedNameVersion=-1,this.SHRINK_THRESHOLD=256,"number"==typeof t){const n=t,r=i._createBuffer(n);if(e)for(let t=0;t<r.length;t++)r[t]=-1;this._data=r,this._length=n}else{if(!(t instanceof Uint32Array))throw new Error("Invalid constructor");this._data=t,this._length=e}}getRawData(){return this._data}assureGoez(t,e){if(t<0)throw new Error(`${e} should be greater than zero`)}assureInRange(t,e,n,r){if(t<e||t>n)throw new Error(`Argument ${r} (${t}) out of range (${e}, ${n})`)}copy(t,e,n){for(let r=0;r<n;r++)e[r]=t[r]}copyFrom(t){if(this._length!=t._length)throw new Error(`Lengths differ (${this._length} != ${t._length})`);this.copy(t._data,this._data,this.lengthInInts),this._version++}get length(){return this._length}get buffer(){return this._data}set buffer(t){this._data=t,this._version++}get version(){return this._version}set version(t){this._version=t}incrementVersion(t=!0){this._version++}get lengthInInts(){return Math.floor((this._length+31)/32)}get versionedName(){return this._version==this._versionedNameVersion?this._versionedName:""}set versionedName(t){this._versionedName=t,this._versionedNameVersion=this._version}get self(){return this}setLength(t){if(t<0)throw new Error("should be >= 0");if(t==this._length)return;const e=Math.floor((t+31)/32);if(e>this._data.length||e+this.SHRINK_THRESHOLD<this._data.length){const t=new Uint32Array(e);this.copy(this._data,t,e>this._data.length?this._data.length:e),this._data=t}t>this._length&&(this._length%32>0&&(this._data[this.lengthInInts-1]&=(1<<(this._length%32&31))-1),this._data.fill(0,this.lengthInInts,e)),this._length=t,this._version++}static fromAnd(t,e){if(t._length!=e._length)throw new Error(`Lengths differ (${t._length} != ${e._length})`);const n=new i(t._length);n._length=t._length,n._data=i._createBuffer(n._length),n._version=0;const r=t.lengthInInts;for(let i=0;i<r;i++)n._data[i]=t._data[i]&e._data[i];return n}static _createBuffer(t){return new Uint32Array(Math.floor((t+31)/32))}static fromValues(t){const e=new i(t.length);e._version=0;for(let n=0;n<e._length;n++)t[n]&&(e._data[Math.floor(n/32)]|=1<<(n%32&31));return e}static fromSeq(t,e){const n=new i(t);for(let r=0;r<t;++r)n.setBit(r,e(r));return n._version=0,n}static fromString(t){return i.fromSeq(t.length,(e=>"1"==t.charAt(e)))}static fromUint32Array(t,e){const n=new i(t);return n._data=e,n}static fromBytes(t){const e=t.length,n=new i(8*e);n._data=new Uint32Array(Math.floor((e+3)/4)),n._length=8*e;let r=0,o=0;for(;e-o>=4;)n._data[r++]=255&t[o]|(255&t[o+1])<<8|(255&t[o+2])<<16|(255&t[o+3])<<24,o+=4;return e-o==3&&(n._data[r]=(255&t[o+2])<<16),e-o==2&&(n._data[r]|=(255&t[o+1])<<8),e-o==1&&(n._data[r]|=255&t[o]),n._version=0,n}toString(){return`${this._length} bits, ${this.countBits(!0)} set`}equals(t){if(this==t)return!0;if(null==t)return!1;if(this._length!=t._length)return!1;if(0==this._length)return!0;for(let e=0;e<this._data.length-1;e++)if(this._data[e]!=t._data[e])return!1;for(let e=8*(this._data.length-1);e<this._length;e++)if(this.getBit(e)!=t.getBit(e))return!1;return!0}clone(){const t=new i(0,!1);return t._data=Uint32Array.from(this._data),t._length=this._length,t._version=this._version,t}init(t,e){this.setAll(!1,!1);for(let e=0;e<this._length;e++)t(e)&&(this._data[Math.floor(e/32)]|=1<<(e%32&31));return this.incrementVersion(e),this}invert(t=!0){for(let t=0;t<this._data.length;t++)this._data[t]^=-1;this.incrementVersion(t)}setAll(t,e=!1){const n=t?-1:0,r=this.lengthInInts;for(let t=0;t<r;t++)this._data[t]=n;this.incrementVersion(e)}setIndexes(t,e=!0,n=!0,r=!0){n&&this.setAll(!e,!1);for(const n of t)this.setFast(n,e);this.incrementVersion(r)}everyIndex(t,e=!0){for(const n of t)if(this.getBit(n)!=e)return!1;return!0}anyIndex(t,e=!0){for(const n of t)if(this.getBit(n)==e)return!0;return!1}setWhere(t,e=!0,n=!0,r=!0,i=!0){if(n&&i&&this.setAll(!e,!1),i)for(let n=0;n<this._length;n++)t(n)&&this.setFast(n,e);else for(let n=0;n<this._length;n++)this.setFast(n,t(n)?e:!e);this.incrementVersion(r)}getRange(t,e){this.assureInRange(t,0,this._length-1,"from"),this.assureInRange(e,0,this._length,"to");const n=[];for(let r=t;r<e;++r)n.push(this.getBit(r));return i.fromValues(n)}getRangeAsList(t,e){this.assureInRange(t,0,this._length-1,"from"),this.assureInRange(e,0,this._length,"to");const n=[];for(let r=t;r<e;++r)n.push(this.getBit(r));return n}setRange(t,e,n,r=!0){this.assureInRange(t,0,this._length-1,"from"),this.assureInRange(e,0,this._length-1,"to");const i=Math.min(t,e),o=Math.max(t,e);if(n)for(let t=i;t<=o;t++)this.setTrue(t);else for(let t=i;t<=o;t++)this.setFalse(t);return this.incrementVersion(r),this}setRandom(t,e,n=!0){if(t<0||t>this._length)throw new Error("n must be >= 0 && <= Count");t>this._length/2&&this.setRandom(this._length-t,!e),this.setAll(!e);for(let n=0;n<t;){const t=Math.floor(Math.random()*this._length);this.getBit(t)!=e&&(this.setFast(t,e),n++)}this.incrementVersion(n)}and(t,e=!0){if(this._length!=t._length)throw new Error("Array lengths differ.");for(let e=0,n=this.lengthInInts;e<n;e++)this._data[e]&=t._data[e];return this.incrementVersion(e),this}andNot(t,e=!0){if(this._length!=t._length)throw new Error("Array lengths differ.");const n=this.lengthInInts;for(let e=0;e<n;e++)this._data[e]&=~t._data[e];return this.incrementVersion(e),this}notAnd(t,e=!0){if(this._length!=t._length)throw new Error("Array lengths differ.");for(let e=0,n=this.lengthInInts;e<n;e++)this._data[e]=~this._data[e]&t._data[e];return this.incrementVersion(e),this}not(t=!0){for(let t=0,e=this.lengthInInts;t<e;t++)this._data[t]=~this._data[t];return this.incrementVersion(t),this}or(t,e=!0){if(this._length!=t._length)throw new Error("Array lengths differ.");for(let e=0,n=this.lengthInInts;e<n;e++)this._data[e]|=t._data[e];return this.incrementVersion(e),this}xor(t,e=!0){if(this._length!=t._length)throw new Error("Array lengths differ.");for(let e=0,n=this.lengthInInts;e<n;e++)this._data[e]^=t._data[e];return this.incrementVersion(e),this}insertAt(t,e,n=!1){if(this.assureInRange(t,0,this._length,"pos"),0==e)return;const r=this._length;this.setLength(this._length+e);for(let n=r-1;n>=t;n--)this.setBit(n+e,this.getBit(n));for(let r=t;r<t+e;r++)this.setBit(r,n)}removeAt(t,e=1){if(e<0)throw new Error("n cannot be negative");if(this.assureInRange(t,0,this._length-e,"pos"),this.contains(!0))for(let n=t;n<this._length-e;n++)this.setBit(n,this.getBit(n+e));this.setLength(this._length-e)}removeByMask(t,e=!0){if(this._length!=t.length)throw new Error("length != mask.length");if(t==this)this.setLength(t.countBits(!e)),this.setAll(!e);else{let n=0;for(let r=-1;-1!=(r=t.findNext(r,!e));)this.setFast(n++,this.getBit(r));this._length=n,this._version++}return this}getBit(t){return!!(this._data[Math.floor(t/32)]&1<<(31&t))}setBit(t,e,n=!0){this.setFast(t,e),this._version++}setFast(t,e){e?this._data[Math.floor(t/32)]|=1<<(31&t):this._data[Math.floor(t/32)]&=~(1<<(31&t))}setTrue(t){this._data[Math.floor(t/32)]|=1<<(31&t)}setFalse(t){this._data[Math.floor(t/32)]&=~(1<<(31&t))}trueCount(){return this.countBits(!0)}falseCount(){return this.countBits(!1)}countBits(t){if(0==this._length)return 0;if(this._selectedCountVersion!=this._version){this._selectedCount=0;const t=this.lengthInInts;let e=0;for(;e<t-1;e++)for(let t=this._data[e];0!=t;t>>>=8)this._selectedCount+=i._onBitCount[255&t];let n=this._data[e];const r=31&this._length;for(0!=r&&(n&=~(4294967295<<r));0!=n;n>>>=8)this._selectedCount+=i._onBitCount[255&n];this._selectedCountVersion=this._version}return t?this._selectedCount:this._length-this._selectedCount}countWhere(t){let e=0;if(this.trueCount()==this._length)for(let n=0;n<this._length;n++)e+=t(n)?1:0;else for(let n=-1;-1!=(n=this.findNext(n,!0));)e+=t(n)?1:0;return e}andWithCountBits(t,e){if(0==this._length)return 0;let n=0;const r=this.lengthInInts;let o=0;for(;o<r-1;o++)for(let e=this._data[o]&t._data[o];0!=e;e>>>=8)n+=i._onBitCount[255&e];let s=this._data[o]&t._data[o];const a=31&this._length;for(0!=a&&(s&=~(4294967295<<a));0!=s;s>>>=8)n+=i._onBitCount[255&s];return e?n:this._length-n}clear(){this.setLength(0)}contains(t){return this.findNext(-1,t)>=0}get allTrue(){return this.countBits(!0)==this._length}get allFalse(){return this.countBits(!1)==this._length}get anyTrue(){return this.countBits(!0)>0}get anyFalse(){return this.countBits(!1)>0}findNext(t,e=!0){if(this.assureInRange(t,-1,this._length,"index"),t>=this._length-1)return-1;let n=31&(t=t<0?0:t+1);const r=this.lengthInInts;for(let o=Math.floor(t/32);o<r;o++){let r=e?this._data[o]:~this._data[o];if(0!=n)r&=4294967295<<n&4294967295,n=0;else if(!e&&-4294967296==r)continue;for(let e=0;0!=r;e+=8,r>>>=8){const n=i._firstOnBit[255&r];if(n>=0)return(t=n+32*o+e)>=this._length?-1:t}}return-1}findPrev(t,e=!0){if(0==t)return-1;this.assureInRange(t,-1,this._length,"index");let n=1+(t=t<0?this._length-1:t-1)&31;for(let r=Math.floor(t/32);r>=0;r--){let t=e?this._data[r]:~this._data[r];0!=n&&(t&=~(4294967295<<n),n=0);for(let e=24;0!=t;e-=8,t<<=8){const n=i._lastOnBit[t>>>24];if(n>=0)return n+32*r+e}}return-1}}var o,s,a,u,l,c,h;function f(t={}){const e=function(){if(!t||!t.scoringMatrix||!t.alphabetIndexes)return(t,e)=>t===e?0:1;if(t.scoringMatrix.length!==Object.keys(t.alphabetIndexes).length)throw new Error("Scoring matrix and alphabet indexes should have the same length");const e=t.alphabetIndexes,n=t.scoringMatrix,r=Math.min(...Object.keys(e).map((t=>t.charCodeAt(0))))+1,i=new Float32Array((n.length+r)*(n.length+r));return Object.entries(e).forEach((([t,r])=>{const o=n[r];Object.entries(e).forEach((([e,r])=>{i[t.charCodeAt(0)*n.length+e.charCodeAt(0)]=o[r]}))})),(t,e)=>1-i[t.charCodeAt(0)*n.length+e.charCodeAt(0)]}(),n=t?.threshold??0;return(t,r)=>{let i=0;const o=t.length,s=r.length,a=Math.ceil(Math.max(o,s)*(1-n));o!==s&&(i=Math.abs(o-s));let u=0;for(let n=0;n<Math.min(o,s);n++)if(t[n]!==r[n]&&(u+=e(t[n],r[n]),u>a))return 1;return u+=i,u/=Math.max(o,s),u}}i._onBitCount=Int8Array.from([0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8]),i._firstOnBit=Int8Array.from([-1,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0]),i._lastOnBit=Int8Array.from([-1,0,1,1,2,2,2,2,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7]),function(t){t.Levenshtein="Levenshtein",t.JaroWinkler="Jaro-Winkler",t.Manhattan="Manhattan",t.Onehot="One-Hot"}(o||(o={})),function(t){t.Euclidean="Euclidean"}(s||(s={})),function(t){t.Tanimoto="Tanimoto",t.Dice="Dice",t.Asymmetric="Asymmetric",t.BraunBlanquet="Braun-Blanquet",t.Cosine="Cosine",t.Kulczynski="Kulczynski",t.McConnaughey="Mc-Connaughey",t.RogotGoldberg="Rogot-Goldberg",t.Russel="Russel",t.Sokal="Sokal",t.Hamming="Hamming",t.Euclidean="Euclidean"}(a||(a={})),function(t){t.TanimotoIntArray="TanimotoIntArray"}(u||(u={})),function(t){t.Vector="Vector",t.String="String",t.BitArray="BitArray",t.MacroMolecule="MacroMolecule",t.Number="Number",t.IntArray="IntArray",t.NumberArray="NumberArray"}(l||(l={})),function(t){t.Difference="Difference"}(c||(c={})),function(t){t.CommonItems="Common Items"}(h||(h={}));const d=new Uint32Array(65536),p={gapOpen:1,gapExtend:.6,scoringMatrix:[[4,-1,-2,-2,0,-1,-1,0,-2,-1,-1,-1,-1,-2,-1,1,0,-3,-2,0,-2,-1,0,-4],[-1,5,0,-2,-3,1,0,-2,0,-3,-2,2,-1,-3,-2,-1,-1,-3,-2,-3,-1,0,-1,-4],[-2,0,6,1,-3,0,0,0,1,-3,-3,0,-2,-3,-2,1,0,-4,-2,-3,3,0,-1,-4],[-2,-2,1,6,-3,0,2,-1,-1,-3,-4,-1,-3,-3,-1,0,-1,-4,-3,-3,4,1,-1,-4],[0,-3,-3,-3,9,-3,-4,-3,-3,-1,-1,-3,-1,-2,-3,-1,-1,-2,-2,-1,-3,-3,-2,-4],[-1,1,0,0,-3,5,2,-2,0,-3,-2,1,0,-3,-1,0,-1,-2,-1,-2,0,3,-1,-4],[-1,0,0,2,-4,2,5,-2,0,-3,-3,1,-2,-3,-1,0,-1,-3,-2,-2,1,4,-1,-4],[0,-2,0,-1,-3,-2,-2,6,-2,-4,-4,-2,-3,-3,-2,0,-2,-2,-3,-3,-1,-2,-1,-4],[-2,0,1,-1,-3,0,0,-2,8,-3,-3,-1,-2,-1,-2,-1,-2,-2,2,-3,0,0,-1,-4],[-1,-3,-3,-3,-1,-3,-3,-4,-3,4,2,-3,1,0,-3,-2,-1,-3,-1,3,-3,-3,-1,-4],[-1,-2,-3,-4,-1,-2,-3,-4,-3,2,4,-2,2,0,-3,-2,-1,-2,-1,1,-4,-3,-1,-4],[-1,2,0,-1,-3,1,1,-2,-1,-3,-2,5,-1,-3,-1,0,-1,-3,-2,-2,0,1,-1,-4],[-1,-1,-2,-3,-1,0,-2,-3,-2,1,2,-1,5,0,-2,-1,-1,-1,-1,1,-3,-1,-1,-4],[-2,-3,-3,-3,-2,-3,-3,-3,-1,0,0,-3,0,6,-4,-2,-2,1,3,-1,-3,-3,-1,-4],[-1,-2,-2,-1,-3,-1,-1,-2,-2,-3,-3,-1,-2,-4,7,-1,-1,-4,-3,-2,-2,-1,-2,-4],[1,-1,1,0,-1,0,0,0,-1,-2,-2,0,-1,-2,-1,4,1,-3,-2,-2,0,0,0,-4],[0,-1,0,-1,-1,-1,-1,-2,-2,-1,-1,-1,-1,-2,-1,1,5,-2,-2,0,-1,-1,0,-4],[-3,-3,-4,-4,-2,-2,-3,-2,-2,-3,-2,-3,-1,1,-4,-3,-2,11,2,-3,-4,-3,-2,-4],[-2,-2,-2,-3,-2,-1,-2,-3,2,-1,-1,-2,-1,3,-3,-2,-2,2,7,-1,-3,-2,-1,-4],[0,-3,-3,-3,-1,-2,-2,-3,-3,3,1,-2,1,-1,-2,-2,0,-3,-1,4,-3,-2,-1,-4],[-2,-1,3,4,-3,0,1,-1,0,-3,-4,0,-3,-3,-2,0,-1,-4,-3,-3,4,1,-1,-4],[-1,0,0,1,-3,3,4,-2,0,-3,-3,1,-1,-3,-1,0,-1,-3,-2,-2,1,4,-1,-4],[0,-1,-1,-1,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,0,0,-2,-1,-1,-1,-1,-1,-4],[-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,1]],alphabetIndexes:{A:0,R:1,N:2,D:3,C:4,Q:5,E:6,G:7,H:8,I:9,L:10,K:11,M:12,F:13,P:14,S:15,T:16,W:17,Y:18,V:19,B:20,Z:21,X:22,"*":23}};var g;!function(t){t.HAMMING="Hamming",t.LEVENSHTEIN="Levenshtein",t.NEEDLEMANN_WUNSCH="Needlemann-Wunsch",t.MONOMER_CHEMICAL_DISTANCE="Monomer chemical distance"}(g||(g={}));const m={[g.HAMMING]:f,[g.LEVENSHTEIN]:function(){return(t,e)=>((t,e)=>{if(t.length<e.length){const n=e;e=t,t=n}return 0===e.length?t.length:t.length<=32?((t,e)=>{const n=t.length,r=e.length,i=1<<n-1;let o=-1,s=0,a=n,u=n;for(;u--;)d[t.charCodeAt(u)]|=1<<u;for(u=0;u<r;u++){let t=d[e.charCodeAt(u)];const n=t|s;t|=(t&o)+o^o,s|=~(t|o),o&=t,s&i&&a++,o&i&&a--,s=s<<1|1,o=o<<1|~(n|s),s&=n}for(u=n;u--;)d[t.charCodeAt(u)]=0;return a})(t,e):((t,e)=>{const n=e.length,r=t.length,i=[],o=[],s=Math.ceil(n/32),a=Math.ceil(r/32);for(let t=0;t<s;t++)o[t]=-1,i[t]=0;let u=0;for(;u<a-1;u++){let s=0,a=-1;const l=32*u,c=Math.min(32,r)+l;for(let e=l;e<c;e++)d[t.charCodeAt(e)]|=1<<e;for(let t=0;t<n;t++){const n=d[e.charCodeAt(t)],r=o[t/32|0]>>>t&1,u=i[t/32|0]>>>t&1,l=n|s,c=((n|u)&a)+a^a|n|u;let h=s|~(c|a),f=a&c;h>>>31^r&&(o[t/32|0]^=1<<t),f>>>31^u&&(i[t/32|0]^=1<<t),h=h<<1|r,f=f<<1|u,a=f|~(l|h),s=h&l}for(let e=l;e<c;e++)d[t.charCodeAt(e)]=0}let l=0,c=-1;const h=32*u,f=Math.min(32,r-h)+h;for(let e=h;e<f;e++)d[t.charCodeAt(e)]|=1<<e;let p=r;for(let t=0;t<n;t++){const n=d[e.charCodeAt(t)],s=o[t/32|0]>>>t&1,a=i[t/32|0]>>>t&1,u=n|l,h=((n|a)&c)+c^c|n|a;let f=l|~(h|c),g=c&h;p+=f>>>r-1&1,p-=g>>>r-1&1,f>>>31^s&&(o[t/32|0]^=1<<t),g>>>31^a&&(i[t/32|0]^=1<<t),f=f<<1|s,g=g<<1|a,c=g|~(u|f),l=f&u}for(let e=h;e<f;e++)d[t.charCodeAt(e)]=0;return p})(t,e)})(t,e)/Math.max(t.length,e.length)},[g.NEEDLEMANN_WUNSCH]:function(t){const e=new Uint16Array(65536),{gapOpen:n,gapExtend:r,scoringMatrix:i,alphabetIndexes:o}={...p,...t};Object.entries(o).forEach((([t,n])=>e[t.charCodeAt(0)]=n));const s=[new Float32Array(1e4),new Float32Array(1e4)];return(t,o)=>{const a=new Array(t.length+1).fill(!1),u=new Array(t.length+1).fill(!1);let l=0,c=1;for(let e=1;e<t.length+1;e++)s[0][e]=-r-(e-1)*r,s[1][e]=0;s[0][0]=0;for(let h=1;h<o.length+1;h++){s[c][0]=-r-(h-1)*r;for(let f=1;f<t.length+1;f++){const d=s[l][f-1]+i[e[t.charCodeAt(f-1)]][e[o.charCodeAt(h-1)]],p=s[l][f]-(a[f]||1===h||h===o.length?r:n),g=s[c][f-1]-(u[f-1]||1===f||f===t.length?r:n);s[c][f]=Math.max(d,g,p),s[c][f]===d?(a[f]=!1,u[f]=!1):s[c][f]===g?(a[f]=!1,u[f]=!0):(a[f]=!0,u[f]=!1)}l=c,c=(c+1)%2}const h=Math.min(t.length,o.length);return(h-s[l][t.length])/h}},[g.MONOMER_CHEMICAL_DISTANCE]:f};a.Tanimoto,a.Dice,a.Asymmetric,a.BraunBlanquet,a.Cosine,a.Kulczynski,a.McConnaughey,a.RogotGoldberg,a.Russel,a.Sokal,a.Hamming,a.Euclidean,a.Tanimoto,a.Dice,a.Asymmetric,a.BraunBlanquet,a.Cosine,a.Kulczynski,a.McConnaughey,a.RogotGoldberg,a.Russel,a.Sokal,a.Hamming,a.Euclidean,a.Tanimoto,a.Dice,a.Cosine,a.Tanimoto,a.Asymmetric,a.Cosine,a.Sokal,g.HAMMING,g.LEVENSHTEIN,g.MONOMER_CHEMICAL_DISTANCE,g.NEEDLEMANN_WUNSCH;const y={monomerType:"Backbone",smiles:"",name:"",author:"Datagrok",molfile:"",naturalAnalog:"",rgroups:[],createDate:null,id:0,polymerType:"PEPTIDE",symbol:""},v="p",b=new RegExp(`[rd]\\((\\w)\\)${v}?`,"g"),w=wu;var C,A,x,_,E,T=n.n(w);class S{constructor(t,e,n){this.name=t,this.alphabet=e,this.cutoff=n}}class I extends S{constructor(t,e,n){super(t.name,t.alphabet,t.cutoff),this.freq=e,this.similarity=n}}(E=C||(C={})).FASTA="fasta",E.SEPARATOR="separator",E.HELM="helm",(_=A||(A={})).DNA="DNA",_.RNA="RNA",_.PT="PT",_.UN="UN",function(t){t.aligned="aligned",t.alphabet="alphabet",t.alphabetSize=".alphabetSize",t.alphabetIsMultichar=".alphabetIsMultichar",t.separator="separator",t.isHelmCompatible=".isHelmCompatible",t.positionNames=".positionNames",t.positionLabels=".positionLabels",t.regions=".regions"}(x||(x={}));const N=/(?:\[([A-Za-z0-9_\-,()]+)\])|([A-Za-z\-])/g,M=new class{constructor(){this.fasta={peptide:new Set(["G","L","Y","S","E","Q","D","N","F","A","K","R","H","C","V","P","W","I","M","T"]),dna:new Set(["A","C","G","T"]),rna:new Set(["A","C","G","U"])}}},O=[new S(A.PT,M.fasta.peptide,.5),new S(A.DNA,M.fasta.dna,.55),new S(A.RNA,M.fasta.rna,.55)],L={[C.FASTA]:"-",[C.SEPARATOR]:"",[C.HELM]:"*"};class B extends Float32Array{}function P(t){let e=0;for(let n=0;n<t.length;n++)e+=t[n]*t[n];return Math.sqrt(e)}class R{static makePalette(t,e=!1,n=R){const r={};return t.forEach((t=>{const n=t[0],i=t[1];n.forEach(((t,n)=>{r[t]=this.colourPalette[i][e?0:n]}))})),new n(r)}constructor(t){this._palette=t}get(t,e){return this._palette[t]}}R.undefinedColor="rgb(100,100,100)",R.colourPalette={orange:["rgb(255,187,120)","rgb(245,167,100)","rgb(235,137,70)","rgb(205, 111, 71)"],all_green:["rgb(44,160,44)","rgb(74,160,74)","rgb(23,103,57)","rgb(30,110,96)","rgb(60,131,95)","rgb(24,110,79)","rgb(152,223,138)","rgb(182, 223, 138)","rgb(152, 193, 138)"],all_blue:["rgb(31,119,180)","rgb(23,190,207)","rgb(122, 102, 189)","rgb(158,218,229)","rgb(141, 124, 217)","rgb(31, 120, 150)"],magenta:["rgb(162,106,192)","rgb(197,165,224)","rgb(208,113,218)"],red:["rgb(214,39,40)","rgb(255,152,150)"],st_blue:["rgb(23,190,207)","rgb(158,218,229)","rgb(31,119,180)"],dark_blue:["rgb(31,119,180)","rgb(31, 120, 150)"],light_blue:["rgb(23,190,207)","rgb(158,218,229)","rgb(108, 218, 229)","rgb(23,190,227)"],lilac_blue:["rgb(124,102,211)","rgb(149,134,217)","rgb(97, 81, 150)"],dark_green:["rgb(23,103,57)","rgb(30,110,96)","rgb(60,131,95)","rgb(24,110,79)"],green:["rgb(44,160,44)","rgb(74,160,74)"],light_green:["rgb(152,223,138)","rgb(182, 223, 138)","rgb(152, 193, 138)"],st_green:["rgb(44,160,44)","rgb(152,223,138)","rgb(39, 174, 96)","rgb(74,160,74)"],pink:["rgb(247,182,210)"],brown:["rgb(140,86,75)","rgb(102, 62, 54)"],gray:["rgb(127,127,127)","rgb(199,199,199)","rgb(196,156,148)","rgb(222, 222, 180)"],yellow:["rgb(188,189,34)"],white:["rgb(230,230,230)"]};class D extends R{static get Lesk(){return void 0===this.lesk&&(this.lesk=this.makePalette([[["G","A","S","T"],"orange"],[["C","V","I","L","P","F","Y","M","W"],"all_green"],[["N","Q","H"],"magenta"],[["D","E"],"red"],[["K","R"],"all_blue"]],!1,D)),this.lesk}static get GrokGroups(){return void 0===this.grokGroups&&(this.grokGroups=this.makePalette([[["C","U"],"yellow"],[["G","P"],"red"],[["A","V","I","L","M","F","Y","W"],"all_green"],[["R","H","K"],"light_blue"],[["D","E"],"dark_blue"],[["S","T","N","Q"],"orange"]],!1,D)),this.grokGroups}static get RasMol(){return void 0===this.rasMol&&(this.rasMol=new D({D:"#E60A0A",E:"#E60A0A",C:"#E6E600",M:"#E6E600",K:"#145AFF",R:"#145AFF",S:"#FA9600",T:"#FA9600",F:"#3232AA",Y:"#3232AA",N:"#00DCDC",Q:"#00DCDC",G:"#EBEBEB",L:"#0F820F",V:"#0F820F",I:"#0F820F",A:"#C8C8C8",W:"#B45AB4",H:"#8282D2",P:"#DC9682",others:"#BEA06E"})),this.rasMol}get(t){const e=t in D.aaSynonyms?D.aaSynonyms[t]:t;return super.get(e)}}D.aaSynonyms={MeNle:"L",MeA:"A",MeG:"G",MeF:"F"};class F{static getPalette(t="grok"){switch(t){case"grok":return D.GrokGroups;case"lesk":return D.Lesk;default:throw new Error(`ChemPalette: scheme \`${t}\` does not exist`)}}static getInnerOuter(t){let e=0,n="",r="";for(const i of t)"("==i?e++:")"==i?e--:e?n+=i:r+=i;return isNaN(parseInt(n))?[r,n]:[r,""]}static getColorAAPivot(t="",e="grok"){const n=this.getPalette(e);let[r,i]=this.getInnerOuter(t);if(r=r.length>6?`${r.slice(0,3)}...`:r,i=i.length>6?`${i.slice(0,3)}...`:i,1==t.length||"("==t[1]){const e=t[0]?.toUpperCase();return e in n?[n.get(e),e,i,1]:[this.undefinedColor,r,i,1]}if("d"==t[0]&&t[1]in n&&(2==t.length||"("==t[2])){const e=t[1]?.toUpperCase();return e in n?[n.get(e),e,i,2]:[this.undefinedColor,r,i,2]}if(t.substring(0,3)in this.AAFullNames&&(3==t.length||"("==t[3])){const e=this.AAFullNames[t.substring(0,3)];return e in n?[n.get(e),e,i,3]:[this.undefinedColor,r,i,3]}if(t[0]?.toLowerCase()==t[0]&&t.substring(1,3)in this.AAFullNames&&(4==t.length||"("==t[4])){const e=this.AAFullNames[t.substring(1,3)];return e in n?[n.get(e),e,i,4]:[this.undefinedColor,r,i,4]}return[this.undefinedColor,r,i,0]}}F.SemType="Aminoacids",F.SemTypeMultipleAlignment="AminoacidsMultipleAlignment",F.undefinedColor="rgb(100,100,100)",F.Names={G:"Glycine",L:"Leucine",Y:"Tyrosine",S:"Serine",E:"Glutamic acid",Q:"Glutamine",D:"Aspartic acid",N:"Asparagine",F:"Phenylalanine",A:"Alanine",K:"Lysine",R:"Arginine",H:"Histidine",C:"Cysteine",V:"Valine",P:"Proline",W:"Tryptophan",I:"Isoleucine",M:"Methionine",T:"Threonine"},F.AASmiles={G:"NCC(=O)O",L:"N[C@H](CC(C)C)C(=O)O",Y:"NC(CC1=CC=C(O)C=C1)C(=O)O",S:"NC(CO)C(=O)O",E:"N[C@@H](CCC(O)=O)C(=O)O",Q:"N[C@@H](CCC(N)=O)C(=O)O",D:"N[C@@H](CC(O)=O)C(=O)O",N:"N[C@@H](CC(N)=O)C(=O)O",F:"NC(CC1=CC=CC=C1)C(=O)O",A:"N[C@H](C)C(=O)O",K:"NC(CCCCN)C(=O)O",R:"N[C@H](CCCNC(=N)C)C(=O)O",H:"NC(CC1=CN=C[N]1)C(=O)O",C:"N[C@@H](CS)C(=O)O",V:"NC(C(C)C)C(=O)O",P:"N(CCC1)C1C(=O)O",W:"N[C@@H](Cc1c2ccccc2n([H])c1)C(=O)O",I:"N[C@H]([C@H](C)CC)C(=O)O",M:"NC(CCSC)C(=O)O",T:"NC(C(O)C)C(=O)O"},F.AASmilesTruncated={G:"*C*",L:"CC(C)C[C@H](*)*",Y:"C1=CC(=CC=C1CC(*)*)O",S:"OCC(*)C*",E:"*[C@@H](CCC(O)=O)*",Q:"*N[C@@H](CCC(N)=O)*",D:"*[C@@H](CC(O)=O)*",N:"*[C@@H](CC(N)=O)*",F:"C1=CC=C(C=C1)CC(*)*",A:"C[C@H](*)*",K:"C(CCN)CC(*)*",R:"*[C@H](CCCNC(=N)C)*",H:"C1=C(NC=N1)CC(*)*",C:"C([C@@H](*)*)S",V:"CC(C)C(*)*",P:"C1CCN(*)C1*",W:"*[C@@H](Cc1c2ccccc2n([H])c1)*",I:"CC[C@H](C)[C@H](*)*",M:"CSCCC(*)*",T:"CC(O)C(*)*"},F.AAFullNames={Ala:"A",Arg:"R",Asn:"N",Asp:"D",Cys:"C",Gln:"Q",Glu:"E",Gly:"G",His:"H",Ile:"I",Leu:"L",Lys:"K",Met:"M",Phe:"F",Pro:"P",Ser:"S",Thr:"T",Trp:"W",Tyr:"Y",Val:"V"};class H{}function U(t,n=!0){if(null==t)return"rgb(100,100,100)";const r=e.Color.fromHtml(t);if(n){const t=e.Color.g(r),n=e.Color.r(r),i=e.Color.b(r),o=Math.sqrt(Math.pow(0-n,2)+Math.pow(0-t,2)+Math.pow(0-i,2));if(o>210)return`rgb(${n/o*210},${t/o*210},${i/o*210})`}return e.Color.toRgb(r)}H.SemType="Nucleotides",H.SemTypeMultipleAlignment="NucleotidesMultipleAlignment",H.Names={A:"Adenine",C:"Cytosine",G:"Guanine",T:"Thymine",U:"Uracil"};class k{static hashCode(t){let e=0;if(0===t.length)return e;for(let n=0;n<t.length;n++)e=(e<<5)-e+t.charCodeAt(n),e|=0;return e}}class V{}class j extends V{static buildPalette(){return rt().then((t=>{t.awaitLoaded().then((()=>{const e=t.getMonomerLib();e.onChanged.subscribe((()=>{j.customMonomerColors={},j.polymerTypes=e.getPolymerTypes();for(const t of this.polymerTypes){const n=e.getMonomerSymbolsByType(t);for(const r of n){const n=e.getMonomer(t,r);n?.meta?.colors?.default?.background&&(this.customMonomerColors[r]||(this.customMonomerColors[r]={}),this.customMonomerColors[r][t]=U(n.meta.colors.default.background,!1))}}}))}))})),[].concat(...Object.values(R.colourPalette))}get(t,e){const n=j.customMonomerColors[t],r=e??"PEPTIDE";if(n&&n[r])return n[r];const i=k.hashCode(t)%j.palette.length;return U(j.palette[i])}}j.palette=j.buildPalette(),j.customMonomerColors={},j.polymerTypes=[];class q{get length(){return this.mList.length}isGap(t){return this.getOriginal(t)===this.gapOriginalMonomer}getCanonical(t){if(this.length<=t)throw new Error("Index out of bounds");const e=this.mList[t];return e!==this.gapOriginalMonomer?e:""}getOriginal(t){if(this.length<=t)throw new Error("Index out of bounds");return this.mList[t]}constructor(t,e){this.mList=t,this.gapOriginalMonomer=e}}class G{get length(){return this.seqS.length}isGap(t){return this.getOriginal(t)===L[C.FASTA]}getCanonical(t){if(this.length<=t)throw new Error("Index out of bounds");return this.isGap(t)?"":this.seqS[t]}getOriginal(t){if(this.length<=t)throw new Error("Index out of bounds");return this.seqS[t]}constructor(t){this.seqS=t}}const W=t=>{const e=T()(t.toString().matchAll(N)).map((t=>t[2]??t[1])).toArray();return new q(e,L[C.FASTA])},z=t=>t?new G(t):new q([],L[C.FASTA]);function Y(t,e=void 0){return n=>{if(n){let r;const i=new RegExp(String.raw`"-"|'-'|[^${t}]+`,"g");if(void 0!==e){i.lastIndex=0,r=new Array(Math.ceil(e));let t=null,o=0;for(;null!==(t=i.exec(n))&&o<e;)r[o++]=t[0].replace('"-"',"").replace("'-'","");r.splice(o)}else r=n.replaceAll('"-"',"").replaceAll("'-'","").split(t,e);return new q(r,L[C.SEPARATOR])}return new q([],L[C.SEPARATOR])}}const K=/(PEPTIDE1|DNA1|RNA1)\{([^}]+)}/g,J=/\[([^\[\]]+)]/g,Q=t=>{K.lastIndex=0;const e=K.exec(t.toString()),n=e?e[2]:null,r=n?n.split("."):[];return new q(r.map((t=>{J.lastIndex=0;const e=J.exec(t);return e&&e.length>=2?e[1]:t})),L[C.HELM])};function X(t,e,n="-"){const r=e.map((e=>{const r=function(t,e,n="-"){const r=new Set([...new Set(Object.keys(t)),...e]);r.delete(n);const i=[],o=[];for(const n of r)i.push(n in t?t[n]:0),o.push(e.has(n)?1:0);const s=new B(i),a=new B(o);return function(t,e){if(t.length!=e.length)throw new Error("The dimensionality of the vectors must match");let n=0;for(let r=0;r<t.length;r++)n+=t[r]*e[r];return n}(s,a)/(P(s)*P(a))}(t,e.alphabet,n);return new I(e,t,r)}));let i;const o=Math.max(...r.map((t=>t.similarity>t.cutoff?t.similarity:-1)));return i=o>0?r.find((t=>t.similarity===o)).name:A.UN,i}const Z=new class{constructor(){this.seqHandler="seq-handler",this.notationProvider="seq-handler.notation-provider"}};class tt{constructor(t){if(this._splitter=null,this.cached=!0,this._splitted=null,this.columnVersion=null,this._stats=null,this._maxLength=null,this._posList=null,this._joiner=void 0,t.type!==e.TYPE.STRING)throw new Error(`Unexpected column type '${t.type}', must be '${e.TYPE.STRING}'.`);this._column=t;const n=this._column.meta.units;if(null==n)throw new Error("Units are not specified in column");if(this._units=n,this._notation=this.getNotation(),this._defaultGapOriginal=this.isFasta()?L[C.FASTA]:this.isHelm()?L[C.HELM]:L[C.SEPARATOR],!this.column.tags.has(x.aligned)||!this.column.tags.has(x.alphabet)||!this.column.tags.has(x.alphabetIsMultichar)&&!this.isHelm()&&this.alphabet===A.UN)if(this.isFasta())tt.setUnitsToFastaColumn(this);else if(this.isSeparator()){const e=t.getTag(x.separator);tt.setUnitsToSeparatorColumn(this,e)}else{if(!this.isHelm())throw new Error(`Unexpected units '${this.column.meta.units}'.`);tt.setUnitsToHelmColumn(this)}if(!this.column.tags.has(x.alphabetIsMultichar))if(this.isHelm())this.column.setTag(x.alphabetIsMultichar,"true");else if(["UN"].includes(this.alphabet))throw new Error(`For column '${this.column.name}' of alphabet '${this.alphabet}' tag '${x.alphabetIsMultichar}' is mandatory.`);this.notationProvider=this.column.temp[Z.notationProvider]??null,this.columnVersion=this.column.version}static setUnitsToFastaColumn(t){if(t.column.semType!==e.SEMTYPE.MACROMOLECULE||t.column.meta.units!==C.FASTA)throw new Error(`The column of notation '${C.FASTA}' must be '${e.SEMTYPE.MACROMOLECULE}'.`);t.column.meta.units=C.FASTA,tt.setTags(t)}static setUnitsToSeparatorColumn(t,n){if(t.column.semType!==e.SEMTYPE.MACROMOLECULE||t.column.meta.units!==C.SEPARATOR)throw new Error(`The column of notation '${C.SEPARATOR}' must be '${e.SEMTYPE.MACROMOLECULE}'.`);if(!n)throw new Error(`The column of notation '${C.SEPARATOR}' must have the separator tag.`);t.column.meta.units=C.SEPARATOR,t.column.setTag(x.separator,n),tt.setTags(t)}static setUnitsToHelmColumn(t){if(t.column.semType!==e.SEMTYPE.MACROMOLECULE)throw new Error(`The column of notation '${C.HELM}' must be '${e.SEMTYPE.MACROMOLECULE}'`);t.column.meta.units=C.HELM,tt.setTags(t)}static setTags(t){const e=t.column.meta.units;if([C.FASTA,C.SEPARATOR].includes(e)){if(!t.column.getTag(x.alphabet)&&0===Object.keys(t.stats.freq).length)throw new Error("Alphabet is empty and not annotated.");let e=t.column.getTag(x.aligned);null===e&&(e=t.stats.sameLength?"SEQ.MSA":"SEQ",t.column.setTag(x.aligned,e));let n=t.column.getTag(x.alphabet);if(null===n&&(n=X(t.stats.freq,O),t.column.setTag(x.alphabet,n)),n===A.UN){const e=Object.keys(t.stats.freq).length,n=Object.keys(t.stats.freq).some((t=>t.length>1));t.column.setTag(x.alphabetSize,e.toString()),t.column.setTag(x.alphabetIsMultichar,n?"true":"false")}}}get column(){return this._column}get length(){return this._column.length}get units(){return this._units}get notation(){return this._notation}get defaultGapOriginal(){return this._defaultGapOriginal}get separator(){const t=this.column.getTag(x.separator)??void 0;if(this.notation===C.SEPARATOR&&void 0===t)throw new Error(`Separator is mandatory for column '${this.column.name}' of notation '${this.notation}'.`);return t}get aligned(){const t=this.column.getTag(x.aligned);if(!t&&(this.isFasta()||this.isSeparator()))throw new Error("Tag aligned not set");return t}get alphabet(){const t=this.column.getTag(x.alphabet);if(!t&&(this.isFasta()||this.isSeparator()))throw new Error("Tag alphabet not set");return t}get helmCompatible(){return this.column.getTag(x.isHelmCompatible)}getAlphabetSize(){if(this.notation==C.HELM||this.alphabet==A.UN){const t=this.column.getTag(x.alphabetSize);let e;if(t)e=parseInt(t);else{const t=this.stats;e=Object.keys(t.freq).length}return e}switch(this.alphabet){case A.PT:return 20;case A.DNA:case A.RNA:return 4;case"NT":return console.warn("Unexpected alphabet 'NT'."),4;default:throw new Error(`Unexpected alphabet '${this.alphabet}'.`)}}getAlphabetIsMultichar(){return this.notation===C.HELM||this.alphabet===A.UN&&"true"===this.column.getTag(x.alphabetIsMultichar)}getSplitted(t,e){if(this.cached&&void 0===e){this.column.version===this.columnVersion&&null!==this._splitted||(this.columnVersion=this.column.version,this._splitted=new Array(this.column.length));let e=this._splitted[t]?this._splitted[t].deref():void 0;if(!e){const n=this.column.get(t);e=this.splitter(n),this._splitted[t]=new WeakRef(e)}return e}{const n=this.column.get(t);return this.getSplitter(e)(n)}}async getHelm(t,e){const n=this.column.get(t);return this.notationProvider?(await this.notationProvider.getHelm(this.column,e)).get(t):this.convertToHelm(n)}get stats(){if(null===this._stats){const t={};let e=!0,n=null;const r=this.column.length;for(let i=0;i<r;++i){const r=this.getSplitted(i);null==n?n=r.length:r.length!==n&&(e=!1);for(let e=0;e<r.length;++e){const n=r.getCanonical(e);n in t||(t[n]=0),t[n]+=1}}this._stats={freq:t,sameLength:e}}return this._stats}get maxLength(){return null===this._maxLength&&(this._maxLength=0===this.column.length?0:Math.max(...T().count(0).take(this.column.length).map((t=>this.getSplitted(t).length)))),this._maxLength}get posList(){if(null===this._posList){const t=this.column.getTag(x.positionNames);this._posList=t?t.split(", ").map((t=>t.trim())):T().count(1).take(this.maxLength).map((t=>t.toString())).toArray()}return this._posList}isFasta(){return this.notation===C.FASTA}isSeparator(){return this.notation===C.SEPARATOR}isHelm(){return this.notation===C.HELM}isRna(){return this.alphabet===A.RNA}isDna(){return this.alphabet===A.DNA}isPeptide(){return this.alphabet===A.PT}isMsa(){return!!this.aligned&&this.aligned.toUpperCase().includes("MSA")}isHelmCompatible(){return"true"===this.helmCompatible}isGap(t){return!t||t===this._defaultGapOriginal}getNotation(){if(this.units.toLowerCase().startsWith(C.FASTA))return C.FASTA;if(this.units.toLowerCase().startsWith(C.SEPARATOR))return C.SEPARATOR;if(this.units.toLowerCase().startsWith(C.HELM))return C.HELM;throw new Error(`Column '${this.column.name}' has unexpected notation '${this.units}'.`)}getHelmWrappers(){return[this.isDna()||this.isRna()||this.isHelmCompatible()?"RNA1{":"PEPTIDE1{",this.isDna()?"d(":this.isRna()?"r(":"",this.isDna()||this.isRna()?")p":"","}$$$$"]}getNewColumn(t,n,r,i){const o=this.column,s=t.toLowerCase()+"("+o.name+")",a=r??o.dataFrame?.columns.getUnusedName(s)??s,u=e.Column.fromList("string",a,i??new Array(this.column.length).fill(""));if(u.semType=e.SEMTYPE.MACROMOLECULE,u.meta.units=t,t===C.SEPARATOR){if(!n)throw new Error(`Notation '${C.SEPARATOR}' requires separator value.`);u.setTag(x.separator,n)}u.setTag(e.TAGS.CELL_RENDERER,t===C.HELM?"helm":"sequence");const l=o.getTag(x.aligned);l&&u.setTag(x.aligned,l);let c=o.getTag(x.alphabet);c||this.notation!==C.HELM||t===C.HELM||(c=A.UN),null!=c&&u.setTag(x.alphabet,c);let h=o.getTag(x.alphabetSize);null!=c&&h&&u.setTag(x.alphabetSize,h);const f=o.getTag(x.alphabetIsMultichar);return null!=c&&void 0!==f&&u.setTag(x.alphabetIsMultichar,f),t==C.HELM&&(h=this.getAlphabetSize().toString(),u.setTag(x.alphabetSize,h)),u}getNewColumnFromList(t,e){return this.getNewColumn(this.notation,this.separator,t,e)}static getNewColumn(t){const e=tt.forColumn(t),n=e.notation;return e.getNewColumn(n)}static unitsStringIsValid(t){return t=t.toLowerCase(),[C.FASTA,C.SEPARATOR,C.HELM].some((e=>t.startsWith(e.toLowerCase())))}static getNewColumnFromParams(t,n,r){if(!tt.unitsStringIsValid(r))throw new Error("Invalid format of 'units' parameter");const i=e.Column.fromList("string",n,new Array(t).fill(""));return i.semType=e.SEMTYPE.MACROMOLECULE,i.meta.units=r,i}getSplitter(t){let e=null;if(e=this.notationProvider?this.notationProvider.splitter:null,e)return e;if(this.units.toLowerCase().startsWith(C.FASTA))return null===this.column.getTag(x.alphabet)||this.getAlphabetIsMultichar()?W:z;if(this.units.toLowerCase().startsWith(C.SEPARATOR))return Y(this.separator,t);if(this.units.toLowerCase().startsWith(C.HELM))return Q;throw new Error(`Unexpected units ${this.units} .`)}split(t){return this.splitter(t)}getDistanceFunctionName(){if(!this.isFasta())throw new Error("Only FASTA notation is supported");if(this.isMsa())return g.HAMMING;switch(this.alphabet){case A.DNA:case A.RNA:case A.PT:}return g.LEVENSHTEIN}getDistanceFunction(){return m[this.getDistanceFunctionName()]()}async checkHelmCompatibility(){if(this.column.tags.has(x.isHelmCompatible))return"true"===this.column.getTag(x.isHelmCompatible);const t=(await rt()).getMonomerLib().getMonomerSymbolsByType("PEPTIDE"),e=new Set(t),n=(Y(this.separator),new Set),r=this.column.length,i=this.column.getRawData();for(let t=0;t<r;++t){const r=i[t];if(!(r in n)){n.add(r);const i=this.getSplitted(t);for(let t=0;t<i.length;++t){const n=i.getCanonical(t);if(!e.has(n))return this.column.setTag(x.isHelmCompatible,"false"),!1}}}return this.column.setTag(x.isHelmCompatible,"true"),!0}get splitter(){return null===this._splitter&&(this._splitter=this.getSplitter()),this._splitter}toFasta(t){return t===C.FASTA}toSeparator(t){return t===C.SEPARATOR}toHelm(t){return t===C.HELM}convertHelmToFastaSeparator(t,e,n,r){r||(r=this.toFasta(e)?L[C.FASTA]:L[C.SEPARATOR]),n||(n=this.toFasta(e)?"":this.separator);const i=t.startsWith("RNA"),o=this.splitter(t),s=[];for(let t=0;t<o.length;++t){let n=o.getOriginal(t);if(i&&(n=n.replace(b,"")),n===L[C.HELM])s.push(r);else if(this.toFasta(e)&&n.length>1){const t="["+n+"]";s.push(t)}else s.push(n)}return s.join(n)}convert(t,e){const n=this.getJoiner({notation:t,separator:e}),r=this.getNewColumn(t,e);return r.init((t=>{const e=this.getSplitted(t);return n(e)})),r}getRegion(t,e,n){const r=this.getNewColumn(this.notation,this.separator);r.name=n;const i=t??0,o=e??this.maxLength-1,s=this.getJoiner(),a=o-i+1,u=L[this.notation];r.init((t=>{const e=this.getSplitted(t),n=new Array(a);for(let t=0;t<a;++t){const r=i+t;n[t]=r<e.length?e.getOriginal(r):u}return s(new q(n,u))}));const l=t=>{const e=t.split(",").map((t=>t.trim())),n=new Array(a);for(let t=0;t<a;++t){const r=i+t;n[t]=r<e.length?e[r]:"?"}return n.join(", ")},c=this.column.getTag(x.positionNames);c&&r.setTag(x.positionNames,l(c));const h=this.column.getTag(x.positionLabels);return h&&r.setTag(x.positionLabels,l(h)),r}get joiner(){return this._joiner||(this._joiner=this.getJoiner()),this._joiner}getJoiner(t){const e=t?t.notation:this.notation,n=t?t.separator:this.separator;let r;const i=this;switch(e){case C.FASTA:r=function(t){return i.joinToFasta(t,i.isHelm())};break;case C.SEPARATOR:if(!n)throw new Error(`Separator is mandatory for notation '${e}'.`);r=function(t){return et(t,n,i.isHelm())};break;case C.HELM:{const t=i.alphabet===A.DNA||i.alphabet===A.RNA,e=i.getHelmWrappers();r=function(n){return nt(n,e,t)};break}default:throw new Error(`Unexpected notation '${e}'.`)}return r}getConverter(t,e=void 0){if(t===C.SEPARATOR&&!e)throw new Error(`Target separator is not specified for target units '${C.SEPARATOR}'.`);const n=this;if(t===C.FASTA)return function(t){return n.convertToFasta(t)};if(t===C.HELM)return function(t){return n.convertToHelm(t)};if(t===C.SEPARATOR)return function(t){return n.convertToSeparator(t,e)};throw new Error}static forColumn(t){let e=t.temp[Z.seqHandler];return e&&e.columnVersion===t.version||(e=t.temp[Z.seqHandler]=new tt(t)),e}joinToFasta(t,e){const n=new Array(t.length);for(let r=0;r<t.length;++r){const i=t.getOriginal(r);let o=t.getOriginal(r);e&&(o=o.replace(b,"$1")),""===i?o=L[C.FASTA]:i===v?o="":o.length>1&&(o="["+o+"]"),n[r]=o}return n.join("")}convertToFasta(t){const e=this.splitter,n=this.isHelm()?this.splitterAsHelmNucl(t):e(t);return this.joinToFasta(n,this.isHelm())}convertToSeparator(t,e){return et(this.isHelm()?this.splitterAsHelmNucl(t):this.splitter(t),e,this.isHelm())}convertToHelm(t){if(this.notation==C.HELM)return t;const e=this.getHelmWrappers(),n=t.startsWith("DNA")||t.startsWith("RNA");return nt(this.splitter(t),e,n)}splitterAsHelmNucl(t){const e=this.splitter(t),n=new Array(e.length),r=t.startsWith("DNA"),i=t.startsWith("RNA");for(let t=0;t<e.length;++t){let o=e.getOriginal(t);(r||i)&&(o=o.replace(b,"$1"),o=o===v?null:o),n[t]=o||null}return new q(n.filter((t=>!!t)),L[C.HELM])}}function et(t,e,n){const r=new Array(t.length);for(let e=0;e<t.length;++e){const i=t.getCanonical(e);let o=t.getOriginal(e);n&&(o=o.replace(b,"$1")),""===i?o=L[C.SEPARATOR]:i===v&&(o=""),r[e]=o}return r.join(e)}function nt(t,e,n){const[r,i,o,s]=e,a=new Array(t.length);for(let e=0;e<t.length;++e){const r=t.getCanonical(e);let s=t.getOriginal(e);""===r?s=L[C.HELM]:(n&&(s=s.replace(b,"$1")),s=1===s.length?`${i}${s}${o}`:`${i}[${s}]${o}`),a[e]=s}return`${r}${a.join(".")}${s}`}async function rt(){const t=e.Func.find({package:"Bio",name:"getMonomerLibHelper"});if(0===t.length)throw new Error('Package "Bio" must be installed for MonomerLibHelper.');return(await t[0].prepare().call()).getOutputParamValue()}class it{constructor(t,e,n=""){this.target=t,this.debugEnabled=e,this.prefix=n}error(t,e,n){return this.target.error(this.prefix+t,e,n)}warning(t,e){return this.target.warning(this.prefix+t,e)}info(t,e){return this.target.info(this.prefix+t,e)}debug(t,e){if(this.debugEnabled)return this.target.debug(this.prefix+t,e)}}const ot="System:AppData/SequenceTranslator/monomers-sample",st="pattern-app-data.json",at="formats-to-helm.json",ut="codes-to-symbols.json",lt="linkers.json",ct=["A","G","C","U"];var ht;function ft(t){return t.sort(((t,e)=>e.length-t.length))}function dt(t,e){const n=document.createElement("a");n.setAttribute("href","data:text/plain;charset=utf-8,"+e),n.setAttribute("download",t),n.click()}async function pt(e,n,r="Oligo app"){try{return await e()}catch(e){const n=e.hasOwnProperty("message")?e.message:e.toString();throw t.shell.error(`${r} error: `+n),e}finally{n&&n()}}!function(t){t.HELM="HELM",t.AXOLABS="Axolabs"}(ht||(ht={}));class gt{constructor(t,e){this.sequence=t,this.th=e,this.libWrapper=this.th.monomerLibWrapper}getInvalidCodeIndex(t){if(t===ht.HELM)return this.sequence.length;const e=["r","d"],n=ft(this.libWrapper.getCodesByFormat(t));let r=0;for(;r<this.sequence.length;){const t=n.find((t=>t===this.sequence.substring(r,r+t.length)));if(!t)break;if(r>1&&ct.includes(this.sequence[r])&&e.includes(this.sequence[r-2]))break;if(e.includes(this.sequence[r+1])&&ct.includes(this.sequence[r])){r++;break}r+=t.length}return r===this.sequence.length&&(r=-1),r}isValidSequence(t){return-1===this.getInvalidCodeIndex(t)}}class mt{constructor(t,e,n,r){this.patternAppData=t,this.codesToHelmDict=e,this.codesToSymbolsDict=n,this.monomersWithPhosphate=r}}async function yt(e){const n=await Promise.all([st,at,ut,lt].map((n=>async function(e,n){const r=e.endsWith("/")?`${e}${n}`:`${e}/${n}`;try{const e=await t.dapi.files.readAsText(r);return JSON.parse(e)}catch(t){console.error(`Error loading json from '${r}':`,t)}}(e,n))));return new mt(n[0],n[1],n[2],n[3])}class vt{constructor(t,e){if(this.lib=t,this.jsonData=e,null===this.lib)throw new Error("SequenceTranslator: monomer library is null");this.allMonomers=this.getAllMonomers()}formatMonomerForViewer(t){const e={};return e.name=t.symbol,e.symbol=t.symbol,e.molfile=t.molfile,this.getAllFormats().forEach((n=>{if(n===ht.HELM)return;const r=this.jsonData.codesToSymbolsDict[n],i=Object.keys(r).filter((e=>r[e]===t.symbol));e[n]=i.join(", ")})),e}getAllMonomers(){const t=this.lib.getPolymerTypes();let e=[];for(const n of t){const t=this.lib.getMonomerSymbolsByType(n).map((t=>this.lib.getMonomer(n,t))).filter((t=>null!==t));e=e.concat(t)}return e}getMonomer(t){const e=this.lib.getMonomer("RNA",t);if(void 0===e)throw new Error(`SequenceTranslator: no monomer with symbol ${t}`);return e}getMolfileBySymbol(t){return this.getMonomer(t).molfile}getNaturalAnalogBySymbol(t){const e=this.getMonomer(t).naturalAnalog;if(!e)throw new Error(`ST: no natural analog for ${t}`);return e}isModification(t){return!!this.getMolfileBySymbol(t).includes("MODIFICATION")}getCodeToSymbolMap(t){return new Map(Object.entries(this.jsonData.codesToSymbolsDict[t]))}getCodesByFormat(t){return Object.keys(this.jsonData.codesToSymbolsDict[t])}getAllFormats(){return Object.keys(this.jsonData.codesToSymbolsDict)}getTableForViewer(){const t=this.allMonomers.map((t=>this.formatMonomerForViewer(t)));return e.DataFrame.fromObjects(t)}getCodesToWeightsMap(){const t=new Map;return Object.entries(this.jsonData.codesToSymbolsDict).forEach((([e,n])=>{Object.entries(n).forEach((([e,n])=>{const r=this.getMonomer(n),i=r.meta?.molecularWeight;t.set(e,i)}))})),t}}const bt="<?>",wt=(t,e)=>e.length-t.length;class Ct{constructor(t){this.th=t,this.formats=this.getFormats()}getFormatNames(){return this.formats.sort()}getCodesByFormat(t){if(this.validateFormat(t),this.isHelm(t))throw new Error("Codes cannot be obtained for HELM");return this.getFormatCodes(t)}getHelmToFormatDict(t){return this.validateFormat(t),function(t){const e={};return Object.values(t).forEach((t=>{Object.entries(t).forEach((([t,n])=>{const r=n.replace(/\)p/g,")").replace(/\]p/g,"]");void 0===e[r]?e[r]=[t]:e[r].push(t)}))})),Object.entries(e).forEach((([t,n])=>{const r=n.sort(wt);e[t]=r[0]})),e}(this.th.jsonData.codesToHelmDict[t])}getFormatToHelmDict(t){this.validateFormat(t);const e=this.th.jsonData.codesToHelmDict[t];return Object.assign({},...Object.values(e))}getTargetFormatHelmCodes(t){this.validateFormat(t);const e=this.getHelmToFormatDict(t);return Object.keys(e).sort(wt)}getTargetFormatHelmCodesRegExp(t){this.validateFormat(t);const e=this.getTargetFormatHelmCodes(t);return new RegExp(At(e)+"|.","g")}getFormatRegExp(t){if(this.validateFormat(t),this.isHelm(t))throw new Error("Helm RegExp can be built for non-HELM target formats");return this.getNonHelmFormatRegExp(t)}getPhosphateHelmCodesRegExp(t){this.validateFormat(t);const e=this.th.jsonData.codesToHelmDict[t],n=At(Array.from(new Set(Object.values(e.phosphateBackbone))).sort(wt));return new RegExp(`p.(${n})`,"g")}isValidFormat(t){return this.formats.includes(t)}getFormats(){return Object.keys(this.th.jsonData.codesToHelmDict)}validateFormat(t){if(!this.isValidFormat(t))throw new Error(`Invalid format: ${t}`)}isHelm(t){return t===ht.HELM}getFormatCodes(t){const e=this.getFormatToHelmDict(t);return Object.keys(e).sort(wt)}getNonHelmFormatRegExp(t){const e=this.getCodesByFormat(t);return new RegExp(At(e)+"|\\([^()]*\\)|.","g")}}function At(t){return t.map((t=>t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"))).map((t=>t.includes("(")||t.includes(")")?t:`(?<!\\([^()]*)${t}(?![^()]*\\))`)).join("|")}const xt={LEFT:"RNA1{",RIGHT:"}$$$$"};class _t{constructor(t,e,n){this.sequence=t,this.sourceFormat=e,this.th=n,this.formats=new Ct(this.th)}convertTo(t){const e=this.formats.getFormatNames();if(this.sourceFormat===ht.HELM&&e.includes(t))return this.helmToFormat(this.sequence,t);if(e.includes(this.sourceFormat)&&t===ht.HELM)return this.formatToHelm(this.sequence,this.sourceFormat);if([this.sourceFormat,t].every((t=>e.includes(t)))){const e=this.formatToHelm(this.sequence,this.sourceFormat);return this.helmToFormat(e,t)}throw new Error(`ST: unsupported translation direction ${this.sourceFormat} -> ${t}`)}helmToFormat(t,e){const n=new RegExp(At(Object.values(xt)),"g");let r=t.replace(n,"");const i=this.formats.getHelmToFormatDict(e),o=this.formats.getTargetFormatHelmCodes(e),s=this.formats.getTargetFormatHelmCodesRegExp(e);return r=r.replace(s,(t=>o.includes(t)?i[t]:"p"===t||"."===t?t:"?")).replace(/\?+/g,bt).replace(/p\.|\./g,""),r=r.replace(/<empty>/g,""),r=r.replace(/\/\//g,"/"),r}formatToHelm(t,e){const n=this.formats.getFormatToHelmDict(e),r=this.formats.getCodesByFormat(e),i=this.formats.getFormatRegExp(e),o=this.formats.getPhosphateHelmCodesRegExp(e);let s=t?t.replace(i,(t=>r.includes(t)?n[t]+".":"?")):"";return s=s.replace(/\?+/g,`${bt}.`),s=s.slice(0,-1),"p"===s[s.length-1]&&(s=s.slice(0,-1)),s=s.replace(o,((t,e)=>e)),s=s.replace(/<empty>/g,""),`${xt.LEFT+s+xt.RIGHT}`}}class Et{constructor(t,e){this.sequence=t,this.th=e,this.libWrapper=this.th.monomerLibWrapper,this.formats=Object.keys(this.th.jsonData.codesToHelmDict)}getFormat(){if(this.sequence.startsWith("RNA"))return ht.HELM;const t=this.getListOfPossibleSynthesizersByFirstMatchedCode();if(0===t.length)return null;const e=this.th.createSequenceValidator(this.sequence),n=Array(t.length).fill(0);for(let r=0;r<t.length;++r){const i=t[r];n[r]=e.getInvalidCodeIndex(i)}const r=n.some((t=>-1===t))?-1:Math.max(...n);return t[n.indexOf(r)]}getListOfPossibleSynthesizersByFirstMatchedCode(){const t=this.sequence,e=[];for(const n of this.formats){const r=ft(this.libWrapper.getCodesByFormat(n));let i=0;for(let e=0;e<t.length;e++)if(")"===t[e]&&e!==t.length-1){i=e+1;break}r.some((e=>e===t.slice(i,i+e.length)))&&e.push(n)}return e}}const Tt=ui,St=$;var It=n.n(St);function Nt(t,e){let n=0;const r=e.createFormatDetector(t).getFormat();null!==r&&(n=new gt(t,e).getInvalidCodeIndex(r));const i=n<0||""===t,o=Tt.span([]);It()(o).css("-webkit-text-fill-color","var(--grey-6)");const s=Tt.span([]);return It()(s).css("-webkit-text-fill-color","red"),i?o.innerHTML=t:(o.innerHTML=t.slice(0,n),s.innerHTML=t.slice(n)),[o,s]}class Mt extends e.Package{get monomerLib(){if(!this._monomerLib)throw new Error("Monomer lib not loaded");return this._monomerLib}get jsonData(){if(!this._jsonData)throw new Error("Json data not loaded");return this._jsonData}get monomerLibWrapper(){if(!this._monomerLibWrapper)throw new Error("Monomer lib wrapper not loaded");return this._monomerLibWrapper}constructor(t={debug:!1}){super(),this.highlightInvalidSubsequence=t=>Nt(t,this),super._logger=new it(super.logger,t.debug)}async initLibData(){return this.initPromise||(this.initPromise=(async()=>{let e=(await this.getSettings()).MonomersPath;e&&await t.dapi.files.exists(e)||(this.logger.warning(`Monomers path '${e}' not found. Fallback to monomers sample path '${ot}'.`),e=ot),[this._jsonData,this._monomerLib]=await Promise.all([yt(e),Ot(e)]),this._monomerLibWrapper=new vt(this.monomerLib,this.jsonData)})()),this.initPromise}async getTranslationHelper(){return await t.functions.call(`${this.name}:getTranslationHelper`)}createSequenceValidator(t){return new gt(t,this)}createFormatConverter(t,e){return new _t(t,e,this)}createFormatDetector(t){return new Et(t,this)}}async function Ot(t){const n=e.TaskBarProgressIndicator.create("Initializing Oligo Toolkit monomer library ...");try{const e=await rt();return await e.readLibrary(t,"monomer-lib.json")}finally{n.close()}}class Lt{constructor(t,e){this.appName=t,this.parentAppName=e}async getAppView(){const n=e.TaskBarProgressIndicator.create(`Loading ${this.appName}...`),r=t.shell.v?.root;r&&Tt.setUpdateIndicator(r,!0);try{return await this.constructView()}finally{n.close(),r&&Tt.setUpdateIndicator(r,!1)}}}class Bt extends Lt{constructor(t){super(t),this.view=e.View.create(),this.configureView()}async constructView(){await this.initView();const t=this.parentAppName?this.parentAppName+"/"+this.appName:this.appName;return this.view.path=`/apps/${$r.name}/${t.replace(/\s/g,"")}/`,this.view}async initView(){const t=await this.getContent();this.view.append(t)}configureView(){this.view.box=!0,this.view.name=this.appName;const e=t.shell.windows;e.showProperties=!1,e.showToolbox=!1,e.showHelp=!1}getView(){return this.view}}const Pt=["SS","AS"],Rt={SS:"Sense strand",AS:"Anti sense"},Dt=["3'","5'"],Ft="OligoToolkit";var Ht,Ut,kt,$t;!function(t){t.IS_ANTISENSE_STRAND_INCLUDED="isAntisenseStrandIncluded",t.NUCLEOTIDE_SEQUENCES="nucleotideSequences",t.PHOSPHOROTHIOATE_LINKAGE_FLAGS="phosphorothioateLinkageFlags",t.STRAND_TERMINUS_MODIFICATIONS="strandTerminusModifications"}(Ht||(Ht={})),function(t){t.PATTERN_NAME="patternName",t.PATTERN_COMMENT="patternComment",t.NUCLEOTIDES_WITH_NUMERIC_LABELS="nucleotidesWithNumericLabels"}(Ut||(Ut={})),function(t){t.PATTERN_CONFIG="patternConfig",t.AUTHOR_ID="authorID",t.DATE="date"}(kt||(kt={})),function(t){t.CREATE="create",t.MODIFY="modify"}($t||($t={}));const Vt=[Ht.IS_ANTISENSE_STRAND_INCLUDED,Ht.NUCLEOTIDE_SEQUENCES,Ht.PHOSPHOROTHIOATE_LINKAGE_FLAGS,Ht.STRAND_TERMINUS_MODIFICATIONS],jt=(Ut.PATTERN_NAME,Ut.PATTERN_COMMENT,Ut.NUCLEOTIDES_WITH_NUMERIC_LABELS,{patternConfig:{patternName:"<default example>",isAntisenseStrandIncluded:!0,nucleotideSequences:{SS:["RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA"],AS:["RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA"]},phosphorothioateLinkageFlags:{SS:[!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0],AS:[!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0]},strandTerminusModifications:{SS:{"3'":"","5'":""},AS:{"3'":"","5'":""}},patternComment:"",nucleotidesWithNumericLabels:["RNA"]},authorID:""}),qt="2024-01-01T18:00:00.000Z";class Gt extends Error{constructor(t){super(t),this.name="PatternNameExistsError"}}class Wt extends Error{constructor(t){super(t),this.name="PatternExistsError"}}var zt=n(802),Yt=n.n(zt);class Kt{constructor(t){this.th=t,this.otherUsersPatternNameToHash=new Map,this.currentUserPatternNameToHash=new Map}static async getInstance(){const t=await $r.getTranslationHelper(),e=new Kt(t);e.currentUserName=await e.fetchCurrentUserName(),e.currentUserId=await e.fetchCurrentUserId();const n=await e.fetchPatterns();return await e.initializePatternMaps(n),e}getCurrentUserPatternNames(){return Array.from(this.currentUserPatternNameToHash.keys()).sort(((t,e)=>t.toLowerCase().localeCompare(e.toLowerCase())))}getOtherUsersPatternNames(){return Array.from(this.otherUsersPatternNameToHash.keys()).sort(((t,e)=>t.toLowerCase().localeCompare(e.toLowerCase())))}getCurrentUserName(){return this.currentUserName}validatePatternNameUniqueness(t){if(this.currentUserPatternNameToHash.has(t))throw new Gt(`Pattern with name ${t} already exists`)}validatePatternUniqueness(t){if(Array.from(this.currentUserPatternNameToHash.values()).concat(Array.from(this.otherUsersPatternNameToHash.values())).includes(t))throw new Wt(t)}getPatternHash(t,e){const n=e?this.currentUserPatternNameToHash.get(t):this.otherUsersPatternNameToHash.get(t);if(void 0===n)throw new Error(`Pattern with name ${t} not found`);return n}async getPatternRecordByHash(e){if(null===e||""===e)return null;try{const n=await t.dapi.userDataStorage.getValue(Ft,e,!1);return JSON.parse(n)}catch{return null}}async getPatternConfig(t){if(""===t||null===t)return null;const e=await this.getPatternRecordByHash(t);return null===e?null:e[kt.PATTERN_CONFIG]}getDefaultPatternRecord(){const t=jt;return t[kt.AUTHOR_ID]=this.currentUserId,t}getDefaultPatternConfig(){return jt[kt.PATTERN_CONFIG]}getAuthorCategoryByHash(t){if(this.isCurrentUserPattern(t))return this.getCurrentUserAuthorshipCategory();if(this.isOtherUserPattern(t))return this.getOtherUsersAuthorshipCategory();throw new Error(`Pattern with hash ${t} not found`)}isCurrentUserPattern(t){return Array.from(this.currentUserPatternNameToHash.values()).includes(t)}isOtherUserPattern(t){return Array.from(this.otherUsersPatternNameToHash.values()).includes(t)}getPatternNameByHash(t){const e=[this.currentUserPatternNameToHash,this.otherUsersPatternNameToHash];for(const n of e)for(const[e,r]of n.entries())if(r===t)return e;throw new Error(`Pattern with hash ${t} not found`)}getHashOfPatternToBeLoadedAfterDeletion(){const t=this.getCurrentUserPatternNames()[0];if(!t)throw new Error("Cannot load pattern after deletion, as there are no patterns left");const e=this.currentUserPatternNameToHash.get(t);if(void 0===e)throw new Error(`Pattern with name ${t} not found`);return e}async getRecordFromPattern(e){return{[kt.PATTERN_CONFIG]:e,[kt.AUTHOR_ID]:await t.dapi.users.current().then((t=>t.id))}}getHash(t){const e=Vt.reduce(((e,n)=>(e[n]=t[n],e)),{});return Yt().sha1(e)}async savePatternToUserStorage(e){const n=e.getPatternConfig();try{const r=this.getHash(n);this.validatePatternUniqueness(r);const i=n[Ut.PATTERN_NAME];this.validatePatternNameUniqueness(i);const o=await this.getRecordFromPattern(n),s=(new Date).toISOString();o[kt.DATE]={[$t.CREATE]:s,[$t.MODIFY]:s};const a=JSON.stringify(o);await t.dapi.userDataStorage.postValue(Ft,r,a,!1),this.currentUserPatternNameToHash.set(i,r),e.selectAuthor(this.getCurrentUserAuthorshipCategory()),e.updatePatternList(),e.requestPatternLoad(r),e.updateUrlState(r)}catch(t){if(t instanceof Gt||t instanceof Wt)throw t;console.error("Error while saving pattern to user storage",t)}}async overwriteExistingPatternInUserStorage(e){const n=e.getPatternConfig(),r=n[Ut.PATTERN_NAME],i=this.currentUserPatternNameToHash.get(r);if(void 0===i)throw new Error("Old hash is undefined");const o=this.getHash(n),s=await this.getRecordFromPattern(n),a=(new Date).toISOString();s[kt.DATE]={[$t.MODIFY]:a};const u=await t.dapi.userDataStorage.getValue(Ft,i,!1),l=JSON.parse(u);void 0!==l[kt.DATE]&&null!=l[kt.DATE][$t.CREATE]&&(s[kt.DATE][$t.CREATE]=l[kt.DATE][$t.CREATE]);const c=JSON.stringify(s);await t.dapi.userDataStorage.postValue(Ft,o,c,!1),await t.dapi.userDataStorage.remove(Ft,i,!1),this.currentUserPatternNameToHash.set(r,o),e.requestPatternLoad(o),e.updateUrlState(o)}async deletePattern(e,n){const r=this.currentUserPatternNameToHash.get(e);if(e===this.getDefaultPatternName())return void t.shell.warning("Cannot delete default pattern");if(void 0===r)throw new Error(`Pattern with name ${e} not found`);await t.dapi.userDataStorage.remove(Ft,r,!1),this.currentUserPatternNameToHash.delete(e),n.updatePatternList();const i=this.getHashOfPatternToBeLoadedAfterDeletion();n.requestPatternLoad(i)}fetchDefaultNucleobase(){return this.fetchAvailableNucleotideBases()[0]}fetchAvailableNucleotideBases(){const t=Object.keys(this.th.jsonData.patternAppData)[0];return Object.keys(this.th.jsonData.patternAppData[t])}async fetchCurrentUserName(){return(await t.dapi.users.current()).friendlyName}async fetchCurrentUserId(){return(await t.dapi.users.current()).id}async fetchPatterns(){return await t.dapi.userDataStorage.get(Ft,!1)}async initializePatternMaps(t){if(!this.currentUserId)throw new Error("Current user ID is not set");const e=new Map;for(const[n,r]of Object.entries(t))await this.extractDataFromRecordToMaps(n,r,e);this.setDefaultPattern()}setDefaultPattern(){const t=jt[kt.PATTERN_CONFIG];this.currentUserPatternNameToHash.set(t[Ut.PATTERN_NAME],"")}async extractDataFromRecordToMaps(e,n,r){const i=JSON.parse(n),o=i[kt.PATTERN_CONFIG].patternName,s=i[kt.AUTHOR_ID];if(this.isCurrentUserId(s))this.currentUserPatternNameToHash.set(o,e);else{if(!r.has(s)){let e="<UNKNOWN_USER>";try{e=(await t.dapi.users.find(s)).friendlyName}catch(t){}r.set(s,e)}const n=o+` (created by ${r.get(s)})`;this.otherUsersPatternNameToHash.set(n,e)}}getDefaultPatternName(){return jt[kt.PATTERN_CONFIG][Ut.PATTERN_NAME]}getCurrentUserAuthorshipCategory(){return this.currentUserName+" (me)"}getOtherUsersAuthorshipCategory(){return"Other users"}isCurrentUserId(t){return t===this.currentUserId}}const Jt=rxjs,Qt=rxjs.operators;function Xt(t){return t.endsWith("(o)")}function Zt(t){const e=Object.values(t).flat().reduce(((t,e)=>(t[e]=(t[e]||0)+1,t)),{});return Object.entries(e).reduce(((t,e)=>t[1]>e[1]?t:e),["",0])[0]}var te;function ee(t){const e=Array.from(new Set(t));return Array.from(e).sort(((t,e)=>t.toLowerCase().localeCompare(e.toLowerCase())))}!function(t){t.getTruncatedStrandData=function(t,e,n){return{nucleotides:t.slice(0,n),ptoFlags:e.slice(0,n+1)}},t.getExtendedStrandData=function(t,e,n,r){const i=n-t.length,o=t.concat(new Array(n-t.length).fill(r)),s=0===t.length?n+1:i;return{nucleotides:o,ptoFlags:e.concat(new Array(s).fill(!0))}}}(te||(te={}));var ne=n(543),re=n.n(ne);class ie{constructor(t,e){this.dataManager=t,this._patternListUpdated$=new Jt.Subject,this._patternLoadRequested$=new Jt.Subject,this._patternLoaded$=new Jt.Subject,this._uniqueNucleotides$=new Jt.BehaviorSubject([]),this._patternDeletionRequested$=new Jt.Subject,this._tableSelection$=new Jt.BehaviorSubject(null),this._svgSaveRequested$=new Jt.Subject,this._loadPatternInNewTabRequested$=new Jt.Subject,this._urlStateUpdated$=new Jt.Subject,this._patternHasUnsavedChanges$=new Jt.BehaviorSubject(!1),this._selectedStrandColumn=new Jt.BehaviorSubject(null),this._selectedIdColumn=new Jt.BehaviorSubject(null),this.initializeAuthorSelection(e),this.initializePatternState(e),this._lastLoadedPatternConfig=new Jt.BehaviorSubject(re().cloneDeep(this.getPatternConfig())),this.setupSubscriptions()}setupSubscriptions(){this._nucleotideSequences$.subscribe((()=>{this.updateUniqueNucleotides(),this.updateSequenceBase()})),this._isAntisenseStrandActive$.subscribe((t=>{t||Dt.forEach((t=>{this.updateTerminusModification("AS",t,"")}))})),this.patternStateChanged$.pipe((0,Qt.debounceTime)(20)).subscribe((()=>{const t=this._lastLoadedPatternConfig.getValue(),e=this.getPatternConfig(),n=!re().isEqual(e,t);this._patternHasUnsavedChanges$.next(n)}))}updateUniqueNucleotides(){const t=(e=this._nucleotideSequences$.getValue(),ee(Object.values(e).flat()));var e;this._uniqueNucleotides$.next(t)}updateSequenceBase(){const t=Zt(this._nucleotideSequences$.getValue());this._sequenceBase$.next(t)}get nucleotideSequencesChanged$(){return this._nucleotideSequences$.asObservable()}initializeAuthorSelection(t){const e=t[kt.AUTHOR_ID];this.dataManager.isCurrentUserId(e)?this._patternAuthorSelection$=new Jt.BehaviorSubject(this.dataManager.getCurrentUserAuthorshipCategory()):this._patternAuthorSelection$=new Jt.BehaviorSubject(this.dataManager.getOtherUsersAuthorshipCategory())}initializePatternState(t){const e=t[kt.PATTERN_CONFIG];this._patternName$=new Jt.BehaviorSubject(e[Ut.PATTERN_NAME]),this._isAntisenseStrandActive$=new Jt.BehaviorSubject(e[Ht.IS_ANTISENSE_STRAND_INCLUDED]),this._nucleotideSequences$=new Jt.BehaviorSubject(e[Ht.NUCLEOTIDE_SEQUENCES]),this._phosphorothioateLinkageFlags=new Jt.BehaviorSubject(e[Ht.PHOSPHOROTHIOATE_LINKAGE_FLAGS]),this._terminalModifications=new Jt.BehaviorSubject(e[Ht.STRAND_TERMINUS_MODIFICATIONS]),this._comment$=new Jt.BehaviorSubject(e[Ut.PATTERN_COMMENT]),this._modificationsWithNumericLabels$=new Jt.BehaviorSubject(e[Ut.NUCLEOTIDES_WITH_NUMERIC_LABELS]),this._sequenceBase$=new Jt.BehaviorSubject(Zt(e[Ht.NUCLEOTIDE_SEQUENCES]))}getPatternName(){return this._patternName$.getValue()}updatePatternName(t){this._patternName$.next(t)}get antisenseStrandToggled$(){return this._isAntisenseStrandActive$.asObservable()}isAntisenseStrandActive(){return this._isAntisenseStrandActive$.getValue()}toggleAntisenseStrand(t){t?this.updateStrandLength("AS",this.getNucleotideSequences().SS.length):this.updateStrandLength("AS",0),this._isAntisenseStrandActive$.next(t)}getNucleotideSequences(){return this._nucleotideSequences$.getValue()}updateNucleotideSequences(t){this._nucleotideSequences$.next(t)}updateStrandLength(t,e){const n=this.getNucleotideSequences()[t];if(n.length===e)return;const r=this.getPhosphorothioateLinkageFlags()[t];if(0===e)return void this.setNewStrandData([],[],t);if(n.length>e){const{nucleotides:i,ptoFlags:o}=te.getTruncatedStrandData(n,r,e);return void this.setNewStrandData(i,o,t)}const i=this.getSequenceBase(),{nucleotides:o,ptoFlags:s}=te.getExtendedStrandData(n,r,e,i);this.setNewStrandData(o,s,t)}setNewStrandData(t,e,n){this.updateNucleotideSequences({...this.getNucleotideSequences(),[n]:t}),this.updatePhosphorothioateLinkageFlags({...this.getPhosphorothioateLinkageFlags(),[n]:e})}getPhosphorothioateLinkageFlags(){return this._phosphorothioateLinkageFlags.getValue()}updatePhosphorothioateLinkageFlags(t){this._phosphorothioateLinkageFlags.next(t)}get phosphorothioateLingeFlagsChanged$(){return this._phosphorothioateLinkageFlags.asObservable()}getTerminalModifications(){return this._terminalModifications.getValue()}updateTerminalModifications(t){this._terminalModifications.next(t)}updateTerminusModification(t,e,n){const r=this.getTerminalModifications();r[t][e]=n,this.updateTerminalModifications(r)}terminalModificationsUpdated$(){return this._terminalModifications.asObservable()}getComment(){return this._comment$.getValue()}updateComment(t){this._comment$.next(t)}getModificationsWithNumericLabels(){return this._modificationsWithNumericLabels$.getValue()}updateModificationsWithNumericLabels(t){const e=function(t){return ee(t).filter((t=>!Xt(t)))}(t);this._modificationsWithNumericLabels$.next(e)}get patternLoadRequested$(){return this._patternLoadRequested$.asObservable()}requestPatternLoad(t){this._patternLoadRequested$.next(t)}get patternListUpdated$(){return this._patternListUpdated$.asObservable()}updatePatternList(){this._patternListUpdated$.next()}get tableSelectionChanged$(){return this._tableSelection$.asObservable()}selectTable(t){this._tableSelection$.next(t)}getTableSelection(){return this._tableSelection$.getValue()}requestPatternDeletion(t){this._patternDeletionRequested$.next(t)}get patternDeletionRequested$(){return this._patternDeletionRequested$.asObservable()}replaceSequenceBase(t){const e=this._nucleotideSequences$.getValue(),n={};Pt.forEach((r=>{n[r]=e[r].map((()=>t))})),this._nucleotideSequences$.next(n);const r=this._modificationsWithNumericLabels$.getValue();r.includes(t)||this.updateModificationsWithNumericLabels(r.concat(t))}get patternStateChanged$(){return Jt.merge(this._patternName$.pipe((0,Qt.debounceTime)(300),(0,Qt.map)((()=>{}))),this._isAntisenseStrandActive$,this._nucleotideSequences$,this._phosphorothioateLinkageFlags,this._terminalModifications,this._comment$.pipe((0,Qt.debounceTime)(300)),this._modificationsWithNumericLabels$)}getSequenceBase(){return this._sequenceBase$.getValue()}uniqueNucleotidesChanged$(){return this.patternStateChanged$.pipe((0,Qt.switchMap)((()=>this._uniqueNucleotides$)))}getUniqueNucleotides(){return this._uniqueNucleotides$.getValue()}get svgSaveRequested$(){return this._svgSaveRequested$.asObservable()}requestSvgSave(){this._svgSaveRequested$.next()}setAllPTOLinkages(t){const e=this.getPhosphorothioateLinkageFlags();Pt.forEach((n=>{e[n]=e[n].map((()=>t))})),this.updatePhosphorothioateLinkageFlags(e)}setPatternConfig(t){this._patternName$.next(t[Ut.PATTERN_NAME]),this._isAntisenseStrandActive$.next(t[Ht.IS_ANTISENSE_STRAND_INCLUDED]),this._nucleotideSequences$.next(t[Ht.NUCLEOTIDE_SEQUENCES]),this._phosphorothioateLinkageFlags.next(t[Ht.PHOSPHOROTHIOATE_LINKAGE_FLAGS]),this._terminalModifications.next(t[Ht.STRAND_TERMINUS_MODIFICATIONS]),this._comment$.next(t[Ut.PATTERN_COMMENT]),this._modificationsWithNumericLabels$.next(t[Ut.NUCLEOTIDES_WITH_NUMERIC_LABELS])}setLastLoadedPatternConfig(t){this._lastLoadedPatternConfig.next(re().cloneDeep(t))}getPatternConfig(){return{[Ut.PATTERN_NAME]:this.getPatternName(),[Ht.IS_ANTISENSE_STRAND_INCLUDED]:this.isAntisenseStrandActive(),[Ht.NUCLEOTIDE_SEQUENCES]:this.getNucleotideSequences(),[Ht.PHOSPHOROTHIOATE_LINKAGE_FLAGS]:this.getPhosphorothioateLinkageFlags(),[Ht.STRAND_TERMINUS_MODIFICATIONS]:this.getTerminalModifications(),[Ut.PATTERN_COMMENT]:this.getComment(),[Ut.NUCLEOTIDES_WITH_NUMERIC_LABELS]:this.getModificationsWithNumericLabels()}}setPhosphorothioateLinkageFlag(t,e,n){const r=this.getPhosphorothioateLinkageFlags();r[t][e]=n,this.updatePhosphorothioateLinkageFlags(r)}setNucleotide(t,e,n){const r=this.getNucleotideSequences();r[t][e]=n;const i=this.getModificationsWithNumericLabels();this.updateModificationsWithNumericLabels(i.concat(n)),this.updateNucleotideSequences(r)}get strandsUpdated$(){return Jt.merge(this._isAntisenseStrandActive$.asObservable().pipe((0,Qt.map)((()=>{}))),this._nucleotideSequences$.asObservable().pipe((0,Qt.map)((()=>{}))),this._patternLoaded$.asObservable().pipe((0,Qt.map)((()=>{})))).pipe((0,Qt.debounceTime)(10))}get strandsLinkagesAndTerminalsUpdated$(){return Jt.merge(this.strandsUpdated$,this._phosphorothioateLinkageFlags.asObservable().pipe((0,Qt.map)((()=>{}))),this._terminalModifications.asObservable().pipe((0,Qt.map)((()=>{}))))}updateControlsUponPatternLoaded(t){this._patternLoaded$.next(t)}get patternLoaded$(){return this._patternLoaded$.asObservable()}get userSelection$(){return this._patternAuthorSelection$.asObservable().pipe((0,Qt.skip)(1))}selectAuthor(t){if("string"!=typeof t)throw new Error("Selected user must be defined");this._patternAuthorSelection$.next(t)}getSelectedAuthor(){return this._patternAuthorSelection$.getValue()}get loadPatternInNewTabRequested$(){return this._loadPatternInNewTabRequested$.asObservable()}requestLoadPatternInNewTab(t){this._loadPatternInNewTabRequested$.next(t)}updateUrlState(t){this._urlStateUpdated$.next(t)}get urlStateUpdated$(){return this._urlStateUpdated$.asObservable()}get patternHasUnsavedChanges$(){return this._patternHasUnsavedChanges$.asObservable()}selectStrandColumn(t,e){this._selectedStrandColumn.next({...this._selectedStrandColumn.getValue(),[t]:e})}getSelectedStrandColumn(t){const e=this._selectedStrandColumn.getValue();return e?e[t]:null}selectIdColumn(t){this._selectedIdColumn.next(t)}getSelectedIdColumn(){return this._selectedIdColumn.getValue()}get updateSvgContainer$(){return this.patternStateChanged$.pipe((0,Qt.debounceTime)(100))}}const oe="pattern";class se{constructor(){this.urlSearchParams=new URLSearchParams(window.location.search)}subscribeToObservables(t){t.urlStateUpdated$.subscribe((t=>this.setPatternURL(t))),t.loadPatternInNewTabRequested$.subscribe((t=>{const e=`${window.location.origin}${window.location.pathname}?${oe}=${t}`;window.open(e,"_blank")})),window.addEventListener("popstate",(()=>{this.urlSearchParams=new URLSearchParams(window.location.search);const e=this.getPatternHash();null!==e&&t.requestPatternLoad(e)}))}getPatternHash(){return this.urlSearchParams.get(oe)}setPatternURL(t){null!==t&&""!==t?(this.urlSearchParams.set(oe,t),window.history.pushState({},"",`${window.location.pathname}?${this.urlSearchParams}`)):this.clearPatternURL()}clearPatternURL(){this.urlSearchParams.delete(oe),window.history.pushState({},"",`${window.location.pathname}`)}}var ae=n(72),ue=n.n(ae),le=n(825),ce=n.n(le),he=n(659),fe=n.n(he),de=n(56),pe=n.n(de),ge=n(540),me=n.n(ge),ye=n(113),ve=n.n(ye),be=n(252),we={};we.styleTagTransform=ve(),we.setAttributes=pe(),we.insert=fe().bind(null,"head"),we.domAPI=ce(),we.insertStyleElement=me(),ue()(be.A,we),be.A&&be.A.locals&&be.A.locals;class Ce{constructor(t){this.eventBus=t,this.columnControlsContainer=Tt.div([]),this.eventBus.tableSelectionChanged$.subscribe((()=>this.handleTableChoice())),this.refreshColumnControls()}getColumnControlsContainer(){return this.columnControlsContainer}get selectedTable(){return this.eventBus.getTableSelection()}handleTableChoice(){this.refreshColumnControls()}refreshColumnControls(){It()(this.columnControlsContainer).empty(),It()(this.columnControlsContainer).append(this.constructColumnControls())}constructColumnControls(){const t=this.createStrandColumnInput(),e=t.SS,n=t.AS;this.eventBus.antisenseStrandToggled$.subscribe((t=>{It()(n).toggle(t)}));const r=this.createIdColumnInput();return[e,n,r]}createStrandColumnInput(){const t=this.selectedTable?this.selectedTable.columns.names().sort(((t,e)=>t.localeCompare(e))):[];return Object.fromEntries(Pt.map((e=>{const n=Tt.input.choice(`${Rt[e]} column`,{value:t[0],items:t,onValueChanged:t=>this.eventBus.selectStrandColumn(e,t)});return this.eventBus.selectStrandColumn(e,t[0]),[e,n.root]})))}createIdColumnInput(){const t=this.selectedTable?this.selectedTable.columns.names():[],e=Tt.input.choice("ID column",{value:t[0],items:t,onValueChanged:t=>this.eventBus.selectIdColumn(t)});return this.eventBus.selectIdColumn(t[0]),e.root}}class Ae{constructor(t){this.eventBus=t,this.availableTables=[],this.tableInputContainer=Tt.div([]),this.subscribeToTableEvents(),this.refreshTableInput()}getTableInputContainer(){return this.tableInputContainer}subscribeToTableEvents(){t.events.onTableAdded.subscribe((t=>this.handleTableAdded(t))),t.events.onTableRemoved.subscribe((t=>this.handleTableRemoved(t))),this.eventBus.tableSelectionChanged$.subscribe((()=>this.handleTableChoice()))}getTableFromEventData(t){if(!t&&t.args&&t.args.dataFrame instanceof e.DataFrame)throw new Error("EventData does not contain a dataframe",t);return t.args.dataFrame}handleTableAdded(t){const e=this.getTableFromEventData(t);this.availableTables.some((t=>t.name===e.name))||(this.availableTables.push(e),this.eventBus.selectTable(e),this.refreshTableInput())}handleTableRemoved(t){const e=this.getTableFromEventData(t);this.availableTables=this.availableTables.filter((t=>t.name!==e.name));const n=this.availableTables[0];this.eventBus.selectTable(n||null),this.refreshTableInput()}refreshTableInput(){const t=this.createTableInput();It()(this.tableInputContainer).empty(),this.tableInputContainer.append(t.root)}createTableInput(){const t=this.eventBus.getTableSelection();return Tt.input.table("Tables",{value:t,items:this.availableTables,onValueChanged:t=>{null!==t&&this.eventBus.selectTable(t)}})}handleTableChoice(){const t=this.eventBus.getTableSelection();t&&(this.isTableDisplayed(t)||this.displayTable(t))}isTableDisplayed(e){return t.shell.tableNames.includes(e.name)}displayTable(e){const n=t.shell.v;t.shell.addTableView(e),t.shell.v=n}}function xe(t,e,n,r){const i=function(t,e,n){const r=new Array(t.length+e.filter((t=>t)).length+Dt.length);r[0]=n["5'"],r[r.length-1]=n["3'"];let i=1;return e[0]&&(r[i]="ps",i++),t.forEach(((t,n)=>{r[n+i]=t,e[n+1]&&(r[n+i+1]="ps",i++)})),r}(t.split("").map(((t,n)=>{const r=function(t,e,n){const r=Object.keys(n.patternAppData)[0],i=n.patternAppData[r][e].substitution;return t.replace(/([AGCTU])/,i)}(t,e[n],$r.jsonData);return r})),n,r);return i.join("")}class _e{constructor(t){this.eventBus=t,this.tableInputManager=new Ae(t),this.columnInputManager=new Ce(t)}createControls(){const t=Tt.h1("Bulk convert"),e=this.tableInputManager.getTableInputContainer(),n=this.columnInputManager.getColumnControlsContainer(),r=Tt.bigButton("Convert",(()=>this.processConvertButtonClick()));return[t,e,n,Tt.buttonsInput([r])]}processConvertButtonClick(){!function(e){const n=e.getTableSelection();if(!n)return void t.shell.warning("Please select a table");const r=Pt.filter((t=>!("AS"===t&&!e.isAntisenseStrandActive()))).map((t=>({strand:t,column:e.getSelectedStrandColumn(t)}))).filter((t=>t.column));if(0===r.length)return void t.shell.warning("Select a sense strand column");const i=e.getSelectedIdColumn();if(!i)throw new Error("No ID column selected");n.getCol(i);const o=r.map((t=>({strand:t.strand,column:n.getCol(t.column)})));!function(t,e){const n=e.getNucleotideSequences();return t.every((t=>{const e=n[t.strand].length;return t.column.toList().every((t=>t.length===e))}))}(o,e)?t.shell.warning("Some strands in the table input do not match pattern length"):o.forEach((t=>{const r=t.column,i=t.strand,o=e.getNucleotideSequences()[i],s=e.getTerminalModifications()[i],a=e.getPhosphorothioateLinkageFlags()[i],u=`${e.getPatternName()}(${r.name})`;n.columns.addNewString(u).init((t=>xe(r.get(t),o,a,s)))}))}(this.eventBus)}}class Ee{constructor(t,e,n){this.eventBus=t,this.initialPatternConfig=e,this.subscriptions=n}create(){return Tt.divV([Tt.h1("PTO"),Tt.divH([this.createAllPtoActivationInput().root,...this.createFirstPtoInputs().map((t=>t.root))],{style:{gap:"12px"}})])}areAllPtoLinkagesSet(t){return Pt.map((e=>t[e].filter((t=>t)).length)).reduce(((t,e)=>t+e),0)===Pt.map((t=>this.initialPatternConfig.nucleotideSequences[t].length)).reduce(((t,e)=>t+e),0)+Pt.filter((e=>t[e].length)).length}createAllPtoActivationInput(){const t=this.initialPatternConfig.phosphorothioateLinkageFlags,e=this.areAllPtoLinkagesSet(t),n=Tt.input.bool("All PTO",{value:e});n.onInput.subscribe((()=>{const t=n.value;this.eventBus.setAllPTOLinkages(t)}));const r=this.eventBus.phosphorothioateLingeFlagsChanged$.subscribe((()=>{const t=this.eventBus.getPatternConfig().phosphorothioateLinkageFlags,e=this.areAllPtoLinkagesSet(t);n.value=e}));return this.subscriptions.add(r),this.addStyleToPtoInput(n),Tt.tooltip.bind(n.captionLabel,"Activate all phosphothioates"),n}addStyleToPtoInput(t){const e=t.captionLabel;e.classList.add("ui-label-right"),Object.assign(e.style,{textAlign:"left",maxWidth:"100px",minWidth:"40px",width:"auto"})}createFirstPtoInputs(){return Pt.map((t=>{if(!this.eventBus.isAntisenseStrandActive()&&"AS"===t)return;const e=this.isFirstPtoActive(t),n=Tt.input.bool(`First ${t} PTO`,{value:e});n.onInput.subscribe((()=>{const e=n.value;this.eventBus.setPhosphorothioateLinkageFlag(t,0,e)}));const r=this.eventBus.phosphorothioateLingeFlagsChanged$.subscribe((e=>{const r=e[t][0];n.value=r}));return this.subscriptions.add(r),this.addStyleToPtoInput(n),Tt.tooltip.bind(n.captionLabel,`Activate first phosphothioate in ${t}`),n})).filter((t=>void 0!==t))}isFirstPtoActive(t){return this.initialPatternConfig.phosphorothioateLinkageFlags[t][0]}}class Te{constructor(t,e,n){this.eventBus=t,this.dataManager=e,this.subscriptions=n;const r=this.eventBus.nucleotideSequencesChanged$.subscribe((()=>{this.displayedInputLabels=this.computeDisplayedInputLabels()}));this.subscriptions.add(r)}create(){const t=Pt.map((t=>this.constructControlsPanel(t)));return Tt.divH(t,{style:{gap:"24px"}})}constructControlsPanel(t){if(!this.eventBus.isAntisenseStrandActive()&&"AS"===t)return Tt.div([]);const e=this.constructHeader(),n=this.createControls(t);return Tt.block([Tt.h1(`${Rt[t]}`),e,n],{style:{paddingTop:"12px"}})}constructHeader(){return Tt.divH([Tt.div([Tt.divText("#")],{style:{width:"20px"}}),Tt.block75([Tt.divText("Modification")]),Tt.div([Tt.divText("PTO")])])}createControls(t){const e=this.createNucleobaseInputs(t),n=this.createLabelDivs(t),r=this.createPTOFlagInputs(t);return Tt.div(e.map(((t,e)=>Tt.divH([n[e],Tt.block75([t.root]),r[e].root],{style:{alignItems:"center"}}))))}createNucleobaseInputs(t){const e=this.dataManager.fetchAvailableNucleotideBases().sort(((t,e)=>t.toLowerCase().localeCompare(e.toLowerCase())));return this.eventBus.getNucleotideSequences()[t].map(((n,r)=>{const i=Tt.input.choice("",{value:n,items:e});return i.onInput.subscribe((()=>{const e=i.value;this.eventBus.setNucleotide(t,r,e)})),i}))}createPTOFlagInputs(t){return this.eventBus.getPhosphorothioateLinkageFlags()[t].slice(1).map(((e,n)=>{const r=Tt.input.bool("",{value:e});r.onInput.subscribe((()=>{const e=r.value;this.eventBus.setPhosphorothioateLinkageFlag(t,n+1,e)}));const i=this.eventBus.phosphorothioateLingeFlagsChanged$.subscribe((e=>{const i=e[t][n+1];r.value=i}));return this.subscriptions.add(i),r}))}computeDisplayedInputLabels(){const t=this.eventBus.getNucleotideSequences(),e=new Map;return Pt.forEach((n=>{let r=1;const i=t[n].map((t=>{if(Xt(t))return"";const e=String(r);return r++,e}));e.set(n,i)})),e}createLabelDivs(t){const e=this.createLabels(t).map((t=>Tt.div([t],{style:{width:"20px"}}))),n=this.eventBus.nucleotideSequencesChanged$.subscribe((()=>{this.createLabels(t).forEach(((t,n)=>{It()(e[n]).empty(),It()(e[n]).append(t)}))}));return this.subscriptions.add(n),e}createLabels(t){return this.eventBus.getNucleotideSequences()[t].map(((e,n)=>{const r=this.displayedInputLabels.get(t)[n];return Tt.label(r)}))}}class Se{constructor(){this.rxjsSubscriptions=[],this.dgSubscriptions=[]}add(t){t instanceof Jt.Subscription?this.rxjsSubscriptions.push(t):this.dgSubscriptions.push(t)}unsubscribeAll(){for(const t of[this.rxjsSubscriptions,this.dgSubscriptions])t.forEach((t=>t.unsubscribe())),t.length=0}}class Ie{constructor(t,e){this.eventBus=t,this.dataManager=e,this.subscriptions=new Se}static open(t,e){Ie.isDialogOpen||(Ie.instance||(Ie.instance=new Ie(t,e)),Ie.instance.openDialog())}openDialog(){this.initialPatternConfig=re().cloneDeep(this.eventBus.getPatternConfig()),Ie.isDialogOpen=!0,this.createDialog().show()}createDialog(){const t=Tt.divV([]);this.subscriptions.add(this.eventBus.strandsUpdated$.subscribe((()=>this.onStrandsUpdated(t))));const e=Tt.dialog("Edit strands").add(t).onOK((()=>{})).onCancel((()=>this.resetToInitialState()));return this.subscriptions.add(e.onClose.subscribe((()=>{Ie.isDialogOpen=!1,this.subscriptions.unsubscribeAll()}))),e}onStrandsUpdated(t){const e=new Ee(this.eventBus,this.initialPatternConfig,this.subscriptions).create(),n=new Te(this.eventBus,this.dataManager,this.subscriptions).create();It()(t).empty(),It()(t).append(e,n)}resetToInitialState(){this.eventBus.setPatternConfig(this.initialPatternConfig)}}Ie.isDialogOpen=!1;class Ne{constructor(t){this.eventBus=t,this.subscriptions=new Se}static open(t){Ne.isDialogOpen||(Ne.instance||(Ne.instance=new Ne(t)),Ne.instance.openDialog())}openDialog(){this.initialPatternConfig=re().cloneDeep(this.eventBus.getPatternConfig()),Ne.isDialogOpen=!0,this.createDialog().show()}createDialog(){const t=Tt.divV([]);this.subscriptions.add(this.eventBus.strandsUpdated$.subscribe((()=>this.onStrandsUpdated(t))));const e=Tt.dialog("Edit terminal modifications").add(t).onOK((()=>{})).onCancel((()=>this.resetToInitialState()));return this.subscriptions.add(e.onClose.subscribe((()=>{Ne.isDialogOpen=!1,this.subscriptions.unsubscribeAll()}))),e}onStrandsUpdated(t){const e=new Me(this.eventBus).create();It()(t).empty(),It()(t).append(e)}resetToInitialState(){this.eventBus.setPatternConfig(this.initialPatternConfig)}}Ne.isDialogOpen=!1;class Me{constructor(t){this.eventBus=t}create(){const t=Pt.map((t=>this.constructControlsPanel(t)));return Tt.divH(t,{style:{gap:"24px"}})}constructControlsPanel(t){if(!this.eventBus.isAntisenseStrandActive()&&"AS"===t)return Tt.div([]);const e=this.createInputs(t);return Tt.block([Tt.h1(`${Rt[t]}`),e],{style:{paddingTop:"12px"}})}createInputs(t){const e=("SS"===t?[...Dt].reverse():Dt).map((e=>this.createInputForTerminus(t,e)));return Tt.form(e)}createInputForTerminus(t,e){const n=this.eventBus.getTerminalModifications()[t][e],r=Tt.input.textArea(e,{value:n});return this.applyStylingToInput(r),r.onInput.subscribe((()=>{const n=r.value;null!==n&&this.eventBus.updateTerminusModification(t,e,n)})),r}applyStylingToInput(t){const e=t.root.getElementsByTagName("textarea")[0];It()(e).css("resize","none")}}class Oe{constructor(t,e){this.eventBus=t,this.dataManager=e}createControls(){const t=this.createAntisenseStrandToggle(),e=this.createStrandLengthInputs(),n=e.SS.root,r=e.AS.root,i=this.createSequenceBaseInput().root,o=this.createPatternCommentInput().root,s=this.createPatternNameInputBlock(),a=this.createEditPatternButton(),u=this.createEditTerminalModificationsButton();return[Tt.h1("Edit"),t,n,r,i,s,o,Tt.buttonsInput([u,a])]}createEditPatternButton(){const t=Tt.button("Edit strands",(()=>Ie.open(this.eventBus,this.dataManager)));return Tt.tooltip.bind(t,"Edit strand modifications and PTOs"),t}createEditTerminalModificationsButton(){const t=Tt.button("Edit terminals",(()=>Ne.open(this.eventBus)));return Tt.tooltip.bind(t,"Edit terminal modifications"),It()(t).css("margin-right","20px"),t}createAntisenseStrandToggle(){const t=Tt.input.toggle(`${Rt.AS} strand`,{value:this.eventBus.isAntisenseStrandActive()});return t.onInput.subscribe((()=>this.eventBus.toggleAntisenseStrand(t.value))),this.eventBus.patternLoaded$.subscribe((()=>{t.value=this.eventBus.isAntisenseStrandActive()})),t.setTooltip("Toggle antisense strand"),t.root}createStrandLengthInputs(){const e=t=>{const e=this.eventBus.getNucleotideSequences()[t].length,r=Tt.input.int(`${Rt[t]} length`,{value:e});return r.onInput.subscribe((()=>n(t,r))),this.eventBus.nucleotideSequencesChanged$.subscribe((()=>{r.value=this.eventBus.getNucleotideSequences()[t].length})),r.setTooltip(`Number of nucleotides in ${t}, including overhangs`),[t,r]},n=(e,n)=>{const r=n.value;null!==r&&(r<=0&&(t.shell.warning("Sequence length must be greater than 0"),n.value=1),r>34&&(t.shell.warning("Sequence length must be less than 35"),n.value=34),this.eventBus.updateStrandLength(e,n.value))},r=Object.fromEntries(Pt.map((t=>e(t))));return this.eventBus.antisenseStrandToggled$.subscribe((t=>{It()(r.AS.root).toggle(t)})),r}createSequenceBaseInput(){const t=this.dataManager.fetchAvailableNucleotideBases().sort(((t,e)=>t.toLowerCase().localeCompare(e.toLowerCase()))),e=this.dataManager.fetchDefaultNucleobase(),n=Tt.input.choice("Sequence basis",{value:e,items:t});return n.onInput.subscribe((()=>this.eventBus.replaceSequenceBase(n.value))),this.eventBus.nucleotideSequencesChanged$.subscribe((()=>{n.value=this.eventBus.getSequenceBase()})),n.setTooltip("Most frequent nucleobase in the strands"),n}createPatternCommentInput(){const t=Tt.input.textArea("Comment",{value:this.eventBus.getComment()});return It()(t.root).addClass("st-pattern-text-input"),t.onInput.subscribe((()=>this.eventBus.updateComment(t.value))),this.eventBus.patternLoaded$.subscribe((()=>{t.value=this.eventBus.getComment()})),t}createPatternNameInputBlock(){const t=Tt.input.textArea("Pattern name",{value:this.eventBus.getPatternName()});return It()(t.root).addClass("st-pattern-text-input"),t.onInput.subscribe((()=>this.eventBus.updatePatternName(t.value))),this.eventBus.patternLoaded$.subscribe((()=>{t.value=this.eventBus.getPatternName()})),t.setTooltip("Name under which pattern will be saved"),t.root}}class Le{constructor(t,e){this.eventBus=t,this.dataManager=e,this.subscriptions=new Se,this.authorSelectedByUser=!1,this.eventBus.patternLoadRequested$.subscribe((t=>this.handlePatternChoice(t))),this.eventBus.patternDeletionRequested$.subscribe((async t=>{await this.dataManager.deletePattern(t,this.eventBus)}))}async handlePatternChoice(t){let e=await this.dataManager.getPatternConfig(t);null===e&&(e=this.dataManager.getDefaultPatternConfig()),this.eventBus.setPatternConfig(e),this.eventBus.updateControlsUponPatternLoaded(t),this.eventBus.setLastLoadedPatternConfig(e)}isCurrentUserSelected(){return this.eventBus.getSelectedAuthor()!==this.dataManager.getOtherUsersAuthorshipCategory()}createControls(){const t=this.getPatternInputsContainer();return[Tt.h1("Load"),t]}getPatternInputsContainer(){const t=Tt.divH(this.createPatternInputs());return this.eventBus.patternListUpdated$.subscribe((()=>{this.subscriptions.unsubscribeAll(),It()(t).empty(),It()(t).append(this.createPatternInputs())})),t}createPatternInputs(){const t=this.createAuthorChoiceInput(),e=this.createPatternChoiceInputContainer(),n=this.createDeletePatternButton();return[t.root,e,n]}createPatternChoiceInputContainer(){const t=this.createPatternChoiceInput(),e=Tt.div([t.root]),n=this.eventBus.userSelection$.subscribe((()=>{It()(e).empty(),It()(e).append(this.createPatternChoiceInput().root)}));return this.subscriptions.add(n),e}createAuthorChoiceInput(){const t=[this.dataManager.getCurrentUserAuthorshipCategory()];this.dataManager.getOtherUsersPatternNames().length>0&&t.push(this.dataManager.getOtherUsersAuthorshipCategory());const e=Tt.input.choice("Author",{value:this.eventBus.getSelectedAuthor(),items:t});return e.onInput.subscribe((()=>{if(this.authorSelectedByUser=!0,null===e.value)throw new Error("author choice must be non-null");this.eventBus.selectAuthor(e.value)})),this.setAuthorChoiceInputStyle(e),e.setTooltip("Select pattern author"),e}setAuthorChoiceInputStyle(t){It()(t.input).css({"max-width":"100px","min-width":"100px"}),It()(t.root).css({"padding-right":"30px","padding-left":"30px"})}createPatternChoiceInput(){const t=this.isCurrentUserSelected()?this.dataManager.getCurrentUserPatternNames():this.dataManager.getOtherUsersPatternNames();if(this.authorSelectedByUser){const e=this.dataManager.getPatternHash(t[0],this.isCurrentUserSelected());this.eventBus.requestPatternLoad(e),this.eventBus.updateUrlState(e),this.authorSelectedByUser=!1}const e=this.getPatternName(t),n=Tt.input.choice("Pattern",{value:e,items:t});return n.setTooltip("Select pattern to load"),It()(n.input).css({"max-width":"100px","min-width":"100px"}),this.subscriptions.add(n.onInput.subscribe((()=>{const t=this.dataManager.getPatternHash(n.value,this.isCurrentUserSelected());this.eventBus.requestPatternLoad(t),this.eventBus.updateUrlState(t)}))),this.subscriptions.add(this.eventBus.patternLoaded$.subscribe((()=>{const e=this.eventBus.getPatternName();n.value!==e&&(n.value=this.getPatternName(t))}))),n}getPatternName(t){return t.find((t=>t.split(" (")[0]===this.eventBus.getPatternName()))??t[0]}createDeletePatternButton(){const e=Tt.button(Tt.iconFA("trash-alt"),(()=>{this.eventBus.getPatternName()!==this.dataManager.getDefaultPatternName()?this.showDeletePatternDialog():t.shell.warning("Cannot delete example pattern")}));Tt.tooltip.bind(e,"Delete pattern from user storage");const n=this.eventBus.userSelection$.subscribe((()=>{e.disabled=!this.isCurrentUserSelected()}));return this.subscriptions.add(n),e}showDeletePatternDialog(){const t=Tt.dialog("Delete pattern"),e=this.eventBus.getPatternName();t.add(Tt.divText(`Are you sure you want to delete pattern ${e}?`)),t.onOK((()=>this.eventBus.requestPatternDeletion(e))),t.show()}}class Be{constructor(t,e){this.eventBus=t,this.dataManager=e}getLayout(){const t=new Le(this.eventBus,this.dataManager),e=new Oe(this.eventBus,this.dataManager),n=new _e(this.eventBus),r=t.createControls(),i=e.createControls(),o=n.createControls(),s=Tt.div(r);It()(s).css({"padding-bottom":"20px"});const a=Tt.div([...i,...o],"ui-form"),u=Tt.div([s,a]);return It()(u).css({padding:"25px"}),Tt.box(u,{style:{maxWidth:"450px"}})}}var Pe=n(146);class Re{constructor(t,e,n){this.svgElementFactory=t,this.config=e,this.yShift=n}shiftElements(t){this.svgElements.forEach((e=>{const n=e.getAttribute("transform")||"",r=`translate(${t.x},${t.y})`;e.setAttribute("transform",`${n} ${r}`)}))}}class De{constructor(){}static getInstance(){return De.instance||(De.instance=new De,De.instance.canvas=document.createElement("canvas")),De.instance}static getTextDimensions(t,e){const n=De.getInstance().canvas.getContext("2d");if(!n)throw new Error("Canvas 2D context is not available");return n.font=`${e}px Arial`,{width:1.1*n.measureText(t).width,height:1.1*e}}}function Fe(t){const e=Object.keys($r.jsonData.patternAppData)[0];if(!e)throw new Error(`No format found in '${st}'`);return $r.jsonData.patternAppData[e][t].color||""}class He extends Re{constructor(t,e,n){super(t,e,n);const r=Pt.filter((t=>e.nucleotideSequences[t].length>0));this.strands=r.map((t=>new Ue(this.svgElementFactory,e,n,t))),this.terminalModifications=r.map(((t,r)=>new $e(this.svgElementFactory,e,n,t,this.strands[r]))),this.labels=r.map(((t,r)=>new ke(this.svgElementFactory,e,n,t,this.terminalModifications[r])))}get svgElements(){return[...this.strands,...this.terminalModifications,...this.labels].map((t=>t.svgElements)).flat()}getContentWidth(){return Math.max(...this.labels.map((t=>t.getContentWidth())))}getContentHeight(){return this.strands.reduce(((t,e)=>t+e.getContentHeight()),0)}}class Ue extends Re{constructor(t,e,n,r){super(t,e,n),this.svgElementFactory=t,this.config=e,this.yShift=n,this.strand=r,this.nucleotideNumericLabels=this.computeNucleotideNumericLabels(),"AS"===this.strand&&(this.config.phosphorothioateLinkageFlags[this.strand].reverse(),this.config.nucleotideSequences[this.strand].reverse(),this.nucleotideNumericLabels.reverse()),this._svgElements=[this.createStrandCircles(),this.createPTOLinkageStars()].flat()}computeNucleotideNumericLabels(){let t=0;return this.config.nucleotideSequences[this.strand].map((e=>Xt(e)?null:(t++,t)))}get svgElements(){return this._svgElements}getStrandCircleYShift(){return Ve(this.strand,this.yShift)}createStrandCircles(){const t={x:80,y:this.getStrandCircleYShift()};return this.config.nucleotideSequences[this.strand].map(((e,n)=>this.createNucleotideElementGroup(e,n,t))).flat()}createNucleotideElementGroup(t,e,n){return[...this.createNucleotideCircleElements(t,e,n),this.config.nucleotidesWithNumericLabels.includes(t)?this.createNucleotideNumericLabel(e,n):null].filter((t=>null!==t))}createNucleotideCircleElements(t,e,n){const r=Fe(t),i={...n,x:n.x+30*e};return[this.svgElementFactory.createCircleElement(i,15,r),this.createNucleotideLetterLabel(e,n,t)]}getNucleotideCircleCenterPosition(t,e){return{x:e.x+30*t,y:e.y}}createNucleotideLetterLabel(t,e,n){if(!ct.includes(n))return null;const r=function(t){return!Xt(t)&&ct.includes(t)?t:""}(n),i=function(t){const e=Fe(t),n=e.match(/\d+/g)?.map(Number);if(!n||n.length<3)return"#ffffff";const[r,i,o]=n;return.299*r+.587*i+.114*o>186?"#333333":"#ffffff"}(n),o=this.getPositionForNucleotideLabel(t,e);return this.svgElementFactory.createTextElement(r,o,17,i)}getPositionForNucleotideLabel(t,e){const n=this.getNucleotideCircleCenterPosition(t,e),r=De.getTextDimensions("A",17);return{x:n.x-r.width/2,y:n.y+r.height/3}}getNumericLabelYShift(t){return"SS"===this.strand?t.y-20:t.y+15+5+15}createNucleotideNumericLabel(t,e){const n=this.nucleotideNumericLabels[t];if(null===n)return null;const r=De.getTextDimensions(n.toString(),15).width,i={x:e.x+30*t-r/2,y:this.getNumericLabelYShift(e)};return this.svgElementFactory.createTextElement(n.toString(),i,15,"var(--grey-6)")}createPTOLinkageStars(){const t=this.config.phosphorothioateLinkageFlags[this.strand],e=this.getStrandCircleYShift()+12;return t.map(((t,n)=>{if(!t)return null;const r={x:65+30*n,y:e};return this.svgElementFactory.createStarElement(r,"red")})).filter((t=>null!==t))}getContentWidth(){return 30*this.config.nucleotideSequences[this.strand].length}getContentHeight(){return 62}}class ke extends Re{constructor(t,e,n,r,i){super(t,e,n),this.svgElementFactory=t,this.config=e,this.yShift=n,this.strand=r,this.terminalModifications=i,this._svgElements=this.createSVGElements()}createSVGElements(){return[this.createLeftLabel(),this.createRightLabel()]}getLeftLabelWidth(){return 55}getRightLabelWidth(){return 20}createLeftLabel(){const t="SS"===this.strand?"5'":"3'",e=`${this.strand}: ${t} `,n=De.getTextDimensions(e,17),r={x:10,y:Ve(this.strand,this.yShift)+n.height/3};return this.svgElementFactory.createTextElement(e,r,17,"var(--grey-6)")}createRightLabel(){const t=" "+("SS"===this.strand?"3'":"5'"),e=De.getTextDimensions(t,17),n={x:65+this.terminalModifications.getContentWidth()+5,y:Ve(this.strand,this.yShift)+e.height/3};return this.svgElementFactory.createTextElement(t,n,17,"var(--grey-6)")}get svgElements(){return this._svgElements}getContentWidth(){return this.terminalModifications.getContentWidth()+this.getLeftLabelWidth()+this.getRightLabelWidth()+10}getContentHeight(){return this.terminalModifications.getContentHeight()}}class $e extends Re{constructor(t,e,n,r,i){super(t,e,n),this.svgElementFactory=t,this.config=e,this.yShift=n,this.strand=r,this.strandSvgWrapper=i,this._svgElements=this.createSVGElements()}createSVGElements(){return this.createTerminalModifications()}getTerminalModification(t){return this.config.strandTerminusModifications[this.strand][t]}getTerminalModificationTextDimensions(t){const e=this.getTerminalModification(t);return De.getTextDimensions(e,17)}getLeftTerminus(){return"SS"===this.strand?"5'":"3'"}createTerminalModification(t){const e=this.getTerminalModification(t),n=this.getTerminalModificationTextDimensions(t),r=t===this.getLeftTerminus(),i={x:r?65:65+this.getTerminalModificationTextDimensions(this.getLeftTerminus()).width+this.strandSvgWrapper.getContentWidth(),y:Ve(this.strand,this.yShift)+n.height/3};return r&&this.strandSvgWrapper.shiftElements({x:n.width,y:0}),this.svgElementFactory.createTextElement(e,i,17,"red")}createTerminalModifications(){return("AS"===this.strand?Dt:Array.from(Dt).reverse()).map((t=>this.createTerminalModification(t)))}get svgElements(){return this._svgElements}getContentWidth(){return this.strandSvgWrapper.getContentWidth()+Dt.map((t=>this.getTerminalModificationTextDimensions(t).width)).reduce(((t,e)=>t+e),0)}getContentHeight(){return this.strandSvgWrapper.getContentHeight()}}function Ve(t,e){return"SS"===t?e+5+15+15:e+52+10+15}class je{constructor(){this.xmlNamespace="http://www.w3.org/2000/svg"}createElement(t){return document.createElementNS(this.xmlNamespace,t)}setAttributes(t,e){Object.entries(e).forEach((([e,n])=>{t.setAttribute(e,String(n))}))}createCanvas(t,e){const n=this.createElement("svg");return this.setAttributes(n,{id:"mySvg",width:t,height:e}),n}createCircleElement(t,e,n){const r=this.createElement("circle");return this.setAttributes(r,{cx:t.x,cy:t.y,r:e,fill:n}),r}createTextElement(t,e,n,r){const i=this.createElement("text");return this.setAttributes(i,{x:e.x,y:e.y,"font-size":n,"font-weight":"normal","font-family":"Arial",fill:r}),i.textContent=t,i}createStarElement(t,e){const n=this.createElement("polygon"),r=this.computeStarVertexCoordinates(t).map((t=>t.join(","))).join(" ");return this.setAttributes(n,{points:r,fill:e}),n}computeStarVertexCoordinates(t){const e=Math.PI/5,n=-e/2;return Array.from({length:10},((r,i)=>{const o=i%2==0?6:3,s=i*e+n;return[t.x+Math.cos(s)*o,t.y+Math.sin(s)*o]}))}createRectangleElement(t,e,n,r){const i=this.createElement("rect");return this.setAttributes(i,{x:t.x,y:t.y,width:e,height:n,fill:r}),i}}class qe extends Re{constructor(t,e,n){super(t,e,n),this.svgElementFactory=t,this.config=e,this.yShift=n,this._svgElements=[],this.titleText=this.getTitleText(),this._svgElements=[this.getTitle()]}get svgElements(){return this._svgElements}getTitle(){return this.svgElementFactory.createTextElement(this.titleText,{x:15,y:this.yShift+17},17,"black")}getContentWidth(){return De.getTextDimensions(this.titleText,17).width}getContentHeight(){return De.getTextDimensions(this.titleText,17).height}getTitleText(){const t=`${this.config.nucleotideSequences.SS.length}`,e=this.config.isAntisenseStrandIncluded?`/${this.config.nucleotideSequences.AS.length}`:"";return`${this.config.patternName} for ${t}${e}-mer`}}class Ge extends Re{constructor(t,e,n){super(t,e,n),this._svgElements=[];const{elements:r,width:i}=this.createLegendItems();this._svgElements=r,this.width=i}isPhosphorothioatePresent(){return Object.values(this.config.phosphorothioateLinkageFlags).flat().some((t=>t))}getModificationTypesList(){return[...new Set(Object.values(this.config.nucleotideSequences).flat().sort(((t,e)=>t.toLowerCase().localeCompare(e.toLowerCase()))))]}get svgElements(){return this._svgElements}createLegendItem(t,e){const n={x:e,y:this.yShift-6},r=t.includes("linkage")?this.svgElementFactory.createStarElement(n,"red"):this.svgElementFactory.createCircleElement(n,6,Fe(t));e+=12;const i={y:this.yShift,x:e};return{elements:[r,this.svgElementFactory.createTextElement(t,i,15,"var(--grey-6)")],width:12+De.getTextDimensions(t,15).width}}createLegendItems(){let t=10;const e=[],n=e=>t+=e+15;if(this.isPhosphorothioatePresent()){const{elements:r,width:i}=this.createLegendItem("PTO linkage",t);n(i),e.push(r)}return this.getModificationTypesList().forEach((r=>{const{elements:i,width:o}=this.createLegendItem(r,t);n(o),e.push(i)})),{elements:e.flat(),width:t}}getContentHeight(){return 20}getContentWidth(){return this.width}}class We{constructor(t){this.svgElementFactory=new je;const e=re().cloneDeep(t);let n=10;this.title=new qe(this.svgElementFactory,e,n),n+=this.title.getContentHeight(),this.strands=new He(this.svgElementFactory,e,n),n+=this.strands.getContentHeight()+10,this.legend=new Ge(this.svgElementFactory,e,n)}renderPattern(){const t=this.getGlobalWidth(),e=this.getGlobalHeight(),n=this.svgElementFactory.createCanvas(t,e),r=[this.title,this.strands,this.legend].map((t=>t.svgElements)).flat();return n.append(...r),n}getGlobalWidth(){const t=[this.title,this.strands,this.legend];return Math.max(...t.map((t=>t.getContentWidth())))}getGlobalHeight(){return[this.title,this.strands,this.legend].reduce(((t,e)=>t+e.getContentHeight()),10)}}class ze{constructor(t){this.eventBus=t,this.svgDisplayDiv=Tt.div([]),t.updateSvgContainer$.subscribe((()=>this.updateSvgContainer())),t.svgSaveRequested$.subscribe((()=>this.saveSvgAsPng()))}static createSvgDiv(t){return new ze(t).svgDisplayDiv}updateSvgContainer(){$(this.svgDisplayDiv).empty();const t=this.eventBus.getPatternConfig();this.svgElement=this.createSvg(t),this.svgDisplayDiv.append(this.svgElement)}createSvg(t){return new We(t).renderPattern()}saveSvgAsPng(){const t=this.eventBus.getPatternName();Pe.saveSvgAsPng(this.svgElement,t,{backgroundColor:"white"})}}class Ye{constructor(t){this.eventBus=t,this.togglesContainer=Tt.div([]),this.eventBus.uniqueNucleotidesChanged$().subscribe((()=>{this.updateContainer()}))}getContainer(){return this.togglesContainer}updateContainer(){It()(this.togglesContainer).empty(),It()(this.togglesContainer).append(this.createInputs())}createInputs(){const t=this.eventBus.getUniqueNucleotides().filter((t=>!Xt(t))).map((t=>this.createSingleInput(t)));return t.sort(((t,e)=>t.captionLabel.textContent.localeCompare(e.captionLabel.textContent))),Tt.divH(t.map((t=>t.root)))}createSingleInput(t){const e=this.eventBus.getModificationsWithNumericLabels().includes(t),n=Tt.input.bool(t,{value:e,onValueChanged:e=>this.handleNumericLabelToggle(t,e)});return It()(n.root).css("padding-right","20px"),n.setTooltip(`Show numeric labels for ${t}`),n}handleNumericLabelToggle(t,e){const n=this.eventBus.getModificationsWithNumericLabels();if(n.includes(t)===e)return;const r=e?n.concat(t):n.filter((e=>e!==t));this.eventBus.updateModificationsWithNumericLabels(r)}}class Ke{constructor(t,e){this.eventBus=t,this.dataManager=e,this.subscriptions=new Se}createContainer(){return Tt.div([Tt.h1("Translation example"),this.createTranslationExamples()],{style:{paddingTop:"20px"}})}createTranslationExamples(){const t=Tt.divH([...this.getExampleElements()],"ui-form");return this.eventBus.antisenseStrandToggled$.subscribe((()=>{this.subscriptions.unsubscribeAll(),It()(t).empty(),It()(t).append(this.getExampleElements())})),t}getExampleElements(){return Pt.map((t=>new Je(t,this.eventBus,this.subscriptions).create()))}}class Je{constructor(t,e,n){this.strand=t,this.eventBus=e,this.subscriptions=n}create(){return this.eventBus.isAntisenseStrandActive()||"AS"!==this.strand?(this.inputExample=this.createInputExample(),this.outputExample=this.createOutputExample(this.inputExample.value),this.subscribeToEvents(),Tt.block50([Tt.h2(Rt[this.strand]),this.inputExample.root,this.outputExample.root],{style:{paddingRight:"20px"}})):Tt.div([])}subscribeToEvents(){const t=this.eventBus.strandsLinkagesAndTerminalsUpdated$.subscribe((()=>{const t=this.generateExampleSequence();this.inputExample.value=t,this.outputExample.value=this.computeOutputValue(t)}));"AS"===this.strand&&this.subscriptions.add(t)}createInputExample(){const t=this.createTextInputForExamples(),e=this.generateExampleSequence();return t.value=e,t.setTooltip(`Example raw nucleotides input for ${Rt[this.strand]}`),t}generateExampleSequence(){return this.eventBus.getNucleotideSequences()[this.strand].map(((t,e)=>ct[e%ct.length])).join("")}createOutputExample(t){const e=this.createTextInputForExamples();return e.value=this.computeOutputValue(t),e.setTooltip(`Pattern applied to the example input for ${Rt[this.strand]}`),e}computeOutputValue(t){const e=this.eventBus.getNucleotideSequences()[this.strand],n=this.eventBus.getTerminalModifications()[this.strand];return xe(t,e,this.eventBus.getPhosphorothioateLinkageFlags()[this.strand],n)}createTextInputForExamples(){const t=Tt.input.textArea("",{value:""});return this.applyStylingToInput(t),t}applyStylingToInput(t){const e=t.root.getElementsByTagName("textarea")[0];e.setAttribute("readonly","true"),It()(e).css("resize","none"),It()(t.root).css("opacity","75%")}}class Qe{constructor(t,e){this.eventBus=t,this.dataManager=e,this.svgDisplay=ze.createSvgDiv(t)}getLayout(){const t=new Ye(this.eventBus).getContainer(),e=this.generateDownloadControls(),n=new Ke(this.eventBus,this.dataManager).createContainer();return Tt.panel([this.svgDisplay,t,e,n],{style:{overflowX:"scroll",padding:"12px 24px"}})}generateDownloadControls(){return Tt.divH([this.createSavePatternButton(),this.createDownloadPngButton(),this.createShareLinkButton(),this.createInfoButton()],{style:{gap:"12px",marginTop:"12px"}})}createDownloadPngButton(){const t=Tt.button("Get PNG",(()=>this.eventBus.requestSvgSave()));return Tt.tooltip.bind(t,"Download pattern as PNG"),t}createInfoButton(){const t=Tt.button(Tt.iconFA("info-circle"),(()=>this.openInfoDialog()));return this.eventBus.patternHasUnsavedChanges$.subscribe((e=>{t.disabled=e})),Tt.tooltip.bind(t,"View pattern metadata"),t}async openInfoDialog(){let e=this.dataManager.getCurrentUserName(),n=this.dataManager.getDefaultPatternName(),r=qt,i=qt;const o=new URLSearchParams(window.location.search).get("pattern");if(null!==o){const s=await this.dataManager.getPatternRecordByHash(o);if(null!==s){const o=s[kt.AUTHOR_ID];if(e=(await t.dapi.users.find(o)).friendlyName,n=s[kt.PATTERN_CONFIG][Ut.PATTERN_NAME],void 0!==s[kt.DATE]){const t=s[kt.DATE][$t.CREATE];void 0!==t&&(r=t);const e=s[kt.DATE][$t.MODIFY];void 0!==e&&(i=e)}}}const s=Tt.divV([Tt.divText(`Pattern Name: ${n}`),Tt.divText(`Author: ${e}`),Tt.divText(`Created: ${Ze(new Date(r))}`),Tt.divText(`Modified: ${Ze(new Date(i))}`)]);t.shell.info(s)}createShareLinkButton(){const e=Tt.button(Tt.iconFA("link"),(()=>navigator.clipboard.writeText(window.location.href).then((()=>t.shell.info("Link to pattern copied to clipboard")))));return this.eventBus.patternHasUnsavedChanges$.subscribe((t=>{e.disabled=t})),Tt.tooltip.bind(e,"Share pattern link"),e}createSavePatternButton(){const t=Tt.button("Save",(()=>this.processSaveButtonClick()));return this.eventBus.patternHasUnsavedChanges$.subscribe((e=>{t.disabled=!e})),Tt.tooltip.bind(t,"Save pattern to user storage"),t}processSaveButtonClick(){const e=this.eventBus.getPatternName();e!==this.dataManager.getDefaultPatternName()?""!==e?this.dataManager.savePatternToUserStorage(this.eventBus).then((()=>{t.shell.info(`Pattern ${e} saved`)})).catch((t=>this.handleErrorWhileSavingPattern(t))):t.shell.warning("Insert pattern name"):t.shell.warning("Cannot save default pattern")}handleErrorWhileSavingPattern(e){e instanceof Gt?new Xe(this.eventBus,this.dataManager).show():e instanceof Wt?t.shell.warning(Tt.div([Tt.divText("Pattern already exists"),Tt.button("Load",(()=>{const t=e.message;this.eventBus.requestLoadPatternInNewTab(t)}))])):console.error("Error while saving pattern",e)}}class Xe{constructor(t,e){this.eventBus=t,this.dataManager=e}show(){const t=this.eventBus.getPatternName(),e=Tt.dialog(`Pattern "${t}" already exists`);e.add(Tt.divText(`Pattern "${t}" already exists. Do you want to overwrite it?`)),e.show(),e.onOK((()=>this.processOverwriteNamesakePattern()))}processOverwriteNamesakePattern(){const e=this.eventBus.getPatternName();this.dataManager.overwriteExistingPatternInUserStorage(this.eventBus).then((()=>{t.shell.info(`Pattern ${e} overwritten`)})).catch((e=>{console.error("Error while overwriting pattern in user storage",e),t.shell.error("Error while overwriting pattern")}))}}function Ze(t){return t.toLocaleString().split(":").slice(0,-1).join(":")}class tn extends Bt{constructor(t){super("Oligo Pattern"),this.th=t}getContent(){return async function(){const t=await Kt.getInstance(),e=new se,n=await async function(t,e){const n=e.getPatternHash();if(!n)return e.clearPatternURL(),t.getDefaultPatternRecord();let r=await t.getPatternRecordByHash(n);return r||(e.clearPatternURL(),r=t.getDefaultPatternRecord()),r}(t,e),r=new ie(t,n);e.subscribeToObservables(r);const i=new Be(r,t).getLayout(),o=new Qe(r,t).getLayout();return Tt.splitH([i,o],{},!0)}()}}var en=n(507),nn={};function rn(t){var e;return"string"==typeof t||t instanceof String?t:("object"==typeof t||t instanceof Object)&&"$thrownJsError"in t?rn(t.$thrownJsError):t instanceof Error?null!==(e=t.stack)&&void 0!==e?e:t.message:t.toString()}nn.styleTagTransform=ve(),nn.setAttributes=pe(),nn.insert=fe().bind(null,"head"),nn.domAPI=ce(),nn.insertStyleElement=me(),ue()(en.A,nn),en.A&&en.A.locals&&en.A.locals;var on,sn=n(74),an={};an.styleTagTransform=ve(),an.setAttributes=pe(),an.insert=fe().bind(null,"head"),an.domAPI=ce(),an.insertStyleElement=me(),ue()(sn.A,an),sn.A&&sn.A.locals&&sn.A.locals;class un{constructor(t,e,n=!0){this.textInputBase=t,this.painter=e,It()(this.root).addClass("st-colored-text-input"),n&&this.textInputBase.onChanged.subscribe((()=>{It()(this.textArea).css("height",0),It()(this.textArea).css("height",this.textArea.scrollHeight+"px")})),this.highlights=Tt.div([]),this.root.appendChild(this.highlights),this.colorize(),this.textInputBase.onChanged.subscribe((()=>this.colorize()))}get textArea(){return this.textInputBase.root.getElementsByTagName("textarea").item(0)}get inputBase(){return this.textInputBase}get root(){return this.textInputBase.root}colorize(){const t=this.painter(this.textInputBase.value);this.highlights.innerHTML="",t.forEach((t=>this.highlights.appendChild(t)))}}!function(t){t.TYPE="V2000",t[t.NUM_OF_HEADER_LINES=3]="NUM_OF_HEADER_LINES",t[t.NUM_OF_COUNTS_DIGITS=3]="NUM_OF_COUNTS_DIGITS",t[t.ATOM_TYPE_COL=4]="ATOM_TYPE_COL",t[t.FIRST_BONDED_ATOM_COL=1]="FIRST_BONDED_ATOM_COL",t[t.BOND_TYPE_COL=3]="BOND_TYPE_COL",t[t.RGP_SHIFT=8]="RGP_SHIFT",t[t.MAX_ATOM_COUNT=999]="MAX_ATOM_COUNT",t.RGP_LINE_START="M RGP",t.ATOM_ALIAS_LINE_START="A ",t.END="M END"}(on||(on={}));class ln{constructor(t){this.init(t)}init(t){this.fileContent=t.replace(/\r/g,""),this._atomCount=void 0,this._atomTypes=void 0,this._bondCount=void 0,this._bondTypes=void 0,this.xyzAtomCoordinates=void 0,this._pairsOfBondedAtoms=void 0}get atomCount(){return void 0===this._atomCount&&this.setAtomAndBondCounts(),this._atomCount}get bondCount(){return void 0===this._bondCount&&this.setAtomAndBondCounts(),this._bondCount}get x(){var t;return null!==(t=this.xyzAtomCoordinates)&&void 0!==t||(this.xyzAtomCoordinates=this.parseAtomCoordinates()),this.xyzAtomCoordinates.x}get y(){var t;return null!==(t=this.xyzAtomCoordinates)&&void 0!==t||(this.xyzAtomCoordinates=this.parseAtomCoordinates()),this.xyzAtomCoordinates.y}get z(){var t;return null!==(t=this.xyzAtomCoordinates)&&void 0!==t||(this.xyzAtomCoordinates=this.parseAtomCoordinates()),this.xyzAtomCoordinates.z}get atomTypes(){var t;return null!==(t=this._atomTypes)&&void 0!==t||(this._atomTypes=this.parseAtomTypes()),this._atomTypes}get pairsOfBondedAtoms(){var t;return null!==(t=this._pairsOfBondedAtoms)&&void 0!==t||(this._pairsOfBondedAtoms=this.parseBondedAtomPairs()),this._pairsOfBondedAtoms}get bondTypes(){var t;return null!==(t=this._bondTypes)&&void 0!==t||(this._bondTypes=this.parseBondTypes()),this._bondTypes}setAtomAndBondCounts(){const{atomCount:t,bondCount:e}=this.parseAtomAndBondCounts();this._atomCount=t,this._bondCount=e}getNextColumnIdx(t){for(;!this.isWhitespace(t);)++t;for(;this.isWhitespace(t);)++t;return t}shiftIdxToSpecifiedColumn(t,e){let n=t;const r=this.isWhitespace(n)?e:e-1;for(let t=0;t<r;t++)n=this.getNextColumnIdx(n);return n}parseAtomTypes(){const t=this.atomCount,e=new Array(t);let n=this.getAtomBlockIdx();for(let r=0;r<t;r++)n=this.shiftIdxToAtomType(n),e[r]=this.parseAtomType(n),n=this.getNextLineIdx(n);return e}parseAtomCoordinates(){const t=new Float32Array(this.atomCount),e=new Float32Array(this.atomCount),n=new Float32Array(this.atomCount);let r=this.getAtomBlockIdx();for(let i=0;i<this.atomCount;i++){r=this.shiftIdxToXColumn(r);for(const o of[t,e,n])o[i]=this.parseFloatValue(r),r=this.getNextColumnIdx(r);r=this.getNextLineIdx(r)}return{x:t,y:e,z:n}}parseBondedAtomPairs(){const t=new Array(this.bondCount);let e=this.getBondBlockIdx();for(let n=0;n<this.bondCount;n++){e=this.shiftIdxToBondedAtomsPair(e);const r=new Uint16Array(2);r[0]=this.parseIntValue(e),e=this.getNextColumnIdx(e),r[1]=this.parseIntValue(e),t[n]=r,e=this.getNextLineIdx(e)}return t}parseBondTypes(){const t=this.bondCount,e=new Uint16Array(t);let n=this.getBondBlockIdx();for(let r=0;r<t;r++)n=this.shiftIdxToBondType(n),e[r]=this.parseIntValue(n),n=this.getNextLineIdx(n);return e}isWhitespace(t){const e=this.fileContent[t];return" "===e||"\t"===e}getNextLineIdx(t){return"\n"!==this.fileContent[t]?this.fileContent.indexOf("\n",t)+1:t+1}parseFloatValue(t){return this.parseNumericValue(parseFloat,t)}parseIntValue(t){return this.parseNumericValue(parseInt,t)}parseNumericValue(t,e){let n=e+1;for(;!this.isWhitespace(n);)++n;return t(this.fileContent.substring(e,n))}}class cn extends ln{constructor(t){super(t),this.init(t)}init(t){super.init(t)}parseAtomType(t){let e=t,n=e;return this.isQuote(e)?(n=this.getNextIdenticalChar(e),e++):n=this.fileContent.indexOf(" ",n),this.fileContent.substring(e,n)}isQuote(t){const e=this.fileContent[t].charCodeAt(0);return 39===e||34===e}getNextIdenticalChar(t){const e=this.fileContent[t];return e?this.fileContent.indexOf(e,t+1):-1}isQuery(){return this.isQueryOrFragment(((t,e)=>{return 39===t||34===t||76===t&&!((n=this.fileContent.charCodeAt(e+1))>64&&n<91||n>96&&n<123);var n}))}isFragment(){return this.isQueryOrFragment((t=>82===t||42===t))}isQueryOrFragment(t){const e=this.atomCount;let n=this.getAtomBlockIdx();for(let r=0;r<e;r++){if(n=this.shiftIdxToAtomType(n),t(this.fileContent.charCodeAt(n),n))return!0;n=this.getNextLineIdx(n)}return!1}}class hn extends cn{constructor(t){super(t)}getAtomLines(){const t=this.getAtomBlockIdx(),e=this.getBondBlockIdx();return this.fileContent.substring(t,e).split("\n").slice(0,this.atomCount)}getBondLines(){const t=this.getBondBlockIdx();return this.fileContent.substring(t).split("\n").slice(0,this.bondCount)}getRGroupIdToAtomicIdxMap(){const t=new Map,e=this.fileContent.split("\n");e.filter((t=>t.startsWith(on.RGP_LINE_START))).forEach((e=>{const n=this.getAtomIdxToRgpIdxList(e);for(const[e,r]of n){if(t.has(e))throw new Error(`R group ${e} is already in the map`);t.set(e,r)}}));const n=e.map(((t,e)=>{if(t.startsWith(on.ATOM_ALIAS_LINE_START))return e})).filter((t=>void 0!==t)),r=n.map((t=>e[t])),i=n.map((t=>e[t+1]));r.forEach(((e,n)=>{const r=parseInt(e.split(/\s+/)[1])-1,o=parseInt(i[n].substring(1));if(t.has(o))throw new Error(`R group ${o} is already in the map`);t.set(o,r)}));const o=this.getRGroupAtomicIndices().filter((e=>!Array.from(t.values()).includes(e)));if(0!==o.length)throw new Error(`Unaccounted R group indices: ${o}`);return t}getAtomIdxToRgpIdxList(t){const e=t.split(/\s+/).filter((t=>t)).slice(3).map((t=>parseInt(t))),n=new Array(e.length/2);for(let t=0;t<e.length;t+=2)n[t/2]=[e[t+1],e[t]-1];return n}getRGroupAtomicIndices(){return this.atomTypes.map(((t,e)=>{if(t.includes("R#"))return e})).filter((t=>void 0!==t))}static isValidMolfile(t){return-1!==t.indexOf(on.TYPE)&&-1!==t.indexOf(on.END)}shiftIdxToAtomType(t){return this.shiftIdxToSpecifiedColumn(t,on.ATOM_TYPE_COL)}getCountsLineIdx(){let t=0;for(let e=0;e<on.NUM_OF_HEADER_LINES;++e)t=this.getNextLineIdx(t);return t}getAtomBlockIdx(){let t=this.getCountsLineIdx();return t=this.getNextLineIdx(t),t}shiftIdxToXColumn(t){return this.getNextColumnIdx(t)}shiftIdxToBondedAtomsPair(t){return this.shiftIdxToSpecifiedColumn(t,on.FIRST_BONDED_ATOM_COL)}shiftIdxToBondType(t){return this.shiftIdxToSpecifiedColumn(t,on.BOND_TYPE_COL)}getBondBlockIdx(){let t=this.getAtomBlockIdx();for(let e=0;e<this.atomCount;e++)t=this.getNextLineIdx(t);return t}parseAtomAndBondCounts(){let t=this.getCountsLineIdx(),e=t+on.NUM_OF_COUNTS_DIGITS;const n=parseInt(this.fileContent.substring(t,e));return t=e,e+=on.NUM_OF_COUNTS_DIGITS,{atomCount:n,bondCount:parseInt(this.fileContent.substring(t,e))}}}class fn extends cn{constructor(t){super(t),this.init(t)}getAtomLines(){const t=this.getAtomBlockIdx(),e=this.getBondBlockIdx();return this.fileContent.substring(t,e).split("\n").slice(0,this.atomCount)}getBondLines(){const t=this.getBondBlockIdx();return this.fileContent.substring(t).split("\n").slice(0,this.bondCount)}getRGroupIdToAtomicIdxMap(){const t=new Map;return this.getAtomLines().forEach(((e,n)=>{const r=e.match(/RGROUPS=\(([\d\s]+)\)/);if(r){const e=r[1].split(/\s+/).map((t=>parseInt(t)));if(e.length>2)throw new Error(`R group data ${e} has more than 2 elements`);const i=e[1];if(t.has(i))throw new Error(`R group ${i} is already in the map`);t.set(i,n)}})),t}shiftIdxToAtomType(t){return this.shiftIdxToSpecifiedColumn(t,4)}getCountsLineIdx(){return this.fileContent.indexOf("M V30 COUNTS ")}getAtomBlockIdx(){let t=this.fileContent.indexOf("M V30 BEGIN ATOM");return t=this.getNextLineIdx(t),t}shiftIdxToXColumn(t){let e=this.shiftIdxToAtomType(t);return this.isQuote(e)?(e=this.getNextIdenticalChar(e),e=this.getNextColumnIdx(e),e):this.shiftIdxToSpecifiedColumn(t,5)}shiftIdxToBondedAtomsPair(t){return this.shiftIdxToSpecifiedColumn(t,5)}shiftIdxToBondType(t){return this.shiftIdxToSpecifiedColumn(t,4)}getBondBlockIdx(){return this.getNextLineIdx(this.fileContent.indexOf("M V30 BEGIN BOND"))}static isValidMolfile(t){return-1!==t.indexOf("V3000")&&-1!==t.indexOf("M END")}parseAtomAndBondCounts(){let t=this.fileContent.indexOf("M V30 COUNTS ")+14,e=this.fileContent.indexOf(" ",t+1);const n=parseInt(this.fileContent.substring(t,e));return t=e+1,e=this.fileContent.indexOf(" ",t+1),{atomCount:n,bondCount:parseInt(this.fileContent.substring(t,e))}}}class dn{constructor(){}static getInstance(t){if(dn.isMolfileV2K(t))return new hn(t);if(dn.isMolfileV3K(t))return new fn(t);throw new Error("Malformed molfile")}static isMolfileV2K(t){return hn.isValidMolfile(t)}static isMolfileV3K(t){return fn.isValidMolfile(t)}}const pn=class extends Error{constructor(t){super(t)}};class gn{constructor(t){this.molblock=t}get molblock(){return this._validMolBlock}set molblock(t){if(""!==t){try{this.validateMolBlock(t)}catch(e){e instanceof pn&&(t="");const n=rn(e);console.error(n)}this._validMolBlock=t}else this._validMolBlock=t}validateMolBlock(t){if(""===t)throw new pn("MoleculeImage: invalid molblock")}async drawMolBlockOnCanvas(e){try{await t.functions.call("Chem:canvasMol",{x:0,y:0,w:e.width,h:e.height,canvas:e,molString:this.molblock,scaffoldMolString:"",options:{normalizeDepiction:!1,straightenDepiction:!1}})}catch(t){const e=rn(t);console.error(e)}}getMoleculeDimensions(){const t=dn.getInstance(this.molblock),e=Math.max(...t.x)-Math.min(...t.x);return{height:Math.max(...t.y)-Math.min(...t.y),width:e}}async zoomIn(){const t=Tt.dialog({title:"Molecule",showFooter:!1}),e=.7*It()(window).height(),n=this.getMoleculeDimensions(),r=e/n.height,i=e,o=n.width*r,s=Tt.canvas(o,i);await this.drawMolBlockOnCanvas(s);const a=Tt.block([s],{style:{overflowX:"scroll"}});t.add(a).showModal(!0),It()(t.root).find(".d4-dialog-contents").removeClass("ui-form"),It()(t.root).find(".d4-dialog-contents").removeClass("ui-panel"),It()(t.root).find(".d4-dialog-contents").addClass("ui-box"),It()(t.root).find(".d4-dialog-contents").css("padding","0")}async drawMolecule(t,e,n){t.innerHTML="";const r=Tt.canvas(e*window.devicePixelRatio,n*window.devicePixelRatio);r.style.width=`${e}px`,r.style.height=`${n}px`,r.style.cursor="zoom-in",this.drawMolBlockOnCanvas(r),r.addEventListener("click",(async()=>{await this.zoomIn()})),t.append(Tt.tooltip.bind(r,"Click to zoom"))}}class mn extends Error{constructor(t,e){super(t,e)}}class yn{constructor(t,e){this.sequence=t,this.codeMap=e}parseSequence(){const t=this.parseRawSequence();return this.addLinkers(t)}addLinkers(t){const e=[];return t.forEach(((n,r)=>{const i=this.getSymbolForCode(n);r>0&&function(t){return $r.jsonData.monomersWithPhosphate.left.includes(t)}(i)&&e.pop(),e.push(i);const o=vn(i),s=r===t.length-1,a=r+1<t.length&&vn(this.getSymbolForCode(t[r+1]));o||function(t){return $r.jsonData.monomersWithPhosphate.right.includes(t)}(i)||a||s||e.push("p")})),e}getSymbolForCode(t){let e=this.codeMap.get(t);return e??(e=t),e}parseRawSequence(){const t=this.getAllCodesOfFormat(),e=[];let n=0;for(;n<this.sequence.length;){const r=t.find((t=>t===this.sequence.substring(n,n+t.length)));if(void 0===r)throw new mn(`Unable to match a monomer for the rest of the sequence '${this.sequence.slice(n)}'.`);e.push(r),n+=r.length}return e}getAllCodesOfFormat(){return ft(Array.from(this.codeMap.keys()))}}function vn(t){return $r.jsonData.monomersWithPhosphate.phosphate.includes(t)}class bn{constructor(t,e=!1,n){this.invert=e,this.lib=$r.monomerLibWrapper;const r=this.lib.getCodeToSymbolMap(n);this.parser=new yn(t,r)}convert(){const t=this.parser.parseSequence(),e=[];t.forEach(((t,n)=>{const r=this.getMonomerMolfile(t,n);e.push(r)}));let n=this.getPolymerMolfile(e);return this.invert&&(n=this.reflect(n),n=this.invertBondConfiguration(n)),n}invertBondConfiguration(t){const e=t.indexOf("M V30 BEGIN BOND"),n=t.indexOf("M V30 END BOND");let r=t.substring(e,n);return r=r.replace(/(CFG=)([13])/g,((t,e,n)=>"1"===n?`${e}3`:"3"===n?`${e}1`:t)),t.substring(0,e)+r+t.substring(n)}getMonomerMolfile(t,e){const n=this.lib.getMolfileBySymbol(t);return this.lib.isModification(t)?0===e?this.reflect(n):n:this.rotateNucleotidesV3000(n)}getPolymerMolfile(t){return this.linkV3000(t)}reflect(t){const e=this.extractAtomDataV3000(t),n=e.atomIndex.length,r=e.atomIndex.indexOf(1),i=e.atomIndex.indexOf(n),o=(e.x[i]+e.x[r])/2,s=(e.y[i]+e.y[r])/2;for(let t=0;t<n;t++)e.x[t]-=o,e.y[t]-=s;for(let t=0;t<n;t++)e.x[t]=-e.x[t];const a=e.x[r];for(let t=0;t<n;t++)e.x[t]-=a;let u=t.indexOf("M V30 BEGIN ATOM");u=t.indexOf("\n",u);let l=u;for(let r=0;r<n;r++)u=t.indexOf("V30",u)+4,u=t.indexOf(" ",u)+1,u=t.indexOf(" ",u)+1,l=t.indexOf(" ",u)+1,l=t.indexOf(" ",l),u=(t=t.slice(0,u)+e.x[r]+" "+e.y[r]+t.slice(l)).indexOf("\n",u)+1;return t}extractAtomDataV3000(t){const e=this.extractAtomsBondsNumbersV3000(t);let n=t.indexOf("M V30 BEGIN ATOM");n=t.indexOf("\n",n);let r=n;const i=Array(e.natom),o=Array(e.natom),s=Array(e.natom),a=Array(e.natom);for(let u=0;u<e.natom;u++)n=t.indexOf("V30",n)+4,r=t.indexOf(" ",n),i[u]=parseInt(t.substring(n,r)),n=r+1,r=t.indexOf(" ",n),o[u]=t.substring(n,r),n=r+1,r=t.indexOf(" ",n),s[u]=parseFloat(t.substring(n,r)),n=r+1,r=t.indexOf(" ",n),a[u]=parseFloat(t.substring(n,r)),n=t.indexOf("\n",n)+1;return{atomIndex:i,atomType:o,x:s,y:a}}extractAtomsBondsNumbersV3000(t){let e=(t=t.replaceAll("\r","")).indexOf("COUNTS")+7,n=t.indexOf(" ",e);const r=parseInt(t.substring(e,n));return e=n+1,n=t.indexOf(" ",e),{natom:r,nbond:parseInt(t.substring(e,n))}}rotateNucleotidesV3000(t){const e=this.extractAtomDataV3000(t),n=e.atomIndex.length,r=e.atomIndex.indexOf(1),i=e.atomIndex.indexOf(n);n>8&&this.fix5Prime(e,r,i);const o=(e.x[i]+e.x[r])/2,s=(e.y[i]+e.y[r])/2;for(let t=0;t<n;t++)e.x[t]-=o,e.y[t]-=s;let a=0;if(0===e.x[r])a=e.y[r]>e.y[i]?Math.PI/2:3*Math.PI/2;else if(0===e.y[r])a=e.x[r]>e.x[i]?Math.PI:0;else{const t=e.y[r]/e.x[r];a=t>0?e.x[r]>0?Math.PI-Math.atan(t):2*Math.PI-Math.atan(t):e.x[r]>0?-Math.PI-Math.atan(t):Math.atan(t)}const u=Math.cos(a),l=Math.sin(a);for(let t=0;t<n;t++){const n=e.x[t];e.x[t]=n*u-e.y[t]*l,e.y[t]=n*l+e.y[t]*u}const c=e.x[r];for(let t=0;t<n;t++)e.x[t]-=c;let h=t.indexOf("M V30 BEGIN ATOM");h=t.indexOf("\n",h);let f=h;for(let r=0;r<n;r++)h=t.indexOf("V30",h)+4,h=t.indexOf(" ",h)+1,h=t.indexOf(" ",h)+1,f=t.indexOf(" ",h)+1,f=t.indexOf(" ",f),h=(t=t.slice(0,h)+e.x[r]+" "+e.y[r]+t.slice(f)).indexOf("\n",h)+1;return t}linkV3000(t,e=!0){let n="\n Datagrok macromolecule handler\n\n";n+=" 0 0 0 0 0 0 999 V3000\n",n+="M V30 BEGIN CTAB\n";let r="",i="",o="";const s=[];let a=0,u=0,l=0;for(let e=0;e<t.length;e++){const n=t[e].includes("MODIFICATION")&&0===e;let o=0;n&&(o=this.extractAtomDataV3000(t[e]).atomIndex.length),t[e]=t[e].replaceAll("(-\nM V30 ","(").replaceAll("-\nM V30 ","").replaceAll(" )",")");const c=this.extractAtomsBondsNumbersV3000(t[e]),h=this.extractAtomDataV3000(t[e]);let f=t[e].indexOf("M V30 BEGIN ATOM");f=t[e].indexOf("\n",f);let d=f,p=f;for(let r=0;r<c.natom;r++)if(1!==h.atomIndex[r]||0===e){d=t[e].indexOf("V30",d)+4,p=t[e].indexOf(" ",d);let r=0;n?(r=parseInt(t[e].substring(d,p)),1===r?r=o:r===o&&(r=1),r+=a):r=parseInt(t[e].substring(d,p))+a,t[e]=t[e].slice(0,d)+r+t[e].slice(p),d=t[e].indexOf(" ",d)+1,d=t[e].indexOf(" ",d)+1,p=t[e].indexOf(" ",d);const i=l-h.x[0];let s=Math.round(1e4*(parseFloat(t[e].substring(d,p))+i))/1e4;t[e]=t[e].slice(0,d)+s+t[e].slice(p),d=t[e].indexOf(" ",d)+1,p=t[e].indexOf(" ",d),s=Math.round(1e4*parseFloat(t[e].substring(d,p)))/1e4,t[e]=t[e].slice(0,d)+s+t[e].slice(p),d=t[e].indexOf("\n",d)+1}else d=t[e].indexOf("M V30",d)-1,p=t[e].indexOf("\n",d+1),t[e]=t[e].slice(0,d)+t[e].slice(p);const g=t[e].indexOf("M V30 END ATOM");r+=t[e].substring(f+1,g);let m=t[e].indexOf("M V30 BEGIN BOND");m=t[e].indexOf("\n",m),d=m,p=m;for(let r=0;r<c.nbond;r++){d=t[e].indexOf("V30",d)+4,p=t[e].indexOf(" ",d);const r=parseInt(t[e].substring(d,p))+u;t[e]=t[e].slice(0,d)+r+t[e].slice(p),d=t[e].indexOf(" ",d)+1,d=t[e].indexOf(" ",d)+1,p=t[e].indexOf(" ",d);let i=0;n?(i=parseInt(t[e].substring(d,p)),1===i?i=o:i===o&&(i=1),i+=a):i=parseInt(t[e].substring(d,p))+a,t[e]=t[e].slice(0,d)+i+t[e].slice(p),d=t[e].indexOf(" ",d)+1,p=Math.min(t[e].indexOf("\n",d),t[e].indexOf(" ",d)),i=0,n?(i=parseInt(t[e].substring(d,p)),1===i?i=o:i===o&&(i=1),i+=a):i=parseInt(t[e].substring(d,p))+a,t[e]=t[e].slice(0,d)+i+t[e].slice(p),d=t[e].indexOf("\n",d)+1}const y=t[e].indexOf("M V30 END BOND");i+=t[e].substring(m+1,y);let v=t[e].indexOf("M V30 MDLV30/STEABS ATOMS=(");for(;-1!==v;){v+=28;const n=t[e].indexOf(")",v);t[e].substring(v,n).split(" ").slice(1).forEach((t=>{s.push(parseInt(t)+a)})),v=n,v=t[e].indexOf("M V30 MDLV30/STEABS ATOMS=(",v)}a+=c.natom-1,u+=c.nbond,l+=n?Math.max(...h.x):h.x[c.natom-1]-h.x[0]}const c=Math.ceil(s.length/4);o+="M V30 MDLV30/STEABS ATOMS=("+s.length+" -\n";for(let t=0;t<c;t++){o+="M V30 ";const e=t+1===c?s.length-4*(c-1):4;for(let n=0;n<e;n++)o+=n+1===e?t===c-1?s[4*t+n]+")\n":s[4*t+n]+" -\n":s[4*t+n]+" "}return a++,n+="M V30 COUNTS "+a+" "+u+" 0 0 0\n",n+="M V30 BEGIN ATOM\n",n+=r,n+="M V30 END ATOM\n",n+="M V30 BEGIN BOND\n",n+=i,n+="M V30 END BOND\n",e&&s.length>0?(n+="M V30 BEGIN COLLECTION\n",n+=o,n+="M V30 END COLLECTION\n"):n=n.replace(/ CFG=\d/g," "),n+="M V30 END CTAB\n",n+="M END",n}fix5Prime(t,e,n){const r=e+1,i=t.x[r],o=t.y[r],s=t.x[n]-i,a=t.y[n]-o,u=t.x[e]-i,l=t.y[e]-o,c=u*Math.cos(2*Math.PI/3)-l*Math.sin(2*Math.PI/3),h=u*Math.sin(2*Math.PI/3)+l*Math.cos(2*Math.PI/3),f=u-s,d=l-a,p=c-s,g=h-a;Math.sqrt(g*g+p*p)>=Math.sqrt(d*d+f*f)&&(t.x[e]=c+i,t.y[e]=h+o)}}function wn(t,e=!0){let n="\n Datagrok macromolecule handler\n\n";n+=" 0 0 0 0 0 0 999 V3000\n",n+="M V30 BEGIN CTAB\n";let r="",i="",o="";const s=[];let a=0,u=0,l=0;if(t.antiStrands.length>0)for(let e=0;e<t.antiStrands.length;e++)t.antiStrands[e]=Cn(t.antiStrands[e]);let c=!1;const h=t.senseStrands.concat(t.antiStrands);let f=0;for(let e=0;e<h.length;e++){h[e]=h[e].replaceAll("(-\nM V30 ","(").replaceAll("-\nM V30 ","").replaceAll(" )",")");const n=An(h[e]),o=xn(h[e]);if(e>=t.senseStrands.length?!1===c&&(c=!0,l=0):f=Math.min(f,Math.min(...o.y.filter((t=>t<0)))),c){const t=Math.min(...o.x)-l,e=Math.max(...o.y)+5;for(let e=0;e<o.x.length;e++)o.x[e]-=t;for(let t=0;t<o.y.length;t++)o.y[t]-=e-f}let d=h[e].indexOf("M V30 BEGIN ATOM");d=h[e].indexOf("\n",d);let p=d,g=d;for(let t=0;t<n.natom;t++){p=h[e].indexOf("V30",p)+4,g=h[e].indexOf(" ",p);const n=parseInt(h[e].substring(p,g))+a;h[e]=h[e].slice(0,p)+n+h[e].slice(g),p=h[e].indexOf(" ",p)+1,p=h[e].indexOf(" ",p)+1,g=h[e].indexOf(" ",p);let r=Math.round(1e4*o.x[t])/1e4;h[e]=h[e].slice(0,p)+r+h[e].slice(g),p=h[e].indexOf(" ",p)+1,g=h[e].indexOf(" ",p),r=Math.round(1e4*o.y[t])/1e4,h[e]=h[e].slice(0,p)+r+h[e].slice(g),p=h[e].indexOf("\n",p)+1}const m=h[e].indexOf("M V30 END ATOM");r+=h[e].substring(d+1,m);let y=h[e].indexOf("M V30 BEGIN BOND");y=h[e].indexOf("\n",y),p=y,g=y;for(let t=0;t<n.nbond;t++){p=h[e].indexOf("V30",p)+4,g=h[e].indexOf(" ",p);const t=parseInt(h[e].substring(p,g))+u;h[e]=h[e].slice(0,p)+t+h[e].slice(g),p=h[e].indexOf(" ",p)+1,p=h[e].indexOf(" ",p)+1,g=h[e].indexOf(" ",p);let n=parseInt(h[e].substring(p,g))+a;h[e]=h[e].slice(0,p)+n+h[e].slice(g),p=h[e].indexOf(" ",p)+1,g=Math.min(h[e].indexOf("\n",p),h[e].indexOf(" ",p)),n=parseInt(h[e].substring(p,g))+a,h[e]=h[e].slice(0,p)+n+h[e].slice(g),p=h[e].indexOf("\n",p)+1}const v=h[e].indexOf("M V30 END BOND");i+=h[e].substring(y+1,v);let b=h[e].indexOf("M V30 MDLV30/STEABS ATOMS=(");for(;-1!==b;){b+=28;const t=h[e].indexOf(")",b);h[e].substring(b,t).split(" ").slice(1).forEach((t=>{s.push(parseInt(t)+a)})),b=t,b=h[e].indexOf("M V30 MDLV30/STEABS ATOMS=(",b)}a+=n.natom,u+=n.nbond,l+=Math.max(...o.x)+5}const d=Math.ceil(s.length/4);o+="M V30 MDLV30/STEABS ATOMS=("+s.length+" -\n";for(let t=0;t<d;t++){o+="M V30 ";const e=t+1===d?s.length-4*(d-1):4;for(let n=0;n<e;n++)o+=n+1===e?t===d-1?s[4*t+n]+")\n":s[4*t+n]+" -\n":s[4*t+n]+" "}return n+="M V30 COUNTS "+a+" "+u+" 0 0 0\n",n+="M V30 BEGIN ATOM\n",n+=r,n+="M V30 END ATOM\n",n+="M V30 BEGIN BOND\n",n+=i,n+="M V30 END BOND\n",e&&s.length>0?(n+="M V30 BEGIN COLLECTION\n",n+=o,n+="M V30 END COLLECTION\n"):n=n.replace(/ CFG=\d/g," "),n+="M V30 END CTAB\n",n+="M END",n}function Cn(t){const e=xn(t),n=e.atomIndex.length,r=(Math.max(...e.x)+Math.min(...e.x))/2,i=(Math.max(...e.y)+Math.min(...e.y))/2;for(let t=0;t<n;t++)e.x[t]-=r,e.y[t]-=i;const o=Math.PI,s=Math.cos(o),a=Math.sin(o);for(let t=0;t<n;t++){const n=e.x[t];e.x[t]=n*s-e.y[t]*a,e.y[t]=n*a+e.y[t]*s}const u=Math.max(...e.y);for(let t=0;t<n;t++)e.x[t]+=r,e.y[t]-=u;let l=t.indexOf("M V30 BEGIN ATOM");l=t.indexOf("\n",l);let c=l;for(let r=0;r<n;r++)l=t.indexOf("V30",l)+4,l=t.indexOf(" ",l)+1,l=t.indexOf(" ",l)+1,c=t.indexOf(" ",l)+1,c=t.indexOf(" ",c),l=(t=t.slice(0,l)+e.x[r]+" "+e.y[r]+t.slice(c)).indexOf("\n",l)+1;return t}function An(t){let e=(t=t.replaceAll("\r","")).indexOf("COUNTS")+7,n=t.indexOf(" ",e);const r=parseInt(t.substring(e,n));return e=n+1,n=t.indexOf(" ",e),{natom:r,nbond:parseInt(t.substring(e,n))}}function xn(t){const e=An(t);let n=t.indexOf("M V30 BEGIN ATOM");n=t.indexOf("\n",n);let r=n;const i=Array(e.natom),o=Array(e.natom),s=Array(e.natom),a=Array(e.natom);for(let u=0;u<e.natom;u++)n=t.indexOf("V30",n)+4,r=t.indexOf(" ",n),i[u]=parseInt(t.substring(n,r)),n=r+1,r=t.indexOf(" ",n),o[u]=t.substring(n,r),n=r+1,r=t.indexOf(" ",n),s[u]=parseFloat(t.substring(n,r)),n=r+1,r=t.indexOf(" ",n),a[u]=parseFloat(t.substring(n,r)),n=t.indexOf("\n",n)+1;return{atomIndex:i,atomType:o,x:s,y:a}}function _n(t,e,n){if(""===t)return"";const r=n.createFormatDetector(t).getFormat();if(!r)return"";let i="";try{i=new bn(t,e,r).convert()}catch(t){const e=rn(t);console.error(e)}return i}function En(t,e,n,r,i){const o=[t,e,n].filter((t=>""!==t.strand));return 1===o.length?_n(o[0].strand,o[0].invert,i):wn({senseStrands:[_n(t.strand,t.invert,i)],antiStrands:[_n(e.strand,e.invert,i),_n(n.strand,n.invert,i)].filter((t=>""!==t))},r)}const Tn=["ss","as","as2"];class Sn{constructor(){this.th=$r,this.onInput=new Jt.Subject,this.onInvalidInput=new Jt.Subject,this.inputBase=Object.fromEntries(Tn.map((t=>{const e=Tt.input.textArea(t.toUpperCase(),{value:"",onValueChanged:()=>{this.onInput.next(),It()(e.root.getElementsByTagName("div")).css("padding-left","38px")}});return[t,e]}))),this.useChiralInput=Tt.input.bool("Use chiral",{value:!0}),this.saveAllStrandsInput=Tt.input.bool("Save as one entity",{value:!0}),Tt.tooltip.bind(this.saveAllStrandsInput.root,"Save SDF with all strands in one molfile"),this.directionInversion=Object.fromEntries(Tn.map((t=>[t,!1]))),this.moleculeImgDiv=Tt.block([]),It()(this.moleculeImgDiv).addClass("st-structure-mol-img"),e.debounce(this.onInput,300).subscribe((async()=>{await this.updateMoleculeImg()})),e.debounce(this.onInvalidInput,1e3).subscribe((async()=>{t.shell.warning("Insert Sense strand")}))}async getHtmlDivElement(t){const e=this.getTableInput(t),n=this.getBoolInputsAndButton();await this.updateMoleculeImg();const r=Tt.divH([n,this.moleculeImgDiv]);It()(r).addClass("st-structure-bottom");const i=Tt.divV([e,r]);return It()(i).addClass("st-structure-body"),i}getBoolInputsAndButton(){const e=Tt.buttonsInput([Tt.bigButton("Save SDF",(()=>{const e=this.getStrandData();!function(e,n,r,i,o,s){const a=[e.strand,n.strand,r.strand].filter((t=>""!==t));if(0===a.length||1===a.length&&""===e.strand)t.shell.warning("Enter SENSE_STRAND and optionally ANTISENSE_STRAND/AS2 to save SDF");else{let u;if(o)u=En(e,n,r,i,s)+"\n$$$$\n";else{const h=_n(e.strand,e.invert,s),f=_n(n.strand,n.invert,s),d=_n(r.strand,r.invert,s);u=h+"\n> <Sequence>\nSense Strand\n$$$$\n",f&&(u+=f+"\n> <Sequence>\nAnti Sense\n$$$$\n"),d&&(u+=d+"\n> <Sequence>\nAnti Sense 2\n$$$$\n")}const l=new Date;function c(t){return t>=10?t.toString():"0"+t.toString()}dt(`SequenceTranslator-${l.getFullYear()+"-"+c(l.getMonth()+1)+"-"+c(l.getDate())+"_"+c(l.getHours())+"-"+c(l.getMinutes())+"-"+c(l.getSeconds())}.sdf`,encodeURIComponent(u))}}(e.ss,e.as,e.as2,this.useChiralInput.value,this.saveAllStrandsInput.value,this.th)}))]),n=[this.saveAllStrandsInput.root,this.useChiralInput.root,e],r=Tt.divV(n);for(const t of n)It()(t).addClass("st-structure-bool-button-block");return r}getTableInput(t){const e=Object.fromEntries(Tn.map((e=>[e,new un(this.inputBase[e],t.highlightInvalidSubsequence)]))),n=Object.fromEntries(Tn.map(((t,e)=>{const n=0===e?"5′ → 3′":"3′ → 5′";return[t,Tt.input.choice(`${t.toUpperCase()} direction`,{value:n,items:["5′ → 3′","3′ → 5′"]})]})));Tn.forEach(((t,e)=>{n[t].onChanged.subscribe((n=>{let r="3′ → 5′"===n;e>0&&(r=!r),this.directionInversion[t]=r,this.onInput.next()}))}));const r=["Sense Strand","Anti Sense","Anti Sense 2"],i=new Map(Tn.map(((t,e)=>[t,r[e]]))),o=(Object.fromEntries(Tn.map((t=>[t,Tt.label(i.get(t))]))),Object.fromEntries(Tn.map((t=>{const n=Tt.icons.delete((()=>{e[t].inputBase.value=""})),r=Tt.button(n,(()=>{}));return Tt.tooltip.bind(r,`Clear ${t.toUpperCase()}`),[t,n]})))),s=Tt.form([],"st-structure-inputs"),a=Tt.divV([],"st-structure-clear-buttons"),u=Tt.form([],"st-direction-inputs");for(const t of Tn)s.append(this.inputBase[t].root),a.append(o[t]),u.append(n[t].root);return Tt.divH([s,a,u])}getStrandData(){return Object.fromEntries(Tn.map((t=>{const e=this.directionInversion[t];return[t,{strand:this.inputBase[t].value.replace(/\s*/g,""),invert:e}]})))}getMolfile(t,e,n){return En(t,e,n,this.useChiralInput.value,this.th)}async updateMoleculeImg(){let t="";try{const e=this.getStrandData();Object.values(e).some((t=>""!==t.strand))&&(t=this.getMolfile(e.ss,e.as,e.as2))}catch(t){const e=rn(t);console.error(e)}const e=new gn(t);await e.drawMolecule(this.moleculeImgDiv,650,150),It()(this.moleculeImgDiv).find("canvas").css("float","inherit")}}class In extends Bt{constructor(t){super("Oligo Structure"),this.th=t,this.layout=new Sn}getContent(){return this.layout.getHtmlDivElement(this.th)}}async function Nn(e){try{const n={overflowX:"scroll"},r=Tt.div([],{style:n}),i=xn(e),o=.7*It()(window).height(),s=Math.max(...i.x)-Math.min(...i.x),a=Math.max(...i.y)-Math.min(...i.y),u=o/a,l=u*s,c=u*a,h=Tt.canvas(l*window.devicePixelRatio,c*window.devicePixelRatio);h.style.width=`${l}px`,h.style.height=`${c}px`,await async function(e,n){await t.functions.call("Chem:canvasMol",{x:0,y:0,w:e.width,h:e.height,canvas:e,molString:n,scaffoldMolString:"",options:{normalizeDepiction:!1,straightenDepiction:!1}})}(h,e),r.appendChild(h),Tt.dialog("Molecule").add(r).showModal(!0)}catch(t){const e=rn(t);console.error(e)}}class Mn{static async view(){const e=$r.monomerLibWrapper.getTableForViewer();e.name="Monomer Library";const n=t.shell.addTableView(e);n.grid.props.allowEdit=!1,n.grid.onCellDoubleClick.subscribe((async t=>{const e=t.cell.value;"Molecule"===t.tableColumn?.semType&&await Nn(e)}))}}const On="Copied",Ln="Nucleotides";function Bn(t,e){const n=new RegExp("\\([^()]*\\)","g"),r=t.match(n);return r?r.map((t=>{const n=t.replace(/[\[\]()]/g,"");return ct.includes(n)?n:e.getNaturalAnalogBySymbol(n)})).map((t=>t||bt)).join(""):null}var Pn=n(254),Rn={};Rn.styleTagTransform=ve(),Rn.setAttributes=pe(),Rn.insert=fe().bind(null,"head"),Rn.domAPI=ce(),Rn.insertStyleElement=me(),ue()(Pn.A,Rn),Pn.A&&Pn.A.locals&&Pn.A.locals;const Dn=["Sequence"];class Fn{constructor(t){this.th=t,this.inputFormats=Object.keys($r.jsonData.codesToHelmDict).concat(ht.HELM),this.onInput=new Jt.Subject,this.moleculeImgDiv=Tt.div([]),this.moleculeImgDiv.className="mol-host",this.moleculeImgDiv.style.border="1px solid var(--grey-2)",this.moleculeImgDiv.style.borderRadius="1px",this.moleculeImgDiv.style.marginTop="12px",this.outputTableDiv=Tt.div([]),this.formatChoiceInput=Tt.input.choice("",{value:ht.HELM,items:this.inputFormats,onValueChanged:async(t,e)=>{this.format=t,this.updateTable(),await this.updateMolImg()}}),It()(this.formatChoiceInput.root.getElementsByTagName("select")[0]).css("width","20%"),this.sequenceInputBase=Tt.input.textArea("",{value:"Afcgacsu",onValueChanged:()=>{this.onInput.next()}}),this.init(),e.debounce(this.onInput,300).subscribe((async()=>{this.init(),this.formatChoiceInput.value=this.format,this.updateTable(),await this.updateMolImg()})),this.eventBus=$n.getInstance()}async getHtmlElement(){const t=this.constructSingleSequenceControls(),e=this.constructBulkTranslationControls(),n=Tt.box(Tt.panel([t,e,Tt.block([Tt.box(this.moleculeImgDiv)])]));return this.formatChoiceInput.value=this.format,this.updateTable(),await this.updateMolImg(),n}constructBulkTranslationControls(){const t=Tt.h1("Bulk");Tt.tooltip.bind(t,"Bulk translation from table input");const e=new Hn(this.eventBus).createUIComponents(),n=Tt.input.choice("Input format",{value:ht.AXOLABS,items:this.inputFormats,onValueChanged:t=>this.eventBus.selectInputFormat(t)}),r=Tt.input.choice("Output format",{value:Ln,items:(i=this.th,Object.keys(i.jsonData.codesToHelmDict).concat([ht.HELM,Ln]).sort()),onValueChanged:t=>this.eventBus.selectOutputFormat(t)});var i;const o=this.createConvertBulkButton(),s=Tt.div([...e,n,r,o],"ui-form");return Tt.block25([t,s])}createConvertBulkButton(){const t=Tt.bigButton("Convert",(()=>this.processConvertBulkButtonClick()));return Tt.tooltip.bind(t,"Convert sequences from table input"),It()(t).css({float:"right","margin-top":"20px"}),t}processConvertBulkButtonClick(){const n=this.eventBus.getSelectedTable();if(!n)return void t.shell.warning("No table selected");const r=this.eventBus.getSelectedInputFormat(),i=this.eventBus.getSelectedOutputFormat(),o=this.eventBus.getSelectedColumn("Sequence");if(!o)return void t.shell.warning("No sequence column selected");const s=`${o.name} (${i})`,a=e.Column.fromList(e.TYPE.STRING,s,o.toList().map((t=>{const e=function(t,e,n,r){const i=r.createFormatConverter(t,e);return n===Ln?Bn(i.convertTo(ht.HELM),r.monomerLibWrapper):i.convertTo(n)}(t,r,i,this.th);return e})));if(i===Ln||i===ht.HELM){a.semType=e.SEMTYPE.MACROMOLECULE;const t=i==Ln?C.FASTA:C.HELM;a.meta.units=t;const n=tt.forColumn(a);(i==Ln?tt.setUnitsToFastaColumn:tt.setUnitsToHelmColumn)(n)}n.columns.add(a),t.data.detectSemanticTypes(n),t.shell.v=t.shell.getTableView(n.name)}constructSingleSequenceControls(){const t=new un(this.sequenceInputBase,(t=>Nt(t,this.th))),e=Tt.button("Get SDF",(()=>{this.saveMolfile()}),"Save structure as SDF"),n=Tt.button("Copy SMILES",(()=>{this.copySmiles()}),"Copy SMILES for the sequence"),r=Tt.div([this.formatChoiceInput]),i=Tt.button(Tt.icons.delete((()=>{t.inputBase.value=""})),(()=>{}));Tt.tooltip.bind(i,"Clear input");const o={format:r,textInput:t.root,clearBtn:i},s=Tt.table([o],(t=>[t.format,t.textInput,t.clearBtn]));s.classList.add("st-translator-input-table");const a=Tt.block([this.outputTableDiv,e,n]);return Tt.block75([Tt.h1("Single sequence"),s,a])}saveMolfile(){const t=new bn(this.sequence,!1,this.formatChoiceInput.value).convert()+"\n$$$$";dt(this.sequence+".sdf",encodeURIComponent(t))}copySmiles(){const n=e.chem.convert(this.molfile,e.chem.Notation.MolBlock,e.chem.Notation.Smiles);navigator.clipboard.writeText(n).then((()=>t.shell.info(On)))}updateTable(){this.outputTableDiv.innerHTML="";const e=this.format?this.th.createSequenceValidator(this.sequence).getInvalidCodeIndex(this.format):0,n=function(t,e,n,r){const i=Object.keys(r.jsonData.codesToHelmDict).concat([ht.HELM]);if(!t||-1!==e&&n!==ht.HELM)return{};if(!i.includes(n))throw new Error(`${n} format is not supported by SequenceTranslator`);const o=i.filter((t=>t!=n)).sort(((t,e)=>t.localeCompare(e))),s=r.createFormatConverter(t,n),a=Object.fromEntries(o.map((t=>{let e;try{e=s.convertTo(t)}catch{e=null}return[t,e]})).filter((([t,e])=>e))),u=Bn(n===ht.HELM?t:a[ht.HELM],r.monomerLibWrapper);return u&&(a.Nucleotides=u),a}(this.sequence,e,this.format,this.th),r=[];for(const e of Object.keys(n)){const i="indexOfFirstInvalidChar"in n?Tt.divH([]):Tt.link(n[e],(()=>navigator.clipboard.writeText(n[e]).then((()=>t.shell.info(On)))),"Copy sequence","");r.push({format:e,sequence:i})}const i=Tt.table(r,(t=>[t.format,t.sequence]),["FORMAT","SEQUENCE"]);this.outputTableDiv.append(i),this.outputTableDiv.classList.add("st-translator-output-table")}async updateMolImg(){const t=new gn(this.molfile);await t.drawMolecule(this.moleculeImgDiv,500,170)}init(){this.sequence=this.getFormattedSequence(),this.format=this.th.createFormatDetector(this.sequence).getFormat(),this.molfile=this.getMolfile()}getFormattedSequence(){return this.sequenceInputBase.value.replace(/\s/g,"")}getMolfile(){if(!this.format)return"";if(this.format===ht.HELM){const t=this.th.createFormatConverter(this.sequence,this.format).convertTo(ht.AXOLABS);return new bn(t,!1,ht.AXOLABS).convert()}return new bn(this.sequence,!1,this.format).convert()}}class Hn{constructor(t){this.tableInputManager=new Un(t),this.columnInputManager=new kn(t)}createUIComponents(){return[this.tableInputManager.getTableInputContainer(),this.columnInputManager.getColumnControlsContainer()]}}class Un{constructor(t){this.eventBus=t,this.availableTables=[],this.tableInputContainer=Tt.div([]),this.subscribeToTableEvents(),this.refreshTableInput()}getTableInputContainer(){return this.tableInputContainer}subscribeToTableEvents(){t.events.onTableAdded.subscribe((t=>this.handleTableAdded(t))),t.events.onTableRemoved.subscribe((t=>this.handleTableRemoved(t))),this.eventBus.tableSelected$.subscribe((()=>this.handleTableChoice()))}getTableFromEventData(t){return t.args.dataFrame}handleTableAdded(t){const e=this.getTableFromEventData(t);this.availableTables.some((t=>t.name===e.name))||(this.availableTables.push(e),this.eventBus.selectTable(e),this.refreshTableInput())}handleTableRemoved(t){const e=this.getTableFromEventData(t);this.availableTables=this.availableTables.filter((t=>t.name!==e.name));const n=this.availableTables[0];this.eventBus.selectTable(n||null),this.refreshTableInput()}refreshTableInput(){const t=this.createTableInput();It()(this.tableInputContainer).empty(),this.tableInputContainer.append(t.root)}createTableInput(){const t=this.eventBus.getSelectedTable();return Tt.input.table("Table",{value:t,items:this.availableTables,onValueChanged:t=>{null!==t&&this.eventBus.selectTable(t)}})}handleTableChoice(){const t=this.eventBus.getSelectedTable();t&&(this.isTableDisplayed(t)||this.displayTable(t))}isTableDisplayed(e){return t.shell.tableNames.includes(e.name)}displayTable(e){const n=t.shell.v;t.shell.addTableView(e),t.shell.v=n}}class kn{constructor(t){this.eventBus=t,this.columnControlsContainer=Tt.div([]),this.eventBus.tableSelected$.subscribe((()=>this.handleTableChoice())),this.refreshColumnControls()}getColumnControlsContainer(){return this.columnControlsContainer}handleTableChoice(){this.refreshColumnControls()}refreshColumnControls(){const t=this.createColumnInputs();It()(this.columnControlsContainer).empty();const e=t.map((t=>t.root));this.columnControlsContainer.append(...e)}createColumnInputs(){const t=this.eventBus.getSelectedTable(),e=null!==t?t.columns.names().sort(((t,e)=>t.localeCompare(e))):[];return Dn.map((n=>this.createColumnInput(n,e,t)))}createColumnInput(t,e,n){const r=t.toLowerCase(),i=e.find((t=>t.toLowerCase().includes(r)))||e[0];return this.selectColumnIfTableNotNull(n,i,t),Tt.input.choice(`${t}`,{value:i,items:e,onValueChanged:e=>this.selectColumnIfTableNotNull(n,e,t)})}selectColumnIfTableNotNull(t,e,n){if(null!==t){const r=t.getCol(e);this.eventBus.selectColumn(n,r)}}}class $n{constructor(){this._tableSelection$=new Jt.BehaviorSubject(null),this._columnSelection=Object.fromEntries(Dn.map((t=>[t,new Jt.BehaviorSubject(null)]))),this._inputFormatSelection$=new Jt.BehaviorSubject(ht.AXOLABS),this._outputFormatSelection$=new Jt.BehaviorSubject(Ln)}static getInstance(){return void 0===$n._instance&&($n._instance=new $n),$n._instance}get tableSelected$(){return this._tableSelection$.asObservable()}getSelectedTable(){return this._tableSelection$.getValue()}selectTable(t){this._tableSelection$.next(t)}selectColumn(t,e){this._columnSelection[t].next(e)}getSelectedColumn(t){return this._columnSelection[t].getValue()}getSelectedInputFormat(){return this._inputFormatSelection$.getValue()}selectInputFormat(t){this._inputFormatSelection$.next(t)}selectOutputFormat(t){this._outputFormatSelection$.next(t)}getSelectedOutputFormat(){return this._outputFormatSelection$.getValue()}}class Vn extends Bt{constructor(t){super("Oligo Translator"),this.th=t,this.th=$r,this.layout=new Fn(this.th);const e=Tt.iconFA("book",Mn.view,"View monomer library");this.topPanel=[e],this.view.setRibbonPanels([this.topPanel])}getContent(){return this.layout.getHtmlElement()}}class jn extends Bt{constructor(t,e){super(t),this.content=e}getContent(){return Promise.resolve(this.content)}}class qn extends Lt{constructor(t,n){super("Oligo Toolkit"),this.externalViewFactories=t,this.th=n;const r=this.getViewFactories(this.th);this.multiView=new e.MultiView({viewFactories:r})}getViewFactories(t){function n(n){e.View.create();const r=new n(t);return r.initView().catch((t=>console.error(`Failed to initialize ${n.name}: ${t}`))),()=>r.getView()}let r={TRANSLATOR:n(Vn),PATTERN:n(tn),STRUCTURE:n(In)};return this.externalViewFactories&&(r=Object.assign({},r,this.externalViewFactories)),r}getCurrentPanePath(){let t=this.multiView.tabs.currentPane.name;return t=t.charAt(0).toUpperCase()+t.substring(1).toLowerCase(),`/apps/${$r.name}/OligoToolkit/${t}`}setUrl(){this.multiView.path=this.getCurrentPanePath()}async constructView(){return this.multiView.tabs.onTabChanged.subscribe((()=>this.setUrl())),this.setUrl(),this.multiView}}n(982),e.DataFrame.fromCsv('countries,fasta,smiles,molregno,LON,Zip Code,Street Address Line 1,ImageUrl,user_id,error_message,xray,flag,magnitude,CS-id,pdb_id,accel_a,time_offset,chart,fit,Questions,empty_number,empty_string\nBelgium,MSNFHNEHVMQFYRNNLKTKGVFGRQ,CC(C(=O)OCCCc1cccnc1)c2cccc(c2)C(=O)c3ccccc3,1480014,36.276729583740234,995042300,14016 ROUTE 31W,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,1,1,1QBS,1,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[2.497360340644872, 1.7058694986686864, 5.278052678195135, 0.16000320889028383],""points"":[{""x"":0.10000000149011612,""y"":2.374499797821045},{""x"":0.6000000238418579,""y"":2.6242473125457764},{""x"":1.100000023841858,""y"":2.367267608642578},{""x"":1.600000023841858,""y"":2.6723148822784424},{""x"":2.0999999046325684,""y"":2.6537344455718994},{""x"":2.5999999046325684,""y"":2.3651671409606934},{""x"":3.0999999046325684,""y"":2.5654284954071045},{""x"":3.5999999046325684,""y"":2.4160959720611572},{""x"":4.099999904632568,""y"":2.286726713180542},{""x"":4.599999904632568,""y"":2.5100042819976807},{""x"":5.099999904632568,""y"":1.6676985025405884},{""x"":5.599999904632568,""y"":0.680136501789093},{""x"":6.099999904632568,""y"":0.3391543924808502},{""x"":6.599999904632568,""y"":0.09038983285427094},{""x"":7.099999904632568,""y"":0.19802775979042053}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[7.525235855508179, 1.3186911876809984, 5.335672608564294, 0.7860743343958098],""points"":[{""x"":0.10000000149011612,""y"":7.988070487976074},{""x"":0.6000000238418579,""y"":7.018453121185303},{""x"":1.100000023841858,""y"":8.115279197692871},{""x"":1.600000023841858,""y"":7.486658096313477},{""x"":2.0999999046325684,""y"":7.396438121795654},{""x"":2.5999999046325684,""y"":7.477052211761475},{""x"":3.0999999046325684,""y"":6.913095474243164},{""x"":3.5999999046325684,""y"":8.01385498046875},{""x"":4.099999904632568,""y"":6.985900402069092},{""x"":4.599999904632568,""y"":6.970335960388184},{""x"":5.099999904632568,""y"":5.448817253112793},{""x"":5.599999904632568,""y"":2.5534818172454834},{""x"":6.099999904632568,""y"":1.893947958946228},{""x"":6.599999904632568,""y"":0.6340042352676392},{""x"":7.099999904632568,""y"":0.8403874039649963}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,100,abc\nBurundi,MDYKETLLMPKTDFPMRGGLPNKEPQIQEKW,COc1ccc2cc(ccc2c1)C(C)C(=O)Oc3ccc(C)cc3OC,1480015,36.276729583740234,995073444,80 STATE HIGHWAY 310,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,2,2,1ZP8,2,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[4.431460753103398, 2.1691498799246745, 5.266445597102774, 0.7825762827017926],""points"":[{""x"":0.10000000149011612,""y"":4.751083850860596},{""x"":0.6000000238418579,""y"":4.203000068664551},{""x"":1.100000023841858,""y"":4.415858745574951},{""x"":1.600000023841858,""y"":4.68414306640625},{""x"":2.0999999046325684,""y"":4.198400974273682},{""x"":2.5999999046325684,""y"":4.179222106933594},{""x"":3.0999999046325684,""y"":4.638473987579346},{""x"":3.5999999046325684,""y"":4.708553314208984},{""x"":4.099999904632568,""y"":4.291589260101318},{""x"":4.599999904632568,""y"":4.038082599639893},{""x"":5.099999904632568,""y"":3.4349939823150635},{""x"":5.599999904632568,""y"":1.2194708585739136},{""x"":6.099999904632568,""y"":1.1920831203460693},{""x"":6.599999904632568,""y"":0.5352635979652405},{""x"":7.099999904632568,""y"":0.3346920311450958}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[2.339458017970126, -1.0734184310171178, 4.746332950550934, 0.2482416857595658],""points"":[{""x"":0.10000000149011612,""y"":0.2139337658882141},{""x"":0.6000000238418579,""y"":0.4269562065601349},{""x"":1.100000023841858,""y"":0.2441573292016983},{""x"":1.600000023841858,""y"":0.146635964512825},{""x"":2.0999999046325684,""y"":0.08818462491035461},{""x"":2.5999999046325684,""y"":0.2560656666755676},{""x"":3.0999999046325684,""y"":0.42434045672416687},{""x"":3.5999999046325684,""y"":0.37111231684684753},{""x"":4.099999904632568,""y"":0.5581737160682678},{""x"":4.599999904632568,""y"":1.183590054512024},{""x"":5.099999904632568,""y"":1.5629843473434448},{""x"":5.599999904632568,""y"":2.3211288452148438},{""x"":6.099999904632568,""y"":2.229961633682251},{""x"":6.599999904632568,""y"":2.2560226917266846},{""x"":7.099999904632568,""y"":2.2142398357391357}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nCameroon,MIEVFLFGIVLGLIPITLAGLFVTAYLQYRRGDQLDL,COc1ccc2cc(ccc2c1)C(C)C(=O)OCCCc3cccnc3,1480016,36.26095962524414,995153596,30-56 WHITESTONE EXPY,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,3,3,2BDJ,3,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[4.6760652578642325, 0.9046956320756703, 5.651408971856738, 0.07738846012184185],""points"":[{""x"":0.10000000149011612,""y"":4.32425594329834},{""x"":0.6000000238418579,""y"":4.668442249298096},{""x"":1.100000023841858,""y"":4.379785060882568},{""x"":1.600000023841858,""y"":5.0345139503479},{""x"":2.0999999046325684,""y"":4.878653526306152},{""x"":2.5999999046325684,""y"":4.3451313972473145},{""x"":3.0999999046325684,""y"":4.336992263793945},{""x"":3.5999999046325684,""y"":5.037430286407471},{""x"":4.099999904632568,""y"":5.0092692375183105},{""x"":4.599999904632568,""y"":4.151902675628662},{""x"":5.099999904632568,""y"":3.4066951274871826},{""x"":5.599999904632568,""y"":2.3732759952545166},{""x"":6.099999904632568,""y"":1.673728108406067},{""x"":6.599999904632568,""y"":0.48574790358543396},{""x"":7.099999904632568,""y"":0.2783052325248718}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[2.938395863010111, -1.4658480661392117, 5.462702751996584, 0.3473139023615039],""points"":[{""x"":0.10000000149011612,""y"":0.4941710829734802},{""x"":0.6000000238418579,""y"":0.15323974192142487},{""x"":1.100000023841858,""y"":0.46373432874679565},{""x"":1.600000023841858,""y"":0.3370431363582611},{""x"":2.0999999046325684,""y"":0.5179030299186707},{""x"":2.5999999046325684,""y"":0.27899765968322754},{""x"":3.0999999046325684,""y"":0.22075064480304718},{""x"":3.5999999046325684,""y"":0.5789918899536133},{""x"":4.099999904632568,""y"":0.21169911324977875},{""x"":4.599999904632568,""y"":0.27857646346092224},{""x"":5.099999904632568,""y"":1.0906332731246948},{""x"":5.599999904632568,""y"":1.8520300388336182},{""x"":6.099999904632568,""y"":2.7177059650421143},{""x"":6.599999904632568,""y"":2.8680918216705322},{""x"":7.099999904632568,""y"":3.2413077354431152}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nCanada,MMELVLKTIIGPIVVGVVLRIVDKWLNKDK,CC(C(=O)NCCS)c1cccc(c1)C(=O)c2ccccc2,1480017,36.26095962524414,99515,30-56 WHITESTONE EXPY,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,4,4,1IAN,4,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[0.8597390975430008, 1.0957625732481946, 5.260537067987958, 0.07974187998177736],""points"":[{""x"":0.10000000149011612,""y"":0.8190152645111084},{""x"":0.6000000238418579,""y"":0.8421689867973328},{""x"":1.100000023841858,""y"":0.8740922212600708},{""x"":1.600000023841858,""y"":0.8924275040626526},{""x"":2.0999999046325684,""y"":0.8249067664146423},{""x"":2.5999999046325684,""y"":0.9327669143676758},{""x"":3.0999999046325684,""y"":0.8522974252700806},{""x"":3.5999999046325684,""y"":0.8174492716789246},{""x"":4.099999904632568,""y"":0.8394647240638733},{""x"":4.599999904632568,""y"":0.7139387726783752},{""x"":5.099999904632568,""y"":0.5561167597770691},{""x"":5.599999904632568,""y"":0.3276226818561554},{""x"":6.099999904632568,""y"":0.12479474395513535},{""x"":6.599999904632568,""y"":0.13006797432899475},{""x"":7.099999904632568,""y"":0.059702079743146896}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[5.760930219582546, 1.6591793293833013, 4.667155929720851, 0.7858109544121652],""points"":[{""x"":0.10000000149011612,""y"":6.156993389129639},{""x"":0.6000000238418579,""y"":5.236701965332031},{""x"":1.100000023841858,""y"":6.010560512542725},{""x"":1.600000023841858,""y"":5.495512962341309},{""x"":2.0999999046325684,""y"":6.087770462036133},{""x"":2.5999999046325684,""y"":5.79986572265625},{""x"":3.0999999046325684,""y"":5.597546577453613},{""x"":3.5999999046325684,""y"":5.520902156829834},{""x"":4.099999904632568,""y"":5.360654354095459},{""x"":4.599999904632568,""y"":3.5539746284484863},{""x"":5.099999904632568,""y"":1.577236294746399},{""x"":5.599999904632568,""y"":1.0001264810562134},{""x"":6.099999904632568,""y"":0.9305797815322876},{""x"":6.599999904632568,""y"":0.6033638715744019},{""x"":7.099999904632568,""y"":0.4203685522079468}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nColombia,MDRTDEVSNHTHDKPTLTWFEEIFEEYHSPFHN,FC(F)(F)c1ccc(OC2CCNCC2)cc1,1480029,36.3309440612793,995152050,1 COURT HOUSE SQUARE,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,5,5,4UJ1,5,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[6.4995088314153655, 2.4270351004539914, 5.178659535348579, 0.625653346241577],""points"":[{""x"":0.10000000149011612,""y"":6.496231555938721},{""x"":0.6000000238418579,""y"":6.42543363571167},{""x"":1.100000023841858,""y"":7.040063858032227},{""x"":1.600000023841858,""y"":6.1115403175354},{""x"":2.0999999046325684,""y"":6.680728435516357},{""x"":2.5999999046325684,""y"":6.406774520874023},{""x"":3.0999999046325684,""y"":6.611269474029541},{""x"":3.5999999046325684,""y"":5.889094352722168},{""x"":4.099999904632568,""y"":6.75344705581665},{""x"":4.599999904632568,""y"":6.361435890197754},{""x"":5.099999904632568,""y"":4.1666975021362305},{""x"":5.599999904632568,""y"":1.172118902206421},{""x"":6.099999904632568,""y"":0.801048994064331},{""x"":6.599999904632568,""y"":0.4640021026134491},{""x"":7.099999904632568,""y"":0.0010357667924836278}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[1.4734381347446401, 1.1649805188074196, 4.82958608866421, 0.09500545496710007],""points"":[{""x"":0.10000000149011612,""y"":1.5279096364974976},{""x"":0.6000000238418579,""y"":1.3559974431991577},{""x"":1.100000023841858,""y"":1.5246378183364868},{""x"":1.600000023841858,""y"":1.5567657947540283},{""x"":2.0999999046325684,""y"":1.4114240407943726},{""x"":2.5999999046325684,""y"":1.4045010805130005},{""x"":3.0999999046325684,""y"":1.4769829511642456},{""x"":3.5999999046325684,""y"":1.4875500202178955},{""x"":4.099999904632568,""y"":1.2991987466812134},{""x"":4.599999904632568,""y"":0.922961413860321},{""x"":5.099999904632568,""y"":0.6520044803619385},{""x"":5.599999904632568,""y"":0.15350978076457977},{""x"":6.099999904632568,""y"":0.1078903079032898},{""x"":6.599999904632568,""y"":0.17276449501514435},{""x"":7.099999904632568,""y"":0.14066608250141144}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nCosta Rica,MKSTKEEIQTIKTLLKDSRTAKYHKRLQIVL,CC(C)Cc1ccc(cc1)C(C)C(=O)N2CCCC2C(=O)OCCCc3ccccc3,1480018,36.3309440612793,995084218,4041 SOUTHWESTERN BLVD,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,6,6,2BPW,6,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[2.4833641843311227, -1.8945978742090062, 4.671127708092568, 0.24159861311815153],""points"":[{""x"":0.10000000149011612,""y"":0.0969524160027504},{""x"":0.6000000238418579,""y"":0.028483040630817413},{""x"":1.100000023841858,""y"":0.22087176144123077},{""x"":1.600000023841858,""y"":0.0068915546871721745},{""x"":2.0999999046325684,""y"":0.4305879771709442},{""x"":2.5999999046325684,""y"":0.44774115085601807},{""x"":3.0999999046325684,""y"":0.45346319675445557},{""x"":3.5999999046325684,""y"":0.2370593100786209},{""x"":4.099999904632568,""y"":0.4657953977584839},{""x"":4.599999904632568,""y"":1.155200719833374},{""x"":5.099999904632568,""y"":2.2294070720672607},{""x"":5.599999904632568,""y"":2.4311530590057373},{""x"":6.099999904632568,""y"":2.33846116065979},{""x"":6.599999904632568,""y"":2.608201026916504},{""x"":7.099999904632568,""y"":2.8136143684387207}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[5.224573521642033, 1.4454033924198528, 5.6014197746076535, 0.2823216054197577],""points"":[{""x"":0.10000000149011612,""y"":4.95027494430542},{""x"":0.6000000238418579,""y"":5.1754679679870605},{""x"":1.100000023841858,""y"":5.276752948760986},{""x"":1.600000023841858,""y"":5.589294910430908},{""x"":2.0999999046325684,""y"":5.616994857788086},{""x"":2.5999999046325684,""y"":5.120813846588135},{""x"":3.0999999046325684,""y"":5.340766906738281},{""x"":3.5999999046325684,""y"":4.876471042633057},{""x"":4.099999904632568,""y"":4.94999361038208},{""x"":4.599999904632568,""y"":5.162564754486084},{""x"":5.099999904632568,""y"":4.399557590484619},{""x"":5.599999904632568,""y"":2.7977969646453857},{""x"":6.099999904632568,""y"":1.0229872465133667},{""x"":6.599999904632568,""y"":0.48275601863861084},{""x"":7.099999904632568,""y"":0.10408931970596313}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nCuba,MHAILRYFIRRLFYHIFYKIYSLISKKHQSLPSDVRQF,COc1ccc2c(c1)c(CC(=O)N3CCCC3C(=O)Oc4ccc(C)cc4OC)c(C)n2C(=O)c5ccc(Cl)cc5,1480019,36.33115768432617,995081928,1227 US HIGHWAY 11,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,7,7,1QBS,7,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[3.320838679713925, -1.2421619987316728, 4.831325425225256, 0.3236011098403072],""points"":[{""x"":0.10000000149011612,""y"":0.3727470338344574},{""x"":0.6000000238418579,""y"":0.12365014106035233},{""x"":1.100000023841858,""y"":0.48422467708587646},{""x"":1.600000023841858,""y"":0.2264465093612671},{""x"":2.0999999046325684,""y"":0.16821794211864471},{""x"":2.5999999046325684,""y"":0.3879014551639557},{""x"":3.0999999046325684,""y"":0.5470244884490967},{""x"":3.5999999046325684,""y"":0.3419053554534912},{""x"":4.099999904632568,""y"":0.7655120491981506},{""x"":4.599999904632568,""y"":1.2346516847610474},{""x"":5.099999904632568,""y"":2.453336715698242},{""x"":5.599999904632568,""y"":2.9565491676330566},{""x"":6.099999904632568,""y"":3.335299491882324},{""x"":6.599999904632568,""y"":3.240290880203247},{""x"":7.099999904632568,""y"":3.1107218265533447}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[3.6401853521511094, 1.26211588875013, 5.399028074402744, 0.5089580830068091],""points"":[{""x"":0.10000000149011612,""y"":3.8585598468780518},{""x"":0.6000000238418579,""y"":3.6077206134796143},{""x"":1.100000023841858,""y"":3.855252265930176},{""x"":1.600000023841858,""y"":3.619039297103882},{""x"":2.0999999046325684,""y"":3.839388370513916},{""x"":2.5999999046325684,""y"":3.335283041000366},{""x"":3.0999999046325684,""y"":3.571141481399536},{""x"":3.5999999046325684,""y"":3.4155046939849854},{""x"":4.099999904632568,""y"":3.7316646575927734},{""x"":4.599999904632568,""y"":3.0680155754089355},{""x"":5.099999904632568,""y"":2.891066551208496},{""x"":5.599999904632568,""y"":1.6022753715515137},{""x"":6.099999904632568,""y"":0.7652576565742493},{""x"":6.599999904632568,""y"":0.6875326037406921},{""x"":7.099999904632568,""y"":0.5828871726989746}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nItaly,MSNFHNEHVMQFYRNNLKTKGVFGRQ,CC(C)Cc1ccc(cc1)C(C)C(=O)N2CCCC2C(=O)OCCO[N+](=O)[O-],1480020,36.33115768432617,99502,"168-46 91ST AVE., 2ND FLR",https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,8,8,1ZP8,8,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[2.293592105923809, 1.3781586549141835, 5.1025898038676605, 0.03493851245291291],""points"":[{""x"":0.10000000149011612,""y"":2.1287283897399902},{""x"":0.6000000238418579,""y"":2.267972230911255},{""x"":1.100000023841858,""y"":2.398442506790161},{""x"":1.600000023841858,""y"":2.5130622386932373},{""x"":2.0999999046325684,""y"":2.3255116939544678},{""x"":2.5999999046325684,""y"":2.127340793609619},{""x"":3.0999999046325684,""y"":2.47259783744812},{""x"":3.5999999046325684,""y"":2.131181478500366},{""x"":4.099999904632568,""y"":2.090421438217163},{""x"":4.599999904632568,""y"":2.02299165725708},{""x"":5.099999904632568,""y"":1.1105059385299683},{""x"":5.599999904632568,""y"":0.4494485855102539},{""x"":6.099999904632568,""y"":0.1375635862350464},{""x"":6.599999904632568,""y"":0.036351121962070465},{""x"":7.099999904632568,""y"":0.1619771122932434}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[5.953125499439879, 1.2528620255306528, 5.187637440149802, 0.3110348753260886],""points"":[{""x"":0.10000000149011612,""y"":5.6585283279418945},{""x"":0.6000000238418579,""y"":5.911152362823486},{""x"":1.100000023841858,""y"":5.924920082092285},{""x"":1.600000023841858,""y"":5.8469438552856445},{""x"":2.0999999046325684,""y"":5.929472923278809},{""x"":2.5999999046325684,""y"":6.190037727355957},{""x"":3.0999999046325684,""y"":6.236179828643799},{""x"":3.5999999046325684,""y"":6.141019344329834},{""x"":4.099999904632568,""y"":5.295210838317871},{""x"":4.599999904632568,""y"":5.265801906585693},{""x"":5.099999904632568,""y"":3.3722851276397705},{""x"":5.599999904632568,""y"":1.8299226760864258},{""x"":6.099999904632568,""y"":0.32690900564193726},{""x"":6.599999904632568,""y"":0.6274543404579163},{""x"":7.099999904632568,""y"":0.8441857099533081}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nRwanda,MPNSEPASLLELFNSIATQGELVRSLKAGNASK,CC(C)Cc1ccc(cc1)C(C)C(=O)N2CCCC2C(=O)OCCO,1480021,36.33137130737305,995037247,"168-46 91ST AVE., 2ND FLR",https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,9,9,2BDJ,9,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[3.8209972202654474, 1.3779216716448506, 5.299882228439686, 0.06040645519069608],""points"":[{""x"":0.10000000149011612,""y"":3.7821109294891357},{""x"":0.6000000238418579,""y"":3.542433023452759},{""x"":1.100000023841858,""y"":3.7008674144744873},{""x"":1.600000023841858,""y"":3.717301607131958},{""x"":2.0999999046325684,""y"":4.024452209472656},{""x"":2.5999999046325684,""y"":4.013899326324463},{""x"":3.0999999046325684,""y"":3.945094347000122},{""x"":3.5999999046325684,""y"":3.866621971130371},{""x"":4.099999904632568,""y"":3.7461626529693604},{""x"":4.599999904632568,""y"":3.3454740047454834},{""x"":5.099999904632568,""y"":2.61944317817688},{""x"":5.599999904632568,""y"":0.999405026435852},{""x"":6.099999904632568,""y"":0.46259793639183044},{""x"":6.599999904632568,""y"":0.054134611040353775},{""x"":7.099999904632568,""y"":0.05711187422275543}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[5.6318079657726035, 1.8495493770000595, 5.391793312471116, 0.17060707587348442],""points"":[{""x"":0.10000000149011612,""y"":5.458079814910889},{""x"":0.6000000238418579,""y"":5.554427146911621},{""x"":1.100000023841858,""y"":5.799983024597168},{""x"":1.600000023841858,""y"":5.364140033721924},{""x"":2.0999999046325684,""y"":5.864485740661621},{""x"":2.5999999046325684,""y"":5.4509806632995605},{""x"":3.0999999046325684,""y"":5.702574729919434},{""x"":3.5999999046325684,""y"":5.7314534187316895},{""x"":4.099999904632568,""y"":5.5123443603515625},{""x"":4.599999904632568,""y"":5.724395751953125},{""x"":5.099999904632568,""y"":4.354506969451904},{""x"":5.599999904632568,""y"":1.7307666540145874},{""x"":6.099999904632568,""y"":0.6305936574935913},{""x"":6.599999904632568,""y"":0.035183437168598175},{""x"":7.099999904632568,""y"":0.7575169205665588}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nSwitzerland,IRVVGRYLIEVWKAAGMDMDKVLFLWSSDEI,CN1CCC(CC1)Oc2ccc(cc2)C(F)(F)F,1480028,36.33137130737305,99504,92-11 179TH PLACE,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,9,10,1IAN,10,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[1.1190255865097471, 2.3163895161544437, 5.4968866182279195, 0.2035204047289052],""points"":[{""x"":0.10000000149011612,""y"":1.1057683229446411},{""x"":0.6000000238418579,""y"":1.1019697189331055},{""x"":1.100000023841858,""y"":1.0818607807159424},{""x"":1.600000023841858,""y"":1.062997817993164},{""x"":2.0999999046325684,""y"":1.046447515487671},{""x"":2.5999999046325684,""y"":1.1217249631881714},{""x"":3.0999999046325684,""y"":1.2166996002197266},{""x"":3.5999999046325684,""y"":1.215477705001831},{""x"":4.099999904632568,""y"":1.0581893920898438},{""x"":4.599999904632568,""y"":1.1747995615005493},{""x"":5.099999904632568,""y"":1.0181127786636353},{""x"":5.599999904632568,""y"":0.5344523191452026},{""x"":6.099999904632568,""y"":0.2569526433944702},{""x"":6.599999904632568,""y"":0.1912207305431366},{""x"":7.099999904632568,""y"":0.15060538053512573}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[3.1038581025805785, 2.0032224204185245, 5.087602825989163, 0.13277988512492753],""points"":[{""x"":0.10000000149011612,""y"":3.0498509407043457},{""x"":0.6000000238418579,""y"":2.805217742919922},{""x"":1.100000023841858,""y"":3.3415253162384033},{""x"":1.600000023841858,""y"":3.0549843311309814},{""x"":2.0999999046325684,""y"":3.250074863433838},{""x"":2.5999999046325684,""y"":3.0432586669921875},{""x"":3.0999999046325684,""y"":3.265852451324463},{""x"":3.5999999046325684,""y"":2.9475724697113037},{""x"":4.099999904632568,""y"":3.1929898262023926},{""x"":4.599999904632568,""y"":2.7460060119628906},{""x"":5.099999904632568,""y"":1.6175861358642578},{""x"":5.599999904632568,""y"":0.3006608486175537},{""x"":6.099999904632568,""y"":0.3444803059101105},{""x"":6.599999904632568,""y"":0.015537971630692482},{""x"":7.099999904632568,""y"":0.5527358055114746}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\n,,,,,,,,,,,,,,,,,,,,,').columns.add(e.Column.fromList(e.TYPE.BYTE_ARRAY,"BinaryImage",Array.from(new Uint8Array(11))));var Gn,Wn=function(t,e,n,r){return new(n||(n=Promise))((function(i,o){function s(t){try{u(r.next(t))}catch(t){o(t)}}function a(t){try{u(r.throw(t))}catch(t){o(t)}}function u(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(s,a)}u((r=r.apply(t,e||[])).next())}))};async function zn(){await pt((async()=>{const e=await Gr();t.shell.addView(e),["Afcgacsu","Afcgacsu","Afcgacsu"].forEach((async(t,e)=>{await async function(t,e){await function(t){return Wn(this,void 0,void 0,(function*(){yield new Promise((e=>setTimeout(e,t)))}))}(500);const n=document.querySelectorAll(".st-colored-text-input > textarea")[t];n.value=e;const r=new Event("input");n.dispatchEvent(r)}(e,t)}))}))}function Yn(t){const e=Tt.input.textArea("",{value:""});return{coloredInput:new un(e,t.highlightInvalidSubsequence),codes:t.jsonData.codesToSymbolsDict}}async function Kn(){const t="Helm",n=e.Func.find({package:t,name:"getHelmHelper"});if(0===n.length)throw new Error(`Package '${t}' must be installed for HelmHelper.`);return(await n[0].prepare().call()).getOutputParamValue()}function Jn(t){return"string"==typeof t||t instanceof String?t:"StateError"===t.constructor.name?t.message:"StateError"===t.constructor.name&&"$thrownJsError"in t?Jn(t.$thrownJsError):t instanceof Error?t.message:t.toString()}function Qn(t){return t instanceof Error?t.stack:"StateError"===t.constructor.name&&"$thrownJsError"in t?Qn(t.$thrownJsError):void 0}function Xn(t){return[Jn(t),Qn(t)]}async function Zn(){const t=e.Func.find({package:"Bio",name:"getSeqHelper"});if(0===t.length)throw new Error("Package 'Bio' must be installed for SeqHelper.");return(await t[0].prepare().call()).getOutputParamValue()}console.log.bind(console),console.info.bind(console),console.warn.bind(console),console.error.bind(console),function(t){t.notNull=function(t,e){if(null==t)throw new Error(`${null==e?"Value":e} not defined`)}}(Gn||(Gn={})),e.DataFrame.fromColumns([e.Column.fromStrings("col",["val1","val2","val3"])]),e.JsInputBase,Error,Tt.input.helmAsync=async function(t,e){return(await Kn()).createHelmInput(t,e)};var tr=function(t,e,n,r){return new(n||(n=Promise))((function(i,o){function s(t){try{u(r.next(t))}catch(t){o(t)}}function a(t){try{u(r.throw(t))}catch(t){o(t)}}function u(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(s,a)}u((r=r.apply(t,e||[])).next())}))};class er{constructor(t,e,n=".csv"){this.path=t,this.userStorageName=e,this.ext=n,"/"!==this.path[this.path.length-1]&&(this.path+="/"),"."!==this.ext[0]&&(this.ext="."+this.ext)}getUserSettings(){return tr(this,void 0,void 0,(function*(){if(this.settings)return this.settings;const e=t.userSettings.getValue(this.userStorageName,"Settings"),n=e?JSON.parse(e):{excluded:[],explicit:[]};return n.explicit=n.explicit instanceof Array?n.explicit:[],n.excluded=n.excluded instanceof Array?n.excluded:[],this.settings=n}))}setUserSettings(e){this.settings=e,t.userSettings.add(this.userStorageName,"Settings",JSON.stringify(e))}getAllAvailable(){return tr(this,void 0,void 0,(function*(){return(yield t.dapi.files.list(this.path)).map((t=>t.fullPath.replace(`${this.path}`,"")))}))}getActive(){return tr(this,void 0,void 0,(function*(){const t=yield this.getUserSettings();return t.explicit.length>0?t.explicit:(yield this.getAllAvailable()).filter((e=>!t.excluded.includes(e)))}))}createInput(t,e){const n=Tt.input.bool(t,{value:e,onValueChanged:e=>this.updateSelectionStatus(t,e)});return n.addOptions(Tt.button(Tt.iconFA("trash"),(()=>{Tt.dialog({title:"Warning"}).add(Tt.divText(`Delete file '${t}'?`)).onOK((()=>{n.root.remove(),this.availableRemove(t)})).show()}),`Delete ${t}`)),n}getInputs(){return tr(this,void 0,void 0,(function*(){const t=yield this.getAllAvailable(),e=yield this.getActive(),n=new Array(t.length);for(let r=0;r<t.length;r++){const i=e.includes(t[r]);n[r]=this.createInput(t[r],i)}return n}))}getForm(){return tr(this,void 0,void 0,(function*(){const t=yield this.getInputs(),e=Tt.divV(t);return Tt.divV([e,Tt.button("ADD",(()=>tr(this,void 0,void 0,(function*(){let t="";t=yield this.getNewAvailable(),""!==t&&e.append(this.createInput(t,!0).root)}))))])}))}updateSelectionStatus(t,e){return tr(this,void 0,void 0,(function*(){const n=yield this.getUserSettings();if(!n.excluded.includes(t)!==e){if(e){const e=n.excluded.indexOf(t);e>-1&&n.excluded.splice(e,1)}else n.excluded.push(t);this.setUserSettings(n)}}))}availableRemove(e){return tr(this,void 0,void 0,(function*(){const n=yield this.getUserSettings(),r=n.excluded.indexOf(e);r>-1&&n.excluded.splice(r,1),this.setUserSettings(n),yield t.dapi.files.delete(this.path+e),t.shell.info(`File ${e} successfully deleted`)}))}getNewAvailable(){return tr(this,void 0,void 0,(function*(){return new Promise(((n,r)=>{e.Utils.openFile({accept:this.ext,open:e=>tr(this,void 0,void 0,(function*(){const r=e.name,i=yield e.arrayBuffer();yield t.dapi.files.write(this.path+`${e.name}`,new Uint8Array(i)),n(r)}))})}))}))}}const nr="System:AppData/SequenceTranslator/polytool-rules/",rr="Polytool",ir="link",or="fragmentDuplication",sr="differentFragments";class ar extends er{constructor(t,e,n){super(t,e,n)}}class ur{constructor(t,e){this.linkages=e,this.monomers=t}static fromHelm(t){const e=t.split("$"),n=e[0].split("|"),r=e[1].split("|"),i=new Array(n.length),o=[];for(let t=0;t<n.length;t++){const e=n[t].indexOf("{"),r=n[t].indexOf("}");i[t]=n[t].slice(e+1,r).split(".")}for(let t=0;t<r.length;t++)if(""!==r[t]&&"V2.0"!==r[t]){const e=r[t].split(","),n=e[0].replace("PEPTIDE","")-1,i=e[1].replace("PEPTIDE","")-1,s=e[2].split("-"),a=s[0].split(":"),u=s[1].split(":");o.push({fChain:n,sChain:i,fMonomer:a[0],sMonomer:u[0],fR:a[1].replace("R",""),sR:u[1].replace("R","")})}return new ur(i,o)}static fromNotation(t,e){const n=e.heterodimerCode,r=e.homodimerCode,i=[],o=[],s=null!==n?t.split(`(${e.heterodimerCode})`):"";null!==n&&s.length>1?(o.push({fChain:0,sChain:1,fMonomer:1,sMonomer:1,fR:1,sR:1}),i.push(s[1].replaceAll("{","").replaceAll("}","")),i.push(s[2].replaceAll("{","").replaceAll("}",""))):i.push(t);for(let t=0;t<i.length;t++)if(null!==r&&i[t].includes(`(${r})`)){const e=i.length;o.push({fChain:t,sChain:e,fMonomer:1,sMonomer:1,fR:1,sR:1});const n=i[t].replace(`(${r})`,""),s=n.indexOf("{"),a=n.slice(0,s),u=n.replace(a,"").replaceAll("{","").replaceAll("}","");i[t]=a+u,i.push(u)}const a=new Array(i.length);for(let t=0;t<i.length;t++){const n=i[t].split("-"),r=this.getLinkedPositions(n,e.linkRules),[s,u,l,c,h]=this.getAllCycles(e.linkRules,n,r),f=new Array(s.length);for(let t=0;t<s.length;t++)f[t]=`[${s[t]}]`;for(let e=0;e<u.length;e++)o.push({fChain:t,sChain:t,fMonomer:u[e],sMonomer:l[e],fR:c[e],sR:h[e]});a[t]=f}return new ur(a,o)}getHelmChanged(t,e){let n=0,r=0,i=0;t:for(let e=0;e<this.monomers.length;e++)for(let o=0;o<this.monomers[e].length;o++){if(n==t){r=e,i=o;break t}n++}const o=this.monomers[r][i];this.monomers[r][i]=`[${e}]`;const s=this.getHelm();return this.monomers[r][i]=o,s}getHelm(){let t="";for(let e=0;e<this.monomers.length;e++){e>0&&(t+="|"),t+=`PEPTIDE${e+1}{`;for(let n=0;n<this.monomers[e].length;n++)n>0&&(t+="."),t+=this.monomers[e][n];t+="}"}t+="$";for(let e=0;e<this.linkages.length;e++)e>0&&(t+="|"),t+=`PEPTIDE${this.linkages[e].fChain+1},PEPTIDE${this.linkages[e].sChain+1},`,t+=`${this.linkages[e].fMonomer}:R${this.linkages[e].fR}-`,t+=`${this.linkages[e].sMonomer}:R${this.linkages[e].sR}`;return t+="$$$",t}static getLinkedPositions(t,e){const n=new Array(e.length);for(let r=0;r<e.length;r++){let i=!1,o=!1,s=!1,a=-1,u=-1;const l=`(${e[r].code})`;for(let n=0;n<t.length;n++)if(t[n].includes(l)){if(i){if(s&&t[n]==e[r].secondMonomer+l){o=!0,u=n;break}if(s||t[n]!=e[r].firstMonomer+l)continue;o=!0,u=n;break}if(t[n]==e[r].firstMonomer+l)i=!0,s=!0,a=n;else{if(t[n]!=e[r].secondMonomer+l)continue;i=!0,s=!1,a=n}}n[r]=i&&o?s?[a,u]:[u,a]:[-1,-1]}return n}static getAllCycles(t,e,n){const r=[],i=[],o=[],s=[],a=t.length;for(let u=0;u<a;u++){if(-1==n[u][0])continue;const a=e[n[u][0]],l=e[n[u][1]];e[n[u][0]]=e[n[u][0]].replace(a,t[u].firstSubstitution),e[n[u][1]]=e[n[u][1]].replace(l,t[u].secondSubstitution),r.push(n[u][0]+1),i.push(n[u][1]+1),o.push(t[u].firstLinkingGroup),s.push(t[u].secondLinkingGroup)}return[e,r,i,o,s]}}function lr(e,n=!0){const[r,i]=Xn(e);return $r.logger.error(r,void 0,i),n&&t.shell.error(r),[r,i]}const cr="System:AppData/Bio/monomer-libraries/";async function hr(){const e=await t.functions.call("Bio:getMonomerLibHelper",{});return(await e.getFileManager()).getValidLibraryPaths()}const fr="\n\n\n 22 24 0 0 0 0 0 0 0 0999 V2000\n 0.3128 -0.7509 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.3128 0.0740 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -0.4054 -1.1623 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -1.1081 -0.7509 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -0.4054 0.4877 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -1.1081 0.0740 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -1.8175 -1.1623 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.0222 0.4877 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -1.8175 0.4877 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -2.5292 -0.7509 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.0222 1.3127 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.7227 1.7263 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -0.4054 -1.9896 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -2.5292 0.0740 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 2.4544 1.3127 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.7406 0.0740 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.0222 -1.1623 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 2.4544 0.4877 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -1.8175 -1.9896 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -3.2453 0.4877 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 3.1670 1.7285 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 1.7149 2.5513 0.0000 R# 0 0 0 0 0 0 0 0 0 0 0 0\n 2 1 2 0 0 0 0\n 3 1 1 0 0 0 0\n 4 3 1 0 0 0 0\n 5 2 1 0 0 0 0\n 6 5 1 0 0 0 0\n 7 4 1 0 0 0 0\n 8 2 1 0 0 0 0\n 9 6 1 0 0 0 0\n 10 7 2 0 0 0 0\n 11 8 2 0 0 0 0\n 12 11 1 0 0 0 0\n 13 3 2 0 0 0 0\n 14 9 2 0 0 0 0\n 15 18 1 0 0 0 0\n 16 8 1 0 0 0 0\n 17 1 1 0 0 0 0\n 18 16 2 0 0 0 0\n 19 7 1 0 0 0 0\n 20 14 1 0 0 0 0\n 6 4 2 0 0 0 0\n 15 12 2 0 0 0 0\n 14 10 1 0 0 0 0\n 15 21 1 0 0 0 0\n 12 22 1 0 0 0 0\nM RGP 1 22 1\nM END";const dr={symbol:"Short Name",name:"Medium Name",smiles:"SMILES"},pr=[{capGroupSmiles:"[*:1][H]",alternateId:"R1-H",capGroupName:"H",label:"R1"},{capGroupSmiles:"O[*:2]",alternateId:"R2-OH",capGroupName:"OH",label:"R2"},{capGroupSmiles:"[*:3][H]",alternateId:"R3-H",capGroupName:"H",label:"R3"}],gr="No dataframe with macromolecule columns open",mr="Get HELM",yr="Add HELM column",vr="Chirality engine",br="Poly Tool Conversion",wr="Poly Tool Enumeration",Cr="Rules used";function Ar(n){(async function(n){const r=[],i=()=>{for(const t of r)t.unsubscribe()};try{const[o,s]=await Promise.all([hr(),Kn()]),a=n&&n.rowIndex>=0?n.value:fr;let u=await(async()=>e.chem.isMolBlock(a)?a:await t.functions.call("Chem:convertMolNotation",{molecule:a,sourceNotation:n?.column.getTag(e.TAGS.UNITS)??e.chem.Notation.Unknown,targetNotation:e.chem.Notation.MolBlock}))();const l=new e.chem.Sketcher(e.chem.SKETCHER_MODE.EXTERNAL);l.syncCurrentObject=!1,l.onChanged.subscribe((t=>{u=l.getMolFile()})),l.root.classList.add("ui-input-editor"),l.root.style.marginTop="3px",l.setMolFile(u);const c=Tt.input.choice("Library to use",{value:null,items:o});l.root.setAttribute("style","min-width:250px!important;"),l.root.setAttribute("style","max-width:250px!important;"),c.input.setAttribute("style","min-width:250px!important;");const h=Tt.div([l.root,c.root]);r.push(t.events.onCurrentCellChanged.subscribe((()=>{const n=t.shell.tv.dataFrame.currentCell;n.column.semType===e.SEMTYPE.MOLECULE&&l.setValue(n.value)})));const f=async()=>{try{const n=l.getMolFile();if(void 0===n||""===n)t.shell.warning("PolyTool: no molecule was provided");else if(n.includes("R#")){const r=await async function(e,n){const r=await async function(e){const n=await t.functions.call("Bio:getMonomerLibHelper",{});return(await n.readLibrary(cr,e)).getMonomerSymbolsByType("PEPTIDE")}(n),i=await async function(e){const n=await t.functions.call("Bio:getMonomerLibHelper",{}),r=await n.readLibrary(cr,e),i=r.getMonomerSymbolsByType("PEPTIDE");return new Array(i.length),r.getMonomerMolsByPolymerType("PEPTIDE")}(n),o=new Array(r.length),s=await t.functions.call("Chem:getRdKitModule"),a=s.get_mol(e),u=a.get_smiles();a.delete();const l=new Array(r.length);for(let t=0;t<r.length;t++){const e=i[r[t]],n=s.get_mol(e);l[t]=n.get_smiles(),n.delete()}for(let t=0;t<r.length;t++){let e=null;try{const n=`${`${u}.${l[t]}`.replaceAll("[1*]C","C([1*])").replaceAll("[1*]c","c([1*])").replaceAll("[1*]O","O([1*])").replaceAll("[1*]N","N([1*])")}`.replaceAll("([1*])","9").replaceAll("[1*]","9");e=s.get_mol(n,JSON.stringify({mappedDummiesAreRGroups:!0}));const r=e.get_v3Kmolblock();o[t]=r}catch(e){o[t]=""}finally{e?.delete()}}return o}(n,c.value),i=e.Column.fromStrings("Enumerated",r),o=e.DataFrame.fromColumns([i]);t.shell.addTableView(o)}else t.shell.warning("PolyTool: no R group was provided")}catch(t){lr(t)}},d=Tt.dialog(wr).add(h).onOK((()=>{f().finally((()=>{i()}))})).onCancel((()=>{i()}));return r.push(d.onClose.subscribe((()=>{i()}))),d.history((()=>({mol:l.getMolFile(),screenLibrary:c.value})),(t=>{l.setMolFile(t.mol),c.value=t.screenLibrary})),d}catch(t){throw i(),t}})(n).then((t=>{t.show({resizable:!0})})).catch((e=>{t.shell.warning("To run PolyTool Enumeration, sketch the molecule and specify the R group to vary")}))}async function xr(n,r,i,o){const s=e.TaskBarProgressIndicator.create("PolyTool converting...");try{const s=(t,e)=>t?t.columns.getUnusedName(e):e;await Kn();const a=n.dataFrame,u=await async function(n){const r=new e.FileSource(nr),i=[],o={homodimerCode:null,heterodimerCode:null,linkRules:i};for(let e=0;e<n.length;e++){const s=await r.readAsText(n[e].replace(nr,"")),a=JSON.parse(s);for(let e=0;e<a.length;e++)if(void 0!==a[e].type&&void 0!==a[e].code)switch(a[e].type){case ir:{const t=a[e].monomericSubstitution;t.code=a[e].code,i.push(t);break}case or:o.homodimerCode&&t.shell.warning("PolyTool: homodimer code is duplicated in rules."),o.homodimerCode=a[e].code;break;case sr:o.heterodimerCode&&t.shell.warning("PolyTool: heterodimer code is duplicated in rules."),o.heterodimerCode=a[e].code;break;default:t.shell.warning(`PolyTool: Unexpected type - '${a[e]}'.`)}else t.shell.warning("Polytool: rules contain invalid rule")}return o}(o),l=function(t,e){const n=new Array(t.length);for(let r=0;r<t.length;r++)if(void 0===t[r])n[r]="";else{const i=ur.fromNotation(t[r],e);n[r]=i.getHelm()}return n}(n.toList(),u),c=s(a,`transformed(${n.name})`),h=e.Column.fromType(e.COLUMN_TYPE.STRING,c,l.length).init((t=>l[t]));h.semType=e.SEMTYPE.MACROMOLECULE,h.meta.units=C.HELM,h.setTag(e.TAGS.CELL_RENDERER,"helm"),r&&a&&a.columns.add(h,!0);const f=await Zn(),d=(await f.helmToAtomicLevel(h,i,r)).molCol;return d.name=s(a,`molfile(${n.name})`),d.semType=e.SEMTYPE.MOLECULE,a&&(a.columns.add(d,!0),await t.data.detectSemanticTypes(a)),[h,d]}finally{s.close()}}var _r,Er;function Tr(t){let e;switch(t){case _r.BASE:case _r.SUGAR:case _r.LINKER:case _r.NUCLEOTIDE:case"nucleotide":e="RNA";break;case _r.AA:e="PEPTIDE";break;case _r.CHEM:e="CHEM";break;case _r.BLOB:e="BLOB";break;default:e="PEPTIDE",console.warn(`Unexpected HelmType '${t}'`)}return e}!function(t){t.BASE="HELM_BASE",t.SUGAR="HELM_SUGAR",t.LINKER="HELM_LINKER",t.AA="HELM_AA",t.CHEM="HELM_CHEM",t.BLOB="HELM_BLOB",t.NUCLEOTIDE="HELM_NUCLETIDE"}(_r||(_r={}));class Sr extends e.InputBase{constructor(t,e){super(Tt.input.column(t,e).dart,e?.onValueChanged),this.options=e}setColumnInputTable(t){Tt.input.setColumnInputTable(this,t,this.options?.filter)}}Tt.input.column2=function(t,e){return new Sr(t,e)},function(t){t.Single="single",t.Matrix="matrix"}(Er||(Er={}));const Ir="PEPTIDE1{R.[Aca].T.G.H.F.G.A.A.Y.P.E.[meI]}$$$$";function Nr(t,e,n,r){const i=new Array(r.length*(n-e+1));for(let o=0;o<r.length;++o){const s=n-e+1;for(let n=0;n<s;++n){const a=e+n,u=r[o],l=i[o*s+n]=t.clone(),c=l.atoms[a].elem;l.atoms[a].elem=u;const h=c?.length>1?`[${c}]`:c,f=u?.length>1?`[${u}]`:u;l.name=`${t.name}-${h}${a+1}${f}`}}return i}class Mr extends e.JsInputBase{get inputType(){return"Positions"}get dataType(){return e.TYPE.DATA_FRAME}getInput(){return this.gridHost}getValue(){return this.grid.dataFrame}setValue(t){this.grid.dataFrame=t}getStringValue(){return this.grid.dataFrame.toCsv()}setStringValue(t){this.grid.dataFrame=e.DataFrame.fromCsv(t)}get placeholdersValue(){return function(t){const e=[];for(let n=0;n<t.rowCount;n++){const r=parseInt(t.get("Position",n));if(!isNaN(r)){const i=Or(t.get("Monomers",n));e.push({position:r,monomers:i})}}return e}(this.grid.dataFrame)}constructor(t,e,n){super(),this.subs=[],t&&(this.captionLabel.innerText=t),this.gridHost=Tt.div([],{classes:"ui-input-editor",style:{width:"100%",height:"100%",marginTop:"-8px",marginBottom:"8px",paddingBottom:"4px"}}),this.grid=e,this.gridHost.append(this.grid.root),null!=n?this.updateGridHeight(n+.7):(this.updateGridHeight(this.grid.dataFrame.rowCount+.6),this.subs.push(this.grid.dataFrame.onRowsAdded.subscribe((()=>{this.updateGridHeight(this.grid.dataFrame.rowCount+.6)})))),this.grid.root.style.width="100%",this.subs.push(this.grid.dataFrame.onDataChanged.subscribe((()=>{this.fireChanged()}))),this.subs.push(Tt.onSizeChanged(this.grid.root).subscribe((()=>{this.grid.columns.byIndex(2).width=this.grid.root.clientWidth-this.grid.horzScroll.root.offsetWidth-this.grid.columns.byIndex(0).width-this.grid.columns.byIndex(1).width-10}))),this.root.classList.add("ui-input-polytool-pos-grid"),this.root.append(this.gridHost)}detach(){for(const t of this.subs)t.unsubscribe()}static async create(t,n,r){const i=e.DataFrame.fromColumns([e.Column.fromType(e.COLUMN_TYPE.INT,"Position",0),e.Column.fromType(e.COLUMN_TYPE.STRING,"Monomers",0)]),o=await i.plot.fromType(e.VIEWER.GRID,n);return o.sort(["Position"]),new Mr(t,o,r)}updateGridHeight(t){const e=this.grid.colHeaderHeight+t*this.grid.props.rowHeight+6+2;this.grid.root.style.height=`${e}px`}gridRootOnSizeChanged(){this.grid.columns.byIndex(2).width=this.grid.root.clientWidth-this.grid.horzScroll.root.offsetWidth-this.grid.columns.byIndex(0).width-this.grid.columns.byIndex(1).width-10}}function Or(t){return t.split(/,(?![^(]*\))/).map((t=>('"'===(t=t.trim()).slice(0,1)&&'"'===t.slice(-1)&&(t=t.slice(1,-1)),"'"===t.slice(0,1)&&"'"===t.slice(-1)&&(t=t.slice(1,-1)),t.trim()))).filter((t=>!!t))}class Lr extends e.JsInputBase{get inputType(){return"Breadth"}get dataType(){return e.TYPE.DATA_FRAME}getInput(){return this.gridHost}getValue(){return this.grid.dataFrame}setValue(t){this.grid.dataFrame=t}getStringValue(){return this.grid.dataFrame.toCsv()}setStringValue(t){this.grid.dataFrame=e.DataFrame.fromCsv(t)}get placeholdersBreadthValue(){return function(t){const e=[];for(let n=0;n<t.rowCount;n++){const r=parseInt(t.get("Start",n)),i=parseInt(t.get("End",n));if(!isNaN(r)&&!isNaN(i)){const o=Or(t.get("Monomers",n));e.push({start:r,end:i,monomers:o})}}return e}(this.grid.dataFrame)}constructor(t,e,n){super(),this.subs=[],t&&(this.captionLabel.innerText=t),this.gridHost=Tt.div([],{classes:"ui-input-editor",style:{width:"100%",height:"100%",marginTop:"-8px",marginBottom:"8px",paddingBottom:"4px"}}),this.grid=e,this.gridHost.append(this.grid.root),null!=n?this.updateGridHeight(n+.7):(this.updateGridHeight(this.grid.dataFrame.rowCount+.6),this.subs.push(this.grid.dataFrame.onRowsAdded.subscribe((()=>{this.updateGridHeight(this.grid.dataFrame.rowCount+.6)})))),this.grid.root.style.width="100%",this.subs.push(this.grid.dataFrame.onDataChanged.subscribe((()=>{this.fireChanged()}))),this.subs.push(Tt.onSizeChanged(this.grid.root).subscribe((()=>{this.grid.columns.byIndex(3).width=this.grid.root.clientWidth-this.grid.horzScroll.root.offsetWidth-this.grid.columns.byIndex(0).width-this.grid.columns.byIndex(1).width-this.grid.columns.byIndex(2).width-10}))),this.root.classList.add("ui-input-polytool-pos-grid"),this.root.append(this.gridHost)}detach(){for(const t of this.subs)t.unsubscribe()}static async create(t,n,r){const i=e.DataFrame.fromColumns([e.Column.fromType(e.COLUMN_TYPE.INT,"Start",0),e.Column.fromType(e.COLUMN_TYPE.INT,"End",0),e.Column.fromType(e.COLUMN_TYPE.STRING,"Monomers",0)]),o=await i.plot.fromType(e.VIEWER.GRID,n);return o.sort(["Start","End"]),new Lr(t,o,r)}updateGridHeight(t){const e=this.grid.colHeaderHeight+t*this.grid.props.rowHeight+6+2;this.grid.root.style.height=`${e}px`}gridRootOnSizeChanged(){this.grid.columns.byIndex(3).width=this.grid.root.clientWidth-this.grid.horzScroll.root.offsetWidth-this.grid.columns.byIndex(0).width-this.grid.columns.byIndex(1).width-this.grid.columns.byIndex(2).width-10}}async function Br(n){const r=window.innerWidth,i=window.innerHeight;try{let o;const s=()=>{if(null==o)return;const t=It()(o.root).find("div.d4-dialog-contents").get(0),e=t.clientHeight,n={0:1},r=Object.values(n).reduce(((t,e)=>t+e),0),i=e-T().count(0).take(t.children.length).filter((t=>!(t in n))).map((e=>t.children[e])).filter((t=>t instanceof HTMLElement)).map((t=>t.offsetHeight)).reduce(((t,e)=>t+e),0)-38;o.inputs.forEach(((t,e)=>{if(e in n){const o=i*n[e]/r;t.root.style.height=`${o}px`}}))};o=await async function(n,r){const i="ST: PT: HelmDialog()";let o;const s=[],a=()=>{for(const t of s)t.unsubscribe();o.placeholders.detach()};try{const u=(await rt()).getMonomerLib(),l=(await Zn(),e.DataFrame.fromColumns([])),[c,h]=await Promise.all([hr(),Kn()]);let f=null;const d=Tt.divText("",{style:{marginLeft:"8px",marginTop:"2px"}}),p=Tt.divText("",{style:{color:"red"}});o={macromolecule:h.createHelmInput("Macromolecule",{editable:!1}),placeholders:await Mr.create("Placeholders",{showAddNewRowIcon:!0,showRemoveRowIcon:!0,showRowHeader:!1,showCellTooltip:!1}),enumeratorType:Tt.input.choice("Enumerator type",{value:Er.Single,items:Object.values(Er)}),placeholdersBreadth:await Lr.create("Breadth",{showAddNewRowIcon:!0,showRemoveRowIcon:!0,showRowHeader:!1,showCellTooltip:!1}),toAtomicLevel:Tt.input.bool("To atomic level",{value:!1}),keepOriginal:Tt.input.bool("Keep original",{value:!1}),trivialNameCol:Tt.input.column2("Trivial name",{table:n?.dataFrame,filter:t=>t.type===e.COLUMN_TYPE.STRING&&t!=n?.column,onValueChanged:()=>{const t=o.trivialNameCol.value;let e=null;n&&t&&(e={value:t.get(n.rowIndex),colName:t.name}),f=e,d.textContent=f?`Original ID: ${f.value}`:""},nullable:!0})},o.trivialNameCol.addOptions(d);let g=null;o.placeholders.addValidator((t=>{const e=[];try{const t=[];for(const n of o.placeholders.placeholdersValue){const r=n.position;if(r>=o.macromolecule.molValue.atoms.length){e.push(`There is no monomer at position ${r+1}.`);continue}const i=Tr(o.macromolecule.molValue.atoms[r].biotype());for(const e of n.monomers){const n=u.getMonomer(i,e);n&&n.lib||t.push({polymerType:i,symbol:e})}}const n={};for(const e of t){let t=n[e.polymerType];t||(t=n[e.polymerType]=[]),t.push(e.symbol)}const r=Object.entries(n).map((([t,e])=>`${t}: ${e.join(", ")}`)).join("\n");Object.keys(r).length>0&&e.push(`Placeholders contain missed monomers: ${r}`),g=e.length>0?e.join("\n"):null}catch(t){const[e,n]=lr(t,!1);g=e}return setTimeout((()=>{y()}),0),g})),s.push(o.macromolecule.onMouseMove.subscribe((t=>{try{$r.logger.debug(`${i}, placeholdersInput.onMouseMove()`);const e=t.offsetX,n=t.offsetY,r=o.macromolecule.molValue,s=h.getHoveredAtom(e,n,r,o.macromolecule.root.clientHeight);if(s){const e=s._parent.atoms.indexOf(s),n=o.placeholders.placeholdersValue.find((t=>t.position===e))?.monomers;if(n){const e=Tt.divText(n.join(", "));o.macromolecule.showTooltip(e,s),t.preventDefault(),t.stopPropagation()}}}catch(t){lr(t,!1)}}))),s.push(o.macromolecule.onClick.subscribe((t=>{try{$r.logger.debug(`${i}, placeholdersInput.onClick()`);const e=t.offsetX,n=t.offsetY,r=o.macromolecule.molValue,s=h.getHoveredAtom(e,n,r,o.macromolecule.root.clientHeight);if(s){const t=(s._parent.atoms.indexOf(s)+1).toString(),e=o.placeholders.grid.dataFrame,n=e.columns.byName("Position").toList();let r=n.indexOf(t);-1===r&&(r=n.findIndex((t=>isNaN(t))),-1===r&&(r=e.rows.addNew([t,""]).idx),e.set("Position",r,t)),e.currentCell=e.cell(r,"Monomers")}}catch(t){lr(t)}}))),s.push(o.placeholders.grid.dataFrame.onDataChanged.subscribe((()=>{m()}))),s.push((0,Jt.fromEvent)(o.placeholders.grid.root,"keydown").subscribe((t=>{"Enter"===t.key&&t.stopPropagation()}))),s.push(Tt.onSizeChanged(o.placeholders.root).subscribe((()=>{r&&r()}))),s.push(t.events.onCurrentCellChanged.subscribe((()=>{const n=t.shell.tv.dataFrame.currentCell;n.column.semType===e.SEMTYPE.MACROMOLECULE&&b(n)}))),o.macromolecule.root.style.setProperty("min-width","250px","important");const m=()=>{const t=o.macromolecule.molValue;for(let e=0;e<t.atoms.length;e++)t.atoms[e].highlighted=e in o.placeholders.placeholdersValue;o.macromolecule.redraw()},y=()=>{const t=g,e=p;t?(e.innerText=t,e.style.removeProperty("display")):(e.innerText="",e.style.setProperty("display","none"))},v=t=>{t?(o.trivialNameCol.setColumnInputTable(t),o.trivialNameCol.root.style.removeProperty("display")):(o.trivialNameCol.setColumnInputTable(l),o.trivialNameCol.root.style.setProperty("display","none")),r&&r()},b=async t=>{let n,r;if(t&&t.rowIndex>=0&&t?.column.semType==e.SEMTYPE.MACROMOLECULE){const e=tt.forColumn(t.column);n=await e.getHelm(t.rowIndex),r=t.dataFrame}else n=Ir;o.macromolecule.stringValue=n,v(r)};await b(n);const w=async()=>{try{const n=o.macromolecule.stringValue;if(T().enumerate(o.macromolecule.molValue.atoms).filter((([t,e])=>t.highlighted)).map((([t,e])=>e)).toArray(),void 0===n||""===n)t.shell.warning("PolyTool: no molecule was provided");else{if(0===Object.keys(o.placeholders.placeholdersValue).length&&0===Object.keys(o.placeholdersBreadth.placeholdersBreadthValue).length)return void t.shell.warning(`${wr}: placeholders are empty`);await Kn();const r={placeholders:o.placeholders.placeholdersValue,type:o.enumeratorType.value,placeholdersBreadth:o.placeholdersBreadth.placeholdersBreadthValue,keepOriginal:o.keepOriginal.value},i=await async function(t,n,r,i){const o=e.TaskBarProgressIndicator.create("PolyTool enumerating...");try{await Kn();const o=function(t,e,n){const r=new JSDraw2.MolHandler,i=new org.helm.webeditor.Plugin(r);org.helm.webeditor.IO.parseHelm(i,t,new JSDraw2.Point(0,0),void 0);const o=r.m;o.name=e;let s=[];if(n.placeholders)switch(n.type){case Er.Single:s=function(t,e){return e.map((e=>Nr(t,e.position,e.position,e.monomers))).reduce(((t,e)=>t.concat(e)),[])}(r.m,n.placeholders);break;case Er.Matrix:s=function(t,e){let n=[t];for(const t of e){const e=n.map((e=>Nr(e,t.position,t.position,t.monomers)));n=e.reduce(((t,e)=>t.concat(e)),[])}return n}(r.m,n.placeholders)}let a=[];n.placeholdersBreadth&&(a=function(t,e){let n=[t];for(const t of e){const e=n.map((e=>Nr(e,t.start,t.end,t.monomers)));n=e.reduce(((t,e)=>t.concat(e)),[])}return n}(r.m,n.placeholdersBreadth)),s=s.concat(a),n.keepOriginal&&(s=[o,...s]);const u=s.map((t=>[org.helm.webeditor.IO.getHelm(t),t.name]));return u}(t,n?.value??"",r),s=e.Column.fromType(e.COLUMN_TYPE.STRING,"Enumerated",o.length).init((t=>o[t][0])),a=e.DataFrame.fromColumns([s]);if(i){const t=await Zn(),n=await t.helmToAtomicLevel(s,!0,!0);n.molCol.semType=e.SEMTYPE.MOLECULE,a.columns.add(n.molCol,!1)}if(n){const t=e.Column.fromType(e.COLUMN_TYPE.STRING,n.colName,o.length).init((t=>o[t][1]));a.columns.add(t)}return a}finally{o.close()}}(n,f,r,o.toAtomicLevel.value);t.shell.addTableView(i)}}catch(t){lr(t)}},C=Tt.dialog({title:wr,showFooter:!0}).add(o.macromolecule).add(o.placeholders).add(o.enumeratorType).add(o.placeholdersBreadth).add(o.trivialNameCol).add(o.toAtomicLevel).add(o.keepOriginal).add(p).onOK((()=>{w()}));return s.push(C.onClose.subscribe((()=>{a()}))),C.history((()=>({macromolecule:o.macromolecule.stringValue,placeholders:o.placeholders.stringValue,enumeratorType:o.enumeratorType.value,placeholdersBreadth:o.placeholdersBreadth.stringValue,trivialNameCol:o.trivialNameCol.stringValue,toAtomicLevel:o.toAtomicLevel.value,keepOriginal:o.keepOriginal.value})),(t=>{o.macromolecule.stringValue=t.macromolecule,o.placeholders.stringValue=t.placeholders,o.enumeratorType.value=t.enumeratorType,o.placeholdersBreadth.stringValue=t.placeholdersBreadth,o.trivialNameCol.stringValue=t.trivialNameCol,o.toAtomicLevel.value=t.toAtomicLevel,o.keepOriginal.value=t.keepOriginal})),C}catch(t){throw a(),t}}(n,s);let a=!0;Tt.onSizeChanged(o.root).subscribe((()=>{if(a){o.inputs;const t=It()(o.root),e=(t.find("div.d4-dialog-header").get(0).offsetHeight,t.find("div.d4-dialog-footer").get(0).offsetHeight,.7*r),n=.7*i;o.root.style.width=`${Math.min(r,e)}px`,o.root.style.height=`${Math.min(i,n)}px`,o.root.style.left=`${Math.floor((r-o.root.offsetWidth)/2)}px`,o.root.style.top=`${Math.floor((i-o.root.offsetHeight)/2)}px`,a=!1}s()})),s(),$r.logger.debug("PolyToolEnumerateHelmUI: dialog before show"),o.show({width:Math.max(350,.7*r),resizable:!0}),$r.logger.debug("PolyToolEnumerateHelmUI: dialog after show")}catch(e){const[n,r]=Xn(e);t.shell.warning("To run PolyTool Enumeration, sketch the macromolecule and select monomers to vary"),$r.logger.error(n,void 0,r)}}class Pr{constructor(t){this.rawLib=t}isValid(){return this.rawLib.every((t=>"object"==typeof t&&Object.values(dr).every((e=>e in t&&"string"==typeof t[e]))))}getJsonMonomerLib(){const t=[];return this.rawLib.forEach((e=>{const n=this.prepareMonomer(e);t.push(n)})),t}prepareMonomer(t){const e={...y};Object.entries(dr).forEach((([n,r])=>{const i=t[r];e[n]=i}));let n="smiles";const r=t[dr[n]],i=new Rr(r),o=i.getCappedSmiles();return e[n]=o,n="rgroups",e[n]=Dr.getRGroups(i.getNumberOfRGroups()),n="molfile",e[n]=new Fr(i.getSmilesWithRGroups()).getMolfile(),e}}class Rr{constructor(t){let e=0;this.smilesWithRGroups=t.replace(/\[R(\d+)\]/g,((t,n)=>(++e,`[${n}*]`))),this.numberOfRGroups=e}getSmilesWithRGroups(){return this.smilesWithRGroups}getCappedSmiles(){return this.capRGroups()}getNumberOfRGroups(){return this.numberOfRGroups}capRGroups(){let t=this.smilesWithRGroups.replace("[1*]","[H:1]");return t=t.replace("[2*]","[OH:2]"),t.replace("[3*]","[H:3]")}}class Dr{constructor(){}static getRGroups(t){return pr.slice(0,t)}}class Fr{constructor(t){this.smilesWithRGroups=t}getMolfile(){let t=e.chem.convert(this.smilesWithRGroups,e.chem.Notation.Smiles,e.chem.Notation.MolBlock);return t=this.restoreRGPLine(t),t=this.fixRGroupSymbols(t),t}restoreRGPLine(t){return t.replace("M ISO","M RGP")}fixRGroupSymbols(t){return t.replace(/\bR\b/g,"R#")}}class Hr{constructor(t,n){this.fileName=t,this.fileContent=n,this.validateFileType();const r=e.DataFrame.fromCsv(this.fileContent),i=this.toJson(r);this.polyToolMonomerLib=new Pr(i),this.validateContent()}async getJson(){return this.polyToolMonomerLib.getJsonMonomerLib()}toJson(t){return Array.from({length:t.rowCount},((e,n)=>t.columns.names().reduce(((e,r)=>(e[r]=t.get(r,n),e)),{})))}validateFileType(){if(!this.fileName.endsWith(".csv"))throw new Error(`File ${this.fileName} is not an CSV file`)}validateContent(){if(!this.polyToolMonomerLib.isValid())throw new Error("Invalid format of CSV monomer lib")}}var Ur;!function(t){t.table="table",t.seqCol="seqCol",t.generateHelm="generateHelm",t.chiralityEngine="chiralityEngine",t.rules="rules"}(Ur||(Ur={}));class kr{constructor(t){this.call=t,this.ruleInputs=new ar(nr,rr,".json")}async initInputs(){const t=t=>this.call.inputParams[t];this.inputs={table:(()=>{const e=t(Ur.table);return Tt.input.table(e.property.caption,{value:e.value})})(),seqCol:(()=>{const e=t(Ur.seqCol);return Tt.input.column(e.property.caption,{value:e.value,table:e.value.dataFrame})})(),generateHelm:Tt.input.forProperty(t(Ur.generateHelm).property),chiralityEngine:Tt.input.forProperty(t(Ur.chiralityEngine).property),rules:{header:Tt.inlineText([Cr]),form:await this.ruleInputs.getForm()}}}static async create(t){const e=new kr(t);return await e.initInputs(),e}async getParams(){return{table:this.inputs.table.value,seqCol:this.inputs.seqCol.value,generateHelm:this.inputs.generateHelm.value,chiralityEngine:this.inputs.chiralityEngine.value,rules:await this.ruleInputs.getActive()}}async showDialog(){const t=Tt.div([this.inputs.table,this.inputs.seqCol,this.inputs.generateHelm,this.inputs.chiralityEngine,this.inputs.rules.header,this.inputs.rules.form],{style:{minWidth:"320px"}});return new Promise(((e,n)=>{Tt.dialog({title:br}).add(t).onOK((async()=>{const t=await this.getParams(),n=(await this.call.func.prepare(t).call(!0)).getOutputParamValue();e(n)})).onCancel((()=>{n(new Error("Cancelled by user"))})).show()}))}widget(){throw new Error("not implemented")}}const $r=new Mt({debug:!0});async function Vr(){await $r.initLibData();const e=await async function(e){const n={"Mermadesynthesis:merMadeSynthesis":{tabName:"SYNTHESIZE",parameters:Yn(e)}},r={};for(const[e,i]of Object.entries(n)){let n;try{n=await t.functions.call(e,i.parameters);const o=new jn(i.tabName,n);o.initView(),r[i.tabName]=()=>o.getView()}catch(t){console.warn(`Plugin ${e} not loaded, reason:`,t);continue}}return r}($r);if(!e)throw new Error("External app view factories not loaded");const n=new qn(e,$r);return await n.getAppView()}async function jr(){return await ei("Oligo Translator")}async function qr(){return await ei("Oligo Pattern")}async function Gr(){return await ei("Oligo Structure")}async function Wr(){return await $r.initLibData(),$r}function zr(){const t=$r.monomerLibWrapper.getCodesToWeightsMap();return Object.fromEntries(t)}function Yr(t){const e=$r.createSequenceValidator(t),n=$r.createFormatDetector(t).getFormat();return null!==n&&e.isValidSequence(n)}function Kr(t,e){return new bn(t,e,"GCRS").convert()}function Jr(t){return wn(t,!0)}async function Qr(){await async function(){await pt((async()=>{const e=await jr();t.shell.addView(e)}))}()}async function Xr(){await async function(){await pt((async()=>{const e=await qr();t.shell.addView(e)}))}()}async function Zr(){await zn()}async function ti(t,e,n){return await $r.initLibData(),$r.createFormatConverter(t,e).convertTo(n)}async function ei(t){await $r.initLibData();const e=function(t,e){switch(t){case"Oligo Translator":return new Vn(e);case"Oligo Pattern":return new tn(e);case"Oligo Structure":return new In(e);default:throw new Error(`Unknown app name: ${t}`)}}(t,$r);return await e.getAppView()}async function ni(){await async function(){let n;try{n=await async function(){const n=[],r=()=>{for(const t of n)t.unsubscribe()};try{const i=t.shell.t.columns.bySemTypeAll(e.SEMTYPE.MACROMOLECULE);if(!i)throw new Error(gr);const o=Tt.input.column("Column",{table:t.shell.t,value:i[0],filter:t=>t.semType===e.SEMTYPE.MACROMOLECULE});o.value=o.value;const s=Tt.input.bool(mr,{value:!0});Tt.tooltip.bind(s.root,yr);const a=Tt.input.bool(vr,{value:!1}),u=new ar(nr,rr,".json"),l=Tt.inlineText([Cr]);Tt.tooltip.bind(l,"Add or specify rules to use");const c=await u.getForm(),h=Tt.div([o,s,a,l,c]),f=async()=>{try{const t=await u.getActive();await xr(o.value,s.value,a.value,t)}catch(t){lr(t)}},d=Tt.dialog(br).add(h).onOK((()=>{f()}));return n.push(d.onClose.subscribe((()=>{r()}))),d.history((()=>({generateHelm:s.value,chiralityEngine:a.value})),(t=>{s.value=t.generateHelm,a.value=t.chiralityEngine})),d}catch(t){throw r(),t}}(),n.show()}catch(e){const[n,r]=Xn(e);t.shell.warning("To run PolyTool Conversion, open a dataframe with macromolecules"),$r.logger.error(n,void 0,r)}}()}async function ri(t){const e=await kr.create(t);return await e.showDialog()}async function ii(t,e,n,r,i){return(await xr(e,n,r,i))[0]}async function oi(){await Br(t.shell.tv?.dataFrame.currentCell)}async function si(){Ar()}async function ai(n,r){var i;(function(t){t.semType=e.SEMTYPE.MACROMOLECULE,t.setTag("aligned","SEQ"),t.setTag("alphabet",A.PT)})(i=r),i.meta.units=C.SEPARATOR,i.setTag("separator","-"),await t.data.detectSemanticTypes(n)}async function li(t){const n=await t.readAsString(),r=new Hr(t.fileName,n),i=await r.getJson(),o=t.fileName.replace(/\.csv$/,".json"),s=JSON.stringify(i,null,2);e.Utils.download(o,s)}function ci(t){!function(t){try{const n=t.args.item;if(n){const r=t.args.menu;(n instanceof e.GridCell||"GridCell"==n.constructor.name)&&function(t,n){if($r.logger.debug("ST: addContextMenuForCell(), start"),t&&t.tableColumn)switch(t.tableColumn.semType){case e.SEMTYPE.MACROMOLECULE:return n.item("PolyTool-Enumerate",(()=>{Br(t.cell)})),!0;case e.SEMTYPE.MOLECULE:return n.item("PolyTool-Enumerate",(()=>{Ar(t.cell)})),!0}return!1}(n,r)&&t.preventDefault()}}catch(t){lr(t),window.$sequenceTranslator||(window.$sequenceTranslator={}),window.$sequenceTranslator.contextMenuError=t}}(t)}async function hi(){await Br()}async function fi(){Ar()}})(),sequencetranslator=r})();
3
3
  //# sourceMappingURL=package.js.map