From 9192dae0b53d6bdb43671c06e7a8884ddb9125a5 Mon Sep 17 00:00:00 2001 From: Benjamin Toby Date: Fri, 10 Jan 2025 20:16:48 +0100 Subject: [PATCH] First TS builds --- .gitignore | 1 - dist/cjs/index.js | 27 + dist/index.js | 42558 ++++++++++++++++++++++++++++++++++++++++++++ package.json | 6 +- 4 files changed, 42589 insertions(+), 3 deletions(-) create mode 100644 dist/cjs/index.js create mode 100644 dist/index.js diff --git a/.gitignore b/.gitignore index 0a18bd6..d9eee62 100644 --- a/.gitignore +++ b/.gitignore @@ -90,7 +90,6 @@ out # Nuxt.js build / generate output .nuxt -dist # Gatsby files .cache/ diff --git a/dist/cjs/index.js b/dist/cjs/index.js new file mode 100644 index 0000000..cb91e8e --- /dev/null +++ b/dist/cjs/index.js @@ -0,0 +1,27 @@ +var v$=Object.create;var{getPrototypeOf:p$,defineProperty:DO,getOwnPropertyNames:u6,getOwnPropertyDescriptor:h$}=Object,c6=Object.prototype.hasOwnProperty;var X_=(_,E,R)=>{R=_!=null?v$(p$(_)):{};let N=E||!_||!_.__esModule?DO(R,"default",{value:_,enumerable:!0}):R;for(let A of u6(_))if(!c6.call(N,A))DO(N,A,{get:()=>_[A],enumerable:!0});return N},i6=new WeakMap,PT=(_)=>{var E=i6.get(_),R;if(E)return E;if(E=DO({},"__esModule",{value:!0}),_&&typeof _==="object"||typeof _==="function")u6(_).map((N)=>!c6.call(E,N)&&DO(E,N,{get:()=>_[N],enumerable:!(R=h$(_,N))||R.enumerable}));return i6.set(_,E),E},j=(_,E)=>()=>(E||_((E={exports:{}}).exports,E),E.exports);var YT=(_,E)=>{for(var R in E)DO(_,R,{get:E[R],enumerable:!0,configurable:!0,set:(N)=>E[R]=()=>N})};var dE=(_,E)=>()=>(_&&(E=_(_=0)),E);function t_(){let _=process.env.DSQL_HTTP_SCHEME,E=process.env.DSQL_LOCAL_HOST,R=process.env.DSQL_LOCAL_HOST_PORT,N=process.env.DSQL_API_REMOTE_HOST?.match(/.*\..*/)?process.env.DSQL_API_REMOTE_HOST:void 0,A=process.env.DSQL_API_REMOTE_HOST_PORT?.match(/./)?process.env.DSQL_API_REMOTE_HOST_PORT:void 0;return{host:N||E||"datasquirel.com",port:A||R||443,scheme:_?.match(/^http$/i)?l6.default:d6.default,user_id:String(process.env.DSQL_API_USER_ID||0)}}var d6,l6;var aE=dE(()=>{d6=X_(require("https")),l6=X_(require("http"))});var SI=j((HT,SO)=>{(function(){var _,E="4.17.21",R=200,N="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",A="Expected a function",L="Invalid `variable` option passed into `_.template`",U="__lodash_hash_undefined__",G=500,S="__lodash_placeholder__",C=1,Y=2,M=4,H=1,X=2,$=1,z=2,w=4,g=8,d=16,t=32,s=64,m=128,k=256,e=512,o=30,c="...",S_=800,U_=16,V_=1,K_=2,z_=3,r=1/0,A_=9007199254740991,L_=179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,P_=NaN,p_=4294967295,l_=p_-1,j_=p_>>>1,a=[["ary",m],["bind",$],["bindKey",z],["curry",g],["curryRight",d],["flip",e],["partial",t],["partialRight",s],["rearg",k]],WE="[object Arguments]",q_="[object Array]",k_="[object AsyncFunction]",n_="[object Boolean]",e_="[object Date]",V="[object DOMException]",J="[object Error]",Q="[object Function]",i="[object GeneratorFunction]",v="[object Map]",y="[object Number]",n="[object Null]",f="[object Object]",x="[object Promise]",u="[object Proxy]",b="[object RegExp]",E_="[object Set]",H_="[object String]",I_="[object Symbol]",G_="[object Undefined]",W_="[object WeakMap]",x_="[object WeakSet]",Q_="[object ArrayBuffer]",b_="[object DataView]",JE="[object Float32Array]",_1="[object Float64Array]",$1="[object Int8Array]",Z1="[object Int16Array]",LR="[object Int32Array]",QN="[object Uint8Array]",sE="[object Uint8ClampedArray]",qE="[object Uint16Array]",UE="[object Uint32Array]",EM=/\b__p \+= '';/g,RM=/\b(__p \+=) '' \+/g,NM=/(__e\(.*?\)|\b__t\)) \+\n'';/g,CD=/&(?:amp|lt|gt|quot|#39);/g,PD=/[&<>"']/g,TM=RegExp(CD.source),OM=RegExp(PD.source),AM=/<%-([\s\S]+?)%>/g,IM=/<%([\s\S]+?)%>/g,YD=/<%=([\s\S]+?)%>/g,LM=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,UM=/^\w*$/,GM=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,_U=/[\\^$.*+?()[\]{}|]/g,DM=RegExp(_U.source),EU=/^\s+/,SM=/\s/,CM=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,PM=/\{\n\/\* \[wrapped with (.+)\] \*/,YM=/,? & /,HM=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,WM=/[()=,{}\[\]\/\s]/,MM=/\\(\\)?/g,FM=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,HD=/\w*$/,BM=/^[-+]0x[0-9a-f]+$/i,VM=/^0b[01]+$/i,KM=/^\[object .+?Constructor\]$/,XM=/^0o[0-7]+$/i,JM=/^(?:0|[1-9]\d*)$/,$M=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,JA=/($^)/,ZM=/['\n\r\u2028\u2029\\]/g,$A="\\ud800-\\udfff",wM="\\u0300-\\u036f",QM="\\ufe20-\\ufe2f",zM="\\u20d0-\\u20ff",WD=wM+QM+zM,MD="\\u2700-\\u27bf",FD="a-z\\xdf-\\xf6\\xf8-\\xff",xM="\\xac\\xb1\\xd7\\xf7",qM="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",fM="\\u2000-\\u206f",jM=" \\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",BD="A-Z\\xc0-\\xd6\\xd8-\\xde",VD="\\ufe0e\\ufe0f",KD=xM+qM+fM+jM,RU="['\u2019]",vM="["+$A+"]",XD="["+KD+"]",ZA="["+WD+"]",JD="\\d+",pM="["+MD+"]",$D="["+FD+"]",ZD="[^"+$A+KD+JD+MD+FD+BD+"]",NU="\\ud83c[\\udffb-\\udfff]",hM="(?:"+ZA+"|"+NU+")",wD="[^"+$A+"]",TU="(?:\\ud83c[\\udde6-\\uddff]){2}",OU="[\\ud800-\\udbff][\\udc00-\\udfff]",ET="["+BD+"]",QD="\\u200d",zD="(?:"+$D+"|"+ZD+")",kM="(?:"+ET+"|"+ZD+")",xD="(?:"+RU+"(?:d|ll|m|re|s|t|ve))?",qD="(?:"+RU+"(?:D|LL|M|RE|S|T|VE))?",fD=hM+"?",jD="["+VD+"]?",mM="(?:"+QD+"(?:"+[wD,TU,OU].join("|")+")"+jD+fD+")*",gM="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",yM="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",vD=jD+fD+mM,bM="(?:"+[pM,TU,OU].join("|")+")"+vD,iM="(?:"+[wD+ZA+"?",ZA,TU,OU,vM].join("|")+")",uM=RegExp(RU,"g"),cM=RegExp(ZA,"g"),AU=RegExp(NU+"(?="+NU+")|"+iM+vD,"g"),dM=RegExp([ET+"?"+$D+"+"+xD+"(?="+[XD,ET,"$"].join("|")+")",kM+"+"+qD+"(?="+[XD,ET+zD,"$"].join("|")+")",ET+"?"+zD+"+"+xD,ET+"+"+qD,yM,gM,JD,bM].join("|"),"g"),lM=RegExp("["+QD+$A+WD+VD+"]"),nM=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,oM=["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"],sM=-1,DE={};DE[JE]=DE[_1]=DE[$1]=DE[Z1]=DE[LR]=DE[QN]=DE[sE]=DE[qE]=DE[UE]=!0,DE[WE]=DE[q_]=DE[Q_]=DE[n_]=DE[b_]=DE[e_]=DE[J]=DE[Q]=DE[v]=DE[y]=DE[f]=DE[b]=DE[E_]=DE[H_]=DE[W_]=!1;var GE={};GE[WE]=GE[q_]=GE[Q_]=GE[b_]=GE[n_]=GE[e_]=GE[JE]=GE[_1]=GE[$1]=GE[Z1]=GE[LR]=GE[v]=GE[y]=GE[f]=GE[b]=GE[E_]=GE[H_]=GE[I_]=GE[QN]=GE[sE]=GE[qE]=GE[UE]=!0,GE[J]=GE[Q]=GE[W_]=!1;var tM={"\xC0":"A","\xC1":"A","\xC2":"A","\xC3":"A","\xC4":"A","\xC5":"A","\xE0":"a","\xE1":"a","\xE2":"a","\xE3":"a","\xE4":"a","\xE5":"a","\xC7":"C","\xE7":"c","\xD0":"D","\xF0":"d","\xC8":"E","\xC9":"E","\xCA":"E","\xCB":"E","\xE8":"e","\xE9":"e","\xEA":"e","\xEB":"e","\xCC":"I","\xCD":"I","\xCE":"I","\xCF":"I","\xEC":"i","\xED":"i","\xEE":"i","\xEF":"i","\xD1":"N","\xF1":"n","\xD2":"O","\xD3":"O","\xD4":"O","\xD5":"O","\xD6":"O","\xD8":"O","\xF2":"o","\xF3":"o","\xF4":"o","\xF5":"o","\xF6":"o","\xF8":"o","\xD9":"U","\xDA":"U","\xDB":"U","\xDC":"U","\xF9":"u","\xFA":"u","\xFB":"u","\xFC":"u","\xDD":"Y","\xFD":"y","\xFF":"y","\xC6":"Ae","\xE6":"ae","\xDE":"Th","\xFE":"th","\xDF":"ss","\u0100":"A","\u0102":"A","\u0104":"A","\u0101":"a","\u0103":"a","\u0105":"a","\u0106":"C","\u0108":"C","\u010A":"C","\u010C":"C","\u0107":"c","\u0109":"c","\u010B":"c","\u010D":"c","\u010E":"D","\u0110":"D","\u010F":"d","\u0111":"d","\u0112":"E","\u0114":"E","\u0116":"E","\u0118":"E","\u011A":"E","\u0113":"e","\u0115":"e","\u0117":"e","\u0119":"e","\u011B":"e","\u011C":"G","\u011E":"G","\u0120":"G","\u0122":"G","\u011D":"g","\u011F":"g","\u0121":"g","\u0123":"g","\u0124":"H","\u0126":"H","\u0125":"h","\u0127":"h","\u0128":"I","\u012A":"I","\u012C":"I","\u012E":"I","\u0130":"I","\u0129":"i","\u012B":"i","\u012D":"i","\u012F":"i","\u0131":"i","\u0134":"J","\u0135":"j","\u0136":"K","\u0137":"k","\u0138":"k","\u0139":"L","\u013B":"L","\u013D":"L","\u013F":"L","\u0141":"L","\u013A":"l","\u013C":"l","\u013E":"l","\u0140":"l","\u0142":"l","\u0143":"N","\u0145":"N","\u0147":"N","\u014A":"N","\u0144":"n","\u0146":"n","\u0148":"n","\u014B":"n","\u014C":"O","\u014E":"O","\u0150":"O","\u014D":"o","\u014F":"o","\u0151":"o","\u0154":"R","\u0156":"R","\u0158":"R","\u0155":"r","\u0157":"r","\u0159":"r","\u015A":"S","\u015C":"S","\u015E":"S","\u0160":"S","\u015B":"s","\u015D":"s","\u015F":"s","\u0161":"s","\u0162":"T","\u0164":"T","\u0166":"T","\u0163":"t","\u0165":"t","\u0167":"t","\u0168":"U","\u016A":"U","\u016C":"U","\u016E":"U","\u0170":"U","\u0172":"U","\u0169":"u","\u016B":"u","\u016D":"u","\u016F":"u","\u0171":"u","\u0173":"u","\u0174":"W","\u0175":"w","\u0176":"Y","\u0177":"y","\u0178":"Y","\u0179":"Z","\u017B":"Z","\u017D":"Z","\u017A":"z","\u017C":"z","\u017E":"z","\u0132":"IJ","\u0133":"ij","\u0152":"Oe","\u0153":"oe","\u0149":"'n","\u017F":"s"},rM={"&":"&","<":"<",">":">",'"':""","'":"'"},aM={"&":"&","<":"<",">":">",""":'"',"'":"'"},eM={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},_F=parseFloat,EF=parseInt,pD=typeof global=="object"&&global&&global.Object===Object&&global,RF=typeof self=="object"&&self&&self.Object===Object&&self,hE=pD||RF||Function("return this")(),IU=typeof HT=="object"&&HT&&!HT.nodeType&&HT,w1=IU&&typeof SO=="object"&&SO&&!SO.nodeType&&SO,hD=w1&&w1.exports===IU,LU=hD&&pD.process,mR=function(){try{var p=w1&&w1.require&&w1.require("util").types;if(p)return p;return LU&&LU.binding&&LU.binding("util")}catch(__){}}(),kD=mR&&mR.isArrayBuffer,mD=mR&&mR.isDate,gD=mR&&mR.isMap,yD=mR&&mR.isRegExp,bD=mR&&mR.isSet,iD=mR&&mR.isTypedArray;function ZR(p,__,l){switch(l.length){case 0:return p.call(__);case 1:return p.call(__,l[0]);case 2:return p.call(__,l[0],l[1]);case 3:return p.call(__,l[0],l[1],l[2])}return p.apply(__,l)}function NF(p,__,l,C_){var f_=-1,s_=p==null?0:p.length;while(++f_-1}function UU(p,__,l){var C_=-1,f_=p==null?0:p.length;while(++C_-1);return l}function tD(p,__){var l=p.length;while(l--&&RT(__,p[l],0)>-1);return l}function SF(p,__){var l=p.length,C_=0;while(l--)if(p[l]===__)++C_;return C_}var CF=CU(tM),PF=CU(rM);function YF(p){return"\\"+eM[p]}function HF(p,__){return p==null?_:p[__]}function NT(p){return lM.test(p)}function WF(p){return nM.test(p)}function MF(p){var __,l=[];while(!(__=p.next()).done)l.push(__.value);return l}function WU(p){var __=-1,l=Array(p.size);return p.forEach(function(C_,f_){l[++__]=[f_,C_]}),l}function rD(p,__){return function(l){return p(__(l))}}function N1(p,__){var l=-1,C_=p.length,f_=0,s_=[];while(++l-1}function OB(O,I){var D=this.__data__,P=cA(D,O);if(P<0)++this.size,D.push([O,I]);else D[P][1]=I;return this}zN.prototype.clear=EB,zN.prototype.delete=RB,zN.prototype.get=NB,zN.prototype.has=TB,zN.prototype.set=OB;function xN(O){var I=-1,D=O==null?0:O.length;this.clear();while(++I=I?O:I}return O}function iR(O,I,D,P,W,B){var Z,q=I&C,h=I&Y,R_=I&M;if(D)Z=W?D(O,P,W,B):D(O);if(Z!==_)return Z;if(!VE(O))return O;var N_=v_(O);if(N_){if(Z=UV(O),!q)return UR(O,Z)}else{var O_=rE(O),D_=O_==Q||O_==i;if(G1(O))return j4(O,q);if(O_==f||O_==WE||D_&&!W){if(Z=h||D_?{}:a4(O),!q)return h?aB(O,VB(Z,O)):rB(O,U4(Z,O))}else{if(!GE[O_])return W?O:{};Z=GV(O,O_,q)}}B||(B=new eR);var B_=B.get(O);if(B_)return B_;if(B.set(O,Z),w6(O))O.forEach(function(w_){Z.add(iR(w_,I,D,w_,O,B))});else if($6(O))O.forEach(function(w_,u_){Z.set(u_,iR(w_,I,D,u_,O,B))});var Z_=R_?h?uU:iU:h?DR:kE,m_=N_?_:Z_(O);return gR(m_||O,function(w_,u_){if(m_)u_=w_,w_=O[u_];RO(Z,u_,iR(w_,I,D,u_,O,B))}),Z}function KB(O){var I=kE(O);return function(D){return G4(D,O,I)}}function G4(O,I,D){var P=D.length;if(O==null)return!P;O=AE(O);while(P--){var W=D[P],B=I[W],Z=O[W];if(Z===_&&!(W in O)||!B(Z))return!1}return!0}function D4(O,I,D){if(typeof O!="function")throw new yR(A);return UO(function(){O.apply(_,D)},I)}function NO(O,I,D,P){var W=-1,B=wA,Z=!0,q=O.length,h=[],R_=I.length;if(!q)return h;if(D)I=ME(I,wR(D));if(P)B=UU,Z=!1;else if(I.length>=R)B=tT,Z=!1,I=new x1(I);_:while(++WW?0:W+D;if(P=P===_||P>W?W:h_(P),P<0)P+=W;P=D>P?0:z6(P);while(D0&&D(q))if(I>1)cE(q,I-1,D,P,W);else R1(W,q);else if(!P)W[W.length]=q}return W}var JU=g4(),P4=g4(!0);function DN(O,I){return O&&JU(O,I,kE)}function $U(O,I){return O&&P4(O,I,kE)}function lA(O,I){return E1(I,function(D){return pN(O[D])})}function f1(O,I){I=L1(I,O);var D=0,P=I.length;while(O!=null&&DI}function $B(O,I){return O!=null&&EE.call(O,I)}function ZB(O,I){return O!=null&&I in AE(O)}function wB(O,I,D){return O>=tE(I,D)&&O=120&&N_.length>=120)?new x1(Z&&N_):_}N_=O[0];var O_=-1,D_=q[0];_:while(++O_-1){if(q!==O)kA.call(q,h,1);kA.call(O,h,1)}}return O}function $4(O,I){var D=O?I.length:0,P=D-1;while(D--){var W=I[D];if(D==P||W!==B){var B=W;if(vN(W))kA.call(O,W,1);else pU(O,W)}}return O}function fU(O,I){return O+yA(O4()*(I-O+1))}function yB(O,I,D,P){var W=-1,B=jE(gA((I-O)/(D||1)),0),Z=l(B);while(B--)Z[P?B:++W]=O,O+=D;return Z}function jU(O,I){var D="";if(!O||I<1||I>A_)return D;do{if(I%2)D+=O;if(I=yA(I/2),I)O+=O}while(I);return D}function y_(O,I){return tU(E6(O,I,SR),O+"")}function bB(O){return L4(CT(O))}function iB(O,I){var D=CT(O);return NI(D,q1(I,0,D.length))}function AO(O,I,D,P){if(!VE(O))return O;I=L1(I,O);var W=-1,B=I.length,Z=B-1,q=O;while(q!=null&&++WW?0:W+I;if(D=D>W?W:D,D<0)D+=W;W=I>D?0:D-I>>>0,I>>>=0;var B=l(W);while(++P>>1,Z=O[B];if(Z!==null&&!zR(Z)&&(D?Z<=I:Z=R){var R_=I?null:RV(O);if(R_)return zA(R_);Z=!1,W=tT,h=new x1}else h=I?[]:q;_:while(++P=P?O:uR(O,I,D)}var f4=jF||function(O){return hE.clearTimeout(O)};function j4(O,I){if(I)return O.slice();var D=O.length,P=_4?_4(D):new O.constructor(D);return O.copy(P),P}function gU(O){var I=new O.constructor(O.byteLength);return new pA(I).set(new pA(O)),I}function nB(O,I){var D=I?gU(O.buffer):O.buffer;return new O.constructor(D,O.byteOffset,O.byteLength)}function oB(O){var I=new O.constructor(O.source,HD.exec(O));return I.lastIndex=O.lastIndex,I}function sB(O){return EO?AE(EO.call(O)):{}}function v4(O,I){var D=I?gU(O.buffer):O.buffer;return new O.constructor(D,O.byteOffset,O.length)}function p4(O,I){if(O!==I){var D=O!==_,P=O===null,W=O===O,B=zR(O),Z=I!==_,q=I===null,h=I===I,R_=zR(I);if(!q&&!R_&&!B&&O>I||B&&Z&&h&&!q&&!R_||P&&Z&&h||!D&&h||!W)return 1;if(!P&&!B&&!R_&&O=q)return h;var R_=D[P];return h*(R_=="desc"?-1:1)}}return O.index-I.index}function h4(O,I,D,P){var W=-1,B=O.length,Z=D.length,q=-1,h=I.length,R_=jE(B-Z,0),N_=l(h+R_),O_=!P;while(++q1?D[W-1]:_,Z=W>2?D[2]:_;if(B=O.length>3&&typeof B=="function"?(W--,B):_,Z&&NR(D[0],D[1],Z))B=W<3?_:B,W=1;I=AE(I);while(++P-1?W[B?I[Z]:Z]:_}}function i4(O){return jN(function(I){var D=I.length,P=D,W=bR.prototype.thru;if(O)I.reverse();while(P--){var B=I[P];if(typeof B!="function")throw new yR(A);if(W&&!Z&&EI(B)=="wrapper")var Z=new bR([],!0)}P=Z?P:D;while(++P1)d_.reverse();if(N_&&hq))return!1;var R_=B.get(O),N_=B.get(I);if(R_&&N_)return R_==I&&N_==O;var O_=-1,D_=!0,B_=D&X?new x1:_;B.set(O,I),B.set(I,O);while(++O_1?"& ":"")+I[P],I=I.join(D>2?", ":" "),O.replace(CM,"{\n/* [wrapped with "+I+"] */\n")}function SV(O){return v_(O)||p1(O)||!!(N4&&O&&O[N4])}function vN(O,I){var D=typeof O;return I=I==null?A_:I,!!I&&(D=="number"||D!="symbol"&&JM.test(O))&&(O>-1&&O%1==0&&O0){if(++I>=S_)return arguments[0]}else I=0;return O.apply(_,arguments)}}function NI(O,I){var D=-1,P=O.length,W=P-1;I=I===_?P:I;while(++D1?O[I-1]:_;return D=typeof D=="function"?(O.pop(),D):_,C6(O,D)});function P6(O){var I=F(O);return I.__chain__=!0,I}function XK(O,I){return I(O),O}function TI(O,I){return I(O)}var JK=jN(function(O){var I=O.length,D=I?O[0]:0,P=this.__wrapped__,W=function(B){return XU(B,O)};if(I>1||this.__actions__.length||!(P instanceof c_)||!vN(D))return this.thru(W);return P=P.slice(D,+D+(I?1:0)),P.__actions__.push({func:TI,args:[W],thisArg:_}),new bR(P,this.__chain__).thru(function(B){if(I&&!B.length)B.push(_);return B})});function $K(){return P6(this)}function ZK(){return new bR(this.value(),this.__chain__)}function wK(){if(this.__values__===_)this.__values__=Q6(this.value());var O=this.__index__>=this.__values__.length,I=O?_:this.__values__[this.__index__++];return{done:O,value:I}}function QK(){return this}function zK(O){var I,D=this;while(D instanceof uA){var P=I6(D);if(P.__index__=0,P.__values__=_,I)W.__wrapped__=P;else I=P;var W=P;D=D.__wrapped__}return W.__wrapped__=O,I}function xK(){var O=this.__wrapped__;if(O instanceof c_){var I=O;if(this.__actions__.length)I=new c_(this);return I=I.reverse(),I.__actions__.push({func:TI,args:[rU],thisArg:_}),new bR(I,this.__chain__)}return this.thru(rU)}function qK(){return x4(this.__wrapped__,this.__actions__)}var fK=tA(function(O,I,D){if(EE.call(O,D))++O[D];else qN(O,D,1)});function jK(O,I,D){var P=v_(O)?uD:XB;if(D&&NR(O,I,D))I=_;return P(O,$_(I,3))}function vK(O,I){var D=v_(O)?E1:C4;return D(O,$_(I,3))}var pK=b4(L6),hK=b4(U6);function kK(O,I){return cE(OI(O,I),1)}function mK(O,I){return cE(OI(O,I),r)}function gK(O,I,D){return D=D===_?1:h_(D),cE(OI(O,I),D)}function Y6(O,I){var D=v_(O)?gR:A1;return D(O,$_(I,3))}function H6(O,I){var D=v_(O)?TF:S4;return D(O,$_(I,3))}var yK=tA(function(O,I,D){if(EE.call(O,D))O[D].push(I);else qN(O,D,[I])});function bK(O,I,D,P){O=GR(O)?O:CT(O),D=D&&!P?h_(D):0;var W=O.length;if(D<0)D=jE(W+D,0);return GI(O)?D<=W&&O.indexOf(I,D)>-1:!!W&&RT(O,I,D)>-1}var iK=y_(function(O,I,D){var P=-1,W=typeof I=="function",B=GR(O)?l(O.length):[];return A1(O,function(Z){B[++P]=W?ZR(I,Z,D):TO(Z,I,D)}),B}),uK=tA(function(O,I,D){qN(O,D,I)});function OI(O,I){var D=v_(O)?ME:F4;return D(O,$_(I,3))}function cK(O,I,D,P){if(O==null)return[];if(!v_(I))I=I==null?[]:[I];if(D=P?_:D,!v_(D))D=D==null?[]:[D];return X4(O,I,D)}var dK=tA(function(O,I,D){O[D?0:1].push(I)},function(){return[[],[]]});function lK(O,I,D){var P=v_(O)?GU:nD,W=arguments.length<3;return P(O,$_(I,4),D,W,A1)}function nK(O,I,D){var P=v_(O)?OF:nD,W=arguments.length<3;return P(O,$_(I,4),D,W,S4)}function oK(O,I){var D=v_(O)?E1:C4;return D(O,LI($_(I,3)))}function sK(O){var I=v_(O)?L4:bB;return I(O)}function tK(O,I,D){if(D?NR(O,I,D):I===_)I=1;else I=h_(I);var P=v_(O)?MB:iB;return P(O,I)}function rK(O){var I=v_(O)?FB:cB;return I(O)}function aK(O){if(O==null)return 0;if(GR(O))return GI(O)?TT(O):O.length;var I=rE(O);if(I==v||I==E_)return O.size;return zU(O).length}function eK(O,I,D){var P=v_(O)?DU:dB;if(D&&NR(O,I,D))I=_;return P(O,$_(I,3))}var _X=y_(function(O,I){if(O==null)return[];var D=I.length;if(D>1&&NR(O,I[0],I[1]))I=[];else if(D>2&&NR(I[0],I[1],I[2]))I=[I[0]];return X4(O,cE(I,1),[])}),AI=vF||function(){return hE.Date.now()};function EX(O,I){if(typeof I!="function")throw new yR(A);return O=h_(O),function(){if(--O<1)return I.apply(this,arguments)}}function W6(O,I,D){return I=D?_:I,I=O&&I==null?O.length:I,fN(O,m,_,_,_,_,I)}function M6(O,I){var D;if(typeof I!="function")throw new yR(A);return O=h_(O),function(){if(--O>0)D=I.apply(this,arguments);if(O<=1)I=_;return D}}var eU=y_(function(O,I,D){var P=$;if(D.length){var W=N1(D,DT(eU));P|=t}return fN(O,P,I,D,W)}),F6=y_(function(O,I,D){var P=$|z;if(D.length){var W=N1(D,DT(F6));P|=t}return fN(I,P,O,D,W)});function B6(O,I,D){I=D?_:I;var P=fN(O,g,_,_,_,_,_,I);return P.placeholder=B6.placeholder,P}function V6(O,I,D){I=D?_:I;var P=fN(O,d,_,_,_,_,_,I);return P.placeholder=V6.placeholder,P}function K6(O,I,D){var P,W,B,Z,q,h,R_=0,N_=!1,O_=!1,D_=!0;if(typeof O!="function")throw new yR(A);if(I=dR(I)||0,VE(D))N_=!!D.leading,O_="maxWait"in D,B=O_?jE(dR(D.maxWait)||0,I):B,D_="trailing"in D?!!D.trailing:D_;function B_(wE){var EN=P,kN=W;return P=W=_,R_=wE,Z=O.apply(kN,EN),Z}function Z_(wE){return R_=wE,q=UO(u_,I),N_?B_(wE):Z}function m_(wE){var EN=wE-h,kN=wE-R_,b6=I-EN;return O_?tE(b6,B-kN):b6}function w_(wE){var EN=wE-h,kN=wE-R_;return h===_||EN>=I||EN<0||O_&&kN>=B}function u_(){var wE=AI();if(w_(wE))return d_(wE);q=UO(u_,m_(wE))}function d_(wE){if(q=_,D_&&P)return B_(wE);return P=W=_,Z}function xR(){if(q!==_)f4(q);R_=0,P=h=W=q=_}function TR(){return q===_?Z:d_(AI())}function qR(){var wE=AI(),EN=w_(wE);if(P=arguments,W=this,h=wE,EN){if(q===_)return Z_(h);if(O_)return f4(q),q=UO(u_,I),B_(h)}if(q===_)q=UO(u_,I);return Z}return qR.cancel=xR,qR.flush=TR,qR}var RX=y_(function(O,I){return D4(O,1,I)}),NX=y_(function(O,I,D){return D4(O,dR(I)||0,D)});function TX(O){return fN(O,e)}function II(O,I){if(typeof O!="function"||I!=null&&typeof I!="function")throw new yR(A);var D=function(){var P=arguments,W=I?I.apply(this,P):P[0],B=D.cache;if(B.has(W))return B.get(W);var Z=O.apply(this,P);return D.cache=B.set(W,Z)||B,Z};return D.cache=new(II.Cache||xN),D}II.Cache=xN;function LI(O){if(typeof O!="function")throw new yR(A);return function(){var I=arguments;switch(I.length){case 0:return!O.call(this);case 1:return!O.call(this,I[0]);case 2:return!O.call(this,I[0],I[1]);case 3:return!O.call(this,I[0],I[1],I[2])}return!O.apply(this,I)}}function OX(O){return M6(2,O)}var AX=lB(function(O,I){I=I.length==1&&v_(I[0])?ME(I[0],wR($_())):ME(cE(I,1),wR($_()));var D=I.length;return y_(function(P){var W=-1,B=tE(P.length,D);while(++W=I}),p1=H4(function(){return arguments}())?H4:function(O){return $E(O)&&EE.call(O,"callee")&&!R4.call(O,"callee")},v_=l.isArray,VX=kD?wR(kD):zB;function GR(O){return O!=null&&UI(O.length)&&!pN(O)}function ZE(O){return $E(O)&&GR(O)}function KX(O){return O===!0||O===!1||$E(O)&&RR(O)==n_}var G1=hF||D0,XX=mD?wR(mD):xB;function JX(O){return $E(O)&&O.nodeType===1&&!GO(O)}function $X(O){if(O==null)return!0;if(GR(O)&&(v_(O)||typeof O=="string"||typeof O.splice=="function"||G1(O)||ST(O)||p1(O)))return!O.length;var I=rE(O);if(I==v||I==E_)return!O.size;if(LO(O))return!zU(O).length;for(var D in O)if(EE.call(O,D))return!1;return!0}function ZX(O,I){return OO(O,I)}function wX(O,I,D){D=typeof D=="function"?D:_;var P=D?D(O,I):_;return P===_?OO(O,I,_,D):!!P}function E0(O){if(!$E(O))return!1;var I=RR(O);return I==J||I==V||typeof O.message=="string"&&typeof O.name=="string"&&!GO(O)}function QX(O){return typeof O=="number"&&T4(O)}function pN(O){if(!VE(O))return!1;var I=RR(O);return I==Q||I==i||I==k_||I==u}function J6(O){return typeof O=="number"&&O==h_(O)}function UI(O){return typeof O=="number"&&O>-1&&O%1==0&&O<=A_}function VE(O){var I=typeof O;return O!=null&&(I=="object"||I=="function")}function $E(O){return O!=null&&typeof O=="object"}var $6=gD?wR(gD):fB;function zX(O,I){return O===I||QU(O,I,dU(I))}function xX(O,I,D){return D=typeof D=="function"?D:_,QU(O,I,dU(I),D)}function qX(O){return Z6(O)&&O!=+O}function fX(O){if(YV(O))throw new f_(N);return W4(O)}function jX(O){return O===null}function vX(O){return O==null}function Z6(O){return typeof O=="number"||$E(O)&&RR(O)==y}function GO(O){if(!$E(O)||RR(O)!=f)return!1;var I=hA(O);if(I===null)return!0;var D=EE.call(I,"constructor")&&I.constructor;return typeof D=="function"&&D instanceof D&&fA.call(D)==xF}var R0=yD?wR(yD):jB;function pX(O){return J6(O)&&O>=-A_&&O<=A_}var w6=bD?wR(bD):vB;function GI(O){return typeof O=="string"||!v_(O)&&$E(O)&&RR(O)==H_}function zR(O){return typeof O=="symbol"||$E(O)&&RR(O)==I_}var ST=iD?wR(iD):pB;function hX(O){return O===_}function kX(O){return $E(O)&&rE(O)==W_}function mX(O){return $E(O)&&RR(O)==x_}var gX=_I(xU),yX=_I(function(O,I){return O<=I});function Q6(O){if(!O)return[];if(GR(O))return GI(O)?aR(O):UR(O);if(rT&&O[rT])return MF(O[rT]());var I=rE(O),D=I==v?WU:I==E_?zA:CT;return D(O)}function hN(O){if(!O)return O===0?O:0;if(O=dR(O),O===r||O===-r){var I=O<0?-1:1;return I*L_}return O===O?O:0}function h_(O){var I=hN(O),D=I%1;return I===I?D?I-D:I:0}function z6(O){return O?q1(h_(O),0,p_):0}function dR(O){if(typeof O=="number")return O;if(zR(O))return P_;if(VE(O)){var I=typeof O.valueOf=="function"?O.valueOf():O;O=VE(I)?I+"":I}if(typeof O!="string")return O===0?O:+O;O=oD(O);var D=VM.test(O);return D||XM.test(O)?EF(O.slice(2),D?2:8):BM.test(O)?P_:+O}function x6(O){return SN(O,DR(O))}function bX(O){return O?q1(h_(O),-A_,A_):O===0?O:0}function _E(O){return O==null?"":QR(O)}var iX=UT(function(O,I){if(LO(I)||GR(I)){SN(I,kE(I),O);return}for(var D in I)if(EE.call(I,D))RO(O,D,I[D])}),q6=UT(function(O,I){SN(I,DR(I),O)}),DI=UT(function(O,I,D,P){SN(I,DR(I),O,P)}),uX=UT(function(O,I,D,P){SN(I,kE(I),O,P)}),cX=jN(XU);function dX(O,I){var D=LT(O);return I==null?D:U4(D,I)}var lX=y_(function(O,I){O=AE(O);var D=-1,P=I.length,W=P>2?I[2]:_;if(W&&NR(I[0],I[1],W))P=1;while(++D1),B}),SN(O,uU(O),D),P)D=iR(D,C|Y|M,NV);var W=I.length;while(W--)pU(D,I[W]);return D});function GJ(O,I){return j6(O,LI($_(I)))}var DJ=jN(function(O,I){return O==null?{}:mB(O,I)});function j6(O,I){if(O==null)return{};var D=ME(uU(O),function(P){return[P]});return I=$_(I),J4(O,D,function(P,W){return I(P,W[0])})}function SJ(O,I,D){I=L1(I,O);var P=-1,W=I.length;if(!W)W=1,O=_;while(++PI){var P=O;O=I,I=P}if(D||O%1||I%1){var W=O4();return tE(O+W*(I-O+_F("1e-"+((W+"").length-1))),I)}return fU(O,I)}var XJ=GT(function(O,I,D){return I=I.toLowerCase(),O+(D?h6(I):I)});function h6(O){return O0(_E(O).toLowerCase())}function k6(O){return O=_E(O),O&&O.replace($M,CF).replace(cM,"")}function JJ(O,I,D){O=_E(O),I=QR(I);var P=O.length;D=D===_?P:q1(h_(D),0,P);var W=D;return D-=I.length,D>=0&&O.slice(D,W)==I}function $J(O){return O=_E(O),O&&OM.test(O)?O.replace(PD,PF):O}function ZJ(O){return O=_E(O),O&&DM.test(O)?O.replace(_U,"\\$&"):O}var wJ=GT(function(O,I,D){return O+(D?"-":"")+I.toLowerCase()}),QJ=GT(function(O,I,D){return O+(D?" ":"")+I.toLowerCase()}),zJ=y4("toLowerCase");function xJ(O,I,D){O=_E(O),I=h_(I);var P=I?TT(O):0;if(!I||P>=I)return O;var W=(I-P)/2;return eA(yA(W),D)+O+eA(gA(W),D)}function qJ(O,I,D){O=_E(O),I=h_(I);var P=I?TT(O):0;return I&&P>>0,!D)return[];if(O=_E(O),O&&(typeof I=="string"||I!=null&&!R0(I))){if(I=QR(I),!I&&NT(O))return U1(aR(O),0,D)}return O.split(I,D)}var mJ=GT(function(O,I,D){return O+(D?" ":"")+O0(I)});function gJ(O,I,D){return O=_E(O),D=D==null?0:q1(h_(D),0,O.length),I=QR(I),O.slice(D,D+I.length)==I}function yJ(O,I,D){var P=F.templateSettings;if(D&&NR(O,I,D))I=_;O=_E(O),I=DI({},I,P,n4);var W=DI({},I.imports,P.imports,n4),B=kE(W),Z=HU(W,B),q,h,R_=0,N_=I.interpolate||JA,O_="__p += '",D_=MU((I.escape||JA).source+"|"+N_.source+"|"+(N_===YD?FM:JA).source+"|"+(I.evaluate||JA).source+"|$","g"),B_="//# sourceURL="+(EE.call(I,"sourceURL")?(I.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++sM+"]")+"\n";O.replace(D_,function(w_,u_,d_,xR,TR,qR){if(d_||(d_=xR),O_+=O.slice(R_,qR).replace(ZM,YF),u_)q=!0,O_+="' +\n__e("+u_+") +\n'";if(TR)h=!0,O_+="';\n"+TR+";\n__p += '";if(d_)O_+="' +\n((__t = ("+d_+")) == null ? '' : __t) +\n'";return R_=qR+w_.length,w_}),O_+="';\n";var Z_=EE.call(I,"variable")&&I.variable;if(!Z_)O_="with (obj) {\n"+O_+"\n}\n";else if(WM.test(Z_))throw new f_(L);O_=(h?O_.replace(EM,""):O_).replace(RM,"$1").replace(NM,"$1;"),O_="function("+(Z_||"obj")+") {\n"+(Z_?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(q?", __e = _.escape":"")+(h?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+O_+"return __p\n}";var m_=g6(function(){return s_(B,B_+"return "+O_).apply(_,Z)});if(m_.source=O_,E0(m_))throw m_;return m_}function bJ(O){return _E(O).toLowerCase()}function iJ(O){return _E(O).toUpperCase()}function uJ(O,I,D){if(O=_E(O),O&&(D||I===_))return oD(O);if(!O||!(I=QR(I)))return O;var P=aR(O),W=aR(I),B=sD(P,W),Z=tD(P,W)+1;return U1(P,B,Z).join("")}function cJ(O,I,D){if(O=_E(O),O&&(D||I===_))return O.slice(0,aD(O)+1);if(!O||!(I=QR(I)))return O;var P=aR(O),W=tD(P,aR(I))+1;return U1(P,0,W).join("")}function dJ(O,I,D){if(O=_E(O),O&&(D||I===_))return O.replace(EU,"");if(!O||!(I=QR(I)))return O;var P=aR(O),W=sD(P,aR(I));return U1(P,W).join("")}function lJ(O,I){var D=o,P=c;if(VE(I)){var W="separator"in I?I.separator:W;D="length"in I?h_(I.length):D,P="omission"in I?QR(I.omission):P}O=_E(O);var B=O.length;if(NT(O)){var Z=aR(O);B=Z.length}if(D>=B)return O;var q=D-TT(P);if(q<1)return P;var h=Z?U1(Z,0,q).join(""):O.slice(0,q);if(W===_)return h+P;if(Z)q+=h.length-q;if(R0(W)){if(O.slice(q).search(W)){var R_,N_=h;if(!W.global)W=MU(W.source,_E(HD.exec(W))+"g");W.lastIndex=0;while(R_=W.exec(N_))var O_=R_.index;h=h.slice(0,O_===_?q:O_)}}else if(O.indexOf(QR(W),q)!=q){var D_=h.lastIndexOf(W);if(D_>-1)h=h.slice(0,D_)}return h+P}function nJ(O){return O=_E(O),O&&TM.test(O)?O.replace(CD,KF):O}var oJ=GT(function(O,I,D){return O+(D?" ":"")+I.toUpperCase()}),O0=y4("toUpperCase");function m6(O,I,D){if(O=_E(O),I=D?_:I,I===_)return WF(O)?$F(O):LF(O);return O.match(I)||[]}var g6=y_(function(O,I){try{return ZR(O,_,I)}catch(D){return E0(D)?D:new f_(D)}}),sJ=jN(function(O,I){return gR(I,function(D){D=CN(D),qN(O,D,eU(O[D],O))}),O});function tJ(O){var I=O==null?0:O.length,D=$_();return O=!I?[]:ME(O,function(P){if(typeof P[1]!="function")throw new yR(A);return[D(P[0]),P[1]]}),y_(function(P){var W=-1;while(++WA_)return[];var D=p_,P=tE(O,p_);I=$_(I),O-=p_;var W=YU(P,I);while(++D0||I<0))return new c_(D);if(O<0)D=D.takeRight(-O);else if(O)D=D.drop(O);if(I!==_)I=h_(I),D=I<0?D.dropRight(-I):D.take(I-O);return D},c_.prototype.takeRightWhile=function(O){return this.reverse().takeWhile(O).reverse()},c_.prototype.toArray=function(){return this.take(p_)},DN(c_.prototype,function(O,I){var D=/^(?:filter|find|map|reject)|While$/.test(I),P=/^(?:head|last)$/.test(I),W=F[P?"take"+(I=="last"?"Right":""):I],B=P||/^find/.test(I);if(!W)return;F.prototype[I]=function(){var Z=this.__wrapped__,q=P?[1]:arguments,h=Z instanceof c_,R_=q[0],N_=h||v_(Z),O_=function(u_){var d_=W.apply(F,R1([u_],q));return P&&D_?d_[0]:d_};if(N_&&D&&typeof R_=="function"&&R_.length!=1)h=N_=!1;var D_=this.__chain__,B_=!!this.__actions__.length,Z_=B&&!D_,m_=h&&!B_;if(!B&&N_){Z=m_?Z:new c_(this);var w_=O.apply(Z,q);return w_.__actions__.push({func:TI,args:[O_],thisArg:_}),new bR(w_,D_)}if(Z_&&m_)return O.apply(this,q);return w_=this.thru(O_),Z_?P?w_.value()[0]:w_.value():w_}}),gR(["pop","push","shift","sort","splice","unshift"],function(O){var I=xA[O],D=/^(?:push|sort|unshift)$/.test(O)?"tap":"thru",P=/^(?:pop|shift)$/.test(O);F.prototype[O]=function(){var W=arguments;if(P&&!this.__chain__){var B=this.value();return I.apply(v_(B)?B:[],W)}return this[D](function(Z){return I.apply(v_(Z)?Z:[],W)})}}),DN(c_.prototype,function(O,I){var D=F[I];if(D){var P=D.name+"";if(!EE.call(IT,P))IT[P]=[];IT[P].push({name:I,func:D})}}),IT[rA(_,z).name]=[{name:"wrapper",func:_}],c_.prototype.clone=nF,c_.prototype.reverse=oF,c_.prototype.value=sF,F.prototype.at=JK,F.prototype.chain=$K,F.prototype.commit=ZK,F.prototype.next=wK,F.prototype.plant=zK,F.prototype.reverse=xK,F.prototype.toJSON=F.prototype.valueOf=F.prototype.value=qK,F.prototype.first=F.prototype.head,rT)F.prototype[rT]=QK;return F},T1=ZF();if(typeof define=="function"&&typeof define.amd=="object"&&define.amd)hE._=T1,define(function(){return T1});else if(w1)(w1.exports=T1)._=T1,IU._=T1;else hE._=T1}).call(HT)});async function NE({user:_,message:E,component:R,noMail:N,req:A}){let L=new Date,U=(()=>{if(!A)return null;try{let G=A.headers["x-forwarded-for"],S=A.headers["x-real-ip"],C=A.headers["cf-connecting-ip"],Y=Array.isArray(G)?G[0]:G?.split(",")[0],M=C||Y||S||A.socket.remoteAddress;if(!M)return null;return String(M)}catch(G){return null}})();try{let G=`\uD83D\uDE80 SERVER ERROR =========================== +Error Message: ${E}\nComponent: ${R}`;if(_?.id&&_?.first_name&&_?.last_name&&_?.email)G+=`\nUser Id: ${_?.id}\nUser Name: ${_?.first_name} ${_?.last_name}\nUser Email: ${_?.email}`;if(A?.url)G+=`\nURL: ${A.url}`;if(A?.body)G+=`\nRequest Body: ${JSON.stringify(A.body,null,4)}`;if(U)G+=`\nIP: ${U}`;if(G+=`\nDate: ${L.toDateString()}`,G+="\n========================================",!WT.default.existsSync("./.tmp/error.log"))WT.default.writeFileSync("./.tmp/error.log","","utf-8");let S=WT.default.readFileSync("./.tmp/error.log","utf-8");WT.default.writeFileSync("./.tmp/error.log",G),WT.default.appendFileSync("./.tmp/error.log",`\n\n\n\n\n${S}`)}catch(G){console.log("Server Error Reporting Error:",G.message)}}var WT;var CR=dE(()=>{WT=X_(require("fs"))});var MT=j((KE)=>{KE.CLIENT_LONG_PASSWORD=1;KE.CLIENT_FOUND_ROWS=2;KE.CLIENT_LONG_FLAG=4;KE.CLIENT_CONNECT_WITH_DB=8;KE.CLIENT_NO_SCHEMA=16;KE.CLIENT_COMPRESS=32;KE.CLIENT_ODBC=64;KE.CLIENT_LOCAL_FILES=128;KE.CLIENT_IGNORE_SPACE=256;KE.CLIENT_PROTOCOL_41=512;KE.CLIENT_INTERACTIVE=1024;KE.CLIENT_SSL=2048;KE.CLIENT_IGNORE_SIGPIPE=4096;KE.CLIENT_TRANSACTIONS=8192;KE.CLIENT_RESERVED=16384;KE.CLIENT_SECURE_CONNECTION=32768;KE.CLIENT_MULTI_STATEMENTS=65536;KE.CLIENT_MULTI_RESULTS=131072;KE.CLIENT_PS_MULTI_RESULTS=262144;KE.CLIENT_PLUGIN_AUTH=524288;KE.CLIENT_SSL_VERIFY_SERVER_CERT=1073741824;KE.CLIENT_REMEMBER_OPTIONS=2147483648});var S0=j((K)=>{K.BIG5_CHINESE_CI=1;K.LATIN2_CZECH_CS=2;K.DEC8_SWEDISH_CI=3;K.CP850_GENERAL_CI=4;K.LATIN1_GERMAN1_CI=5;K.HP8_ENGLISH_CI=6;K.KOI8R_GENERAL_CI=7;K.LATIN1_SWEDISH_CI=8;K.LATIN2_GENERAL_CI=9;K.SWE7_SWEDISH_CI=10;K.ASCII_GENERAL_CI=11;K.UJIS_JAPANESE_CI=12;K.SJIS_JAPANESE_CI=13;K.CP1251_BULGARIAN_CI=14;K.LATIN1_DANISH_CI=15;K.HEBREW_GENERAL_CI=16;K.TIS620_THAI_CI=18;K.EUCKR_KOREAN_CI=19;K.LATIN7_ESTONIAN_CS=20;K.LATIN2_HUNGARIAN_CI=21;K.KOI8U_GENERAL_CI=22;K.CP1251_UKRAINIAN_CI=23;K.GB2312_CHINESE_CI=24;K.GREEK_GENERAL_CI=25;K.CP1250_GENERAL_CI=26;K.LATIN2_CROATIAN_CI=27;K.GBK_CHINESE_CI=28;K.CP1257_LITHUANIAN_CI=29;K.LATIN5_TURKISH_CI=30;K.LATIN1_GERMAN2_CI=31;K.ARMSCII8_GENERAL_CI=32;K.UTF8_GENERAL_CI=33;K.CP1250_CZECH_CS=34;K.UCS2_GENERAL_CI=35;K.CP866_GENERAL_CI=36;K.KEYBCS2_GENERAL_CI=37;K.MACCE_GENERAL_CI=38;K.MACROMAN_GENERAL_CI=39;K.CP852_GENERAL_CI=40;K.LATIN7_GENERAL_CI=41;K.LATIN7_GENERAL_CS=42;K.MACCE_BIN=43;K.CP1250_CROATIAN_CI=44;K.UTF8MB4_GENERAL_CI=45;K.UTF8MB4_BIN=46;K.LATIN1_BIN=47;K.LATIN1_GENERAL_CI=48;K.LATIN1_GENERAL_CS=49;K.CP1251_BIN=50;K.CP1251_GENERAL_CI=51;K.CP1251_GENERAL_CS=52;K.MACROMAN_BIN=53;K.UTF16_GENERAL_CI=54;K.UTF16_BIN=55;K.UTF16LE_GENERAL_CI=56;K.CP1256_GENERAL_CI=57;K.CP1257_BIN=58;K.CP1257_GENERAL_CI=59;K.UTF32_GENERAL_CI=60;K.UTF32_BIN=61;K.UTF16LE_BIN=62;K.BINARY=63;K.ARMSCII8_BIN=64;K.ASCII_BIN=65;K.CP1250_BIN=66;K.CP1256_BIN=67;K.CP866_BIN=68;K.DEC8_BIN=69;K.GREEK_BIN=70;K.HEBREW_BIN=71;K.HP8_BIN=72;K.KEYBCS2_BIN=73;K.KOI8R_BIN=74;K.KOI8U_BIN=75;K.LATIN2_BIN=77;K.LATIN5_BIN=78;K.LATIN7_BIN=79;K.CP850_BIN=80;K.CP852_BIN=81;K.SWE7_BIN=82;K.UTF8_BIN=83;K.BIG5_BIN=84;K.EUCKR_BIN=85;K.GB2312_BIN=86;K.GBK_BIN=87;K.SJIS_BIN=88;K.TIS620_BIN=89;K.UCS2_BIN=90;K.UJIS_BIN=91;K.GEOSTD8_GENERAL_CI=92;K.GEOSTD8_BIN=93;K.LATIN1_SPANISH_CI=94;K.CP932_JAPANESE_CI=95;K.CP932_BIN=96;K.EUCJPMS_JAPANESE_CI=97;K.EUCJPMS_BIN=98;K.CP1250_POLISH_CI=99;K.UTF16_UNICODE_CI=101;K.UTF16_ICELANDIC_CI=102;K.UTF16_LATVIAN_CI=103;K.UTF16_ROMANIAN_CI=104;K.UTF16_SLOVENIAN_CI=105;K.UTF16_POLISH_CI=106;K.UTF16_ESTONIAN_CI=107;K.UTF16_SPANISH_CI=108;K.UTF16_SWEDISH_CI=109;K.UTF16_TURKISH_CI=110;K.UTF16_CZECH_CI=111;K.UTF16_DANISH_CI=112;K.UTF16_LITHUANIAN_CI=113;K.UTF16_SLOVAK_CI=114;K.UTF16_SPANISH2_CI=115;K.UTF16_ROMAN_CI=116;K.UTF16_PERSIAN_CI=117;K.UTF16_ESPERANTO_CI=118;K.UTF16_HUNGARIAN_CI=119;K.UTF16_SINHALA_CI=120;K.UTF16_GERMAN2_CI=121;K.UTF16_CROATIAN_MYSQL561_CI=122;K.UTF16_UNICODE_520_CI=123;K.UTF16_VIETNAMESE_CI=124;K.UCS2_UNICODE_CI=128;K.UCS2_ICELANDIC_CI=129;K.UCS2_LATVIAN_CI=130;K.UCS2_ROMANIAN_CI=131;K.UCS2_SLOVENIAN_CI=132;K.UCS2_POLISH_CI=133;K.UCS2_ESTONIAN_CI=134;K.UCS2_SPANISH_CI=135;K.UCS2_SWEDISH_CI=136;K.UCS2_TURKISH_CI=137;K.UCS2_CZECH_CI=138;K.UCS2_DANISH_CI=139;K.UCS2_LITHUANIAN_CI=140;K.UCS2_SLOVAK_CI=141;K.UCS2_SPANISH2_CI=142;K.UCS2_ROMAN_CI=143;K.UCS2_PERSIAN_CI=144;K.UCS2_ESPERANTO_CI=145;K.UCS2_HUNGARIAN_CI=146;K.UCS2_SINHALA_CI=147;K.UCS2_GERMAN2_CI=148;K.UCS2_CROATIAN_MYSQL561_CI=149;K.UCS2_UNICODE_520_CI=150;K.UCS2_VIETNAMESE_CI=151;K.UCS2_GENERAL_MYSQL500_CI=159;K.UTF32_UNICODE_CI=160;K.UTF32_ICELANDIC_CI=161;K.UTF32_LATVIAN_CI=162;K.UTF32_ROMANIAN_CI=163;K.UTF32_SLOVENIAN_CI=164;K.UTF32_POLISH_CI=165;K.UTF32_ESTONIAN_CI=166;K.UTF32_SPANISH_CI=167;K.UTF32_SWEDISH_CI=168;K.UTF32_TURKISH_CI=169;K.UTF32_CZECH_CI=170;K.UTF32_DANISH_CI=171;K.UTF32_LITHUANIAN_CI=172;K.UTF32_SLOVAK_CI=173;K.UTF32_SPANISH2_CI=174;K.UTF32_ROMAN_CI=175;K.UTF32_PERSIAN_CI=176;K.UTF32_ESPERANTO_CI=177;K.UTF32_HUNGARIAN_CI=178;K.UTF32_SINHALA_CI=179;K.UTF32_GERMAN2_CI=180;K.UTF32_CROATIAN_MYSQL561_CI=181;K.UTF32_UNICODE_520_CI=182;K.UTF32_VIETNAMESE_CI=183;K.UTF8_UNICODE_CI=192;K.UTF8_ICELANDIC_CI=193;K.UTF8_LATVIAN_CI=194;K.UTF8_ROMANIAN_CI=195;K.UTF8_SLOVENIAN_CI=196;K.UTF8_POLISH_CI=197;K.UTF8_ESTONIAN_CI=198;K.UTF8_SPANISH_CI=199;K.UTF8_SWEDISH_CI=200;K.UTF8_TURKISH_CI=201;K.UTF8_CZECH_CI=202;K.UTF8_DANISH_CI=203;K.UTF8_LITHUANIAN_CI=204;K.UTF8_SLOVAK_CI=205;K.UTF8_SPANISH2_CI=206;K.UTF8_ROMAN_CI=207;K.UTF8_PERSIAN_CI=208;K.UTF8_ESPERANTO_CI=209;K.UTF8_HUNGARIAN_CI=210;K.UTF8_SINHALA_CI=211;K.UTF8_GERMAN2_CI=212;K.UTF8_CROATIAN_MYSQL561_CI=213;K.UTF8_UNICODE_520_CI=214;K.UTF8_VIETNAMESE_CI=215;K.UTF8_GENERAL_MYSQL500_CI=223;K.UTF8MB4_UNICODE_CI=224;K.UTF8MB4_ICELANDIC_CI=225;K.UTF8MB4_LATVIAN_CI=226;K.UTF8MB4_ROMANIAN_CI=227;K.UTF8MB4_SLOVENIAN_CI=228;K.UTF8MB4_POLISH_CI=229;K.UTF8MB4_ESTONIAN_CI=230;K.UTF8MB4_SPANISH_CI=231;K.UTF8MB4_SWEDISH_CI=232;K.UTF8MB4_TURKISH_CI=233;K.UTF8MB4_CZECH_CI=234;K.UTF8MB4_DANISH_CI=235;K.UTF8MB4_LITHUANIAN_CI=236;K.UTF8MB4_SLOVAK_CI=237;K.UTF8MB4_SPANISH2_CI=238;K.UTF8MB4_ROMAN_CI=239;K.UTF8MB4_PERSIAN_CI=240;K.UTF8MB4_ESPERANTO_CI=241;K.UTF8MB4_HUNGARIAN_CI=242;K.UTF8MB4_SINHALA_CI=243;K.UTF8MB4_GERMAN2_CI=244;K.UTF8MB4_CROATIAN_MYSQL561_CI=245;K.UTF8MB4_UNICODE_520_CI=246;K.UTF8MB4_VIETNAMESE_CI=247;K.UTF8_GENERAL50_CI=253;K.ARMSCII8=K.ARMSCII8_GENERAL_CI;K.ASCII=K.ASCII_GENERAL_CI;K.BIG5=K.BIG5_CHINESE_CI;K.BINARY=K.BINARY;K.CP1250=K.CP1250_GENERAL_CI;K.CP1251=K.CP1251_GENERAL_CI;K.CP1256=K.CP1256_GENERAL_CI;K.CP1257=K.CP1257_GENERAL_CI;K.CP866=K.CP866_GENERAL_CI;K.CP850=K.CP850_GENERAL_CI;K.CP852=K.CP852_GENERAL_CI;K.CP932=K.CP932_JAPANESE_CI;K.DEC8=K.DEC8_SWEDISH_CI;K.EUCJPMS=K.EUCJPMS_JAPANESE_CI;K.EUCKR=K.EUCKR_KOREAN_CI;K.GB2312=K.GB2312_CHINESE_CI;K.GBK=K.GBK_CHINESE_CI;K.GEOSTD8=K.GEOSTD8_GENERAL_CI;K.GREEK=K.GREEK_GENERAL_CI;K.HEBREW=K.HEBREW_GENERAL_CI;K.HP8=K.HP8_ENGLISH_CI;K.KEYBCS2=K.KEYBCS2_GENERAL_CI;K.KOI8R=K.KOI8R_GENERAL_CI;K.KOI8U=K.KOI8U_GENERAL_CI;K.LATIN1=K.LATIN1_SWEDISH_CI;K.LATIN2=K.LATIN2_GENERAL_CI;K.LATIN5=K.LATIN5_TURKISH_CI;K.LATIN7=K.LATIN7_GENERAL_CI;K.MACCE=K.MACCE_GENERAL_CI;K.MACROMAN=K.MACROMAN_GENERAL_CI;K.SJIS=K.SJIS_JAPANESE_CI;K.SWE7=K.SWE7_SWEDISH_CI;K.TIS620=K.TIS620_THAI_CI;K.UCS2=K.UCS2_GENERAL_CI;K.UJIS=K.UJIS_JAPANESE_CI;K.UTF16=K.UTF16_GENERAL_CI;K.UTF16LE=K.UTF16LE_GENERAL_CI;K.UTF8=K.UTF8_GENERAL_CI;K.UTF8MB4=K.UTF8MB4_GENERAL_CI;K.UTF32=K.UTF32_GENERAL_CI});var o6=j((n6)=>{n6["Amazon RDS"]={ca:["-----BEGIN CERTIFICATE-----\nMIIDQzCCAqygAwIBAgIJAOd1tlfiGoEoMA0GCSqGSIb3DQEBBQUAMHUxCzAJBgNV\nBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdTZWF0dGxlMRMw\nEQYDVQQKEwpBbWF6b24uY29tMQwwCgYDVQQLEwNSRFMxHDAaBgNVBAMTE2F3cy5h\nbWF6b24uY29tL3Jkcy8wHhcNMTAwNDA1MjI0NDMxWhcNMTUwNDA0MjI0NDMxWjB1\nMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHU2Vh\ndHRsZTETMBEGA1UEChMKQW1hem9uLmNvbTEMMAoGA1UECxMDUkRTMRwwGgYDVQQD\nExNhd3MuYW1hem9uLmNvbS9yZHMvMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB\ngQDKhXGU7tizxUR5WaFoMTFcxNxa05PEjZaIOEN5ctkWrqYSRov0/nOMoZjqk8bC\nmed9vPFoQGD0OTakPs0jVe3wwmR735hyVwmKIPPsGlaBYj1O6llIpZeQVyupNx56\nUzqtiLaDzh1KcmfqP3qP2dInzBfJQKjiRudo1FWnpPt33QIDAQABo4HaMIHXMB0G\nA1UdDgQWBBT/H3x+cqSkR/ePSIinPtc4yWKe3DCBpwYDVR0jBIGfMIGcgBT/H3x+\ncqSkR/ePSIinPtc4yWKe3KF5pHcwdTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh\nc2hpbmd0b24xEDAOBgNVBAcTB1NlYXR0bGUxEzARBgNVBAoTCkFtYXpvbi5jb20x\nDDAKBgNVBAsTA1JEUzEcMBoGA1UEAxMTYXdzLmFtYXpvbi5jb20vcmRzL4IJAOd1\ntlfiGoEoMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAvguZy/BDT66x\nGfgnJlyQwnFSeVLQm9u/FIvz4huGjbq9dqnD6h/Gm56QPFdyMEyDiZWaqY6V08lY\nLTBNb4kcIc9/6pc0/ojKciP5QJRm6OiZ4vgG05nF4fYjhU7WClUx7cxq1fKjNc2J\nUCmmYqgiVkAGWRETVo+byOSDZ4swb10=\n-----END CERTIFICATE-----\n","-----BEGIN CERTIFICATE-----\nMIID9DCCAtygAwIBAgIBQjANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMCVVMx\nEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoM\nGUFtYXpvbiBXZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMx\nGzAZBgNVBAMMEkFtYXpvbiBSRFMgUm9vdCBDQTAeFw0xNTAyMDUwOTExMzFaFw0y\nMDAzMDUwOTExMzFaMIGKMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3Rv\nbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNl\ncywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEbMBkGA1UEAwwSQW1hem9uIFJE\nUyBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuD8nrZ8V\nu+VA8yVlUipCZIKPTDcOILYpUe8Tct0YeQQr0uyl018StdBsa3CjBgvwpDRq1HgF\nJi2N3+39+shCNspQeE6aYU+BHXhKhIIStt3r7gl/4NqYiDDMWKHxHq0nsGDFfArf\nAOcjZdJagOMqb3fF46flc8k2E7THTm9Sz4L7RY1WdABMuurpICLFE3oHcGdapOb9\nT53pQR+xpHW9atkcf3pf7gbO0rlKVSIoUenBlZipUlp1VZl/OD/E+TtRhDDNdI2J\nP/DSMM3aEsq6ZQkfbz/Ilml+Lx3tJYXUDmp+ZjzMPLk/+3beT8EhrwtcG3VPpvwp\nBIOqsqVVTvw/CwIDAQABo2MwYTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUw\nAwEB/zAdBgNVHQ4EFgQUTgLurD72FchM7Sz1BcGPnIQISYMwHwYDVR0jBBgwFoAU\nTgLurD72FchM7Sz1BcGPnIQISYMwDQYJKoZIhvcNAQEFBQADggEBAHZcgIio8pAm\nMjHD5cl6wKjXxScXKtXygWH2BoDMYBJF9yfyKO2jEFxYKbHePpnXB1R04zJSWAw5\n2EUuDI1pSBh9BA82/5PkuNlNeSTB3dXDD2PEPdzVWbSKvUB8ZdooV+2vngL0Zm4r\n47QPyd18yPHrRIbtBtHR/6CwKevLZ394zgExqhnekYKIqqEX41xsUV0Gm6x4vpjf\n2u6O/+YE2U+qyyxHE5Wd5oqde0oo9UUpFETJPVb6Q2cEeQib8PBAyi0i6KnF+kIV\nA9dY7IHSubtCK/i8wxMVqfd5GtbA8mmpeJFwnDvm9rBEsHybl08qlax9syEwsUYr\n/40NawZfTUU=\n-----END CERTIFICATE-----\n","-----BEGIN CERTIFICATE-----\nMIIEBjCCAu6gAwIBAgIJAMc0ZzaSUK51MA0GCSqGSIb3DQEBCwUAMIGPMQswCQYD\nVQQGEwJVUzEQMA4GA1UEBwwHU2VhdHRsZTETMBEGA1UECAwKV2FzaGluZ3RvbjEi\nMCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNlcywgSW5jLjETMBEGA1UECwwKQW1h\nem9uIFJEUzEgMB4GA1UEAwwXQW1hem9uIFJEUyBSb290IDIwMTkgQ0EwHhcNMTkw\nODIyMTcwODUwWhcNMjQwODIyMTcwODUwWjCBjzELMAkGA1UEBhMCVVMxEDAOBgNV\nBAcMB1NlYXR0bGUxEzARBgNVBAgMCldhc2hpbmd0b24xIjAgBgNVBAoMGUFtYXpv\nbiBXZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMxIDAeBgNV\nBAMMF0FtYXpvbiBSRFMgUm9vdCAyMDE5IENBMIIBIjANBgkqhkiG9w0BAQEFAAOC\nAQ8AMIIBCgKCAQEArXnF/E6/Qh+ku3hQTSKPMhQQlCpoWvnIthzX6MK3p5a0eXKZ\noWIjYcNNG6UwJjp4fUXl6glp53Jobn+tWNX88dNH2n8DVbppSwScVE2LpuL+94vY\n0EYE/XxN7svKea8YvlrqkUBKyxLxTjh+U/KrGOaHxz9v0l6ZNlDbuaZw3qIWdD/I\n6aNbGeRUVtpM6P+bWIoxVl/caQylQS6CEYUk+CpVyJSkopwJlzXT07tMoDL5WgX9\nO08KVgDNz9qP/IGtAcRduRcNioH3E9v981QO1zt/Gpb2f8NqAjUUCUZzOnij6mx9\nMcZ+9cWX88CRzR0vQODWuZscgI08NvM69Fn2SQIDAQABo2MwYTAOBgNVHQ8BAf8E\nBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUc19g2LzLA5j0Kxc0LjZa\npmD/vB8wHwYDVR0jBBgwFoAUc19g2LzLA5j0Kxc0LjZapmD/vB8wDQYJKoZIhvcN\nAQELBQADggEBAHAG7WTmyjzPRIM85rVj+fWHsLIvqpw6DObIjMWokpliCeMINZFV\nynfgBKsf1ExwbvJNzYFXW6dihnguDG9VMPpi2up/ctQTN8tm9nDKOy08uNZoofMc\nNUZxKCEkVKZv+IL4oHoeayt8egtv3ujJM6V14AstMQ6SwvwvA93EP/Ug2e4WAXHu\ncbI1NAbUgVDqp+DRdfvZkgYKryjTWd/0+1fS8X1bBZVWzl7eirNVnHbSH2ZDpNuY\n0SBd8dj5F6ld3t58ydZbrTHze7JJOd8ijySAp4/kiu9UfZWuTPABzDa/DSdz9Dk/\nzPW4CXXvhLmE02TA9/HeCw3KEHIwicNuEfw=\n-----END CERTIFICATE-----\n","-----BEGIN CERTIFICATE-----\nMIIEATCCAumgAwIBAgIBRDANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMCVVMx\nEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoM\nGUFtYXpvbiBXZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMx\nGzAZBgNVBAMMEkFtYXpvbiBSRFMgUm9vdCBDQTAeFw0xNTAyMDUyMjAzMDZaFw0y\nMDAzMDUyMjAzMDZaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3Rv\nbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNl\ncywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzElMCMGA1UEAwwcQW1hem9uIFJE\nUyBhcC1ub3J0aGVhc3QtMSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC\nggEBAMmM2B4PfTXCZjbZMWiDPyxvk/eeNwIRJAhfzesiGUiLozX6CRy3rwC1ZOPV\nAcQf0LB+O8wY88C/cV+d4Q2nBDmnk+Vx7o2MyMh343r5rR3Na+4izd89tkQVt0WW\nvO21KRH5i8EuBjinboOwAwu6IJ+HyiQiM0VjgjrmEr/YzFPL8MgHD/YUHehqjACn\nC0+B7/gu7W4qJzBL2DOf7ub2qszGtwPE+qQzkCRDwE1A4AJmVE++/FLH2Zx78Egg\nfV1sUxPtYgjGH76VyyO6GNKM6rAUMD/q5mnPASQVIXgKbupr618bnH+SWHFjBqZq\nHvDGPMtiiWII41EmGUypyt5AbysCAwEAAaNmMGQwDgYDVR0PAQH/BAQDAgEGMBIG\nA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFIiKM0Q6n1K4EmLxs3ZXxINbwEwR\nMB8GA1UdIwQYMBaAFE4C7qw+9hXITO0s9QXBj5yECEmDMA0GCSqGSIb3DQEBBQUA\nA4IBAQBezGbE9Rw/k2e25iGjj5n8r+M3dlye8ORfCE/dijHtxqAKasXHgKX8I9Tw\nJkBiGWiuzqn7gO5MJ0nMMro1+gq29qjZnYX1pDHPgsRjUX8R+juRhgJ3JSHijRbf\n4qNJrnwga7pj94MhcLq9u0f6dxH6dXbyMv21T4TZMTmcFduf1KgaiVx1PEyJjC6r\nM+Ru+A0eM+jJ7uCjUoZKcpX8xkj4nmSnz9NMPog3wdOSB9cAW7XIc5mHa656wr7I\nWJxVcYNHTXIjCcng2zMKd1aCcl2KSFfy56sRfT7J5Wp69QSr+jq8KM55gw8uqAwi\nVPrXn2899T1rcTtFYFP16WXjGuc0\n-----END CERTIFICATE-----\n","-----BEGIN CERTIFICATE-----\nMIIEATCCAumgAwIBAgIBTDANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMCVVMx\nEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoM\nGUFtYXpvbiBXZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMx\nGzAZBgNVBAMMEkFtYXpvbiBSRFMgUm9vdCBDQTAeFw0xNTExMDYwMDA1NDZaFw0y\nMDAzMDUwMDA1NDZaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3Rv\nbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNl\ncywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzElMCMGA1UEAwwcQW1hem9uIFJE\nUyBhcC1ub3J0aGVhc3QtMiBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC\nggEBAKSwd+RVUzTRH0FgnbwoTK8TMm/zMT4+2BvALpAUe6YXbkisg2goycWuuWLg\njOpFBB3GtyvXZnkqi7MkDWUmj1a2kf8l2oLyoaZ+Hm9x/sV+IJzOqPvj1XVUGjP6\nyYYnPJmUYqvZeI7fEkIGdFkP2m4/sgsSGsFvpD9FK1bL1Kx2UDpYX0kHTtr18Zm/\n1oN6irqWALSmXMDydb8hE0FB2A1VFyeKE6PnoDj/Y5cPHwPPdEi6/3gkDkSaOG30\nrWeQfL3pOcKqzbHaWTxMphd0DSL/quZ64Nr+Ly65Q5PRcTrtr55ekOUziuqXwk+o\n9QpACMwcJ7ROqOznZTqTzSFVXFECAwEAAaNmMGQwDgYDVR0PAQH/BAQDAgEGMBIG\nA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFM6Nox/QWbhzWVvzoJ/y0kGpNPK+\nMB8GA1UdIwQYMBaAFE4C7qw+9hXITO0s9QXBj5yECEmDMA0GCSqGSIb3DQEBBQUA\nA4IBAQCTkWBqNvyRf3Y/W21DwFx3oT/AIWrHt0BdGZO34tavummXemTH9LZ/mqv9\naljt6ZuDtf5DEQjdsAwXMsyo03ffnP7doWm8iaF1+Mui77ot0TmTsP/deyGwukvJ\ntkxX8bZjDh+EaNauWKr+CYnniNxCQLfFtXYJsfOdVBzK3xNL+Z3ucOQRhr2helWc\nCDQgwfhP1+3pRVKqHvWCPC4R3fT7RZHuRmZ38kndv476GxRntejh+ePffif78bFI\n3rIZCPBGobrrUMycafSbyXteoGca/kA+/IqrAPlk0pWQ4aEL0yTWN2h2dnjoD7oX\nbyIuL/g9AGRh97+ssn7D6bDRPTbW\n-----END CERTIFICATE-----\n","-----BEGIN CERTIFICATE-----\nMIIEATCCAumgAwIBAgIBRTANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMCVVMx\nEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoM\nGUFtYXpvbiBXZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMx\nGzAZBgNVBAMMEkFtYXpvbiBSRFMgUm9vdCBDQTAeFw0xNTAyMDUyMjAzMTlaFw0y\nMDAzMDUyMjAzMTlaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3Rv\nbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNl\ncywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzElMCMGA1UEAwwcQW1hem9uIFJE\nUyBhcC1zb3V0aGVhc3QtMSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC\nggEBANaXElmSEYt/UtxHFsARFhSUahTf1KNJzR0Dmay6hqOXQuRVbKRwPd19u5vx\nDdF1sLT7D69IK3VDnUiQScaCv2Dpu9foZt+rLx+cpx1qiQd1UHrvqq8xPzQOqCdC\nRFStq6yVYZ69yfpfoI67AjclMOjl2Vph3ftVnqP0IgVKZdzeC7fd+umGgR9xY0Qr\nUbhd/lWdsbNvzK3f1TPWcfIKQnpvSt85PIEDJir6/nuJUKMtmJRwTymJf0i+JZ4x\n7dJa341p2kHKcHMgOPW7nJQklGBA70ytjUV6/qebS3yIugr/28mwReflg3TJzVDl\nEOvi6pqbqNbkMuEwGDCmEQIVqgkCAwEAAaNmMGQwDgYDVR0PAQH/BAQDAgEGMBIG\nA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFAu93/4k5xbWOsgdCdn+/KdiRuit\nMB8GA1UdIwQYMBaAFE4C7qw+9hXITO0s9QXBj5yECEmDMA0GCSqGSIb3DQEBBQUA\nA4IBAQBlcjSyscpPjf5+MgzMuAsCxByqUt+WFspwcMCpwdaBeHOPSQrXNqX2Sk6P\nkth6oCivA64trWo8tFMvPYlUA1FYVD5WpN0kCK+P5pD4KHlaDsXhuhClJzp/OP8t\npOyUr5109RHLxqoKB5J5m1XA7rgcFjnMxwBSWFe3/4uMk/+4T53YfCVXuc6QV3i7\nI/2LAJwFf//pTtt6fZenYfCsahnr2nvrNRNyAxcfvGZ/4Opn/mJtR6R/AjvQZHiR\nbkRNKF2GW0ueK5W4FkZVZVhhX9xh1Aj2Ollb+lbOqADaVj+AT3PoJPZ3MPQHKCXm\nxwG0LOLlRr/TfD6li1AfOVTAJXv9\n-----END CERTIFICATE-----\n","-----BEGIN CERTIFICATE-----\nMIIEATCCAumgAwIBAgIBRjANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMCVVMx\nEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoM\nGUFtYXpvbiBXZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMx\nGzAZBgNVBAMMEkFtYXpvbiBSRFMgUm9vdCBDQTAeFw0xNTAyMDUyMjAzMjRaFw0y\nMDAzMDUyMjAzMjRaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3Rv\nbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNl\ncywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzElMCMGA1UEAwwcQW1hem9uIFJE\nUyBhcC1zb3V0aGVhc3QtMiBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC\nggEBAJqBAJutz69hFOh3BtLHZTbwE8eejGGKayn9hu98YMDPzWzGXWCmW+ZYWELA\ncY3cNWNF8K4FqKXFr2ssorBYim1UtYFX8yhydT2hMD5zgQ2sCGUpuidijuPA6zaq\nZ3tdhVR94f0q8mpwpv2zqR9PcqaGDx2VR1x773FupRPRo7mEW1vC3IptHCQlP/zE\n7jQiLl28bDIH2567xg7e7E9WnZToRnhlYdTaDaJsHTzi5mwILi4cihSok7Shv/ME\nhnukvxeSPUpaVtFaBhfBqq055ePq9I+Ns4KGreTKMhU0O9fkkaBaBmPaFgmeX/XO\nn2AX7gMouo3mtv34iDTZ0h6YCGkCAwEAAaNmMGQwDgYDVR0PAQH/BAQDAgEGMBIG\nA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFIlQnY0KHYWn1jYumSdJYfwj/Nfw\nMB8GA1UdIwQYMBaAFE4C7qw+9hXITO0s9QXBj5yECEmDMA0GCSqGSIb3DQEBBQUA\nA4IBAQA0wVU6/l41cTzHc4azc4CDYY2Wd90DFWiH9C/mw0SgToYfCJ/5Cfi0NT/Y\nPRnk3GchychCJgoPA/k9d0//IhYEAIiIDjyFVgjbTkKV3sh4RbdldKVOUB9kumz/\nZpShplsGt3z4QQiVnKfrAgqxWDjR0I0pQKkxXa6Sjkicos9LQxVtJ0XA4ieG1E7z\nzJr+6t80wmzxvkInSaWP3xNJK9azVRTrgQZQlvkbpDbExl4mNTG66VD3bAp6t3Wa\nB49//uDdfZmPkqqbX+hsxp160OH0rxJppwO3Bh869PkDnaPEd/Pxw7PawC+li0gi\nNRV8iCEx85aFxcyOhqn0WZOasxee\n-----END CERTIFICATE-----\n","-----BEGIN CERTIFICATE-----\nMIID/zCCAuegAwIBAgIBRzANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMCVVMx\nEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoM\nGUFtYXpvbiBXZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMx\nGzAZBgNVBAMMEkFtYXpvbiBSRFMgUm9vdCBDQTAeFw0xNTAyMDUyMjAzMzFaFw0y\nMDAzMDUyMjAzMzFaMIGSMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3Rv\nbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNl\ncywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEjMCEGA1UEAwwaQW1hem9uIFJE\nUyBldS1jZW50cmFsLTEgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB\nAQDFtP2dhSLuaPOI4ZrrPWsK4OY9ocQBp3yApH1KJYmI9wpQKZG/KCH2E6Oo7JAw\nQORU519r033T+FO2Z7pFPlmz1yrxGXyHpJs8ySx3Yo5S8ncDCdZJCLmtPiq/hahg\n5/0ffexMFUCQaYicFZsrJ/cStdxUV+tSw2JQLD7UxS9J97LQWUPyyG+ZrjYVTVq+\nzudnFmNSe4QoecXMhAFTGJFQXxP7nhSL9Ao5FGgdXy7/JWeWdQIAj8ku6cBDKPa6\nY6kP+ak+In+Lye8z9qsCD/afUozfWjPR2aA4JoIZVF8dNRShIMo8l0XfgfM2q0+n\nApZWZ+BjhIO5XuoUgHS3D2YFAgMBAAGjZjBkMA4GA1UdDwEB/wQEAwIBBjASBgNV\nHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBRm4GsWIA/M6q+tK8WGHWDGh2gcyTAf\nBgNVHSMEGDAWgBROAu6sPvYVyEztLPUFwY+chAhJgzANBgkqhkiG9w0BAQUFAAOC\nAQEAHpMmeVQNqcxgfQdbDIi5UIy+E7zZykmtAygN1XQrvga9nXTis4kOTN6g5/+g\nHCx7jIXeNJzAbvg8XFqBN84Quqgpl/tQkbpco9Jh1HDs558D5NnZQxNqH5qXQ3Mm\nuPgCw0pYcPOa7bhs07i+MdVwPBsX27CFDtsgAIru8HvKxY1oTZrWnyIRo93tt/pk\nWuItVMVHjaQZVfTCow0aDUbte6Vlw82KjUFq+n2NMSCJDiDKsDDHT6BJc4AJHIq3\n/4Z52MSC9KMr0yAaaoWfW/yMEj9LliQauAgwVjArF4q78rxpfKTG9Rfd8U1BZANP\n7FrFMN0ThjfA1IvmOYcgskY5bQ==\n-----END CERTIFICATE-----\n","-----BEGIN CERTIFICATE-----\nMIID/DCCAuSgAwIBAgIBSDANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMCVVMx\nEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoM\nGUFtYXpvbiBXZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMx\nGzAZBgNVBAMMEkFtYXpvbiBSRFMgUm9vdCBDQTAeFw0xNTAyMDUyMjAzMzVaFw0y\nMDAzMDUyMjAzMzVaMIGPMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3Rv\nbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNl\ncywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEgMB4GA1UEAwwXQW1hem9uIFJE\nUyBldS13ZXN0LTEgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCx\nPdbqQ0HKRj79Pmocxvjc+P6i4Ux24kgFIl+ckiir1vzkmesc3a58gjrMlCksEObt\nYihs5IhzEq1ePT0gbfS9GYFp34Uj/MtPwlrfCBWG4d2TcrsKRHr1/EXUYhWqmdrb\nRhX8XqoRhVkbF/auzFSBhTzcGGvZpQ2KIaxRcQfcXlMVhj/pxxAjh8U4F350Fb0h\nnX1jw4/KvEreBL0Xb2lnlGTkwVxaKGSgXEnOgIyOFdOQc61vdome0+eeZsP4jqeR\nTGYJA9izJsRbe2YJxHuazD+548hsPlM3vFzKKEVURCha466rAaYAHy3rKur3HYQx\nYt+SoKcEz9PXuSGj96ejAgMBAAGjZjBkMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMB\nAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBTebg//h2oeXbZjQ4uuoiuLYzuiPDAfBgNV\nHSMEGDAWgBROAu6sPvYVyEztLPUFwY+chAhJgzANBgkqhkiG9w0BAQUFAAOCAQEA\nTikPaGeZasTPw+4RBemlsyPAjtFFQLo7ddaFdORLgdEysVf8aBqndvbA6MT/v4lj\nGtEtUdF59ZcbWOrVm+fBZ2h/jYJ59dYF/xzb09nyRbdMSzB9+mkSsnOMqluq5y8o\nDY/PfP2vGhEg/2ZncRC7nlQU1Dm8F4lFWEiQ2fi7O1cW852Vmbq61RIfcYsH/9Ma\nkpgk10VZ75b8m3UhmpZ/2uRY+JEHImH5WpcTJ7wNiPNJsciZMznGtrgOnPzYco8L\ncDleOASIZifNMQi9PKOJKvi0ITz0B/imr8KBsW0YjZVJ54HMa7W1lwugSM7aMAs+\nE3Sd5lS+SHwWaOCHwhOEVA==\n-----END CERTIFICATE-----\n","-----BEGIN CERTIFICATE-----\nMIID/DCCAuSgAwIBAgIBSTANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMCVVMx\nEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoM\nGUFtYXpvbiBXZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMx\nGzAZBgNVBAMMEkFtYXpvbiBSRFMgUm9vdCBDQTAeFw0xNTAyMDUyMjAzNDBaFw0y\nMDAzMDUyMjAzNDBaMIGPMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3Rv\nbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNl\ncywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEgMB4GA1UEAwwXQW1hem9uIFJE\nUyBzYS1lYXN0LTEgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCU\nX4OBnQ5xA6TLJAiFEI6l7bUWjoVJBa/VbMdCCSs2i2dOKmqUaXu2ix2zcPILj3lZ\nGMk3d/2zvTK/cKhcFrewHUBamTeVHdEmynhMQamqNmkM4ptYzFcvEUw1TGxHT4pV\nQ6gSN7+/AJewQvyHexHo8D0+LDN0/Wa9mRm4ixCYH2CyYYJNKaZt9+EZfNu+PPS4\n8iB0TWH0DgQkbWMBfCRgolLLitAZklZ4dvdlEBS7evN1/7ttBxUK6SvkeeSx3zBl\nww3BlXqc3bvTQL0A+RRysaVyFbvtp9domFaDKZCpMmDFAN/ntx215xmQdrSt+K3F\ncXdGQYHx5q410CAclGnbAgMBAAGjZjBkMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMB\nAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBT6iVWnm/uakS+tEX2mzIfw+8JL0zAfBgNV\nHSMEGDAWgBROAu6sPvYVyEztLPUFwY+chAhJgzANBgkqhkiG9w0BAQUFAAOCAQEA\nFmDD+QuDklXn2EgShwQxV13+txPRuVdOSrutHhoCgMwFWCMtPPtBAKs6KPY7Guvw\nDpJoZSehDiOfsgMirjOWjvfkeWSNvKfjWTVneX7pZD9W5WPnsDBvTbCGezm+v87z\nb+ZM2ZMo98m/wkMcIEAgdSKilR2fuw8rLkAjhYFfs0A7tDgZ9noKwgHvoE4dsrI0\nKZYco6DlP/brASfHTPa2puBLN9McK3v+h0JaSqqm5Ro2Bh56tZkQh8AWy/miuDuK\n3+hNEVdxosxlkM1TPa1DGj0EzzK0yoeerXuH2HX7LlCrrxf6/wdKnjR12PMrLQ4A\npCqkcWw894z6bV9MAvKe6A==\n-----END CERTIFICATE-----\n","-----BEGIN CERTIFICATE-----\nMIID/DCCAuSgAwIBAgIBQzANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMCVVMx\nEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoM\nGUFtYXpvbiBXZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMx\nGzAZBgNVBAMMEkFtYXpvbiBSRFMgUm9vdCBDQTAeFw0xNTAyMDUyMTU0MDRaFw0y\nMDAzMDUyMTU0MDRaMIGPMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3Rv\nbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNl\ncywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEgMB4GA1UEAwwXQW1hem9uIFJE\nUyB1cy1lYXN0LTEgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDI\nUIuwh8NusKHk1SqPXcP7OqxY3S/M2ZyQWD3w7Bfihpyyy/fc1w0/suIpX3kbMhAV\n2ESwged2/2zSx4pVnjp/493r4luhSqQYzru78TuPt9bhJIJ51WXunZW2SWkisSaf\nUSYUzVN9ezR/bjXTumSUQaLIouJt3OHLX49s+3NAbUyOI8EdvgBQWD68H1epsC0n\nCI5s+pIktyOZ59c4DCDLQcXErQ+tNbDC++oct1ANd/q8p9URonYwGCGOBy7sbCYq\n9eVHh1Iy2M+SNXddVOGw5EuruvHoCIQyOz5Lz4zSuZA9dRbrfztNOpezCNYu6NKM\nn+hzcvdiyxv77uNm8EaxAgMBAAGjZjBkMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMB\nAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBQSQG3TmMe6Sa3KufaPBa72v4QFDzAfBgNV\nHSMEGDAWgBROAu6sPvYVyEztLPUFwY+chAhJgzANBgkqhkiG9w0BAQUFAAOCAQEA\nL/mOZfB3187xTmjOHMqN2G2oSKHBKiQLM9uv8+97qT+XR+TVsBT6b3yoPpMAGhHA\nPc7nxAF5gPpuzatx0OTLPcmYucFmfqT/1qA5WlgCnMNtczyNMH97lKFTNV7Njtek\njWEzAEQSyEWrkNpNlC4j6kMYyPzVXQeXUeZTgJ9FNnVZqmvfjip2N22tawMjrCn5\n7KN/zN65EwY2oO9XsaTwwWmBu3NrDdMbzJnbxoWcFWj4RBwanR1XjQOVNhDwmCOl\n/1Et13b8CPyj69PC8BOVU6cfTSx8WUVy0qvYOKHNY9Bqa5BDnIL3IVmUkeTlM1mt\nenRpyBj+Bk9rh/ICdiRKmA==\n-----END CERTIFICATE-----\n","-----BEGIN CERTIFICATE-----\nMIID/DCCAuSgAwIBAgIBSjANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMCVVMx\nEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoM\nGUFtYXpvbiBXZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMx\nGzAZBgNVBAMMEkFtYXpvbiBSRFMgUm9vdCBDQTAeFw0xNTAyMDUyMjAzNDVaFw0y\nMDAzMDUyMjAzNDVaMIGPMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3Rv\nbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNl\ncywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEgMB4GA1UEAwwXQW1hem9uIFJE\nUyB1cy13ZXN0LTEgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDE\nDhw+uw/ycaiIhhyu2pXFRimq0DlB8cNtIe8hdqndH8TV/TFrljNgR8QdzOgZtZ9C\nzzQ2GRpInN/qJF6slEd6wO+6TaDBQkPY+07TXNt52POFUhdVkhJXHpE2BS7Xn6J7\n7RFAOeG1IZmc2DDt+sR1BgXzUqHslQGfFYNS0/MBO4P+ya6W7IhruB1qfa4HiYQS\ndbe4MvGWnv0UzwAqdR7OF8+8/5c58YXZIXCO9riYF2ql6KNSL5cyDPcYK5VK0+Q9\nVI6vuJHSMYcF7wLePw8jtBktqAFE/wbdZiIHhZvNyiNWPPNTGUmQbaJ+TzQEHDs5\n8en+/W7JKnPyBOkxxENbAgMBAAGjZjBkMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMB\nAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBS0nw/tFR9bCjgqWTPJkyy4oOD8bzAfBgNV\nHSMEGDAWgBROAu6sPvYVyEztLPUFwY+chAhJgzANBgkqhkiG9w0BAQUFAAOCAQEA\nCXGAY3feAak6lHdqj6+YWjy6yyUnLK37bRxZDsyDVXrPRQaXRzPTzx79jvDwEb/H\nQ/bdQ7zQRWqJcbivQlwhuPJ4kWPUZgSt3JUUuqkMsDzsvj/bwIjlrEFDOdHGh0mi\neVIngFEjUXjMh+5aHPEF9BlQnB8LfVtKj18e15UDTXFa+xJPFxUR7wDzCfo4WI1m\nsUMG4q1FkGAZgsoyFPZfF8IVvgCuGdR8z30VWKklFxttlK0eGLlPAyIO0CQxPQlo\nsaNJrHf4tLOgZIWk+LpDhNd9Et5EzvJ3aURUsKY4pISPPF5WdvM9OE59bERwUErd\nnuOuQWQeeadMceZnauRzJQ==\n-----END CERTIFICATE-----\n","-----BEGIN CERTIFICATE-----\nMIID/DCCAuSgAwIBAgIBSzANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMCVVMx\nEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoM\nGUFtYXpvbiBXZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMx\nGzAZBgNVBAMMEkFtYXpvbiBSRFMgUm9vdCBDQTAeFw0xNTAyMDUyMjAzNTBaFw0y\nMDAzMDUyMjAzNTBaMIGPMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3Rv\nbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNl\ncywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEgMB4GA1UEAwwXQW1hem9uIFJE\nUyB1cy13ZXN0LTIgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDM\nH58SR48U6jyERC1vYTnub34smf5EQVXyzaTmspWGWGzT31NLNZGSDFaa7yef9kdO\nmzJsgebR5tXq6LdwlIoWkKYQ7ycUaadtVKVYdI40QcI3cHn0qLFlg2iBXmWp/B+i\nZ34VuVlCh31Uj5WmhaBoz8t/GRqh1V/aCsf3Wc6jCezH3QfuCjBpzxdOOHN6Ie2v\nxX09O5qmZTvMoRBAvPkxdaPg/Mi7fxueWTbEVk78kuFbF1jHYw8U1BLILIAhcqlq\nx4u8nl73t3O3l/soNUcIwUDK0/S+Kfqhwn9yQyPlhb4Wy3pfnZLJdkyHldktnQav\n9TB9u7KH5Lk0aAYslMLxAgMBAAGjZjBkMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMB\nAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBT8roM4lRnlFHWMPWRz0zkwFZog1jAfBgNV\nHSMEGDAWgBROAu6sPvYVyEztLPUFwY+chAhJgzANBgkqhkiG9w0BAQUFAAOCAQEA\nJwrxwgwmPtcdaU7O7WDdYa4hprpOMamI49NDzmE0s10oGrqmLwZygcWU0jT+fJ+Y\npJe1w0CVfKaeLYNsOBVW3X4ZPmffYfWBheZiaiEflq/P6t7/Eg81gaKYnZ/x1Dfa\nsUYkzPvCkXe9wEz5zdUTOCptDt89rBR9CstL9vE7WYUgiVVmBJffWbHQLtfjv6OF\nNMb0QME981kGRzc2WhgP71YS2hHd1kXtsoYP1yTu4vThSKsoN4bkiHsaC1cRkLoy\n0fFA4wpB3WloMEvCDaUvvH1LZlBXTNlwi9KtcwD4tDxkkBt4tQczKLGpQ/nF/W9n\n8YDWk3IIc1sd0bkZqoau2Q==\n-----END CERTIFICATE-----\n","-----BEGIN CERTIFICATE-----\nMIID/TCCAuWgAwIBAgIBTTANBgkqhkiG9w0BAQsFADCBijELMAkGA1UEBhMCVVMx\nEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoM\nGUFtYXpvbiBXZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMx\nGzAZBgNVBAMMEkFtYXpvbiBSRFMgUm9vdCBDQTAeFw0xNjA1MDMyMTI5MjJaFw0y\nMDAzMDUyMTI5MjJaMIGQMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3Rv\nbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNl\ncywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEhMB8GA1UEAwwYQW1hem9uIFJE\nUyBhcC1zb3V0aC0xIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA\n06eWGLE0TeqL9kyWOLkS8q0fXO97z+xyBV3DKSB2lg2GkgBz3B98MkmkeB0SZy3G\nCe4uCpCPbFKiFEdiUclOlhZsrBuCeaimxLM3Ig2wuenElO/7TqgaYHYUbT3d+VQW\nGUbLn5GRZJZe1OAClYdOWm7A1CKpuo+cVV1vxbY2nGUQSJPpVn2sT9gnwvjdE60U\nJGYU/RLCTm8zmZBvlWaNIeKDnreIc4rKn6gUnJ2cQn1ryCVleEeyc3xjYDSrjgdn\nFLYGcp9mphqVT0byeQMOk0c7RHpxrCSA0V5V6/CreFV2LteK50qcDQzDSM18vWP/\np09FoN8O7QrtOeZJzH/lmwIDAQABo2YwZDAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0T\nAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQU2i83QHuEl/d0keXF+69HNJph7cMwHwYD\nVR0jBBgwFoAUTgLurD72FchM7Sz1BcGPnIQISYMwDQYJKoZIhvcNAQELBQADggEB\nACqnH2VjApoDqoSQOky52QBwsGaj+xWYHW5Gm7EvCqvQuhWMkeBuD6YJmMvNyA9G\nI2lh6/o+sUk/RIsbYbxPRdhNPTOgDR9zsNRw6qxaHztq/CEC+mxDCLa3O1hHBaDV\nBmB3nCZb93BvO0EQSEk7aytKq/f+sjyxqOcs385gintdHGU9uM7gTZHnU9vByJsm\n/TL07Miq67X0NlhIoo3jAk+xHaeKJdxdKATQp0448P5cY20q4b8aMk1twcNaMvCP\ndG4M5doaoUA8OQ/0ukLLae/LBxLeTw04q1/a2SyFaVUX2Twbb1S3xVWwLA8vsyGr\nigXx7B5GgP+IHb6DTjPJAi0=\n-----END CERTIFICATE-----\n","-----BEGIN CERTIFICATE-----\nMIID/DCCAuSgAwIBAgIBTjANBgkqhkiG9w0BAQsFADCBijELMAkGA1UEBhMCVVMx\nEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoM\nGUFtYXpvbiBXZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMx\nGzAZBgNVBAMMEkFtYXpvbiBSRFMgUm9vdCBDQTAeFw0xNjA4MTExOTU4NDVaFw0y\nMDAzMDUxOTU4NDVaMIGPMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3Rv\nbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNl\ncywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEgMB4GA1UEAwwXQW1hem9uIFJE\nUyB1cy1lYXN0LTIgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCp\nWnnUX7wM0zzstccX+4iXKJa9GR0a2PpvB1paEX4QRCgfhEdQWDaSqyrWNgdVCKkt\n1aQkWu5j6VAC2XIG7kKoonm1ZdBVyBLqW5lXNywlaiU9yhJkwo8BR+/OqgE+PLt/\nEO1mlN0PQudja/XkExCXTO29TG2j7F/O7hox6vTyHNHc0H88zS21uPuBE+jivViS\nyzj/BkyoQ85hnkues3f9R6gCGdc+J51JbZnmgzUkvXjAEuKhAm9JksVOxcOKUYe5\nERhn0U9zjzpfbAITIkul97VVa5IxskFFTHIPJbvRKHJkiF6wTJww/tc9wm+fSCJ1\n+DbQTGZgkQ3bJrqRN29/AgMBAAGjZjBkMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMB\nAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBSAHQzUYYZbepwKEMvGdHp8wzHnfDAfBgNV\nHSMEGDAWgBROAu6sPvYVyEztLPUFwY+chAhJgzANBgkqhkiG9w0BAQsFAAOCAQEA\nMbaEzSYZ+aZeTBxf8yi0ta8K4RdwEJsEmP6IhFFQHYUtva2Cynl4Q9tZg3RMsybT\n9mlnSQQlbN/wqIIXbkrcgFcHoXG9Odm/bDtUwwwDaiEhXVfeQom3G77QHOWMTCGK\nqadwuh5msrb17JdXZoXr4PYHDKP7j0ONfAyFNER2+uecblHfRSpVq5UeF3L6ZJb8\nfSw/GtAV6an+/0r+Qm+PiI2H5XuZ4GmRJYnGMhqWhBYrY7p3jtVnKcsh39wgfUnW\nAvZEZG/yhFyAZW0Essa39LiL5VSq14Y1DOj0wgnhSY/9WHxaAo1HB1T9OeZknYbD\nfl/EGSZ0TEvZkENrXcPlVA==\n-----END CERTIFICATE-----\n","-----BEGIN CERTIFICATE-----\nMIID/zCCAuegAwIBAgIBTzANBgkqhkiG9w0BAQsFADCBijELMAkGA1UEBhMCVVMx\nEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoM\nGUFtYXpvbiBXZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMx\nGzAZBgNVBAMMEkFtYXpvbiBSRFMgUm9vdCBDQTAeFw0xNjA5MTUwMDEwMTFaFw0y\nMDAzMDUwMDEwMTFaMIGSMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3Rv\nbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNl\ncywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEjMCEGA1UEAwwaQW1hem9uIFJE\nUyBjYS1jZW50cmFsLTEgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB\nAQCZYI/iQ6DrS3ny3t1EwX1wAD+3LMgh7Fd01EW5LIuaK2kYIIQpsVKhxLCit/V5\nAGc/1qiJS1Qz9ODLTh0Na6bZW6EakRzuHJLe32KJtoFYPC7Z09UqzXrpA/XL+1hM\nP0ZmCWsU7Nn/EmvfBp9zX3dZp6P6ATrvDuYaVFr+SA7aT3FXpBroqBS1fyzUPs+W\nc6zTR6+yc4zkHX0XQxC5RH6xjgpeRkoOajA/sNo7AQF7KlWmKHbdVF44cvvAhRKZ\nXaoVs/C4GjkaAEPTCbopYdhzg+KLx9eB2BQnYLRrIOQZtRfbQI2Nbj7p3VsRuOW1\ntlcks2w1Gb0YC6w6SuIMFkl1AgMBAAGjZjBkMA4GA1UdDwEB/wQEAwIBBjASBgNV\nHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBToYWxE1lawl6Ks6NsvpbHQ3GKEtzAf\nBgNVHSMEGDAWgBROAu6sPvYVyEztLPUFwY+chAhJgzANBgkqhkiG9w0BAQsFAAOC\nAQEAG/8tQ0ooi3hoQpa5EJz0/E5VYBsAz3YxA2HoIonn0jJyG16bzB4yZt4vNQMA\nKsNlQ1uwDWYL1nz63axieUUFIxqxl1KmwfhsmLgZ0Hd2mnTPIl2Hw3uj5+wdgGBg\nagnAZ0bajsBYgD2VGQbqjdk2Qn7Fjy3LEWIvGZx4KyZ99OJ2QxB7JOPdauURAtWA\nDKYkP4LLJxtj07DSzG8kuRWb9B47uqUD+eKDIyjfjbnzGtd9HqqzYFau7EX3HVD9\n9Qhnjl7bTZ6YfAEZ3nH2t3Vc0z76XfGh47rd0pNRhMV+xpok75asKf/lNh5mcUrr\nVKwflyMkQpSbDCmcdJ90N2xEXQ==\n-----END CERTIFICATE-----\n","-----BEGIN CERTIFICATE-----\nMIID/DCCAuSgAwIBAgIBUDANBgkqhkiG9w0BAQsFADCBijELMAkGA1UEBhMCVVMx\nEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoM\nGUFtYXpvbiBXZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMx\nGzAZBgNVBAMMEkFtYXpvbiBSRFMgUm9vdCBDQTAeFw0xNjEwMTAxNzQ0NDJaFw0y\nMDAzMDUxNzQ0NDJaMIGPMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3Rv\nbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNl\ncywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEgMB4GA1UEAwwXQW1hem9uIFJE\nUyBldS13ZXN0LTIgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDO\ncttLJfubB4XMMIGWNfJISkIdCMGJyOzLiMJaiWB5GYoXKhEl7YGotpy0qklwW3BQ\na0fmVdcCLX+dIuVQ9iFK+ZcK7zwm7HtdDTCHOCKeOh2IcnU4c/VIokFi6Gn8udM6\nN/Zi5M5OGpVwLVALQU7Yctsn3c95el6MdVx6mJiIPVu7tCVZn88Z2koBQ2gq9P4O\nSb249SHFqOb03lYDsaqy1NDsznEOhaRBw7DPJFpvmw1lA3/Y6qrExRI06H2VYR2i\n7qxwDV50N58fs10n7Ye1IOxTVJsgEA7X6EkRRXqYaM39Z76R894548WHfwXWjUsi\nMEX0RS0/t1GmnUQjvevDAgMBAAGjZjBkMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMB\nAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBQBxmcuRSxERYCtNnSr5xNfySokHjAfBgNV\nHSMEGDAWgBROAu6sPvYVyEztLPUFwY+chAhJgzANBgkqhkiG9w0BAQsFAAOCAQEA\nUyCUQjsF3nUAABjfEZmpksTuUo07aT3KGYt+EMMFdejnBQ0+2lJJFGtT+CDAk1SD\nRSgfEBon5vvKEtlnTf9a3pv8WXOAkhfxnryr9FH6NiB8obISHNQNPHn0ljT2/T+I\nY6ytfRvKHa0cu3V0NXbJm2B4KEOt4QCDiFxUIX9z6eB4Kditwu05OgQh6KcogOiP\nJesWxBMXXGoDC1rIYTFO7szwDyOHlCcVXJDNsTJhc32oDWYdeIbW7o/5I+aQsrXZ\nC96HykZcgWzz6sElrQxUaT3IoMw/5nmw4uWKKnZnxgI9bY4fpQwMeBZ96iHfFxvH\nmqfEEuC7uUoPofXdBp2ObQ==\n-----END CERTIFICATE-----\n","-----BEGIN CERTIFICATE-----\nMIIECjCCAvKgAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwgZMxCzAJBgNVBAYTAlVT\nMRAwDgYDVQQHDAdTZWF0dGxlMRMwEQYDVQQIDApXYXNoaW5ndG9uMSIwIAYDVQQK\nDBlBbWF6b24gV2ViIFNlcnZpY2VzLCBJbmMuMRMwEQYDVQQLDApBbWF6b24gUkRT\nMSQwIgYDVQQDDBtBbWF6b24gUkRTIEdvdkNsb3VkIFJvb3QgQ0EwHhcNMTcwNTE5\nMjIzMTE5WhcNMjIwNTE4MTIwMDAwWjCBkzELMAkGA1UEBhMCVVMxEzARBgNVBAgM\nCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoMGUFtYXpvbiBX\nZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMxJDAiBgNVBAMM\nG0FtYXpvbiBSRFMgdXMtZ292LXdlc3QtMSBDQTCCASIwDQYJKoZIhvcNAQEBBQAD\nggEPADCCAQoCggEBAM8YZLKAzzOdNnoi7Klih26Zkj+OCpDfwx4ZYB6f8L8UoQi5\n8z9ZtIwMjiJ/kO08P1yl4gfc7YZcNFvhGruQZNat3YNpxwUpQcr4mszjuffbL4uz\n+/8FBxALdqCVOJ5Q0EVSfz3d9Bd1pUPL7ARtSpy7bn/tUPyQeI+lODYO906C0TQ3\nb9bjOsgAdBKkHfjLdsknsOZYYIzYWOJyFJJa0B11XjDUNBy/3IuC0KvDl6At0V5b\n8M6cWcKhte2hgjwTYepV+/GTadeube1z5z6mWsN5arOAQUtYDLH6Aztq9mCJzLHm\nRccBugnGl3fRLJ2VjioN8PoGoN9l9hFBy5fnFgsCAwEAAaNmMGQwDgYDVR0PAQH/\nBAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFEG7+br8KkvwPd5g\n71Rvh2stclJbMB8GA1UdIwQYMBaAFEkQz6S4NS5lOYKcDjBSuCcVpdzjMA0GCSqG\nSIb3DQEBCwUAA4IBAQBMA327u5ABmhX+aPxljoIbxnydmAFWxW6wNp5+rZrvPig8\nzDRqGQWWr7wWOIjfcWugSElYtf/m9KZHG/Z6+NG7nAoUrdcd1h/IQhb+lFQ2b5g9\nsVzQv/H2JNkfZA8fL/Ko/Tm/f9tcqe0zrGCtT+5u0Nvz35Wl8CEUKLloS5xEb3k5\n7D9IhG3fsE3vHWlWrGCk1cKry3j12wdPG5cUsug0vt34u6rdhP+FsM0tHI15Kjch\nRuUCvyQecy2ZFNAa3jmd5ycNdL63RWe8oayRBpQBxPPCbHfILxGZEdJbCH9aJ2D/\nl8oHIDnvOLdv7/cBjyYuvmprgPtu3QEkbre5Hln/\n-----END CERTIFICATE-----\n","-----BEGIN CERTIFICATE-----\nMIID/DCCAuSgAwIBAgIBUTANBgkqhkiG9w0BAQsFADCBijELMAkGA1UEBhMCVVMx\nEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoM\nGUFtYXpvbiBXZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMx\nGzAZBgNVBAMMEkFtYXpvbiBSRFMgUm9vdCBDQTAeFw0xNzA4MjUyMTM5MjZaFw0y\nMDAzMDUyMTM5MjZaMIGPMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3Rv\nbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNl\ncywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEgMB4GA1UEAwwXQW1hem9uIFJE\nUyBldS13ZXN0LTMgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC+\nxmlEC/3a4cJH+UPwXCE02lC7Zq5NHd0dn6peMeLN8agb6jW4VfSY0NydjRj2DJZ8\nK7wV6sub5NUGT1NuFmvSmdbNR2T59KX0p2dVvxmXHHtIpQ9Y8Aq3ZfhmC5q5Bqgw\ntMA1xayDi7HmoPX3R8kk9ktAZQf6lDeksCvok8idjTu9tiSpDiMwds5BjMsWfyjZ\nd13PTGGNHYVdP692BSyXzSP1Vj84nJKnciW8tAqwIiadreJt5oXyrCXi8ekUMs80\ncUTuGm3aA3Q7PB5ljJMPqz0eVddaiIvmTJ9O3Ez3Du/HpImyMzXjkFaf+oNXf/Hx\n/EW5jCRR6vEiXJcDRDS7AgMBAAGjZjBkMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMB\nAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBRZ9mRtS5fHk3ZKhG20Oack4cAqMTAfBgNV\nHSMEGDAWgBROAu6sPvYVyEztLPUFwY+chAhJgzANBgkqhkiG9w0BAQsFAAOCAQEA\nF/u/9L6ExQwD73F/bhCw7PWcwwqsK1mypIdrjdIsu0JSgwWwGCXmrIspA3n3Dqxq\nsMhAJD88s9Em7337t+naar2VyLO63MGwjj+vA4mtvQRKq8ScIpiEc7xN6g8HUMsd\ngPG9lBGfNjuAZsrGJflrko4HyuSM7zHExMjXLH+CXcv/m3lWOZwnIvlVMa4x0Tz0\nA4fklaawryngzeEjuW6zOiYCzjZtPlP8Fw0SpzppJ8VpQfrZ751RDo4yudmPqoPK\n5EUe36L8U+oYBXnC5TlYs9bpVv9o5wJQI5qA9oQE2eFWxF1E0AyZ4V5sgGUBStaX\nBjDDWul0wSo7rt1Tq7XpnA==\n-----END CERTIFICATE-----\n","-----BEGIN CERTIFICATE-----\nMIIEATCCAumgAwIBAgIBTjANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMCVVMx\nEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoM\nGUFtYXpvbiBXZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMx\nGzAZBgNVBAMMEkFtYXpvbiBSRFMgUm9vdCBDQTAeFw0xNzEyMDEwMDU1NDJaFw0y\nMDAzMDUwMDU1NDJaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3Rv\nbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNl\ncywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzElMCMGA1UEAwwcQW1hem9uIFJE\nUyBhcC1ub3J0aGVhc3QtMyBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC\nggEBAMZtQNnm/XT19mTa10ftHLzg5UhajoI65JHv4TQNdGXdsv+CQdGYU49BJ9Eu\n3bYgiEtTzR2lQe9zGMvtuJobLhOWuavzp7IixoIQcHkFHN6wJ1CvqrxgvJfBq6Hy\nEuCDCiU+PPDLUNA6XM6Qx3IpHd1wrJkjRB80dhmMSpxmRmx849uFafhN+P1QybsM\nTI0o48VON2+vj+mNuQTyLMMP8D4odSQHjaoG+zyJfJGZeAyqQyoOUOFEyQaHC3TT\n3IDSNCQlpxb9LerbCoKu79WFBBq3CS5cYpg8/fsnV2CniRBFFUumBt5z4dhw9RJU\nqlUXXO1ZyzpGd+c5v6FtrfXtnIUCAwEAAaNmMGQwDgYDVR0PAQH/BAQDAgEGMBIG\nA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFETv7ELNplYy/xTeIOInl6nzeiHg\nMB8GA1UdIwQYMBaAFE4C7qw+9hXITO0s9QXBj5yECEmDMA0GCSqGSIb3DQEBBQUA\nA4IBAQCpKxOQcd0tEKb3OtsOY8q/MPwTyustGk2Rt7t9G68idADp8IytB7M0SDRo\nwWZqynEq7orQVKdVOanhEWksNDzGp0+FPAf/KpVvdYCd7ru3+iI+V4ZEp2JFdjuZ\nZz0PIjS6AgsZqE5Ri1J+NmfmjGZCPhsHnGZiBaenX6K5VRwwwmLN6xtoqrrfR5zL\nQfBeeZNJG6KiM3R/DxJ5rAa6Fz+acrhJ60L7HprhB7SFtj1RCijau3+ZwiGmUOMr\nyKlMv+VgmzSw7o4Hbxy1WVrA6zQsTHHSGf+vkQn2PHvnFMUEu/ZLbTDYFNmTLK91\nK6o4nMsEvhBKgo4z7H1EqqxXhvN2\n-----END CERTIFICATE-----\n","-----BEGIN CERTIFICATE-----\nMIIEDjCCAvagAwIBAgIJAMM61RQn3/kdMA0GCSqGSIb3DQEBCwUAMIGTMQswCQYD\nVQQGEwJVUzEQMA4GA1UEBwwHU2VhdHRsZTETMBEGA1UECAwKV2FzaGluZ3RvbjEi\nMCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNlcywgSW5jLjETMBEGA1UECwwKQW1h\nem9uIFJEUzEkMCIGA1UEAwwbQW1hem9uIFJEUyBHb3ZDbG91ZCBSb290IENBMB4X\nDTE3MDUxOTIyMjkxMVoXDTIyMDUxODIyMjkxMVowgZMxCzAJBgNVBAYTAlVTMRAw\nDgYDVQQHDAdTZWF0dGxlMRMwEQYDVQQIDApXYXNoaW5ndG9uMSIwIAYDVQQKDBlB\nbWF6b24gV2ViIFNlcnZpY2VzLCBJbmMuMRMwEQYDVQQLDApBbWF6b24gUkRTMSQw\nIgYDVQQDDBtBbWF6b24gUkRTIEdvdkNsb3VkIFJvb3QgQ0EwggEiMA0GCSqGSIb3\nDQEBAQUAA4IBDwAwggEKAoIBAQDGS9bh1FGiJPT+GRb3C5aKypJVDC1H2gbh6n3u\nj8cUiyMXfmm+ak402zdLpSYMaxiQ7oL/B3wEmumIpRDAsQrSp3B/qEeY7ipQGOfh\nq2TXjXGIUjiJ/FaoGqkymHRLG+XkNNBtb7MRItsjlMVNELXECwSiMa3nJL2/YyHW\nnTr1+11/weeZEKgVbCUrOugFkMXnfZIBSn40j6EnRlO2u/NFU5ksK5ak2+j8raZ7\nxW7VXp9S1Tgf1IsWHjGZZZguwCkkh1tHOlHC9gVA3p63WecjrIzcrR/V27atul4m\ntn56s5NwFvYPUIx1dbC8IajLUrepVm6XOwdQCfd02DmOyjWJAgMBAAGjYzBhMA4G\nA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRJEM+kuDUu\nZTmCnA4wUrgnFaXc4zAfBgNVHSMEGDAWgBRJEM+kuDUuZTmCnA4wUrgnFaXc4zAN\nBgkqhkiG9w0BAQsFAAOCAQEAcfA7uirXsNZyI2j4AJFVtOTKOZlQwqbyNducnmlg\n/5nug9fAkwM4AgvF5bBOD1Hw6khdsccMwIj+1S7wpL+EYb/nSc8G0qe1p/9lZ/mZ\nff5g4JOa26lLuCrZDqAk4TzYnt6sQKfa5ZXVUUn0BK3okhiXS0i+NloMyaBCL7vk\nkDwkHwEqflRKfZ9/oFTcCfoiHPA7AdBtaPVr0/Kj9L7k+ouz122huqG5KqX0Zpo8\nS0IGvcd2FZjNSNPttNAK7YuBVsZ0m2nIH1SLp//00v7yAHIgytQwwB17PBcp4NXD\npCfTa27ng9mMMC2YLqWQpW4TkqjDin2ZC+5X/mbrjzTvVg==\n-----END CERTIFICATE-----\n","-----BEGIN CERTIFICATE-----\nMIIEBzCCAu+gAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwgZQxCzAJBgNVBAYTAlVT\nMRAwDgYDVQQHDAdTZWF0dGxlMRMwEQYDVQQIDApXYXNoaW5ndG9uMSIwIAYDVQQK\nDBlBbWF6b24gV2ViIFNlcnZpY2VzLCBJbmMuMRMwEQYDVQQLDApBbWF6b24gUkRT\nMSUwIwYDVQQDDBxBbWF6b24gUkRTIGFwLWVhc3QtMSBSb290IENBMB4XDTE5MDIx\nNzAyNDcwMFoXDTIyMDYwMTEyMDAwMFowgY8xCzAJBgNVBAYTAlVTMRMwEQYDVQQI\nDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMSIwIAYDVQQKDBlBbWF6b24g\nV2ViIFNlcnZpY2VzLCBJbmMuMRMwEQYDVQQLDApBbWF6b24gUkRTMSAwHgYDVQQD\nDBdBbWF6b24gUkRTIGFwLWVhc3QtMSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP\nADCCAQoCggEBAOcJAUofyJuBuPr5ISHi/Ha5ed8h3eGdzn4MBp6rytPOg9NVGRQs\nO93fNGCIKsUT6gPuk+1f1ncMTV8Y0Fdf4aqGWme+Khm3ZOP3V1IiGnVq0U2xiOmn\nSQ4Q7LoeQC4lC6zpoCHVJyDjZ4pAknQQfsXb77Togdt/tK5ahev0D+Q3gCwAoBoO\nDHKJ6t820qPi63AeGbJrsfNjLKiXlFPDUj4BGir4dUzjEeH7/hx37na1XG/3EcxP\n399cT5k7sY/CR9kctMlUyEEUNQOmhi/ly1Lgtihm3QfjL6K9aGLFNwX35Bkh9aL2\nF058u+n8DP/dPeKUAcJKiQZUmzuen5n57x8CAwEAAaNmMGQwDgYDVR0PAQH/BAQD\nAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFFlqgF4FQlb9yP6c+Q3E\nO3tXv+zOMB8GA1UdIwQYMBaAFK9T6sY/PBZVbnHcNcQXf58P4OuPMA0GCSqGSIb3\nDQEBCwUAA4IBAQDeXiS3v1z4jWAo1UvVyKDeHjtrtEH1Rida1eOXauFuEQa5tuOk\nE53Os4haZCW4mOlKjigWs4LN+uLIAe1aFXGo92nGIqyJISHJ1L+bopx/JmIbHMCZ\n0lTNJfR12yBma5VQy7vzeFku/SisKwX0Lov1oHD4MVhJoHbUJYkmAjxorcIHORvh\nI3Vj5XrgDWtLDPL8/Id/roul/L+WX5ir+PGScKBfQIIN2lWdZoqdsx8YWqhm/ikL\nC6qNieSwcvWL7C03ri0DefTQMY54r5wP33QU5hJ71JoaZI3YTeT0Nf+NRL4hM++w\nQ0veeNzBQXg1f/JxfeA39IDIX1kiCf71tGlT\n-----END CERTIFICATE-----\n","-----BEGIN CERTIFICATE-----\nMIIEDDCCAvSgAwIBAgICcEUwDQYJKoZIhvcNAQELBQAwgY8xCzAJBgNVBAYTAlVT\nMRAwDgYDVQQHDAdTZWF0dGxlMRMwEQYDVQQIDApXYXNoaW5ndG9uMSIwIAYDVQQK\nDBlBbWF6b24gV2ViIFNlcnZpY2VzLCBJbmMuMRMwEQYDVQQLDApBbWF6b24gUkRT\nMSAwHgYDVQQDDBdBbWF6b24gUkRTIFJvb3QgMjAxOSBDQTAeFw0xOTA5MTgxNjU2\nMjBaFw0yNDA4MjIxNzA4NTBaMIGZMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2Fz\naGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBT\nZXJ2aWNlcywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEqMCgGA1UEAwwhQW1h\nem9uIFJEUyBhcC1ub3J0aGVhc3QtMSAyMDE5IENBMIIBIjANBgkqhkiG9w0BAQEF\nAAOCAQ8AMIIBCgKCAQEAndtkldmHtk4TVQAyqhAvtEHSMb6pLhyKrIFved1WO3S7\n+I+bWwv9b2W/ljJxLq9kdT43bhvzonNtI4a1LAohS6bqyirmk8sFfsWT3akb+4Sx\n1sjc8Ovc9eqIWJCrUiSvv7+cS7ZTA9AgM1PxvHcsqrcUXiK3Jd/Dax9jdZE1e15s\nBEhb2OEPE+tClFZ+soj8h8Pl2Clo5OAppEzYI4LmFKtp1X/BOf62k4jviXuCSst3\nUnRJzE/CXtjmN6oZySVWSe0rQYuyqRl6//9nK40cfGKyxVnimB8XrrcxUN743Vud\nQQVU0Esm8OVTX013mXWQXJHP2c0aKkog8LOga0vobQIDAQABo2YwZDAOBgNVHQ8B\nAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQULmoOS1mFSjj+\nsnUPx4DgS3SkLFYwHwYDVR0jBBgwFoAUc19g2LzLA5j0Kxc0LjZapmD/vB8wDQYJ\nKoZIhvcNAQELBQADggEBAAkVL2P1M2/G9GM3DANVAqYOwmX0Xk58YBHQu6iiQg4j\nb4Ky/qsZIsgT7YBsZA4AOcPKQFgGTWhe9pvhmXqoN3RYltN8Vn7TbUm/ZVDoMsrM\ngwv0+TKxW1/u7s8cXYfHPiTzVSJuOogHx99kBW6b2f99GbP7O1Sv3sLq4j6lVvBX\nFiacf5LAWC925nvlTzLlBgIc3O9xDtFeAGtZcEtxZJ4fnGXiqEnN4539+nqzIyYq\nnvlgCzyvcfRAxwltrJHuuRu6Maw5AGcd2Y0saMhqOVq9KYKFKuD/927BTrbd2JVf\n2sGWyuPZPCk3gq+5pCjbD0c6DkhcMGI6WwxvM5V/zSM=\n-----END CERTIFICATE-----\n","-----BEGIN CERTIFICATE-----\nMIIEDDCCAvSgAwIBAgICOFAwDQYJKoZIhvcNAQELBQAwgY8xCzAJBgNVBAYTAlVT\nMRAwDgYDVQQHDAdTZWF0dGxlMRMwEQYDVQQIDApXYXNoaW5ndG9uMSIwIAYDVQQK\nDBlBbWF6b24gV2ViIFNlcnZpY2VzLCBJbmMuMRMwEQYDVQQLDApBbWF6b24gUkRT\nMSAwHgYDVQQDDBdBbWF6b24gUkRTIFJvb3QgMjAxOSBDQTAeFw0xOTA5MTAxNzQ2\nMjFaFw0yNDA4MjIxNzA4NTBaMIGZMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2Fz\naGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBT\nZXJ2aWNlcywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEqMCgGA1UEAwwhQW1h\nem9uIFJEUyBhcC1ub3J0aGVhc3QtMiAyMDE5IENBMIIBIjANBgkqhkiG9w0BAQEF\nAAOCAQ8AMIIBCgKCAQEAzU72e6XbaJbi4HjJoRNjKxzUEuChKQIt7k3CWzNnmjc5\n8I1MjCpa2W1iw1BYVysXSNSsLOtUsfvBZxi/1uyMn5ZCaf9aeoA9UsSkFSZBjOCN\nDpKPCmfV1zcEOvJz26+1m8WDg+8Oa60QV0ou2AU1tYcw98fOQjcAES0JXXB80P2s\n3UfkNcnDz+l4k7j4SllhFPhH6BQ4lD2NiFAP4HwoG6FeJUn45EPjzrydxjq6v5Fc\ncQ8rGuHADVXotDbEhaYhNjIrsPL+puhjWfhJjheEw8c4whRZNp6gJ/b6WEes/ZhZ\nh32DwsDsZw0BfRDUMgUn8TdecNexHUw8vQWeC181hwIDAQABo2YwZDAOBgNVHQ8B\nAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUwW9bWgkWkr0U\nlrOsq2kvIdrECDgwHwYDVR0jBBgwFoAUc19g2LzLA5j0Kxc0LjZapmD/vB8wDQYJ\nKoZIhvcNAQELBQADggEBAEugF0Gj7HVhX0ehPZoGRYRt3PBuI2YjfrrJRTZ9X5wc\n9T8oHmw07mHmNy1qqWvooNJg09bDGfB0k5goC2emDiIiGfc/kvMLI7u+eQOoMKj6\nmkfCncyRN3ty08Po45vTLBFZGUvtQmjM6yKewc4sXiASSBmQUpsMbiHRCL72M5qV\nobcJOjGcIdDTmV1BHdWT+XcjynsGjUqOvQWWhhLPrn4jWe6Xuxll75qlrpn3IrIx\nCRBv/5r7qbcQJPOgwQsyK4kv9Ly8g7YT1/vYBlR3cRsYQjccw5ceWUj2DrMVWhJ4\nprf+E3Aa4vYmLLOUUvKnDQ1k3RGNu56V0tonsQbfsaM=\n-----END CERTIFICATE-----\n","-----BEGIN CERTIFICATE-----\nMIIEDDCCAvSgAwIBAgICOYIwDQYJKoZIhvcNAQELBQAwgY8xCzAJBgNVBAYTAlVT\nMRAwDgYDVQQHDAdTZWF0dGxlMRMwEQYDVQQIDApXYXNoaW5ndG9uMSIwIAYDVQQK\nDBlBbWF6b24gV2ViIFNlcnZpY2VzLCBJbmMuMRMwEQYDVQQLDApBbWF6b24gUkRT\nMSAwHgYDVQQDDBdBbWF6b24gUkRTIFJvb3QgMjAxOSBDQTAeFw0xOTA5MTcyMDA1\nMjlaFw0yNDA4MjIxNzA4NTBaMIGZMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2Fz\naGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBT\nZXJ2aWNlcywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEqMCgGA1UEAwwhQW1h\nem9uIFJEUyBhcC1ub3J0aGVhc3QtMyAyMDE5IENBMIIBIjANBgkqhkiG9w0BAQEF\nAAOCAQ8AMIIBCgKCAQEA4dMak8W+XW8y/2F6nRiytFiA4XLwePadqWebGtlIgyCS\nkbug8Jv5w7nlMkuxOxoUeD4WhI6A9EkAn3r0REM/2f0aYnd2KPxeqS2MrtdxxHw1\nxoOxk2x0piNSlOz6yog1idsKR5Wurf94fvM9FdTrMYPPrDabbGqiBMsZZmoHLvA3\nZ+57HEV2tU0Ei3vWeGIqnNjIekS+E06KhASxrkNU5vi611UsnYZlSi0VtJsH4UGV\nLhnHl53aZL0YFO5mn/fzuNG/51qgk/6EFMMhaWInXX49Dia9FnnuWXwVwi6uX1Wn\n7kjoHi5VtmC8ZlGEHroxX2DxEr6bhJTEpcLMnoQMqwIDAQABo2YwZDAOBgNVHQ8B\nAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUsUI5Cb3SWB8+\ngv1YLN/ABPMdxSAwHwYDVR0jBBgwFoAUc19g2LzLA5j0Kxc0LjZapmD/vB8wDQYJ\nKoZIhvcNAQELBQADggEBAJAF3E9PM1uzVL8YNdzb6fwJrxxqI2shvaMVmC1mXS+w\nG0zh4v2hBZOf91l1EO0rwFD7+fxoI6hzQfMxIczh875T6vUXePKVOCOKI5wCrDad\nzQbVqbFbdhsBjF4aUilOdtw2qjjs9JwPuB0VXN4/jY7m21oKEOcnpe36+7OiSPjN\nxngYewCXKrSRqoj3mw+0w/+exYj3Wsush7uFssX18av78G+ehKPIVDXptOCP/N7W\n8iKVNeQ2QGTnu2fzWsGUSvMGyM7yqT+h1ILaT//yQS8er511aHMLc142bD4D9VSy\nDgactwPDTShK/PXqhvNey9v/sKXm4XatZvwcc8KYlW4=\n-----END CERTIFICATE-----\n","-----BEGIN CERTIFICATE-----\nMIIECDCCAvCgAwIBAgICVIYwDQYJKoZIhvcNAQELBQAwgY8xCzAJBgNVBAYTAlVT\nMRAwDgYDVQQHDAdTZWF0dGxlMRMwEQYDVQQIDApXYXNoaW5ndG9uMSIwIAYDVQQK\nDBlBbWF6b24gV2ViIFNlcnZpY2VzLCBJbmMuMRMwEQYDVQQLDApBbWF6b24gUkRT\nMSAwHgYDVQQDDBdBbWF6b24gUkRTIFJvb3QgMjAxOSBDQTAeFw0xOTA5MDQxNzEz\nMDRaFw0yNDA4MjIxNzA4NTBaMIGVMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2Fz\naGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBT\nZXJ2aWNlcywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEmMCQGA1UEAwwdQW1h\nem9uIFJEUyBhcC1zb3V0aC0xIDIwMTkgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IB\nDwAwggEKAoIBAQDUYOz1hGL42yUCrcsMSOoU8AeD/3KgZ4q7gP+vAz1WnY9K/kim\neWN/2Qqzlo3+mxSFQFyD4MyV3+CnCPnBl9Sh1G/F6kThNiJ7dEWSWBQGAB6HMDbC\nBaAsmUc1UIz8sLTL3fO+S9wYhA63Wun0Fbm/Rn2yk/4WnJAaMZcEtYf6e0KNa0LM\np/kN/70/8cD3iz3dDR8zOZFpHoCtf0ek80QqTich0A9n3JLxR6g6tpwoYviVg89e\nqCjQ4axxOkWWeusLeTJCcY6CkVyFvDAKvcUl1ytM5AiaUkXblE7zDFXRM4qMMRdt\nlPm8d3pFxh0fRYk8bIKnpmtOpz3RIctDrZZxAgMBAAGjZjBkMA4GA1UdDwEB/wQE\nAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBT99wKJftD3jb4sHoHG\ni3uGlH6W6TAfBgNVHSMEGDAWgBRzX2DYvMsDmPQrFzQuNlqmYP+8HzANBgkqhkiG\n9w0BAQsFAAOCAQEAZ17hhr3dII3hUfuHQ1hPWGrpJOX/G9dLzkprEIcCidkmRYl+\nhu1Pe3caRMh/17+qsoEErmnVq5jNY9X1GZL04IZH8YbHc7iRHw3HcWAdhN8633+K\njYEB2LbJ3vluCGnCejq9djDb6alOugdLMJzxOkHDhMZ6/gYbECOot+ph1tQuZXzD\ntZ7prRsrcuPBChHlPjmGy8M9z8u+kF196iNSUGC4lM8vLkHM7ycc1/ZOwRq9aaTe\niOghbQQyAEe03MWCyDGtSmDfr0qEk+CHN+6hPiaL8qKt4s+V9P7DeK4iW08ny8Ox\nAVS7u0OK/5+jKMAMrKwpYrBydOjTUTHScocyNw==\n-----END CERTIFICATE-----\n","-----BEGIN CERTIFICATE-----\nMIIEDDCCAvSgAwIBAgICY4kwDQYJKoZIhvcNAQELBQAwgY8xCzAJBgNVBAYTAlVT\nMRAwDgYDVQQHDAdTZWF0dGxlMRMwEQYDVQQIDApXYXNoaW5ndG9uMSIwIAYDVQQK\nDBlBbWF6b24gV2ViIFNlcnZpY2VzLCBJbmMuMRMwEQYDVQQLDApBbWF6b24gUkRT\nMSAwHgYDVQQDDBdBbWF6b24gUkRTIFJvb3QgMjAxOSBDQTAeFw0xOTA5MTMyMDEx\nNDJaFw0yNDA4MjIxNzA4NTBaMIGZMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2Fz\naGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBT\nZXJ2aWNlcywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEqMCgGA1UEAwwhQW1h\nem9uIFJEUyBhcC1zb3V0aGVhc3QtMSAyMDE5IENBMIIBIjANBgkqhkiG9w0BAQEF\nAAOCAQ8AMIIBCgKCAQEAr5u9OuLL/OF/fBNUX2kINJLzFl4DnmrhnLuSeSnBPgbb\nqddjf5EFFJBfv7IYiIWEFPDbDG5hoBwgMup5bZDbas+ZTJTotnnxVJTQ6wlhTmns\neHECcg2pqGIKGrxZfbQhlj08/4nNAPvyYCTS0bEcmQ1emuDPyvJBYDDLDU6AbCB5\n6Z7YKFQPTiCBblvvNzchjLWF9IpkqiTsPHiEt21sAdABxj9ityStV3ja/W9BfgxH\nwzABSTAQT6FbDwmQMo7dcFOPRX+hewQSic2Rn1XYjmNYzgEHisdUsH7eeXREAcTw\n61TRvaLH8AiOWBnTEJXPAe6wYfrcSd1pD0MXpoB62wIDAQABo2YwZDAOBgNVHQ8B\nAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUytwMiomQOgX5\nIchd+2lDWRUhkikwHwYDVR0jBBgwFoAUc19g2LzLA5j0Kxc0LjZapmD/vB8wDQYJ\nKoZIhvcNAQELBQADggEBACf6lRDpfCD7BFRqiWM45hqIzffIaysmVfr+Jr+fBTjP\nuYe/ba1omSrNGG23bOcT9LJ8hkQJ9d+FxUwYyICQNWOy6ejicm4z0C3VhphbTPqj\nyjpt9nG56IAcV8BcRJh4o/2IfLNzC/dVuYJV8wj7XzwlvjysenwdrJCoLadkTr1h\neIdG6Le07sB9IxrGJL9e04afk37h7c8ESGSE4E+oS4JQEi3ATq8ne1B9DQ9SasXi\nIRmhNAaISDzOPdyLXi9N9V9Lwe/DHcja7hgLGYx3UqfjhLhOKwp8HtoZORixAmOI\nHfILgNmwyugAbuZoCazSKKBhQ0wgO0WZ66ZKTMG8Oho=\n-----END CERTIFICATE-----\n","-----BEGIN CERTIFICATE-----\nMIIEDDCCAvSgAwIBAgICEkYwDQYJKoZIhvcNAQELBQAwgY8xCzAJBgNVBAYTAlVT\nMRAwDgYDVQQHDAdTZWF0dGxlMRMwEQYDVQQIDApXYXNoaW5ndG9uMSIwIAYDVQQK\nDBlBbWF6b24gV2ViIFNlcnZpY2VzLCBJbmMuMRMwEQYDVQQLDApBbWF6b24gUkRT\nMSAwHgYDVQQDDBdBbWF6b24gUkRTIFJvb3QgMjAxOSBDQTAeFw0xOTA5MTYxOTUz\nNDdaFw0yNDA4MjIxNzA4NTBaMIGZMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2Fz\naGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBT\nZXJ2aWNlcywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEqMCgGA1UEAwwhQW1h\nem9uIFJEUyBhcC1zb3V0aGVhc3QtMiAyMDE5IENBMIIBIjANBgkqhkiG9w0BAQEF\nAAOCAQ8AMIIBCgKCAQEAufodI2Flker8q7PXZG0P0vmFSlhQDw907A6eJuF/WeMo\nGHnll3b4S6nC3oRS3nGeRMHbyU2KKXDwXNb3Mheu+ox+n5eb/BJ17eoj9HbQR1cd\ngEkIciiAltf8gpMMQH4anP7TD+HNFlZnP7ii3geEJB2GGXSxgSWvUzH4etL67Zmn\nTpGDWQMB0T8lK2ziLCMF4XAC/8xDELN/buHCNuhDpxpPebhct0T+f6Arzsiswt2j\n7OeNeLLZwIZvVwAKF7zUFjC6m7/VmTQC8nidVY559D6l0UhhU0Co/txgq3HVsMOH\nPbxmQUwJEKAzQXoIi+4uZzHFZrvov/nDTNJUhC6DqwIDAQABo2YwZDAOBgNVHQ8B\nAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUwaZpaCme+EiV\nM5gcjeHZSTgOn4owHwYDVR0jBBgwFoAUc19g2LzLA5j0Kxc0LjZapmD/vB8wDQYJ\nKoZIhvcNAQELBQADggEBAAR6a2meCZuXO2TF9bGqKGtZmaah4pH2ETcEVUjkvXVz\nsl+ZKbYjrun+VkcMGGKLUjS812e7eDF726ptoku9/PZZIxlJB0isC/0OyixI8N4M\nNsEyvp52XN9QundTjkl362bomPnHAApeU0mRbMDRR2JdT70u6yAzGLGsUwMkoNnw\n1VR4XKhXHYGWo7KMvFrZ1KcjWhubxLHxZWXRulPVtGmyWg/MvE6KF+2XMLhojhUL\n+9jB3Fpn53s6KMx5tVq1x8PukHmowcZuAF8k+W4gk8Y68wIwynrdZrKRyRv6CVtR\nFZ8DeJgoNZT3y/GT254VqMxxfuy2Ccb/RInd16tEvVk=\n-----END CERTIFICATE-----\n","-----BEGIN CERTIFICATE-----\nMIIECjCCAvKgAwIBAgICEzUwDQYJKoZIhvcNAQELBQAwgY8xCzAJBgNVBAYTAlVT\nMRAwDgYDVQQHDAdTZWF0dGxlMRMwEQYDVQQIDApXYXNoaW5ndG9uMSIwIAYDVQQK\nDBlBbWF6b24gV2ViIFNlcnZpY2VzLCBJbmMuMRMwEQYDVQQLDApBbWF6b24gUkRT\nMSAwHgYDVQQDDBdBbWF6b24gUkRTIFJvb3QgMjAxOSBDQTAeFw0xOTA5MTAyMDUy\nMjVaFw0yNDA4MjIxNzA4NTBaMIGXMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2Fz\naGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBT\nZXJ2aWNlcywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEoMCYGA1UEAwwfQW1h\nem9uIFJEUyBjYS1jZW50cmFsLTEgMjAxOSBDQTCCASIwDQYJKoZIhvcNAQEBBQAD\nggEPADCCAQoCggEBAOxHqdcPSA2uBjsCP4DLSlqSoPuQ/X1kkJLusVRKiQE2zayB\nviuCBt4VB9Qsh2rW3iYGM+usDjltGnI1iUWA5KHcvHszSMkWAOYWLiMNKTlg6LCp\nXnE89tvj5dIH6U8WlDvXLdjB/h30gW9JEX7S8supsBSci2GxEzb5mRdKaDuuF/0O\nqvz4YE04pua3iZ9QwmMFuTAOYzD1M72aOpj+7Ac+YLMM61qOtU+AU6MndnQkKoQi\nqmUN2A9IFaqHFzRlSdXwKCKUA4otzmz+/N3vFwjb5F4DSsbsrMfjeHMo6o/nb6Nh\nYDb0VJxxPee6TxSuN7CQJ2FxMlFUezcoXqwqXD0CAwEAAaNmMGQwDgYDVR0PAQH/\nBAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFDGGpon9WfIpsggE\nCxHq8hZ7E2ESMB8GA1UdIwQYMBaAFHNfYNi8ywOY9CsXNC42WqZg/7wfMA0GCSqG\nSIb3DQEBCwUAA4IBAQAvpeQYEGZvoTVLgV9rd2+StPYykMsmFjWQcyn3dBTZRXC2\nlKq7QhQczMAOhEaaN29ZprjQzsA2X/UauKzLR2Uyqc2qOeO9/YOl0H3qauo8C/W9\nr8xqPbOCDLEXlOQ19fidXyyEPHEq5WFp8j+fTh+s8WOx2M7IuC0ANEetIZURYhSp\nxl9XOPRCJxOhj7JdelhpweX0BJDNHeUFi0ClnFOws8oKQ7sQEv66d5ddxqqZ3NVv\nRbCvCtEutQMOUMIuaygDlMn1anSM8N7Wndx8G6+Uy67AnhjGx7jw/0YPPxopEj6x\nJXP8j0sJbcT9K/9/fPVLNT25RvQ/93T2+IQL4Ca2\n-----END CERTIFICATE-----\n","-----BEGIN CERTIFICATE-----\nMIIECjCCAvKgAwIBAgICV2YwDQYJKoZIhvcNAQELBQAwgY8xCzAJBgNVBAYTAlVT\nMRAwDgYDVQQHDAdTZWF0dGxlMRMwEQYDVQQIDApXYXNoaW5ndG9uMSIwIAYDVQQK\nDBlBbWF6b24gV2ViIFNlcnZpY2VzLCBJbmMuMRMwEQYDVQQLDApBbWF6b24gUkRT\nMSAwHgYDVQQDDBdBbWF6b24gUkRTIFJvb3QgMjAxOSBDQTAeFw0xOTA5MTExOTM2\nMjBaFw0yNDA4MjIxNzA4NTBaMIGXMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2Fz\naGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBT\nZXJ2aWNlcywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEoMCYGA1UEAwwfQW1h\nem9uIFJEUyBldS1jZW50cmFsLTEgMjAxOSBDQTCCASIwDQYJKoZIhvcNAQEBBQAD\nggEPADCCAQoCggEBAMEx54X2pHVv86APA0RWqxxRNmdkhAyp2R1cFWumKQRofoFv\nn+SPXdkpIINpMuEIGJANozdiEz7SPsrAf8WHyD93j/ZxrdQftRcIGH41xasetKGl\nI67uans8d+pgJgBKGb/Z+B5m+UsIuEVekpvgpwKtmmaLFC/NCGuSsJoFsRqoa6Gh\nm34W6yJoY87UatddCqLY4IIXaBFsgK9Q/wYzYLbnWM6ZZvhJ52VMtdhcdzeTHNW0\n5LGuXJOF7Ahb4JkEhoo6TS2c0NxB4l4MBfBPgti+O7WjR3FfZHpt18A6Zkq6A2u6\nD/oTSL6c9/3sAaFTFgMyL3wHb2YlW0BPiljZIqECAwEAAaNmMGQwDgYDVR0PAQH/\nBAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFOcAToAc6skWffJa\nTnreaswAfrbcMB8GA1UdIwQYMBaAFHNfYNi8ywOY9CsXNC42WqZg/7wfMA0GCSqG\nSIb3DQEBCwUAA4IBAQA1d0Whc1QtspK496mFWfFEQNegLh0a9GWYlJm+Htcj5Nxt\nDAIGXb+8xrtOZFHmYP7VLCT5Zd2C+XytqseK/+s07iAr0/EPF+O2qcyQWMN5KhgE\ncXw2SwuP9FPV3i+YAm11PBVeenrmzuk9NrdHQ7TxU4v7VGhcsd2C++0EisrmquWH\nmgIfmVDGxphwoES52cY6t3fbnXmTkvENvR+h3rj+fUiSz0aSo+XZUGHPgvuEKM/W\nCBD9Smc9CBoBgvy7BgHRgRUmwtABZHFUIEjHI5rIr7ZvYn+6A0O6sogRfvVYtWFc\nqpyrW1YX8mD0VlJ8fGKM3G+aCOsiiPKDV/Uafrm+\n-----END CERTIFICATE-----\n","-----BEGIN CERTIFICATE-----\nMIIECDCCAvCgAwIBAgICGAcwDQYJKoZIhvcNAQELBQAwgY8xCzAJBgNVBAYTAlVT\nMRAwDgYDVQQHDAdTZWF0dGxlMRMwEQYDVQQIDApXYXNoaW5ndG9uMSIwIAYDVQQK\nDBlBbWF6b24gV2ViIFNlcnZpY2VzLCBJbmMuMRMwEQYDVQQLDApBbWF6b24gUkRT\nMSAwHgYDVQQDDBdBbWF6b24gUkRTIFJvb3QgMjAxOSBDQTAeFw0xOTA5MTIxODE5\nNDRaFw0yNDA4MjIxNzA4NTBaMIGVMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2Fz\naGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBT\nZXJ2aWNlcywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEmMCQGA1UEAwwdQW1h\nem9uIFJEUyBldS1ub3J0aC0xIDIwMTkgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IB\nDwAwggEKAoIBAQCiIYnhe4UNBbdBb/nQxl5giM0XoVHWNrYV5nB0YukA98+TPn9v\nAoj1RGYmtryjhrf01Kuv8SWO+Eom95L3zquoTFcE2gmxCfk7bp6qJJ3eHOJB+QUO\nXsNRh76fwDzEF1yTeZWH49oeL2xO13EAx4PbZuZpZBttBM5zAxgZkqu4uWQczFEs\nJXfla7z2fvWmGcTagX10O5C18XaFroV0ubvSyIi75ue9ykg/nlFAeB7O0Wxae88e\nuhiBEFAuLYdqWnsg3459NfV8Yi1GnaitTym6VI3tHKIFiUvkSiy0DAlAGV2iiyJE\nq+DsVEO4/hSINJEtII4TMtysOsYPpINqeEzRAgMBAAGjZjBkMA4GA1UdDwEB/wQE\nAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBRR0UpnbQyjnHChgmOc\nhnlc0PogzTAfBgNVHSMEGDAWgBRzX2DYvMsDmPQrFzQuNlqmYP+8HzANBgkqhkiG\n9w0BAQsFAAOCAQEAKJD4xVzSf4zSGTBJrmamo86jl1NHQxXUApAZuBZEc8tqC6TI\nT5CeoSr9CMuVC8grYyBjXblC4OsM5NMvmsrXl/u5C9dEwtBFjo8mm53rOOIm1fxl\nI1oYB/9mtO9ANWjkykuLzWeBlqDT/i7ckaKwalhLODsRDO73vRhYNjsIUGloNsKe\npxw3dzHwAZx4upSdEVG4RGCZ1D0LJ4Gw40OfD69hfkDfRVVxKGrbEzqxXRvovmDc\ntKLdYZO/6REoca36v4BlgIs1CbUXJGLSXUwtg7YXGLSVBJ/U0+22iGJmBSNcoyUN\ncjPFD9JQEhDDIYYKSGzIYpvslvGc4T5ISXFiuQ==\n-----END CERTIFICATE-----\n","-----BEGIN CERTIFICATE-----\nMIIEBzCCAu+gAwIBAgICYpgwDQYJKoZIhvcNAQELBQAwgY8xCzAJBgNVBAYTAlVT\nMRAwDgYDVQQHDAdTZWF0dGxlMRMwEQYDVQQIDApXYXNoaW5ndG9uMSIwIAYDVQQK\nDBlBbWF6b24gV2ViIFNlcnZpY2VzLCBJbmMuMRMwEQYDVQQLDApBbWF6b24gUkRT\nMSAwHgYDVQQDDBdBbWF6b24gUkRTIFJvb3QgMjAxOSBDQTAeFw0xOTA5MTExNzMx\nNDhaFw0yNDA4MjIxNzA4NTBaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2Fz\naGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBT\nZXJ2aWNlcywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzElMCMGA1UEAwwcQW1h\nem9uIFJEUyBldS13ZXN0LTEgMjAxOSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP\nADCCAQoCggEBAMk3YdSZ64iAYp6MyyKtYJtNzv7zFSnnNf6vv0FB4VnfITTMmOyZ\nLXqKAT2ahZ00hXi34ewqJElgU6eUZT/QlzdIu359TEZyLVPwURflL6SWgdG01Q5X\nO++7fSGcBRyIeuQWs9FJNIIqK8daF6qw0Rl5TXfu7P9dBc3zkgDXZm2DHmxGDD69\n7liQUiXzoE1q2Z9cA8+jirDioJxN9av8hQt12pskLQumhlArsMIhjhHRgF03HOh5\ntvi+RCfihVOxELyIRTRpTNiIwAqfZxxTWFTgfn+gijTmd0/1DseAe82aYic8JbuS\nEMbrDduAWsqrnJ4GPzxHKLXX0JasCUcWyMECAwEAAaNmMGQwDgYDVR0PAQH/BAQD\nAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFPLtsq1NrwJXO13C9eHt\nsLY11AGwMB8GA1UdIwQYMBaAFHNfYNi8ywOY9CsXNC42WqZg/7wfMA0GCSqGSIb3\nDQEBCwUAA4IBAQAnWBKj5xV1A1mYd0kIgDdkjCwQkiKF5bjIbGkT3YEFFbXoJlSP\n0lZZ/hDaOHI8wbLT44SzOvPEEmWF9EE7SJzkvSdQrUAWR9FwDLaU427ALI3ngNHy\nlGJ2hse1fvSRNbmg8Sc9GBv8oqNIBPVuw+AJzHTacZ1OkyLZrz1c1QvwvwN2a+Jd\nvH0V0YIhv66llKcYDMUQJAQi4+8nbRxXWv6Gq3pvrFoorzsnkr42V3JpbhnYiK+9\nnRKd4uWl62KRZjGkfMbmsqZpj2fdSWMY1UGyN1k+kDmCSWYdrTRDP0xjtIocwg+A\nJ116n4hV/5mbA0BaPiS2krtv17YAeHABZcvz\n-----END CERTIFICATE-----\n","-----BEGIN CERTIFICATE-----\nMIIEBzCCAu+gAwIBAgICZIEwDQYJKoZIhvcNAQELBQAwgY8xCzAJBgNVBAYTAlVT\nMRAwDgYDVQQHDAdTZWF0dGxlMRMwEQYDVQQIDApXYXNoaW5ndG9uMSIwIAYDVQQK\nDBlBbWF6b24gV2ViIFNlcnZpY2VzLCBJbmMuMRMwEQYDVQQLDApBbWF6b24gUkRT\nMSAwHgYDVQQDDBdBbWF6b24gUkRTIFJvb3QgMjAxOSBDQTAeFw0xOTA5MTIyMTMy\nMzJaFw0yNDA4MjIxNzA4NTBaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2Fz\naGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBT\nZXJ2aWNlcywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzElMCMGA1UEAwwcQW1h\nem9uIFJEUyBldS13ZXN0LTIgMjAxOSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP\nADCCAQoCggEBALGiwqjiF7xIjT0Sx7zB3764K2T2a1DHnAxEOr+/EIftWKxWzT3u\nPFwS2eEZcnKqSdRQ+vRzonLBeNLO4z8aLjQnNbkizZMBuXGm4BqRm1Kgq3nlLDQn\n7YqdijOq54SpShvR/8zsO4sgMDMmHIYAJJOJqBdaus2smRt0NobIKc0liy7759KB\n6kmQ47Gg+kfIwxrQA5zlvPLeQImxSoPi9LdbRoKvu7Iot7SOa+jGhVBh3VdqndJX\n7tm/saj4NE375csmMETFLAOXjat7zViMRwVorX4V6AzEg1vkzxXpA9N7qywWIT5Y\nfYaq5M8i6vvLg0CzrH9fHORtnkdjdu1y+0MCAwEAAaNmMGQwDgYDVR0PAQH/BAQD\nAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFFOhOx1yt3Z7mvGB9jBv\n2ymdZwiOMB8GA1UdIwQYMBaAFHNfYNi8ywOY9CsXNC42WqZg/7wfMA0GCSqGSIb3\nDQEBCwUAA4IBAQBehqY36UGDvPVU9+vtaYGr38dBbp+LzkjZzHwKT1XJSSUc2wqM\nhnCIQKilonrTIvP1vmkQi8qHPvDRtBZKqvz/AErW/ZwQdZzqYNFd+BmOXaeZWV0Q\noHtDzXmcwtP8aUQpxN0e1xkWb1E80qoy+0uuRqb/50b/R4Q5qqSfJhkn6z8nwB10\n7RjLtJPrK8igxdpr3tGUzfAOyiPrIDncY7UJaL84GFp7WWAkH0WG3H8Y8DRcRXOU\nmqDxDLUP3rNuow3jnGxiUY+gGX5OqaZg4f4P6QzOSmeQYs6nLpH0PiN00+oS1BbD\nbpWdZEttILPI+vAYkU4QuBKKDjJL6HbSd+cn\n-----END CERTIFICATE-----\n","-----BEGIN CERTIFICATE-----\nMIIEBzCCAu+gAwIBAgICJDQwDQYJKoZIhvcNAQELBQAwgY8xCzAJBgNVBAYTAlVT\nMRAwDgYDVQQHDAdTZWF0dGxlMRMwEQYDVQQIDApXYXNoaW5ndG9uMSIwIAYDVQQK\nDBlBbWF6b24gV2ViIFNlcnZpY2VzLCBJbmMuMRMwEQYDVQQLDApBbWF6b24gUkRT\nMSAwHgYDVQQDDBdBbWF6b24gUkRTIFJvb3QgMjAxOSBDQTAeFw0xOTA5MTgxNzAz\nMTVaFw0yNDA4MjIxNzA4NTBaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2Fz\naGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBT\nZXJ2aWNlcywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzElMCMGA1UEAwwcQW1h\nem9uIFJEUyBldS13ZXN0LTMgMjAxOSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP\nADCCAQoCggEBAL9bL7KE0n02DLVtlZ2PL+g/BuHpMYFq2JnE2RgompGurDIZdjmh\n1pxfL3nT+QIVMubuAOy8InRfkRxfpxyjKYdfLJTPJG+jDVL+wDcPpACFVqoV7Prg\npVYEV0lc5aoYw4bSeYFhdzgim6F8iyjoPnObjll9mo4XsHzSoqJLCd0QC+VG9Fw2\nq+GDRZrLRmVM2oNGDRbGpGIFg77aRxRapFZa8SnUgs2AqzuzKiprVH5i0S0M6dWr\ni+kk5epmTtkiDHceX+dP/0R1NcnkCPoQ9TglyXyPdUdTPPRfKCq12dftqll+u4mV\nARdN6WFjovxax8EAP2OAUTi1afY+1JFMj+sCAwEAAaNmMGQwDgYDVR0PAQH/BAQD\nAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFLfhrbrO5exkCVgxW0x3\nY2mAi8lNMB8GA1UdIwQYMBaAFHNfYNi8ywOY9CsXNC42WqZg/7wfMA0GCSqGSIb3\nDQEBCwUAA4IBAQAigQ5VBNGyw+OZFXwxeJEAUYaXVoP/qrhTOJ6mCE2DXUVEoJeV\nSxScy/TlFA9tJXqmit8JH8VQ/xDL4ubBfeMFAIAo4WzNWDVoeVMqphVEcDWBHsI1\nAETWzfsapRS9yQekOMmxg63d/nV8xewIl8aNVTHdHYXMqhhik47VrmaVEok1UQb3\nO971RadLXIEbVd9tjY5bMEHm89JsZDnDEw1hQXBb67Elu64OOxoKaHBgUH8AZn/2\nzFsL1ynNUjOhCSAA15pgd1vjwc0YsBbAEBPcHBWYBEyME6NLNarjOzBl4FMtATSF\nwWCKRGkvqN8oxYhwR2jf2rR5Mu4DWkK5Q8Ep\n-----END CERTIFICATE-----\n","-----BEGIN CERTIFICATE-----\nMIIEEjCCAvqgAwIBAgIJANew34ehz5l8MA0GCSqGSIb3DQEBCwUAMIGVMQswCQYD\nVQQGEwJVUzEQMA4GA1UEBwwHU2VhdHRsZTETMBEGA1UECAwKV2FzaGluZ3RvbjEi\nMCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNlcywgSW5jLjETMBEGA1UECwwKQW1h\nem9uIFJEUzEmMCQGA1UEAwwdQW1hem9uIFJEUyBtZS1zb3V0aC0xIFJvb3QgQ0Ew\nHhcNMTkwNTEwMjE0ODI3WhcNMjQwNTA4MjE0ODI3WjCBlTELMAkGA1UEBhMCVVMx\nEDAOBgNVBAcMB1NlYXR0bGUxEzARBgNVBAgMCldhc2hpbmd0b24xIjAgBgNVBAoM\nGUFtYXpvbiBXZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMx\nJjAkBgNVBAMMHUFtYXpvbiBSRFMgbWUtc291dGgtMSBSb290IENBMIIBIjANBgkq\nhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAp7BYV88MukcY+rq0r79+C8UzkT30fEfT\naPXbx1d6M7uheGN4FMaoYmL+JE1NZPaMRIPTHhFtLSdPccInvenRDIatcXX+jgOk\nUA6lnHQ98pwN0pfDUyz/Vph4jBR9LcVkBbe0zdoKKp+HGbMPRU0N2yNrog9gM5O8\ngkU/3O2csJ/OFQNnj4c2NQloGMUpEmedwJMOyQQfcUyt9CvZDfIPNnheUS29jGSw\nERpJe/AENu8Pxyc72jaXQuD+FEi2Ck6lBkSlWYQFhTottAeGvVFNCzKszCntrtqd\nrdYUwurYsLTXDHv9nW2hfDUQa0mhXf9gNDOBIVAZugR9NqNRNyYLHQIDAQABo2Mw\nYTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU54cf\nDjgwBx4ycBH8+/r8WXdaiqYwHwYDVR0jBBgwFoAU54cfDjgwBx4ycBH8+/r8WXda\niqYwDQYJKoZIhvcNAQELBQADggEBAIIMTSPx/dR7jlcxggr+O6OyY49Rlap2laKA\neC/XI4ySP3vQkIFlP822U9Kh8a9s46eR0uiwV4AGLabcu0iKYfXjPkIprVCqeXV7\nny9oDtrbflyj7NcGdZLvuzSwgl9SYTJp7PVCZtZutsPYlbJrBPHwFABvAkMvRtDB\nhitIg4AESDGPoCl94sYHpfDfjpUDMSrAMDUyO6DyBdZH5ryRMAs3lGtsmkkNUrso\naTW6R05681Z0mvkRdb+cdXtKOSuDZPoe2wJJIaz3IlNQNSrB5TImMYgmt6iAsFhv\n3vfTSTKrZDNTJn4ybG6pq1zWExoXsktZPylJly6R3RBwV6nwqBM=\n-----END CERTIFICATE-----\n","-----BEGIN CERTIFICATE-----\nMIIEBzCCAu+gAwIBAgICQ2QwDQYJKoZIhvcNAQELBQAwgY8xCzAJBgNVBAYTAlVT\nMRAwDgYDVQQHDAdTZWF0dGxlMRMwEQYDVQQIDApXYXNoaW5ndG9uMSIwIAYDVQQK\nDBlBbWF6b24gV2ViIFNlcnZpY2VzLCBJbmMuMRMwEQYDVQQLDApBbWF6b24gUkRT\nMSAwHgYDVQQDDBdBbWF6b24gUkRTIFJvb3QgMjAxOSBDQTAeFw0xOTA5MDUxODQ2\nMjlaFw0yNDA4MjIxNzA4NTBaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2Fz\naGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBT\nZXJ2aWNlcywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzElMCMGA1UEAwwcQW1h\nem9uIFJEUyBzYS1lYXN0LTEgMjAxOSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP\nADCCAQoCggEBAMMvR+ReRnOzqJzoaPipNTt1Z2VA968jlN1+SYKUrYM3No+Vpz0H\nM6Tn0oYB66ByVsXiGc28ulsqX1HbHsxqDPwvQTKvO7SrmDokoAkjJgLocOLUAeld\n5AwvUjxGRP6yY90NV7X786MpnYb2Il9DIIaV9HjCmPt+rjy2CZjS0UjPjCKNfB8J\nbFjgW6GGscjeyGb/zFwcom5p4j0rLydbNaOr9wOyQrtt3ZQWLYGY9Zees/b8pmcc\nJt+7jstZ2UMV32OO/kIsJ4rMUn2r/uxccPwAc1IDeRSSxOrnFKhW3Cu69iB3bHp7\nJbawY12g7zshE4I14sHjv3QoXASoXjx4xgMCAwEAAaNmMGQwDgYDVR0PAQH/BAQD\nAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFI1Fc/Ql2jx+oJPgBVYq\nccgP0pQ8MB8GA1UdIwQYMBaAFHNfYNi8ywOY9CsXNC42WqZg/7wfMA0GCSqGSIb3\nDQEBCwUAA4IBAQB4VVVabVp70myuYuZ3vltQIWqSUMhkaTzehMgGcHjMf9iLoZ/I\n93KiFUSGnek5cRePyS9wcpp0fcBT3FvkjpUdCjVtdttJgZFhBxgTd8y26ImdDDMR\n4+BUuhI5msvjL08f+Vkkpu1GQcGmyFVPFOy/UY8iefu+QyUuiBUnUuEDd49Hw0Fn\n/kIPII6Vj82a2mWV/Q8e+rgN8dIRksRjKI03DEoP8lhPlsOkhdwU6Uz9Vu6NOB2Q\nLs1kbcxAc7cFSyRVJEhh12Sz9d0q/CQSTFsVJKOjSNQBQfVnLz1GwO/IieUEAr4C\njkTntH0r1LX5b/GwN4R887LvjAEdTbg1his7\n-----END CERTIFICATE-----\n","-----BEGIN CERTIFICATE-----\nMIIEBzCCAu+gAwIBAgICJVUwDQYJKoZIhvcNAQELBQAwgY8xCzAJBgNVBAYTAlVT\nMRAwDgYDVQQHDAdTZWF0dGxlMRMwEQYDVQQIDApXYXNoaW5ndG9uMSIwIAYDVQQK\nDBlBbWF6b24gV2ViIFNlcnZpY2VzLCBJbmMuMRMwEQYDVQQLDApBbWF6b24gUkRT\nMSAwHgYDVQQDDBdBbWF6b24gUkRTIFJvb3QgMjAxOSBDQTAeFw0xOTA5MTkxODE2\nNTNaFw0yNDA4MjIxNzA4NTBaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2Fz\naGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBT\nZXJ2aWNlcywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzElMCMGA1UEAwwcQW1h\nem9uIFJEUyB1cy1lYXN0LTEgMjAxOSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP\nADCCAQoCggEBAM3i/k2u6cqbMdcISGRvh+m+L0yaSIoOXjtpNEoIftAipTUYoMhL\nInXGlQBVA4shkekxp1N7HXe1Y/iMaPEyb3n+16pf3vdjKl7kaSkIhjdUz3oVUEYt\ni8Z/XeJJ9H2aEGuiZh3kHixQcZczn8cg3dA9aeeyLSEnTkl/npzLf//669Ammyhs\nXcAo58yvT0D4E0D/EEHf2N7HRX7j/TlyWvw/39SW0usiCrHPKDLxByLojxLdHzso\nQIp/S04m+eWn6rmD+uUiRteN1hI5ncQiA3wo4G37mHnUEKo6TtTUh+sd/ku6a8HK\nglMBcgqudDI90s1OpuIAWmuWpY//8xEG2YECAwEAAaNmMGQwDgYDVR0PAQH/BAQD\nAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFPqhoWZcrVY9mU7tuemR\nRBnQIj1jMB8GA1UdIwQYMBaAFHNfYNi8ywOY9CsXNC42WqZg/7wfMA0GCSqGSIb3\nDQEBCwUAA4IBAQB6zOLZ+YINEs72heHIWlPZ8c6WY8MDU+Be5w1M+BK2kpcVhCUK\nPJO4nMXpgamEX8DIiaO7emsunwJzMSvavSPRnxXXTKIc0i/g1EbiDjnYX9d85DkC\nE1LaAUCmCZBVi9fIe0H2r9whIh4uLWZA41oMnJx/MOmo3XyMfQoWcqaSFlMqfZM4\n0rNoB/tdHLNuV4eIdaw2mlHxdWDtF4oH+HFm+2cVBUVC1jXKrFv/euRVtsTT+A6i\nh2XBHKxQ1Y4HgAn0jACP2QSPEmuoQEIa57bEKEcZsBR8SDY6ZdTd2HLRIApcCOSF\nMRM8CKLeF658I0XgF8D5EsYoKPsA+74Z+jDH\n-----END CERTIFICATE-----\n","-----BEGIN CERTIFICATE-----\nMIIECDCCAvCgAwIBAgIDAIVCMA0GCSqGSIb3DQEBCwUAMIGPMQswCQYDVQQGEwJV\nUzEQMA4GA1UEBwwHU2VhdHRsZTETMBEGA1UECAwKV2FzaGluZ3RvbjEiMCAGA1UE\nCgwZQW1hem9uIFdlYiBTZXJ2aWNlcywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJE\nUzEgMB4GA1UEAwwXQW1hem9uIFJEUyBSb290IDIwMTkgQ0EwHhcNMTkwOTEzMTcw\nNjQxWhcNMjQwODIyMTcwODUwWjCBlDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCldh\nc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoMGUFtYXpvbiBXZWIg\nU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMxJTAjBgNVBAMMHEFt\nYXpvbiBSRFMgdXMtZWFzdC0yIDIwMTkgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IB\nDwAwggEKAoIBAQDE+T2xYjUbxOp+pv+gRA3FO24+1zCWgXTDF1DHrh1lsPg5k7ht\n2KPYzNc+Vg4E+jgPiW0BQnA6jStX5EqVh8BU60zELlxMNvpg4KumniMCZ3krtMUC\nau1NF9rM7HBh+O+DYMBLK5eSIVt6lZosOb7bCi3V6wMLA8YqWSWqabkxwN4w0vXI\n8lu5uXXFRemHnlNf+yA/4YtN4uaAyd0ami9+klwdkZfkrDOaiy59haOeBGL8EB/c\ndbJJlguHH5CpCscs3RKtOOjEonXnKXldxarFdkMzi+aIIjQ8GyUOSAXHtQHb3gZ4\nnS6Ey0CMlwkB8vUObZU9fnjKJcL5QCQqOfwvAgMBAAGjZjBkMA4GA1UdDwEB/wQE\nAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBQUPuRHohPxx4VjykmH\n6usGrLL1ETAfBgNVHSMEGDAWgBRzX2DYvMsDmPQrFzQuNlqmYP+8HzANBgkqhkiG\n9w0BAQsFAAOCAQEAUdR9Vb3y33Yj6X6KGtuthZ08SwjImVQPtknzpajNE5jOJAh8\nquvQnU9nlnMO85fVDU1Dz3lLHGJ/YG1pt1Cqq2QQ200JcWCvBRgdvH6MjHoDQpqZ\nHvQ3vLgOGqCLNQKFuet9BdpsHzsctKvCVaeBqbGpeCtt3Hh/26tgx0rorPLw90A2\nV8QSkZJjlcKkLa58N5CMM8Xz8KLWg3MZeT4DmlUXVCukqK2RGuP2L+aME8dOxqNv\nOnOz1zrL5mR2iJoDpk8+VE/eBDmJX40IJk6jBjWoxAO/RXq+vBozuF5YHN1ujE92\ntO8HItgTp37XT8bJBAiAnt5mxw+NLSqtxk2QdQ==\n-----END CERTIFICATE-----\n","-----BEGIN CERTIFICATE-----\nMIIECDCCAvCgAwIBAgIDAIkHMA0GCSqGSIb3DQEBCwUAMIGPMQswCQYDVQQGEwJV\nUzEQMA4GA1UEBwwHU2VhdHRsZTETMBEGA1UECAwKV2FzaGluZ3RvbjEiMCAGA1UE\nCgwZQW1hem9uIFdlYiBTZXJ2aWNlcywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJE\nUzEgMB4GA1UEAwwXQW1hem9uIFJEUyBSb290IDIwMTkgQ0EwHhcNMTkwOTA2MTc0\nMDIxWhcNMjQwODIyMTcwODUwWjCBlDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCldh\nc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoMGUFtYXpvbiBXZWIg\nU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMxJTAjBgNVBAMMHEFt\nYXpvbiBSRFMgdXMtd2VzdC0xIDIwMTkgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IB\nDwAwggEKAoIBAQDD2yzbbAl77OofTghDMEf624OvU0eS9O+lsdO0QlbfUfWa1Kd6\n0WkgjkLZGfSRxEHMCnrv4UPBSK/Qwn6FTjkDLgemhqBtAnplN4VsoDL+BkRX4Wwq\n/dSQJE2b+0hm9w9UMVGFDEq1TMotGGTD2B71eh9HEKzKhGzqiNeGsiX4VV+LJzdH\nuM23eGisNqmd4iJV0zcAZ+Gbh2zK6fqTOCvXtm7Idccv8vZZnyk1FiWl3NR4WAgK\nAkvWTIoFU3Mt7dIXKKClVmvssG8WHCkd3Xcb4FHy/G756UZcq67gMMTX/9fOFM/v\nl5C0+CHl33Yig1vIDZd+fXV1KZD84dEJfEvHAgMBAAGjZjBkMA4GA1UdDwEB/wQE\nAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBR+ap20kO/6A7pPxo3+\nT3CfqZpQWjAfBgNVHSMEGDAWgBRzX2DYvMsDmPQrFzQuNlqmYP+8HzANBgkqhkiG\n9w0BAQsFAAOCAQEAHCJky2tPjPttlDM/RIqExupBkNrnSYnOK4kr9xJ3sl8UF2DA\nPAnYsjXp3rfcjN/k/FVOhxwzi3cXJF/2Tjj39Bm/OEfYTOJDNYtBwB0VVH4ffa/6\ntZl87jaIkrxJcreeeHqYMnIxeN0b/kliyA+a5L2Yb0VPjt9INq34QDc1v74FNZ17\n4z8nr1nzg4xsOWu0Dbjo966lm4nOYIGBRGOKEkHZRZ4mEiMgr3YLkv8gSmeitx57\nZ6dVemNtUic/LVo5Iqw4n3TBS0iF2C1Q1xT/s3h+0SXZlfOWttzSluDvoMv5PvCd\npFjNn+aXLAALoihL1MJSsxydtsLjOBro5eK0Vw==\n-----END CERTIFICATE-----\n","-----BEGIN CERTIFICATE-----\nMIIEBzCCAu+gAwIBAgICUYkwDQYJKoZIhvcNAQELBQAwgY8xCzAJBgNVBAYTAlVT\nMRAwDgYDVQQHDAdTZWF0dGxlMRMwEQYDVQQIDApXYXNoaW5ndG9uMSIwIAYDVQQK\nDBlBbWF6b24gV2ViIFNlcnZpY2VzLCBJbmMuMRMwEQYDVQQLDApBbWF6b24gUkRT\nMSAwHgYDVQQDDBdBbWF6b24gUkRTIFJvb3QgMjAxOSBDQTAeFw0xOTA5MTYxODIx\nMTVaFw0yNDA4MjIxNzA4NTBaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2Fz\naGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBT\nZXJ2aWNlcywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzElMCMGA1UEAwwcQW1h\nem9uIFJEUyB1cy13ZXN0LTIgMjAxOSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP\nADCCAQoCggEBANCEZBZyu6yJQFZBJmSUZfSZd3Ui2gitczMKC4FLr0QzkbxY+cLa\nuVONIOrPt4Rwi+3h/UdnUg917xao3S53XDf1TDMFEYp4U8EFPXqCn/GXBIWlU86P\nPvBN+gzw3nS+aco7WXb+woTouvFVkk8FGU7J532llW8o/9ydQyDIMtdIkKTuMfho\nOiNHSaNc+QXQ32TgvM9A/6q7ksUoNXGCP8hDOkSZ/YOLiI5TcdLh/aWj00ziL5bj\npvytiMZkilnc9dLY9QhRNr0vGqL0xjmWdoEXz9/OwjmCihHqJq+20MJPsvFm7D6a\n2NKybR9U+ddrjb8/iyLOjURUZnj5O+2+OPcCAwEAAaNmMGQwDgYDVR0PAQH/BAQD\nAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFEBxMBdv81xuzqcK5TVu\npHj+Aor8MB8GA1UdIwQYMBaAFHNfYNi8ywOY9CsXNC42WqZg/7wfMA0GCSqGSIb3\nDQEBCwUAA4IBAQBZkfiVqGoJjBI37aTlLOSjLcjI75L5wBrwO39q+B4cwcmpj58P\n3sivv+jhYfAGEbQnGRzjuFoyPzWnZ1DesRExX+wrmHsLLQbF2kVjLZhEJMHF9eB7\nGZlTPdTzHErcnuXkwA/OqyXMpj9aghcQFuhCNguEfnROY9sAoK2PTfnTz9NJHL+Q\nUpDLEJEUfc0GZMVWYhahc0x38ZnSY2SKacIPECQrTI0KpqZv/P+ijCEcMD9xmYEb\njL4en+XKS1uJpw5fIU5Sj0MxhdGstH6S84iAE5J3GM3XHklGSFwwqPYvuTXvANH6\nuboynxRgSae59jIlAK6Jrr6GWMwQRbgcaAlW\n-----END CERTIFICATE-----\n"]}});var CI=j((op,t6)=>{var k$=require("url").parse,m$=MT(),s6=S0(),C0=null;t6.exports=PR;function PR(_){if(typeof _==="string")_=PR.parseUrl(_);if(this.host=_.host||"localhost",this.port=_.port||3306,this.localAddress=_.localAddress,this.socketPath=_.socketPath,this.user=_.user||void 0,this.password=_.password||void 0,this.database=_.database,this.connectTimeout=_.connectTimeout===void 0?1e4:_.connectTimeout,this.insecureAuth=_.insecureAuth||!1,this.supportBigNumbers=_.supportBigNumbers||!1,this.bigNumberStrings=_.bigNumberStrings||!1,this.dateStrings=_.dateStrings||!1,this.debug=_.debug,this.trace=_.trace!==!1,this.stringifyObjects=_.stringifyObjects||!1,this.timezone=_.timezone||"local",this.flags=_.flags||"",this.queryFormat=_.queryFormat,this.pool=_.pool||void 0,this.ssl=typeof _.ssl==="string"?PR.getSSLProfile(_.ssl):_.ssl||!1,this.localInfile=_.localInfile===void 0?!0:_.localInfile,this.multipleStatements=_.multipleStatements||!1,this.typeCast=_.typeCast===void 0?!0:_.typeCast,this.timezone[0]===" ")this.timezone="+"+this.timezone.substr(1);if(this.ssl)this.ssl.rejectUnauthorized=this.ssl.rejectUnauthorized!==!1;this.maxPacketSize=0,this.charsetNumber=_.charset?PR.getCharsetNumber(_.charset):_.charsetNumber||s6.UTF8_GENERAL_CI;var E=PR.getDefaultFlags(_);this.clientFlags=PR.mergeFlags(E,_.flags)}PR.mergeFlags=function _(E,R){var N=PR.parseFlagList(E),A=PR.parseFlagList(R);for(var L in A)if(N[L]!==!1)N[L]=A[L];var U=0;for(var L in N)if(N[L])U|=m$["CLIENT_"+L]||0;return U};PR.getCharsetNumber=function _(E){var R=s6[E.toUpperCase()];if(R===void 0)throw new TypeError("Unknown charset \'"+E+"\'");return R};PR.getDefaultFlags=function _(E){var R=["-COMPRESS","-CONNECT_ATTRS","+CONNECT_WITH_DB","+FOUND_ROWS","+IGNORE_SIGPIPE","+IGNORE_SPACE","+LOCAL_FILES","+LONG_FLAG","+LONG_PASSWORD","+MULTI_RESULTS","+ODBC","-PLUGIN_AUTH","+PROTOCOL_41","+PS_MULTI_RESULTS","+RESERVED","+SECURE_CONNECTION","+TRANSACTIONS"];if(E&&E.localInfile!==void 0&&!E.localInfile)R.push("-LOCAL_FILES");if(E&&E.multipleStatements)R.push("+MULTI_STATEMENTS");return R};PR.getSSLProfile=function _(E){if(!C0)C0=o6();var R=C0[E];if(R===void 0)throw new TypeError("Unknown SSL profile \'"+E+"\'");return R};PR.parseFlagList=function _(E){var R=Object.create(null);if(!E)return R;var N=!Array.isArray(E)?String(E||"").toUpperCase().split(/\s*,+\s*/):E;for(var A=0;A{r6.exports=g$;function g$(_,E){this.length=_,this.number=E}});var _5=j((e6,PI)=>{(function(_){var E,R=/^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i,N=Math.ceil,A=Math.floor,L="[BigNumber Error] ",U=L+"Number primitive has more than 15 significant digits: ",G=100000000000000,S=14,C=9007199254740991,Y=[1,10,100,1000,1e4,1e5,1e6,1e7,1e8,1e9,10000000000,100000000000,1000000000000,10000000000000],M=1e7,H=1e9;function X(m){var k,e,o,c=a.prototype={constructor:a,toString:null,valueOf:null},S_=new a(1),U_=20,V_=4,K_=-7,z_=21,r=-1e7,A_=1e7,L_=!1,P_=1,p_=0,l_={prefix:"",groupSize:3,secondaryGroupSize:0,groupSeparator:",",decimalSeparator:".",fractionGroupSize:0,fractionGroupSeparator:"\xA0",suffix:""},j_="0123456789abcdefghijklmnopqrstuvwxyz";function a(V,J){var Q,i,v,y,n,f,x,u,b=this;if(!(b instanceof a))return new a(V,J);if(J==null){if(V&&V._isBigNumber===!0){if(b.s=V.s,!V.c||V.e>A_)b.c=b.e=null;else if(V.e=10;n/=10,y++);if(y>A_)b.c=b.e=null;else b.e=y,b.c=[V];return}u=String(V)}else{if(!R.test(u=String(V)))return o(b,u,f);b.s=u.charCodeAt(0)==45?(u=u.slice(1),-1):1}if((y=u.indexOf("."))>-1)u=u.replace(".","");if((n=u.search(/e/i))>0){if(y<0)y=n;y+=+u.slice(n+1),u=u.substring(0,n)}else if(y<0)y=u.length}else{if(g(J,2,j_.length,"Base"),J==10)return b=new a(V),n_(b,U_+b.e+1,V_);if(u=String(V),f=typeof V=="number"){if(V*0!=0)return o(b,u,f,J);if(b.s=1/V<0?(u=u.slice(1),-1):1,a.DEBUG&&u.replace(/^0\.0*|\./,"").length>15)throw Error(U+V)}else b.s=u.charCodeAt(0)===45?(u=u.slice(1),-1):1;Q=j_.slice(0,J),y=n=0;for(x=u.length;ny){y=x;continue}}else if(!v){if(u==u.toUpperCase()&&(u=u.toLowerCase())||u==u.toLowerCase()&&(u=u.toUpperCase())){v=!0,n=-1,y=0;continue}}return o(b,String(V),f,J)}if(f=!1,u=e(u,J,10,b.s),(y=u.indexOf("."))>-1)u=u.replace(".","");else y=u.length}for(n=0;u.charCodeAt(n)===48;n++);for(x=u.length;u.charCodeAt(--x)===48;);if(u=u.slice(n,++x)){if(x-=n,f&&a.DEBUG&&x>15&&(V>C||V!==A(V)))throw Error(U+b.s*V);if((y=y-n-1)>A_)b.c=b.e=null;else if(y=-H&&v<=H&&v===A(v)){if(i[0]===0){if(v===0&&i.length===1)return!0;break _}if(J=(v+1)%S,J<1)J+=S;if(String(i[0]).length==J){for(J=0;J=G||Q!==A(Q))break _;if(Q!==0)return!0}}}else if(i===null&&v===null&&(y===null||y===1||y===-1))return!0;throw Error(L+"Invalid BigNumber: "+V)},a.maximum=a.max=function(){return q_(arguments,c.lt)},a.minimum=a.min=function(){return q_(arguments,c.gt)},a.random=function(){var V=9007199254740992,J=Math.random()*V&2097151?function(){return A(Math.random()*V)}:function(){return(Math.random()*1073741824|0)*8388608+(Math.random()*8388608|0)};return function(Q){var i,v,y,n,f,x=0,u=[],b=new a(S_);if(Q==null)Q=U_;else g(Q,0,H);if(n=N(Q/S),L_)if(crypto.getRandomValues){i=crypto.getRandomValues(new Uint32Array(n*=2));for(;x>>11),f>=9000000000000000)v=crypto.getRandomValues(new Uint32Array(2)),i[x]=v[0],i[x+1]=v[1];else u.push(f%100000000000000),x+=2;x=n/2}else if(crypto.randomBytes){i=crypto.randomBytes(n*=7);for(;x=9000000000000000)crypto.randomBytes(7).copy(i,x);else u.push(f%100000000000000),x+=7;x=n/7}else throw L_=!1,Error(L+"crypto unavailable");if(!L_){for(;x=10;f/=10,x++);if(xv-1){if(f[n+1]==null)f[n+1]=0;f[n+1]+=f[n]/v|0,f[n]%=v}}return f.reverse()}return function(Q,i,v,y,n){var f,x,u,b,E_,H_,I_,G_,W_=Q.indexOf("."),x_=U_,Q_=V_;if(W_>=0)b=p_,p_=0,Q=Q.replace(".",""),G_=new a(i),H_=G_.pow(Q.length-W_),p_=b,G_.c=J(s(z(H_.c),H_.e,"0"),10,v,V),G_.e=G_.c.length;I_=J(Q,i,v,n?(f=j_,V):(f=V,j_)),u=b=I_.length;for(;I_[--b]==0;I_.pop());if(!I_[0])return f.charAt(0);if(W_<0)--u;else H_.c=I_,H_.e=u,H_.s=y,H_=k(H_,G_,x_,Q_,v),I_=H_.c,E_=H_.r,u=H_.e;if(x=u+x_+1,W_=I_[x],b=v/2,E_=E_||x<0||I_[x+1]!=null,E_=Q_<4?(W_!=null||E_)&&(Q_==0||Q_==(H_.s<0?3:2)):W_>b||W_==b&&(Q_==4||E_||Q_==6&&I_[x-1]&1||Q_==(H_.s<0?8:7)),x<1||!I_[0])Q=E_?s(f.charAt(1),-x_,f.charAt(0)):f.charAt(0);else{if(I_.length=x,E_){for(--v;++I_[--x]>v;)if(I_[x]=0,!x)++u,I_=[1].concat(I_)}for(b=I_.length;!I_[--b];);for(W_=0,Q="";W_<=b;Q+=f.charAt(I_[W_++]));Q=s(Q,u,f.charAt(0))}return Q}}(),k=function(){function V(i,v,y){var n,f,x,u,b=0,E_=i.length,H_=v%M,I_=v/M|0;for(i=i.slice();E_--;)x=i[E_]%M,u=i[E_]/M|0,n=I_*x+u*H_,f=H_*x+n%M*M+b,b=(f/y|0)+(n/M|0)+I_*u,i[E_]=f%y;if(b)i=[b].concat(i);return i}function J(i,v,y,n){var f,x;if(y!=n)x=y>n?1:-1;else for(f=x=0;fv[f]?1:-1;break}return x}function Q(i,v,y,n){var f=0;for(;y--;)i[y]-=f,f=i[y]1;i.splice(0,1));}return function(i,v,y,n,f){var x,u,b,E_,H_,I_,G_,W_,x_,Q_,b_,JE,_1,$1,Z1,LR,QN,sE=i.s==v.s?1:-1,qE=i.c,UE=v.c;if(!qE||!qE[0]||!UE||!UE[0])return new a(!i.s||!v.s||(qE?UE&&qE[0]==UE[0]:!UE)?NaN:qE&&qE[0]==0||!UE?sE*0:sE/0);if(W_=new a(sE),x_=W_.c=[],u=i.e-v.e,sE=y+u+1,!f)f=G,u=$(i.e/S)-$(v.e/S),sE=sE/S|0;for(b=0;UE[b]==(qE[b]||0);b++);if(UE[b]>(qE[b]||0))u--;if(sE<0)x_.push(1),E_=!0;else{if($1=qE.length,LR=UE.length,b=0,sE+=2,H_=A(f/(UE[0]+1)),H_>1)UE=V(UE,H_,f),qE=V(qE,H_,f),LR=UE.length,$1=qE.length;_1=LR,Q_=qE.slice(0,LR),b_=Q_.length;for(;b_=f/2)Z1++;do{if(H_=0,x=J(UE,Q_,LR,b_),x<0){if(JE=Q_[0],LR!=b_)JE=JE*f+(Q_[1]||0);if(H_=A(JE/Z1),H_>1){if(H_>=f)H_=f-1;I_=V(UE,H_,f),G_=I_.length,b_=Q_.length;while(J(I_,Q_,G_,b_)==1)H_--,Q(I_,LR=10;sE/=10,b++);n_(W_,y+(W_.e=b+u*S-1)+1,n,E_)}else W_.e=u,W_.r=+E_;return W_}}();function WE(V,J,Q,i){var v,y,n,f,x;if(Q==null)Q=V_;else g(Q,0,8);if(!V.c)return V.toString();if(v=V.c[0],n=V.e,J==null)x=z(V.c),x=i==1||i==2&&(n<=K_||n>=z_)?t(x,n):s(x,n,"0");else if(V=n_(new a(V),J,Q),y=V.e,x=z(V.c),f=x.length,i==1||i==2&&(J<=y||y<=K_)){for(;ff){if(--J>0)for(x+=".";J--;x+="0");}else if(J+=y-f,J>0){if(y+1==f)x+=".";for(;J--;x+="0");}return V.s<0&&v?"-"+x:x}function q_(V,J){var Q,i=1,v=new a(V[0]);for(;i=10;v/=10,i++);if((Q=i+Q*S-1)>A_)V.c=V.e=null;else if(Q=10;f/=10,v++);if(y=J-v,y<0)y+=S,n=J,x=E_[u=0],b=x/H_[v-n-1]%10|0;else if(u=N((y+1)/S),u>=E_.length)if(i){for(;E_.length<=u;E_.push(0));x=b=0,v=1,y%=S,n=y-S+1}else break _;else{x=f=E_[u];for(v=1;f>=10;f/=10,v++);y%=S,n=y-S+v,b=n<0?0:x/H_[v-n-1]%10|0}if(i=i||J<0||E_[u+1]!=null||(n<0?x:x%H_[v-n-1]),i=Q<4?(b||i)&&(Q==0||Q==(V.s<0?3:2)):b>5||b==5&&(Q==4||i||Q==6&&(y>0?n>0?x/H_[v-n]:0:E_[u-1])%10&1||Q==(V.s<0?8:7)),J<1||!E_[0]){if(E_.length=0,i)J-=V.e+1,E_[0]=H_[(S-J%S)%S],V.e=-J||0;else E_[0]=V.e=0;return V}if(y==0)E_.length=u,f=1,u--;else E_.length=u+1,f=H_[S-y],E_[u]=n>0?A(x/H_[v-n]%H_[n])*f:0;if(i)for(;;)if(u==0){for(y=1,n=E_[0];n>=10;n/=10,y++);n=E_[0]+=f;for(f=1;n>=10;n/=10,f++);if(y!=f){if(V.e++,E_[0]==G)E_[0]=1}break}else{if(E_[u]+=f,E_[u]!=G)break;E_[u--]=0,f=1}for(y=E_.length;E_[--y]===0;E_.pop());}if(V.e>A_)V.c=V.e=null;else if(V.e=z_?t(J,Q):s(J,Q,"0"),V.s<0?"-"+J:J}if(c.absoluteValue=c.abs=function(){var V=new a(this);if(V.s<0)V.s=1;return V},c.comparedTo=function(V,J){return w(this,new a(V,J))},c.decimalPlaces=c.dp=function(V,J){var Q,i,v,y=this;if(V!=null){if(g(V,0,H),J==null)J=V_;else g(J,0,8);return n_(new a(y),V+y.e+1,J)}if(!(Q=y.c))return null;if(i=((v=Q.length-1)-$(this.e/S))*S,v=Q[v])for(;v%10==0;v/=10,i--);if(i<0)i=0;return i},c.dividedBy=c.div=function(V,J){return k(this,new a(V,J),U_,V_)},c.dividedToIntegerBy=c.idiv=function(V,J){return k(this,new a(V,J),0,1)},c.exponentiatedBy=c.pow=function(V,J){var Q,i,v,y,n,f,x,u,b,E_=this;if(V=new a(V),V.c&&!V.isInteger())throw Error(L+"Exponent not an integer: "+e_(V));if(J!=null)J=new a(J);if(f=V.e>14,!E_.c||!E_.c[0]||E_.c[0]==1&&!E_.e&&E_.c.length==1||!V.c||!V.c[0])return b=new a(Math.pow(+e_(E_),f?2-d(V):+e_(V))),J?b.mod(J):b;if(x=V.s<0,J){if(J.c?!J.c[0]:!J.s)return new a(NaN);if(i=!x&&E_.isInteger()&&J.isInteger(),i)E_=E_.mod(J)}else if(V.e>9&&(E_.e>0||E_.e<-1||(E_.e==0?E_.c[0]>1||f&&E_.c[1]>=240000000:E_.c[0]<80000000000000||f&&E_.c[0]<=99999750000000))){if(y=E_.s<0&&d(V)?-0:0,E_.e>-1)y=1/y;return new a(x?1/y:y)}else if(p_)y=N(p_/S+2);if(f){if(Q=new a(0.5),x)V.s=1;u=d(V)}else v=Math.abs(+e_(V)),u=v%2;b=new a(S_);for(;;){if(u){if(b=b.times(E_),!b.c)break;if(y){if(b.c.length>y)b.c.length=y}else if(i)b=b.mod(J)}if(v){if(v=A(v/2),v===0)break;u=v%2}else if(V=V.times(Q),n_(V,V.e+1,1),V.e>14)u=d(V);else{if(v=+e_(V),v===0)break;u=v%2}if(E_=E_.times(E_),y){if(E_.c&&E_.c.length>y)E_.c.length=y}else if(i)E_=E_.mod(J)}if(i)return b;if(x)b=S_.div(b);return J?b.mod(J):y?n_(b,p_,V_,n):b},c.integerValue=function(V){var J=new a(this);if(V==null)V=V_;else g(V,0,8);return n_(J,J.e+1,V)},c.isEqualTo=c.eq=function(V,J){return w(this,new a(V,J))===0},c.isFinite=function(){return!!this.c},c.isGreaterThan=c.gt=function(V,J){return w(this,new a(V,J))>0},c.isGreaterThanOrEqualTo=c.gte=function(V,J){return(J=w(this,new a(V,J)))===1||J===0},c.isInteger=function(){return!!this.c&&$(this.e/S)>this.c.length-2},c.isLessThan=c.lt=function(V,J){return w(this,new a(V,J))<0},c.isLessThanOrEqualTo=c.lte=function(V,J){return(J=w(this,new a(V,J)))===-1||J===0},c.isNaN=function(){return!this.s},c.isNegative=function(){return this.s<0},c.isPositive=function(){return this.s>0},c.isZero=function(){return!!this.c&&this.c[0]==0},c.minus=function(V,J){var Q,i,v,y,n=this,f=n.s;if(V=new a(V,J),J=V.s,!f||!J)return new a(NaN);if(f!=J)return V.s=-J,n.plus(V);var x=n.e/S,u=V.e/S,b=n.c,E_=V.c;if(!x||!u){if(!b||!E_)return b?(V.s=-J,V):new a(E_?n:NaN);if(!b[0]||!E_[0])return E_[0]?(V.s=-J,V):new a(b[0]?n:V_==3?-0:0)}if(x=$(x),u=$(u),b=b.slice(),f=x-u){if(y=f<0)f=-f,v=b;else u=x,v=E_;v.reverse();for(J=f;J--;v.push(0));v.reverse()}else{i=(y=(f=b.length)<(J=E_.length))?f:J;for(f=J=0;J0)for(;J--;b[Q++]=0);J=G-1;for(;i>f;){if(b[--i]=0;){Q=0,H_=JE[v]%x_,I_=JE[v]/x_|0;for(n=x,y=v+n;y>v;)u=b_[--n]%x_,b=b_[n]/x_|0,f=I_*u+b*H_,u=H_*u+f%x_*x_+G_[y]+Q,Q=(u/W_|0)+(f/x_|0)+I_*b,G_[y--]=u%W_;G_[y]=Q}if(Q)++i;else G_.splice(0,1);return k_(V,G_,i)},c.negated=function(){var V=new a(this);return V.s=-V.s||null,V},c.plus=function(V,J){var Q,i=this,v=i.s;if(V=new a(V,J),J=V.s,!v||!J)return new a(NaN);if(v!=J)return V.s=-J,i.minus(V);var y=i.e/S,n=V.e/S,f=i.c,x=V.c;if(!y||!n){if(!f||!x)return new a(v/0);if(!f[0]||!x[0])return x[0]?V:new a(f[0]?i:v*0)}if(y=$(y),n=$(n),f=f.slice(),v=y-n){if(v>0)n=y,Q=x;else v=-v,Q=f;Q.reverse();for(;v--;Q.push(0));Q.reverse()}if(v=f.length,J=x.length,v-J<0)Q=x,x=f,f=Q,J=v;for(v=0;J;)v=(f[--J]=f[J]+x[J]+v)/G|0,f[J]=G===f[J]?0:f[J]%G;if(v)f=[v].concat(f),++n;return k_(V,f,n)},c.precision=c.sd=function(V,J){var Q,i,v,y=this;if(V!=null&&V!==!!V){if(g(V,1,H),J==null)J=V_;else g(J,0,8);return n_(new a(y),V,J)}if(!(Q=y.c))return null;if(v=Q.length-1,i=v*S+1,v=Q[v]){for(;v%10==0;v/=10,i--);for(v=Q[0];v>=10;v/=10,i++);}if(V&&y.e+1>i)i=y.e+1;return i},c.shiftedBy=function(V){return g(V,-C,C),this.times("1e"+V)},c.squareRoot=c.sqrt=function(){var V,J,Q,i,v,y=this,n=y.c,f=y.s,x=y.e,u=U_+4,b=new a("0.5");if(f!==1||!n||!n[0])return new a(!f||f<0&&(!n||n[0])?NaN:n?y:1/0);if(f=Math.sqrt(+e_(y)),f==0||f==1/0){if(J=z(n),(J.length+x)%2==0)J+="0";if(f=Math.sqrt(+J),x=$((x+1)/2)-(x<0||x%2),f==1/0)J="1e"+x;else J=f.toExponential(),J=J.slice(0,J.indexOf("e")+1)+x;Q=new a(J)}else Q=new a(f+"");if(Q.c[0]){if(x=Q.e,f=x+u,f<3)f=0;for(;;)if(v=Q,Q=b.times(v.plus(k(y,v,u,1))),z(v.c).slice(0,f)===(J=z(Q.c)).slice(0,f)){if(Q.e0&&G_>0){y=G_%f||f,b=I_.substr(0,y);for(;y0)b+=u+I_.slice(y);if(H_)b="-"+b}i=E_?b+(Q.decimalSeparator||"")+((x=+Q.fractionGroupSize)?E_.replace(new RegExp("\\d{"+x+"}\\B","g"),"$&"+(Q.fractionGroupSeparator||"")):E_):b}return(Q.prefix||"")+i+(Q.suffix||"")},c.toFraction=function(V){var J,Q,i,v,y,n,f,x,u,b,E_,H_,I_=this,G_=I_.c;if(V!=null){if(f=new a(V),!f.isInteger()&&(f.c||f.s!==1)||f.lt(S_))throw Error(L+"Argument "+(f.isInteger()?"out of range: ":"not an integer: ")+e_(f))}if(!G_)return new a(I_);J=new a(S_),u=Q=new a(S_),i=x=new a(S_),H_=z(G_),y=J.e=H_.length-I_.e-1,J.c[0]=Y[(n=y%S)<0?S+n:n],V=!V||f.comparedTo(J)>0?y>0?J:u:f,n=A_,A_=1/0,f=new a(H_),x.c[0]=0;for(;;){if(b=k(f,J,0,1),v=Q.plus(b.times(i)),v.comparedTo(V)==1)break;Q=i,i=v,u=x.plus(b.times(v=u)),x=v,J=f.minus(b.times(v=J)),f=v}return v=k(V.minus(Q),i,0,1),x=x.plus(v.times(u)),Q=Q.plus(v.times(i)),x.s=u.s=I_.s,y=y*2,E_=k(u,i,y,V_).minus(I_).abs().comparedTo(k(x,Q,y,V_).minus(I_).abs())<1?[u,i]:[x,Q],A_=n,E_},c.toNumber=function(){return+e_(this)},c.toPrecision=function(V,J){if(V!=null)g(V,1,H);return WE(this,V,J,2)},c.toString=function(V){var J,Q=this,i=Q.s,v=Q.e;if(v===null)if(i){if(J="Infinity",i<0)J="-"+J}else J="NaN";else{if(V==null)J=v<=K_||v>=z_?t(z(Q.c),v):s(z(Q.c),v,"0");else if(V===10)Q=n_(new a(Q),U_+v+1,V_),J=s(z(Q.c),Q.e,"0");else g(V,2,j_.length,"Base"),J=e(s(z(Q.c),v,"0"),10,V,i,!0);if(i<0&&Q.c[0])J="-"+J}return J},c.valueOf=c.toJSON=function(){return e_(this)},c._isBigNumber=!0,m!=null)a.set(m);return a}function $(m){var k=m|0;return m>0||m===k?k:k-1}function z(m){var k,e,o=1,c=m.length,S_=m[0]+"";for(;oz_^e?1:-1;V_=(K_=c.length)<(z_=S_.length)?K_:z_;for(U_=0;U_S_[U_]^e?1:-1;return K_==z_?0:K_>z_^e?1:-1}function g(m,k,e,o){if(me||m!==A(m))throw Error(L+(o||"Argument")+(typeof m=="number"?me?" out of range: ":" not an integer: ":" not a primitive number: ")+String(m))}function d(m){var k=m.c.length-1;return $(m.e/S)==k&&m.c[k]%2!=0}function t(m,k){return(m.length>1?m.charAt(0)+"."+m.slice(1):m)+(k<0?"e":"e+")+k}function s(m,k,e){var o,c;if(k<0){for(c=e+".";++k;c+=e);m=c+m}else if(o=m.length,++k>o){for(c=e,k-=o;--k;c+=e);m+=c}else if(k{var YI=require("buffer"),mN=YI.Buffer;function E5(_,E){for(var R in _)E[R]=_[R]}if(mN.from&&mN.alloc&&mN.allocUnsafe&&mN.allocUnsafeSlow)R5.exports=YI;else E5(YI,P0),P0.Buffer=FT;function FT(_,E,R){return mN(_,E,R)}E5(mN,FT);FT.from=function(_,E,R){if(typeof _==="number")throw new TypeError("Argument must not be a number");return mN(_,E,R)};FT.alloc=function(_,E,R){if(typeof _!=="number")throw new TypeError("Argument must be a number");var N=mN(_);if(E!==void 0)if(typeof R==="string")N.fill(E,R);else N.fill(E);else N.fill(0);return N};FT.allocUnsafe=function(_){if(typeof _!=="number")throw new TypeError("Argument must be a number");return mN(_)};FT.allocUnsafeSlow=function(_){if(typeof _!=="number")throw new TypeError("Argument must be a number");return YI.SlowBuffer(_)}});var T5=j((tp,N5)=>{N5.exports=Y0;function Y0(){this.bufs=[],this.size=0}Y0.prototype.shift=function _(){var E=this.bufs.shift();if(E)this.size-=E.length;return E};Y0.prototype.push=function _(E){if(!E||!E.length)return;this.bufs.push(E),this.size+=E.length}});var L5=j((rp,I5)=>{var y$=a6(),b$=_5(),CO=PN().Buffer,O5=T5(),i$=Math.pow(2,24)-1,A5=Math.pow(2,32),u$=4;I5.exports=TE;function TE(_){_=_||{},this._supportBigNumbers=_.config&&_.config.supportBigNumbers,this._buffer=CO.alloc(0),this._nextBuffers=new O5,this._longPacketBuffers=new O5,this._offset=0,this._packetEnd=null,this._packetHeader=null,this._packetOffset=null,this._onError=_.onError||function(E){throw E},this._onPacket=_.onPacket||function(){},this._nextPacketNumber=0,this._encoding="utf-8",this._paused=!1}TE.prototype.write=function _(E){this._nextBuffers.push(E);while(!this._paused){var R=this._tryReadPacketHeader();if(!R)break;if(!this._combineNextBuffers(R.length))break;this._parsePacket(R)}};TE.prototype.append=function _(E){if(!E||E.length===0)return;var R=this._buffer.length,N=this._packetOffset===null?this._offset:this._packetOffset,A=R-N,L=null,U=!(E instanceof Array||Array.isArray(E))?[E]:E,G=0,S=0;for(var C=0;C1){L=CO.allocUnsafe(G),S=0;for(var C=0;C>>0)]};TE.prototype.parseUnsignedNumber=function _(E){if(E===1)return this._buffer[this._offset++];var R=this._buffer,N=this._offset+E-1,A=0;if(E>4){var L=new Error("parseUnsignedNumber: Supports only up to 4 bytes");throw L.offset=this._offset-this._packetOffset-1,L.code="PARSER_UNSIGNED_TOO_LONG",L}while(N>=this._offset)A=(A<<8|R[N])>>>0,N--;return this._offset+=E,A};TE.prototype.parseLengthCodedString=function(){var _=this.parseLengthCodedNumber();if(_===null)return null;return this.parseString(_)};TE.prototype.parseLengthCodedBuffer=function(){var _=this.parseLengthCodedNumber();if(_===null)return null;return this.parseBuffer(_)};TE.prototype.parseLengthCodedNumber=function _(){if(this._offset>=this._buffer.length){var E=new Error("Parser: read past end");throw E.offset=this._offset-this._packetOffset,E.code="PARSER_READ_PAST_END",E}var R=this._buffer[this._offset++];if(R<=250)return R;switch(R){case 251:return null;case 252:return this.parseUnsignedNumber(2);case 253:return this.parseUnsignedNumber(3);case 254:break;default:var E=new Error("Unexpected first byte"+(R?": 0x"+R.toString(16):""));throw E.offset=this._offset-this._packetOffset-1,E.code="PARSER_BAD_LENGTH_BYTE",E}var N=this.parseUnsignedNumber(4),A=this.parseUnsignedNumber(4),L;if(A>>>21){if(L=b$(A5).times(A).plus(N).toString(),this._supportBigNumbers)return L;var E=new Error('parseLengthCodedNumber: JS precision range exceeded, number is >= 53 bit: "'+L+'"');throw E.offset=this._offset-this._packetOffset-8,E.code="PARSER_JS_PRECISION_RANGE_EXCEEDED",E}return L=N+A5*A,L};TE.prototype.parseFiller=function(_){return this.parseBuffer(_)};TE.prototype.parseNullTerminatedBuffer=function(){var _=this._nullByteOffset(),E=this._buffer.slice(this._offset,_);return this._offset=_+1,E};TE.prototype.parseNullTerminatedString=function(){var _=this._nullByteOffset(),E=this._buffer.toString(this._encoding,this._offset,_);return this._offset=_+1,E};TE.prototype._nullByteOffset=function(){var _=this._offset;while(this._buffer[_]!==0)if(_++,_>=this._buffer.length){var E=new Error("Offset of null terminated string not found.");throw E.offset=this._offset-this._packetOffset,E.code="PARSER_MISSING_NULL_BYTE",E}return _};TE.prototype.parsePacketTerminatedBuffer=function _(){var E=this._packetEnd-this._offset;return this.parseBuffer(E)};TE.prototype.parsePacketTerminatedString=function(){var _=this._packetEnd-this._offset;return this.parseString(_)};TE.prototype.parseBuffer=function(_){var E=CO.alloc(_);return this._buffer.copy(E,0,this._offset,this._offset+_),this._offset+=_,E};TE.prototype.parseString=function(_){var E=this._offset,R=E+_,N=this._buffer.toString(this._encoding,E,R);return this._offset=R,N};TE.prototype.parseGeometryValue=function(){var _=this.parseLengthCodedBuffer(),E=4;if(_===null||!_.length)return null;function R(){var N=null,A=_.readUInt8(E);E+=1;var L=A?_.readUInt32LE(E):_.readUInt32BE(E);switch(E+=4,L){case 1:var U=A?_.readDoubleLE(E):_.readDoubleBE(E);E+=8;var G=A?_.readDoubleLE(E):_.readDoubleBE(E);E+=8,N={x:U,y:G};break;case 2:var S=A?_.readUInt32LE(E):_.readUInt32BE(E);E+=4,N=[];for(var C=S;C>0;C--){var U=A?_.readDoubleLE(E):_.readDoubleBE(E);E+=8;var G=A?_.readDoubleLE(E):_.readDoubleBE(E);E+=8,N.push({x:U,y:G})}break;case 3:var Y=A?_.readUInt32LE(E):_.readUInt32BE(E);E+=4,N=[];for(var C=Y;C>0;C--){var S=A?_.readUInt32LE(E):_.readUInt32BE(E);E+=4;var M=[];for(var H=S;H>0;H--){var U=A?_.readDoubleLE(E):_.readDoubleBE(E);E+=8;var G=A?_.readDoubleLE(E):_.readDoubleBE(E);E+=8,M.push({x:U,y:G})}N.push(M)}break;case 4:case 5:case 6:case 7:var X=A?_.readUInt32LE(E):_.readUInt32BE(E);E+=4;var N=[];for(var C=X;C>0;C--)N.push(R());break}return N}return R()};TE.prototype.reachedPacketEnd=function(){return this._offset===this._packetEnd};TE.prototype.incrementPacketNumber=function(){var _=this._nextPacketNumber;return this._nextPacketNumber=(this._nextPacketNumber+1)%256,_};TE.prototype.resetPacketNumber=function(){this._nextPacketNumber=0};TE.prototype.packetLength=function _(){if(!this._packetHeader)return null;return this._packetHeader.length+this._longPacketBuffers.size};TE.prototype._combineNextBuffers=function _(E){var R=this._buffer.length-this._offset;if(R>=E)return!0;if(R+this._nextBuffers.size0){var L=this._nextBuffers.shift();N.push(L),A-=L.length}return this.append(N),!0};TE.prototype._combineLongPacketBuffers=function _(){if(!this._longPacketBuffers.size)return;var E=this._buffer.length-this._offset,R=this._buffer.length-this._packetEnd,N=null,A=CO.allocUnsafe(E+this._longPacketBuffers.size),L=0;while(N=this._longPacketBuffers.shift())L+=N.copy(A,L);this._buffer.copy(A,L,this._offset),this._buffer=A,this._offset=0,this._packetEnd=this._buffer.length-R,this._packetOffset=0};TE.prototype._parsePacket=function _(E){if(this._packetEnd=this._offset+E.length,this._packetOffset=this._offset,E.length===i$){this._longPacketBuffers.push(this._buffer.slice(this._packetOffset,this._packetEnd)),this._advanceToNextPacket();return}this._combineLongPacketBuffers();var R=!0;try{this._onPacket(E),R=!1}catch(N){if(!N||typeof N.code!=="string"||N.code.substr(0,7)!=="PARSER_")throw N;this._onError(N),R=!1}finally{if(this._advanceToNextPacket(),R)process.nextTick(this.write.bind(this))}};TE.prototype._tryReadPacketHeader=function _(){if(this._packetHeader)return this._packetHeader;if(!this._combineNextBuffers(u$))return null;if(this._packetHeader=new y$(this.parseUnsignedNumber(3),this.parseUnsignedNumber(1)),this._packetHeader.number!==this._nextPacketNumber){var E=new Error("Packets out of order. Got: "+this._packetHeader.number+" Expected: "+this._nextPacketNumber);E.code="PROTOCOL_PACKETS_OUT_OF_ORDER",E.fatal=!0,this._onError(E)}return this.incrementPacketNumber(),this._packetHeader};TE.prototype._advanceToNextPacket=function(){this._offset=this._packetEnd,this._packetHeader=null,this._packetEnd=null,this._packetOffset=null}});var G5=j((ap,U5)=>{U5.exports=H0;function H0(_){_=_||{},this.status=254,this.authMethodName=_.authMethodName,this.authMethodData=_.authMethodData}H0.prototype.parse=function _(E){this.status=E.parseUnsignedNumber(1),this.authMethodName=E.parseNullTerminatedString(),this.authMethodData=E.parsePacketTerminatedBuffer()};H0.prototype.write=function _(E){E.writeUnsignedNumber(1,this.status),E.writeNullTerminatedString(this.authMethodName),E.writeBuffer(this.authMethodData)}});var S5=j((ep,D5)=>{D5.exports=W0;function W0(_){_=_||{},this.data=_.data}W0.prototype.parse=function _(E){this.data=E.parsePacketTerminatedBuffer()};W0.prototype.write=function _(E){E.writeBuffer(this.data)}});var P5=j((_h,C5)=>{var c$=PN().Buffer;C5.exports=M0;function M0(_){_=_||{},this.clientFlags=_.clientFlags,this.maxPacketSize=_.maxPacketSize,this.charsetNumber=_.charsetNumber,this.filler=void 0,this.user=_.user,this.scrambleBuff=_.scrambleBuff,this.database=_.database,this.protocol41=_.protocol41}M0.prototype.parse=function(_){if(this.protocol41)this.clientFlags=_.parseUnsignedNumber(4),this.maxPacketSize=_.parseUnsignedNumber(4),this.charsetNumber=_.parseUnsignedNumber(1),this.filler=_.parseFiller(23),this.user=_.parseNullTerminatedString(),this.scrambleBuff=_.parseLengthCodedBuffer(),this.database=_.parseNullTerminatedString();else this.clientFlags=_.parseUnsignedNumber(2),this.maxPacketSize=_.parseUnsignedNumber(3),this.user=_.parseNullTerminatedString(),this.scrambleBuff=_.parseBuffer(8),this.database=_.parseLengthCodedBuffer()};M0.prototype.write=function(_){if(this.protocol41)_.writeUnsignedNumber(4,this.clientFlags),_.writeUnsignedNumber(4,this.maxPacketSize),_.writeUnsignedNumber(1,this.charsetNumber),_.writeFiller(23),_.writeNullTerminatedString(this.user),_.writeLengthCodedBuffer(this.scrambleBuff),_.writeNullTerminatedString(this.database);else if(_.writeUnsignedNumber(2,this.clientFlags),_.writeUnsignedNumber(3,this.maxPacketSize),_.writeNullTerminatedString(this.user),_.writeBuffer(this.scrambleBuff),this.database&&this.database.length)_.writeFiller(1),_.writeBuffer(c$.from(this.database))}});var H5=j((Eh,Y5)=>{Y5.exports=F0;function F0(_){_=_||{},this.command=17,this.user=_.user,this.scrambleBuff=_.scrambleBuff,this.database=_.database,this.charsetNumber=_.charsetNumber}F0.prototype.parse=function(_){this.command=_.parseUnsignedNumber(1),this.user=_.parseNullTerminatedString(),this.scrambleBuff=_.parseLengthCodedBuffer(),this.database=_.parseNullTerminatedString(),this.charsetNumber=_.parseUnsignedNumber(1)};F0.prototype.write=function(_){_.writeUnsignedNumber(1,this.command),_.writeNullTerminatedString(this.user),_.writeLengthCodedBuffer(this.scrambleBuff),_.writeNullTerminatedString(this.database),_.writeUnsignedNumber(2,this.charsetNumber)}});var M5=j((Rh,W5)=>{W5.exports=B0;function B0(){this.command=14}B0.prototype.write=function(_){_.writeUnsignedNumber(1,this.command)};B0.prototype.parse=function(_){this.command=_.parseUnsignedNumber(1)}});var B5=j((Nh,F5)=>{F5.exports=V0;function V0(_){this.command=3,this.sql=_}V0.prototype.write=function(_){_.writeUnsignedNumber(1,this.command),_.writeString(this.sql)};V0.prototype.parse=function(_){this.command=_.parseUnsignedNumber(1),this.sql=_.parsePacketTerminatedString()}});var K5=j((Th,V5)=>{V5.exports=K0;function K0(){this.command=1}K0.prototype.parse=function _(E){this.command=E.parseUnsignedNumber(1)};K0.prototype.write=function _(E){E.writeUnsignedNumber(1,this.command)}});var J5=j((Oh,X5)=>{X5.exports=X0;function X0(){this.command=9}X0.prototype.write=function(_){_.writeUnsignedNumber(1,this.command)};X0.prototype.parse=function(_){this.command=_.parseUnsignedNumber(1)}});var Z5=j((Ah,$5)=>{$5.exports=J0;function J0(){}J0.prototype.parse=function _(){};J0.prototype.write=function _(){}});var Q5=j((Ih,w5)=>{w5.exports=$0;function $0(_){_=_||{},this.fieldCount=void 0,this.warningCount=_.warningCount,this.serverStatus=_.serverStatus,this.protocol41=_.protocol41}$0.prototype.parse=function(_){if(this.fieldCount=_.parseUnsignedNumber(1),this.protocol41)this.warningCount=_.parseUnsignedNumber(2),this.serverStatus=_.parseUnsignedNumber(2)};$0.prototype.write=function(_){if(_.writeUnsignedNumber(1,254),this.protocol41)_.writeUnsignedNumber(2,this.warningCount),_.writeUnsignedNumber(2,this.serverStatus)}});var x5=j((Lh,z5)=>{z5.exports=Z0;function Z0(_){_=_||{},this.fieldCount=_.fieldCount,this.errno=_.errno,this.sqlStateMarker=_.sqlStateMarker,this.sqlState=_.sqlState,this.message=_.message}Z0.prototype.parse=function(_){if(this.fieldCount=_.parseUnsignedNumber(1),this.errno=_.parseUnsignedNumber(2),_.peak()===35)this.sqlStateMarker=_.parseString(1),this.sqlState=_.parseString(5);this.message=_.parsePacketTerminatedString()};Z0.prototype.write=function(_){if(_.writeUnsignedNumber(1,255),_.writeUnsignedNumber(2,this.errno),this.sqlStateMarker)_.writeString(this.sqlStateMarker),_.writeString(this.sqlState);_.writeString(this.message)}});var HI=j((M_)=>{M_.DECIMAL=0;M_.TINY=1;M_.SHORT=2;M_.LONG=3;M_.FLOAT=4;M_.DOUBLE=5;M_.NULL=6;M_.TIMESTAMP=7;M_.LONGLONG=8;M_.INT24=9;M_.DATE=10;M_.TIME=11;M_.DATETIME=12;M_.YEAR=13;M_.NEWDATE=14;M_.VARCHAR=15;M_.BIT=16;M_.TIMESTAMP2=17;M_.DATETIME2=18;M_.TIME2=19;M_.JSON=245;M_.NEWDECIMAL=246;M_.ENUM=247;M_.SET=248;M_.TINY_BLOB=249;M_.MEDIUM_BLOB=250;M_.LONG_BLOB=251;M_.BLOB=252;M_.VAR_STRING=253;M_.STRING=254;M_.GEOMETRY=255;M_[0]="DECIMAL";M_[1]="TINY";M_[2]="SHORT";M_[3]="LONG";M_[4]="FLOAT";M_[5]="DOUBLE";M_[6]="NULL";M_[7]="TIMESTAMP";M_[8]="LONGLONG";M_[9]="INT24";M_[10]="DATE";M_[11]="TIME";M_[12]="DATETIME";M_[13]="YEAR";M_[14]="NEWDATE";M_[15]="VARCHAR";M_[16]="BIT";M_[17]="TIMESTAMP2";M_[18]="DATETIME2";M_[19]="TIME2";M_[245]="JSON";M_[246]="NEWDECIMAL";M_[247]="ENUM";M_[248]="SET";M_[249]="TINY_BLOB";M_[250]="MEDIUM_BLOB";M_[251]="LONG_BLOB";M_[252]="BLOB";M_[253]="VAR_STRING";M_[254]="STRING";M_[255]="GEOMETRY"});var w0=j((Gh,q5)=>{var d$=HI();q5.exports=WI;function WI(_){_=_||{},this.parser=_.parser,this.packet=_.packet,this.db=_.packet.db,this.table=_.packet.table,this.name=_.packet.name,this.type=d$[_.packet.type],this.length=_.packet.length}WI.prototype.string=function(){return this.parser.parseLengthCodedString()};WI.prototype.buffer=function(){return this.parser.parseLengthCodedBuffer()};WI.prototype.geometry=function(){return this.parser.parseGeometryValue()}});var j5=j((Dh,f5)=>{f5.exports=Q0;function Q0(_){_=_||{},this.catalog=_.catalog,this.db=_.db,this.table=_.table,this.orgTable=_.orgTable,this.name=_.name,this.orgName=_.orgName,this.charsetNr=_.charsetNr,this.length=_.length,this.type=_.type,this.flags=_.flags,this.decimals=_.decimals,this.default=_.default,this.zeroFill=_.zeroFill,this.protocol41=_.protocol41}Q0.prototype.parse=function(_){if(this.protocol41){if(this.catalog=_.parseLengthCodedString(),this.db=_.parseLengthCodedString(),this.table=_.parseLengthCodedString(),this.orgTable=_.parseLengthCodedString(),this.name=_.parseLengthCodedString(),this.orgName=_.parseLengthCodedString(),_.parseLengthCodedNumber()!==12){var E=new TypeError("Received invalid field length");throw E.code="PARSER_INVALID_FIELD_LENGTH",E}this.charsetNr=_.parseUnsignedNumber(2),this.length=_.parseUnsignedNumber(4),this.type=_.parseUnsignedNumber(1),this.flags=_.parseUnsignedNumber(2),this.decimals=_.parseUnsignedNumber(1);var R=_.parseBuffer(2);if(R[0]!==0||R[1]!==0){var E=new TypeError("Received invalid filler");throw E.code="PARSER_INVALID_FILLER",E}if(this.zeroFill=this.flags&64?!0:!1,_.reachedPacketEnd())return;this.default=_.parseLengthCodedString()}else this.table=_.parseLengthCodedString(),this.name=_.parseLengthCodedString(),this.length=_.parseUnsignedNumber(_.parseUnsignedNumber(1)),this.type=_.parseUnsignedNumber(_.parseUnsignedNumber(1))};Q0.prototype.write=function(_){if(this.protocol41){if(_.writeLengthCodedString(this.catalog),_.writeLengthCodedString(this.db),_.writeLengthCodedString(this.table),_.writeLengthCodedString(this.orgTable),_.writeLengthCodedString(this.name),_.writeLengthCodedString(this.orgName),_.writeLengthCodedNumber(12),_.writeUnsignedNumber(2,this.charsetNr||0),_.writeUnsignedNumber(4,this.length||0),_.writeUnsignedNumber(1,this.type||0),_.writeUnsignedNumber(2,this.flags||0),_.writeUnsignedNumber(1,this.decimals||0),_.writeFiller(2),this.default!==void 0)_.writeLengthCodedString(this.default)}else _.writeLengthCodedString(this.table),_.writeLengthCodedString(this.name),_.writeUnsignedNumber(1,1),_.writeUnsignedNumber(1,this.length),_.writeUnsignedNumber(1,1),_.writeUnsignedNumber(1,this.type)}});var h5=j((Sh,p5)=>{var v5=PN().Buffer,l$=MT();p5.exports=MI;function MI(_){if(_=_||{},this.protocolVersion=_.protocolVersion,this.serverVersion=_.serverVersion,this.threadId=_.threadId,this.scrambleBuff1=_.scrambleBuff1,this.filler1=_.filler1,this.serverCapabilities1=_.serverCapabilities1,this.serverLanguage=_.serverLanguage,this.serverStatus=_.serverStatus,this.serverCapabilities2=_.serverCapabilities2,this.scrambleLength=_.scrambleLength,this.filler2=_.filler2,this.scrambleBuff2=_.scrambleBuff2,this.filler3=_.filler3,this.pluginData=_.pluginData,this.protocol41=_.protocol41,this.protocol41)this.serverCapabilities1|=l$.CLIENT_PROTOCOL_41}MI.prototype.parse=function(_){if(this.protocolVersion=_.parseUnsignedNumber(1),this.serverVersion=_.parseNullTerminatedString(),this.threadId=_.parseUnsignedNumber(4),this.scrambleBuff1=_.parseBuffer(8),this.filler1=_.parseFiller(1),this.serverCapabilities1=_.parseUnsignedNumber(2),this.serverLanguage=_.parseUnsignedNumber(1),this.serverStatus=_.parseUnsignedNumber(2),this.protocol41=(this.serverCapabilities1&512)>0,this.protocol41)this.serverCapabilities2=_.parseUnsignedNumber(2),this.scrambleLength=_.parseUnsignedNumber(1),this.filler2=_.parseFiller(10),this.scrambleBuff2=_.parseBuffer(12),this.filler3=_.parseFiller(1);else this.filler2=_.parseFiller(13);if(_.reachedPacketEnd())return;this.pluginData=_.parsePacketTerminatedString();var E=this.pluginData.length-1;if(this.pluginData[E]==="\0")this.pluginData=this.pluginData.substr(0,E)};MI.prototype.write=function(_){if(_.writeUnsignedNumber(1,this.protocolVersion),_.writeNullTerminatedString(this.serverVersion),_.writeUnsignedNumber(4,this.threadId),_.writeBuffer(this.scrambleBuff1),_.writeFiller(1),_.writeUnsignedNumber(2,this.serverCapabilities1),_.writeUnsignedNumber(1,this.serverLanguage),_.writeUnsignedNumber(2,this.serverStatus),this.protocol41)_.writeUnsignedNumber(2,this.serverCapabilities2),_.writeUnsignedNumber(1,this.scrambleLength),_.writeFiller(10);if(_.writeNullTerminatedBuffer(this.scrambleBuff2),this.pluginData!==void 0)_.writeNullTerminatedString(this.pluginData)};MI.prototype.scrambleBuff=function(){var _=null;if(typeof this.scrambleBuff2==="undefined")_=v5.from(this.scrambleBuff1);else _=v5.allocUnsafe(this.scrambleBuff1.length+this.scrambleBuff2.length),this.scrambleBuff1.copy(_,0),this.scrambleBuff2.copy(_,this.scrambleBuff1.length);return _}});var g5=j((Ch,m5)=>{m5.exports=k5;function k5(_){this.data=_}k5.prototype.write=function(_){_.writeBuffer(this.data)}});var b5=j((Ph,y5)=>{y5.exports=z0;function z0(_){_=_||{},this.filename=_.filename}z0.prototype.parse=function _(E){if(E.parseLengthCodedNumber()!==null){var R=new TypeError("Received invalid field length");throw R.code="PARSER_INVALID_FIELD_LENGTH",R}this.filename=E.parsePacketTerminatedString()};z0.prototype.write=function _(E){E.writeLengthCodedNumber(null),E.writeString(this.filename)}});var u5=j((Yh,i5)=>{var n$=/^[^:0-9]+: [0-9]+[^:0-9]+: ([0-9]+)[^:0-9]+: [0-9]+[^:0-9]*$/;i5.exports=x0;function x0(_){_=_||{},this.fieldCount=void 0,this.affectedRows=void 0,this.insertId=void 0,this.serverStatus=void 0,this.warningCount=void 0,this.message=void 0,this.protocol41=_.protocol41}x0.prototype.parse=function(_){if(this.fieldCount=_.parseUnsignedNumber(1),this.affectedRows=_.parseLengthCodedNumber(),this.insertId=_.parseLengthCodedNumber(),this.protocol41)this.serverStatus=_.parseUnsignedNumber(2),this.warningCount=_.parseUnsignedNumber(2);this.message=_.parsePacketTerminatedString(),this.changedRows=0;var E=n$.exec(this.message);if(E!==null)this.changedRows=parseInt(E[1],10)};x0.prototype.write=function(_){if(_.writeUnsignedNumber(1,0),_.writeLengthCodedNumber(this.affectedRows||0),_.writeLengthCodedNumber(this.insertId||0),this.protocol41)_.writeUnsignedNumber(2,this.serverStatus||0),_.writeUnsignedNumber(2,this.warningCount||0);_.writeString(this.message)}});var d5=j((Hh,c5)=>{c5.exports=q0;function q0(_){_=_||{},this.scrambleBuff=_.scrambleBuff}q0.prototype.parse=function(_){this.scrambleBuff=_.parsePacketTerminatedBuffer()};q0.prototype.write=function(_){_.writeBuffer(this.scrambleBuff)}});var n5=j((Wh,l5)=>{l5.exports=f0;function f0(_){_=_||{},this.fieldCount=_.fieldCount}f0.prototype.parse=function(_){this.fieldCount=_.parseLengthCodedNumber()};f0.prototype.write=function(_){_.writeLengthCodedNumber(this.fieldCount)}});var r5=j((Mh,t5)=>{var SE=HI(),s5=S0(),o$=w0(),o5=Math.pow(2,53);t5.exports=j0;function j0(){}Object.defineProperty(j0.prototype,"parse",{configurable:!0,enumerable:!1,value:s$});Object.defineProperty(j0.prototype,"_typeCast",{configurable:!0,enumerable:!1,value:t$});function s$(_,E,R,N,A){var L=this,U=function(){return L._typeCast(S,_,A.config.timezone,A.config.supportBigNumbers,A.config.bigNumberStrings,A.config.dateStrings)};for(var G=0;G=o5||Number(U)<=-o5)?U:Number(U);case SE.BIT:return E.parseLengthCodedBuffer();case SE.STRING:case SE.VAR_STRING:case SE.TINY_BLOB:case SE.MEDIUM_BLOB:case SE.LONG_BLOB:case SE.BLOB:return _.charsetNr===s5.BINARY?E.parseLengthCodedBuffer():E.parseLengthCodedString();case SE.GEOMETRY:return E.parseGeometryValue();default:return E.parseLengthCodedString()}}function r$(_,E){if(Array.isArray(E))return E.indexOf(SE[_])!==-1;else return Boolean(E)}});var e5=j((Fh,a5)=>{var a$=MT();a5.exports=v0;function v0(_){_=_||{},this.clientFlags=_.clientFlags|a$.CLIENT_SSL,this.maxPacketSize=_.maxPacketSize,this.charsetNumber=_.charsetNumber}v0.prototype.parse=function(_){this.clientFlags=_.parseUnsignedNumber(4),this.maxPacketSize=_.parseUnsignedNumber(4),this.charsetNumber=_.parseUnsignedNumber(1)};v0.prototype.write=function(_){_.writeUnsignedNumber(4,this.clientFlags),_.writeUnsignedNumber(4,this.maxPacketSize),_.writeUnsignedNumber(1,this.charsetNumber),_.writeFiller(23)}});var E8=j((Bh,_8)=>{_8.exports=p0;function p0(){this.message=void 0}p0.prototype.parse=function(_){this.message=_.parsePacketTerminatedString();var E=this.message.split(/\s\s/);for(var R=0;R{R8.exports=h0;function h0(_){_=_||{},this.firstByte=_.firstByte||254}h0.prototype.parse=function(_){this.firstByte=_.parseUnsignedNumber(1)};h0.prototype.write=function(_){_.writeUnsignedNumber(1,this.firstByte)}});var gN=j((FE)=>{FE.AuthSwitchRequestPacket=G5();FE.AuthSwitchResponsePacket=S5();FE.ClientAuthenticationPacket=P5();FE.ComChangeUserPacket=H5();FE.ComPingPacket=M5();FE.ComQueryPacket=B5();FE.ComQuitPacket=K5();FE.ComStatisticsPacket=J5();FE.EmptyPacket=Z5();FE.EofPacket=Q5();FE.ErrorPacket=x5();FE.Field=w0();FE.FieldPacket=j5();FE.HandshakeInitializationPacket=h5();FE.LocalDataFilePacket=g5();FE.LocalInfileRequestPacket=b5();FE.OkPacket=u5();FE.OldPasswordPacket=d5();FE.ResultSetHeaderPacket=n5();FE.RowDataPacket=r5();FE.SSLRequestPacket=e5();FE.StatisticsPacket=E8();FE.UseOldPasswordPacket=N8()});var T8=j((T)=>{T.EE_CANTCREATEFILE=1;T.EE_READ=2;T.EE_WRITE=3;T.EE_BADCLOSE=4;T.EE_OUTOFMEMORY=5;T.EE_DELETE=6;T.EE_LINK=7;T.EE_EOFERR=9;T.EE_CANTLOCK=10;T.EE_CANTUNLOCK=11;T.EE_DIR=12;T.EE_STAT=13;T.EE_CANT_CHSIZE=14;T.EE_CANT_OPEN_STREAM=15;T.EE_GETWD=16;T.EE_SETWD=17;T.EE_LINK_WARNING=18;T.EE_OPEN_WARNING=19;T.EE_DISK_FULL=20;T.EE_CANT_MKDIR=21;T.EE_UNKNOWN_CHARSET=22;T.EE_OUT_OF_FILERESOURCES=23;T.EE_CANT_READLINK=24;T.EE_CANT_SYMLINK=25;T.EE_REALPATH=26;T.EE_SYNC=27;T.EE_UNKNOWN_COLLATION=28;T.EE_FILENOTFOUND=29;T.EE_FILE_NOT_CLOSED=30;T.EE_CHANGE_OWNERSHIP=31;T.EE_CHANGE_PERMISSIONS=32;T.EE_CANT_SEEK=33;T.EE_CAPACITY_EXCEEDED=34;T.HA_ERR_KEY_NOT_FOUND=120;T.HA_ERR_FOUND_DUPP_KEY=121;T.HA_ERR_INTERNAL_ERROR=122;T.HA_ERR_RECORD_CHANGED=123;T.HA_ERR_WRONG_INDEX=124;T.HA_ERR_CRASHED=126;T.HA_ERR_WRONG_IN_RECORD=127;T.HA_ERR_OUT_OF_MEM=128;T.HA_ERR_NOT_A_TABLE=130;T.HA_ERR_WRONG_COMMAND=131;T.HA_ERR_OLD_FILE=132;T.HA_ERR_NO_ACTIVE_RECORD=133;T.HA_ERR_RECORD_DELETED=134;T.HA_ERR_RECORD_FILE_FULL=135;T.HA_ERR_INDEX_FILE_FULL=136;T.HA_ERR_END_OF_FILE=137;T.HA_ERR_UNSUPPORTED=138;T.HA_ERR_TOO_BIG_ROW=139;T.HA_WRONG_CREATE_OPTION=140;T.HA_ERR_FOUND_DUPP_UNIQUE=141;T.HA_ERR_UNKNOWN_CHARSET=142;T.HA_ERR_WRONG_MRG_TABLE_DEF=143;T.HA_ERR_CRASHED_ON_REPAIR=144;T.HA_ERR_CRASHED_ON_USAGE=145;T.HA_ERR_LOCK_WAIT_TIMEOUT=146;T.HA_ERR_LOCK_TABLE_FULL=147;T.HA_ERR_READ_ONLY_TRANSACTION=148;T.HA_ERR_LOCK_DEADLOCK=149;T.HA_ERR_CANNOT_ADD_FOREIGN=150;T.HA_ERR_NO_REFERENCED_ROW=151;T.HA_ERR_ROW_IS_REFERENCED=152;T.HA_ERR_NO_SAVEPOINT=153;T.HA_ERR_NON_UNIQUE_BLOCK_SIZE=154;T.HA_ERR_NO_SUCH_TABLE=155;T.HA_ERR_TABLE_EXIST=156;T.HA_ERR_NO_CONNECTION=157;T.HA_ERR_NULL_IN_SPATIAL=158;T.HA_ERR_TABLE_DEF_CHANGED=159;T.HA_ERR_NO_PARTITION_FOUND=160;T.HA_ERR_RBR_LOGGING_FAILED=161;T.HA_ERR_DROP_INDEX_FK=162;T.HA_ERR_FOREIGN_DUPLICATE_KEY=163;T.HA_ERR_TABLE_NEEDS_UPGRADE=164;T.HA_ERR_TABLE_READONLY=165;T.HA_ERR_AUTOINC_READ_FAILED=166;T.HA_ERR_AUTOINC_ERANGE=167;T.HA_ERR_GENERIC=168;T.HA_ERR_RECORD_IS_THE_SAME=169;T.HA_ERR_LOGGING_IMPOSSIBLE=170;T.HA_ERR_CORRUPT_EVENT=171;T.HA_ERR_NEW_FILE=172;T.HA_ERR_ROWS_EVENT_APPLY=173;T.HA_ERR_INITIALIZATION=174;T.HA_ERR_FILE_TOO_SHORT=175;T.HA_ERR_WRONG_CRC=176;T.HA_ERR_TOO_MANY_CONCURRENT_TRXS=177;T.HA_ERR_NOT_IN_LOCK_PARTITIONS=178;T.HA_ERR_INDEX_COL_TOO_LONG=179;T.HA_ERR_INDEX_CORRUPT=180;T.HA_ERR_UNDO_REC_TOO_BIG=181;T.HA_FTS_INVALID_DOCID=182;T.HA_ERR_TABLE_IN_FK_CHECK=183;T.HA_ERR_TABLESPACE_EXISTS=184;T.HA_ERR_TOO_MANY_FIELDS=185;T.HA_ERR_ROW_IN_WRONG_PARTITION=186;T.HA_ERR_INNODB_READ_ONLY=187;T.HA_ERR_FTS_EXCEED_RESULT_CACHE_LIMIT=188;T.HA_ERR_TEMP_FILE_WRITE_FAILURE=189;T.HA_ERR_INNODB_FORCED_RECOVERY=190;T.HA_ERR_FTS_TOO_MANY_WORDS_IN_PHRASE=191;T.HA_ERR_FK_DEPTH_EXCEEDED=192;T.HA_MISSING_CREATE_OPTION=193;T.HA_ERR_SE_OUT_OF_MEMORY=194;T.HA_ERR_TABLE_CORRUPT=195;T.HA_ERR_QUERY_INTERRUPTED=196;T.HA_ERR_TABLESPACE_MISSING=197;T.HA_ERR_TABLESPACE_IS_NOT_EMPTY=198;T.HA_ERR_WRONG_FILE_NAME=199;T.HA_ERR_NOT_ALLOWED_COMMAND=200;T.HA_ERR_COMPUTE_FAILED=201;T.ER_HASHCHK=1000;T.ER_NISAMCHK=1001;T.ER_NO=1002;T.ER_YES=1003;T.ER_CANT_CREATE_FILE=1004;T.ER_CANT_CREATE_TABLE=1005;T.ER_CANT_CREATE_DB=1006;T.ER_DB_CREATE_EXISTS=1007;T.ER_DB_DROP_EXISTS=1008;T.ER_DB_DROP_DELETE=1009;T.ER_DB_DROP_RMDIR=1010;T.ER_CANT_DELETE_FILE=1011;T.ER_CANT_FIND_SYSTEM_REC=1012;T.ER_CANT_GET_STAT=1013;T.ER_CANT_GET_WD=1014;T.ER_CANT_LOCK=1015;T.ER_CANT_OPEN_FILE=1016;T.ER_FILE_NOT_FOUND=1017;T.ER_CANT_READ_DIR=1018;T.ER_CANT_SET_WD=1019;T.ER_CHECKREAD=1020;T.ER_DISK_FULL=1021;T.ER_DUP_KEY=1022;T.ER_ERROR_ON_CLOSE=1023;T.ER_ERROR_ON_READ=1024;T.ER_ERROR_ON_RENAME=1025;T.ER_ERROR_ON_WRITE=1026;T.ER_FILE_USED=1027;T.ER_FILSORT_ABORT=1028;T.ER_FORM_NOT_FOUND=1029;T.ER_GET_ERRNO=1030;T.ER_ILLEGAL_HA=1031;T.ER_KEY_NOT_FOUND=1032;T.ER_NOT_FORM_FILE=1033;T.ER_NOT_KEYFILE=1034;T.ER_OLD_KEYFILE=1035;T.ER_OPEN_AS_READONLY=1036;T.ER_OUTOFMEMORY=1037;T.ER_OUT_OF_SORTMEMORY=1038;T.ER_UNEXPECTED_EOF=1039;T.ER_CON_COUNT_ERROR=1040;T.ER_OUT_OF_RESOURCES=1041;T.ER_BAD_HOST_ERROR=1042;T.ER_HANDSHAKE_ERROR=1043;T.ER_DBACCESS_DENIED_ERROR=1044;T.ER_ACCESS_DENIED_ERROR=1045;T.ER_NO_DB_ERROR=1046;T.ER_UNKNOWN_COM_ERROR=1047;T.ER_BAD_NULL_ERROR=1048;T.ER_BAD_DB_ERROR=1049;T.ER_TABLE_EXISTS_ERROR=1050;T.ER_BAD_TABLE_ERROR=1051;T.ER_NON_UNIQ_ERROR=1052;T.ER_SERVER_SHUTDOWN=1053;T.ER_BAD_FIELD_ERROR=1054;T.ER_WRONG_FIELD_WITH_GROUP=1055;T.ER_WRONG_GROUP_FIELD=1056;T.ER_WRONG_SUM_SELECT=1057;T.ER_WRONG_VALUE_COUNT=1058;T.ER_TOO_LONG_IDENT=1059;T.ER_DUP_FIELDNAME=1060;T.ER_DUP_KEYNAME=1061;T.ER_DUP_ENTRY=1062;T.ER_WRONG_FIELD_SPEC=1063;T.ER_PARSE_ERROR=1064;T.ER_EMPTY_QUERY=1065;T.ER_NONUNIQ_TABLE=1066;T.ER_INVALID_DEFAULT=1067;T.ER_MULTIPLE_PRI_KEY=1068;T.ER_TOO_MANY_KEYS=1069;T.ER_TOO_MANY_KEY_PARTS=1070;T.ER_TOO_LONG_KEY=1071;T.ER_KEY_COLUMN_DOES_NOT_EXITS=1072;T.ER_BLOB_USED_AS_KEY=1073;T.ER_TOO_BIG_FIELDLENGTH=1074;T.ER_WRONG_AUTO_KEY=1075;T.ER_READY=1076;T.ER_NORMAL_SHUTDOWN=1077;T.ER_GOT_SIGNAL=1078;T.ER_SHUTDOWN_COMPLETE=1079;T.ER_FORCING_CLOSE=1080;T.ER_IPSOCK_ERROR=1081;T.ER_NO_SUCH_INDEX=1082;T.ER_WRONG_FIELD_TERMINATORS=1083;T.ER_BLOBS_AND_NO_TERMINATED=1084;T.ER_TEXTFILE_NOT_READABLE=1085;T.ER_FILE_EXISTS_ERROR=1086;T.ER_LOAD_INFO=1087;T.ER_ALTER_INFO=1088;T.ER_WRONG_SUB_KEY=1089;T.ER_CANT_REMOVE_ALL_FIELDS=1090;T.ER_CANT_DROP_FIELD_OR_KEY=1091;T.ER_INSERT_INFO=1092;T.ER_UPDATE_TABLE_USED=1093;T.ER_NO_SUCH_THREAD=1094;T.ER_KILL_DENIED_ERROR=1095;T.ER_NO_TABLES_USED=1096;T.ER_TOO_BIG_SET=1097;T.ER_NO_UNIQUE_LOGFILE=1098;T.ER_TABLE_NOT_LOCKED_FOR_WRITE=1099;T.ER_TABLE_NOT_LOCKED=1100;T.ER_BLOB_CANT_HAVE_DEFAULT=1101;T.ER_WRONG_DB_NAME=1102;T.ER_WRONG_TABLE_NAME=1103;T.ER_TOO_BIG_SELECT=1104;T.ER_UNKNOWN_ERROR=1105;T.ER_UNKNOWN_PROCEDURE=1106;T.ER_WRONG_PARAMCOUNT_TO_PROCEDURE=1107;T.ER_WRONG_PARAMETERS_TO_PROCEDURE=1108;T.ER_UNKNOWN_TABLE=1109;T.ER_FIELD_SPECIFIED_TWICE=1110;T.ER_INVALID_GROUP_FUNC_USE=1111;T.ER_UNSUPPORTED_EXTENSION=1112;T.ER_TABLE_MUST_HAVE_COLUMNS=1113;T.ER_RECORD_FILE_FULL=1114;T.ER_UNKNOWN_CHARACTER_SET=1115;T.ER_TOO_MANY_TABLES=1116;T.ER_TOO_MANY_FIELDS=1117;T.ER_TOO_BIG_ROWSIZE=1118;T.ER_STACK_OVERRUN=1119;T.ER_WRONG_OUTER_JOIN=1120;T.ER_NULL_COLUMN_IN_INDEX=1121;T.ER_CANT_FIND_UDF=1122;T.ER_CANT_INITIALIZE_UDF=1123;T.ER_UDF_NO_PATHS=1124;T.ER_UDF_EXISTS=1125;T.ER_CANT_OPEN_LIBRARY=1126;T.ER_CANT_FIND_DL_ENTRY=1127;T.ER_FUNCTION_NOT_DEFINED=1128;T.ER_HOST_IS_BLOCKED=1129;T.ER_HOST_NOT_PRIVILEGED=1130;T.ER_PASSWORD_ANONYMOUS_USER=1131;T.ER_PASSWORD_NOT_ALLOWED=1132;T.ER_PASSWORD_NO_MATCH=1133;T.ER_UPDATE_INFO=1134;T.ER_CANT_CREATE_THREAD=1135;T.ER_WRONG_VALUE_COUNT_ON_ROW=1136;T.ER_CANT_REOPEN_TABLE=1137;T.ER_INVALID_USE_OF_NULL=1138;T.ER_REGEXP_ERROR=1139;T.ER_MIX_OF_GROUP_FUNC_AND_FIELDS=1140;T.ER_NONEXISTING_GRANT=1141;T.ER_TABLEACCESS_DENIED_ERROR=1142;T.ER_COLUMNACCESS_DENIED_ERROR=1143;T.ER_ILLEGAL_GRANT_FOR_TABLE=1144;T.ER_GRANT_WRONG_HOST_OR_USER=1145;T.ER_NO_SUCH_TABLE=1146;T.ER_NONEXISTING_TABLE_GRANT=1147;T.ER_NOT_ALLOWED_COMMAND=1148;T.ER_SYNTAX_ERROR=1149;T.ER_DELAYED_CANT_CHANGE_LOCK=1150;T.ER_TOO_MANY_DELAYED_THREADS=1151;T.ER_ABORTING_CONNECTION=1152;T.ER_NET_PACKET_TOO_LARGE=1153;T.ER_NET_READ_ERROR_FROM_PIPE=1154;T.ER_NET_FCNTL_ERROR=1155;T.ER_NET_PACKETS_OUT_OF_ORDER=1156;T.ER_NET_UNCOMPRESS_ERROR=1157;T.ER_NET_READ_ERROR=1158;T.ER_NET_READ_INTERRUPTED=1159;T.ER_NET_ERROR_ON_WRITE=1160;T.ER_NET_WRITE_INTERRUPTED=1161;T.ER_TOO_LONG_STRING=1162;T.ER_TABLE_CANT_HANDLE_BLOB=1163;T.ER_TABLE_CANT_HANDLE_AUTO_INCREMENT=1164;T.ER_DELAYED_INSERT_TABLE_LOCKED=1165;T.ER_WRONG_COLUMN_NAME=1166;T.ER_WRONG_KEY_COLUMN=1167;T.ER_WRONG_MRG_TABLE=1168;T.ER_DUP_UNIQUE=1169;T.ER_BLOB_KEY_WITHOUT_LENGTH=1170;T.ER_PRIMARY_CANT_HAVE_NULL=1171;T.ER_TOO_MANY_ROWS=1172;T.ER_REQUIRES_PRIMARY_KEY=1173;T.ER_NO_RAID_COMPILED=1174;T.ER_UPDATE_WITHOUT_KEY_IN_SAFE_MODE=1175;T.ER_KEY_DOES_NOT_EXITS=1176;T.ER_CHECK_NO_SUCH_TABLE=1177;T.ER_CHECK_NOT_IMPLEMENTED=1178;T.ER_CANT_DO_THIS_DURING_AN_TRANSACTION=1179;T.ER_ERROR_DURING_COMMIT=1180;T.ER_ERROR_DURING_ROLLBACK=1181;T.ER_ERROR_DURING_FLUSH_LOGS=1182;T.ER_ERROR_DURING_CHECKPOINT=1183;T.ER_NEW_ABORTING_CONNECTION=1184;T.ER_DUMP_NOT_IMPLEMENTED=1185;T.ER_FLUSH_MASTER_BINLOG_CLOSED=1186;T.ER_INDEX_REBUILD=1187;T.ER_MASTER=1188;T.ER_MASTER_NET_READ=1189;T.ER_MASTER_NET_WRITE=1190;T.ER_FT_MATCHING_KEY_NOT_FOUND=1191;T.ER_LOCK_OR_ACTIVE_TRANSACTION=1192;T.ER_UNKNOWN_SYSTEM_VARIABLE=1193;T.ER_CRASHED_ON_USAGE=1194;T.ER_CRASHED_ON_REPAIR=1195;T.ER_WARNING_NOT_COMPLETE_ROLLBACK=1196;T.ER_TRANS_CACHE_FULL=1197;T.ER_SLAVE_MUST_STOP=1198;T.ER_SLAVE_NOT_RUNNING=1199;T.ER_BAD_SLAVE=1200;T.ER_MASTER_INFO=1201;T.ER_SLAVE_THREAD=1202;T.ER_TOO_MANY_USER_CONNECTIONS=1203;T.ER_SET_CONSTANTS_ONLY=1204;T.ER_LOCK_WAIT_TIMEOUT=1205;T.ER_LOCK_TABLE_FULL=1206;T.ER_READ_ONLY_TRANSACTION=1207;T.ER_DROP_DB_WITH_READ_LOCK=1208;T.ER_CREATE_DB_WITH_READ_LOCK=1209;T.ER_WRONG_ARGUMENTS=1210;T.ER_NO_PERMISSION_TO_CREATE_USER=1211;T.ER_UNION_TABLES_IN_DIFFERENT_DIR=1212;T.ER_LOCK_DEADLOCK=1213;T.ER_TABLE_CANT_HANDLE_FT=1214;T.ER_CANNOT_ADD_FOREIGN=1215;T.ER_NO_REFERENCED_ROW=1216;T.ER_ROW_IS_REFERENCED=1217;T.ER_CONNECT_TO_MASTER=1218;T.ER_QUERY_ON_MASTER=1219;T.ER_ERROR_WHEN_EXECUTING_COMMAND=1220;T.ER_WRONG_USAGE=1221;T.ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT=1222;T.ER_CANT_UPDATE_WITH_READLOCK=1223;T.ER_MIXING_NOT_ALLOWED=1224;T.ER_DUP_ARGUMENT=1225;T.ER_USER_LIMIT_REACHED=1226;T.ER_SPECIFIC_ACCESS_DENIED_ERROR=1227;T.ER_LOCAL_VARIABLE=1228;T.ER_GLOBAL_VARIABLE=1229;T.ER_NO_DEFAULT=1230;T.ER_WRONG_VALUE_FOR_VAR=1231;T.ER_WRONG_TYPE_FOR_VAR=1232;T.ER_VAR_CANT_BE_READ=1233;T.ER_CANT_USE_OPTION_HERE=1234;T.ER_NOT_SUPPORTED_YET=1235;T.ER_MASTER_FATAL_ERROR_READING_BINLOG=1236;T.ER_SLAVE_IGNORED_TABLE=1237;T.ER_INCORRECT_GLOBAL_LOCAL_VAR=1238;T.ER_WRONG_FK_DEF=1239;T.ER_KEY_REF_DO_NOT_MATCH_TABLE_REF=1240;T.ER_OPERAND_COLUMNS=1241;T.ER_SUBQUERY_NO_1_ROW=1242;T.ER_UNKNOWN_STMT_HANDLER=1243;T.ER_CORRUPT_HELP_DB=1244;T.ER_CYCLIC_REFERENCE=1245;T.ER_AUTO_CONVERT=1246;T.ER_ILLEGAL_REFERENCE=1247;T.ER_DERIVED_MUST_HAVE_ALIAS=1248;T.ER_SELECT_REDUCED=1249;T.ER_TABLENAME_NOT_ALLOWED_HERE=1250;T.ER_NOT_SUPPORTED_AUTH_MODE=1251;T.ER_SPATIAL_CANT_HAVE_NULL=1252;T.ER_COLLATION_CHARSET_MISMATCH=1253;T.ER_SLAVE_WAS_RUNNING=1254;T.ER_SLAVE_WAS_NOT_RUNNING=1255;T.ER_TOO_BIG_FOR_UNCOMPRESS=1256;T.ER_ZLIB_Z_MEM_ERROR=1257;T.ER_ZLIB_Z_BUF_ERROR=1258;T.ER_ZLIB_Z_DATA_ERROR=1259;T.ER_CUT_VALUE_GROUP_CONCAT=1260;T.ER_WARN_TOO_FEW_RECORDS=1261;T.ER_WARN_TOO_MANY_RECORDS=1262;T.ER_WARN_NULL_TO_NOTNULL=1263;T.ER_WARN_DATA_OUT_OF_RANGE=1264;T.WARN_DATA_TRUNCATED=1265;T.ER_WARN_USING_OTHER_HANDLER=1266;T.ER_CANT_AGGREGATE_2COLLATIONS=1267;T.ER_DROP_USER=1268;T.ER_REVOKE_GRANTS=1269;T.ER_CANT_AGGREGATE_3COLLATIONS=1270;T.ER_CANT_AGGREGATE_NCOLLATIONS=1271;T.ER_VARIABLE_IS_NOT_STRUCT=1272;T.ER_UNKNOWN_COLLATION=1273;T.ER_SLAVE_IGNORED_SSL_PARAMS=1274;T.ER_SERVER_IS_IN_SECURE_AUTH_MODE=1275;T.ER_WARN_FIELD_RESOLVED=1276;T.ER_BAD_SLAVE_UNTIL_COND=1277;T.ER_MISSING_SKIP_SLAVE=1278;T.ER_UNTIL_COND_IGNORED=1279;T.ER_WRONG_NAME_FOR_INDEX=1280;T.ER_WRONG_NAME_FOR_CATALOG=1281;T.ER_WARN_QC_RESIZE=1282;T.ER_BAD_FT_COLUMN=1283;T.ER_UNKNOWN_KEY_CACHE=1284;T.ER_WARN_HOSTNAME_WONT_WORK=1285;T.ER_UNKNOWN_STORAGE_ENGINE=1286;T.ER_WARN_DEPRECATED_SYNTAX=1287;T.ER_NON_UPDATABLE_TABLE=1288;T.ER_FEATURE_DISABLED=1289;T.ER_OPTION_PREVENTS_STATEMENT=1290;T.ER_DUPLICATED_VALUE_IN_TYPE=1291;T.ER_TRUNCATED_WRONG_VALUE=1292;T.ER_TOO_MUCH_AUTO_TIMESTAMP_COLS=1293;T.ER_INVALID_ON_UPDATE=1294;T.ER_UNSUPPORTED_PS=1295;T.ER_GET_ERRMSG=1296;T.ER_GET_TEMPORARY_ERRMSG=1297;T.ER_UNKNOWN_TIME_ZONE=1298;T.ER_WARN_INVALID_TIMESTAMP=1299;T.ER_INVALID_CHARACTER_STRING=1300;T.ER_WARN_ALLOWED_PACKET_OVERFLOWED=1301;T.ER_CONFLICTING_DECLARATIONS=1302;T.ER_SP_NO_RECURSIVE_CREATE=1303;T.ER_SP_ALREADY_EXISTS=1304;T.ER_SP_DOES_NOT_EXIST=1305;T.ER_SP_DROP_FAILED=1306;T.ER_SP_STORE_FAILED=1307;T.ER_SP_LILABEL_MISMATCH=1308;T.ER_SP_LABEL_REDEFINE=1309;T.ER_SP_LABEL_MISMATCH=1310;T.ER_SP_UNINIT_VAR=1311;T.ER_SP_BADSELECT=1312;T.ER_SP_BADRETURN=1313;T.ER_SP_BADSTATEMENT=1314;T.ER_UPDATE_LOG_DEPRECATED_IGNORED=1315;T.ER_UPDATE_LOG_DEPRECATED_TRANSLATED=1316;T.ER_QUERY_INTERRUPTED=1317;T.ER_SP_WRONG_NO_OF_ARGS=1318;T.ER_SP_COND_MISMATCH=1319;T.ER_SP_NORETURN=1320;T.ER_SP_NORETURNEND=1321;T.ER_SP_BAD_CURSOR_QUERY=1322;T.ER_SP_BAD_CURSOR_SELECT=1323;T.ER_SP_CURSOR_MISMATCH=1324;T.ER_SP_CURSOR_ALREADY_OPEN=1325;T.ER_SP_CURSOR_NOT_OPEN=1326;T.ER_SP_UNDECLARED_VAR=1327;T.ER_SP_WRONG_NO_OF_FETCH_ARGS=1328;T.ER_SP_FETCH_NO_DATA=1329;T.ER_SP_DUP_PARAM=1330;T.ER_SP_DUP_VAR=1331;T.ER_SP_DUP_COND=1332;T.ER_SP_DUP_CURS=1333;T.ER_SP_CANT_ALTER=1334;T.ER_SP_SUBSELECT_NYI=1335;T.ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG=1336;T.ER_SP_VARCOND_AFTER_CURSHNDLR=1337;T.ER_SP_CURSOR_AFTER_HANDLER=1338;T.ER_SP_CASE_NOT_FOUND=1339;T.ER_FPARSER_TOO_BIG_FILE=1340;T.ER_FPARSER_BAD_HEADER=1341;T.ER_FPARSER_EOF_IN_COMMENT=1342;T.ER_FPARSER_ERROR_IN_PARAMETER=1343;T.ER_FPARSER_EOF_IN_UNKNOWN_PARAMETER=1344;T.ER_VIEW_NO_EXPLAIN=1345;T.ER_FRM_UNKNOWN_TYPE=1346;T.ER_WRONG_OBJECT=1347;T.ER_NONUPDATEABLE_COLUMN=1348;T.ER_VIEW_SELECT_DERIVED=1349;T.ER_VIEW_SELECT_CLAUSE=1350;T.ER_VIEW_SELECT_VARIABLE=1351;T.ER_VIEW_SELECT_TMPTABLE=1352;T.ER_VIEW_WRONG_LIST=1353;T.ER_WARN_VIEW_MERGE=1354;T.ER_WARN_VIEW_WITHOUT_KEY=1355;T.ER_VIEW_INVALID=1356;T.ER_SP_NO_DROP_SP=1357;T.ER_SP_GOTO_IN_HNDLR=1358;T.ER_TRG_ALREADY_EXISTS=1359;T.ER_TRG_DOES_NOT_EXIST=1360;T.ER_TRG_ON_VIEW_OR_TEMP_TABLE=1361;T.ER_TRG_CANT_CHANGE_ROW=1362;T.ER_TRG_NO_SUCH_ROW_IN_TRG=1363;T.ER_NO_DEFAULT_FOR_FIELD=1364;T.ER_DIVISION_BY_ZERO=1365;T.ER_TRUNCATED_WRONG_VALUE_FOR_FIELD=1366;T.ER_ILLEGAL_VALUE_FOR_TYPE=1367;T.ER_VIEW_NONUPD_CHECK=1368;T.ER_VIEW_CHECK_FAILED=1369;T.ER_PROCACCESS_DENIED_ERROR=1370;T.ER_RELAY_LOG_FAIL=1371;T.ER_PASSWD_LENGTH=1372;T.ER_UNKNOWN_TARGET_BINLOG=1373;T.ER_IO_ERR_LOG_INDEX_READ=1374;T.ER_BINLOG_PURGE_PROHIBITED=1375;T.ER_FSEEK_FAIL=1376;T.ER_BINLOG_PURGE_FATAL_ERR=1377;T.ER_LOG_IN_USE=1378;T.ER_LOG_PURGE_UNKNOWN_ERR=1379;T.ER_RELAY_LOG_INIT=1380;T.ER_NO_BINARY_LOGGING=1381;T.ER_RESERVED_SYNTAX=1382;T.ER_WSAS_FAILED=1383;T.ER_DIFF_GROUPS_PROC=1384;T.ER_NO_GROUP_FOR_PROC=1385;T.ER_ORDER_WITH_PROC=1386;T.ER_LOGGING_PROHIBIT_CHANGING_OF=1387;T.ER_NO_FILE_MAPPING=1388;T.ER_WRONG_MAGIC=1389;T.ER_PS_MANY_PARAM=1390;T.ER_KEY_PART_0=1391;T.ER_VIEW_CHECKSUM=1392;T.ER_VIEW_MULTIUPDATE=1393;T.ER_VIEW_NO_INSERT_FIELD_LIST=1394;T.ER_VIEW_DELETE_MERGE_VIEW=1395;T.ER_CANNOT_USER=1396;T.ER_XAER_NOTA=1397;T.ER_XAER_INVAL=1398;T.ER_XAER_RMFAIL=1399;T.ER_XAER_OUTSIDE=1400;T.ER_XAER_RMERR=1401;T.ER_XA_RBROLLBACK=1402;T.ER_NONEXISTING_PROC_GRANT=1403;T.ER_PROC_AUTO_GRANT_FAIL=1404;T.ER_PROC_AUTO_REVOKE_FAIL=1405;T.ER_DATA_TOO_LONG=1406;T.ER_SP_BAD_SQLSTATE=1407;T.ER_STARTUP=1408;T.ER_LOAD_FROM_FIXED_SIZE_ROWS_TO_VAR=1409;T.ER_CANT_CREATE_USER_WITH_GRANT=1410;T.ER_WRONG_VALUE_FOR_TYPE=1411;T.ER_TABLE_DEF_CHANGED=1412;T.ER_SP_DUP_HANDLER=1413;T.ER_SP_NOT_VAR_ARG=1414;T.ER_SP_NO_RETSET=1415;T.ER_CANT_CREATE_GEOMETRY_OBJECT=1416;T.ER_FAILED_ROUTINE_BREAK_BINLOG=1417;T.ER_BINLOG_UNSAFE_ROUTINE=1418;T.ER_BINLOG_CREATE_ROUTINE_NEED_SUPER=1419;T.ER_EXEC_STMT_WITH_OPEN_CURSOR=1420;T.ER_STMT_HAS_NO_OPEN_CURSOR=1421;T.ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG=1422;T.ER_NO_DEFAULT_FOR_VIEW_FIELD=1423;T.ER_SP_NO_RECURSION=1424;T.ER_TOO_BIG_SCALE=1425;T.ER_TOO_BIG_PRECISION=1426;T.ER_M_BIGGER_THAN_D=1427;T.ER_WRONG_LOCK_OF_SYSTEM_TABLE=1428;T.ER_CONNECT_TO_FOREIGN_DATA_SOURCE=1429;T.ER_QUERY_ON_FOREIGN_DATA_SOURCE=1430;T.ER_FOREIGN_DATA_SOURCE_DOESNT_EXIST=1431;T.ER_FOREIGN_DATA_STRING_INVALID_CANT_CREATE=1432;T.ER_FOREIGN_DATA_STRING_INVALID=1433;T.ER_CANT_CREATE_FEDERATED_TABLE=1434;T.ER_TRG_IN_WRONG_SCHEMA=1435;T.ER_STACK_OVERRUN_NEED_MORE=1436;T.ER_TOO_LONG_BODY=1437;T.ER_WARN_CANT_DROP_DEFAULT_KEYCACHE=1438;T.ER_TOO_BIG_DISPLAYWIDTH=1439;T.ER_XAER_DUPID=1440;T.ER_DATETIME_FUNCTION_OVERFLOW=1441;T.ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG=1442;T.ER_VIEW_PREVENT_UPDATE=1443;T.ER_PS_NO_RECURSION=1444;T.ER_SP_CANT_SET_AUTOCOMMIT=1445;T.ER_MALFORMED_DEFINER=1446;T.ER_VIEW_FRM_NO_USER=1447;T.ER_VIEW_OTHER_USER=1448;T.ER_NO_SUCH_USER=1449;T.ER_FORBID_SCHEMA_CHANGE=1450;T.ER_ROW_IS_REFERENCED_2=1451;T.ER_NO_REFERENCED_ROW_2=1452;T.ER_SP_BAD_VAR_SHADOW=1453;T.ER_TRG_NO_DEFINER=1454;T.ER_OLD_FILE_FORMAT=1455;T.ER_SP_RECURSION_LIMIT=1456;T.ER_SP_PROC_TABLE_CORRUPT=1457;T.ER_SP_WRONG_NAME=1458;T.ER_TABLE_NEEDS_UPGRADE=1459;T.ER_SP_NO_AGGREGATE=1460;T.ER_MAX_PREPARED_STMT_COUNT_REACHED=1461;T.ER_VIEW_RECURSIVE=1462;T.ER_NON_GROUPING_FIELD_USED=1463;T.ER_TABLE_CANT_HANDLE_SPKEYS=1464;T.ER_NO_TRIGGERS_ON_SYSTEM_SCHEMA=1465;T.ER_REMOVED_SPACES=1466;T.ER_AUTOINC_READ_FAILED=1467;T.ER_USERNAME=1468;T.ER_HOSTNAME=1469;T.ER_WRONG_STRING_LENGTH=1470;T.ER_NON_INSERTABLE_TABLE=1471;T.ER_ADMIN_WRONG_MRG_TABLE=1472;T.ER_TOO_HIGH_LEVEL_OF_NESTING_FOR_SELECT=1473;T.ER_NAME_BECOMES_EMPTY=1474;T.ER_AMBIGUOUS_FIELD_TERM=1475;T.ER_FOREIGN_SERVER_EXISTS=1476;T.ER_FOREIGN_SERVER_DOESNT_EXIST=1477;T.ER_ILLEGAL_HA_CREATE_OPTION=1478;T.ER_PARTITION_REQUIRES_VALUES_ERROR=1479;T.ER_PARTITION_WRONG_VALUES_ERROR=1480;T.ER_PARTITION_MAXVALUE_ERROR=1481;T.ER_PARTITION_SUBPARTITION_ERROR=1482;T.ER_PARTITION_SUBPART_MIX_ERROR=1483;T.ER_PARTITION_WRONG_NO_PART_ERROR=1484;T.ER_PARTITION_WRONG_NO_SUBPART_ERROR=1485;T.ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR=1486;T.ER_NO_CONST_EXPR_IN_RANGE_OR_LIST_ERROR=1487;T.ER_FIELD_NOT_FOUND_PART_ERROR=1488;T.ER_LIST_OF_FIELDS_ONLY_IN_HASH_ERROR=1489;T.ER_INCONSISTENT_PARTITION_INFO_ERROR=1490;T.ER_PARTITION_FUNC_NOT_ALLOWED_ERROR=1491;T.ER_PARTITIONS_MUST_BE_DEFINED_ERROR=1492;T.ER_RANGE_NOT_INCREASING_ERROR=1493;T.ER_INCONSISTENT_TYPE_OF_FUNCTIONS_ERROR=1494;T.ER_MULTIPLE_DEF_CONST_IN_LIST_PART_ERROR=1495;T.ER_PARTITION_ENTRY_ERROR=1496;T.ER_MIX_HANDLER_ERROR=1497;T.ER_PARTITION_NOT_DEFINED_ERROR=1498;T.ER_TOO_MANY_PARTITIONS_ERROR=1499;T.ER_SUBPARTITION_ERROR=1500;T.ER_CANT_CREATE_HANDLER_FILE=1501;T.ER_BLOB_FIELD_IN_PART_FUNC_ERROR=1502;T.ER_UNIQUE_KEY_NEED_ALL_FIELDS_IN_PF=1503;T.ER_NO_PARTS_ERROR=1504;T.ER_PARTITION_MGMT_ON_NONPARTITIONED=1505;T.ER_FOREIGN_KEY_ON_PARTITIONED=1506;T.ER_DROP_PARTITION_NON_EXISTENT=1507;T.ER_DROP_LAST_PARTITION=1508;T.ER_COALESCE_ONLY_ON_HASH_PARTITION=1509;T.ER_REORG_HASH_ONLY_ON_SAME_NO=1510;T.ER_REORG_NO_PARAM_ERROR=1511;T.ER_ONLY_ON_RANGE_LIST_PARTITION=1512;T.ER_ADD_PARTITION_SUBPART_ERROR=1513;T.ER_ADD_PARTITION_NO_NEW_PARTITION=1514;T.ER_COALESCE_PARTITION_NO_PARTITION=1515;T.ER_REORG_PARTITION_NOT_EXIST=1516;T.ER_SAME_NAME_PARTITION=1517;T.ER_NO_BINLOG_ERROR=1518;T.ER_CONSECUTIVE_REORG_PARTITIONS=1519;T.ER_REORG_OUTSIDE_RANGE=1520;T.ER_PARTITION_FUNCTION_FAILURE=1521;T.ER_PART_STATE_ERROR=1522;T.ER_LIMITED_PART_RANGE=1523;T.ER_PLUGIN_IS_NOT_LOADED=1524;T.ER_WRONG_VALUE=1525;T.ER_NO_PARTITION_FOR_GIVEN_VALUE=1526;T.ER_FILEGROUP_OPTION_ONLY_ONCE=1527;T.ER_CREATE_FILEGROUP_FAILED=1528;T.ER_DROP_FILEGROUP_FAILED=1529;T.ER_TABLESPACE_AUTO_EXTEND_ERROR=1530;T.ER_WRONG_SIZE_NUMBER=1531;T.ER_SIZE_OVERFLOW_ERROR=1532;T.ER_ALTER_FILEGROUP_FAILED=1533;T.ER_BINLOG_ROW_LOGGING_FAILED=1534;T.ER_BINLOG_ROW_WRONG_TABLE_DEF=1535;T.ER_BINLOG_ROW_RBR_TO_SBR=1536;T.ER_EVENT_ALREADY_EXISTS=1537;T.ER_EVENT_STORE_FAILED=1538;T.ER_EVENT_DOES_NOT_EXIST=1539;T.ER_EVENT_CANT_ALTER=1540;T.ER_EVENT_DROP_FAILED=1541;T.ER_EVENT_INTERVAL_NOT_POSITIVE_OR_TOO_BIG=1542;T.ER_EVENT_ENDS_BEFORE_STARTS=1543;T.ER_EVENT_EXEC_TIME_IN_THE_PAST=1544;T.ER_EVENT_OPEN_TABLE_FAILED=1545;T.ER_EVENT_NEITHER_M_EXPR_NOR_M_AT=1546;T.ER_COL_COUNT_DOESNT_MATCH_CORRUPTED=1547;T.ER_CANNOT_LOAD_FROM_TABLE=1548;T.ER_EVENT_CANNOT_DELETE=1549;T.ER_EVENT_COMPILE_ERROR=1550;T.ER_EVENT_SAME_NAME=1551;T.ER_EVENT_DATA_TOO_LONG=1552;T.ER_DROP_INDEX_FK=1553;T.ER_WARN_DEPRECATED_SYNTAX_WITH_VER=1554;T.ER_CANT_WRITE_LOCK_LOG_TABLE=1555;T.ER_CANT_LOCK_LOG_TABLE=1556;T.ER_FOREIGN_DUPLICATE_KEY=1557;T.ER_COL_COUNT_DOESNT_MATCH_PLEASE_UPDATE=1558;T.ER_TEMP_TABLE_PREVENTS_SWITCH_OUT_OF_RBR=1559;T.ER_STORED_FUNCTION_PREVENTS_SWITCH_BINLOG_FORMAT=1560;T.ER_NDB_CANT_SWITCH_BINLOG_FORMAT=1561;T.ER_PARTITION_NO_TEMPORARY=1562;T.ER_PARTITION_CONST_DOMAIN_ERROR=1563;T.ER_PARTITION_FUNCTION_IS_NOT_ALLOWED=1564;T.ER_DDL_LOG_ERROR=1565;T.ER_NULL_IN_VALUES_LESS_THAN=1566;T.ER_WRONG_PARTITION_NAME=1567;T.ER_CANT_CHANGE_TX_CHARACTERISTICS=1568;T.ER_DUP_ENTRY_AUTOINCREMENT_CASE=1569;T.ER_EVENT_MODIFY_QUEUE_ERROR=1570;T.ER_EVENT_SET_VAR_ERROR=1571;T.ER_PARTITION_MERGE_ERROR=1572;T.ER_CANT_ACTIVATE_LOG=1573;T.ER_RBR_NOT_AVAILABLE=1574;T.ER_BASE64_DECODE_ERROR=1575;T.ER_EVENT_RECURSION_FORBIDDEN=1576;T.ER_EVENTS_DB_ERROR=1577;T.ER_ONLY_INTEGERS_ALLOWED=1578;T.ER_UNSUPORTED_LOG_ENGINE=1579;T.ER_BAD_LOG_STATEMENT=1580;T.ER_CANT_RENAME_LOG_TABLE=1581;T.ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT=1582;T.ER_WRONG_PARAMETERS_TO_NATIVE_FCT=1583;T.ER_WRONG_PARAMETERS_TO_STORED_FCT=1584;T.ER_NATIVE_FCT_NAME_COLLISION=1585;T.ER_DUP_ENTRY_WITH_KEY_NAME=1586;T.ER_BINLOG_PURGE_EMFILE=1587;T.ER_EVENT_CANNOT_CREATE_IN_THE_PAST=1588;T.ER_EVENT_CANNOT_ALTER_IN_THE_PAST=1589;T.ER_SLAVE_INCIDENT=1590;T.ER_NO_PARTITION_FOR_GIVEN_VALUE_SILENT=1591;T.ER_BINLOG_UNSAFE_STATEMENT=1592;T.ER_SLAVE_FATAL_ERROR=1593;T.ER_SLAVE_RELAY_LOG_READ_FAILURE=1594;T.ER_SLAVE_RELAY_LOG_WRITE_FAILURE=1595;T.ER_SLAVE_CREATE_EVENT_FAILURE=1596;T.ER_SLAVE_MASTER_COM_FAILURE=1597;T.ER_BINLOG_LOGGING_IMPOSSIBLE=1598;T.ER_VIEW_NO_CREATION_CTX=1599;T.ER_VIEW_INVALID_CREATION_CTX=1600;T.ER_SR_INVALID_CREATION_CTX=1601;T.ER_TRG_CORRUPTED_FILE=1602;T.ER_TRG_NO_CREATION_CTX=1603;T.ER_TRG_INVALID_CREATION_CTX=1604;T.ER_EVENT_INVALID_CREATION_CTX=1605;T.ER_TRG_CANT_OPEN_TABLE=1606;T.ER_CANT_CREATE_SROUTINE=1607;T.ER_NEVER_USED=1608;T.ER_NO_FORMAT_DESCRIPTION_EVENT_BEFORE_BINLOG_STATEMENT=1609;T.ER_SLAVE_CORRUPT_EVENT=1610;T.ER_LOAD_DATA_INVALID_COLUMN=1611;T.ER_LOG_PURGE_NO_FILE=1612;T.ER_XA_RBTIMEOUT=1613;T.ER_XA_RBDEADLOCK=1614;T.ER_NEED_REPREPARE=1615;T.ER_DELAYED_NOT_SUPPORTED=1616;T.WARN_NO_MASTER_INFO=1617;T.WARN_OPTION_IGNORED=1618;T.ER_PLUGIN_DELETE_BUILTIN=1619;T.WARN_PLUGIN_BUSY=1620;T.ER_VARIABLE_IS_READONLY=1621;T.ER_WARN_ENGINE_TRANSACTION_ROLLBACK=1622;T.ER_SLAVE_HEARTBEAT_FAILURE=1623;T.ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE=1624;T.ER_NDB_REPLICATION_SCHEMA_ERROR=1625;T.ER_CONFLICT_FN_PARSE_ERROR=1626;T.ER_EXCEPTIONS_WRITE_ERROR=1627;T.ER_TOO_LONG_TABLE_COMMENT=1628;T.ER_TOO_LONG_FIELD_COMMENT=1629;T.ER_FUNC_INEXISTENT_NAME_COLLISION=1630;T.ER_DATABASE_NAME=1631;T.ER_TABLE_NAME=1632;T.ER_PARTITION_NAME=1633;T.ER_SUBPARTITION_NAME=1634;T.ER_TEMPORARY_NAME=1635;T.ER_RENAMED_NAME=1636;T.ER_TOO_MANY_CONCURRENT_TRXS=1637;T.WARN_NON_ASCII_SEPARATOR_NOT_IMPLEMENTED=1638;T.ER_DEBUG_SYNC_TIMEOUT=1639;T.ER_DEBUG_SYNC_HIT_LIMIT=1640;T.ER_DUP_SIGNAL_SET=1641;T.ER_SIGNAL_WARN=1642;T.ER_SIGNAL_NOT_FOUND=1643;T.ER_SIGNAL_EXCEPTION=1644;T.ER_RESIGNAL_WITHOUT_ACTIVE_HANDLER=1645;T.ER_SIGNAL_BAD_CONDITION_TYPE=1646;T.WARN_COND_ITEM_TRUNCATED=1647;T.ER_COND_ITEM_TOO_LONG=1648;T.ER_UNKNOWN_LOCALE=1649;T.ER_SLAVE_IGNORE_SERVER_IDS=1650;T.ER_QUERY_CACHE_DISABLED=1651;T.ER_SAME_NAME_PARTITION_FIELD=1652;T.ER_PARTITION_COLUMN_LIST_ERROR=1653;T.ER_WRONG_TYPE_COLUMN_VALUE_ERROR=1654;T.ER_TOO_MANY_PARTITION_FUNC_FIELDS_ERROR=1655;T.ER_MAXVALUE_IN_VALUES_IN=1656;T.ER_TOO_MANY_VALUES_ERROR=1657;T.ER_ROW_SINGLE_PARTITION_FIELD_ERROR=1658;T.ER_FIELD_TYPE_NOT_ALLOWED_AS_PARTITION_FIELD=1659;T.ER_PARTITION_FIELDS_TOO_LONG=1660;T.ER_BINLOG_ROW_ENGINE_AND_STMT_ENGINE=1661;T.ER_BINLOG_ROW_MODE_AND_STMT_ENGINE=1662;T.ER_BINLOG_UNSAFE_AND_STMT_ENGINE=1663;T.ER_BINLOG_ROW_INJECTION_AND_STMT_ENGINE=1664;T.ER_BINLOG_STMT_MODE_AND_ROW_ENGINE=1665;T.ER_BINLOG_ROW_INJECTION_AND_STMT_MODE=1666;T.ER_BINLOG_MULTIPLE_ENGINES_AND_SELF_LOGGING_ENGINE=1667;T.ER_BINLOG_UNSAFE_LIMIT=1668;T.ER_BINLOG_UNSAFE_INSERT_DELAYED=1669;T.ER_BINLOG_UNSAFE_SYSTEM_TABLE=1670;T.ER_BINLOG_UNSAFE_AUTOINC_COLUMNS=1671;T.ER_BINLOG_UNSAFE_UDF=1672;T.ER_BINLOG_UNSAFE_SYSTEM_VARIABLE=1673;T.ER_BINLOG_UNSAFE_SYSTEM_FUNCTION=1674;T.ER_BINLOG_UNSAFE_NONTRANS_AFTER_TRANS=1675;T.ER_MESSAGE_AND_STATEMENT=1676;T.ER_SLAVE_CONVERSION_FAILED=1677;T.ER_SLAVE_CANT_CREATE_CONVERSION=1678;T.ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_BINLOG_FORMAT=1679;T.ER_PATH_LENGTH=1680;T.ER_WARN_DEPRECATED_SYNTAX_NO_REPLACEMENT=1681;T.ER_WRONG_NATIVE_TABLE_STRUCTURE=1682;T.ER_WRONG_PERFSCHEMA_USAGE=1683;T.ER_WARN_I_S_SKIPPED_TABLE=1684;T.ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_BINLOG_DIRECT=1685;T.ER_STORED_FUNCTION_PREVENTS_SWITCH_BINLOG_DIRECT=1686;T.ER_SPATIAL_MUST_HAVE_GEOM_COL=1687;T.ER_TOO_LONG_INDEX_COMMENT=1688;T.ER_LOCK_ABORTED=1689;T.ER_DATA_OUT_OF_RANGE=1690;T.ER_WRONG_SPVAR_TYPE_IN_LIMIT=1691;T.ER_BINLOG_UNSAFE_MULTIPLE_ENGINES_AND_SELF_LOGGING_ENGINE=1692;T.ER_BINLOG_UNSAFE_MIXED_STATEMENT=1693;T.ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_SQL_LOG_BIN=1694;T.ER_STORED_FUNCTION_PREVENTS_SWITCH_SQL_LOG_BIN=1695;T.ER_FAILED_READ_FROM_PAR_FILE=1696;T.ER_VALUES_IS_NOT_INT_TYPE_ERROR=1697;T.ER_ACCESS_DENIED_NO_PASSWORD_ERROR=1698;T.ER_SET_PASSWORD_AUTH_PLUGIN=1699;T.ER_GRANT_PLUGIN_USER_EXISTS=1700;T.ER_TRUNCATE_ILLEGAL_FK=1701;T.ER_PLUGIN_IS_PERMANENT=1702;T.ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MIN=1703;T.ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MAX=1704;T.ER_STMT_CACHE_FULL=1705;T.ER_MULTI_UPDATE_KEY_CONFLICT=1706;T.ER_TABLE_NEEDS_REBUILD=1707;T.WARN_OPTION_BELOW_LIMIT=1708;T.ER_INDEX_COLUMN_TOO_LONG=1709;T.ER_ERROR_IN_TRIGGER_BODY=1710;T.ER_ERROR_IN_UNKNOWN_TRIGGER_BODY=1711;T.ER_INDEX_CORRUPT=1712;T.ER_UNDO_RECORD_TOO_BIG=1713;T.ER_BINLOG_UNSAFE_INSERT_IGNORE_SELECT=1714;T.ER_BINLOG_UNSAFE_INSERT_SELECT_UPDATE=1715;T.ER_BINLOG_UNSAFE_REPLACE_SELECT=1716;T.ER_BINLOG_UNSAFE_CREATE_IGNORE_SELECT=1717;T.ER_BINLOG_UNSAFE_CREATE_REPLACE_SELECT=1718;T.ER_BINLOG_UNSAFE_UPDATE_IGNORE=1719;T.ER_PLUGIN_NO_UNINSTALL=1720;T.ER_PLUGIN_NO_INSTALL=1721;T.ER_BINLOG_UNSAFE_WRITE_AUTOINC_SELECT=1722;T.ER_BINLOG_UNSAFE_CREATE_SELECT_AUTOINC=1723;T.ER_BINLOG_UNSAFE_INSERT_TWO_KEYS=1724;T.ER_TABLE_IN_FK_CHECK=1725;T.ER_UNSUPPORTED_ENGINE=1726;T.ER_BINLOG_UNSAFE_AUTOINC_NOT_FIRST=1727;T.ER_CANNOT_LOAD_FROM_TABLE_V2=1728;T.ER_MASTER_DELAY_VALUE_OUT_OF_RANGE=1729;T.ER_ONLY_FD_AND_RBR_EVENTS_ALLOWED_IN_BINLOG_STATEMENT=1730;T.ER_PARTITION_EXCHANGE_DIFFERENT_OPTION=1731;T.ER_PARTITION_EXCHANGE_PART_TABLE=1732;T.ER_PARTITION_EXCHANGE_TEMP_TABLE=1733;T.ER_PARTITION_INSTEAD_OF_SUBPARTITION=1734;T.ER_UNKNOWN_PARTITION=1735;T.ER_TABLES_DIFFERENT_METADATA=1736;T.ER_ROW_DOES_NOT_MATCH_PARTITION=1737;T.ER_BINLOG_CACHE_SIZE_GREATER_THAN_MAX=1738;T.ER_WARN_INDEX_NOT_APPLICABLE=1739;T.ER_PARTITION_EXCHANGE_FOREIGN_KEY=1740;T.ER_NO_SUCH_KEY_VALUE=1741;T.ER_RPL_INFO_DATA_TOO_LONG=1742;T.ER_NETWORK_READ_EVENT_CHECKSUM_FAILURE=1743;T.ER_BINLOG_READ_EVENT_CHECKSUM_FAILURE=1744;T.ER_BINLOG_STMT_CACHE_SIZE_GREATER_THAN_MAX=1745;T.ER_CANT_UPDATE_TABLE_IN_CREATE_TABLE_SELECT=1746;T.ER_PARTITION_CLAUSE_ON_NONPARTITIONED=1747;T.ER_ROW_DOES_NOT_MATCH_GIVEN_PARTITION_SET=1748;T.ER_NO_SUCH_PARTITION=1749;T.ER_CHANGE_RPL_INFO_REPOSITORY_FAILURE=1750;T.ER_WARNING_NOT_COMPLETE_ROLLBACK_WITH_CREATED_TEMP_TABLE=1751;T.ER_WARNING_NOT_COMPLETE_ROLLBACK_WITH_DROPPED_TEMP_TABLE=1752;T.ER_MTS_FEATURE_IS_NOT_SUPPORTED=1753;T.ER_MTS_UPDATED_DBS_GREATER_MAX=1754;T.ER_MTS_CANT_PARALLEL=1755;T.ER_MTS_INCONSISTENT_DATA=1756;T.ER_FULLTEXT_NOT_SUPPORTED_WITH_PARTITIONING=1757;T.ER_DA_INVALID_CONDITION_NUMBER=1758;T.ER_INSECURE_PLAIN_TEXT=1759;T.ER_INSECURE_CHANGE_MASTER=1760;T.ER_FOREIGN_DUPLICATE_KEY_WITH_CHILD_INFO=1761;T.ER_FOREIGN_DUPLICATE_KEY_WITHOUT_CHILD_INFO=1762;T.ER_SQLTHREAD_WITH_SECURE_SLAVE=1763;T.ER_TABLE_HAS_NO_FT=1764;T.ER_VARIABLE_NOT_SETTABLE_IN_SF_OR_TRIGGER=1765;T.ER_VARIABLE_NOT_SETTABLE_IN_TRANSACTION=1766;T.ER_GTID_NEXT_IS_NOT_IN_GTID_NEXT_LIST=1767;T.ER_CANT_CHANGE_GTID_NEXT_IN_TRANSACTION=1768;T.ER_SET_STATEMENT_CANNOT_INVOKE_FUNCTION=1769;T.ER_GTID_NEXT_CANT_BE_AUTOMATIC_IF_GTID_NEXT_LIST_IS_NON_NULL=1770;T.ER_SKIPPING_LOGGED_TRANSACTION=1771;T.ER_MALFORMED_GTID_SET_SPECIFICATION=1772;T.ER_MALFORMED_GTID_SET_ENCODING=1773;T.ER_MALFORMED_GTID_SPECIFICATION=1774;T.ER_GNO_EXHAUSTED=1775;T.ER_BAD_SLAVE_AUTO_POSITION=1776;T.ER_AUTO_POSITION_REQUIRES_GTID_MODE_NOT_OFF=1777;T.ER_CANT_DO_IMPLICIT_COMMIT_IN_TRX_WHEN_GTID_NEXT_IS_SET=1778;T.ER_GTID_MODE_ON_REQUIRES_ENFORCE_GTID_CONSISTENCY_ON=1779;T.ER_GTID_MODE_REQUIRES_BINLOG=1780;T.ER_CANT_SET_GTID_NEXT_TO_GTID_WHEN_GTID_MODE_IS_OFF=1781;T.ER_CANT_SET_GTID_NEXT_TO_ANONYMOUS_WHEN_GTID_MODE_IS_ON=1782;T.ER_CANT_SET_GTID_NEXT_LIST_TO_NON_NULL_WHEN_GTID_MODE_IS_OFF=1783;T.ER_FOUND_GTID_EVENT_WHEN_GTID_MODE_IS_OFF=1784;T.ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE=1785;T.ER_GTID_UNSAFE_CREATE_SELECT=1786;T.ER_GTID_UNSAFE_CREATE_DROP_TEMPORARY_TABLE_IN_TRANSACTION=1787;T.ER_GTID_MODE_CAN_ONLY_CHANGE_ONE_STEP_AT_A_TIME=1788;T.ER_MASTER_HAS_PURGED_REQUIRED_GTIDS=1789;T.ER_CANT_SET_GTID_NEXT_WHEN_OWNING_GTID=1790;T.ER_UNKNOWN_EXPLAIN_FORMAT=1791;T.ER_CANT_EXECUTE_IN_READ_ONLY_TRANSACTION=1792;T.ER_TOO_LONG_TABLE_PARTITION_COMMENT=1793;T.ER_SLAVE_CONFIGURATION=1794;T.ER_INNODB_FT_LIMIT=1795;T.ER_INNODB_NO_FT_TEMP_TABLE=1796;T.ER_INNODB_FT_WRONG_DOCID_COLUMN=1797;T.ER_INNODB_FT_WRONG_DOCID_INDEX=1798;T.ER_INNODB_ONLINE_LOG_TOO_BIG=1799;T.ER_UNKNOWN_ALTER_ALGORITHM=1800;T.ER_UNKNOWN_ALTER_LOCK=1801;T.ER_MTS_CHANGE_MASTER_CANT_RUN_WITH_GAPS=1802;T.ER_MTS_RECOVERY_FAILURE=1803;T.ER_MTS_RESET_WORKERS=1804;T.ER_COL_COUNT_DOESNT_MATCH_CORRUPTED_V2=1805;T.ER_SLAVE_SILENT_RETRY_TRANSACTION=1806;T.ER_DISCARD_FK_CHECKS_RUNNING=1807;T.ER_TABLE_SCHEMA_MISMATCH=1808;T.ER_TABLE_IN_SYSTEM_TABLESPACE=1809;T.ER_IO_READ_ERROR=1810;T.ER_IO_WRITE_ERROR=1811;T.ER_TABLESPACE_MISSING=1812;T.ER_TABLESPACE_EXISTS=1813;T.ER_TABLESPACE_DISCARDED=1814;T.ER_INTERNAL_ERROR=1815;T.ER_INNODB_IMPORT_ERROR=1816;T.ER_INNODB_INDEX_CORRUPT=1817;T.ER_INVALID_YEAR_COLUMN_LENGTH=1818;T.ER_NOT_VALID_PASSWORD=1819;T.ER_MUST_CHANGE_PASSWORD=1820;T.ER_FK_NO_INDEX_CHILD=1821;T.ER_FK_NO_INDEX_PARENT=1822;T.ER_FK_FAIL_ADD_SYSTEM=1823;T.ER_FK_CANNOT_OPEN_PARENT=1824;T.ER_FK_INCORRECT_OPTION=1825;T.ER_FK_DUP_NAME=1826;T.ER_PASSWORD_FORMAT=1827;T.ER_FK_COLUMN_CANNOT_DROP=1828;T.ER_FK_COLUMN_CANNOT_DROP_CHILD=1829;T.ER_FK_COLUMN_NOT_NULL=1830;T.ER_DUP_INDEX=1831;T.ER_FK_COLUMN_CANNOT_CHANGE=1832;T.ER_FK_COLUMN_CANNOT_CHANGE_CHILD=1833;T.ER_FK_CANNOT_DELETE_PARENT=1834;T.ER_MALFORMED_PACKET=1835;T.ER_READ_ONLY_MODE=1836;T.ER_GTID_NEXT_TYPE_UNDEFINED_GROUP=1837;T.ER_VARIABLE_NOT_SETTABLE_IN_SP=1838;T.ER_CANT_SET_GTID_PURGED_WHEN_GTID_MODE_IS_OFF=1839;T.ER_CANT_SET_GTID_PURGED_WHEN_GTID_EXECUTED_IS_NOT_EMPTY=1840;T.ER_CANT_SET_GTID_PURGED_WHEN_OWNED_GTIDS_IS_NOT_EMPTY=1841;T.ER_GTID_PURGED_WAS_CHANGED=1842;T.ER_GTID_EXECUTED_WAS_CHANGED=1843;T.ER_BINLOG_STMT_MODE_AND_NO_REPL_TABLES=1844;T.ER_ALTER_OPERATION_NOT_SUPPORTED=1845;T.ER_ALTER_OPERATION_NOT_SUPPORTED_REASON=1846;T.ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_COPY=1847;T.ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_PARTITION=1848;T.ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_FK_RENAME=1849;T.ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_COLUMN_TYPE=1850;T.ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_FK_CHECK=1851;T.ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_IGNORE=1852;T.ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_NOPK=1853;T.ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_AUTOINC=1854;T.ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_HIDDEN_FTS=1855;T.ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_CHANGE_FTS=1856;T.ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_FTS=1857;T.ER_SQL_SLAVE_SKIP_COUNTER_NOT_SETTABLE_IN_GTID_MODE=1858;T.ER_DUP_UNKNOWN_IN_INDEX=1859;T.ER_IDENT_CAUSES_TOO_LONG_PATH=1860;T.ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_NOT_NULL=1861;T.ER_MUST_CHANGE_PASSWORD_LOGIN=1862;T.ER_ROW_IN_WRONG_PARTITION=1863;T.ER_MTS_EVENT_BIGGER_PENDING_JOBS_SIZE_MAX=1864;T.ER_INNODB_NO_FT_USES_PARSER=1865;T.ER_BINLOG_LOGICAL_CORRUPTION=1866;T.ER_WARN_PURGE_LOG_IN_USE=1867;T.ER_WARN_PURGE_LOG_IS_ACTIVE=1868;T.ER_AUTO_INCREMENT_CONFLICT=1869;T.WARN_ON_BLOCKHOLE_IN_RBR=1870;T.ER_SLAVE_MI_INIT_REPOSITORY=1871;T.ER_SLAVE_RLI_INIT_REPOSITORY=1872;T.ER_ACCESS_DENIED_CHANGE_USER_ERROR=1873;T.ER_INNODB_READ_ONLY=1874;T.ER_STOP_SLAVE_SQL_THREAD_TIMEOUT=1875;T.ER_STOP_SLAVE_IO_THREAD_TIMEOUT=1876;T.ER_TABLE_CORRUPT=1877;T.ER_TEMP_FILE_WRITE_FAILURE=1878;T.ER_INNODB_FT_AUX_NOT_HEX_ID=1879;T.ER_OLD_TEMPORALS_UPGRADED=1880;T.ER_INNODB_FORCED_RECOVERY=1881;T.ER_AES_INVALID_IV=1882;T.ER_PLUGIN_CANNOT_BE_UNINSTALLED=1883;T.ER_GTID_UNSAFE_BINLOG_SPLITTABLE_STATEMENT_AND_GTID_GROUP=1884;T.ER_SLAVE_HAS_MORE_GTIDS_THAN_MASTER=1885;T.ER_MISSING_KEY=1886;T.WARN_NAMED_PIPE_ACCESS_EVERYONE=1887;T.ER_FOUND_MISSING_GTIDS=1888;T.ER_FILE_CORRUPT=3000;T.ER_ERROR_ON_MASTER=3001;T.ER_INCONSISTENT_ERROR=3002;T.ER_STORAGE_ENGINE_NOT_LOADED=3003;T.ER_GET_STACKED_DA_WITHOUT_ACTIVE_HANDLER=3004;T.ER_WARN_LEGACY_SYNTAX_CONVERTED=3005;T.ER_BINLOG_UNSAFE_FULLTEXT_PLUGIN=3006;T.ER_CANNOT_DISCARD_TEMPORARY_TABLE=3007;T.ER_FK_DEPTH_EXCEEDED=3008;T.ER_COL_COUNT_DOESNT_MATCH_PLEASE_UPDATE_V2=3009;T.ER_WARN_TRIGGER_DOESNT_HAVE_CREATED=3010;T.ER_REFERENCED_TRG_DOES_NOT_EXIST=3011;T.ER_EXPLAIN_NOT_SUPPORTED=3012;T.ER_INVALID_FIELD_SIZE=3013;T.ER_MISSING_HA_CREATE_OPTION=3014;T.ER_ENGINE_OUT_OF_MEMORY=3015;T.ER_PASSWORD_EXPIRE_ANONYMOUS_USER=3016;T.ER_SLAVE_SQL_THREAD_MUST_STOP=3017;T.ER_NO_FT_MATERIALIZED_SUBQUERY=3018;T.ER_INNODB_UNDO_LOG_FULL=3019;T.ER_INVALID_ARGUMENT_FOR_LOGARITHM=3020;T.ER_SLAVE_CHANNEL_IO_THREAD_MUST_STOP=3021;T.ER_WARN_OPEN_TEMP_TABLES_MUST_BE_ZERO=3022;T.ER_WARN_ONLY_MASTER_LOG_FILE_NO_POS=3023;T.ER_QUERY_TIMEOUT=3024;T.ER_NON_RO_SELECT_DISABLE_TIMER=3025;T.ER_DUP_LIST_ENTRY=3026;T.ER_SQL_MODE_NO_EFFECT=3027;T.ER_AGGREGATE_ORDER_FOR_UNION=3028;T.ER_AGGREGATE_ORDER_NON_AGG_QUERY=3029;T.ER_SLAVE_WORKER_STOPPED_PREVIOUS_THD_ERROR=3030;T.ER_DONT_SUPPORT_SLAVE_PRESERVE_COMMIT_ORDER=3031;T.ER_SERVER_OFFLINE_MODE=3032;T.ER_GIS_DIFFERENT_SRIDS=3033;T.ER_GIS_UNSUPPORTED_ARGUMENT=3034;T.ER_GIS_UNKNOWN_ERROR=3035;T.ER_GIS_UNKNOWN_EXCEPTION=3036;T.ER_GIS_INVALID_DATA=3037;T.ER_BOOST_GEOMETRY_EMPTY_INPUT_EXCEPTION=3038;T.ER_BOOST_GEOMETRY_CENTROID_EXCEPTION=3039;T.ER_BOOST_GEOMETRY_OVERLAY_INVALID_INPUT_EXCEPTION=3040;T.ER_BOOST_GEOMETRY_TURN_INFO_EXCEPTION=3041;T.ER_BOOST_GEOMETRY_SELF_INTERSECTION_POINT_EXCEPTION=3042;T.ER_BOOST_GEOMETRY_UNKNOWN_EXCEPTION=3043;T.ER_STD_BAD_ALLOC_ERROR=3044;T.ER_STD_DOMAIN_ERROR=3045;T.ER_STD_LENGTH_ERROR=3046;T.ER_STD_INVALID_ARGUMENT=3047;T.ER_STD_OUT_OF_RANGE_ERROR=3048;T.ER_STD_OVERFLOW_ERROR=3049;T.ER_STD_RANGE_ERROR=3050;T.ER_STD_UNDERFLOW_ERROR=3051;T.ER_STD_LOGIC_ERROR=3052;T.ER_STD_RUNTIME_ERROR=3053;T.ER_STD_UNKNOWN_EXCEPTION=3054;T.ER_GIS_DATA_WRONG_ENDIANESS=3055;T.ER_CHANGE_MASTER_PASSWORD_LENGTH=3056;T.ER_USER_LOCK_WRONG_NAME=3057;T.ER_USER_LOCK_DEADLOCK=3058;T.ER_REPLACE_INACCESSIBLE_ROWS=3059;T.ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_GIS=3060;T.ER_ILLEGAL_USER_VAR=3061;T.ER_GTID_MODE_OFF=3062;T.ER_UNSUPPORTED_BY_REPLICATION_THREAD=3063;T.ER_INCORRECT_TYPE=3064;T.ER_FIELD_IN_ORDER_NOT_SELECT=3065;T.ER_AGGREGATE_IN_ORDER_NOT_SELECT=3066;T.ER_INVALID_RPL_WILD_TABLE_FILTER_PATTERN=3067;T.ER_NET_OK_PACKET_TOO_LARGE=3068;T.ER_INVALID_JSON_DATA=3069;T.ER_INVALID_GEOJSON_MISSING_MEMBER=3070;T.ER_INVALID_GEOJSON_WRONG_TYPE=3071;T.ER_INVALID_GEOJSON_UNSPECIFIED=3072;T.ER_DIMENSION_UNSUPPORTED=3073;T.ER_SLAVE_CHANNEL_DOES_NOT_EXIST=3074;T.ER_SLAVE_MULTIPLE_CHANNELS_HOST_PORT=3075;T.ER_SLAVE_CHANNEL_NAME_INVALID_OR_TOO_LONG=3076;T.ER_SLAVE_NEW_CHANNEL_WRONG_REPOSITORY=3077;T.ER_SLAVE_CHANNEL_DELETE=3078;T.ER_SLAVE_MULTIPLE_CHANNELS_CMD=3079;T.ER_SLAVE_MAX_CHANNELS_EXCEEDED=3080;T.ER_SLAVE_CHANNEL_MUST_STOP=3081;T.ER_SLAVE_CHANNEL_NOT_RUNNING=3082;T.ER_SLAVE_CHANNEL_WAS_RUNNING=3083;T.ER_SLAVE_CHANNEL_WAS_NOT_RUNNING=3084;T.ER_SLAVE_CHANNEL_SQL_THREAD_MUST_STOP=3085;T.ER_SLAVE_CHANNEL_SQL_SKIP_COUNTER=3086;T.ER_WRONG_FIELD_WITH_GROUP_V2=3087;T.ER_MIX_OF_GROUP_FUNC_AND_FIELDS_V2=3088;T.ER_WARN_DEPRECATED_SYSVAR_UPDATE=3089;T.ER_WARN_DEPRECATED_SQLMODE=3090;T.ER_CANNOT_LOG_PARTIAL_DROP_DATABASE_WITH_GTID=3091;T.ER_GROUP_REPLICATION_CONFIGURATION=3092;T.ER_GROUP_REPLICATION_RUNNING=3093;T.ER_GROUP_REPLICATION_APPLIER_INIT_ERROR=3094;T.ER_GROUP_REPLICATION_STOP_APPLIER_THREAD_TIMEOUT=3095;T.ER_GROUP_REPLICATION_COMMUNICATION_LAYER_SESSION_ERROR=3096;T.ER_GROUP_REPLICATION_COMMUNICATION_LAYER_JOIN_ERROR=3097;T.ER_BEFORE_DML_VALIDATION_ERROR=3098;T.ER_PREVENTS_VARIABLE_WITHOUT_RBR=3099;T.ER_RUN_HOOK_ERROR=3100;T.ER_TRANSACTION_ROLLBACK_DURING_COMMIT=3101;T.ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED=3102;T.ER_UNSUPPORTED_ALTER_INPLACE_ON_VIRTUAL_COLUMN=3103;T.ER_WRONG_FK_OPTION_FOR_GENERATED_COLUMN=3104;T.ER_NON_DEFAULT_VALUE_FOR_GENERATED_COLUMN=3105;T.ER_UNSUPPORTED_ACTION_ON_GENERATED_COLUMN=3106;T.ER_GENERATED_COLUMN_NON_PRIOR=3107;T.ER_DEPENDENT_BY_GENERATED_COLUMN=3108;T.ER_GENERATED_COLUMN_REF_AUTO_INC=3109;T.ER_FEATURE_NOT_AVAILABLE=3110;T.ER_CANT_SET_GTID_MODE=3111;T.ER_CANT_USE_AUTO_POSITION_WITH_GTID_MODE_OFF=3112;T.ER_CANT_REPLICATE_ANONYMOUS_WITH_AUTO_POSITION=3113;T.ER_CANT_REPLICATE_ANONYMOUS_WITH_GTID_MODE_ON=3114;T.ER_CANT_REPLICATE_GTID_WITH_GTID_MODE_OFF=3115;T.ER_CANT_SET_ENFORCE_GTID_CONSISTENCY_ON_WITH_ONGOING_GTID_VIOLATING_TRANSACTIONS=3116;T.ER_SET_ENFORCE_GTID_CONSISTENCY_WARN_WITH_ONGOING_GTID_VIOLATING_TRANSACTIONS=3117;T.ER_ACCOUNT_HAS_BEEN_LOCKED=3118;T.ER_WRONG_TABLESPACE_NAME=3119;T.ER_TABLESPACE_IS_NOT_EMPTY=3120;T.ER_WRONG_FILE_NAME=3121;T.ER_BOOST_GEOMETRY_INCONSISTENT_TURNS_EXCEPTION=3122;T.ER_WARN_OPTIMIZER_HINT_SYNTAX_ERROR=3123;T.ER_WARN_BAD_MAX_EXECUTION_TIME=3124;T.ER_WARN_UNSUPPORTED_MAX_EXECUTION_TIME=3125;T.ER_WARN_CONFLICTING_HINT=3126;T.ER_WARN_UNKNOWN_QB_NAME=3127;T.ER_UNRESOLVED_HINT_NAME=3128;T.ER_WARN_ON_MODIFYING_GTID_EXECUTED_TABLE=3129;T.ER_PLUGGABLE_PROTOCOL_COMMAND_NOT_SUPPORTED=3130;T.ER_LOCKING_SERVICE_WRONG_NAME=3131;T.ER_LOCKING_SERVICE_DEADLOCK=3132;T.ER_LOCKING_SERVICE_TIMEOUT=3133;T.ER_GIS_MAX_POINTS_IN_GEOMETRY_OVERFLOWED=3134;T.ER_SQL_MODE_MERGED=3135;T.ER_VTOKEN_PLUGIN_TOKEN_MISMATCH=3136;T.ER_VTOKEN_PLUGIN_TOKEN_NOT_FOUND=3137;T.ER_CANT_SET_VARIABLE_WHEN_OWNING_GTID=3138;T.ER_SLAVE_CHANNEL_OPERATION_NOT_ALLOWED=3139;T.ER_INVALID_JSON_TEXT=3140;T.ER_INVALID_JSON_TEXT_IN_PARAM=3141;T.ER_INVALID_JSON_BINARY_DATA=3142;T.ER_INVALID_JSON_PATH=3143;T.ER_INVALID_JSON_CHARSET=3144;T.ER_INVALID_JSON_CHARSET_IN_FUNCTION=3145;T.ER_INVALID_TYPE_FOR_JSON=3146;T.ER_INVALID_CAST_TO_JSON=3147;T.ER_INVALID_JSON_PATH_CHARSET=3148;T.ER_INVALID_JSON_PATH_WILDCARD=3149;T.ER_JSON_VALUE_TOO_BIG=3150;T.ER_JSON_KEY_TOO_BIG=3151;T.ER_JSON_USED_AS_KEY=3152;T.ER_JSON_VACUOUS_PATH=3153;T.ER_JSON_BAD_ONE_OR_ALL_ARG=3154;T.ER_NUMERIC_JSON_VALUE_OUT_OF_RANGE=3155;T.ER_INVALID_JSON_VALUE_FOR_CAST=3156;T.ER_JSON_DOCUMENT_TOO_DEEP=3157;T.ER_JSON_DOCUMENT_NULL_KEY=3158;T.ER_SECURE_TRANSPORT_REQUIRED=3159;T.ER_NO_SECURE_TRANSPORTS_CONFIGURED=3160;T.ER_DISABLED_STORAGE_ENGINE=3161;T.ER_USER_DOES_NOT_EXIST=3162;T.ER_USER_ALREADY_EXISTS=3163;T.ER_AUDIT_API_ABORT=3164;T.ER_INVALID_JSON_PATH_ARRAY_CELL=3165;T.ER_BUFPOOL_RESIZE_INPROGRESS=3166;T.ER_FEATURE_DISABLED_SEE_DOC=3167;T.ER_SERVER_ISNT_AVAILABLE=3168;T.ER_SESSION_WAS_KILLED=3169;T.ER_CAPACITY_EXCEEDED=3170;T.ER_CAPACITY_EXCEEDED_IN_RANGE_OPTIMIZER=3171;T.ER_TABLE_NEEDS_UPG_PART=3172;T.ER_CANT_WAIT_FOR_EXECUTED_GTID_SET_WHILE_OWNING_A_GTID=3173;T.ER_CANNOT_ADD_FOREIGN_BASE_COL_VIRTUAL=3174;T.ER_CANNOT_CREATE_VIRTUAL_INDEX_CONSTRAINT=3175;T.ER_ERROR_ON_MODIFYING_GTID_EXECUTED_TABLE=3176;T.ER_LOCK_REFUSED_BY_ENGINE=3177;T.ER_UNSUPPORTED_ALTER_ONLINE_ON_VIRTUAL_COLUMN=3178;T.ER_MASTER_KEY_ROTATION_NOT_SUPPORTED_BY_SE=3179;T.ER_MASTER_KEY_ROTATION_ERROR_BY_SE=3180;T.ER_MASTER_KEY_ROTATION_BINLOG_FAILED=3181;T.ER_MASTER_KEY_ROTATION_SE_UNAVAILABLE=3182;T.ER_TABLESPACE_CANNOT_ENCRYPT=3183;T.ER_INVALID_ENCRYPTION_OPTION=3184;T.ER_CANNOT_FIND_KEY_IN_KEYRING=3185;T.ER_CAPACITY_EXCEEDED_IN_PARSER=3186;T.ER_UNSUPPORTED_ALTER_ENCRYPTION_INPLACE=3187;T.ER_KEYRING_UDF_KEYRING_SERVICE_ERROR=3188;T.ER_USER_COLUMN_OLD_LENGTH=3189;T.ER_CANT_RESET_MASTER=3190;T.ER_GROUP_REPLICATION_MAX_GROUP_SIZE=3191;T.ER_CANNOT_ADD_FOREIGN_BASE_COL_STORED=3192;T.ER_TABLE_REFERENCED=3193;T.ER_PARTITION_ENGINE_DEPRECATED_FOR_TABLE=3194;T.ER_WARN_USING_GEOMFROMWKB_TO_SET_SRID_ZERO=3195;T.ER_WARN_USING_GEOMFROMWKB_TO_SET_SRID=3196;T.ER_XA_RETRY=3197;T.ER_KEYRING_AWS_UDF_AWS_KMS_ERROR=3198;T.ER_BINLOG_UNSAFE_XA=3199;T.ER_UDF_ERROR=3200;T.ER_KEYRING_MIGRATION_FAILURE=3201;T.ER_KEYRING_ACCESS_DENIED_ERROR=3202;T.ER_KEYRING_MIGRATION_STATUS=3203;T.ER_PLUGIN_FAILED_TO_OPEN_TABLES=3204;T.ER_PLUGIN_FAILED_TO_OPEN_TABLE=3205;T.ER_AUDIT_LOG_NO_KEYRING_PLUGIN_INSTALLED=3206;T.ER_AUDIT_LOG_ENCRYPTION_PASSWORD_HAS_NOT_BEEN_SET=3207;T.ER_AUDIT_LOG_COULD_NOT_CREATE_AES_KEY=3208;T.ER_AUDIT_LOG_ENCRYPTION_PASSWORD_CANNOT_BE_FETCHED=3209;T.ER_AUDIT_LOG_JSON_FILTERING_NOT_ENABLED=3210;T.ER_AUDIT_LOG_UDF_INSUFFICIENT_PRIVILEGE=3211;T.ER_AUDIT_LOG_SUPER_PRIVILEGE_REQUIRED=3212;T.ER_COULD_NOT_REINITIALIZE_AUDIT_LOG_FILTERS=3213;T.ER_AUDIT_LOG_UDF_INVALID_ARGUMENT_TYPE=3214;T.ER_AUDIT_LOG_UDF_INVALID_ARGUMENT_COUNT=3215;T.ER_AUDIT_LOG_HAS_NOT_BEEN_INSTALLED=3216;T.ER_AUDIT_LOG_UDF_READ_INVALID_MAX_ARRAY_LENGTH_ARG_TYPE=3217;T.ER_AUDIT_LOG_UDF_READ_INVALID_MAX_ARRAY_LENGTH_ARG_VALUE=3218;T.ER_AUDIT_LOG_JSON_FILTER_PARSING_ERROR=3219;T.ER_AUDIT_LOG_JSON_FILTER_NAME_CANNOT_BE_EMPTY=3220;T.ER_AUDIT_LOG_JSON_USER_NAME_CANNOT_BE_EMPTY=3221;T.ER_AUDIT_LOG_JSON_FILTER_DOES_NOT_EXISTS=3222;T.ER_AUDIT_LOG_USER_FIRST_CHARACTER_MUST_BE_ALPHANUMERIC=3223;T.ER_AUDIT_LOG_USER_NAME_INVALID_CHARACTER=3224;T.ER_AUDIT_LOG_HOST_NAME_INVALID_CHARACTER=3225;T.WARN_DEPRECATED_MAXDB_SQL_MODE_FOR_TIMESTAMP=3226;T.ER_XA_REPLICATION_FILTERS=3227;T.ER_CANT_OPEN_ERROR_LOG=3228;T.ER_GROUPING_ON_TIMESTAMP_IN_DST=3229;T.ER_CANT_START_SERVER_NAMED_PIPE=3230;T[1]="EE_CANTCREATEFILE";T[2]="EE_READ";T[3]="EE_WRITE";T[4]="EE_BADCLOSE";T[5]="EE_OUTOFMEMORY";T[6]="EE_DELETE";T[7]="EE_LINK";T[9]="EE_EOFERR";T[10]="EE_CANTLOCK";T[11]="EE_CANTUNLOCK";T[12]="EE_DIR";T[13]="EE_STAT";T[14]="EE_CANT_CHSIZE";T[15]="EE_CANT_OPEN_STREAM";T[16]="EE_GETWD";T[17]="EE_SETWD";T[18]="EE_LINK_WARNING";T[19]="EE_OPEN_WARNING";T[20]="EE_DISK_FULL";T[21]="EE_CANT_MKDIR";T[22]="EE_UNKNOWN_CHARSET";T[23]="EE_OUT_OF_FILERESOURCES";T[24]="EE_CANT_READLINK";T[25]="EE_CANT_SYMLINK";T[26]="EE_REALPATH";T[27]="EE_SYNC";T[28]="EE_UNKNOWN_COLLATION";T[29]="EE_FILENOTFOUND";T[30]="EE_FILE_NOT_CLOSED";T[31]="EE_CHANGE_OWNERSHIP";T[32]="EE_CHANGE_PERMISSIONS";T[33]="EE_CANT_SEEK";T[34]="EE_CAPACITY_EXCEEDED";T[120]="HA_ERR_KEY_NOT_FOUND";T[121]="HA_ERR_FOUND_DUPP_KEY";T[122]="HA_ERR_INTERNAL_ERROR";T[123]="HA_ERR_RECORD_CHANGED";T[124]="HA_ERR_WRONG_INDEX";T[126]="HA_ERR_CRASHED";T[127]="HA_ERR_WRONG_IN_RECORD";T[128]="HA_ERR_OUT_OF_MEM";T[130]="HA_ERR_NOT_A_TABLE";T[131]="HA_ERR_WRONG_COMMAND";T[132]="HA_ERR_OLD_FILE";T[133]="HA_ERR_NO_ACTIVE_RECORD";T[134]="HA_ERR_RECORD_DELETED";T[135]="HA_ERR_RECORD_FILE_FULL";T[136]="HA_ERR_INDEX_FILE_FULL";T[137]="HA_ERR_END_OF_FILE";T[138]="HA_ERR_UNSUPPORTED";T[139]="HA_ERR_TOO_BIG_ROW";T[140]="HA_WRONG_CREATE_OPTION";T[141]="HA_ERR_FOUND_DUPP_UNIQUE";T[142]="HA_ERR_UNKNOWN_CHARSET";T[143]="HA_ERR_WRONG_MRG_TABLE_DEF";T[144]="HA_ERR_CRASHED_ON_REPAIR";T[145]="HA_ERR_CRASHED_ON_USAGE";T[146]="HA_ERR_LOCK_WAIT_TIMEOUT";T[147]="HA_ERR_LOCK_TABLE_FULL";T[148]="HA_ERR_READ_ONLY_TRANSACTION";T[149]="HA_ERR_LOCK_DEADLOCK";T[150]="HA_ERR_CANNOT_ADD_FOREIGN";T[151]="HA_ERR_NO_REFERENCED_ROW";T[152]="HA_ERR_ROW_IS_REFERENCED";T[153]="HA_ERR_NO_SAVEPOINT";T[154]="HA_ERR_NON_UNIQUE_BLOCK_SIZE";T[155]="HA_ERR_NO_SUCH_TABLE";T[156]="HA_ERR_TABLE_EXIST";T[157]="HA_ERR_NO_CONNECTION";T[158]="HA_ERR_NULL_IN_SPATIAL";T[159]="HA_ERR_TABLE_DEF_CHANGED";T[160]="HA_ERR_NO_PARTITION_FOUND";T[161]="HA_ERR_RBR_LOGGING_FAILED";T[162]="HA_ERR_DROP_INDEX_FK";T[163]="HA_ERR_FOREIGN_DUPLICATE_KEY";T[164]="HA_ERR_TABLE_NEEDS_UPGRADE";T[165]="HA_ERR_TABLE_READONLY";T[166]="HA_ERR_AUTOINC_READ_FAILED";T[167]="HA_ERR_AUTOINC_ERANGE";T[168]="HA_ERR_GENERIC";T[169]="HA_ERR_RECORD_IS_THE_SAME";T[170]="HA_ERR_LOGGING_IMPOSSIBLE";T[171]="HA_ERR_CORRUPT_EVENT";T[172]="HA_ERR_NEW_FILE";T[173]="HA_ERR_ROWS_EVENT_APPLY";T[174]="HA_ERR_INITIALIZATION";T[175]="HA_ERR_FILE_TOO_SHORT";T[176]="HA_ERR_WRONG_CRC";T[177]="HA_ERR_TOO_MANY_CONCURRENT_TRXS";T[178]="HA_ERR_NOT_IN_LOCK_PARTITIONS";T[179]="HA_ERR_INDEX_COL_TOO_LONG";T[180]="HA_ERR_INDEX_CORRUPT";T[181]="HA_ERR_UNDO_REC_TOO_BIG";T[182]="HA_FTS_INVALID_DOCID";T[183]="HA_ERR_TABLE_IN_FK_CHECK";T[184]="HA_ERR_TABLESPACE_EXISTS";T[185]="HA_ERR_TOO_MANY_FIELDS";T[186]="HA_ERR_ROW_IN_WRONG_PARTITION";T[187]="HA_ERR_INNODB_READ_ONLY";T[188]="HA_ERR_FTS_EXCEED_RESULT_CACHE_LIMIT";T[189]="HA_ERR_TEMP_FILE_WRITE_FAILURE";T[190]="HA_ERR_INNODB_FORCED_RECOVERY";T[191]="HA_ERR_FTS_TOO_MANY_WORDS_IN_PHRASE";T[192]="HA_ERR_FK_DEPTH_EXCEEDED";T[193]="HA_MISSING_CREATE_OPTION";T[194]="HA_ERR_SE_OUT_OF_MEMORY";T[195]="HA_ERR_TABLE_CORRUPT";T[196]="HA_ERR_QUERY_INTERRUPTED";T[197]="HA_ERR_TABLESPACE_MISSING";T[198]="HA_ERR_TABLESPACE_IS_NOT_EMPTY";T[199]="HA_ERR_WRONG_FILE_NAME";T[200]="HA_ERR_NOT_ALLOWED_COMMAND";T[201]="HA_ERR_COMPUTE_FAILED";T[1000]="ER_HASHCHK";T[1001]="ER_NISAMCHK";T[1002]="ER_NO";T[1003]="ER_YES";T[1004]="ER_CANT_CREATE_FILE";T[1005]="ER_CANT_CREATE_TABLE";T[1006]="ER_CANT_CREATE_DB";T[1007]="ER_DB_CREATE_EXISTS";T[1008]="ER_DB_DROP_EXISTS";T[1009]="ER_DB_DROP_DELETE";T[1010]="ER_DB_DROP_RMDIR";T[1011]="ER_CANT_DELETE_FILE";T[1012]="ER_CANT_FIND_SYSTEM_REC";T[1013]="ER_CANT_GET_STAT";T[1014]="ER_CANT_GET_WD";T[1015]="ER_CANT_LOCK";T[1016]="ER_CANT_OPEN_FILE";T[1017]="ER_FILE_NOT_FOUND";T[1018]="ER_CANT_READ_DIR";T[1019]="ER_CANT_SET_WD";T[1020]="ER_CHECKREAD";T[1021]="ER_DISK_FULL";T[1022]="ER_DUP_KEY";T[1023]="ER_ERROR_ON_CLOSE";T[1024]="ER_ERROR_ON_READ";T[1025]="ER_ERROR_ON_RENAME";T[1026]="ER_ERROR_ON_WRITE";T[1027]="ER_FILE_USED";T[1028]="ER_FILSORT_ABORT";T[1029]="ER_FORM_NOT_FOUND";T[1030]="ER_GET_ERRNO";T[1031]="ER_ILLEGAL_HA";T[1032]="ER_KEY_NOT_FOUND";T[1033]="ER_NOT_FORM_FILE";T[1034]="ER_NOT_KEYFILE";T[1035]="ER_OLD_KEYFILE";T[1036]="ER_OPEN_AS_READONLY";T[1037]="ER_OUTOFMEMORY";T[1038]="ER_OUT_OF_SORTMEMORY";T[1039]="ER_UNEXPECTED_EOF";T[1040]="ER_CON_COUNT_ERROR";T[1041]="ER_OUT_OF_RESOURCES";T[1042]="ER_BAD_HOST_ERROR";T[1043]="ER_HANDSHAKE_ERROR";T[1044]="ER_DBACCESS_DENIED_ERROR";T[1045]="ER_ACCESS_DENIED_ERROR";T[1046]="ER_NO_DB_ERROR";T[1047]="ER_UNKNOWN_COM_ERROR";T[1048]="ER_BAD_NULL_ERROR";T[1049]="ER_BAD_DB_ERROR";T[1050]="ER_TABLE_EXISTS_ERROR";T[1051]="ER_BAD_TABLE_ERROR";T[1052]="ER_NON_UNIQ_ERROR";T[1053]="ER_SERVER_SHUTDOWN";T[1054]="ER_BAD_FIELD_ERROR";T[1055]="ER_WRONG_FIELD_WITH_GROUP";T[1056]="ER_WRONG_GROUP_FIELD";T[1057]="ER_WRONG_SUM_SELECT";T[1058]="ER_WRONG_VALUE_COUNT";T[1059]="ER_TOO_LONG_IDENT";T[1060]="ER_DUP_FIELDNAME";T[1061]="ER_DUP_KEYNAME";T[1062]="ER_DUP_ENTRY";T[1063]="ER_WRONG_FIELD_SPEC";T[1064]="ER_PARSE_ERROR";T[1065]="ER_EMPTY_QUERY";T[1066]="ER_NONUNIQ_TABLE";T[1067]="ER_INVALID_DEFAULT";T[1068]="ER_MULTIPLE_PRI_KEY";T[1069]="ER_TOO_MANY_KEYS";T[1070]="ER_TOO_MANY_KEY_PARTS";T[1071]="ER_TOO_LONG_KEY";T[1072]="ER_KEY_COLUMN_DOES_NOT_EXITS";T[1073]="ER_BLOB_USED_AS_KEY";T[1074]="ER_TOO_BIG_FIELDLENGTH";T[1075]="ER_WRONG_AUTO_KEY";T[1076]="ER_READY";T[1077]="ER_NORMAL_SHUTDOWN";T[1078]="ER_GOT_SIGNAL";T[1079]="ER_SHUTDOWN_COMPLETE";T[1080]="ER_FORCING_CLOSE";T[1081]="ER_IPSOCK_ERROR";T[1082]="ER_NO_SUCH_INDEX";T[1083]="ER_WRONG_FIELD_TERMINATORS";T[1084]="ER_BLOBS_AND_NO_TERMINATED";T[1085]="ER_TEXTFILE_NOT_READABLE";T[1086]="ER_FILE_EXISTS_ERROR";T[1087]="ER_LOAD_INFO";T[1088]="ER_ALTER_INFO";T[1089]="ER_WRONG_SUB_KEY";T[1090]="ER_CANT_REMOVE_ALL_FIELDS";T[1091]="ER_CANT_DROP_FIELD_OR_KEY";T[1092]="ER_INSERT_INFO";T[1093]="ER_UPDATE_TABLE_USED";T[1094]="ER_NO_SUCH_THREAD";T[1095]="ER_KILL_DENIED_ERROR";T[1096]="ER_NO_TABLES_USED";T[1097]="ER_TOO_BIG_SET";T[1098]="ER_NO_UNIQUE_LOGFILE";T[1099]="ER_TABLE_NOT_LOCKED_FOR_WRITE";T[1100]="ER_TABLE_NOT_LOCKED";T[1101]="ER_BLOB_CANT_HAVE_DEFAULT";T[1102]="ER_WRONG_DB_NAME";T[1103]="ER_WRONG_TABLE_NAME";T[1104]="ER_TOO_BIG_SELECT";T[1105]="ER_UNKNOWN_ERROR";T[1106]="ER_UNKNOWN_PROCEDURE";T[1107]="ER_WRONG_PARAMCOUNT_TO_PROCEDURE";T[1108]="ER_WRONG_PARAMETERS_TO_PROCEDURE";T[1109]="ER_UNKNOWN_TABLE";T[1110]="ER_FIELD_SPECIFIED_TWICE";T[1111]="ER_INVALID_GROUP_FUNC_USE";T[1112]="ER_UNSUPPORTED_EXTENSION";T[1113]="ER_TABLE_MUST_HAVE_COLUMNS";T[1114]="ER_RECORD_FILE_FULL";T[1115]="ER_UNKNOWN_CHARACTER_SET";T[1116]="ER_TOO_MANY_TABLES";T[1117]="ER_TOO_MANY_FIELDS";T[1118]="ER_TOO_BIG_ROWSIZE";T[1119]="ER_STACK_OVERRUN";T[1120]="ER_WRONG_OUTER_JOIN";T[1121]="ER_NULL_COLUMN_IN_INDEX";T[1122]="ER_CANT_FIND_UDF";T[1123]="ER_CANT_INITIALIZE_UDF";T[1124]="ER_UDF_NO_PATHS";T[1125]="ER_UDF_EXISTS";T[1126]="ER_CANT_OPEN_LIBRARY";T[1127]="ER_CANT_FIND_DL_ENTRY";T[1128]="ER_FUNCTION_NOT_DEFINED";T[1129]="ER_HOST_IS_BLOCKED";T[1130]="ER_HOST_NOT_PRIVILEGED";T[1131]="ER_PASSWORD_ANONYMOUS_USER";T[1132]="ER_PASSWORD_NOT_ALLOWED";T[1133]="ER_PASSWORD_NO_MATCH";T[1134]="ER_UPDATE_INFO";T[1135]="ER_CANT_CREATE_THREAD";T[1136]="ER_WRONG_VALUE_COUNT_ON_ROW";T[1137]="ER_CANT_REOPEN_TABLE";T[1138]="ER_INVALID_USE_OF_NULL";T[1139]="ER_REGEXP_ERROR";T[1140]="ER_MIX_OF_GROUP_FUNC_AND_FIELDS";T[1141]="ER_NONEXISTING_GRANT";T[1142]="ER_TABLEACCESS_DENIED_ERROR";T[1143]="ER_COLUMNACCESS_DENIED_ERROR";T[1144]="ER_ILLEGAL_GRANT_FOR_TABLE";T[1145]="ER_GRANT_WRONG_HOST_OR_USER";T[1146]="ER_NO_SUCH_TABLE";T[1147]="ER_NONEXISTING_TABLE_GRANT";T[1148]="ER_NOT_ALLOWED_COMMAND";T[1149]="ER_SYNTAX_ERROR";T[1150]="ER_DELAYED_CANT_CHANGE_LOCK";T[1151]="ER_TOO_MANY_DELAYED_THREADS";T[1152]="ER_ABORTING_CONNECTION";T[1153]="ER_NET_PACKET_TOO_LARGE";T[1154]="ER_NET_READ_ERROR_FROM_PIPE";T[1155]="ER_NET_FCNTL_ERROR";T[1156]="ER_NET_PACKETS_OUT_OF_ORDER";T[1157]="ER_NET_UNCOMPRESS_ERROR";T[1158]="ER_NET_READ_ERROR";T[1159]="ER_NET_READ_INTERRUPTED";T[1160]="ER_NET_ERROR_ON_WRITE";T[1161]="ER_NET_WRITE_INTERRUPTED";T[1162]="ER_TOO_LONG_STRING";T[1163]="ER_TABLE_CANT_HANDLE_BLOB";T[1164]="ER_TABLE_CANT_HANDLE_AUTO_INCREMENT";T[1165]="ER_DELAYED_INSERT_TABLE_LOCKED";T[1166]="ER_WRONG_COLUMN_NAME";T[1167]="ER_WRONG_KEY_COLUMN";T[1168]="ER_WRONG_MRG_TABLE";T[1169]="ER_DUP_UNIQUE";T[1170]="ER_BLOB_KEY_WITHOUT_LENGTH";T[1171]="ER_PRIMARY_CANT_HAVE_NULL";T[1172]="ER_TOO_MANY_ROWS";T[1173]="ER_REQUIRES_PRIMARY_KEY";T[1174]="ER_NO_RAID_COMPILED";T[1175]="ER_UPDATE_WITHOUT_KEY_IN_SAFE_MODE";T[1176]="ER_KEY_DOES_NOT_EXITS";T[1177]="ER_CHECK_NO_SUCH_TABLE";T[1178]="ER_CHECK_NOT_IMPLEMENTED";T[1179]="ER_CANT_DO_THIS_DURING_AN_TRANSACTION";T[1180]="ER_ERROR_DURING_COMMIT";T[1181]="ER_ERROR_DURING_ROLLBACK";T[1182]="ER_ERROR_DURING_FLUSH_LOGS";T[1183]="ER_ERROR_DURING_CHECKPOINT";T[1184]="ER_NEW_ABORTING_CONNECTION";T[1185]="ER_DUMP_NOT_IMPLEMENTED";T[1186]="ER_FLUSH_MASTER_BINLOG_CLOSED";T[1187]="ER_INDEX_REBUILD";T[1188]="ER_MASTER";T[1189]="ER_MASTER_NET_READ";T[1190]="ER_MASTER_NET_WRITE";T[1191]="ER_FT_MATCHING_KEY_NOT_FOUND";T[1192]="ER_LOCK_OR_ACTIVE_TRANSACTION";T[1193]="ER_UNKNOWN_SYSTEM_VARIABLE";T[1194]="ER_CRASHED_ON_USAGE";T[1195]="ER_CRASHED_ON_REPAIR";T[1196]="ER_WARNING_NOT_COMPLETE_ROLLBACK";T[1197]="ER_TRANS_CACHE_FULL";T[1198]="ER_SLAVE_MUST_STOP";T[1199]="ER_SLAVE_NOT_RUNNING";T[1200]="ER_BAD_SLAVE";T[1201]="ER_MASTER_INFO";T[1202]="ER_SLAVE_THREAD";T[1203]="ER_TOO_MANY_USER_CONNECTIONS";T[1204]="ER_SET_CONSTANTS_ONLY";T[1205]="ER_LOCK_WAIT_TIMEOUT";T[1206]="ER_LOCK_TABLE_FULL";T[1207]="ER_READ_ONLY_TRANSACTION";T[1208]="ER_DROP_DB_WITH_READ_LOCK";T[1209]="ER_CREATE_DB_WITH_READ_LOCK";T[1210]="ER_WRONG_ARGUMENTS";T[1211]="ER_NO_PERMISSION_TO_CREATE_USER";T[1212]="ER_UNION_TABLES_IN_DIFFERENT_DIR";T[1213]="ER_LOCK_DEADLOCK";T[1214]="ER_TABLE_CANT_HANDLE_FT";T[1215]="ER_CANNOT_ADD_FOREIGN";T[1216]="ER_NO_REFERENCED_ROW";T[1217]="ER_ROW_IS_REFERENCED";T[1218]="ER_CONNECT_TO_MASTER";T[1219]="ER_QUERY_ON_MASTER";T[1220]="ER_ERROR_WHEN_EXECUTING_COMMAND";T[1221]="ER_WRONG_USAGE";T[1222]="ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT";T[1223]="ER_CANT_UPDATE_WITH_READLOCK";T[1224]="ER_MIXING_NOT_ALLOWED";T[1225]="ER_DUP_ARGUMENT";T[1226]="ER_USER_LIMIT_REACHED";T[1227]="ER_SPECIFIC_ACCESS_DENIED_ERROR";T[1228]="ER_LOCAL_VARIABLE";T[1229]="ER_GLOBAL_VARIABLE";T[1230]="ER_NO_DEFAULT";T[1231]="ER_WRONG_VALUE_FOR_VAR";T[1232]="ER_WRONG_TYPE_FOR_VAR";T[1233]="ER_VAR_CANT_BE_READ";T[1234]="ER_CANT_USE_OPTION_HERE";T[1235]="ER_NOT_SUPPORTED_YET";T[1236]="ER_MASTER_FATAL_ERROR_READING_BINLOG";T[1237]="ER_SLAVE_IGNORED_TABLE";T[1238]="ER_INCORRECT_GLOBAL_LOCAL_VAR";T[1239]="ER_WRONG_FK_DEF";T[1240]="ER_KEY_REF_DO_NOT_MATCH_TABLE_REF";T[1241]="ER_OPERAND_COLUMNS";T[1242]="ER_SUBQUERY_NO_1_ROW";T[1243]="ER_UNKNOWN_STMT_HANDLER";T[1244]="ER_CORRUPT_HELP_DB";T[1245]="ER_CYCLIC_REFERENCE";T[1246]="ER_AUTO_CONVERT";T[1247]="ER_ILLEGAL_REFERENCE";T[1248]="ER_DERIVED_MUST_HAVE_ALIAS";T[1249]="ER_SELECT_REDUCED";T[1250]="ER_TABLENAME_NOT_ALLOWED_HERE";T[1251]="ER_NOT_SUPPORTED_AUTH_MODE";T[1252]="ER_SPATIAL_CANT_HAVE_NULL";T[1253]="ER_COLLATION_CHARSET_MISMATCH";T[1254]="ER_SLAVE_WAS_RUNNING";T[1255]="ER_SLAVE_WAS_NOT_RUNNING";T[1256]="ER_TOO_BIG_FOR_UNCOMPRESS";T[1257]="ER_ZLIB_Z_MEM_ERROR";T[1258]="ER_ZLIB_Z_BUF_ERROR";T[1259]="ER_ZLIB_Z_DATA_ERROR";T[1260]="ER_CUT_VALUE_GROUP_CONCAT";T[1261]="ER_WARN_TOO_FEW_RECORDS";T[1262]="ER_WARN_TOO_MANY_RECORDS";T[1263]="ER_WARN_NULL_TO_NOTNULL";T[1264]="ER_WARN_DATA_OUT_OF_RANGE";T[1265]="WARN_DATA_TRUNCATED";T[1266]="ER_WARN_USING_OTHER_HANDLER";T[1267]="ER_CANT_AGGREGATE_2COLLATIONS";T[1268]="ER_DROP_USER";T[1269]="ER_REVOKE_GRANTS";T[1270]="ER_CANT_AGGREGATE_3COLLATIONS";T[1271]="ER_CANT_AGGREGATE_NCOLLATIONS";T[1272]="ER_VARIABLE_IS_NOT_STRUCT";T[1273]="ER_UNKNOWN_COLLATION";T[1274]="ER_SLAVE_IGNORED_SSL_PARAMS";T[1275]="ER_SERVER_IS_IN_SECURE_AUTH_MODE";T[1276]="ER_WARN_FIELD_RESOLVED";T[1277]="ER_BAD_SLAVE_UNTIL_COND";T[1278]="ER_MISSING_SKIP_SLAVE";T[1279]="ER_UNTIL_COND_IGNORED";T[1280]="ER_WRONG_NAME_FOR_INDEX";T[1281]="ER_WRONG_NAME_FOR_CATALOG";T[1282]="ER_WARN_QC_RESIZE";T[1283]="ER_BAD_FT_COLUMN";T[1284]="ER_UNKNOWN_KEY_CACHE";T[1285]="ER_WARN_HOSTNAME_WONT_WORK";T[1286]="ER_UNKNOWN_STORAGE_ENGINE";T[1287]="ER_WARN_DEPRECATED_SYNTAX";T[1288]="ER_NON_UPDATABLE_TABLE";T[1289]="ER_FEATURE_DISABLED";T[1290]="ER_OPTION_PREVENTS_STATEMENT";T[1291]="ER_DUPLICATED_VALUE_IN_TYPE";T[1292]="ER_TRUNCATED_WRONG_VALUE";T[1293]="ER_TOO_MUCH_AUTO_TIMESTAMP_COLS";T[1294]="ER_INVALID_ON_UPDATE";T[1295]="ER_UNSUPPORTED_PS";T[1296]="ER_GET_ERRMSG";T[1297]="ER_GET_TEMPORARY_ERRMSG";T[1298]="ER_UNKNOWN_TIME_ZONE";T[1299]="ER_WARN_INVALID_TIMESTAMP";T[1300]="ER_INVALID_CHARACTER_STRING";T[1301]="ER_WARN_ALLOWED_PACKET_OVERFLOWED";T[1302]="ER_CONFLICTING_DECLARATIONS";T[1303]="ER_SP_NO_RECURSIVE_CREATE";T[1304]="ER_SP_ALREADY_EXISTS";T[1305]="ER_SP_DOES_NOT_EXIST";T[1306]="ER_SP_DROP_FAILED";T[1307]="ER_SP_STORE_FAILED";T[1308]="ER_SP_LILABEL_MISMATCH";T[1309]="ER_SP_LABEL_REDEFINE";T[1310]="ER_SP_LABEL_MISMATCH";T[1311]="ER_SP_UNINIT_VAR";T[1312]="ER_SP_BADSELECT";T[1313]="ER_SP_BADRETURN";T[1314]="ER_SP_BADSTATEMENT";T[1315]="ER_UPDATE_LOG_DEPRECATED_IGNORED";T[1316]="ER_UPDATE_LOG_DEPRECATED_TRANSLATED";T[1317]="ER_QUERY_INTERRUPTED";T[1318]="ER_SP_WRONG_NO_OF_ARGS";T[1319]="ER_SP_COND_MISMATCH";T[1320]="ER_SP_NORETURN";T[1321]="ER_SP_NORETURNEND";T[1322]="ER_SP_BAD_CURSOR_QUERY";T[1323]="ER_SP_BAD_CURSOR_SELECT";T[1324]="ER_SP_CURSOR_MISMATCH";T[1325]="ER_SP_CURSOR_ALREADY_OPEN";T[1326]="ER_SP_CURSOR_NOT_OPEN";T[1327]="ER_SP_UNDECLARED_VAR";T[1328]="ER_SP_WRONG_NO_OF_FETCH_ARGS";T[1329]="ER_SP_FETCH_NO_DATA";T[1330]="ER_SP_DUP_PARAM";T[1331]="ER_SP_DUP_VAR";T[1332]="ER_SP_DUP_COND";T[1333]="ER_SP_DUP_CURS";T[1334]="ER_SP_CANT_ALTER";T[1335]="ER_SP_SUBSELECT_NYI";T[1336]="ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG";T[1337]="ER_SP_VARCOND_AFTER_CURSHNDLR";T[1338]="ER_SP_CURSOR_AFTER_HANDLER";T[1339]="ER_SP_CASE_NOT_FOUND";T[1340]="ER_FPARSER_TOO_BIG_FILE";T[1341]="ER_FPARSER_BAD_HEADER";T[1342]="ER_FPARSER_EOF_IN_COMMENT";T[1343]="ER_FPARSER_ERROR_IN_PARAMETER";T[1344]="ER_FPARSER_EOF_IN_UNKNOWN_PARAMETER";T[1345]="ER_VIEW_NO_EXPLAIN";T[1346]="ER_FRM_UNKNOWN_TYPE";T[1347]="ER_WRONG_OBJECT";T[1348]="ER_NONUPDATEABLE_COLUMN";T[1349]="ER_VIEW_SELECT_DERIVED";T[1350]="ER_VIEW_SELECT_CLAUSE";T[1351]="ER_VIEW_SELECT_VARIABLE";T[1352]="ER_VIEW_SELECT_TMPTABLE";T[1353]="ER_VIEW_WRONG_LIST";T[1354]="ER_WARN_VIEW_MERGE";T[1355]="ER_WARN_VIEW_WITHOUT_KEY";T[1356]="ER_VIEW_INVALID";T[1357]="ER_SP_NO_DROP_SP";T[1358]="ER_SP_GOTO_IN_HNDLR";T[1359]="ER_TRG_ALREADY_EXISTS";T[1360]="ER_TRG_DOES_NOT_EXIST";T[1361]="ER_TRG_ON_VIEW_OR_TEMP_TABLE";T[1362]="ER_TRG_CANT_CHANGE_ROW";T[1363]="ER_TRG_NO_SUCH_ROW_IN_TRG";T[1364]="ER_NO_DEFAULT_FOR_FIELD";T[1365]="ER_DIVISION_BY_ZERO";T[1366]="ER_TRUNCATED_WRONG_VALUE_FOR_FIELD";T[1367]="ER_ILLEGAL_VALUE_FOR_TYPE";T[1368]="ER_VIEW_NONUPD_CHECK";T[1369]="ER_VIEW_CHECK_FAILED";T[1370]="ER_PROCACCESS_DENIED_ERROR";T[1371]="ER_RELAY_LOG_FAIL";T[1372]="ER_PASSWD_LENGTH";T[1373]="ER_UNKNOWN_TARGET_BINLOG";T[1374]="ER_IO_ERR_LOG_INDEX_READ";T[1375]="ER_BINLOG_PURGE_PROHIBITED";T[1376]="ER_FSEEK_FAIL";T[1377]="ER_BINLOG_PURGE_FATAL_ERR";T[1378]="ER_LOG_IN_USE";T[1379]="ER_LOG_PURGE_UNKNOWN_ERR";T[1380]="ER_RELAY_LOG_INIT";T[1381]="ER_NO_BINARY_LOGGING";T[1382]="ER_RESERVED_SYNTAX";T[1383]="ER_WSAS_FAILED";T[1384]="ER_DIFF_GROUPS_PROC";T[1385]="ER_NO_GROUP_FOR_PROC";T[1386]="ER_ORDER_WITH_PROC";T[1387]="ER_LOGGING_PROHIBIT_CHANGING_OF";T[1388]="ER_NO_FILE_MAPPING";T[1389]="ER_WRONG_MAGIC";T[1390]="ER_PS_MANY_PARAM";T[1391]="ER_KEY_PART_0";T[1392]="ER_VIEW_CHECKSUM";T[1393]="ER_VIEW_MULTIUPDATE";T[1394]="ER_VIEW_NO_INSERT_FIELD_LIST";T[1395]="ER_VIEW_DELETE_MERGE_VIEW";T[1396]="ER_CANNOT_USER";T[1397]="ER_XAER_NOTA";T[1398]="ER_XAER_INVAL";T[1399]="ER_XAER_RMFAIL";T[1400]="ER_XAER_OUTSIDE";T[1401]="ER_XAER_RMERR";T[1402]="ER_XA_RBROLLBACK";T[1403]="ER_NONEXISTING_PROC_GRANT";T[1404]="ER_PROC_AUTO_GRANT_FAIL";T[1405]="ER_PROC_AUTO_REVOKE_FAIL";T[1406]="ER_DATA_TOO_LONG";T[1407]="ER_SP_BAD_SQLSTATE";T[1408]="ER_STARTUP";T[1409]="ER_LOAD_FROM_FIXED_SIZE_ROWS_TO_VAR";T[1410]="ER_CANT_CREATE_USER_WITH_GRANT";T[1411]="ER_WRONG_VALUE_FOR_TYPE";T[1412]="ER_TABLE_DEF_CHANGED";T[1413]="ER_SP_DUP_HANDLER";T[1414]="ER_SP_NOT_VAR_ARG";T[1415]="ER_SP_NO_RETSET";T[1416]="ER_CANT_CREATE_GEOMETRY_OBJECT";T[1417]="ER_FAILED_ROUTINE_BREAK_BINLOG";T[1418]="ER_BINLOG_UNSAFE_ROUTINE";T[1419]="ER_BINLOG_CREATE_ROUTINE_NEED_SUPER";T[1420]="ER_EXEC_STMT_WITH_OPEN_CURSOR";T[1421]="ER_STMT_HAS_NO_OPEN_CURSOR";T[1422]="ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG";T[1423]="ER_NO_DEFAULT_FOR_VIEW_FIELD";T[1424]="ER_SP_NO_RECURSION";T[1425]="ER_TOO_BIG_SCALE";T[1426]="ER_TOO_BIG_PRECISION";T[1427]="ER_M_BIGGER_THAN_D";T[1428]="ER_WRONG_LOCK_OF_SYSTEM_TABLE";T[1429]="ER_CONNECT_TO_FOREIGN_DATA_SOURCE";T[1430]="ER_QUERY_ON_FOREIGN_DATA_SOURCE";T[1431]="ER_FOREIGN_DATA_SOURCE_DOESNT_EXIST";T[1432]="ER_FOREIGN_DATA_STRING_INVALID_CANT_CREATE";T[1433]="ER_FOREIGN_DATA_STRING_INVALID";T[1434]="ER_CANT_CREATE_FEDERATED_TABLE";T[1435]="ER_TRG_IN_WRONG_SCHEMA";T[1436]="ER_STACK_OVERRUN_NEED_MORE";T[1437]="ER_TOO_LONG_BODY";T[1438]="ER_WARN_CANT_DROP_DEFAULT_KEYCACHE";T[1439]="ER_TOO_BIG_DISPLAYWIDTH";T[1440]="ER_XAER_DUPID";T[1441]="ER_DATETIME_FUNCTION_OVERFLOW";T[1442]="ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG";T[1443]="ER_VIEW_PREVENT_UPDATE";T[1444]="ER_PS_NO_RECURSION";T[1445]="ER_SP_CANT_SET_AUTOCOMMIT";T[1446]="ER_MALFORMED_DEFINER";T[1447]="ER_VIEW_FRM_NO_USER";T[1448]="ER_VIEW_OTHER_USER";T[1449]="ER_NO_SUCH_USER";T[1450]="ER_FORBID_SCHEMA_CHANGE";T[1451]="ER_ROW_IS_REFERENCED_2";T[1452]="ER_NO_REFERENCED_ROW_2";T[1453]="ER_SP_BAD_VAR_SHADOW";T[1454]="ER_TRG_NO_DEFINER";T[1455]="ER_OLD_FILE_FORMAT";T[1456]="ER_SP_RECURSION_LIMIT";T[1457]="ER_SP_PROC_TABLE_CORRUPT";T[1458]="ER_SP_WRONG_NAME";T[1459]="ER_TABLE_NEEDS_UPGRADE";T[1460]="ER_SP_NO_AGGREGATE";T[1461]="ER_MAX_PREPARED_STMT_COUNT_REACHED";T[1462]="ER_VIEW_RECURSIVE";T[1463]="ER_NON_GROUPING_FIELD_USED";T[1464]="ER_TABLE_CANT_HANDLE_SPKEYS";T[1465]="ER_NO_TRIGGERS_ON_SYSTEM_SCHEMA";T[1466]="ER_REMOVED_SPACES";T[1467]="ER_AUTOINC_READ_FAILED";T[1468]="ER_USERNAME";T[1469]="ER_HOSTNAME";T[1470]="ER_WRONG_STRING_LENGTH";T[1471]="ER_NON_INSERTABLE_TABLE";T[1472]="ER_ADMIN_WRONG_MRG_TABLE";T[1473]="ER_TOO_HIGH_LEVEL_OF_NESTING_FOR_SELECT";T[1474]="ER_NAME_BECOMES_EMPTY";T[1475]="ER_AMBIGUOUS_FIELD_TERM";T[1476]="ER_FOREIGN_SERVER_EXISTS";T[1477]="ER_FOREIGN_SERVER_DOESNT_EXIST";T[1478]="ER_ILLEGAL_HA_CREATE_OPTION";T[1479]="ER_PARTITION_REQUIRES_VALUES_ERROR";T[1480]="ER_PARTITION_WRONG_VALUES_ERROR";T[1481]="ER_PARTITION_MAXVALUE_ERROR";T[1482]="ER_PARTITION_SUBPARTITION_ERROR";T[1483]="ER_PARTITION_SUBPART_MIX_ERROR";T[1484]="ER_PARTITION_WRONG_NO_PART_ERROR";T[1485]="ER_PARTITION_WRONG_NO_SUBPART_ERROR";T[1486]="ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR";T[1487]="ER_NO_CONST_EXPR_IN_RANGE_OR_LIST_ERROR";T[1488]="ER_FIELD_NOT_FOUND_PART_ERROR";T[1489]="ER_LIST_OF_FIELDS_ONLY_IN_HASH_ERROR";T[1490]="ER_INCONSISTENT_PARTITION_INFO_ERROR";T[1491]="ER_PARTITION_FUNC_NOT_ALLOWED_ERROR";T[1492]="ER_PARTITIONS_MUST_BE_DEFINED_ERROR";T[1493]="ER_RANGE_NOT_INCREASING_ERROR";T[1494]="ER_INCONSISTENT_TYPE_OF_FUNCTIONS_ERROR";T[1495]="ER_MULTIPLE_DEF_CONST_IN_LIST_PART_ERROR";T[1496]="ER_PARTITION_ENTRY_ERROR";T[1497]="ER_MIX_HANDLER_ERROR";T[1498]="ER_PARTITION_NOT_DEFINED_ERROR";T[1499]="ER_TOO_MANY_PARTITIONS_ERROR";T[1500]="ER_SUBPARTITION_ERROR";T[1501]="ER_CANT_CREATE_HANDLER_FILE";T[1502]="ER_BLOB_FIELD_IN_PART_FUNC_ERROR";T[1503]="ER_UNIQUE_KEY_NEED_ALL_FIELDS_IN_PF";T[1504]="ER_NO_PARTS_ERROR";T[1505]="ER_PARTITION_MGMT_ON_NONPARTITIONED";T[1506]="ER_FOREIGN_KEY_ON_PARTITIONED";T[1507]="ER_DROP_PARTITION_NON_EXISTENT";T[1508]="ER_DROP_LAST_PARTITION";T[1509]="ER_COALESCE_ONLY_ON_HASH_PARTITION";T[1510]="ER_REORG_HASH_ONLY_ON_SAME_NO";T[1511]="ER_REORG_NO_PARAM_ERROR";T[1512]="ER_ONLY_ON_RANGE_LIST_PARTITION";T[1513]="ER_ADD_PARTITION_SUBPART_ERROR";T[1514]="ER_ADD_PARTITION_NO_NEW_PARTITION";T[1515]="ER_COALESCE_PARTITION_NO_PARTITION";T[1516]="ER_REORG_PARTITION_NOT_EXIST";T[1517]="ER_SAME_NAME_PARTITION";T[1518]="ER_NO_BINLOG_ERROR";T[1519]="ER_CONSECUTIVE_REORG_PARTITIONS";T[1520]="ER_REORG_OUTSIDE_RANGE";T[1521]="ER_PARTITION_FUNCTION_FAILURE";T[1522]="ER_PART_STATE_ERROR";T[1523]="ER_LIMITED_PART_RANGE";T[1524]="ER_PLUGIN_IS_NOT_LOADED";T[1525]="ER_WRONG_VALUE";T[1526]="ER_NO_PARTITION_FOR_GIVEN_VALUE";T[1527]="ER_FILEGROUP_OPTION_ONLY_ONCE";T[1528]="ER_CREATE_FILEGROUP_FAILED";T[1529]="ER_DROP_FILEGROUP_FAILED";T[1530]="ER_TABLESPACE_AUTO_EXTEND_ERROR";T[1531]="ER_WRONG_SIZE_NUMBER";T[1532]="ER_SIZE_OVERFLOW_ERROR";T[1533]="ER_ALTER_FILEGROUP_FAILED";T[1534]="ER_BINLOG_ROW_LOGGING_FAILED";T[1535]="ER_BINLOG_ROW_WRONG_TABLE_DEF";T[1536]="ER_BINLOG_ROW_RBR_TO_SBR";T[1537]="ER_EVENT_ALREADY_EXISTS";T[1538]="ER_EVENT_STORE_FAILED";T[1539]="ER_EVENT_DOES_NOT_EXIST";T[1540]="ER_EVENT_CANT_ALTER";T[1541]="ER_EVENT_DROP_FAILED";T[1542]="ER_EVENT_INTERVAL_NOT_POSITIVE_OR_TOO_BIG";T[1543]="ER_EVENT_ENDS_BEFORE_STARTS";T[1544]="ER_EVENT_EXEC_TIME_IN_THE_PAST";T[1545]="ER_EVENT_OPEN_TABLE_FAILED";T[1546]="ER_EVENT_NEITHER_M_EXPR_NOR_M_AT";T[1547]="ER_COL_COUNT_DOESNT_MATCH_CORRUPTED";T[1548]="ER_CANNOT_LOAD_FROM_TABLE";T[1549]="ER_EVENT_CANNOT_DELETE";T[1550]="ER_EVENT_COMPILE_ERROR";T[1551]="ER_EVENT_SAME_NAME";T[1552]="ER_EVENT_DATA_TOO_LONG";T[1553]="ER_DROP_INDEX_FK";T[1554]="ER_WARN_DEPRECATED_SYNTAX_WITH_VER";T[1555]="ER_CANT_WRITE_LOCK_LOG_TABLE";T[1556]="ER_CANT_LOCK_LOG_TABLE";T[1557]="ER_FOREIGN_DUPLICATE_KEY";T[1558]="ER_COL_COUNT_DOESNT_MATCH_PLEASE_UPDATE";T[1559]="ER_TEMP_TABLE_PREVENTS_SWITCH_OUT_OF_RBR";T[1560]="ER_STORED_FUNCTION_PREVENTS_SWITCH_BINLOG_FORMAT";T[1561]="ER_NDB_CANT_SWITCH_BINLOG_FORMAT";T[1562]="ER_PARTITION_NO_TEMPORARY";T[1563]="ER_PARTITION_CONST_DOMAIN_ERROR";T[1564]="ER_PARTITION_FUNCTION_IS_NOT_ALLOWED";T[1565]="ER_DDL_LOG_ERROR";T[1566]="ER_NULL_IN_VALUES_LESS_THAN";T[1567]="ER_WRONG_PARTITION_NAME";T[1568]="ER_CANT_CHANGE_TX_CHARACTERISTICS";T[1569]="ER_DUP_ENTRY_AUTOINCREMENT_CASE";T[1570]="ER_EVENT_MODIFY_QUEUE_ERROR";T[1571]="ER_EVENT_SET_VAR_ERROR";T[1572]="ER_PARTITION_MERGE_ERROR";T[1573]="ER_CANT_ACTIVATE_LOG";T[1574]="ER_RBR_NOT_AVAILABLE";T[1575]="ER_BASE64_DECODE_ERROR";T[1576]="ER_EVENT_RECURSION_FORBIDDEN";T[1577]="ER_EVENTS_DB_ERROR";T[1578]="ER_ONLY_INTEGERS_ALLOWED";T[1579]="ER_UNSUPORTED_LOG_ENGINE";T[1580]="ER_BAD_LOG_STATEMENT";T[1581]="ER_CANT_RENAME_LOG_TABLE";T[1582]="ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT";T[1583]="ER_WRONG_PARAMETERS_TO_NATIVE_FCT";T[1584]="ER_WRONG_PARAMETERS_TO_STORED_FCT";T[1585]="ER_NATIVE_FCT_NAME_COLLISION";T[1586]="ER_DUP_ENTRY_WITH_KEY_NAME";T[1587]="ER_BINLOG_PURGE_EMFILE";T[1588]="ER_EVENT_CANNOT_CREATE_IN_THE_PAST";T[1589]="ER_EVENT_CANNOT_ALTER_IN_THE_PAST";T[1590]="ER_SLAVE_INCIDENT";T[1591]="ER_NO_PARTITION_FOR_GIVEN_VALUE_SILENT";T[1592]="ER_BINLOG_UNSAFE_STATEMENT";T[1593]="ER_SLAVE_FATAL_ERROR";T[1594]="ER_SLAVE_RELAY_LOG_READ_FAILURE";T[1595]="ER_SLAVE_RELAY_LOG_WRITE_FAILURE";T[1596]="ER_SLAVE_CREATE_EVENT_FAILURE";T[1597]="ER_SLAVE_MASTER_COM_FAILURE";T[1598]="ER_BINLOG_LOGGING_IMPOSSIBLE";T[1599]="ER_VIEW_NO_CREATION_CTX";T[1600]="ER_VIEW_INVALID_CREATION_CTX";T[1601]="ER_SR_INVALID_CREATION_CTX";T[1602]="ER_TRG_CORRUPTED_FILE";T[1603]="ER_TRG_NO_CREATION_CTX";T[1604]="ER_TRG_INVALID_CREATION_CTX";T[1605]="ER_EVENT_INVALID_CREATION_CTX";T[1606]="ER_TRG_CANT_OPEN_TABLE";T[1607]="ER_CANT_CREATE_SROUTINE";T[1608]="ER_NEVER_USED";T[1609]="ER_NO_FORMAT_DESCRIPTION_EVENT_BEFORE_BINLOG_STATEMENT";T[1610]="ER_SLAVE_CORRUPT_EVENT";T[1611]="ER_LOAD_DATA_INVALID_COLUMN";T[1612]="ER_LOG_PURGE_NO_FILE";T[1613]="ER_XA_RBTIMEOUT";T[1614]="ER_XA_RBDEADLOCK";T[1615]="ER_NEED_REPREPARE";T[1616]="ER_DELAYED_NOT_SUPPORTED";T[1617]="WARN_NO_MASTER_INFO";T[1618]="WARN_OPTION_IGNORED";T[1619]="ER_PLUGIN_DELETE_BUILTIN";T[1620]="WARN_PLUGIN_BUSY";T[1621]="ER_VARIABLE_IS_READONLY";T[1622]="ER_WARN_ENGINE_TRANSACTION_ROLLBACK";T[1623]="ER_SLAVE_HEARTBEAT_FAILURE";T[1624]="ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE";T[1625]="ER_NDB_REPLICATION_SCHEMA_ERROR";T[1626]="ER_CONFLICT_FN_PARSE_ERROR";T[1627]="ER_EXCEPTIONS_WRITE_ERROR";T[1628]="ER_TOO_LONG_TABLE_COMMENT";T[1629]="ER_TOO_LONG_FIELD_COMMENT";T[1630]="ER_FUNC_INEXISTENT_NAME_COLLISION";T[1631]="ER_DATABASE_NAME";T[1632]="ER_TABLE_NAME";T[1633]="ER_PARTITION_NAME";T[1634]="ER_SUBPARTITION_NAME";T[1635]="ER_TEMPORARY_NAME";T[1636]="ER_RENAMED_NAME";T[1637]="ER_TOO_MANY_CONCURRENT_TRXS";T[1638]="WARN_NON_ASCII_SEPARATOR_NOT_IMPLEMENTED";T[1639]="ER_DEBUG_SYNC_TIMEOUT";T[1640]="ER_DEBUG_SYNC_HIT_LIMIT";T[1641]="ER_DUP_SIGNAL_SET";T[1642]="ER_SIGNAL_WARN";T[1643]="ER_SIGNAL_NOT_FOUND";T[1644]="ER_SIGNAL_EXCEPTION";T[1645]="ER_RESIGNAL_WITHOUT_ACTIVE_HANDLER";T[1646]="ER_SIGNAL_BAD_CONDITION_TYPE";T[1647]="WARN_COND_ITEM_TRUNCATED";T[1648]="ER_COND_ITEM_TOO_LONG";T[1649]="ER_UNKNOWN_LOCALE";T[1650]="ER_SLAVE_IGNORE_SERVER_IDS";T[1651]="ER_QUERY_CACHE_DISABLED";T[1652]="ER_SAME_NAME_PARTITION_FIELD";T[1653]="ER_PARTITION_COLUMN_LIST_ERROR";T[1654]="ER_WRONG_TYPE_COLUMN_VALUE_ERROR";T[1655]="ER_TOO_MANY_PARTITION_FUNC_FIELDS_ERROR";T[1656]="ER_MAXVALUE_IN_VALUES_IN";T[1657]="ER_TOO_MANY_VALUES_ERROR";T[1658]="ER_ROW_SINGLE_PARTITION_FIELD_ERROR";T[1659]="ER_FIELD_TYPE_NOT_ALLOWED_AS_PARTITION_FIELD";T[1660]="ER_PARTITION_FIELDS_TOO_LONG";T[1661]="ER_BINLOG_ROW_ENGINE_AND_STMT_ENGINE";T[1662]="ER_BINLOG_ROW_MODE_AND_STMT_ENGINE";T[1663]="ER_BINLOG_UNSAFE_AND_STMT_ENGINE";T[1664]="ER_BINLOG_ROW_INJECTION_AND_STMT_ENGINE";T[1665]="ER_BINLOG_STMT_MODE_AND_ROW_ENGINE";T[1666]="ER_BINLOG_ROW_INJECTION_AND_STMT_MODE";T[1667]="ER_BINLOG_MULTIPLE_ENGINES_AND_SELF_LOGGING_ENGINE";T[1668]="ER_BINLOG_UNSAFE_LIMIT";T[1669]="ER_BINLOG_UNSAFE_INSERT_DELAYED";T[1670]="ER_BINLOG_UNSAFE_SYSTEM_TABLE";T[1671]="ER_BINLOG_UNSAFE_AUTOINC_COLUMNS";T[1672]="ER_BINLOG_UNSAFE_UDF";T[1673]="ER_BINLOG_UNSAFE_SYSTEM_VARIABLE";T[1674]="ER_BINLOG_UNSAFE_SYSTEM_FUNCTION";T[1675]="ER_BINLOG_UNSAFE_NONTRANS_AFTER_TRANS";T[1676]="ER_MESSAGE_AND_STATEMENT";T[1677]="ER_SLAVE_CONVERSION_FAILED";T[1678]="ER_SLAVE_CANT_CREATE_CONVERSION";T[1679]="ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_BINLOG_FORMAT";T[1680]="ER_PATH_LENGTH";T[1681]="ER_WARN_DEPRECATED_SYNTAX_NO_REPLACEMENT";T[1682]="ER_WRONG_NATIVE_TABLE_STRUCTURE";T[1683]="ER_WRONG_PERFSCHEMA_USAGE";T[1684]="ER_WARN_I_S_SKIPPED_TABLE";T[1685]="ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_BINLOG_DIRECT";T[1686]="ER_STORED_FUNCTION_PREVENTS_SWITCH_BINLOG_DIRECT";T[1687]="ER_SPATIAL_MUST_HAVE_GEOM_COL";T[1688]="ER_TOO_LONG_INDEX_COMMENT";T[1689]="ER_LOCK_ABORTED";T[1690]="ER_DATA_OUT_OF_RANGE";T[1691]="ER_WRONG_SPVAR_TYPE_IN_LIMIT";T[1692]="ER_BINLOG_UNSAFE_MULTIPLE_ENGINES_AND_SELF_LOGGING_ENGINE";T[1693]="ER_BINLOG_UNSAFE_MIXED_STATEMENT";T[1694]="ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_SQL_LOG_BIN";T[1695]="ER_STORED_FUNCTION_PREVENTS_SWITCH_SQL_LOG_BIN";T[1696]="ER_FAILED_READ_FROM_PAR_FILE";T[1697]="ER_VALUES_IS_NOT_INT_TYPE_ERROR";T[1698]="ER_ACCESS_DENIED_NO_PASSWORD_ERROR";T[1699]="ER_SET_PASSWORD_AUTH_PLUGIN";T[1700]="ER_GRANT_PLUGIN_USER_EXISTS";T[1701]="ER_TRUNCATE_ILLEGAL_FK";T[1702]="ER_PLUGIN_IS_PERMANENT";T[1703]="ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MIN";T[1704]="ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MAX";T[1705]="ER_STMT_CACHE_FULL";T[1706]="ER_MULTI_UPDATE_KEY_CONFLICT";T[1707]="ER_TABLE_NEEDS_REBUILD";T[1708]="WARN_OPTION_BELOW_LIMIT";T[1709]="ER_INDEX_COLUMN_TOO_LONG";T[1710]="ER_ERROR_IN_TRIGGER_BODY";T[1711]="ER_ERROR_IN_UNKNOWN_TRIGGER_BODY";T[1712]="ER_INDEX_CORRUPT";T[1713]="ER_UNDO_RECORD_TOO_BIG";T[1714]="ER_BINLOG_UNSAFE_INSERT_IGNORE_SELECT";T[1715]="ER_BINLOG_UNSAFE_INSERT_SELECT_UPDATE";T[1716]="ER_BINLOG_UNSAFE_REPLACE_SELECT";T[1717]="ER_BINLOG_UNSAFE_CREATE_IGNORE_SELECT";T[1718]="ER_BINLOG_UNSAFE_CREATE_REPLACE_SELECT";T[1719]="ER_BINLOG_UNSAFE_UPDATE_IGNORE";T[1720]="ER_PLUGIN_NO_UNINSTALL";T[1721]="ER_PLUGIN_NO_INSTALL";T[1722]="ER_BINLOG_UNSAFE_WRITE_AUTOINC_SELECT";T[1723]="ER_BINLOG_UNSAFE_CREATE_SELECT_AUTOINC";T[1724]="ER_BINLOG_UNSAFE_INSERT_TWO_KEYS";T[1725]="ER_TABLE_IN_FK_CHECK";T[1726]="ER_UNSUPPORTED_ENGINE";T[1727]="ER_BINLOG_UNSAFE_AUTOINC_NOT_FIRST";T[1728]="ER_CANNOT_LOAD_FROM_TABLE_V2";T[1729]="ER_MASTER_DELAY_VALUE_OUT_OF_RANGE";T[1730]="ER_ONLY_FD_AND_RBR_EVENTS_ALLOWED_IN_BINLOG_STATEMENT";T[1731]="ER_PARTITION_EXCHANGE_DIFFERENT_OPTION";T[1732]="ER_PARTITION_EXCHANGE_PART_TABLE";T[1733]="ER_PARTITION_EXCHANGE_TEMP_TABLE";T[1734]="ER_PARTITION_INSTEAD_OF_SUBPARTITION";T[1735]="ER_UNKNOWN_PARTITION";T[1736]="ER_TABLES_DIFFERENT_METADATA";T[1737]="ER_ROW_DOES_NOT_MATCH_PARTITION";T[1738]="ER_BINLOG_CACHE_SIZE_GREATER_THAN_MAX";T[1739]="ER_WARN_INDEX_NOT_APPLICABLE";T[1740]="ER_PARTITION_EXCHANGE_FOREIGN_KEY";T[1741]="ER_NO_SUCH_KEY_VALUE";T[1742]="ER_RPL_INFO_DATA_TOO_LONG";T[1743]="ER_NETWORK_READ_EVENT_CHECKSUM_FAILURE";T[1744]="ER_BINLOG_READ_EVENT_CHECKSUM_FAILURE";T[1745]="ER_BINLOG_STMT_CACHE_SIZE_GREATER_THAN_MAX";T[1746]="ER_CANT_UPDATE_TABLE_IN_CREATE_TABLE_SELECT";T[1747]="ER_PARTITION_CLAUSE_ON_NONPARTITIONED";T[1748]="ER_ROW_DOES_NOT_MATCH_GIVEN_PARTITION_SET";T[1749]="ER_NO_SUCH_PARTITION";T[1750]="ER_CHANGE_RPL_INFO_REPOSITORY_FAILURE";T[1751]="ER_WARNING_NOT_COMPLETE_ROLLBACK_WITH_CREATED_TEMP_TABLE";T[1752]="ER_WARNING_NOT_COMPLETE_ROLLBACK_WITH_DROPPED_TEMP_TABLE";T[1753]="ER_MTS_FEATURE_IS_NOT_SUPPORTED";T[1754]="ER_MTS_UPDATED_DBS_GREATER_MAX";T[1755]="ER_MTS_CANT_PARALLEL";T[1756]="ER_MTS_INCONSISTENT_DATA";T[1757]="ER_FULLTEXT_NOT_SUPPORTED_WITH_PARTITIONING";T[1758]="ER_DA_INVALID_CONDITION_NUMBER";T[1759]="ER_INSECURE_PLAIN_TEXT";T[1760]="ER_INSECURE_CHANGE_MASTER";T[1761]="ER_FOREIGN_DUPLICATE_KEY_WITH_CHILD_INFO";T[1762]="ER_FOREIGN_DUPLICATE_KEY_WITHOUT_CHILD_INFO";T[1763]="ER_SQLTHREAD_WITH_SECURE_SLAVE";T[1764]="ER_TABLE_HAS_NO_FT";T[1765]="ER_VARIABLE_NOT_SETTABLE_IN_SF_OR_TRIGGER";T[1766]="ER_VARIABLE_NOT_SETTABLE_IN_TRANSACTION";T[1767]="ER_GTID_NEXT_IS_NOT_IN_GTID_NEXT_LIST";T[1768]="ER_CANT_CHANGE_GTID_NEXT_IN_TRANSACTION";T[1769]="ER_SET_STATEMENT_CANNOT_INVOKE_FUNCTION";T[1770]="ER_GTID_NEXT_CANT_BE_AUTOMATIC_IF_GTID_NEXT_LIST_IS_NON_NULL";T[1771]="ER_SKIPPING_LOGGED_TRANSACTION";T[1772]="ER_MALFORMED_GTID_SET_SPECIFICATION";T[1773]="ER_MALFORMED_GTID_SET_ENCODING";T[1774]="ER_MALFORMED_GTID_SPECIFICATION";T[1775]="ER_GNO_EXHAUSTED";T[1776]="ER_BAD_SLAVE_AUTO_POSITION";T[1777]="ER_AUTO_POSITION_REQUIRES_GTID_MODE_NOT_OFF";T[1778]="ER_CANT_DO_IMPLICIT_COMMIT_IN_TRX_WHEN_GTID_NEXT_IS_SET";T[1779]="ER_GTID_MODE_ON_REQUIRES_ENFORCE_GTID_CONSISTENCY_ON";T[1780]="ER_GTID_MODE_REQUIRES_BINLOG";T[1781]="ER_CANT_SET_GTID_NEXT_TO_GTID_WHEN_GTID_MODE_IS_OFF";T[1782]="ER_CANT_SET_GTID_NEXT_TO_ANONYMOUS_WHEN_GTID_MODE_IS_ON";T[1783]="ER_CANT_SET_GTID_NEXT_LIST_TO_NON_NULL_WHEN_GTID_MODE_IS_OFF";T[1784]="ER_FOUND_GTID_EVENT_WHEN_GTID_MODE_IS_OFF";T[1785]="ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE";T[1786]="ER_GTID_UNSAFE_CREATE_SELECT";T[1787]="ER_GTID_UNSAFE_CREATE_DROP_TEMPORARY_TABLE_IN_TRANSACTION";T[1788]="ER_GTID_MODE_CAN_ONLY_CHANGE_ONE_STEP_AT_A_TIME";T[1789]="ER_MASTER_HAS_PURGED_REQUIRED_GTIDS";T[1790]="ER_CANT_SET_GTID_NEXT_WHEN_OWNING_GTID";T[1791]="ER_UNKNOWN_EXPLAIN_FORMAT";T[1792]="ER_CANT_EXECUTE_IN_READ_ONLY_TRANSACTION";T[1793]="ER_TOO_LONG_TABLE_PARTITION_COMMENT";T[1794]="ER_SLAVE_CONFIGURATION";T[1795]="ER_INNODB_FT_LIMIT";T[1796]="ER_INNODB_NO_FT_TEMP_TABLE";T[1797]="ER_INNODB_FT_WRONG_DOCID_COLUMN";T[1798]="ER_INNODB_FT_WRONG_DOCID_INDEX";T[1799]="ER_INNODB_ONLINE_LOG_TOO_BIG";T[1800]="ER_UNKNOWN_ALTER_ALGORITHM";T[1801]="ER_UNKNOWN_ALTER_LOCK";T[1802]="ER_MTS_CHANGE_MASTER_CANT_RUN_WITH_GAPS";T[1803]="ER_MTS_RECOVERY_FAILURE";T[1804]="ER_MTS_RESET_WORKERS";T[1805]="ER_COL_COUNT_DOESNT_MATCH_CORRUPTED_V2";T[1806]="ER_SLAVE_SILENT_RETRY_TRANSACTION";T[1807]="ER_DISCARD_FK_CHECKS_RUNNING";T[1808]="ER_TABLE_SCHEMA_MISMATCH";T[1809]="ER_TABLE_IN_SYSTEM_TABLESPACE";T[1810]="ER_IO_READ_ERROR";T[1811]="ER_IO_WRITE_ERROR";T[1812]="ER_TABLESPACE_MISSING";T[1813]="ER_TABLESPACE_EXISTS";T[1814]="ER_TABLESPACE_DISCARDED";T[1815]="ER_INTERNAL_ERROR";T[1816]="ER_INNODB_IMPORT_ERROR";T[1817]="ER_INNODB_INDEX_CORRUPT";T[1818]="ER_INVALID_YEAR_COLUMN_LENGTH";T[1819]="ER_NOT_VALID_PASSWORD";T[1820]="ER_MUST_CHANGE_PASSWORD";T[1821]="ER_FK_NO_INDEX_CHILD";T[1822]="ER_FK_NO_INDEX_PARENT";T[1823]="ER_FK_FAIL_ADD_SYSTEM";T[1824]="ER_FK_CANNOT_OPEN_PARENT";T[1825]="ER_FK_INCORRECT_OPTION";T[1826]="ER_FK_DUP_NAME";T[1827]="ER_PASSWORD_FORMAT";T[1828]="ER_FK_COLUMN_CANNOT_DROP";T[1829]="ER_FK_COLUMN_CANNOT_DROP_CHILD";T[1830]="ER_FK_COLUMN_NOT_NULL";T[1831]="ER_DUP_INDEX";T[1832]="ER_FK_COLUMN_CANNOT_CHANGE";T[1833]="ER_FK_COLUMN_CANNOT_CHANGE_CHILD";T[1834]="ER_FK_CANNOT_DELETE_PARENT";T[1835]="ER_MALFORMED_PACKET";T[1836]="ER_READ_ONLY_MODE";T[1837]="ER_GTID_NEXT_TYPE_UNDEFINED_GROUP";T[1838]="ER_VARIABLE_NOT_SETTABLE_IN_SP";T[1839]="ER_CANT_SET_GTID_PURGED_WHEN_GTID_MODE_IS_OFF";T[1840]="ER_CANT_SET_GTID_PURGED_WHEN_GTID_EXECUTED_IS_NOT_EMPTY";T[1841]="ER_CANT_SET_GTID_PURGED_WHEN_OWNED_GTIDS_IS_NOT_EMPTY";T[1842]="ER_GTID_PURGED_WAS_CHANGED";T[1843]="ER_GTID_EXECUTED_WAS_CHANGED";T[1844]="ER_BINLOG_STMT_MODE_AND_NO_REPL_TABLES";T[1845]="ER_ALTER_OPERATION_NOT_SUPPORTED";T[1846]="ER_ALTER_OPERATION_NOT_SUPPORTED_REASON";T[1847]="ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_COPY";T[1848]="ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_PARTITION";T[1849]="ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_FK_RENAME";T[1850]="ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_COLUMN_TYPE";T[1851]="ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_FK_CHECK";T[1852]="ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_IGNORE";T[1853]="ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_NOPK";T[1854]="ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_AUTOINC";T[1855]="ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_HIDDEN_FTS";T[1856]="ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_CHANGE_FTS";T[1857]="ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_FTS";T[1858]="ER_SQL_SLAVE_SKIP_COUNTER_NOT_SETTABLE_IN_GTID_MODE";T[1859]="ER_DUP_UNKNOWN_IN_INDEX";T[1860]="ER_IDENT_CAUSES_TOO_LONG_PATH";T[1861]="ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_NOT_NULL";T[1862]="ER_MUST_CHANGE_PASSWORD_LOGIN";T[1863]="ER_ROW_IN_WRONG_PARTITION";T[1864]="ER_MTS_EVENT_BIGGER_PENDING_JOBS_SIZE_MAX";T[1865]="ER_INNODB_NO_FT_USES_PARSER";T[1866]="ER_BINLOG_LOGICAL_CORRUPTION";T[1867]="ER_WARN_PURGE_LOG_IN_USE";T[1868]="ER_WARN_PURGE_LOG_IS_ACTIVE";T[1869]="ER_AUTO_INCREMENT_CONFLICT";T[1870]="WARN_ON_BLOCKHOLE_IN_RBR";T[1871]="ER_SLAVE_MI_INIT_REPOSITORY";T[1872]="ER_SLAVE_RLI_INIT_REPOSITORY";T[1873]="ER_ACCESS_DENIED_CHANGE_USER_ERROR";T[1874]="ER_INNODB_READ_ONLY";T[1875]="ER_STOP_SLAVE_SQL_THREAD_TIMEOUT";T[1876]="ER_STOP_SLAVE_IO_THREAD_TIMEOUT";T[1877]="ER_TABLE_CORRUPT";T[1878]="ER_TEMP_FILE_WRITE_FAILURE";T[1879]="ER_INNODB_FT_AUX_NOT_HEX_ID";T[1880]="ER_OLD_TEMPORALS_UPGRADED";T[1881]="ER_INNODB_FORCED_RECOVERY";T[1882]="ER_AES_INVALID_IV";T[1883]="ER_PLUGIN_CANNOT_BE_UNINSTALLED";T[1884]="ER_GTID_UNSAFE_BINLOG_SPLITTABLE_STATEMENT_AND_GTID_GROUP";T[1885]="ER_SLAVE_HAS_MORE_GTIDS_THAN_MASTER";T[1886]="ER_MISSING_KEY";T[1887]="WARN_NAMED_PIPE_ACCESS_EVERYONE";T[1888]="ER_FOUND_MISSING_GTIDS";T[3000]="ER_FILE_CORRUPT";T[3001]="ER_ERROR_ON_MASTER";T[3002]="ER_INCONSISTENT_ERROR";T[3003]="ER_STORAGE_ENGINE_NOT_LOADED";T[3004]="ER_GET_STACKED_DA_WITHOUT_ACTIVE_HANDLER";T[3005]="ER_WARN_LEGACY_SYNTAX_CONVERTED";T[3006]="ER_BINLOG_UNSAFE_FULLTEXT_PLUGIN";T[3007]="ER_CANNOT_DISCARD_TEMPORARY_TABLE";T[3008]="ER_FK_DEPTH_EXCEEDED";T[3009]="ER_COL_COUNT_DOESNT_MATCH_PLEASE_UPDATE_V2";T[3010]="ER_WARN_TRIGGER_DOESNT_HAVE_CREATED";T[3011]="ER_REFERENCED_TRG_DOES_NOT_EXIST";T[3012]="ER_EXPLAIN_NOT_SUPPORTED";T[3013]="ER_INVALID_FIELD_SIZE";T[3014]="ER_MISSING_HA_CREATE_OPTION";T[3015]="ER_ENGINE_OUT_OF_MEMORY";T[3016]="ER_PASSWORD_EXPIRE_ANONYMOUS_USER";T[3017]="ER_SLAVE_SQL_THREAD_MUST_STOP";T[3018]="ER_NO_FT_MATERIALIZED_SUBQUERY";T[3019]="ER_INNODB_UNDO_LOG_FULL";T[3020]="ER_INVALID_ARGUMENT_FOR_LOGARITHM";T[3021]="ER_SLAVE_CHANNEL_IO_THREAD_MUST_STOP";T[3022]="ER_WARN_OPEN_TEMP_TABLES_MUST_BE_ZERO";T[3023]="ER_WARN_ONLY_MASTER_LOG_FILE_NO_POS";T[3024]="ER_QUERY_TIMEOUT";T[3025]="ER_NON_RO_SELECT_DISABLE_TIMER";T[3026]="ER_DUP_LIST_ENTRY";T[3027]="ER_SQL_MODE_NO_EFFECT";T[3028]="ER_AGGREGATE_ORDER_FOR_UNION";T[3029]="ER_AGGREGATE_ORDER_NON_AGG_QUERY";T[3030]="ER_SLAVE_WORKER_STOPPED_PREVIOUS_THD_ERROR";T[3031]="ER_DONT_SUPPORT_SLAVE_PRESERVE_COMMIT_ORDER";T[3032]="ER_SERVER_OFFLINE_MODE";T[3033]="ER_GIS_DIFFERENT_SRIDS";T[3034]="ER_GIS_UNSUPPORTED_ARGUMENT";T[3035]="ER_GIS_UNKNOWN_ERROR";T[3036]="ER_GIS_UNKNOWN_EXCEPTION";T[3037]="ER_GIS_INVALID_DATA";T[3038]="ER_BOOST_GEOMETRY_EMPTY_INPUT_EXCEPTION";T[3039]="ER_BOOST_GEOMETRY_CENTROID_EXCEPTION";T[3040]="ER_BOOST_GEOMETRY_OVERLAY_INVALID_INPUT_EXCEPTION";T[3041]="ER_BOOST_GEOMETRY_TURN_INFO_EXCEPTION";T[3042]="ER_BOOST_GEOMETRY_SELF_INTERSECTION_POINT_EXCEPTION";T[3043]="ER_BOOST_GEOMETRY_UNKNOWN_EXCEPTION";T[3044]="ER_STD_BAD_ALLOC_ERROR";T[3045]="ER_STD_DOMAIN_ERROR";T[3046]="ER_STD_LENGTH_ERROR";T[3047]="ER_STD_INVALID_ARGUMENT";T[3048]="ER_STD_OUT_OF_RANGE_ERROR";T[3049]="ER_STD_OVERFLOW_ERROR";T[3050]="ER_STD_RANGE_ERROR";T[3051]="ER_STD_UNDERFLOW_ERROR";T[3052]="ER_STD_LOGIC_ERROR";T[3053]="ER_STD_RUNTIME_ERROR";T[3054]="ER_STD_UNKNOWN_EXCEPTION";T[3055]="ER_GIS_DATA_WRONG_ENDIANESS";T[3056]="ER_CHANGE_MASTER_PASSWORD_LENGTH";T[3057]="ER_USER_LOCK_WRONG_NAME";T[3058]="ER_USER_LOCK_DEADLOCK";T[3059]="ER_REPLACE_INACCESSIBLE_ROWS";T[3060]="ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_GIS";T[3061]="ER_ILLEGAL_USER_VAR";T[3062]="ER_GTID_MODE_OFF";T[3063]="ER_UNSUPPORTED_BY_REPLICATION_THREAD";T[3064]="ER_INCORRECT_TYPE";T[3065]="ER_FIELD_IN_ORDER_NOT_SELECT";T[3066]="ER_AGGREGATE_IN_ORDER_NOT_SELECT";T[3067]="ER_INVALID_RPL_WILD_TABLE_FILTER_PATTERN";T[3068]="ER_NET_OK_PACKET_TOO_LARGE";T[3069]="ER_INVALID_JSON_DATA";T[3070]="ER_INVALID_GEOJSON_MISSING_MEMBER";T[3071]="ER_INVALID_GEOJSON_WRONG_TYPE";T[3072]="ER_INVALID_GEOJSON_UNSPECIFIED";T[3073]="ER_DIMENSION_UNSUPPORTED";T[3074]="ER_SLAVE_CHANNEL_DOES_NOT_EXIST";T[3075]="ER_SLAVE_MULTIPLE_CHANNELS_HOST_PORT";T[3076]="ER_SLAVE_CHANNEL_NAME_INVALID_OR_TOO_LONG";T[3077]="ER_SLAVE_NEW_CHANNEL_WRONG_REPOSITORY";T[3078]="ER_SLAVE_CHANNEL_DELETE";T[3079]="ER_SLAVE_MULTIPLE_CHANNELS_CMD";T[3080]="ER_SLAVE_MAX_CHANNELS_EXCEEDED";T[3081]="ER_SLAVE_CHANNEL_MUST_STOP";T[3082]="ER_SLAVE_CHANNEL_NOT_RUNNING";T[3083]="ER_SLAVE_CHANNEL_WAS_RUNNING";T[3084]="ER_SLAVE_CHANNEL_WAS_NOT_RUNNING";T[3085]="ER_SLAVE_CHANNEL_SQL_THREAD_MUST_STOP";T[3086]="ER_SLAVE_CHANNEL_SQL_SKIP_COUNTER";T[3087]="ER_WRONG_FIELD_WITH_GROUP_V2";T[3088]="ER_MIX_OF_GROUP_FUNC_AND_FIELDS_V2";T[3089]="ER_WARN_DEPRECATED_SYSVAR_UPDATE";T[3090]="ER_WARN_DEPRECATED_SQLMODE";T[3091]="ER_CANNOT_LOG_PARTIAL_DROP_DATABASE_WITH_GTID";T[3092]="ER_GROUP_REPLICATION_CONFIGURATION";T[3093]="ER_GROUP_REPLICATION_RUNNING";T[3094]="ER_GROUP_REPLICATION_APPLIER_INIT_ERROR";T[3095]="ER_GROUP_REPLICATION_STOP_APPLIER_THREAD_TIMEOUT";T[3096]="ER_GROUP_REPLICATION_COMMUNICATION_LAYER_SESSION_ERROR";T[3097]="ER_GROUP_REPLICATION_COMMUNICATION_LAYER_JOIN_ERROR";T[3098]="ER_BEFORE_DML_VALIDATION_ERROR";T[3099]="ER_PREVENTS_VARIABLE_WITHOUT_RBR";T[3100]="ER_RUN_HOOK_ERROR";T[3101]="ER_TRANSACTION_ROLLBACK_DURING_COMMIT";T[3102]="ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED";T[3103]="ER_UNSUPPORTED_ALTER_INPLACE_ON_VIRTUAL_COLUMN";T[3104]="ER_WRONG_FK_OPTION_FOR_GENERATED_COLUMN";T[3105]="ER_NON_DEFAULT_VALUE_FOR_GENERATED_COLUMN";T[3106]="ER_UNSUPPORTED_ACTION_ON_GENERATED_COLUMN";T[3107]="ER_GENERATED_COLUMN_NON_PRIOR";T[3108]="ER_DEPENDENT_BY_GENERATED_COLUMN";T[3109]="ER_GENERATED_COLUMN_REF_AUTO_INC";T[3110]="ER_FEATURE_NOT_AVAILABLE";T[3111]="ER_CANT_SET_GTID_MODE";T[3112]="ER_CANT_USE_AUTO_POSITION_WITH_GTID_MODE_OFF";T[3113]="ER_CANT_REPLICATE_ANONYMOUS_WITH_AUTO_POSITION";T[3114]="ER_CANT_REPLICATE_ANONYMOUS_WITH_GTID_MODE_ON";T[3115]="ER_CANT_REPLICATE_GTID_WITH_GTID_MODE_OFF";T[3116]="ER_CANT_SET_ENFORCE_GTID_CONSISTENCY_ON_WITH_ONGOING_GTID_VIOLATING_TRANSACTIONS";T[3117]="ER_SET_ENFORCE_GTID_CONSISTENCY_WARN_WITH_ONGOING_GTID_VIOLATING_TRANSACTIONS";T[3118]="ER_ACCOUNT_HAS_BEEN_LOCKED";T[3119]="ER_WRONG_TABLESPACE_NAME";T[3120]="ER_TABLESPACE_IS_NOT_EMPTY";T[3121]="ER_WRONG_FILE_NAME";T[3122]="ER_BOOST_GEOMETRY_INCONSISTENT_TURNS_EXCEPTION";T[3123]="ER_WARN_OPTIMIZER_HINT_SYNTAX_ERROR";T[3124]="ER_WARN_BAD_MAX_EXECUTION_TIME";T[3125]="ER_WARN_UNSUPPORTED_MAX_EXECUTION_TIME";T[3126]="ER_WARN_CONFLICTING_HINT";T[3127]="ER_WARN_UNKNOWN_QB_NAME";T[3128]="ER_UNRESOLVED_HINT_NAME";T[3129]="ER_WARN_ON_MODIFYING_GTID_EXECUTED_TABLE";T[3130]="ER_PLUGGABLE_PROTOCOL_COMMAND_NOT_SUPPORTED";T[3131]="ER_LOCKING_SERVICE_WRONG_NAME";T[3132]="ER_LOCKING_SERVICE_DEADLOCK";T[3133]="ER_LOCKING_SERVICE_TIMEOUT";T[3134]="ER_GIS_MAX_POINTS_IN_GEOMETRY_OVERFLOWED";T[3135]="ER_SQL_MODE_MERGED";T[3136]="ER_VTOKEN_PLUGIN_TOKEN_MISMATCH";T[3137]="ER_VTOKEN_PLUGIN_TOKEN_NOT_FOUND";T[3138]="ER_CANT_SET_VARIABLE_WHEN_OWNING_GTID";T[3139]="ER_SLAVE_CHANNEL_OPERATION_NOT_ALLOWED";T[3140]="ER_INVALID_JSON_TEXT";T[3141]="ER_INVALID_JSON_TEXT_IN_PARAM";T[3142]="ER_INVALID_JSON_BINARY_DATA";T[3143]="ER_INVALID_JSON_PATH";T[3144]="ER_INVALID_JSON_CHARSET";T[3145]="ER_INVALID_JSON_CHARSET_IN_FUNCTION";T[3146]="ER_INVALID_TYPE_FOR_JSON";T[3147]="ER_INVALID_CAST_TO_JSON";T[3148]="ER_INVALID_JSON_PATH_CHARSET";T[3149]="ER_INVALID_JSON_PATH_WILDCARD";T[3150]="ER_JSON_VALUE_TOO_BIG";T[3151]="ER_JSON_KEY_TOO_BIG";T[3152]="ER_JSON_USED_AS_KEY";T[3153]="ER_JSON_VACUOUS_PATH";T[3154]="ER_JSON_BAD_ONE_OR_ALL_ARG";T[3155]="ER_NUMERIC_JSON_VALUE_OUT_OF_RANGE";T[3156]="ER_INVALID_JSON_VALUE_FOR_CAST";T[3157]="ER_JSON_DOCUMENT_TOO_DEEP";T[3158]="ER_JSON_DOCUMENT_NULL_KEY";T[3159]="ER_SECURE_TRANSPORT_REQUIRED";T[3160]="ER_NO_SECURE_TRANSPORTS_CONFIGURED";T[3161]="ER_DISABLED_STORAGE_ENGINE";T[3162]="ER_USER_DOES_NOT_EXIST";T[3163]="ER_USER_ALREADY_EXISTS";T[3164]="ER_AUDIT_API_ABORT";T[3165]="ER_INVALID_JSON_PATH_ARRAY_CELL";T[3166]="ER_BUFPOOL_RESIZE_INPROGRESS";T[3167]="ER_FEATURE_DISABLED_SEE_DOC";T[3168]="ER_SERVER_ISNT_AVAILABLE";T[3169]="ER_SESSION_WAS_KILLED";T[3170]="ER_CAPACITY_EXCEEDED";T[3171]="ER_CAPACITY_EXCEEDED_IN_RANGE_OPTIMIZER";T[3172]="ER_TABLE_NEEDS_UPG_PART";T[3173]="ER_CANT_WAIT_FOR_EXECUTED_GTID_SET_WHILE_OWNING_A_GTID";T[3174]="ER_CANNOT_ADD_FOREIGN_BASE_COL_VIRTUAL";T[3175]="ER_CANNOT_CREATE_VIRTUAL_INDEX_CONSTRAINT";T[3176]="ER_ERROR_ON_MODIFYING_GTID_EXECUTED_TABLE";T[3177]="ER_LOCK_REFUSED_BY_ENGINE";T[3178]="ER_UNSUPPORTED_ALTER_ONLINE_ON_VIRTUAL_COLUMN";T[3179]="ER_MASTER_KEY_ROTATION_NOT_SUPPORTED_BY_SE";T[3180]="ER_MASTER_KEY_ROTATION_ERROR_BY_SE";T[3181]="ER_MASTER_KEY_ROTATION_BINLOG_FAILED";T[3182]="ER_MASTER_KEY_ROTATION_SE_UNAVAILABLE";T[3183]="ER_TABLESPACE_CANNOT_ENCRYPT";T[3184]="ER_INVALID_ENCRYPTION_OPTION";T[3185]="ER_CANNOT_FIND_KEY_IN_KEYRING";T[3186]="ER_CAPACITY_EXCEEDED_IN_PARSER";T[3187]="ER_UNSUPPORTED_ALTER_ENCRYPTION_INPLACE";T[3188]="ER_KEYRING_UDF_KEYRING_SERVICE_ERROR";T[3189]="ER_USER_COLUMN_OLD_LENGTH";T[3190]="ER_CANT_RESET_MASTER";T[3191]="ER_GROUP_REPLICATION_MAX_GROUP_SIZE";T[3192]="ER_CANNOT_ADD_FOREIGN_BASE_COL_STORED";T[3193]="ER_TABLE_REFERENCED";T[3194]="ER_PARTITION_ENGINE_DEPRECATED_FOR_TABLE";T[3195]="ER_WARN_USING_GEOMFROMWKB_TO_SET_SRID_ZERO";T[3196]="ER_WARN_USING_GEOMFROMWKB_TO_SET_SRID";T[3197]="ER_XA_RETRY";T[3198]="ER_KEYRING_AWS_UDF_AWS_KMS_ERROR";T[3199]="ER_BINLOG_UNSAFE_XA";T[3200]="ER_UDF_ERROR";T[3201]="ER_KEYRING_MIGRATION_FAILURE";T[3202]="ER_KEYRING_ACCESS_DENIED_ERROR";T[3203]="ER_KEYRING_MIGRATION_STATUS";T[3204]="ER_PLUGIN_FAILED_TO_OPEN_TABLES";T[3205]="ER_PLUGIN_FAILED_TO_OPEN_TABLE";T[3206]="ER_AUDIT_LOG_NO_KEYRING_PLUGIN_INSTALLED";T[3207]="ER_AUDIT_LOG_ENCRYPTION_PASSWORD_HAS_NOT_BEEN_SET";T[3208]="ER_AUDIT_LOG_COULD_NOT_CREATE_AES_KEY";T[3209]="ER_AUDIT_LOG_ENCRYPTION_PASSWORD_CANNOT_BE_FETCHED";T[3210]="ER_AUDIT_LOG_JSON_FILTERING_NOT_ENABLED";T[3211]="ER_AUDIT_LOG_UDF_INSUFFICIENT_PRIVILEGE";T[3212]="ER_AUDIT_LOG_SUPER_PRIVILEGE_REQUIRED";T[3213]="ER_COULD_NOT_REINITIALIZE_AUDIT_LOG_FILTERS";T[3214]="ER_AUDIT_LOG_UDF_INVALID_ARGUMENT_TYPE";T[3215]="ER_AUDIT_LOG_UDF_INVALID_ARGUMENT_COUNT";T[3216]="ER_AUDIT_LOG_HAS_NOT_BEEN_INSTALLED";T[3217]="ER_AUDIT_LOG_UDF_READ_INVALID_MAX_ARRAY_LENGTH_ARG_TYPE";T[3218]="ER_AUDIT_LOG_UDF_READ_INVALID_MAX_ARRAY_LENGTH_ARG_VALUE";T[3219]="ER_AUDIT_LOG_JSON_FILTER_PARSING_ERROR";T[3220]="ER_AUDIT_LOG_JSON_FILTER_NAME_CANNOT_BE_EMPTY";T[3221]="ER_AUDIT_LOG_JSON_USER_NAME_CANNOT_BE_EMPTY";T[3222]="ER_AUDIT_LOG_JSON_FILTER_DOES_NOT_EXISTS";T[3223]="ER_AUDIT_LOG_USER_FIRST_CHARACTER_MUST_BE_ALPHANUMERIC";T[3224]="ER_AUDIT_LOG_USER_NAME_INVALID_CHARACTER";T[3225]="ER_AUDIT_LOG_HOST_NAME_INVALID_CHARACTER";T[3226]="WARN_DEPRECATED_MAXDB_SQL_MODE_FOR_TIMESTAMP";T[3227]="ER_XA_REPLICATION_FILTERS";T[3228]="ER_CANT_OPEN_ERROR_LOG";T[3229]="ER_GROUPING_ON_TIMESTAMP_IN_DST";T[3230]="ER_CANT_START_SERVER_NAMED_PIPE"});var A8=j((Jh,O8)=>{var k0=require("timers");O8.exports=PO;function PO(_){this._object=_,this._timeout=null}PO.prototype.active=function _(){if(this._timeout)if(this._timeout.refresh)this._timeout.refresh();else k0.active(this._timeout)};PO.prototype.start=function _(E){this.stop(),this._timeout=k0.setTimeout(this._onTimeout.bind(this),E)};PO.prototype.stop=function _(){if(this._timeout)k0.clearTimeout(this._timeout),this._timeout=null};PO.prototype._onTimeout=function _(){return this._object._onTimeout()}});var D1=j(($h,L8)=>{var e$=require("util"),g0=require("events").EventEmitter,m0=gN(),_Z=T8(),EZ=A8(),RZ=g0.listenerCount||function(_,E){return _.listeners(E).length},I8="\n --------------------\n";L8.exports=RN;e$.inherits(RN,g0);function RN(_,E){if(typeof _==="function")E=_,_={};g0.call(this),_=_||{},this._callback=E,this._callSite=null,this._ended=!1,this._timeout=_.timeout,this._timer=new EZ(this)}RN.determinePacket=function(_){switch(_){case 0:return m0.OkPacket;case 254:return m0.EofPacket;case 255:return m0.ErrorPacket;default:return}};RN.prototype.hasErrorHandler=function(){return Boolean(this._callback)||RZ(this,"error")>1};RN.prototype._packetToError=function(_){var E=_Z[_.errno]||"UNKNOWN_CODE_PLEASE_REPORT",R=new Error(E+": "+_.message);return R.code=E,R.errno=_.errno,R.sqlMessage=_.message,R.sqlState=_.sqlState,R};RN.prototype.end=function(_){if(this._ended)return;if(this._ended=!0,_)this._addLongStackTrace(_);this._callSite=null;try{if(_)this.emit("error",_)}finally{try{if(this._callback)this._callback.apply(this,arguments)}finally{this.emit("end")}}};RN.prototype.OkPacket=function(_){this.end(null,_)};RN.prototype.ErrorPacket=function(_){this.end(this._packetToError(_))};RN.prototype.start=function(){};RN.prototype._addLongStackTrace=function _(E){var R=this._callSite&&this._callSite.stack;if(!R||typeof R!=="string")return;if(E.stack.indexOf(I8)!==-1)return;var N=R.indexOf("\n");if(N!==-1)E.stack+=I8+R.substr(N+1)};RN.prototype._onTimeout=function _(){this.emit("timeout")}});var y0=j((G8)=>{var yN=PN().Buffer,NZ=require("crypto"),eE=G8;function TZ(_,E,R){switch(R=R||{},_){case"mysql_native_password":return eE.token(R.password,E.slice(0,20));default:return}}eE.auth=TZ;function FI(_){var E=NZ.createHash("sha1");return E.update(_,"binary"),E.digest("binary")}eE.sha1=FI;function U8(_,E){_=yN.from(_,"binary"),E=yN.from(E,"binary");var R=yN.allocUnsafe(_.length);for(var N=0;N<_.length;N++)R[N]=_[N]^E[N];return R}eE.xor=U8;eE.token=function(_,E){if(!_)return yN.alloc(0);var R=FI(yN.from(_,"utf8").toString("binary")),N=FI(R),A=FI(E.toString("binary")+N);return U8(A,R)};eE.hashPassword=function(_){var E=[20528,22325],R=7,N=[4660,22129],A=yN.alloc(8);if(typeof _==="string")_=yN.from(_);for(var L=0;L<_.length;L++){var U=_[L];if(U===32||U===9)continue;E=this.xor32(E,this.add32(this.mul32(this.add32(this.and32(E,[0,63]),[0,R]),[0,U]),this.shl32(E,8))),N=this.add32(N,this.xor32(this.shl32(N,8),E)),R+=U}return this.int31Write(A,E,0),this.int31Write(A,N,4),A};eE.randomInit=function(_,E){return{max_value:1073741823,max_value_dbl:1073741823,seed1:_%1073741823,seed2:E%1073741823}};eE.myRnd=function(_){return _.seed1=(_.seed1*3+_.seed2)%_.max_value,_.seed2=(_.seed1+_.seed2+33)%_.max_value,_.seed1/_.max_value_dbl};eE.scramble323=function(_,E){if(!E)return yN.alloc(0);var R=yN.allocUnsafe(8),N=this.hashPassword(E),A=this.hashPassword(_.slice(0,8)),L=this.int32Read(N,0)^this.int32Read(A,0),U=this.int32Read(N,4)^this.int32Read(A,4),G=this.randomInit(L,U);for(var S=0;S<8;S++)R[S]=Math.floor(this.myRnd(G)*31)+64;var C=Math.floor(this.myRnd(G)*31);for(var S=0;S<8;S++)R[S]^=C;return R};eE.xor32=function(_,E){return[_[0]^E[0],_[1]^E[1]]};eE.add32=function(_,E){var R=_[1]+E[1],N=_[0]+E[0]+((R&4294901760)>>16);return[N&65535,R&65535]};eE.mul32=function(_,E){var R=_[1]*E[1],N=(_[1]*E[1]>>16&65535)+(_[0]*E[1]&65535)+(_[1]*E[0]&65535);return[N&65535,R&65535]};eE.and32=function(_,E){return[_[0]&E[0],_[1]&E[1]]};eE.shl32=function(_,E){var R=_[1]<>16;return[N&65535,R&65535]};eE.int31Write=function(_,E,R){_[R]=E[0]>>8&127,_[R+1]=E[0]&255,_[R+2]=E[1]>>8&255,_[R+3]=E[1]&255};eE.int32Read=function(_,E){return(_[E]<<24)+(_[E+1]<<16)+(_[E+2]<<8)+_[E+3]}});var P8=j((wh,C8)=>{var D8=D1(),OZ=require("util"),BI=gN(),S8=y0();C8.exports=BT;OZ.inherits(BT,D8);function BT(_,E){D8.call(this,_,E),this._user=_.user,this._password=_.password,this._database=_.database,this._charsetNumber=_.charsetNumber,this._currentConfig=_.currentConfig}BT.prototype.determinePacket=function _(E){switch(E){case 254:return BI.AuthSwitchRequestPacket;case 255:return BI.ErrorPacket;default:return}};BT.prototype.start=function(_){var E=_.scrambleBuff();E=S8.token(this._password,E);var R=new BI.ComChangeUserPacket({user:this._user,scrambleBuff:E,database:this._database,charsetNumber:this._charsetNumber});this._currentConfig.user=this._user,this._currentConfig.password=this._password,this._currentConfig.database=this._database,this._currentConfig.charsetNumber=this._charsetNumber,this.emit("packet",R)};BT.prototype.AuthSwitchRequestPacket=function(_){var E=_.authMethodName,R=S8.auth(E,_.authMethodData,{password:this._password});if(R!==void 0)this.emit("packet",new BI.AuthSwitchResponsePacket({data:R}));else{var N=new Error("MySQL is requesting the "+E+" authentication method, which is not supported.");N.code="UNSUPPORTED_AUTH_METHOD",N.fatal=!0,this.end(N)}};BT.prototype.ErrorPacket=function(_){var E=this._packetToError(_);E.fatal=!0,this.end(E)}});var M8=j((Qh,W8)=>{var H8=D1(),AZ=require("util"),S1=gN(),VI=y0(),Y8=MT();W8.exports=bN;AZ.inherits(bN,H8);function bN(_,E){H8.call(this,_,E),_=_||{},this._config=_.config,this._handshakeInitializationPacket=null}bN.prototype.determinePacket=function _(E,R){if(E===255)return S1.ErrorPacket;if(!this._handshakeInitializationPacket)return S1.HandshakeInitializationPacket;if(E===254)return R.packetLength()===1?S1.UseOldPasswordPacket:S1.AuthSwitchRequestPacket;return};bN.prototype.AuthSwitchRequestPacket=function(_){var E=_.authMethodName,R=VI.auth(E,_.authMethodData,{password:this._config.password});if(R!==void 0)this.emit("packet",new S1.AuthSwitchResponsePacket({data:R}));else{var N=new Error("MySQL is requesting the "+E+" authentication method, which is not supported.");N.code="UNSUPPORTED_AUTH_METHOD",N.fatal=!0,this.end(N)}};bN.prototype.HandshakeInitializationPacket=function(_){this._handshakeInitializationPacket=_,this._config.protocol41=_.protocol41;var E=_.serverCapabilities1&Y8.CLIENT_SSL;if(this._config.ssl){if(!E){var R=new Error("Server does not support secure connection");R.code="HANDSHAKE_NO_SSL_SUPPORT",R.fatal=!0,this.end(R);return}this._config.clientFlags|=Y8.CLIENT_SSL,this.emit("packet",new S1.SSLRequestPacket({clientFlags:this._config.clientFlags,maxPacketSize:this._config.maxPacketSize,charsetNumber:this._config.charsetNumber})),this.emit("start-tls")}else this._sendCredentials()};bN.prototype._tlsUpgradeCompleteHandler=function(){this._sendCredentials()};bN.prototype._sendCredentials=function(){var _=this._handshakeInitializationPacket;this.emit("packet",new S1.ClientAuthenticationPacket({clientFlags:this._config.clientFlags,maxPacketSize:this._config.maxPacketSize,charsetNumber:this._config.charsetNumber,user:this._config.user,database:this._config.database,protocol41:_.protocol41,scrambleBuff:_.protocol41?VI.token(this._config.password,_.scrambleBuff()):VI.scramble323(_.scrambleBuff(),this._config.password)}))};bN.prototype.UseOldPasswordPacket=function(){if(!this._config.insecureAuth){var _=new Error("MySQL server is requesting the old and insecure pre-4.1 auth mechanism. Upgrade the user password or use the {insecureAuth: true} option.");_.code="HANDSHAKE_INSECURE_AUTH",_.fatal=!0,this.end(_);return}this.emit("packet",new S1.OldPasswordPacket({scrambleBuff:VI.scramble323(this._handshakeInitializationPacket.scrambleBuff(),this._config.password)}))};bN.prototype.ErrorPacket=function(_){var E=this._packetToError(_,!0);E.fatal=!0,this.end(E)}});var V8=j((zh,B8)=>{var F8=D1(),IZ=require("util"),LZ=gN();B8.exports=b0;IZ.inherits(b0,F8);function b0(_,E){if(!E&&typeof _==="function")E=_,_={};F8.call(this,_,E)}b0.prototype.start=function(){this.emit("packet",new LZ.ComPingPacket)}});var X8=j((xh,K8)=>{K8.exports=UZ;function UZ(_){this.resultSetHeaderPacket=_,this.fieldPackets=[],this.eofPackets=[],this.rows=[]}});var J8=j((fR)=>{fR.SERVER_STATUS_IN_TRANS=1;fR.SERVER_STATUS_AUTOCOMMIT=2;fR.SERVER_MORE_RESULTS_EXISTS=8;fR.SERVER_QUERY_NO_GOOD_INDEX_USED=16;fR.SERVER_QUERY_NO_INDEX_USED=32;fR.SERVER_STATUS_CURSOR_EXISTS=64;fR.SERVER_STATUS_LAST_ROW_SENT=128;fR.SERVER_STATUS_DB_DROPPED=256;fR.SERVER_STATUS_NO_BACKSLASH_ESCAPES=512;fR.SERVER_STATUS_METADATA_CHANGED=1024;fR.SERVER_QUERY_WAS_SLOW=2048;fR.SERVER_PS_OUT_PARAMS=4096});var YO=j((fh,i0)=>{if(typeof process==="undefined"||!process.version||process.version.indexOf("v0.")===0||process.version.indexOf("v1.")===0&&process.version.indexOf("v1.8.")!==0)i0.exports={nextTick:GZ};else i0.exports=process;function GZ(_,E,R,N){if(typeof _!=="function")throw new TypeError('"callback" argument must be a function');var A=arguments.length,L,U;switch(A){case 0:case 1:return process.nextTick(_);case 2:return process.nextTick(function G(){_.call(null,E)});case 3:return process.nextTick(function G(){_.call(null,E,R)});case 4:return process.nextTick(function G(){_.call(null,E,R,N)});default:L=new Array(A-1),U=0;while(U{var DZ={}.toString;$8.exports=Array.isArray||function(_){return DZ.call(_)=="[object Array]"}});var u0=j((vh,w8)=>{w8.exports=require("stream")});var VT=j((_R)=>{function SZ(_){if(Array.isArray)return Array.isArray(_);return KI(_)==="[object Array]"}_R.isArray=SZ;function CZ(_){return typeof _==="boolean"}_R.isBoolean=CZ;function PZ(_){return _===null}_R.isNull=PZ;function YZ(_){return _==null}_R.isNullOrUndefined=YZ;function HZ(_){return typeof _==="number"}_R.isNumber=HZ;function WZ(_){return typeof _==="string"}_R.isString=WZ;function MZ(_){return typeof _==="symbol"}_R.isSymbol=MZ;function FZ(_){return _===void 0}_R.isUndefined=FZ;function BZ(_){return KI(_)==="[object RegExp]"}_R.isRegExp=BZ;function VZ(_){return typeof _==="object"&&_!==null}_R.isObject=VZ;function KZ(_){return KI(_)==="[object Date]"}_R.isDate=KZ;function XZ(_){return KI(_)==="[object Error]"||_ instanceof Error}_R.isError=XZ;function JZ(_){return typeof _==="function"}_R.isFunction=JZ;function $Z(_){return _===null||typeof _==="boolean"||typeof _==="number"||typeof _==="string"||typeof _==="symbol"||typeof _==="undefined"}_R.isPrimitive=$Z;_R.isBuffer=require("buffer").Buffer.isBuffer;function KI(_){return Object.prototype.toString.call(_)}});var Q8=j((hh,c0)=>{if(typeof Object.create==="function")c0.exports=function _(E,R){if(R)E.super_=R,E.prototype=Object.create(R.prototype,{constructor:{value:E,enumerable:!1,writable:!0,configurable:!0}})};else c0.exports=function _(E,R){if(R){E.super_=R;var N=function(){};N.prototype=R.prototype,E.prototype=new N,E.prototype.constructor=E}}});var KT=j((kh,l0)=>{try{if(d0=require("util"),typeof d0.inherits!=="function")throw"";l0.exports=d0.inherits}catch(_){l0.exports=Q8()}var d0});var x8=j((mh,n0)=>{function ZZ(_,E){if(!(_ instanceof E))throw new TypeError("Cannot call a class as a function")}var z8=PN().Buffer,HO=require("util");function wZ(_,E,R){_.copy(E,R)}n0.exports=function(){function _(){ZZ(this,_),this.head=null,this.tail=null,this.length=0}return _.prototype.push=function E(R){var N={data:R,next:null};if(this.length>0)this.tail.next=N;else this.head=N;this.tail=N,++this.length},_.prototype.unshift=function E(R){var N={data:R,next:this.head};if(this.length===0)this.tail=N;this.head=N,++this.length},_.prototype.shift=function E(){if(this.length===0)return;var R=this.head.data;if(this.length===1)this.head=this.tail=null;else this.head=this.head.next;return--this.length,R},_.prototype.clear=function E(){this.head=this.tail=null,this.length=0},_.prototype.join=function E(R){if(this.length===0)return"";var N=this.head,A=""+N.data;while(N=N.next)A+=R+N.data;return A},_.prototype.concat=function E(R){if(this.length===0)return z8.alloc(0);if(this.length===1)return this.head.data;var N=z8.allocUnsafe(R>>>0),A=this.head,L=0;while(A)wZ(A.data,N,L),L+=A.data.length,A=A.next;return N},_}();if(HO&&HO.inspect&&HO.inspect.custom)n0.exports.prototype[HO.inspect.custom]=function(){var _=HO.inspect({length:this.length});return this.constructor.name+" "+_}});var o0=j((gh,j8)=>{var q8=YO();function QZ(_,E){var R=this,N=this._readableState&&this._readableState.destroyed,A=this._writableState&&this._writableState.destroyed;if(N||A){if(E)E(_);else if(_&&(!this._writableState||!this._writableState.errorEmitted))q8.nextTick(f8,this,_);return this}if(this._readableState)this._readableState.destroyed=!0;if(this._writableState)this._writableState.destroyed=!0;return this._destroy(_||null,function(L){if(!E&&L){if(q8.nextTick(f8,R,L),R._writableState)R._writableState.errorEmitted=!0}else if(E)E(L)}),this}function zZ(){if(this._readableState)this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1;if(this._writableState)this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1}function f8(_,E){_.emit("error",E)}j8.exports={destroy:QZ,undestroy:zZ}});var p8=j((yh,v8)=>{v8.exports=require("util").deprecate});var t0=j((bh,u8)=>{var h1=YO();u8.exports=zE;function k8(_){var E=this;this.next=null,this.entry=null,this.finish=function(){nZ(E,_)}}var xZ=["v0.10","v0.9."].indexOf(process.version.slice(0,5))>-1?setImmediate:h1.nextTick,XT;zE.WritableState=MO;var m8=Object.create(VT());m8.inherits=KT();var qZ={deprecate:p8()},g8=u0(),JI=PN().Buffer,fZ=global.Uint8Array||function(){};function jZ(_){return JI.from(_)}function vZ(_){return JI.isBuffer(_)||_ instanceof fZ}var y8=o0();m8.inherits(zE,g8);function pZ(){}function MO(_,E){XT=XT||k1(),_=_||{};var R=E instanceof XT;if(this.objectMode=!!_.objectMode,R)this.objectMode=this.objectMode||!!_.writableObjectMode;var{highWaterMark:N,writableHighWaterMark:A}=_,L=this.objectMode?16:16384;if(N||N===0)this.highWaterMark=N;else if(R&&(A||A===0))this.highWaterMark=A;else this.highWaterMark=L;this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var U=_.decodeStrings===!1;this.decodeStrings=!U,this.defaultEncoding=_.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(G){iZ(E,G)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new k8(this)}MO.prototype.getBuffer=function _(){var E=this.bufferedRequest,R=[];while(E)R.push(E),E=E.next;return R};(function(){try{Object.defineProperty(MO.prototype,"buffer",{get:qZ.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(_){}})();var XI;if(typeof Symbol==="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]==="function")XI=Function.prototype[Symbol.hasInstance],Object.defineProperty(zE,Symbol.hasInstance,{value:function(_){if(XI.call(this,_))return!0;if(this!==zE)return!1;return _&&_._writableState instanceof MO}});else XI=function(_){return _ instanceof this};function zE(_){if(XT=XT||k1(),!XI.call(zE,this)&&!(this instanceof XT))return new zE(_);if(this._writableState=new MO(_,this),this.writable=!0,_){if(typeof _.write==="function")this._write=_.write;if(typeof _.writev==="function")this._writev=_.writev;if(typeof _.destroy==="function")this._destroy=_.destroy;if(typeof _.final==="function")this._final=_.final}g8.call(this)}zE.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))};function hZ(_,E){var R=new Error("write after end");_.emit("error",R),h1.nextTick(E,R)}function kZ(_,E,R,N){var A=!0,L=!1;if(R===null)L=new TypeError("May not write null values to stream");else if(typeof R!=="string"&&R!==void 0&&!E.objectMode)L=new TypeError("Invalid non-string/buffer chunk");if(L)_.emit("error",L),h1.nextTick(N,L),A=!1;return A}zE.prototype.write=function(_,E,R){var N=this._writableState,A=!1,L=!N.objectMode&&vZ(_);if(L&&!JI.isBuffer(_))_=jZ(_);if(typeof E==="function")R=E,E=null;if(L)E="buffer";else if(!E)E=N.defaultEncoding;if(typeof R!=="function")R=pZ;if(N.ended)hZ(this,R);else if(L||kZ(this,N,_,R))N.pendingcb++,A=gZ(this,N,L,_,E,R);return A};zE.prototype.cork=function(){var _=this._writableState;_.corked++};zE.prototype.uncork=function(){var _=this._writableState;if(_.corked){if(_.corked--,!_.writing&&!_.corked&&!_.finished&&!_.bufferProcessing&&_.bufferedRequest)b8(this,_)}};zE.prototype.setDefaultEncoding=function _(E){if(typeof E==="string")E=E.toLowerCase();if(!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((E+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+E);return this._writableState.defaultEncoding=E,this};function mZ(_,E,R){if(!_.objectMode&&_.decodeStrings!==!1&&typeof E==="string")E=JI.from(E,R);return E}Object.defineProperty(zE.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function gZ(_,E,R,N,A,L){if(!R){var U=mZ(E,N,A);if(N!==U)R=!0,A="buffer",N=U}var G=E.objectMode?1:N.length;E.length+=G;var S=E.length{var c8=YO(),oZ=Object.keys||function(_){var E=[];for(var R in _)E.push(R);return E};n8.exports=iN;var d8=Object.create(VT());d8.inherits=KT();var l8=e0(),a0=t0();d8.inherits(iN,l8);{r0=oZ(a0.prototype);for($I=0;$I{var E3=PN().Buffer,o8=E3.isEncoding||function(_){switch(_=""+_,_&&_.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function rZ(_){if(!_)return"utf8";var E;while(!0)switch(_){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return _;default:if(E)return;_=(""+_).toLowerCase(),E=!0}}function aZ(_){var E=rZ(_);if(typeof E!=="string"&&(E3.isEncoding===o8||!o8(_)))throw new Error("Unknown encoding: "+_);return E||_}s8.StringDecoder=FO;function FO(_){this.encoding=aZ(_);var E;switch(this.encoding){case"utf16le":this.text=Tw,this.end=Ow,E=4;break;case"utf8":this.fillLast=Ew,E=4;break;case"base64":this.text=Aw,this.end=Iw,E=3;break;default:this.write=Lw,this.end=Uw;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=E3.allocUnsafe(E)}FO.prototype.write=function(_){if(_.length===0)return"";var E,R;if(this.lastNeed){if(E=this.fillLast(_),E===void 0)return"";R=this.lastNeed,this.lastNeed=0}else R=0;if(R<_.length)return E?E+this.text(_,R):this.text(_,R);return E||""};FO.prototype.end=Nw;FO.prototype.text=Rw;FO.prototype.fillLast=function(_){if(this.lastNeed<=_.length)return _.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);_.copy(this.lastChar,this.lastTotal-this.lastNeed,0,_.length),this.lastNeed-=_.length};function _3(_){if(_<=127)return 0;else if(_>>5===6)return 2;else if(_>>4===14)return 3;else if(_>>3===30)return 4;return _>>6===2?-1:-2}function eZ(_,E,R){var N=E.length-1;if(N=0){if(A>0)_.lastNeed=A-1;return A}if(--N=0){if(A>0)_.lastNeed=A-2;return A}if(--N=0){if(A>0)if(A===2)A=0;else _.lastNeed=A-3;return A}return 0}function _w(_,E,R){if((E[0]&192)!==128)return _.lastNeed=0,"\uFFFD";if(_.lastNeed>1&&E.length>1){if((E[1]&192)!==128)return _.lastNeed=1,"\uFFFD";if(_.lastNeed>2&&E.length>2){if((E[2]&192)!==128)return _.lastNeed=2,"\uFFFD"}}}function Ew(_){var E=this.lastTotal-this.lastNeed,R=_w(this,_,E);if(R!==void 0)return R;if(this.lastNeed<=_.length)return _.copy(this.lastChar,E,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);_.copy(this.lastChar,E,0,_.length),this.lastNeed-=_.length}function Rw(_,E){var R=eZ(this,_,E);if(!this.lastNeed)return _.toString("utf8",E);this.lastTotal=R;var N=_.length-(R-this.lastNeed);return _.copy(this.lastChar,0,N),_.toString("utf8",E,N)}function Nw(_){var E=_&&_.length?this.write(_):"";if(this.lastNeed)return E+"\uFFFD";return E}function Tw(_,E){if((_.length-E)%2===0){var R=_.toString("utf16le",E);if(R){var N=R.charCodeAt(R.length-1);if(N>=55296&&N<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=_[_.length-2],this.lastChar[1]=_[_.length-1],R.slice(0,-1)}return R}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=_[_.length-1],_.toString("utf16le",E,_.length-1)}function Ow(_){var E=_&&_.length?this.write(_):"";if(this.lastNeed){var R=this.lastTotal-this.lastNeed;return E+this.lastChar.toString("utf16le",0,R)}return E}function Aw(_,E){var R=(_.length-E)%3;if(R===0)return _.toString("base64",E);if(this.lastNeed=3-R,this.lastTotal=3,R===1)this.lastChar[0]=_[_.length-1];else this.lastChar[0]=_[_.length-2],this.lastChar[1]=_[_.length-1];return _.toString("base64",E,_.length-R)}function Iw(_){var E=_&&_.length?this.write(_):"";if(this.lastNeed)return E+this.lastChar.toString("base64",0,3-this.lastNeed);return E}function Lw(_){return _.toString(this.encoding)}function Uw(_){return _&&_.length?this.write(_):""}});var e0=j((dh,I7)=>{var $T=YO();I7.exports=CE;var Gw=Z8(),BO;CE.ReadableState=R7;var ch=require("events").EventEmitter,e8=function(_,E){return _.listeners(E).length},I3=u0(),VO=PN().Buffer,Dw=global.Uint8Array||function(){};function Sw(_){return VO.from(_)}function Cw(_){return VO.isBuffer(_)||_ instanceof Dw}var _7=Object.create(VT());_7.inherits=KT();var N3=require("util"),r_=void 0;if(N3&&N3.debuglog)r_=N3.debuglog("stream");else r_=function(){};var Pw=x8(),E7=o0(),JT;_7.inherits(CE,I3);var T3=["error","close","destroy","pause","resume"];function Yw(_,E,R){if(typeof _.prependListener==="function")return _.prependListener(E,R);if(!_._events||!_._events[E])_.on(E,R);else if(Gw(_._events[E]))_._events[E].unshift(R);else _._events[E]=[R,_._events[E]]}function R7(_,E){BO=BO||k1(),_=_||{};var R=E instanceof BO;if(this.objectMode=!!_.objectMode,R)this.objectMode=this.objectMode||!!_.readableObjectMode;var{highWaterMark:N,readableHighWaterMark:A}=_,L=this.objectMode?16:16384;if(N||N===0)this.highWaterMark=N;else if(R&&(A||A===0))this.highWaterMark=A;else this.highWaterMark=L;if(this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new Pw,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=_.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,_.encoding){if(!JT)JT=R3().StringDecoder;this.decoder=new JT(_.encoding),this.encoding=_.encoding}}function CE(_){if(BO=BO||k1(),!(this instanceof CE))return new CE(_);if(this._readableState=new R7(_,this),this.readable=!0,_){if(typeof _.read==="function")this._read=_.read;if(typeof _.destroy==="function")this._destroy=_.destroy}I3.call(this)}Object.defineProperty(CE.prototype,"destroyed",{get:function(){if(this._readableState===void 0)return!1;return this._readableState.destroyed},set:function(_){if(!this._readableState)return;this._readableState.destroyed=_}});CE.prototype.destroy=E7.destroy;CE.prototype._undestroy=E7.undestroy;CE.prototype._destroy=function(_,E){this.push(null),E(_)};CE.prototype.push=function(_,E){var R=this._readableState,N;if(!R.objectMode){if(typeof _==="string"){if(E=E||R.defaultEncoding,E!==R.encoding)_=VO.from(_,E),E="";N=!0}}else N=!0;return N7(this,_,E,!1,N)};CE.prototype.unshift=function(_){return N7(this,_,null,!0,!1)};function N7(_,E,R,N,A){var L=_._readableState;if(E===null)L.reading=!1,Fw(_,L);else{var U;if(!A)U=Hw(L,E);if(U)_.emit("error",U);else if(L.objectMode||E&&E.length>0){if(typeof E!=="string"&&!L.objectMode&&Object.getPrototypeOf(E)!==VO.prototype)E=Sw(E);if(N)if(L.endEmitted)_.emit("error",new Error("stream.unshift() after end event"));else O3(_,L,E,!0);else if(L.ended)_.emit("error",new Error("stream.push() after EOF"));else if(L.reading=!1,L.decoder&&!R)if(E=L.decoder.write(E),L.objectMode||E.length!==0)O3(_,L,E,!1);else T7(_,L);else O3(_,L,E,!1)}else if(!N)L.reading=!1}return Ww(L)}function O3(_,E,R,N){if(E.flowing&&E.length===0&&!E.sync)_.emit("data",R),_.read(0);else{if(E.length+=E.objectMode?1:R.length,N)E.buffer.unshift(R);else E.buffer.push(R);if(E.needReadable)wI(_)}T7(_,E)}function Hw(_,E){var R;if(!Cw(E)&&typeof E!=="string"&&E!==void 0&&!_.objectMode)R=new TypeError("Invalid non-string/buffer chunk");return R}function Ww(_){return!_.ended&&(_.needReadable||_.length<_.highWaterMark||_.length===0)}CE.prototype.isPaused=function(){return this._readableState.flowing===!1};CE.prototype.setEncoding=function(_){if(!JT)JT=R3().StringDecoder;return this._readableState.decoder=new JT(_),this._readableState.encoding=_,this};var t8=8388608;function Mw(_){if(_>=t8)_=t8;else _--,_|=_>>>1,_|=_>>>2,_|=_>>>4,_|=_>>>8,_|=_>>>16,_++;return _}function r8(_,E){if(_<=0||E.length===0&&E.ended)return 0;if(E.objectMode)return 1;if(_!==_)if(E.flowing&&E.length)return E.buffer.head.data.length;else return E.length;if(_>E.highWaterMark)E.highWaterMark=Mw(_);if(_<=E.length)return _;if(!E.ended)return E.needReadable=!0,0;return E.length}CE.prototype.read=function(_){r_("read",_),_=parseInt(_,10);var E=this._readableState,R=_;if(_!==0)E.emittedReadable=!1;if(_===0&&E.needReadable&&(E.length>=E.highWaterMark||E.ended)){if(r_("read: emitReadable",E.length,E.ended),E.length===0&&E.ended)A3(this);else wI(this);return null}if(_=r8(_,E),_===0&&E.ended){if(E.length===0)A3(this);return null}var N=E.needReadable;if(r_("need readable",N),E.length===0||E.length-_0)A=O7(_,E);else A=null;if(A===null)E.needReadable=!0,_=0;else E.length-=_;if(E.length===0){if(!E.ended)E.needReadable=!0;if(R!==_&&E.ended)A3(this)}if(A!==null)this.emit("data",A);return A};function Fw(_,E){if(E.ended)return;if(E.decoder){var R=E.decoder.end();if(R&&R.length)E.buffer.push(R),E.length+=E.objectMode?1:R.length}E.ended=!0,wI(_)}function wI(_){var E=_._readableState;if(E.needReadable=!1,!E.emittedReadable)if(r_("emitReadable",E.flowing),E.emittedReadable=!0,E.sync)$T.nextTick(a8,_);else a8(_)}function a8(_){r_("emit readable"),_.emit("readable"),L3(_)}function T7(_,E){if(!E.readingMore)E.readingMore=!0,$T.nextTick(Bw,_,E)}function Bw(_,E){var R=E.length;while(!E.reading&&!E.flowing&&!E.ended&&E.length1&&A7(N.pipes,_)!==-1)&&!C)r_("false write response, pause",R._readableState.awaitDrain),R._readableState.awaitDrain++,M=!0;R.pause()}}function X(g){if(r_("onerror",g),w(),_.removeListener("error",X),e8(_,"error")===0)_.emit("error",g)}Yw(_,"error",X);function $(){_.removeListener("finish",z),w()}_.once("close",$);function z(){r_("onfinish"),_.removeListener("close",$),w()}_.once("finish",z);function w(){r_("unpipe"),R.unpipe(_)}if(_.emit("pipe",R),!N.flowing)r_("pipe resume"),R.resume();return _};function Vw(_){return function(){var E=_._readableState;if(r_("pipeOnDrain",E.awaitDrain),E.awaitDrain)E.awaitDrain--;if(E.awaitDrain===0&&e8(_,"data"))E.flowing=!0,L3(_)}}CE.prototype.unpipe=function(_){var E=this._readableState,R={hasUnpiped:!1};if(E.pipesCount===0)return this;if(E.pipesCount===1){if(_&&_!==E.pipes)return this;if(!_)_=E.pipes;if(E.pipes=null,E.pipesCount=0,E.flowing=!1,_)_.emit("unpipe",this,R);return this}if(!_){var{pipes:N,pipesCount:A}=E;E.pipes=null,E.pipesCount=0,E.flowing=!1;for(var L=0;L=E.length){if(E.decoder)R=E.buffer.join("");else if(E.buffer.length===1)R=E.buffer.head.data;else R=E.buffer.concat(E.length);E.buffer.clear()}else R=$w(_,E.buffer,E.decoder);return R}function $w(_,E,R){var N;if(_L.length?L.length:_;if(U===L.length)A+=L;else A+=L.slice(0,_);if(_-=U,_===0){if(U===L.length)if(++N,R.next)E.head=R.next;else E.head=E.tail=null;else E.head=R,R.data=L.slice(U);break}++N}return E.length-=N,A}function ww(_,E){var R=VO.allocUnsafe(_),N=E.head,A=1;N.data.copy(R),_-=N.data.length;while(N=N.next){var L=N.data,U=_>L.length?L.length:_;if(L.copy(R,R.length-_,0,U),_-=U,_===0){if(U===L.length)if(++A,N.next)E.head=N.next;else E.head=E.tail=null;else E.head=N,N.data=L.slice(U);break}++A}return E.length-=A,R}function A3(_){var E=_._readableState;if(E.length>0)throw new Error('"endReadable()" called on non-empty stream');if(!E.endEmitted)E.ended=!0,$T.nextTick(Qw,E,_)}function Qw(_,E){if(!_.endEmitted&&_.length===0)_.endEmitted=!0,E.readable=!1,E.emit("end")}function A7(_,E){for(var R=0,N=_.length;R{G7.exports=uN;var QI=k1(),U7=Object.create(VT());U7.inherits=KT();U7.inherits(uN,QI);function zw(_,E){var R=this._transformState;R.transforming=!1;var N=R.writecb;if(!N)return this.emit("error",new Error("write callback called multiple times"));if(R.writechunk=null,R.writecb=null,E!=null)this.push(E);N(_);var A=this._readableState;if(A.reading=!1,A.needReadable||A.length{C7.exports=KO;var D7=U3(),S7=Object.create(VT());S7.inherits=KT();S7.inherits(KO,D7);function KO(_){if(!(this instanceof KO))return new KO(_);D7.call(this,_)}KO.prototype._transform=function(_,E,R){R(null,_)}});var Y7=j((lE,zI)=>{var YN=require("stream");if(process.env.READABLE_STREAM==="disable"&&YN)zI.exports=YN,lE=zI.exports=YN.Readable,lE.Readable=YN.Readable,lE.Writable=YN.Writable,lE.Duplex=YN.Duplex,lE.Transform=YN.Transform,lE.PassThrough=YN.PassThrough,lE.Stream=YN;else lE=zI.exports=e0(),lE.Stream=YN||lE,lE.Readable=lE,lE.Writable=t0(),lE.Duplex=k1(),lE.Transform=U3(),lE.PassThrough=P7()});var G3=j((oh,W7)=>{var qw=MT(),fw=require("fs"),jR=gN(),jw=X8(),H7=D1(),vw=J8(),pw=Y7(),hw=require("util");W7.exports=YR;hw.inherits(YR,H7);function YR(_,E){H7.call(this,_,E),this.sql=_.sql,this.values=_.values,this.typeCast=_.typeCast===void 0?!0:_.typeCast,this.nestTables=_.nestTables||!1,this._resultSet=null,this._results=[],this._fields=[],this._index=0,this._loadError=null}YR.prototype.start=function(){this.emit("packet",new jR.ComQueryPacket(this.sql))};YR.prototype.determinePacket=function _(E,R){var N=this._resultSet;if(!N)switch(E){case 0:return jR.OkPacket;case 251:return jR.LocalInfileRequestPacket;case 255:return jR.ErrorPacket;default:return jR.ResultSetHeaderPacket}if(N.eofPackets.length===0)return N.fieldPackets.length0?this._results:void 0,N=this._fields.length>0?this._fields:void 0;E.index=this._index,E.sql=this.sql,this.end(E,R,N)};YR.prototype.LocalInfileRequestPacket=function(_){if(this._connection.config.clientFlags&qw.CLIENT_LOCAL_FILES)this._sendLocalDataFile(_.filename);else this._loadError=new Error("Load local files command is disabled"),this._loadError.code="LOCAL_FILES_DISABLED",this._loadError.fatal=!1,this.emit("packet",new jR.EmptyPacket)};YR.prototype.ResultSetHeaderPacket=function(_){this._resultSet=new jw(_)};YR.prototype.FieldPacket=function(_){this._resultSet.fieldPackets.push(_)};YR.prototype.EofPacket=function(_){if(this._resultSet.eofPackets.push(_),this._resultSet.eofPackets.length===1&&!this._callback)this.emit("fields",this._resultSet.fieldPackets,this._index);if(this._resultSet.eofPackets.length!==2)return;if(this._callback)this._results.push(this._resultSet.rows),this._fields.push(this._resultSet.fieldPackets);this._index++,this._resultSet=null,this._handleFinalResultPacket(_)};YR.prototype._handleFinalResultPacket=function(_){if(_.serverStatus&vw.SERVER_MORE_RESULTS_EXISTS)return;var E=this._results.length>1?this._results:this._results[0],R=this._fields.length>1?this._fields:this._fields[0];this.end(this._loadError,E,R)};YR.prototype.RowDataPacket=function(_,E,R){if(_.parse(E,this._resultSet.fieldPackets,this.typeCast,this.nestTables,R),this._callback)this._resultSet.rows.push(_);else this.emit("result",_,this._index)};YR.prototype._sendLocalDataFile=function(_){var E=this,R=fw.createReadStream(_,{flag:"r",encoding:null,autoClose:!0});this.on("pause",function(){R.pause()}),this.on("resume",function(){R.resume()}),R.on("data",function(N){E.emit("packet",new jR.LocalDataFilePacket(N))}),R.on("error",function(N){E._loadError=N,R.emit("end")}),R.on("end",function(){E.emit("packet",new jR.EmptyPacket)})};YR.prototype.stream=function(_){var E=this;_=_||{},_.objectMode=!0;var R=new pw(_);return R._read=function(){E._connection&&E._connection.resume()},R.once("end",function(){process.nextTick(function(){R.emit("close")})}),this.on("result",function(N,A){if(!R.push(N))E._connection.pause();R.emit("result",N,A)}),this.on("error",function(N){R.emit("error",N)}),this.on("end",function(){R.push(null)}),this.on("fields",function(N,A){R.emit("fields",N,A)}),R}});var F7=j((sh,M7)=>{var XO=D1(),kw=require("util"),mw=gN();M7.exports=xI;kw.inherits(xI,XO);function xI(_,E){if(!E&&typeof _==="function")E=_,_={};XO.call(this,_,E),this._started=!1}xI.prototype.end=function _(E){if(this._ended)return;if(!this._started){XO.prototype.end.call(this,E);return}if(E&&E.code==="ECONNRESET"&&E.syscall==="read"){XO.prototype.end.call(this);return}XO.prototype.end.call(this,E)};xI.prototype.start=function(){this._started=!0,this.emit("packet",new mw.ComQuitPacket)}});var X7=j((th,K7)=>{var B7=D1(),gw=require("util"),V7=gN();K7.exports=JO;gw.inherits(JO,B7);function JO(_,E){if(!E&&typeof _==="function")E=_,_={};B7.call(this,_,E)}JO.prototype.start=function(){this.emit("packet",new V7.ComStatisticsPacket)};JO.prototype.StatisticsPacket=function(_){this.end(null,_)};JO.prototype.determinePacket=function _(E){if(E===85)return V7.StatisticsPacket;return}});var J7=j((C1)=>{C1.ChangeUser=P8();C1.Handshake=M8();C1.Ping=V8();C1.Query=G3();C1.Quit=F7();C1.Sequence=D1();C1.Statistics=X7()});var z7=j((ah,Q7)=>{var $7=Math.pow(2,16),Z7=Math.pow(2,24),w7=Math.pow(2,8),yw=Math.pow(2,53),qI=Math.pow(2,24)-1,m1=PN().Buffer;Q7.exports=lR;function lR(){this._buffer=null,this._offset=0}lR.prototype.toBuffer=function _(E){if(!this._buffer)this._buffer=m1.alloc(0),this._offset=0;var R=this._buffer,N=this._offset,A=Math.floor(N/qI)+1;this._buffer=m1.allocUnsafe(N+A*4),this._offset=0;for(var L=0;L>R*8&255};lR.prototype.writeFiller=function(_){this._allocate(_);for(var E=0;E<_;E++)this._buffer[this._offset++]=0};lR.prototype.writeNullTerminatedString=function(_,E){_=_||"",_=_+"";var R=m1.byteLength(_,E||"utf-8")+1;this._allocate(R),this._buffer.write(_,this._offset,E),this._buffer[this._offset+R-1]=0,this._offset+=R};lR.prototype.writeString=function(_){_=_||"",_=_+"";var E=m1.byteLength(_,"utf-8");this._allocate(E),this._buffer.write(_,this._offset,"utf-8"),this._offset+=E};lR.prototype.writeBuffer=function(_){var E=_.length;this._allocate(E),_.copy(this._buffer,this._offset),this._offset+=E};lR.prototype.writeLengthCodedNumber=function(_){if(_===null){this._allocate(1),this._buffer[this._offset++]=251;return}if(_<=250){this._allocate(1),this._buffer[this._offset++]=_;return}if(_>yw)throw new Error('writeLengthCodedNumber: JS precision range exceeded, your number is > 53 bit: "'+_+'"');if(_<$7)this._allocate(3),this._buffer[this._offset++]=252;else if(_>8&255,_<$7)return;if(this._buffer[this._offset++]=_>>16&255,_>24&255,_=_.toString(2),_=_.substr(0,_.length-32),_=parseInt(_,2),this._buffer[this._offset++]=_&255,this._buffer[this._offset++]=_>>8&255,this._buffer[this._offset++]=_>>16&255,this._buffer[this._offset++]=0};lR.prototype.writeLengthCodedBuffer=function(_){var E=_.length;this.writeLengthCodedNumber(E),this.writeBuffer(_)};lR.prototype.writeNullTerminatedBuffer=function(_){this.writeBuffer(_),this.writeFiller(1)};lR.prototype.writeLengthCodedString=function(_){if(_===null){this.writeLengthCodedNumber(null);return}_=_===void 0?"":String(_);var E=m1.byteLength(_,"utf-8");if(this.writeLengthCodedNumber(E),!E)return;this._allocate(E),this._buffer.write(_,this._offset,"utf-8"),this._offset+=E};lR.prototype._allocate=function _(E){if(!this._buffer){this._buffer=m1.alloc(Math.max(w7,E)),this._offset=0;return}var R=this._buffer.length-this._offset;if(R>=E)return;var N=this._buffer.length+Math.max(w7,E),A=this._buffer;this._buffer=m1.alloc(N),A.copy(this._buffer)}});var j7=j((eh,f7)=>{var bw=L5(),cN=J7(),$O=gN(),x7=require("stream").Stream,q7=require("util"),iw=z7();f7.exports=IE;q7.inherits(IE,x7);function IE(_){x7.call(this),_=_||{},this.readable=!0,this.writable=!0,this._config=_.config||{},this._connection=_.connection,this._callback=null,this._fatalError=null,this._quitSequence=null,this._handshake=!1,this._handshaked=!1,this._ended=!1,this._destroyed=!1,this._queue=[],this._handshakeInitializationPacket=null,this._parser=new bw({onError:this.handleParserError.bind(this),onPacket:this._parsePacket.bind(this),config:this._config})}IE.prototype.write=function(_){return this._parser.write(_),!0};IE.prototype.handshake=function _(E,R){if(typeof E==="function")R=E,E={};E=E||{},E.config=this._config;var N=this._enqueue(new cN.Handshake(E,R));return this._handshake=!0,N};IE.prototype.query=function _(E,R){return this._enqueue(new cN.Query(E,R))};IE.prototype.changeUser=function _(E,R){return this._enqueue(new cN.ChangeUser(E,R))};IE.prototype.ping=function _(E,R){if(typeof E==="function")R=E,E={};return this._enqueue(new cN.Ping(E,R))};IE.prototype.stats=function _(E,R){if(typeof E==="function")R=E,E={};return this._enqueue(new cN.Statistics(E,R))};IE.prototype.quit=function _(E,R){if(typeof E==="function")R=E,E={};var N=this,A=this._enqueue(new cN.Quit(E,R));return A.on("end",function(){N.end()}),this._quitSequence=A};IE.prototype.end=function(){if(this._ended)return;if(this._ended=!0,this._quitSequence&&(this._quitSequence._ended||this._queue[0]===this._quitSequence)){this._quitSequence.end(),this.emit("end");return}var _=new Error("Connection lost: The server closed the connection.");_.fatal=!0,_.code="PROTOCOL_CONNECTION_LOST",this._delegateError(_)};IE.prototype.pause=function(){this._parser.pause();var _=this._queue[0];if(_&&_.emit)_.emit("pause")};IE.prototype.resume=function(){this._parser.resume();var _=this._queue[0];if(_&&_.emit)_.emit("resume")};IE.prototype._enqueue=function(_){if(!this._validateEnqueue(_))return _;if(this._config.trace)_._callSite=_._callSite||new Error;this._queue.push(_),this.emit("enqueue",_);var E=this;if(_.on("error",function(R){E._delegateError(R,_)}).on("packet",function(R){_._timer.active(),E._emitPacket(R)}).on("timeout",function(){var R=new Error(_.constructor.name+" inactivity timeout");R.code="PROTOCOL_SEQUENCE_TIMEOUT",R.fatal=!0,R.timeout=_._timeout,E._delegateError(R,_)}),_.constructor===cN.Handshake)_.on("start-tls",function(){_._timer.active(),E._connection._startTLS(function(R){if(R){R.code="HANDSHAKE_SSL_ERROR",R.fatal=!0,_.end(R);return}_._timer.active(),_._tlsUpgradeCompleteHandler()})}),_.on("end",function(){if(E._handshaked=!0,!E._fatalError)E.emit("handshake",E._handshakeInitializationPacket)});if(_.on("end",function(){E._dequeue(_)}),this._queue.length===1)this._parser.resetPacketNumber(),this._startSequence(_);return _};IE.prototype._validateEnqueue=function _(E){var R,N="Cannot enqueue "+E.constructor.name;if(this._fatalError)R=new Error(N+" after fatal error."),R.code="PROTOCOL_ENQUEUE_AFTER_FATAL_ERROR";else if(this._quitSequence)R=new Error(N+" after invoking quit."),R.code="PROTOCOL_ENQUEUE_AFTER_QUIT";else if(this._destroyed)R=new Error(N+" after being destroyed."),R.code="PROTOCOL_ENQUEUE_AFTER_DESTROY";else if((this._handshake||this._handshaked)&&E.constructor===cN.Handshake)R=new Error(N+" after already enqueuing a Handshake."),R.code="PROTOCOL_ENQUEUE_HANDSHAKE_TWICE";else return!0;var A=this;return R.fatal=!1,E.on("error",function(L){A._delegateError(L,E)}),process.nextTick(function(){E.end(R)}),!1};IE.prototype._parsePacket=function(){var _=this._queue[0];if(!_){var E=new Error("Received packet with no active sequence.");E.code="PROTOCOL_STRAY_PACKET",E.fatal=!0,this._delegateError(E);return}var R=this._determinePacket(_),N=new R({protocol41:this._config.protocol41}),A=R.name;if(R===$O.RowDataPacket){if(_.RowDataPacket(N,this._parser,this._connection),this._config.debug)this._debugPacket(!0,N);return}if(this._config.debug)this._parsePacketDebug(N);else N.parse(this._parser);if(R===$O.HandshakeInitializationPacket)this._handshakeInitializationPacket=N,this.emit("initialize",N);if(_._timer.active(),!_[A]){var E=new Error("Received packet in the wrong sequence.");E.code="PROTOCOL_INCORRECT_PACKET_SEQUENCE",E.fatal=!0,this._delegateError(E);return}_[A](N)};IE.prototype._parsePacketDebug=function _(E){try{E.parse(this._parser)}finally{this._debugPacket(!0,E)}};IE.prototype._emitPacket=function(_){var E=new iw;if(_.write(E),this.emit("data",E.toBuffer(this._parser)),this._config.debug)this._debugPacket(!1,_)};IE.prototype._determinePacket=function(_){var E=this._parser.peak();if(_.determinePacket){var R=_.determinePacket(E,this._parser);if(R)return R}switch(E){case 0:return $O.OkPacket;case 254:return $O.EofPacket;case 255:return $O.ErrorPacket}throw new Error("Could not determine packet, firstByte = "+E)};IE.prototype._dequeue=function(E){if(E._timer.stop(),this._fatalError)return;this._queue.shift();var E=this._queue[0];if(!E){this.emit("drain");return}this._parser.resetPacketNumber(),this._startSequence(E)};IE.prototype._startSequence=function(_){if(_._timeout>0&&isFinite(_._timeout))_._timer.start(_._timeout);if(_.constructor===cN.ChangeUser)_.start(this._handshakeInitializationPacket);else _.start()};IE.prototype.handleNetworkError=function(_){_.fatal=!0;var E=this._queue[0];if(E)E.end(_);else this._delegateError(_)};IE.prototype.handleParserError=function _(E){var R=this._queue[0];if(R)R.end(E);else this._delegateError(E)};IE.prototype._delegateError=function(_,E){if(this._fatalError)return;if(_.fatal)this._fatalError=_;if(this._shouldErrorBubbleUp(_,E))this.emit("unhandledError",_);else if(_.fatal){var R=this._queue;process.nextTick(function(){R.forEach(function(N){N.end(_)}),R.length=0})}if(_.fatal)this.emit("end",_)};IE.prototype._shouldErrorBubbleUp=function(_,E){if(E){if(E.hasErrorHandler())return!1;else if(!_.fatal)return!0}return _.fatal&&!this._hasPendingErrorHandlers()};IE.prototype._hasPendingErrorHandlers=function(){return this._queue.some(function(_){return _.hasErrorHandler()})};IE.prototype.destroy=function(){if(this._destroyed=!0,this._parser.pause(),this._connection.state!=="disconnected"){if(!this._ended)this.end()}};IE.prototype._debugPacket=function(_,E){var R=this._connection,N=_?"<--":"-->",A=E.constructor.name,L=R&&R.threadId!==null?" ("+R.threadId+")":"";if(Array.isArray(this._config.debug)&&this._config.debug.indexOf(A)===-1)return;var U=q7.inspect(E).replace(/^[^{]+/,"");console.log("%s%s %s %s\n",N,L,A,U)}});var h7=j((p7)=>{var vE=p7,v7=/`/g,uw=/\./g,D3=/[\0\b\t\n\r\x1a\"\'\\]/g,cw={"\0":"\\0","\b":"\\b","\t":"\\t","\n":"\\n","\r":"\\r","\x1A":"\\Z",'"':'\\"',"\'":"\\\'","\\":"\\\\"};vE.escapeId=function _(E,R){if(Array.isArray(E)){var N="";for(var A=0;A2)continue;var M=Y===2?vE.escapeId(R[S]):vE.escape(R[S],N,A);G+=E.slice(L,C.index)+M,L=U.lastIndex,S++}if(L===0)return E;if(L{k7.exports=h7()});var S3=j((Rk,g7)=>{g7.exports=m7()});var ZO=j((Nk,i7)=>{var lw=require("crypto"),vI=require("events"),y7=require("net"),jI=require("tls"),nw=CI(),ow=j7(),P3=S3(),b7=G3(),sw=require("util");i7.exports=a_;sw.inherits(a_,vI.EventEmitter);function a_(_){vI.EventEmitter.call(this),this.config=_.config,this._socket=_.socket,this._protocol=new ow({config:this.config,connection:this}),this._connectCalled=!1,this.state="disconnected",this.threadId=null}a_.createQuery=function _(E,R,N){if(E instanceof b7)return E;var A=N,L={};if(typeof E==="function")A=E;else if(typeof E==="object"){if(L=Object.create(E),typeof R==="function")A=R;else if(R!==void 0)Object.defineProperty(L,"values",{value:R})}else if(L.sql=E,typeof R==="function")A=R;else if(R!==void 0)L.values=R;if(A!==void 0){if(A=y1(null,A),A===void 0)throw new TypeError("argument callback must be a function when provided")}return new b7(L,A)};a_.prototype.connect=function _(E,R){if(!R&&typeof E==="function")R=E,E={};if(!this._connectCalled){if(this._connectCalled=!0,this._socket=this.config.socketPath?y7.createConnection(this.config.socketPath):y7.createConnection(this.config.port,this.config.host),vI.usingDomains)this._socket.domain=this.domain;var N=this;if(this._protocol.on("data",function(L){N._socket.write(L)}),this._socket.on("data",C3(N,function(L){N._protocol.write(L)})),this._protocol.on("end",function(){N._socket.end()}),this._socket.on("end",C3(N,function(){N._protocol.end()})),this._socket.on("error",this._handleNetworkError.bind(this)),this._socket.on("connect",this._handleProtocolConnect.bind(this)),this._protocol.on("handshake",this._handleProtocolHandshake.bind(this)),this._protocol.on("initialize",this._handleProtocolInitialize.bind(this)),this._protocol.on("unhandledError",this._handleProtocolError.bind(this)),this._protocol.on("drain",this._handleProtocolDrain.bind(this)),this._protocol.on("end",this._handleProtocolEnd.bind(this)),this._protocol.on("enqueue",this._handleProtocolEnqueue.bind(this)),this.config.connectTimeout){var A=this._handleConnectTimeout.bind(this);this._socket.setTimeout(this.config.connectTimeout,A),this._socket.once("connect",function(){this.setTimeout(0,A)})}}this._protocol.handshake(E,y1(this,R))};a_.prototype.changeUser=function _(E,R){if(!R&&typeof E==="function")R=E,E={};this._implyConnect();var N=E.charset?nw.getCharsetNumber(E.charset):this.config.charsetNumber;return this._protocol.changeUser({user:E.user||this.config.user,password:E.password||this.config.password,database:E.database||this.config.database,timeout:E.timeout,charsetNumber:N,currentConfig:this.config},y1(this,R))};a_.prototype.beginTransaction=function _(E,R){if(!R&&typeof E==="function")R=E,E={};return E=E||{},E.sql="START TRANSACTION",E.values=null,this.query(E,R)};a_.prototype.commit=function _(E,R){if(!R&&typeof E==="function")R=E,E={};return E=E||{},E.sql="COMMIT",E.values=null,this.query(E,R)};a_.prototype.rollback=function _(E,R){if(!R&&typeof E==="function")R=E,E={};return E=E||{},E.sql="ROLLBACK",E.values=null,this.query(E,R)};a_.prototype.query=function _(E,R,N){var A=a_.createQuery(E,R,N);if(A._connection=this,!(typeof E==="object"&&("typeCast"in E)))A.typeCast=this.config.typeCast;if(A.sql)A.sql=this.format(A.sql,A.values);if(A._callback)A._callback=y1(this,A._callback);return this._implyConnect(),this._protocol._enqueue(A)};a_.prototype.ping=function _(E,R){if(!R&&typeof E==="function")R=E,E={};this._implyConnect(),this._protocol.ping(E,y1(this,R))};a_.prototype.statistics=function _(E,R){if(!R&&typeof E==="function")R=E,E={};this._implyConnect(),this._protocol.stats(E,y1(this,R))};a_.prototype.end=function _(E,R){var N=R,A=E;if(!R&&typeof E==="function")N=E,A=null;if(A=Object.create(A||null),A.timeout===void 0)A.timeout=30000;this._implyConnect(),this._protocol.quit(A,y1(this,N))};a_.prototype.destroy=function(){this.state="disconnected",this._implyConnect(),this._socket.destroy(),this._protocol.destroy()};a_.prototype.pause=function(){this._socket.pause(),this._protocol.pause()};a_.prototype.resume=function(){this._socket.resume(),this._protocol.resume()};a_.prototype.escape=function(_){return P3.escape(_,!1,this.config.timezone)};a_.prototype.escapeId=function _(E){return P3.escapeId(E,!1)};a_.prototype.format=function(_,E){if(typeof this.config.queryFormat==="function")return this.config.queryFormat.call(this,_,E,this.config.timezone);return P3.format(_,E,this.config.stringifyObjects,this.config.timezone)};if(jI.TLSSocket)a_.prototype._startTLS=function _(E){var R=this;tw(this.config,function(N,A){if(N){E(N);return}R._socket.removeAllListeners("data"),R._protocol.removeAllListeners("data");var L=R.config.ssl.rejectUnauthorized,U=!1,G=new jI.TLSSocket(R._socket,{rejectUnauthorized:L,requestCert:!0,secureContext:A,isServer:!1});G.on("_tlsError",function(S){if(U)R._handleNetworkError(S);else E(S)}),G.pipe(R._protocol),R._protocol.on("data",function(S){G.write(S)}),G.on("secure",function(){U=!0,E(L?this.ssl.verifyError():null)}),G._start()})};else a_.prototype._startTLS=function _(E){var R=this,N=lw.createCredentials({ca:this.config.ssl.ca,cert:this.config.ssl.cert,ciphers:this.config.ssl.ciphers,key:this.config.ssl.key,passphrase:this.config.ssl.passphrase}),A=this.config.ssl.rejectUnauthorized,L=!1,U=jI.createSecurePair(N,!1,!0,A);U.on("error",function(G){if(L)R._handleNetworkError(G);else E(G)}),this._socket.removeAllListeners("data"),this._protocol.removeAllListeners("data"),U.encrypted.pipe(this._socket),this._socket.on("data",function(G){U.encrypted.write(G)}),U.cleartext.pipe(this._protocol),this._protocol.on("data",function(G){U.cleartext.write(G)}),U.on("secure",function(){if(L=!0,!A){E();return}var G=this.ssl.verifyError(),S=G;if(typeof S==="string")S=new Error(G),S.code=G;E(S)}),U._cycle=U.cycle,U.cycle=function G(){if(this.ssl&&this.ssl.error)this.error();return this._cycle.apply(this,arguments)}};a_.prototype._handleConnectTimeout=function(){if(this._socket)this._socket.setTimeout(0),this._socket.destroy();var _=new Error("connect ETIMEDOUT");_.errorno="ETIMEDOUT",_.code="ETIMEDOUT",_.syscall="connect",this._handleNetworkError(_)};a_.prototype._handleNetworkError=function(_){this._protocol.handleNetworkError(_)};a_.prototype._handleProtocolError=function(_){this.state="protocol_error",this.emit("error",_)};a_.prototype._handleProtocolDrain=function(){this.emit("drain")};a_.prototype._handleProtocolConnect=function(){this.state="connected",this.emit("connect")};a_.prototype._handleProtocolHandshake=function _(){this.state="authenticated"};a_.prototype._handleProtocolInitialize=function _(E){this.threadId=E.threadId};a_.prototype._handleProtocolEnd=function(_){this.state="disconnected",this.emit("end",_)};a_.prototype._handleProtocolEnqueue=function _(E){this.emit("enqueue",E)};a_.prototype._implyConnect=function(){if(!this._connectCalled)this.connect()};function tw(_,E){var R=null,N=null;try{R=jI.createSecureContext({ca:_.ssl.ca,cert:_.ssl.cert,ciphers:_.ssl.ciphers,key:_.ssl.key,passphrase:_.ssl.passphrase})}catch(A){N=A}E(N,R)}function rw(_){return function(){var E=[],R;while(process.domain)E.shift(process.domain),process.domain.exit();try{R=_.apply(this,arguments)}finally{for(var N=0;N{var aw=require("util").inherits,pI=ZO(),ew=require("events");u7.exports=b1;aw(b1,pI);function b1(_,E){if(pI.call(this,E),this._pool=_,ew.usingDomains)this.domain=_.domain;this.on("end",this._removeFromPool),this.on("error",function(R){if(R.fatal)this._removeFromPool()})}b1.prototype.release=function _(){var E=this._pool;if(!E||E._closed)return;return E.releaseConnection(this)};b1.prototype._realEnd=pI.prototype.end;b1.prototype.end=function(){console.warn("Calling conn.end() to release a pooled connection is deprecated. In next version calling conn.end() will be restored to default conn.end() behavior. Use conn.release() instead."),this.release()};b1.prototype.destroy=function(){pI.prototype.destroy.apply(this,arguments),this._removeFromPool(this)};b1.prototype._removeFromPool=function _(){if(!this._pool||this._pool._closed)return;var E=this._pool;this._pool=null,E._purgeConnection(this)}});var Y3=j((Ok,n7)=>{var d7=H3(),_Q=ZO(),l7=require("events").EventEmitter,EQ=require("util"),RQ=c7();n7.exports=vR;EQ.inherits(vR,l7);function vR(_){l7.call(this),this.config=_.config,this.config.connectionConfig.pool=this,this._acquiringConnections=[],this._allConnections=[],this._freeConnections=[],this._connectionQueue=[],this._closed=!1}vR.prototype.getConnection=function(_){if(this._closed){var E=new Error("Pool is closed.");E.code="POOL_CLOSED",process.nextTick(function(){_(E)});return}var R,N=this;if(this._freeConnections.length>0){R=this._freeConnections.shift(),this.acquireConnection(R,_);return}if(this.config.connectionLimit===0||this._allConnections.length=this.config.queueLimit){process.nextTick(function(){var N=new Error("Queue limit reached.");N.code="POOL_ENQUEUELIMIT",E(N)});return}var R=process.domain?process.domain.bind(E):E;this._connectionQueue.push(R),this.emit("enqueue")};vR.prototype._needsChangeUser=function _(E){var R=E.config,N=this.config.connectionConfig;return R.user!==N.user||R.database!==N.database||R.password!==N.password||R.charsetNumber!==N.charsetNumber};vR.prototype._purgeConnection=function _(E,R){var N=R||function(){};if(E.state==="disconnected")E.destroy();if(this._removeConnection(E),E.state!=="disconnected"&&!E._protocol._quitSequence){E._realEnd(N);return}process.nextTick(N)};vR.prototype._removeConnection=function(_){_._pool=null,hI(this._allConnections,_),hI(this._freeConnections,_),this.releaseConnection(_)};vR.prototype.escape=function(_){return d7.escape(_,this.config.connectionConfig.stringifyObjects,this.config.connectionConfig.timezone)};vR.prototype.escapeId=function _(E){return d7.escapeId(E,!1)};function hI(_,E){var R;if((R=_.indexOf(E))!==-1)_.splice(R,1)}});var M3=j((Ak,s7)=>{var W3=CI();s7.exports=o7;function o7(_){if(typeof _==="string")_=W3.parseUrl(_);this.acquireTimeout=_.acquireTimeout===void 0?1e4:Number(_.acquireTimeout),this.connectionConfig=new W3(_),this.waitForConnections=_.waitForConnections===void 0?!0:Boolean(_.waitForConnections),this.connectionLimit=_.connectionLimit===void 0?10:Number(_.connectionLimit),this.queueLimit=_.queueLimit===void 0?0:Number(_.queueLimit)}o7.prototype.newConnectionConfig=function _(){var E=new W3(this.connectionConfig);return E.clientFlags=this.connectionConfig.clientFlags,E.maxPacketSize=this.connectionConfig.maxPacketSize,E}});var B3=j((Ik,t7)=>{var F3=t7.exports={};F3.RR=function _(){var E=0;return function(R){if(E>=R.length)E=0;var N=R[E++];return N}};F3.RANDOM=function _(){return function(E){return E[Math.floor(Math.random()*E.length)]}};F3.ORDER=function _(){return function(E){return E[0]}}});var a7=j((Lk,r7)=>{var NQ=ZO(),TQ=B3();r7.exports=kI;function kI(_,E,R){this._cluster=_,this._pattern=E,this._selector=new TQ[R]}kI.prototype.getConnection=function(_){var E=this._getClusterNode(),R=this._cluster,N=this;if(E===null){var A=null;if(this._cluster._findNodeIds(this._pattern,!0).length!==0)A=new Error("Pool does not have online node."),A.code="POOL_NONEONLINE";else A=new Error("Pool does not exist."),A.code="POOL_NOEXIST";_(A);return}R._getConnection(E,function(L,U){var G=L&&R._canRetry&&R._findNodeIds(N._pattern).length!==0;if(G){N.getConnection(_);return}if(L){_(L);return}_(null,U)})};kI.prototype.query=function(_,E,R){var N=this._cluster,A=this._getClusterNode(),L=NQ.createQuery(_,E,R),U=this;if(A===null){var G=null;if(this._cluster._findNodeIds(this._pattern,!0).length!==0)G=new Error("Pool does not have online node."),G.code="POOL_NONEONLINE";else G=new Error("Pool does not exist."),G.code="POOL_NOEXIST";return process.nextTick(function(){L.on("error",function(){}),L.end(G)}),L}if(!(typeof _==="object"&&("typeCast"in _)))L.typeCast=A.pool.config.connectionConfig.typeCast;if(A.pool.config.connectionConfig.trace)L._callSite=new Error;return N._getConnection(A,function(S,C){var Y=S&&N._canRetry&&N._findNodeIds(U._pattern).length!==0;if(Y){U.query(L);return}if(S){L.on("error",function(){}),L.end(S);return}L.once("end",function(){C.release()}),C.query(L)}),L};kI.prototype._getClusterNode=function _(){var E=this._cluster._findNodeIds(this._pattern),R;switch(E.length){case 0:R=null;break;case 1:R=E[0];break;default:R=this._selector(E);break}return R!==null?this._cluster._getNode(R):null}});var NS=j((Uk,RS)=>{var OQ=Y3(),e7=M3(),AQ=a7(),IQ=B3(),LQ=require("util"),_S=require("events").EventEmitter;RS.exports=HR;function HR(_){_S.call(this),_=_||{},this._canRetry=typeof _.canRetry==="undefined"?!0:_.canRetry,this._defaultSelector=_.defaultSelector||"RR",this._removeNodeErrorCount=_.removeNodeErrorCount||5,this._restoreNodeTimeout=_.restoreNodeTimeout||0,this._closed=!1,this._findCaches=Object.create(null),this._lastId=0,this._namespaces=Object.create(null),this._nodes=Object.create(null)}LQ.inherits(HR,_S);HR.prototype.add=function _(E,R){if(this._closed)throw new Error("PoolCluster is closed.");var N=typeof E==="object"?"CLUSTER::"+ ++this._lastId:String(E);if(this._nodes[N]!==void 0)throw new Error('Node ID "'+N+'" is already defined in PoolCluster.');var A=typeof E!=="object"?new e7(R):new e7(E);this._nodes[N]={id:N,errorCount:0,pool:new OQ({config:A}),_offlineUntil:0},this._clearFindCaches()};HR.prototype.end=function _(E){var R=E!==void 0?E:DQ;if(typeof R!=="function")throw TypeError("callback argument must be a function");if(this._closed){process.nextTick(R);return}this._closed=!0;var N=!1,A=Object.keys(this._nodes),L=0;function U(Y){if(!N&&(Y||--L<=0))N=!0,R(Y)}for(var G=0;Gthis._removeNodeErrorCount)R=this._removeNodeErrorCount;if(R<1)R=1;if(E.errorCount=R-1,E._offlineUntil)E._offlineUntil=0,this.emit("online",E.id)};HR.prototype._findNodeIds=function _(E,R){var N=0,A=this._findCaches[E];if(A===void 0){var L=GQ(E),U=Object.keys(this._nodes);A=U.filter(function(G){return G.match(L)}),this._findCaches[E]=A}if(R)return A;return A.filter(function(G){var S=this._getNode(G);if(!S._offlineUntil)return!0;if(!N)N=ES();return S._offlineUntil<=N},this)};HR.prototype._getNode=function _(E){return this._nodes[E]||null};HR.prototype._increaseErrorCount=function _(E){var R=++E.errorCount;if(this._removeNodeErrorCount>R)return;if(this._restoreNodeTimeout>0){E._offlineUntil=ES()+this._restoreNodeTimeout,this.emit("offline",E.id);return}this._removeNode(E),this.emit("remove",E.id)};HR.prototype._getConnection=function(_,E){var R=this;_.pool.getConnection(function(N,A){if(N){R._increaseErrorCount(_),E(N);return}else R._decreaseErrorCount(_);A._clusterId=_.id,E(null,A)})};HR.prototype._removeNode=function _(E){delete this._nodes[E.id],this._clearFindCaches(),E.pool.end(SQ)};function ES(){var _;if(typeof process.hrtime==="function")_=process.hrtime(),_=_[0]*1000+_[1]*0.000001;else _=process.uptime()*1000;return Math.floor(_)}function UQ(_){return typeof _==="object"&&Object.prototype.toString.call(_)==="[object RegExp]"}function GQ(_){if(UQ(_))return _;var E=_.replace(/([.+?^=!:${}()|\[\]\/\\])/g,"\\$1").replace(/\*/g,".*");return new RegExp("^"+E+"$")}function DQ(_){if(_)throw _}function SQ(){}});var H3=j((HN)=>{var TS=Object.create(null);HN.createConnection=function _(E){var R=NN("Connection"),N=NN("ConnectionConfig");return new R({config:new N(E)})};HN.createPool=function _(E){var R=NN("Pool"),N=NN("PoolConfig");return new R({config:new N(E)})};HN.createPoolCluster=function _(E){var R=NN("PoolCluster");return new R(E)};HN.createQuery=function _(E,R,N){var A=NN("Connection");return A.createQuery(E,R,N)};HN.escape=function _(E,R,N){var A=NN("SqlString");return A.escape(E,R,N)};HN.escapeId=function _(E,R){var N=NN("SqlString");return N.escapeId(E,R)};HN.format=function _(E,R,N,A){var L=NN("SqlString");return L.format(E,R,N,A)};HN.raw=function _(E){var R=NN("SqlString");return R.raw(E)};Object.defineProperty(HN,"Types",{get:NN.bind(null,"Types")});function NN(_){var E=TS[_];if(E!==void 0)return E;switch(_){case"Connection":E=ZO();break;case"ConnectionConfig":E=CI();break;case"Pool":E=Y3();break;case"PoolCluster":E=NS();break;case"PoolConfig":E=M3();break;case"SqlString":E=S3();break;case"Types":E=HI();break;default:throw new Error("Cannot find class \'"+_+"\'")}return TS[_]=E,E}});var ZT=j((Dk,OS)=>{var CQ=require("url");OS.exports=(_)=>{let E=null,R=0,N=0,A=0,L={},U={updated:0},G={updated:0},S=["ER_TOO_MANY_USER_CONNECTIONS","ER_CON_COUNT_ERROR","ER_USER_LIMIT_REACHED","ER_OUT_OF_RESOURCES","PROTOCOL_CONNECTION_LOST","PROTOCOL_SEQUENCE_TIMEOUT","ETIMEDOUT"],C,Y,M,H,X,$,z,w,g,d,t,s,m,k,e,o,c,S_,U_,V_=()=>R,K_=()=>R++,z_=()=>R=0,r=()=>E,A_=()=>E=null,L_=()=>A=0,P_=()=>N,p_=()=>L,l_=(I_)=>{if(typeof I_==="string")return Object.assign(L,k_(I_));return Object.assign(L,I_)},j_=(I_)=>new U_((G_)=>setTimeout(G_,I_)),a=(I_,G_)=>Math.floor(Math.random()*(G_-I_+1))+I_,WE=()=>a(0,Math.min(M,H*2**A)),q_=(I_=0)=>Math.min(M,a(H,I_*3)),k_=(I_)=>{let G_=void 0;try{G_=new CQ.URL(I_)}catch(b_){throw new Error("Invalid data source URL provided")}let W_={};for(let[b_,JE]of G_.searchParams)W_[b_]=JE;let x_=G_.pathname&&G_.pathname.startsWith("/")?G_.pathname.slice(1):void 0,Q_={host:G_.hostname?G_.hostname:void 0,user:G_.username?G_.username:void 0,port:G_.port?Number(G_.port):void 0,password:G_.password?G_.password:void 0,database:x_};return Object.assign(Q_,W_)},n_=async(I_)=>{try{await e_()}catch(G_){if(S.includes(G_.code)&&An_(W_))}else throw m(G_),new Error(G_)}},e_=()=>{if(E===null)return z_(),new U_((I_,G_)=>{E=C.createConnection(L),E.connect(function(W_){if(W_)A_(),G_(W_);else return L_(),s(E),I_(!0)}),E.on("error",async(W_)=>{N++,A_(),z_(),o(W_)})});else return U_.resolve()},V=async()=>{if(E!==null&&Y){K_();let I_=await i(),G_=await v();if(G_.total/I_.total>$){let W_=Math.min(Math.max(G_.maxAge,w),g);if((W_<=G_.maxAge?await y(W_):0)===0)J()}else if(G_.maxAge>g)await y(g)}},J=()=>{if(E!==null)E.end(),A_(),z_(),e()},Q=async function(...I_){return await n_(),new U_((G_,W_)=>{if(E!==null){if(this&&this.rollback&&I_.length===0)return G_([]);E.query(...I_,async(x_,Q_)=>{if(x_&&x_.code==="PROTOCOL_SEQUENCE_TIMEOUT")E.destroy(),A_(),W_(x_);else if(x_&&(/^PROTOCOL_ENQUEUE_AFTER_/.test(x_.code)||x_.code==="PROTOCOL_CONNECTION_LOST"||x_.code==="EPIPE"||x_.code==="ECONNRESET"))return A_(),G_(Q(...I_));else if(x_){if(this&&this.rollback)await Q("ROLLBACK"),this.rollback(x_);W_(x_)}return G_(Q_)})}})},i=async()=>{if(Date.now()-U.updated>d){let I_=await Q(`SELECT IF(@@max_user_connections > 0, + LEAST(@@max_user_connections,@@max_connections), + @@max_connections) AS total, + IF(@@max_user_connections > 0,true,false) AS userLimit`);U={total:I_[0].total||0,userLimit:I_[0].userLimit===1?!0:!1,updated:Date.now()}}return U},v=async()=>{if(Date.now()-G.updated>t){let I_=await Q(`SELECT COUNT(ID) as total, MAX(time) as max_age + FROM information_schema.processlist + WHERE (user = ? AND @@max_user_connections > 0) OR true`,[L.user]);G={total:I_[0].total||0,maxAge:I_[0].max_age||0,updated:Date.now()}}return G},y=async(I_)=>{let G_=0,W_=await Q(`SELECT ID,time FROM information_schema.processlist + WHERE command = 'Sleep' AND time >= ? AND user = ? + ORDER BY time DESC`,[!isNaN(I_)?I_:900,L.user]);for(let x_=0;x_{let I_=[],G_=()=>{};return{query:function(...W_){if(typeof W_[0]==="function")I_.push(W_[0]);else I_.push(()=>[...W_]);return this},rollback:function(W_){if(typeof W_==="function")G_=W_;return this},commit:async function(){return await f(I_,G_)}}},f=async(I_,G_)=>{let W_=[];await Q("START TRANSACTION");for(let x_=0;x_{},m=typeof x.onConnectError==="function"?x.onConnectError:()=>{},k=typeof x.onRetry==="function"?x.onRetry:()=>{},e=typeof x.onClose==="function"?x.onClose:()=>{},o=typeof x.onError==="function"?x.onError:()=>{},c=typeof x.onKill==="function"?x.onKill:()=>{},S_=typeof x.onKillError==="function"?x.onKillError:()=>{};let u={};if(typeof x.config==="object"&&!Array.isArray(x.config))u=x.config;else if(typeof _==="string")u=_;let{escape:b,escapeId:E_,format:H_}=C;return l_(u),{connect:n_,config:l_,query:Q,end:V,escape:b,escapeId:E_,format:H_,quit:J,transaction:n,getCounter:V_,getClient:r,getConfig:p_,getErrorCount:P_}}});function WR(){let _=process.env.DSQL_SSL_DIR;if(!_?.match(/./))return;let E=`${_}/ca-cert.pem`;if(!V3.default.existsSync(E)){console.log(`${E} does not exist`);return}return{ca:V3.default.readFileSync(`${_}/ca-cert.pem`)}}var V3;var wT=dE(()=>{V3=X_(require("fs"))});function MR({paradigm:_,database:E,queryString:R,queryValues:N}){try{return new Promise((A,L)=>{let U=_?.match(/full.access|^fa$/i)?!0:!1;try{let G=function(C){QT.end(),A(JSON.parse(JSON.stringify(C)))},S=function(C){QT.end(),A({error:C.message,queryStringGenerated:R,queryValuesGenerated:N,sql:C.sql})};if(U)QT=mI.default({config:{host:process.env.DSQL_DB_HOST,user:process.env.DSQL_DB_FULL_ACCESS_USERNAME,password:process.env.DSQL_DB_FULL_ACCESS_PASSWORD,database:E,ssl:WR()}});else QT=mI.default({config:{host:process.env.DSQL_DB_HOST,user:process.env.DSQL_DB_READ_ONLY_USERNAME,password:process.env.DSQL_DB_READ_ONLY_PASSWORD,database:E,ssl:WR()}});if(N&&Array.isArray(N)&&N[0])QT.query(R,N).then(G).catch(S);else QT.query(R).then(G).catch(S)}catch(G){AS.default.appendFileSync("./.tmp/dbErrorLogs.txt",G.message+"\n"+Date()+"\n\n\n","utf8"),A({error:G.message})}})}catch(A){return{success:!1,error:A.message}}}var AS,mI,QT;var i1=dE(()=>{AS=X_(require("fs")),mI=X_(ZT());wT();QT=mI.default({config:{host:process.env.DSQL_DB_HOST,user:process.env.DSQL_DB_READ_ONLY_USERNAME,password:process.env.DSQL_DB_READ_ONLY_PASSWORD,charset:"utf8mb4",ssl:WR()}});PQ.exports=MR});async function xE(..._){let E=IS.default({config:{host:process.env.DSQL_DB_HOST,user:process.env.DSQL_DB_USERNAME,password:process.env.DSQL_DB_PASSWORD,database:process.env.DSQL_DB_NAME,port:process.env.DSQL_DB_PORT?Number(process.env.DSQL_DB_PORT):void 0,charset:"utf8mb4",ssl:WR()},onConnect:()=>{console.log("Connection Successful!")},onConnectError:(R)=>{console.log("Connection Error",R.message)},onError:(R)=>{console.log("Client Error",R.message)}});console.log("Querying ...");try{let R=await E.query(..._);return await E.end(),JSON.parse(JSON.stringify(R))}catch(R){return console.log("DB Error =>",R.message),{success:!1,error:R.message}}}var IS;var WN=dE(()=>{IS=X_(ZT());wT()});var US={};YT(US,{default:()=>OR});function OR({encryptedString:_,encryptionKey:E,encryptionSalt:R}){if(!_?.match(/./))return console.log("Encrypted string is invalid"),_;let N=E||process.env.DSQL_ENCRYPTION_PASSWORD,A=R||process.env.DSQL_ENCRYPTION_SALT,L=process.env.DSQL_ENCRYPTION_KEY_LENGTH?Number(process.env.DSQL_ENCRYPTION_KEY_LENGTH):24;if(!N?.match(/.{8,}/))return console.log("Decrption key is invalid"),_;if(!A?.match(/.{8,}/))return console.log("Decrption salt is invalid"),_;let U="aes-192-cbc",G=gI.scryptSync(N,A,L),S=LS.Buffer.alloc(16,0),C=gI.createDecipheriv(U,G,S);try{let Y=C.update(_,"hex","utf8");return Y+=C.final("utf8"),Y}catch(Y){return console.log("Error in decrypting =>",Y.message),_}}var gI,LS;var P1=dE(()=>{gI=require("crypto"),LS=require("buffer")});var YQ,GS;var DS=dE(()=>{YQ=/^id$|^uuid$|^date_created$|^date_created_code$|^date_created_timestamp$|^date_updated$|^date_updated_code$|^date_updated_timestamp$/,GS=YQ});async function u1({unparsedResults:_,tableSchema:E}){let R=[];try{for(let N=0;N<_.length;N++){let A=_[N],L=Object.keys(A);for(let U=0;U",N.message),_}}var yI=dE(()=>{P1();DS()});var SS=j((J3)=>{Object.defineProperty(J3,"__esModule",{value:!0});J3.default=new Uint16Array('\u1D41<\xD5\u0131\u028A\u049D\u057B\u05D0\u0675\u06DE\u07A2\u07D6\u080F\u0A4A\u0A91\u0DA1\u0E6D\u0F09\u0F26\u10CA\u1228\u12E1\u1415\u149D\u14C3\u14DF\u1525\0\0\0\0\0\0\u156B\u16CD\u198D\u1C12\u1DDD\u1F7E\u2060\u21B0\u228D\u23C0\u23FB\u2442\u2824\u2912\u2D08\u2E48\u2FCE\u3016\u32BA\u3639\u37AC\u38FE\u3A28\u3A71\u3AE0\u3B2E\u0800EMabcfglmnoprstu\\bfms\x7F\x84\x8B\x90\x95\x98\xA6\xB3\xB9\xC8\xCFlig\u803B\xC6\u40C6P\u803B&\u4026cute\u803B\xC1\u40C1reve;\u4102\u0100iyx}rc\u803B\xC2\u40C2;\u4410r;\uC000\uD835\uDD04rave\u803B\xC0\u40C0pha;\u4391acr;\u4100d;\u6A53\u0100gp\x9D\xA1on;\u4104f;\uC000\uD835\uDD38plyFunction;\u6061ing\u803B\xC5\u40C5\u0100cs\xBE\xC3r;\uC000\uD835\uDC9Cign;\u6254ilde\u803B\xC3\u40C3ml\u803B\xC4\u40C4\u0400aceforsu\xE5\xFB\xFE\u0117\u011C\u0122\u0127\u012A\u0100cr\xEA\xF2kslash;\u6216\u0176\xF6\xF8;\u6AE7ed;\u6306y;\u4411\u0180crt\u0105\u010B\u0114ause;\u6235noullis;\u612Ca;\u4392r;\uC000\uD835\uDD05pf;\uC000\uD835\uDD39eve;\u42D8c\xF2\u0113mpeq;\u624E\u0700HOacdefhilorsu\u014D\u0151\u0156\u0180\u019E\u01A2\u01B5\u01B7\u01BA\u01DC\u0215\u0273\u0278\u027Ecy;\u4427PY\u803B\xA9\u40A9\u0180cpy\u015D\u0162\u017Aute;\u4106\u0100;i\u0167\u0168\u62D2talDifferentialD;\u6145leys;\u612D\u0200aeio\u0189\u018E\u0194\u0198ron;\u410Cdil\u803B\xC7\u40C7rc;\u4108nint;\u6230ot;\u410A\u0100dn\u01A7\u01ADilla;\u40B8terDot;\u40B7\xF2\u017Fi;\u43A7rcle\u0200DMPT\u01C7\u01CB\u01D1\u01D6ot;\u6299inus;\u6296lus;\u6295imes;\u6297o\u0100cs\u01E2\u01F8kwiseContourIntegral;\u6232eCurly\u0100DQ\u0203\u020FoubleQuote;\u601Duote;\u6019\u0200lnpu\u021E\u0228\u0247\u0255on\u0100;e\u0225\u0226\u6237;\u6A74\u0180git\u022F\u0236\u023Aruent;\u6261nt;\u622FourIntegral;\u622E\u0100fr\u024C\u024E;\u6102oduct;\u6210nterClockwiseContourIntegral;\u6233oss;\u6A2Fcr;\uC000\uD835\uDC9Ep\u0100;C\u0284\u0285\u62D3ap;\u624D\u0580DJSZacefios\u02A0\u02AC\u02B0\u02B4\u02B8\u02CB\u02D7\u02E1\u02E6\u0333\u048D\u0100;o\u0179\u02A5trahd;\u6911cy;\u4402cy;\u4405cy;\u440F\u0180grs\u02BF\u02C4\u02C7ger;\u6021r;\u61A1hv;\u6AE4\u0100ay\u02D0\u02D5ron;\u410E;\u4414l\u0100;t\u02DD\u02DE\u6207a;\u4394r;\uC000\uD835\uDD07\u0100af\u02EB\u0327\u0100cm\u02F0\u0322ritical\u0200ADGT\u0300\u0306\u0316\u031Ccute;\u40B4o\u0174\u030B\u030D;\u42D9bleAcute;\u42DDrave;\u4060ilde;\u42DCond;\u62C4ferentialD;\u6146\u0470\u033D\0\0\0\u0342\u0354\0\u0405f;\uC000\uD835\uDD3B\u0180;DE\u0348\u0349\u034D\u40A8ot;\u60DCqual;\u6250ble\u0300CDLRUV\u0363\u0372\u0382\u03CF\u03E2\u03F8ontourIntegra\xEC\u0239o\u0274\u0379\0\0\u037B\xBB\u0349nArrow;\u61D3\u0100eo\u0387\u03A4ft\u0180ART\u0390\u0396\u03A1rrow;\u61D0ightArrow;\u61D4e\xE5\u02CAng\u0100LR\u03AB\u03C4eft\u0100AR\u03B3\u03B9rrow;\u67F8ightArrow;\u67FAightArrow;\u67F9ight\u0100AT\u03D8\u03DErrow;\u61D2ee;\u62A8p\u0241\u03E9\0\0\u03EFrrow;\u61D1ownArrow;\u61D5erticalBar;\u6225n\u0300ABLRTa\u0412\u042A\u0430\u045E\u047F\u037Crrow\u0180;BU\u041D\u041E\u0422\u6193ar;\u6913pArrow;\u61F5reve;\u4311eft\u02D2\u043A\0\u0446\0\u0450ightVector;\u6950eeVector;\u695Eector\u0100;B\u0459\u045A\u61BDar;\u6956ight\u01D4\u0467\0\u0471eeVector;\u695Fector\u0100;B\u047A\u047B\u61C1ar;\u6957ee\u0100;A\u0486\u0487\u62A4rrow;\u61A7\u0100ct\u0492\u0497r;\uC000\uD835\uDC9Frok;\u4110\u0800NTacdfglmopqstux\u04BD\u04C0\u04C4\u04CB\u04DE\u04E2\u04E7\u04EE\u04F5\u0521\u052F\u0536\u0552\u055D\u0560\u0565G;\u414AH\u803B\xD0\u40D0cute\u803B\xC9\u40C9\u0180aiy\u04D2\u04D7\u04DCron;\u411Arc\u803B\xCA\u40CA;\u442Dot;\u4116r;\uC000\uD835\uDD08rave\u803B\xC8\u40C8ement;\u6208\u0100ap\u04FA\u04FEcr;\u4112ty\u0253\u0506\0\0\u0512mallSquare;\u65FBerySmallSquare;\u65AB\u0100gp\u0526\u052Aon;\u4118f;\uC000\uD835\uDD3Csilon;\u4395u\u0100ai\u053C\u0549l\u0100;T\u0542\u0543\u6A75ilde;\u6242librium;\u61CC\u0100ci\u0557\u055Ar;\u6130m;\u6A73a;\u4397ml\u803B\xCB\u40CB\u0100ip\u056A\u056Fsts;\u6203onentialE;\u6147\u0280cfios\u0585\u0588\u058D\u05B2\u05CCy;\u4424r;\uC000\uD835\uDD09lled\u0253\u0597\0\0\u05A3mallSquare;\u65FCerySmallSquare;\u65AA\u0370\u05BA\0\u05BF\0\0\u05C4f;\uC000\uD835\uDD3DAll;\u6200riertrf;\u6131c\xF2\u05CB\u0600JTabcdfgorst\u05E8\u05EC\u05EF\u05FA\u0600\u0612\u0616\u061B\u061D\u0623\u066C\u0672cy;\u4403\u803B>\u403Emma\u0100;d\u05F7\u05F8\u4393;\u43DCreve;\u411E\u0180eiy\u0607\u060C\u0610dil;\u4122rc;\u411C;\u4413ot;\u4120r;\uC000\uD835\uDD0A;\u62D9pf;\uC000\uD835\uDD3Eeater\u0300EFGLST\u0635\u0644\u064E\u0656\u065B\u0666qual\u0100;L\u063E\u063F\u6265ess;\u62DBullEqual;\u6267reater;\u6AA2ess;\u6277lantEqual;\u6A7Eilde;\u6273cr;\uC000\uD835\uDCA2;\u626B\u0400Aacfiosu\u0685\u068B\u0696\u069B\u069E\u06AA\u06BE\u06CARDcy;\u442A\u0100ct\u0690\u0694ek;\u42C7;\u405Eirc;\u4124r;\u610ClbertSpace;\u610B\u01F0\u06AF\0\u06B2f;\u610DizontalLine;\u6500\u0100ct\u06C3\u06C5\xF2\u06A9rok;\u4126mp\u0144\u06D0\u06D8ownHum\xF0\u012Fqual;\u624F\u0700EJOacdfgmnostu\u06FA\u06FE\u0703\u0707\u070E\u071A\u071E\u0721\u0728\u0744\u0778\u078B\u078F\u0795cy;\u4415lig;\u4132cy;\u4401cute\u803B\xCD\u40CD\u0100iy\u0713\u0718rc\u803B\xCE\u40CE;\u4418ot;\u4130r;\u6111rave\u803B\xCC\u40CC\u0180;ap\u0720\u072F\u073F\u0100cg\u0734\u0737r;\u412AinaryI;\u6148lie\xF3\u03DD\u01F4\u0749\0\u0762\u0100;e\u074D\u074E\u622C\u0100gr\u0753\u0758ral;\u622Bsection;\u62C2isible\u0100CT\u076C\u0772omma;\u6063imes;\u6062\u0180gpt\u077F\u0783\u0788on;\u412Ef;\uC000\uD835\uDD40a;\u4399cr;\u6110ilde;\u4128\u01EB\u079A\0\u079Ecy;\u4406l\u803B\xCF\u40CF\u0280cfosu\u07AC\u07B7\u07BC\u07C2\u07D0\u0100iy\u07B1\u07B5rc;\u4134;\u4419r;\uC000\uD835\uDD0Dpf;\uC000\uD835\uDD41\u01E3\u07C7\0\u07CCr;\uC000\uD835\uDCA5rcy;\u4408kcy;\u4404\u0380HJacfos\u07E4\u07E8\u07EC\u07F1\u07FD\u0802\u0808cy;\u4425cy;\u440Cppa;\u439A\u0100ey\u07F6\u07FBdil;\u4136;\u441Ar;\uC000\uD835\uDD0Epf;\uC000\uD835\uDD42cr;\uC000\uD835\uDCA6\u0580JTaceflmost\u0825\u0829\u082C\u0850\u0863\u09B3\u09B8\u09C7\u09CD\u0A37\u0A47cy;\u4409\u803B<\u403C\u0280cmnpr\u0837\u083C\u0841\u0844\u084Dute;\u4139bda;\u439Bg;\u67EAlacetrf;\u6112r;\u619E\u0180aey\u0857\u085C\u0861ron;\u413Ddil;\u413B;\u441B\u0100fs\u0868\u0970t\u0500ACDFRTUVar\u087E\u08A9\u08B1\u08E0\u08E6\u08FC\u092F\u095B\u0390\u096A\u0100nr\u0883\u088FgleBracket;\u67E8row\u0180;BR\u0899\u089A\u089E\u6190ar;\u61E4ightArrow;\u61C6eiling;\u6308o\u01F5\u08B7\0\u08C3bleBracket;\u67E6n\u01D4\u08C8\0\u08D2eeVector;\u6961ector\u0100;B\u08DB\u08DC\u61C3ar;\u6959loor;\u630Aight\u0100AV\u08EF\u08F5rrow;\u6194ector;\u694E\u0100er\u0901\u0917e\u0180;AV\u0909\u090A\u0910\u62A3rrow;\u61A4ector;\u695Aiangle\u0180;BE\u0924\u0925\u0929\u62B2ar;\u69CFqual;\u62B4p\u0180DTV\u0937\u0942\u094CownVector;\u6951eeVector;\u6960ector\u0100;B\u0956\u0957\u61BFar;\u6958ector\u0100;B\u0965\u0966\u61BCar;\u6952ight\xE1\u039Cs\u0300EFGLST\u097E\u098B\u0995\u099D\u09A2\u09ADqualGreater;\u62DAullEqual;\u6266reater;\u6276ess;\u6AA1lantEqual;\u6A7Dilde;\u6272r;\uC000\uD835\uDD0F\u0100;e\u09BD\u09BE\u62D8ftarrow;\u61DAidot;\u413F\u0180npw\u09D4\u0A16\u0A1Bg\u0200LRlr\u09DE\u09F7\u0A02\u0A10eft\u0100AR\u09E6\u09ECrrow;\u67F5ightArrow;\u67F7ightArrow;\u67F6eft\u0100ar\u03B3\u0A0Aight\xE1\u03BFight\xE1\u03CAf;\uC000\uD835\uDD43er\u0100LR\u0A22\u0A2CeftArrow;\u6199ightArrow;\u6198\u0180cht\u0A3E\u0A40\u0A42\xF2\u084C;\u61B0rok;\u4141;\u626A\u0400acefiosu\u0A5A\u0A5D\u0A60\u0A77\u0A7C\u0A85\u0A8B\u0A8Ep;\u6905y;\u441C\u0100dl\u0A65\u0A6FiumSpace;\u605Flintrf;\u6133r;\uC000\uD835\uDD10nusPlus;\u6213pf;\uC000\uD835\uDD44c\xF2\u0A76;\u439C\u0480Jacefostu\u0AA3\u0AA7\u0AAD\u0AC0\u0B14\u0B19\u0D91\u0D97\u0D9Ecy;\u440Acute;\u4143\u0180aey\u0AB4\u0AB9\u0ABEron;\u4147dil;\u4145;\u441D\u0180gsw\u0AC7\u0AF0\u0B0Eative\u0180MTV\u0AD3\u0ADF\u0AE8ediumSpace;\u600Bhi\u0100cn\u0AE6\u0AD8\xEB\u0AD9eryThi\xEE\u0AD9ted\u0100GL\u0AF8\u0B06reaterGreate\xF2\u0673essLes\xF3\u0A48Line;\u400Ar;\uC000\uD835\uDD11\u0200Bnpt\u0B22\u0B28\u0B37\u0B3Areak;\u6060BreakingSpace;\u40A0f;\u6115\u0680;CDEGHLNPRSTV\u0B55\u0B56\u0B6A\u0B7C\u0BA1\u0BEB\u0C04\u0C5E\u0C84\u0CA6\u0CD8\u0D61\u0D85\u6AEC\u0100ou\u0B5B\u0B64ngruent;\u6262pCap;\u626DoubleVerticalBar;\u6226\u0180lqx\u0B83\u0B8A\u0B9Bement;\u6209ual\u0100;T\u0B92\u0B93\u6260ilde;\uC000\u2242\u0338ists;\u6204reater\u0380;EFGLST\u0BB6\u0BB7\u0BBD\u0BC9\u0BD3\u0BD8\u0BE5\u626Fqual;\u6271ullEqual;\uC000\u2267\u0338reater;\uC000\u226B\u0338ess;\u6279lantEqual;\uC000\u2A7E\u0338ilde;\u6275ump\u0144\u0BF2\u0BFDownHump;\uC000\u224E\u0338qual;\uC000\u224F\u0338e\u0100fs\u0C0A\u0C27tTriangle\u0180;BE\u0C1A\u0C1B\u0C21\u62EAar;\uC000\u29CF\u0338qual;\u62ECs\u0300;EGLST\u0C35\u0C36\u0C3C\u0C44\u0C4B\u0C58\u626Equal;\u6270reater;\u6278ess;\uC000\u226A\u0338lantEqual;\uC000\u2A7D\u0338ilde;\u6274ested\u0100GL\u0C68\u0C79reaterGreater;\uC000\u2AA2\u0338essLess;\uC000\u2AA1\u0338recedes\u0180;ES\u0C92\u0C93\u0C9B\u6280qual;\uC000\u2AAF\u0338lantEqual;\u62E0\u0100ei\u0CAB\u0CB9verseElement;\u620CghtTriangle\u0180;BE\u0CCB\u0CCC\u0CD2\u62EBar;\uC000\u29D0\u0338qual;\u62ED\u0100qu\u0CDD\u0D0CuareSu\u0100bp\u0CE8\u0CF9set\u0100;E\u0CF0\u0CF3\uC000\u228F\u0338qual;\u62E2erset\u0100;E\u0D03\u0D06\uC000\u2290\u0338qual;\u62E3\u0180bcp\u0D13\u0D24\u0D4Eset\u0100;E\u0D1B\u0D1E\uC000\u2282\u20D2qual;\u6288ceeds\u0200;EST\u0D32\u0D33\u0D3B\u0D46\u6281qual;\uC000\u2AB0\u0338lantEqual;\u62E1ilde;\uC000\u227F\u0338erset\u0100;E\u0D58\u0D5B\uC000\u2283\u20D2qual;\u6289ilde\u0200;EFT\u0D6E\u0D6F\u0D75\u0D7F\u6241qual;\u6244ullEqual;\u6247ilde;\u6249erticalBar;\u6224cr;\uC000\uD835\uDCA9ilde\u803B\xD1\u40D1;\u439D\u0700Eacdfgmoprstuv\u0DBD\u0DC2\u0DC9\u0DD5\u0DDB\u0DE0\u0DE7\u0DFC\u0E02\u0E20\u0E22\u0E32\u0E3F\u0E44lig;\u4152cute\u803B\xD3\u40D3\u0100iy\u0DCE\u0DD3rc\u803B\xD4\u40D4;\u441Eblac;\u4150r;\uC000\uD835\uDD12rave\u803B\xD2\u40D2\u0180aei\u0DEE\u0DF2\u0DF6cr;\u414Cga;\u43A9cron;\u439Fpf;\uC000\uD835\uDD46enCurly\u0100DQ\u0E0E\u0E1AoubleQuote;\u601Cuote;\u6018;\u6A54\u0100cl\u0E27\u0E2Cr;\uC000\uD835\uDCAAash\u803B\xD8\u40D8i\u016C\u0E37\u0E3Cde\u803B\xD5\u40D5es;\u6A37ml\u803B\xD6\u40D6er\u0100BP\u0E4B\u0E60\u0100ar\u0E50\u0E53r;\u603Eac\u0100ek\u0E5A\u0E5C;\u63DEet;\u63B4arenthesis;\u63DC\u0480acfhilors\u0E7F\u0E87\u0E8A\u0E8F\u0E92\u0E94\u0E9D\u0EB0\u0EFCrtialD;\u6202y;\u441Fr;\uC000\uD835\uDD13i;\u43A6;\u43A0usMinus;\u40B1\u0100ip\u0EA2\u0EADncareplan\xE5\u069Df;\u6119\u0200;eio\u0EB9\u0EBA\u0EE0\u0EE4\u6ABBcedes\u0200;EST\u0EC8\u0EC9\u0ECF\u0EDA\u627Aqual;\u6AAFlantEqual;\u627Cilde;\u627Eme;\u6033\u0100dp\u0EE9\u0EEEuct;\u620Fortion\u0100;a\u0225\u0EF9l;\u621D\u0100ci\u0F01\u0F06r;\uC000\uD835\uDCAB;\u43A8\u0200Ufos\u0F11\u0F16\u0F1B\u0F1FOT\u803B"\u4022r;\uC000\uD835\uDD14pf;\u611Acr;\uC000\uD835\uDCAC\u0600BEacefhiorsu\u0F3E\u0F43\u0F47\u0F60\u0F73\u0FA7\u0FAA\u0FAD\u1096\u10A9\u10B4\u10BEarr;\u6910G\u803B\xAE\u40AE\u0180cnr\u0F4E\u0F53\u0F56ute;\u4154g;\u67EBr\u0100;t\u0F5C\u0F5D\u61A0l;\u6916\u0180aey\u0F67\u0F6C\u0F71ron;\u4158dil;\u4156;\u4420\u0100;v\u0F78\u0F79\u611Cerse\u0100EU\u0F82\u0F99\u0100lq\u0F87\u0F8Eement;\u620Builibrium;\u61CBpEquilibrium;\u696Fr\xBB\u0F79o;\u43A1ght\u0400ACDFTUVa\u0FC1\u0FEB\u0FF3\u1022\u1028\u105B\u1087\u03D8\u0100nr\u0FC6\u0FD2gleBracket;\u67E9row\u0180;BL\u0FDC\u0FDD\u0FE1\u6192ar;\u61E5eftArrow;\u61C4eiling;\u6309o\u01F5\u0FF9\0\u1005bleBracket;\u67E7n\u01D4\u100A\0\u1014eeVector;\u695Dector\u0100;B\u101D\u101E\u61C2ar;\u6955loor;\u630B\u0100er\u102D\u1043e\u0180;AV\u1035\u1036\u103C\u62A2rrow;\u61A6ector;\u695Biangle\u0180;BE\u1050\u1051\u1055\u62B3ar;\u69D0qual;\u62B5p\u0180DTV\u1063\u106E\u1078ownVector;\u694FeeVector;\u695Cector\u0100;B\u1082\u1083\u61BEar;\u6954ector\u0100;B\u1091\u1092\u61C0ar;\u6953\u0100pu\u109B\u109Ef;\u611DndImplies;\u6970ightarrow;\u61DB\u0100ch\u10B9\u10BCr;\u611B;\u61B1leDelayed;\u69F4\u0680HOacfhimoqstu\u10E4\u10F1\u10F7\u10FD\u1119\u111E\u1151\u1156\u1161\u1167\u11B5\u11BB\u11BF\u0100Cc\u10E9\u10EEHcy;\u4429y;\u4428FTcy;\u442Ccute;\u415A\u0280;aeiy\u1108\u1109\u110E\u1113\u1117\u6ABCron;\u4160dil;\u415Erc;\u415C;\u4421r;\uC000\uD835\uDD16ort\u0200DLRU\u112A\u1134\u113E\u1149ownArrow\xBB\u041EeftArrow\xBB\u089AightArrow\xBB\u0FDDpArrow;\u6191gma;\u43A3allCircle;\u6218pf;\uC000\uD835\uDD4A\u0272\u116D\0\0\u1170t;\u621Aare\u0200;ISU\u117B\u117C\u1189\u11AF\u65A1ntersection;\u6293u\u0100bp\u118F\u119Eset\u0100;E\u1197\u1198\u628Fqual;\u6291erset\u0100;E\u11A8\u11A9\u6290qual;\u6292nion;\u6294cr;\uC000\uD835\uDCAEar;\u62C6\u0200bcmp\u11C8\u11DB\u1209\u120B\u0100;s\u11CD\u11CE\u62D0et\u0100;E\u11CD\u11D5qual;\u6286\u0100ch\u11E0\u1205eeds\u0200;EST\u11ED\u11EE\u11F4\u11FF\u627Bqual;\u6AB0lantEqual;\u627Dilde;\u627FTh\xE1\u0F8C;\u6211\u0180;es\u1212\u1213\u1223\u62D1rset\u0100;E\u121C\u121D\u6283qual;\u6287et\xBB\u1213\u0580HRSacfhiors\u123E\u1244\u1249\u1255\u125E\u1271\u1276\u129F\u12C2\u12C8\u12D1ORN\u803B\xDE\u40DEADE;\u6122\u0100Hc\u124E\u1252cy;\u440By;\u4426\u0100bu\u125A\u125C;\u4009;\u43A4\u0180aey\u1265\u126A\u126Fron;\u4164dil;\u4162;\u4422r;\uC000\uD835\uDD17\u0100ei\u127B\u1289\u01F2\u1280\0\u1287efore;\u6234a;\u4398\u0100cn\u128E\u1298kSpace;\uC000\u205F\u200ASpace;\u6009lde\u0200;EFT\u12AB\u12AC\u12B2\u12BC\u623Cqual;\u6243ullEqual;\u6245ilde;\u6248pf;\uC000\uD835\uDD4BipleDot;\u60DB\u0100ct\u12D6\u12DBr;\uC000\uD835\uDCAFrok;\u4166\u0AE1\u12F7\u130E\u131A\u1326\0\u132C\u1331\0\0\0\0\0\u1338\u133D\u1377\u1385\0\u13FF\u1404\u140A\u1410\u0100cr\u12FB\u1301ute\u803B\xDA\u40DAr\u0100;o\u1307\u1308\u619Fcir;\u6949r\u01E3\u1313\0\u1316y;\u440Eve;\u416C\u0100iy\u131E\u1323rc\u803B\xDB\u40DB;\u4423blac;\u4170r;\uC000\uD835\uDD18rave\u803B\xD9\u40D9acr;\u416A\u0100di\u1341\u1369er\u0100BP\u1348\u135D\u0100ar\u134D\u1350r;\u405Fac\u0100ek\u1357\u1359;\u63DFet;\u63B5arenthesis;\u63DDon\u0100;P\u1370\u1371\u62C3lus;\u628E\u0100gp\u137B\u137Fon;\u4172f;\uC000\uD835\uDD4C\u0400ADETadps\u1395\u13AE\u13B8\u13C4\u03E8\u13D2\u13D7\u13F3rrow\u0180;BD\u1150\u13A0\u13A4ar;\u6912ownArrow;\u61C5ownArrow;\u6195quilibrium;\u696Eee\u0100;A\u13CB\u13CC\u62A5rrow;\u61A5own\xE1\u03F3er\u0100LR\u13DE\u13E8eftArrow;\u6196ightArrow;\u6197i\u0100;l\u13F9\u13FA\u43D2on;\u43A5ing;\u416Ecr;\uC000\uD835\uDCB0ilde;\u4168ml\u803B\xDC\u40DC\u0480Dbcdefosv\u1427\u142C\u1430\u1433\u143E\u1485\u148A\u1490\u1496ash;\u62ABar;\u6AEBy;\u4412ash\u0100;l\u143B\u143C\u62A9;\u6AE6\u0100er\u1443\u1445;\u62C1\u0180bty\u144C\u1450\u147Aar;\u6016\u0100;i\u144F\u1455cal\u0200BLST\u1461\u1465\u146A\u1474ar;\u6223ine;\u407Ceparator;\u6758ilde;\u6240ThinSpace;\u600Ar;\uC000\uD835\uDD19pf;\uC000\uD835\uDD4Dcr;\uC000\uD835\uDCB1dash;\u62AA\u0280cefos\u14A7\u14AC\u14B1\u14B6\u14BCirc;\u4174dge;\u62C0r;\uC000\uD835\uDD1Apf;\uC000\uD835\uDD4Ecr;\uC000\uD835\uDCB2\u0200fios\u14CB\u14D0\u14D2\u14D8r;\uC000\uD835\uDD1B;\u439Epf;\uC000\uD835\uDD4Fcr;\uC000\uD835\uDCB3\u0480AIUacfosu\u14F1\u14F5\u14F9\u14FD\u1504\u150F\u1514\u151A\u1520cy;\u442Fcy;\u4407cy;\u442Ecute\u803B\xDD\u40DD\u0100iy\u1509\u150Drc;\u4176;\u442Br;\uC000\uD835\uDD1Cpf;\uC000\uD835\uDD50cr;\uC000\uD835\uDCB4ml;\u4178\u0400Hacdefos\u1535\u1539\u153F\u154B\u154F\u155D\u1560\u1564cy;\u4416cute;\u4179\u0100ay\u1544\u1549ron;\u417D;\u4417ot;\u417B\u01F2\u1554\0\u155BoWidt\xE8\u0AD9a;\u4396r;\u6128pf;\u6124cr;\uC000\uD835\uDCB5\u0BE1\u1583\u158A\u1590\0\u15B0\u15B6\u15BF\0\0\0\0\u15C6\u15DB\u15EB\u165F\u166D\0\u1695\u169B\u16B2\u16B9\0\u16BEcute\u803B\xE1\u40E1reve;\u4103\u0300;Ediuy\u159C\u159D\u15A1\u15A3\u15A8\u15AD\u623E;\uC000\u223E\u0333;\u623Frc\u803B\xE2\u40E2te\u80BB\xB4\u0306;\u4430lig\u803B\xE6\u40E6\u0100;r\xB2\u15BA;\uC000\uD835\uDD1Erave\u803B\xE0\u40E0\u0100ep\u15CA\u15D6\u0100fp\u15CF\u15D4sym;\u6135\xE8\u15D3ha;\u43B1\u0100ap\u15DFc\u0100cl\u15E4\u15E7r;\u4101g;\u6A3F\u0264\u15F0\0\0\u160A\u0280;adsv\u15FA\u15FB\u15FF\u1601\u1607\u6227nd;\u6A55;\u6A5Clope;\u6A58;\u6A5A\u0380;elmrsz\u1618\u1619\u161B\u161E\u163F\u164F\u1659\u6220;\u69A4e\xBB\u1619sd\u0100;a\u1625\u1626\u6221\u0461\u1630\u1632\u1634\u1636\u1638\u163A\u163C\u163E;\u69A8;\u69A9;\u69AA;\u69AB;\u69AC;\u69AD;\u69AE;\u69AFt\u0100;v\u1645\u1646\u621Fb\u0100;d\u164C\u164D\u62BE;\u699D\u0100pt\u1654\u1657h;\u6222\xBB\xB9arr;\u637C\u0100gp\u1663\u1667on;\u4105f;\uC000\uD835\uDD52\u0380;Eaeiop\u12C1\u167B\u167D\u1682\u1684\u1687\u168A;\u6A70cir;\u6A6F;\u624Ad;\u624Bs;\u4027rox\u0100;e\u12C1\u1692\xF1\u1683ing\u803B\xE5\u40E5\u0180cty\u16A1\u16A6\u16A8r;\uC000\uD835\uDCB6;\u402Amp\u0100;e\u12C1\u16AF\xF1\u0288ilde\u803B\xE3\u40E3ml\u803B\xE4\u40E4\u0100ci\u16C2\u16C8onin\xF4\u0272nt;\u6A11\u0800Nabcdefiklnoprsu\u16ED\u16F1\u1730\u173C\u1743\u1748\u1778\u177D\u17E0\u17E6\u1839\u1850\u170D\u193D\u1948\u1970ot;\u6AED\u0100cr\u16F6\u171Ek\u0200ceps\u1700\u1705\u170D\u1713ong;\u624Cpsilon;\u43F6rime;\u6035im\u0100;e\u171A\u171B\u623Dq;\u62CD\u0176\u1722\u1726ee;\u62BDed\u0100;g\u172C\u172D\u6305e\xBB\u172Drk\u0100;t\u135C\u1737brk;\u63B6\u0100oy\u1701\u1741;\u4431quo;\u601E\u0280cmprt\u1753\u175B\u1761\u1764\u1768aus\u0100;e\u010A\u0109ptyv;\u69B0s\xE9\u170Cno\xF5\u0113\u0180ahw\u176F\u1771\u1773;\u43B2;\u6136een;\u626Cr;\uC000\uD835\uDD1Fg\u0380costuvw\u178D\u179D\u17B3\u17C1\u17D5\u17DB\u17DE\u0180aiu\u1794\u1796\u179A\xF0\u0760rc;\u65EFp\xBB\u1371\u0180dpt\u17A4\u17A8\u17ADot;\u6A00lus;\u6A01imes;\u6A02\u0271\u17B9\0\0\u17BEcup;\u6A06ar;\u6605riangle\u0100du\u17CD\u17D2own;\u65BDp;\u65B3plus;\u6A04e\xE5\u1444\xE5\u14ADarow;\u690D\u0180ako\u17ED\u1826\u1835\u0100cn\u17F2\u1823k\u0180lst\u17FA\u05AB\u1802ozenge;\u69EBriangle\u0200;dlr\u1812\u1813\u1818\u181D\u65B4own;\u65BEeft;\u65C2ight;\u65B8k;\u6423\u01B1\u182B\0\u1833\u01B2\u182F\0\u1831;\u6592;\u65914;\u6593ck;\u6588\u0100eo\u183E\u184D\u0100;q\u1843\u1846\uC000=\u20E5uiv;\uC000\u2261\u20E5t;\u6310\u0200ptwx\u1859\u185E\u1867\u186Cf;\uC000\uD835\uDD53\u0100;t\u13CB\u1863om\xBB\u13CCtie;\u62C8\u0600DHUVbdhmptuv\u1885\u1896\u18AA\u18BB\u18D7\u18DB\u18EC\u18FF\u1905\u190A\u1910\u1921\u0200LRlr\u188E\u1890\u1892\u1894;\u6557;\u6554;\u6556;\u6553\u0280;DUdu\u18A1\u18A2\u18A4\u18A6\u18A8\u6550;\u6566;\u6569;\u6564;\u6567\u0200LRlr\u18B3\u18B5\u18B7\u18B9;\u655D;\u655A;\u655C;\u6559\u0380;HLRhlr\u18CA\u18CB\u18CD\u18CF\u18D1\u18D3\u18D5\u6551;\u656C;\u6563;\u6560;\u656B;\u6562;\u655Fox;\u69C9\u0200LRlr\u18E4\u18E6\u18E8\u18EA;\u6555;\u6552;\u6510;\u650C\u0280;DUdu\u06BD\u18F7\u18F9\u18FB\u18FD;\u6565;\u6568;\u652C;\u6534inus;\u629Flus;\u629Eimes;\u62A0\u0200LRlr\u1919\u191B\u191D\u191F;\u655B;\u6558;\u6518;\u6514\u0380;HLRhlr\u1930\u1931\u1933\u1935\u1937\u1939\u193B\u6502;\u656A;\u6561;\u655E;\u653C;\u6524;\u651C\u0100ev\u0123\u1942bar\u803B\xA6\u40A6\u0200ceio\u1951\u1956\u195A\u1960r;\uC000\uD835\uDCB7mi;\u604Fm\u0100;e\u171A\u171Cl\u0180;bh\u1968\u1969\u196B\u405C;\u69C5sub;\u67C8\u016C\u1974\u197El\u0100;e\u1979\u197A\u6022t\xBB\u197Ap\u0180;Ee\u012F\u1985\u1987;\u6AAE\u0100;q\u06DC\u06DB\u0CE1\u19A7\0\u19E8\u1A11\u1A15\u1A32\0\u1A37\u1A50\0\0\u1AB4\0\0\u1AC1\0\0\u1B21\u1B2E\u1B4D\u1B52\0\u1BFD\0\u1C0C\u0180cpr\u19AD\u19B2\u19DDute;\u4107\u0300;abcds\u19BF\u19C0\u19C4\u19CA\u19D5\u19D9\u6229nd;\u6A44rcup;\u6A49\u0100au\u19CF\u19D2p;\u6A4Bp;\u6A47ot;\u6A40;\uC000\u2229\uFE00\u0100eo\u19E2\u19E5t;\u6041\xEE\u0693\u0200aeiu\u19F0\u19FB\u1A01\u1A05\u01F0\u19F5\0\u19F8s;\u6A4Don;\u410Ddil\u803B\xE7\u40E7rc;\u4109ps\u0100;s\u1A0C\u1A0D\u6A4Cm;\u6A50ot;\u410B\u0180dmn\u1A1B\u1A20\u1A26il\u80BB\xB8\u01ADptyv;\u69B2t\u8100\xA2;e\u1A2D\u1A2E\u40A2r\xE4\u01B2r;\uC000\uD835\uDD20\u0180cei\u1A3D\u1A40\u1A4Dy;\u4447ck\u0100;m\u1A47\u1A48\u6713ark\xBB\u1A48;\u43C7r\u0380;Ecefms\u1A5F\u1A60\u1A62\u1A6B\u1AA4\u1AAA\u1AAE\u65CB;\u69C3\u0180;el\u1A69\u1A6A\u1A6D\u42C6q;\u6257e\u0261\u1A74\0\0\u1A88rrow\u0100lr\u1A7C\u1A81eft;\u61BAight;\u61BB\u0280RSacd\u1A92\u1A94\u1A96\u1A9A\u1A9F\xBB\u0F47;\u64C8st;\u629Birc;\u629Aash;\u629Dnint;\u6A10id;\u6AEFcir;\u69C2ubs\u0100;u\u1ABB\u1ABC\u6663it\xBB\u1ABC\u02EC\u1AC7\u1AD4\u1AFA\0\u1B0Aon\u0100;e\u1ACD\u1ACE\u403A\u0100;q\xC7\xC6\u026D\u1AD9\0\0\u1AE2a\u0100;t\u1ADE\u1ADF\u402C;\u4040\u0180;fl\u1AE8\u1AE9\u1AEB\u6201\xEE\u1160e\u0100mx\u1AF1\u1AF6ent\xBB\u1AE9e\xF3\u024D\u01E7\u1AFE\0\u1B07\u0100;d\u12BB\u1B02ot;\u6A6Dn\xF4\u0246\u0180fry\u1B10\u1B14\u1B17;\uC000\uD835\uDD54o\xE4\u0254\u8100\xA9;s\u0155\u1B1Dr;\u6117\u0100ao\u1B25\u1B29rr;\u61B5ss;\u6717\u0100cu\u1B32\u1B37r;\uC000\uD835\uDCB8\u0100bp\u1B3C\u1B44\u0100;e\u1B41\u1B42\u6ACF;\u6AD1\u0100;e\u1B49\u1B4A\u6AD0;\u6AD2dot;\u62EF\u0380delprvw\u1B60\u1B6C\u1B77\u1B82\u1BAC\u1BD4\u1BF9arr\u0100lr\u1B68\u1B6A;\u6938;\u6935\u0270\u1B72\0\0\u1B75r;\u62DEc;\u62DFarr\u0100;p\u1B7F\u1B80\u61B6;\u693D\u0300;bcdos\u1B8F\u1B90\u1B96\u1BA1\u1BA5\u1BA8\u622Arcap;\u6A48\u0100au\u1B9B\u1B9Ep;\u6A46p;\u6A4Aot;\u628Dr;\u6A45;\uC000\u222A\uFE00\u0200alrv\u1BB5\u1BBF\u1BDE\u1BE3rr\u0100;m\u1BBC\u1BBD\u61B7;\u693Cy\u0180evw\u1BC7\u1BD4\u1BD8q\u0270\u1BCE\0\0\u1BD2re\xE3\u1B73u\xE3\u1B75ee;\u62CEedge;\u62CFen\u803B\xA4\u40A4earrow\u0100lr\u1BEE\u1BF3eft\xBB\u1B80ight\xBB\u1BBDe\xE4\u1BDD\u0100ci\u1C01\u1C07onin\xF4\u01F7nt;\u6231lcty;\u632D\u0980AHabcdefhijlorstuwz\u1C38\u1C3B\u1C3F\u1C5D\u1C69\u1C75\u1C8A\u1C9E\u1CAC\u1CB7\u1CFB\u1CFF\u1D0D\u1D7B\u1D91\u1DAB\u1DBB\u1DC6\u1DCDr\xF2\u0381ar;\u6965\u0200glrs\u1C48\u1C4D\u1C52\u1C54ger;\u6020eth;\u6138\xF2\u1133h\u0100;v\u1C5A\u1C5B\u6010\xBB\u090A\u016B\u1C61\u1C67arow;\u690Fa\xE3\u0315\u0100ay\u1C6E\u1C73ron;\u410F;\u4434\u0180;ao\u0332\u1C7C\u1C84\u0100gr\u02BF\u1C81r;\u61CAtseq;\u6A77\u0180glm\u1C91\u1C94\u1C98\u803B\xB0\u40B0ta;\u43B4ptyv;\u69B1\u0100ir\u1CA3\u1CA8sht;\u697F;\uC000\uD835\uDD21ar\u0100lr\u1CB3\u1CB5\xBB\u08DC\xBB\u101E\u0280aegsv\u1CC2\u0378\u1CD6\u1CDC\u1CE0m\u0180;os\u0326\u1CCA\u1CD4nd\u0100;s\u0326\u1CD1uit;\u6666amma;\u43DDin;\u62F2\u0180;io\u1CE7\u1CE8\u1CF8\u40F7de\u8100\xF7;o\u1CE7\u1CF0ntimes;\u62C7n\xF8\u1CF7cy;\u4452c\u026F\u1D06\0\0\u1D0Arn;\u631Eop;\u630D\u0280lptuw\u1D18\u1D1D\u1D22\u1D49\u1D55lar;\u4024f;\uC000\uD835\uDD55\u0280;emps\u030B\u1D2D\u1D37\u1D3D\u1D42q\u0100;d\u0352\u1D33ot;\u6251inus;\u6238lus;\u6214quare;\u62A1blebarwedg\xE5\xFAn\u0180adh\u112E\u1D5D\u1D67ownarrow\xF3\u1C83arpoon\u0100lr\u1D72\u1D76ef\xF4\u1CB4igh\xF4\u1CB6\u0162\u1D7F\u1D85karo\xF7\u0F42\u026F\u1D8A\0\0\u1D8Ern;\u631Fop;\u630C\u0180cot\u1D98\u1DA3\u1DA6\u0100ry\u1D9D\u1DA1;\uC000\uD835\uDCB9;\u4455l;\u69F6rok;\u4111\u0100dr\u1DB0\u1DB4ot;\u62F1i\u0100;f\u1DBA\u1816\u65BF\u0100ah\u1DC0\u1DC3r\xF2\u0429a\xF2\u0FA6angle;\u69A6\u0100ci\u1DD2\u1DD5y;\u445Fgrarr;\u67FF\u0900Dacdefglmnopqrstux\u1E01\u1E09\u1E19\u1E38\u0578\u1E3C\u1E49\u1E61\u1E7E\u1EA5\u1EAF\u1EBD\u1EE1\u1F2A\u1F37\u1F44\u1F4E\u1F5A\u0100Do\u1E06\u1D34o\xF4\u1C89\u0100cs\u1E0E\u1E14ute\u803B\xE9\u40E9ter;\u6A6E\u0200aioy\u1E22\u1E27\u1E31\u1E36ron;\u411Br\u0100;c\u1E2D\u1E2E\u6256\u803B\xEA\u40EAlon;\u6255;\u444Dot;\u4117\u0100Dr\u1E41\u1E45ot;\u6252;\uC000\uD835\uDD22\u0180;rs\u1E50\u1E51\u1E57\u6A9Aave\u803B\xE8\u40E8\u0100;d\u1E5C\u1E5D\u6A96ot;\u6A98\u0200;ils\u1E6A\u1E6B\u1E72\u1E74\u6A99nters;\u63E7;\u6113\u0100;d\u1E79\u1E7A\u6A95ot;\u6A97\u0180aps\u1E85\u1E89\u1E97cr;\u4113ty\u0180;sv\u1E92\u1E93\u1E95\u6205et\xBB\u1E93p\u01001;\u1E9D\u1EA4\u0133\u1EA1\u1EA3;\u6004;\u6005\u6003\u0100gs\u1EAA\u1EAC;\u414Bp;\u6002\u0100gp\u1EB4\u1EB8on;\u4119f;\uC000\uD835\uDD56\u0180als\u1EC4\u1ECE\u1ED2r\u0100;s\u1ECA\u1ECB\u62D5l;\u69E3us;\u6A71i\u0180;lv\u1EDA\u1EDB\u1EDF\u43B5on\xBB\u1EDB;\u43F5\u0200csuv\u1EEA\u1EF3\u1F0B\u1F23\u0100io\u1EEF\u1E31rc\xBB\u1E2E\u0269\u1EF9\0\0\u1EFB\xED\u0548ant\u0100gl\u1F02\u1F06tr\xBB\u1E5Dess\xBB\u1E7A\u0180aei\u1F12\u1F16\u1F1Als;\u403Dst;\u625Fv\u0100;D\u0235\u1F20D;\u6A78parsl;\u69E5\u0100Da\u1F2F\u1F33ot;\u6253rr;\u6971\u0180cdi\u1F3E\u1F41\u1EF8r;\u612Fo\xF4\u0352\u0100ah\u1F49\u1F4B;\u43B7\u803B\xF0\u40F0\u0100mr\u1F53\u1F57l\u803B\xEB\u40EBo;\u60AC\u0180cip\u1F61\u1F64\u1F67l;\u4021s\xF4\u056E\u0100eo\u1F6C\u1F74ctatio\xEE\u0559nential\xE5\u0579\u09E1\u1F92\0\u1F9E\0\u1FA1\u1FA7\0\0\u1FC6\u1FCC\0\u1FD3\0\u1FE6\u1FEA\u2000\0\u2008\u205Allingdotse\xF1\u1E44y;\u4444male;\u6640\u0180ilr\u1FAD\u1FB3\u1FC1lig;\u8000\uFB03\u0269\u1FB9\0\0\u1FBDg;\u8000\uFB00ig;\u8000\uFB04;\uC000\uD835\uDD23lig;\u8000\uFB01lig;\uC000fj\u0180alt\u1FD9\u1FDC\u1FE1t;\u666Dig;\u8000\uFB02ns;\u65B1of;\u4192\u01F0\u1FEE\0\u1FF3f;\uC000\uD835\uDD57\u0100ak\u05BF\u1FF7\u0100;v\u1FFC\u1FFD\u62D4;\u6AD9artint;\u6A0D\u0100ao\u200C\u2055\u0100cs\u2011\u2052\u03B1\u201A\u2030\u2038\u2045\u2048\0\u2050\u03B2\u2022\u2025\u2027\u202A\u202C\0\u202E\u803B\xBD\u40BD;\u6153\u803B\xBC\u40BC;\u6155;\u6159;\u615B\u01B3\u2034\0\u2036;\u6154;\u6156\u02B4\u203E\u2041\0\0\u2043\u803B\xBE\u40BE;\u6157;\u615C5;\u6158\u01B6\u204C\0\u204E;\u615A;\u615D8;\u615El;\u6044wn;\u6322cr;\uC000\uD835\uDCBB\u0880Eabcdefgijlnorstv\u2082\u2089\u209F\u20A5\u20B0\u20B4\u20F0\u20F5\u20FA\u20FF\u2103\u2112\u2138\u0317\u213E\u2152\u219E\u0100;l\u064D\u2087;\u6A8C\u0180cmp\u2090\u2095\u209Dute;\u41F5ma\u0100;d\u209C\u1CDA\u43B3;\u6A86reve;\u411F\u0100iy\u20AA\u20AErc;\u411D;\u4433ot;\u4121\u0200;lqs\u063E\u0642\u20BD\u20C9\u0180;qs\u063E\u064C\u20C4lan\xF4\u0665\u0200;cdl\u0665\u20D2\u20D5\u20E5c;\u6AA9ot\u0100;o\u20DC\u20DD\u6A80\u0100;l\u20E2\u20E3\u6A82;\u6A84\u0100;e\u20EA\u20ED\uC000\u22DB\uFE00s;\u6A94r;\uC000\uD835\uDD24\u0100;g\u0673\u061Bmel;\u6137cy;\u4453\u0200;Eaj\u065A\u210C\u210E\u2110;\u6A92;\u6AA5;\u6AA4\u0200Eaes\u211B\u211D\u2129\u2134;\u6269p\u0100;p\u2123\u2124\u6A8Arox\xBB\u2124\u0100;q\u212E\u212F\u6A88\u0100;q\u212E\u211Bim;\u62E7pf;\uC000\uD835\uDD58\u0100ci\u2143\u2146r;\u610Am\u0180;el\u066B\u214E\u2150;\u6A8E;\u6A90\u8300>;cdlqr\u05EE\u2160\u216A\u216E\u2173\u2179\u0100ci\u2165\u2167;\u6AA7r;\u6A7Aot;\u62D7Par;\u6995uest;\u6A7C\u0280adels\u2184\u216A\u2190\u0656\u219B\u01F0\u2189\0\u218Epro\xF8\u209Er;\u6978q\u0100lq\u063F\u2196les\xF3\u2088i\xED\u066B\u0100en\u21A3\u21ADrtneqq;\uC000\u2269\uFE00\xC5\u21AA\u0500Aabcefkosy\u21C4\u21C7\u21F1\u21F5\u21FA\u2218\u221D\u222F\u2268\u227Dr\xF2\u03A0\u0200ilmr\u21D0\u21D4\u21D7\u21DBrs\xF0\u1484f\xBB\u2024il\xF4\u06A9\u0100dr\u21E0\u21E4cy;\u444A\u0180;cw\u08F4\u21EB\u21EFir;\u6948;\u61ADar;\u610Firc;\u4125\u0180alr\u2201\u220E\u2213rts\u0100;u\u2209\u220A\u6665it\xBB\u220Alip;\u6026con;\u62B9r;\uC000\uD835\uDD25s\u0100ew\u2223\u2229arow;\u6925arow;\u6926\u0280amopr\u223A\u223E\u2243\u225E\u2263rr;\u61FFtht;\u623Bk\u0100lr\u2249\u2253eftarrow;\u61A9ightarrow;\u61AAf;\uC000\uD835\uDD59bar;\u6015\u0180clt\u226F\u2274\u2278r;\uC000\uD835\uDCBDas\xE8\u21F4rok;\u4127\u0100bp\u2282\u2287ull;\u6043hen\xBB\u1C5B\u0AE1\u22A3\0\u22AA\0\u22B8\u22C5\u22CE\0\u22D5\u22F3\0\0\u22F8\u2322\u2367\u2362\u237F\0\u2386\u23AA\u23B4cute\u803B\xED\u40ED\u0180;iy\u0771\u22B0\u22B5rc\u803B\xEE\u40EE;\u4438\u0100cx\u22BC\u22BFy;\u4435cl\u803B\xA1\u40A1\u0100fr\u039F\u22C9;\uC000\uD835\uDD26rave\u803B\xEC\u40EC\u0200;ino\u073E\u22DD\u22E9\u22EE\u0100in\u22E2\u22E6nt;\u6A0Ct;\u622Dfin;\u69DCta;\u6129lig;\u4133\u0180aop\u22FE\u231A\u231D\u0180cgt\u2305\u2308\u2317r;\u412B\u0180elp\u071F\u230F\u2313in\xE5\u078Ear\xF4\u0720h;\u4131f;\u62B7ed;\u41B5\u0280;cfot\u04F4\u232C\u2331\u233D\u2341are;\u6105in\u0100;t\u2338\u2339\u621Eie;\u69DDdo\xF4\u2319\u0280;celp\u0757\u234C\u2350\u235B\u2361al;\u62BA\u0100gr\u2355\u2359er\xF3\u1563\xE3\u234Darhk;\u6A17rod;\u6A3C\u0200cgpt\u236F\u2372\u2376\u237By;\u4451on;\u412Ff;\uC000\uD835\uDD5Aa;\u43B9uest\u803B\xBF\u40BF\u0100ci\u238A\u238Fr;\uC000\uD835\uDCBEn\u0280;Edsv\u04F4\u239B\u239D\u23A1\u04F3;\u62F9ot;\u62F5\u0100;v\u23A6\u23A7\u62F4;\u62F3\u0100;i\u0777\u23AElde;\u4129\u01EB\u23B8\0\u23BCcy;\u4456l\u803B\xEF\u40EF\u0300cfmosu\u23CC\u23D7\u23DC\u23E1\u23E7\u23F5\u0100iy\u23D1\u23D5rc;\u4135;\u4439r;\uC000\uD835\uDD27ath;\u4237pf;\uC000\uD835\uDD5B\u01E3\u23EC\0\u23F1r;\uC000\uD835\uDCBFrcy;\u4458kcy;\u4454\u0400acfghjos\u240B\u2416\u2422\u2427\u242D\u2431\u2435\u243Bppa\u0100;v\u2413\u2414\u43BA;\u43F0\u0100ey\u241B\u2420dil;\u4137;\u443Ar;\uC000\uD835\uDD28reen;\u4138cy;\u4445cy;\u445Cpf;\uC000\uD835\uDD5Ccr;\uC000\uD835\uDCC0\u0B80ABEHabcdefghjlmnoprstuv\u2470\u2481\u2486\u248D\u2491\u250E\u253D\u255A\u2580\u264E\u265E\u2665\u2679\u267D\u269A\u26B2\u26D8\u275D\u2768\u278B\u27C0\u2801\u2812\u0180art\u2477\u247A\u247Cr\xF2\u09C6\xF2\u0395ail;\u691Barr;\u690E\u0100;g\u0994\u248B;\u6A8Bar;\u6962\u0963\u24A5\0\u24AA\0\u24B1\0\0\0\0\0\u24B5\u24BA\0\u24C6\u24C8\u24CD\0\u24F9ute;\u413Amptyv;\u69B4ra\xEE\u084Cbda;\u43BBg\u0180;dl\u088E\u24C1\u24C3;\u6991\xE5\u088E;\u6A85uo\u803B\xAB\u40ABr\u0400;bfhlpst\u0899\u24DE\u24E6\u24E9\u24EB\u24EE\u24F1\u24F5\u0100;f\u089D\u24E3s;\u691Fs;\u691D\xEB\u2252p;\u61ABl;\u6939im;\u6973l;\u61A2\u0180;ae\u24FF\u2500\u2504\u6AABil;\u6919\u0100;s\u2509\u250A\u6AAD;\uC000\u2AAD\uFE00\u0180abr\u2515\u2519\u251Drr;\u690Crk;\u6772\u0100ak\u2522\u252Cc\u0100ek\u2528\u252A;\u407B;\u405B\u0100es\u2531\u2533;\u698Bl\u0100du\u2539\u253B;\u698F;\u698D\u0200aeuy\u2546\u254B\u2556\u2558ron;\u413E\u0100di\u2550\u2554il;\u413C\xEC\u08B0\xE2\u2529;\u443B\u0200cqrs\u2563\u2566\u256D\u257Da;\u6936uo\u0100;r\u0E19\u1746\u0100du\u2572\u2577har;\u6967shar;\u694Bh;\u61B2\u0280;fgqs\u258B\u258C\u0989\u25F3\u25FF\u6264t\u0280ahlrt\u2598\u25A4\u25B7\u25C2\u25E8rrow\u0100;t\u0899\u25A1a\xE9\u24F6arpoon\u0100du\u25AF\u25B4own\xBB\u045Ap\xBB\u0966eftarrows;\u61C7ight\u0180ahs\u25CD\u25D6\u25DErrow\u0100;s\u08F4\u08A7arpoon\xF3\u0F98quigarro\xF7\u21F0hreetimes;\u62CB\u0180;qs\u258B\u0993\u25FAlan\xF4\u09AC\u0280;cdgs\u09AC\u260A\u260D\u261D\u2628c;\u6AA8ot\u0100;o\u2614\u2615\u6A7F\u0100;r\u261A\u261B\u6A81;\u6A83\u0100;e\u2622\u2625\uC000\u22DA\uFE00s;\u6A93\u0280adegs\u2633\u2639\u263D\u2649\u264Bppro\xF8\u24C6ot;\u62D6q\u0100gq\u2643\u2645\xF4\u0989gt\xF2\u248C\xF4\u099Bi\xED\u09B2\u0180ilr\u2655\u08E1\u265Asht;\u697C;\uC000\uD835\uDD29\u0100;E\u099C\u2663;\u6A91\u0161\u2669\u2676r\u0100du\u25B2\u266E\u0100;l\u0965\u2673;\u696Alk;\u6584cy;\u4459\u0280;acht\u0A48\u2688\u268B\u2691\u2696r\xF2\u25C1orne\xF2\u1D08ard;\u696Bri;\u65FA\u0100io\u269F\u26A4dot;\u4140ust\u0100;a\u26AC\u26AD\u63B0che\xBB\u26AD\u0200Eaes\u26BB\u26BD\u26C9\u26D4;\u6268p\u0100;p\u26C3\u26C4\u6A89rox\xBB\u26C4\u0100;q\u26CE\u26CF\u6A87\u0100;q\u26CE\u26BBim;\u62E6\u0400abnoptwz\u26E9\u26F4\u26F7\u271A\u272F\u2741\u2747\u2750\u0100nr\u26EE\u26F1g;\u67ECr;\u61FDr\xEB\u08C1g\u0180lmr\u26FF\u270D\u2714eft\u0100ar\u09E6\u2707ight\xE1\u09F2apsto;\u67FCight\xE1\u09FDparrow\u0100lr\u2725\u2729ef\xF4\u24EDight;\u61AC\u0180afl\u2736\u2739\u273Dr;\u6985;\uC000\uD835\uDD5Dus;\u6A2Dimes;\u6A34\u0161\u274B\u274Fst;\u6217\xE1\u134E\u0180;ef\u2757\u2758\u1800\u65CAnge\xBB\u2758ar\u0100;l\u2764\u2765\u4028t;\u6993\u0280achmt\u2773\u2776\u277C\u2785\u2787r\xF2\u08A8orne\xF2\u1D8Car\u0100;d\u0F98\u2783;\u696D;\u600Eri;\u62BF\u0300achiqt\u2798\u279D\u0A40\u27A2\u27AE\u27BBquo;\u6039r;\uC000\uD835\uDCC1m\u0180;eg\u09B2\u27AA\u27AC;\u6A8D;\u6A8F\u0100bu\u252A\u27B3o\u0100;r\u0E1F\u27B9;\u601Arok;\u4142\u8400<;cdhilqr\u082B\u27D2\u2639\u27DC\u27E0\u27E5\u27EA\u27F0\u0100ci\u27D7\u27D9;\u6AA6r;\u6A79re\xE5\u25F2mes;\u62C9arr;\u6976uest;\u6A7B\u0100Pi\u27F5\u27F9ar;\u6996\u0180;ef\u2800\u092D\u181B\u65C3r\u0100du\u2807\u280Dshar;\u694Ahar;\u6966\u0100en\u2817\u2821rtneqq;\uC000\u2268\uFE00\xC5\u281E\u0700Dacdefhilnopsu\u2840\u2845\u2882\u288E\u2893\u28A0\u28A5\u28A8\u28DA\u28E2\u28E4\u0A83\u28F3\u2902Dot;\u623A\u0200clpr\u284E\u2852\u2863\u287Dr\u803B\xAF\u40AF\u0100et\u2857\u2859;\u6642\u0100;e\u285E\u285F\u6720se\xBB\u285F\u0100;s\u103B\u2868to\u0200;dlu\u103B\u2873\u2877\u287Bow\xEE\u048Cef\xF4\u090F\xF0\u13D1ker;\u65AE\u0100oy\u2887\u288Cmma;\u6A29;\u443Cash;\u6014asuredangle\xBB\u1626r;\uC000\uD835\uDD2Ao;\u6127\u0180cdn\u28AF\u28B4\u28C9ro\u803B\xB5\u40B5\u0200;acd\u1464\u28BD\u28C0\u28C4s\xF4\u16A7ir;\u6AF0ot\u80BB\xB7\u01B5us\u0180;bd\u28D2\u1903\u28D3\u6212\u0100;u\u1D3C\u28D8;\u6A2A\u0163\u28DE\u28E1p;\u6ADB\xF2\u2212\xF0\u0A81\u0100dp\u28E9\u28EEels;\u62A7f;\uC000\uD835\uDD5E\u0100ct\u28F8\u28FDr;\uC000\uD835\uDCC2pos\xBB\u159D\u0180;lm\u2909\u290A\u290D\u43BCtimap;\u62B8\u0C00GLRVabcdefghijlmoprstuvw\u2942\u2953\u297E\u2989\u2998\u29DA\u29E9\u2A15\u2A1A\u2A58\u2A5D\u2A83\u2A95\u2AA4\u2AA8\u2B04\u2B07\u2B44\u2B7F\u2BAE\u2C34\u2C67\u2C7C\u2CE9\u0100gt\u2947\u294B;\uC000\u22D9\u0338\u0100;v\u2950\u0BCF\uC000\u226B\u20D2\u0180elt\u295A\u2972\u2976ft\u0100ar\u2961\u2967rrow;\u61CDightarrow;\u61CE;\uC000\u22D8\u0338\u0100;v\u297B\u0C47\uC000\u226A\u20D2ightarrow;\u61CF\u0100Dd\u298E\u2993ash;\u62AFash;\u62AE\u0280bcnpt\u29A3\u29A7\u29AC\u29B1\u29CCla\xBB\u02DEute;\u4144g;\uC000\u2220\u20D2\u0280;Eiop\u0D84\u29BC\u29C0\u29C5\u29C8;\uC000\u2A70\u0338d;\uC000\u224B\u0338s;\u4149ro\xF8\u0D84ur\u0100;a\u29D3\u29D4\u666El\u0100;s\u29D3\u0B38\u01F3\u29DF\0\u29E3p\u80BB\xA0\u0B37mp\u0100;e\u0BF9\u0C00\u0280aeouy\u29F4\u29FE\u2A03\u2A10\u2A13\u01F0\u29F9\0\u29FB;\u6A43on;\u4148dil;\u4146ng\u0100;d\u0D7E\u2A0Aot;\uC000\u2A6D\u0338p;\u6A42;\u443Dash;\u6013\u0380;Aadqsx\u0B92\u2A29\u2A2D\u2A3B\u2A41\u2A45\u2A50rr;\u61D7r\u0100hr\u2A33\u2A36k;\u6924\u0100;o\u13F2\u13F0ot;\uC000\u2250\u0338ui\xF6\u0B63\u0100ei\u2A4A\u2A4Ear;\u6928\xED\u0B98ist\u0100;s\u0BA0\u0B9Fr;\uC000\uD835\uDD2B\u0200Eest\u0BC5\u2A66\u2A79\u2A7C\u0180;qs\u0BBC\u2A6D\u0BE1\u0180;qs\u0BBC\u0BC5\u2A74lan\xF4\u0BE2i\xED\u0BEA\u0100;r\u0BB6\u2A81\xBB\u0BB7\u0180Aap\u2A8A\u2A8D\u2A91r\xF2\u2971rr;\u61AEar;\u6AF2\u0180;sv\u0F8D\u2A9C\u0F8C\u0100;d\u2AA1\u2AA2\u62FC;\u62FAcy;\u445A\u0380AEadest\u2AB7\u2ABA\u2ABE\u2AC2\u2AC5\u2AF6\u2AF9r\xF2\u2966;\uC000\u2266\u0338rr;\u619Ar;\u6025\u0200;fqs\u0C3B\u2ACE\u2AE3\u2AEFt\u0100ar\u2AD4\u2AD9rro\xF7\u2AC1ightarro\xF7\u2A90\u0180;qs\u0C3B\u2ABA\u2AEAlan\xF4\u0C55\u0100;s\u0C55\u2AF4\xBB\u0C36i\xED\u0C5D\u0100;r\u0C35\u2AFEi\u0100;e\u0C1A\u0C25i\xE4\u0D90\u0100pt\u2B0C\u2B11f;\uC000\uD835\uDD5F\u8180\xAC;in\u2B19\u2B1A\u2B36\u40ACn\u0200;Edv\u0B89\u2B24\u2B28\u2B2E;\uC000\u22F9\u0338ot;\uC000\u22F5\u0338\u01E1\u0B89\u2B33\u2B35;\u62F7;\u62F6i\u0100;v\u0CB8\u2B3C\u01E1\u0CB8\u2B41\u2B43;\u62FE;\u62FD\u0180aor\u2B4B\u2B63\u2B69r\u0200;ast\u0B7B\u2B55\u2B5A\u2B5Flle\xEC\u0B7Bl;\uC000\u2AFD\u20E5;\uC000\u2202\u0338lint;\u6A14\u0180;ce\u0C92\u2B70\u2B73u\xE5\u0CA5\u0100;c\u0C98\u2B78\u0100;e\u0C92\u2B7D\xF1\u0C98\u0200Aait\u2B88\u2B8B\u2B9D\u2BA7r\xF2\u2988rr\u0180;cw\u2B94\u2B95\u2B99\u619B;\uC000\u2933\u0338;\uC000\u219D\u0338ghtarrow\xBB\u2B95ri\u0100;e\u0CCB\u0CD6\u0380chimpqu\u2BBD\u2BCD\u2BD9\u2B04\u0B78\u2BE4\u2BEF\u0200;cer\u0D32\u2BC6\u0D37\u2BC9u\xE5\u0D45;\uC000\uD835\uDCC3ort\u026D\u2B05\0\0\u2BD6ar\xE1\u2B56m\u0100;e\u0D6E\u2BDF\u0100;q\u0D74\u0D73su\u0100bp\u2BEB\u2BED\xE5\u0CF8\xE5\u0D0B\u0180bcp\u2BF6\u2C11\u2C19\u0200;Ees\u2BFF\u2C00\u0D22\u2C04\u6284;\uC000\u2AC5\u0338et\u0100;e\u0D1B\u2C0Bq\u0100;q\u0D23\u2C00c\u0100;e\u0D32\u2C17\xF1\u0D38\u0200;Ees\u2C22\u2C23\u0D5F\u2C27\u6285;\uC000\u2AC6\u0338et\u0100;e\u0D58\u2C2Eq\u0100;q\u0D60\u2C23\u0200gilr\u2C3D\u2C3F\u2C45\u2C47\xEC\u0BD7lde\u803B\xF1\u40F1\xE7\u0C43iangle\u0100lr\u2C52\u2C5Ceft\u0100;e\u0C1A\u2C5A\xF1\u0C26ight\u0100;e\u0CCB\u2C65\xF1\u0CD7\u0100;m\u2C6C\u2C6D\u43BD\u0180;es\u2C74\u2C75\u2C79\u4023ro;\u6116p;\u6007\u0480DHadgilrs\u2C8F\u2C94\u2C99\u2C9E\u2CA3\u2CB0\u2CB6\u2CD3\u2CE3ash;\u62ADarr;\u6904p;\uC000\u224D\u20D2ash;\u62AC\u0100et\u2CA8\u2CAC;\uC000\u2265\u20D2;\uC000>\u20D2nfin;\u69DE\u0180Aet\u2CBD\u2CC1\u2CC5rr;\u6902;\uC000\u2264\u20D2\u0100;r\u2CCA\u2CCD\uC000<\u20D2ie;\uC000\u22B4\u20D2\u0100At\u2CD8\u2CDCrr;\u6903rie;\uC000\u22B5\u20D2im;\uC000\u223C\u20D2\u0180Aan\u2CF0\u2CF4\u2D02rr;\u61D6r\u0100hr\u2CFA\u2CFDk;\u6923\u0100;o\u13E7\u13E5ear;\u6927\u1253\u1A95\0\0\0\0\0\0\0\0\0\0\0\0\0\u2D2D\0\u2D38\u2D48\u2D60\u2D65\u2D72\u2D84\u1B07\0\0\u2D8D\u2DAB\0\u2DC8\u2DCE\0\u2DDC\u2E19\u2E2B\u2E3E\u2E43\u0100cs\u2D31\u1A97ute\u803B\xF3\u40F3\u0100iy\u2D3C\u2D45r\u0100;c\u1A9E\u2D42\u803B\xF4\u40F4;\u443E\u0280abios\u1AA0\u2D52\u2D57\u01C8\u2D5Alac;\u4151v;\u6A38old;\u69BClig;\u4153\u0100cr\u2D69\u2D6Dir;\u69BF;\uC000\uD835\uDD2C\u036F\u2D79\0\0\u2D7C\0\u2D82n;\u42DBave\u803B\xF2\u40F2;\u69C1\u0100bm\u2D88\u0DF4ar;\u69B5\u0200acit\u2D95\u2D98\u2DA5\u2DA8r\xF2\u1A80\u0100ir\u2D9D\u2DA0r;\u69BEoss;\u69BBn\xE5\u0E52;\u69C0\u0180aei\u2DB1\u2DB5\u2DB9cr;\u414Dga;\u43C9\u0180cdn\u2DC0\u2DC5\u01CDron;\u43BF;\u69B6pf;\uC000\uD835\uDD60\u0180ael\u2DD4\u2DD7\u01D2r;\u69B7rp;\u69B9\u0380;adiosv\u2DEA\u2DEB\u2DEE\u2E08\u2E0D\u2E10\u2E16\u6228r\xF2\u1A86\u0200;efm\u2DF7\u2DF8\u2E02\u2E05\u6A5Dr\u0100;o\u2DFE\u2DFF\u6134f\xBB\u2DFF\u803B\xAA\u40AA\u803B\xBA\u40BAgof;\u62B6r;\u6A56lope;\u6A57;\u6A5B\u0180clo\u2E1F\u2E21\u2E27\xF2\u2E01ash\u803B\xF8\u40F8l;\u6298i\u016C\u2E2F\u2E34de\u803B\xF5\u40F5es\u0100;a\u01DB\u2E3As;\u6A36ml\u803B\xF6\u40F6bar;\u633D\u0AE1\u2E5E\0\u2E7D\0\u2E80\u2E9D\0\u2EA2\u2EB9\0\0\u2ECB\u0E9C\0\u2F13\0\0\u2F2B\u2FBC\0\u2FC8r\u0200;ast\u0403\u2E67\u2E72\u0E85\u8100\xB6;l\u2E6D\u2E6E\u40B6le\xEC\u0403\u0269\u2E78\0\0\u2E7Bm;\u6AF3;\u6AFDy;\u443Fr\u0280cimpt\u2E8B\u2E8F\u2E93\u1865\u2E97nt;\u4025od;\u402Eil;\u6030enk;\u6031r;\uC000\uD835\uDD2D\u0180imo\u2EA8\u2EB0\u2EB4\u0100;v\u2EAD\u2EAE\u43C6;\u43D5ma\xF4\u0A76ne;\u660E\u0180;tv\u2EBF\u2EC0\u2EC8\u43C0chfork\xBB\u1FFD;\u43D6\u0100au\u2ECF\u2EDFn\u0100ck\u2ED5\u2EDDk\u0100;h\u21F4\u2EDB;\u610E\xF6\u21F4s\u0480;abcdemst\u2EF3\u2EF4\u1908\u2EF9\u2EFD\u2F04\u2F06\u2F0A\u2F0E\u402Bcir;\u6A23ir;\u6A22\u0100ou\u1D40\u2F02;\u6A25;\u6A72n\u80BB\xB1\u0E9Dim;\u6A26wo;\u6A27\u0180ipu\u2F19\u2F20\u2F25ntint;\u6A15f;\uC000\uD835\uDD61nd\u803B\xA3\u40A3\u0500;Eaceinosu\u0EC8\u2F3F\u2F41\u2F44\u2F47\u2F81\u2F89\u2F92\u2F7E\u2FB6;\u6AB3p;\u6AB7u\xE5\u0ED9\u0100;c\u0ECE\u2F4C\u0300;acens\u0EC8\u2F59\u2F5F\u2F66\u2F68\u2F7Eppro\xF8\u2F43urlye\xF1\u0ED9\xF1\u0ECE\u0180aes\u2F6F\u2F76\u2F7Approx;\u6AB9qq;\u6AB5im;\u62E8i\xED\u0EDFme\u0100;s\u2F88\u0EAE\u6032\u0180Eas\u2F78\u2F90\u2F7A\xF0\u2F75\u0180dfp\u0EEC\u2F99\u2FAF\u0180als\u2FA0\u2FA5\u2FAAlar;\u632Eine;\u6312urf;\u6313\u0100;t\u0EFB\u2FB4\xEF\u0EFBrel;\u62B0\u0100ci\u2FC0\u2FC5r;\uC000\uD835\uDCC5;\u43C8ncsp;\u6008\u0300fiopsu\u2FDA\u22E2\u2FDF\u2FE5\u2FEB\u2FF1r;\uC000\uD835\uDD2Epf;\uC000\uD835\uDD62rime;\u6057cr;\uC000\uD835\uDCC6\u0180aeo\u2FF8\u3009\u3013t\u0100ei\u2FFE\u3005rnion\xF3\u06B0nt;\u6A16st\u0100;e\u3010\u3011\u403F\xF1\u1F19\xF4\u0F14\u0A80ABHabcdefhilmnoprstux\u3040\u3051\u3055\u3059\u30E0\u310E\u312B\u3147\u3162\u3172\u318E\u3206\u3215\u3224\u3229\u3258\u326E\u3272\u3290\u32B0\u32B7\u0180art\u3047\u304A\u304Cr\xF2\u10B3\xF2\u03DDail;\u691Car\xF2\u1C65ar;\u6964\u0380cdenqrt\u3068\u3075\u3078\u307F\u308F\u3094\u30CC\u0100eu\u306D\u3071;\uC000\u223D\u0331te;\u4155i\xE3\u116Emptyv;\u69B3g\u0200;del\u0FD1\u3089\u308B\u308D;\u6992;\u69A5\xE5\u0FD1uo\u803B\xBB\u40BBr\u0580;abcfhlpstw\u0FDC\u30AC\u30AF\u30B7\u30B9\u30BC\u30BE\u30C0\u30C3\u30C7\u30CAp;\u6975\u0100;f\u0FE0\u30B4s;\u6920;\u6933s;\u691E\xEB\u225D\xF0\u272El;\u6945im;\u6974l;\u61A3;\u619D\u0100ai\u30D1\u30D5il;\u691Ao\u0100;n\u30DB\u30DC\u6236al\xF3\u0F1E\u0180abr\u30E7\u30EA\u30EEr\xF2\u17E5rk;\u6773\u0100ak\u30F3\u30FDc\u0100ek\u30F9\u30FB;\u407D;\u405D\u0100es\u3102\u3104;\u698Cl\u0100du\u310A\u310C;\u698E;\u6990\u0200aeuy\u3117\u311C\u3127\u3129ron;\u4159\u0100di\u3121\u3125il;\u4157\xEC\u0FF2\xE2\u30FA;\u4440\u0200clqs\u3134\u3137\u313D\u3144a;\u6937dhar;\u6969uo\u0100;r\u020E\u020Dh;\u61B3\u0180acg\u314E\u315F\u0F44l\u0200;ips\u0F78\u3158\u315B\u109Cn\xE5\u10BBar\xF4\u0FA9t;\u65AD\u0180ilr\u3169\u1023\u316Esht;\u697D;\uC000\uD835\uDD2F\u0100ao\u3177\u3186r\u0100du\u317D\u317F\xBB\u047B\u0100;l\u1091\u3184;\u696C\u0100;v\u318B\u318C\u43C1;\u43F1\u0180gns\u3195\u31F9\u31FCht\u0300ahlrst\u31A4\u31B0\u31C2\u31D8\u31E4\u31EErrow\u0100;t\u0FDC\u31ADa\xE9\u30C8arpoon\u0100du\u31BB\u31BFow\xEE\u317Ep\xBB\u1092eft\u0100ah\u31CA\u31D0rrow\xF3\u0FEAarpoon\xF3\u0551ightarrows;\u61C9quigarro\xF7\u30CBhreetimes;\u62CCg;\u42DAingdotse\xF1\u1F32\u0180ahm\u320D\u3210\u3213r\xF2\u0FEAa\xF2\u0551;\u600Foust\u0100;a\u321E\u321F\u63B1che\xBB\u321Fmid;\u6AEE\u0200abpt\u3232\u323D\u3240\u3252\u0100nr\u3237\u323Ag;\u67EDr;\u61FEr\xEB\u1003\u0180afl\u3247\u324A\u324Er;\u6986;\uC000\uD835\uDD63us;\u6A2Eimes;\u6A35\u0100ap\u325D\u3267r\u0100;g\u3263\u3264\u4029t;\u6994olint;\u6A12ar\xF2\u31E3\u0200achq\u327B\u3280\u10BC\u3285quo;\u603Ar;\uC000\uD835\uDCC7\u0100bu\u30FB\u328Ao\u0100;r\u0214\u0213\u0180hir\u3297\u329B\u32A0re\xE5\u31F8mes;\u62CAi\u0200;efl\u32AA\u1059\u1821\u32AB\u65B9tri;\u69CEluhar;\u6968;\u611E\u0D61\u32D5\u32DB\u32DF\u332C\u3338\u3371\0\u337A\u33A4\0\0\u33EC\u33F0\0\u3428\u3448\u345A\u34AD\u34B1\u34CA\u34F1\0\u3616\0\0\u3633cute;\u415Bqu\xEF\u27BA\u0500;Eaceinpsy\u11ED\u32F3\u32F5\u32FF\u3302\u330B\u330F\u331F\u3326\u3329;\u6AB4\u01F0\u32FA\0\u32FC;\u6AB8on;\u4161u\xE5\u11FE\u0100;d\u11F3\u3307il;\u415Frc;\u415D\u0180Eas\u3316\u3318\u331B;\u6AB6p;\u6ABAim;\u62E9olint;\u6A13i\xED\u1204;\u4441ot\u0180;be\u3334\u1D47\u3335\u62C5;\u6A66\u0380Aacmstx\u3346\u334A\u3357\u335B\u335E\u3363\u336Drr;\u61D8r\u0100hr\u3350\u3352\xEB\u2228\u0100;o\u0A36\u0A34t\u803B\xA7\u40A7i;\u403Bwar;\u6929m\u0100in\u3369\xF0nu\xF3\xF1t;\u6736r\u0100;o\u3376\u2055\uC000\uD835\uDD30\u0200acoy\u3382\u3386\u3391\u33A0rp;\u666F\u0100hy\u338B\u338Fcy;\u4449;\u4448rt\u026D\u3399\0\0\u339Ci\xE4\u1464ara\xEC\u2E6F\u803B\xAD\u40AD\u0100gm\u33A8\u33B4ma\u0180;fv\u33B1\u33B2\u33B2\u43C3;\u43C2\u0400;deglnpr\u12AB\u33C5\u33C9\u33CE\u33D6\u33DE\u33E1\u33E6ot;\u6A6A\u0100;q\u12B1\u12B0\u0100;E\u33D3\u33D4\u6A9E;\u6AA0\u0100;E\u33DB\u33DC\u6A9D;\u6A9Fe;\u6246lus;\u6A24arr;\u6972ar\xF2\u113D\u0200aeit\u33F8\u3408\u340F\u3417\u0100ls\u33FD\u3404lsetm\xE9\u336Ahp;\u6A33parsl;\u69E4\u0100dl\u1463\u3414e;\u6323\u0100;e\u341C\u341D\u6AAA\u0100;s\u3422\u3423\u6AAC;\uC000\u2AAC\uFE00\u0180flp\u342E\u3433\u3442tcy;\u444C\u0100;b\u3438\u3439\u402F\u0100;a\u343E\u343F\u69C4r;\u633Ff;\uC000\uD835\uDD64a\u0100dr\u344D\u0402es\u0100;u\u3454\u3455\u6660it\xBB\u3455\u0180csu\u3460\u3479\u349F\u0100au\u3465\u346Fp\u0100;s\u1188\u346B;\uC000\u2293\uFE00p\u0100;s\u11B4\u3475;\uC000\u2294\uFE00u\u0100bp\u347F\u348F\u0180;es\u1197\u119C\u3486et\u0100;e\u1197\u348D\xF1\u119D\u0180;es\u11A8\u11AD\u3496et\u0100;e\u11A8\u349D\xF1\u11AE\u0180;af\u117B\u34A6\u05B0r\u0165\u34AB\u05B1\xBB\u117Car\xF2\u1148\u0200cemt\u34B9\u34BE\u34C2\u34C5r;\uC000\uD835\uDCC8tm\xEE\xF1i\xEC\u3415ar\xE6\u11BE\u0100ar\u34CE\u34D5r\u0100;f\u34D4\u17BF\u6606\u0100an\u34DA\u34EDight\u0100ep\u34E3\u34EApsilo\xEE\u1EE0h\xE9\u2EAFs\xBB\u2852\u0280bcmnp\u34FB\u355E\u1209\u358B\u358E\u0480;Edemnprs\u350E\u350F\u3511\u3515\u351E\u3523\u352C\u3531\u3536\u6282;\u6AC5ot;\u6ABD\u0100;d\u11DA\u351Aot;\u6AC3ult;\u6AC1\u0100Ee\u3528\u352A;\u6ACB;\u628Alus;\u6ABFarr;\u6979\u0180eiu\u353D\u3552\u3555t\u0180;en\u350E\u3545\u354Bq\u0100;q\u11DA\u350Feq\u0100;q\u352B\u3528m;\u6AC7\u0100bp\u355A\u355C;\u6AD5;\u6AD3c\u0300;acens\u11ED\u356C\u3572\u3579\u357B\u3326ppro\xF8\u32FAurlye\xF1\u11FE\xF1\u11F3\u0180aes\u3582\u3588\u331Bppro\xF8\u331Aq\xF1\u3317g;\u666A\u0680123;Edehlmnps\u35A9\u35AC\u35AF\u121C\u35B2\u35B4\u35C0\u35C9\u35D5\u35DA\u35DF\u35E8\u35ED\u803B\xB9\u40B9\u803B\xB2\u40B2\u803B\xB3\u40B3;\u6AC6\u0100os\u35B9\u35BCt;\u6ABEub;\u6AD8\u0100;d\u1222\u35C5ot;\u6AC4s\u0100ou\u35CF\u35D2l;\u67C9b;\u6AD7arr;\u697Bult;\u6AC2\u0100Ee\u35E4\u35E6;\u6ACC;\u628Blus;\u6AC0\u0180eiu\u35F4\u3609\u360Ct\u0180;en\u121C\u35FC\u3602q\u0100;q\u1222\u35B2eq\u0100;q\u35E7\u35E4m;\u6AC8\u0100bp\u3611\u3613;\u6AD4;\u6AD6\u0180Aan\u361C\u3620\u362Drr;\u61D9r\u0100hr\u3626\u3628\xEB\u222E\u0100;o\u0A2B\u0A29war;\u692Alig\u803B\xDF\u40DF\u0BE1\u3651\u365D\u3660\u12CE\u3673\u3679\0\u367E\u36C2\0\0\0\0\0\u36DB\u3703\0\u3709\u376C\0\0\0\u3787\u0272\u3656\0\0\u365Bget;\u6316;\u43C4r\xEB\u0E5F\u0180aey\u3666\u366B\u3670ron;\u4165dil;\u4163;\u4442lrec;\u6315r;\uC000\uD835\uDD31\u0200eiko\u3686\u369D\u36B5\u36BC\u01F2\u368B\0\u3691e\u01004f\u1284\u1281a\u0180;sv\u3698\u3699\u369B\u43B8ym;\u43D1\u0100cn\u36A2\u36B2k\u0100as\u36A8\u36AEppro\xF8\u12C1im\xBB\u12ACs\xF0\u129E\u0100as\u36BA\u36AE\xF0\u12C1rn\u803B\xFE\u40FE\u01EC\u031F\u36C6\u22E7es\u8180\xD7;bd\u36CF\u36D0\u36D8\u40D7\u0100;a\u190F\u36D5r;\u6A31;\u6A30\u0180eps\u36E1\u36E3\u3700\xE1\u2A4D\u0200;bcf\u0486\u36EC\u36F0\u36F4ot;\u6336ir;\u6AF1\u0100;o\u36F9\u36FC\uC000\uD835\uDD65rk;\u6ADA\xE1\u3362rime;\u6034\u0180aip\u370F\u3712\u3764d\xE5\u1248\u0380adempst\u3721\u374D\u3740\u3751\u3757\u375C\u375Fngle\u0280;dlqr\u3730\u3731\u3736\u3740\u3742\u65B5own\xBB\u1DBBeft\u0100;e\u2800\u373E\xF1\u092E;\u625Cight\u0100;e\u32AA\u374B\xF1\u105Aot;\u65ECinus;\u6A3Alus;\u6A39b;\u69CDime;\u6A3Bezium;\u63E2\u0180cht\u3772\u377D\u3781\u0100ry\u3777\u377B;\uC000\uD835\uDCC9;\u4446cy;\u445Brok;\u4167\u0100io\u378B\u378Ex\xF4\u1777head\u0100lr\u3797\u37A0eftarro\xF7\u084Fightarrow\xBB\u0F5D\u0900AHabcdfghlmoprstuw\u37D0\u37D3\u37D7\u37E4\u37F0\u37FC\u380E\u381C\u3823\u3834\u3851\u385D\u386B\u38A9\u38CC\u38D2\u38EA\u38F6r\xF2\u03EDar;\u6963\u0100cr\u37DC\u37E2ute\u803B\xFA\u40FA\xF2\u1150r\u01E3\u37EA\0\u37EDy;\u445Eve;\u416D\u0100iy\u37F5\u37FArc\u803B\xFB\u40FB;\u4443\u0180abh\u3803\u3806\u380Br\xF2\u13ADlac;\u4171a\xF2\u13C3\u0100ir\u3813\u3818sht;\u697E;\uC000\uD835\uDD32rave\u803B\xF9\u40F9\u0161\u3827\u3831r\u0100lr\u382C\u382E\xBB\u0957\xBB\u1083lk;\u6580\u0100ct\u3839\u384D\u026F\u383F\0\0\u384Arn\u0100;e\u3845\u3846\u631Cr\xBB\u3846op;\u630Fri;\u65F8\u0100al\u3856\u385Acr;\u416B\u80BB\xA8\u0349\u0100gp\u3862\u3866on;\u4173f;\uC000\uD835\uDD66\u0300adhlsu\u114B\u3878\u387D\u1372\u3891\u38A0own\xE1\u13B3arpoon\u0100lr\u3888\u388Cef\xF4\u382Digh\xF4\u382Fi\u0180;hl\u3899\u389A\u389C\u43C5\xBB\u13FAon\xBB\u389Aparrows;\u61C8\u0180cit\u38B0\u38C4\u38C8\u026F\u38B6\0\0\u38C1rn\u0100;e\u38BC\u38BD\u631Dr\xBB\u38BDop;\u630Eng;\u416Fri;\u65F9cr;\uC000\uD835\uDCCA\u0180dir\u38D9\u38DD\u38E2ot;\u62F0lde;\u4169i\u0100;f\u3730\u38E8\xBB\u1813\u0100am\u38EF\u38F2r\xF2\u38A8l\u803B\xFC\u40FCangle;\u69A7\u0780ABDacdeflnoprsz\u391C\u391F\u3929\u392D\u39B5\u39B8\u39BD\u39DF\u39E4\u39E8\u39F3\u39F9\u39FD\u3A01\u3A20r\xF2\u03F7ar\u0100;v\u3926\u3927\u6AE8;\u6AE9as\xE8\u03E1\u0100nr\u3932\u3937grt;\u699C\u0380eknprst\u34E3\u3946\u394B\u3952\u395D\u3964\u3996app\xE1\u2415othin\xE7\u1E96\u0180hir\u34EB\u2EC8\u3959op\xF4\u2FB5\u0100;h\u13B7\u3962\xEF\u318D\u0100iu\u3969\u396Dgm\xE1\u33B3\u0100bp\u3972\u3984setneq\u0100;q\u397D\u3980\uC000\u228A\uFE00;\uC000\u2ACB\uFE00setneq\u0100;q\u398F\u3992\uC000\u228B\uFE00;\uC000\u2ACC\uFE00\u0100hr\u399B\u399Fet\xE1\u369Ciangle\u0100lr\u39AA\u39AFeft\xBB\u0925ight\xBB\u1051y;\u4432ash\xBB\u1036\u0180elr\u39C4\u39D2\u39D7\u0180;be\u2DEA\u39CB\u39CFar;\u62BBq;\u625Alip;\u62EE\u0100bt\u39DC\u1468a\xF2\u1469r;\uC000\uD835\uDD33tr\xE9\u39AEsu\u0100bp\u39EF\u39F1\xBB\u0D1C\xBB\u0D59pf;\uC000\uD835\uDD67ro\xF0\u0EFBtr\xE9\u39B4\u0100cu\u3A06\u3A0Br;\uC000\uD835\uDCCB\u0100bp\u3A10\u3A18n\u0100Ee\u3980\u3A16\xBB\u397En\u0100Ee\u3992\u3A1E\xBB\u3990igzag;\u699A\u0380cefoprs\u3A36\u3A3B\u3A56\u3A5B\u3A54\u3A61\u3A6Airc;\u4175\u0100di\u3A40\u3A51\u0100bg\u3A45\u3A49ar;\u6A5Fe\u0100;q\u15FA\u3A4F;\u6259erp;\u6118r;\uC000\uD835\uDD34pf;\uC000\uD835\uDD68\u0100;e\u1479\u3A66at\xE8\u1479cr;\uC000\uD835\uDCCC\u0AE3\u178E\u3A87\0\u3A8B\0\u3A90\u3A9B\0\0\u3A9D\u3AA8\u3AAB\u3AAF\0\0\u3AC3\u3ACE\0\u3AD8\u17DC\u17DFtr\xE9\u17D1r;\uC000\uD835\uDD35\u0100Aa\u3A94\u3A97r\xF2\u03C3r\xF2\u09F6;\u43BE\u0100Aa\u3AA1\u3AA4r\xF2\u03B8r\xF2\u09EBa\xF0\u2713is;\u62FB\u0180dpt\u17A4\u3AB5\u3ABE\u0100fl\u3ABA\u17A9;\uC000\uD835\uDD69im\xE5\u17B2\u0100Aa\u3AC7\u3ACAr\xF2\u03CEr\xF2\u0A01\u0100cq\u3AD2\u17B8r;\uC000\uD835\uDCCD\u0100pt\u17D6\u3ADCr\xE9\u17D4\u0400acefiosu\u3AF0\u3AFD\u3B08\u3B0C\u3B11\u3B15\u3B1B\u3B21c\u0100uy\u3AF6\u3AFBte\u803B\xFD\u40FD;\u444F\u0100iy\u3B02\u3B06rc;\u4177;\u444Bn\u803B\xA5\u40A5r;\uC000\uD835\uDD36cy;\u4457pf;\uC000\uD835\uDD6Acr;\uC000\uD835\uDCCE\u0100cm\u3B26\u3B29y;\u444El\u803B\xFF\u40FF\u0500acdefhiosw\u3B42\u3B48\u3B54\u3B58\u3B64\u3B69\u3B6D\u3B74\u3B7A\u3B80cute;\u417A\u0100ay\u3B4D\u3B52ron;\u417E;\u4437ot;\u417C\u0100et\u3B5D\u3B61tr\xE6\u155Fa;\u43B6r;\uC000\uD835\uDD37cy;\u4436grarr;\u61DDpf;\uC000\uD835\uDD6Bcr;\uC000\uD835\uDCCF\u0100jn\u3B85\u3B87;\u600Dj;\u600C'.split("").map(function(_){return _.charCodeAt(0)}))});var CS=j(($3)=>{Object.defineProperty($3,"__esModule",{value:!0});$3.default=new Uint16Array("\u0200aglq\t\x15\x18\x1B\u026D\x0F\0\0\x12p;\u4026os;\u4027t;\u403Et;\u403Cuot;\u4022".split("").map(function(_){return _.charCodeAt(0)}))});var w3=j((Y1)=>{var Z3;Object.defineProperty(Y1,"__esModule",{value:!0});Y1.replaceCodePoint=Y1.fromCodePoint=void 0;var HQ=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]);Y1.fromCodePoint=(Z3=String.fromCodePoint)!==null&&Z3!==void 0?Z3:function(_){var E="";if(_>65535)_-=65536,E+=String.fromCharCode(_>>>10&1023|55296),_=56320|_&1023;return E+=String.fromCharCode(_),E};function PS(_){var E;if(_>=55296&&_<=57343||_>1114111)return 65533;return(E=HQ.get(_))!==null&&E!==void 0?E:_}Y1.replaceCodePoint=PS;function WQ(_){return Y1.fromCodePoint(PS(_))}Y1.default=WQ});var wO=j((i_)=>{var MQ=i_&&i_.__createBinding||(Object.create?function(_,E,R,N){if(N===void 0)N=R;var A=Object.getOwnPropertyDescriptor(E,R);if(!A||("get"in A?!E.__esModule:A.writable||A.configurable))A={enumerable:!0,get:function(){return E[R]}};Object.defineProperty(_,N,A)}:function(_,E,R,N){if(N===void 0)N=R;_[N]=E[R]}),FQ=i_&&i_.__setModuleDefault||(Object.create?function(_,E){Object.defineProperty(_,"default",{enumerable:!0,value:E})}:function(_,E){_.default=E}),BQ=i_&&i_.__importStar||function(_){if(_&&_.__esModule)return _;var E={};if(_!=null){for(var R in _)if(R!=="default"&&Object.prototype.hasOwnProperty.call(_,R))MQ(E,_,R)}return FQ(E,_),E},YS=i_&&i_.__importDefault||function(_){return _&&_.__esModule?_:{default:_}};Object.defineProperty(i_,"__esModule",{value:!0});i_.decodeXML=i_.decodeHTMLStrict=i_.decodeHTMLAttribute=i_.decodeHTML=i_.determineBranch=i_.EntityDecoder=i_.DecodingMode=i_.BinTrieFlags=i_.fromCodePoint=i_.replaceCodePoint=i_.decodeCodePoint=i_.xmlDecodeTree=i_.htmlDecodeTree=void 0;var HS=YS(SS());i_.htmlDecodeTree=HS.default;var WS=YS(CS());i_.xmlDecodeTree=WS.default;var z3=BQ(w3());i_.decodeCodePoint=z3.default;var MS=w3();Object.defineProperty(i_,"replaceCodePoint",{enumerable:!0,get:function(){return MS.replaceCodePoint}});Object.defineProperty(i_,"fromCodePoint",{enumerable:!0,get:function(){return MS.fromCodePoint}});var gE;(function(_){_[_.NUM=35]="NUM",_[_.SEMI=59]="SEMI",_[_.EQUALS=61]="EQUALS",_[_.ZERO=48]="ZERO",_[_.NINE=57]="NINE",_[_.LOWER_A=97]="LOWER_A",_[_.LOWER_F=102]="LOWER_F",_[_.LOWER_X=120]="LOWER_X",_[_.LOWER_Z=122]="LOWER_Z",_[_.UPPER_A=65]="UPPER_A",_[_.UPPER_F=70]="UPPER_F",_[_.UPPER_Z=90]="UPPER_Z"})(gE||(gE={}));var VQ=32,c1;(function(_){_[_.VALUE_LENGTH=49152]="VALUE_LENGTH",_[_.BRANCH_LENGTH=16256]="BRANCH_LENGTH",_[_.JUMP_TABLE=127]="JUMP_TABLE"})(c1=i_.BinTrieFlags||(i_.BinTrieFlags={}));function Q3(_){return _>=gE.ZERO&&_<=gE.NINE}function KQ(_){return _>=gE.UPPER_A&&_<=gE.UPPER_F||_>=gE.LOWER_A&&_<=gE.LOWER_F}function XQ(_){return _>=gE.UPPER_A&&_<=gE.UPPER_Z||_>=gE.LOWER_A&&_<=gE.LOWER_Z||Q3(_)}function JQ(_){return _===gE.EQUALS||XQ(_)}var mE;(function(_){_[_.EntityStart=0]="EntityStart",_[_.NumericStart=1]="NumericStart",_[_.NumericDecimal=2]="NumericDecimal",_[_.NumericHex=3]="NumericHex",_[_.NamedEntity=4]="NamedEntity"})(mE||(mE={}));var MN;(function(_){_[_.Legacy=0]="Legacy",_[_.Strict=1]="Strict",_[_.Attribute=2]="Attribute"})(MN=i_.DecodingMode||(i_.DecodingMode={}));var FS=function(){function _(E,R,N){this.decodeTree=E,this.emitCodePoint=R,this.errors=N,this.state=mE.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=MN.Strict}return _.prototype.startEntity=function(E){this.decodeMode=E,this.state=mE.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1},_.prototype.write=function(E,R){switch(this.state){case mE.EntityStart:{if(E.charCodeAt(R)===gE.NUM)return this.state=mE.NumericStart,this.consumed+=1,this.stateNumericStart(E,R+1);return this.state=mE.NamedEntity,this.stateNamedEntity(E,R)}case mE.NumericStart:return this.stateNumericStart(E,R);case mE.NumericDecimal:return this.stateNumericDecimal(E,R);case mE.NumericHex:return this.stateNumericHex(E,R);case mE.NamedEntity:return this.stateNamedEntity(E,R)}},_.prototype.stateNumericStart=function(E,R){if(R>=E.length)return-1;if((E.charCodeAt(R)|VQ)===gE.LOWER_X)return this.state=mE.NumericHex,this.consumed+=1,this.stateNumericHex(E,R+1);return this.state=mE.NumericDecimal,this.stateNumericDecimal(E,R)},_.prototype.addToNumericResult=function(E,R,N,A){if(R!==N){var L=N-R;this.result=this.result*Math.pow(A,L)+parseInt(E.substr(R,L),A),this.consumed+=L}},_.prototype.stateNumericHex=function(E,R){var N=R;while(R>14;for(;R>14,L!==0){if(U===gE.SEMI)return this.emitNamedEntityData(this.treeIndex,L,this.consumed+this.excess);if(this.decodeMode!==MN.Strict)this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0}}return-1},_.prototype.emitNotTerminatedNamedEntity=function(){var E,R=this,N=R.result,A=R.decodeTree,L=(A[N]&c1.VALUE_LENGTH)>>14;return this.emitNamedEntityData(N,L,this.consumed),(E=this.errors)===null||E===void 0||E.missingSemicolonAfterCharacterReference(),this.consumed},_.prototype.emitNamedEntityData=function(E,R,N){var A=this.decodeTree;if(this.emitCodePoint(R===1?A[E]&~c1.VALUE_LENGTH:A[E+1],N),R===3)this.emitCodePoint(A[E+2],N);return N},_.prototype.end=function(){var E;switch(this.state){case mE.NamedEntity:return this.result!==0&&(this.decodeMode!==MN.Attribute||this.result===this.treeIndex)?this.emitNotTerminatedNamedEntity():0;case mE.NumericDecimal:return this.emitNumericEntity(0,2);case mE.NumericHex:return this.emitNumericEntity(0,3);case mE.NumericStart:return(E=this.errors)===null||E===void 0||E.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case mE.EntityStart:return 0}},_}();i_.EntityDecoder=FS;function BS(_){var E="",R=new FS(_,function(N){return E+=z3.fromCodePoint(N)});return function N(A,L){var U=0,G=0;while((G=A.indexOf("&",G))>=0){E+=A.slice(U,G),R.startEntity(L);var S=R.write(A,G+1);if(S<0){U=G+R.end();break}U=G+S,G=S===0?U+1:U}var C=E+A.slice(U);return E="",C}}function VS(_,E,R,N){var A=(E&c1.BRANCH_LENGTH)>>7,L=E&c1.JUMP_TABLE;if(A===0)return L!==0&&N===L?R:-1;if(L){var U=N-L;return U<0||U>=A?-1:_[R+U]-1}var G=R,S=G+A-1;while(G<=S){var C=G+S>>>1,Y=_[C];if(YN)S=C-1;else return _[C+A]}return-1}i_.determineBranch=VS;var x3=BS(HS.default),$Q=BS(WS.default);function ZQ(_,E){if(E===void 0)E=MN.Legacy;return x3(_,E)}i_.decodeHTML=ZQ;function wQ(_){return x3(_,MN.Attribute)}i_.decodeHTMLAttribute=wQ;function QQ(_){return x3(_,MN.Strict)}i_.decodeHTMLStrict=QQ;function zQ(_){return $Q(_,MN.Strict)}i_.decodeXML=zQ});var q3=j((xT)=>{Object.defineProperty(xT,"__esModule",{value:!0});xT.QuoteType=void 0;var d1=wO(),Y_;(function(_){_[_.Tab=9]="Tab",_[_.NewLine=10]="NewLine",_[_.FormFeed=12]="FormFeed",_[_.CarriageReturn=13]="CarriageReturn",_[_.Space=32]="Space",_[_.ExclamationMark=33]="ExclamationMark",_[_.Number=35]="Number",_[_.Amp=38]="Amp",_[_.SingleQuote=39]="SingleQuote",_[_.DoubleQuote=34]="DoubleQuote",_[_.Dash=45]="Dash",_[_.Slash=47]="Slash",_[_.Zero=48]="Zero",_[_.Nine=57]="Nine",_[_.Semi=59]="Semi",_[_.Lt=60]="Lt",_[_.Eq=61]="Eq",_[_.Gt=62]="Gt",_[_.Questionmark=63]="Questionmark",_[_.UpperA=65]="UpperA",_[_.LowerA=97]="LowerA",_[_.UpperF=70]="UpperF",_[_.LowerF=102]="LowerF",_[_.UpperZ=90]="UpperZ",_[_.LowerZ=122]="LowerZ",_[_.LowerX=120]="LowerX",_[_.OpeningSquareBracket=91]="OpeningSquareBracket"})(Y_||(Y_={}));var T_;(function(_){_[_.Text=1]="Text",_[_.BeforeTagName=2]="BeforeTagName",_[_.InTagName=3]="InTagName",_[_.InSelfClosingTag=4]="InSelfClosingTag",_[_.BeforeClosingTagName=5]="BeforeClosingTagName",_[_.InClosingTagName=6]="InClosingTagName",_[_.AfterClosingTagName=7]="AfterClosingTagName",_[_.BeforeAttributeName=8]="BeforeAttributeName",_[_.InAttributeName=9]="InAttributeName",_[_.AfterAttributeName=10]="AfterAttributeName",_[_.BeforeAttributeValue=11]="BeforeAttributeValue",_[_.InAttributeValueDq=12]="InAttributeValueDq",_[_.InAttributeValueSq=13]="InAttributeValueSq",_[_.InAttributeValueNq=14]="InAttributeValueNq",_[_.BeforeDeclaration=15]="BeforeDeclaration",_[_.InDeclaration=16]="InDeclaration",_[_.InProcessingInstruction=17]="InProcessingInstruction",_[_.BeforeComment=18]="BeforeComment",_[_.CDATASequence=19]="CDATASequence",_[_.InSpecialComment=20]="InSpecialComment",_[_.InCommentLike=21]="InCommentLike",_[_.BeforeSpecialS=22]="BeforeSpecialS",_[_.SpecialStartSequence=23]="SpecialStartSequence",_[_.InSpecialTag=24]="InSpecialTag",_[_.BeforeEntity=25]="BeforeEntity",_[_.BeforeNumericEntity=26]="BeforeNumericEntity",_[_.InNamedEntity=27]="InNamedEntity",_[_.InNumericEntity=28]="InNumericEntity",_[_.InHexEntity=29]="InHexEntity"})(T_||(T_={}));function dN(_){return _===Y_.Space||_===Y_.NewLine||_===Y_.Tab||_===Y_.FormFeed||_===Y_.CarriageReturn}function bI(_){return _===Y_.Slash||_===Y_.Gt||dN(_)}function KS(_){return _>=Y_.Zero&&_<=Y_.Nine}function xQ(_){return _>=Y_.LowerA&&_<=Y_.LowerZ||_>=Y_.UpperA&&_<=Y_.UpperZ}function qQ(_){return _>=Y_.UpperA&&_<=Y_.UpperF||_>=Y_.LowerA&&_<=Y_.LowerF}var zT;(function(_){_[_.NoValue=0]="NoValue",_[_.Unquoted=1]="Unquoted",_[_.Single=2]="Single",_[_.Double=3]="Double"})(zT=xT.QuoteType||(xT.QuoteType={}));var FR={Cdata:new Uint8Array([67,68,65,84,65,91]),CdataEnd:new Uint8Array([93,93,62]),CommentEnd:new Uint8Array([45,45,62]),ScriptEnd:new Uint8Array([60,47,115,99,114,105,112,116]),StyleEnd:new Uint8Array([60,47,115,116,121,108,101]),TitleEnd:new Uint8Array([60,47,116,105,116,108,101])},fQ=function(){function _(E,R){var N=E.xmlMode,A=N===void 0?!1:N,L=E.decodeEntities,U=L===void 0?!0:L;this.cbs=R,this.state=T_.Text,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=T_.Text,this.isSpecial=!1,this.running=!0,this.offset=0,this.currentSequence=void 0,this.sequenceIndex=0,this.trieIndex=0,this.trieCurrent=0,this.entityResult=0,this.entityExcess=0,this.xmlMode=A,this.decodeEntities=U,this.entityTrie=A?d1.xmlDecodeTree:d1.htmlDecodeTree}return _.prototype.reset=function(){this.state=T_.Text,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=T_.Text,this.currentSequence=void 0,this.running=!0,this.offset=0},_.prototype.write=function(E){this.offset+=this.buffer.length,this.buffer=E,this.parse()},_.prototype.end=function(){if(this.running)this.finish()},_.prototype.pause=function(){this.running=!1},_.prototype.resume=function(){if(this.running=!0,this.indexthis.sectionStart)this.cbs.ontext(this.sectionStart,this.index);this.state=T_.BeforeTagName,this.sectionStart=this.index}else if(this.decodeEntities&&E===Y_.Amp)this.state=T_.BeforeEntity},_.prototype.stateSpecialStartSequence=function(E){var R=this.sequenceIndex===this.currentSequence.length,N=R?bI(E):(E|32)===this.currentSequence[this.sequenceIndex];if(!N)this.isSpecial=!1;else if(!R){this.sequenceIndex++;return}this.sequenceIndex=0,this.state=T_.InTagName,this.stateInTagName(E)},_.prototype.stateInSpecialTag=function(E){if(this.sequenceIndex===this.currentSequence.length){if(E===Y_.Gt||dN(E)){var R=this.index-this.currentSequence.length;if(this.sectionStart>14)-1;if(!this.allowLegacyEntity()&&E!==Y_.Semi)this.trieIndex+=N;else{var A=this.index-this.entityExcess+1;if(A>this.sectionStart)this.emitPartial(this.sectionStart,A);if(this.entityResult=this.trieIndex,this.trieIndex+=N,this.entityExcess=0,this.sectionStart=this.index+1,N===0)this.emitNamedEntity()}}},_.prototype.emitNamedEntity=function(){if(this.state=this.baseState,this.entityResult===0)return;var E=(this.entityTrie[this.entityResult]&d1.BinTrieFlags.VALUE_LENGTH)>>14;switch(E){case 1:{this.emitCodePoint(this.entityTrie[this.entityResult]&~d1.BinTrieFlags.VALUE_LENGTH);break}case 2:{this.emitCodePoint(this.entityTrie[this.entityResult+1]);break}case 3:this.emitCodePoint(this.entityTrie[this.entityResult+1]),this.emitCodePoint(this.entityTrie[this.entityResult+2])}},_.prototype.stateBeforeNumericEntity=function(E){if((E|32)===Y_.LowerX)this.entityExcess++,this.state=T_.InHexEntity;else this.state=T_.InNumericEntity,this.stateInNumericEntity(E)},_.prototype.emitNumericEntity=function(E){var R=this.index-this.entityExcess-1,N=R+2+Number(this.state===T_.InHexEntity);if(N!==this.index){if(R>this.sectionStart)this.emitPartial(this.sectionStart,R);this.sectionStart=this.index+Number(E),this.emitCodePoint(d1.replaceCodePoint(this.entityResult))}this.state=this.baseState},_.prototype.stateInNumericEntity=function(E){if(E===Y_.Semi)this.emitNumericEntity(!0);else if(KS(E))this.entityResult=this.entityResult*10+(E-Y_.Zero),this.entityExcess++;else{if(this.allowLegacyEntity())this.emitNumericEntity(!1);else this.state=this.baseState;this.index--}},_.prototype.stateInHexEntity=function(E){if(E===Y_.Semi)this.emitNumericEntity(!0);else if(KS(E))this.entityResult=this.entityResult*16+(E-Y_.Zero),this.entityExcess++;else if(qQ(E))this.entityResult=this.entityResult*16+((E|32)-Y_.LowerA+10),this.entityExcess++;else{if(this.allowLegacyEntity())this.emitNumericEntity(!1);else this.state=this.baseState;this.index--}},_.prototype.allowLegacyEntity=function(){return!this.xmlMode&&(this.baseState===T_.Text||this.baseState===T_.InSpecialTag)},_.prototype.cleanup=function(){if(this.running&&this.sectionStart!==this.index){if(this.state===T_.Text||this.state===T_.InSpecialTag&&this.sequenceIndex===0)this.cbs.ontext(this.sectionStart,this.index),this.sectionStart=this.index;else if(this.state===T_.InAttributeValueDq||this.state===T_.InAttributeValueSq||this.state===T_.InAttributeValueNq)this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=this.index}},_.prototype.shouldContinue=function(){return this.index{var jQ=FN&&FN.__createBinding||(Object.create?function(_,E,R,N){if(N===void 0)N=R;var A=Object.getOwnPropertyDescriptor(E,R);if(!A||("get"in A?!E.__esModule:A.writable||A.configurable))A={enumerable:!0,get:function(){return E[R]}};Object.defineProperty(_,N,A)}:function(_,E,R,N){if(N===void 0)N=R;_[N]=E[R]}),vQ=FN&&FN.__setModuleDefault||(Object.create?function(_,E){Object.defineProperty(_,"default",{enumerable:!0,value:E})}:function(_,E){_.default=E}),pQ=FN&&FN.__importStar||function(_){if(_&&_.__esModule)return _;var E={};if(_!=null){for(var R in _)if(R!=="default"&&Object.prototype.hasOwnProperty.call(_,R))jQ(E,_,R)}return vQ(E,_),E};Object.defineProperty(FN,"__esModule",{value:!0});FN.Parser=void 0;var iI=pQ(q3()),XS=wO(),qT=new Set(["input","option","optgroup","select","button","datalist","textarea"]),OE=new Set(["p"]),JS=new Set(["thead","tbody"]),$S=new Set(["dd","dt"]),ZS=new Set(["rt","rp"]),hQ=new Map([["tr",new Set(["tr","th","td"])],["th",new Set(["th"])],["td",new Set(["thead","th","td"])],["body",new Set(["head","link","script"])],["li",new Set(["li"])],["p",OE],["h1",OE],["h2",OE],["h3",OE],["h4",OE],["h5",OE],["h6",OE],["select",qT],["input",qT],["output",qT],["button",qT],["datalist",qT],["textarea",qT],["option",new Set(["option"])],["optgroup",new Set(["optgroup","option"])],["dd",$S],["dt",$S],["address",OE],["article",OE],["aside",OE],["blockquote",OE],["details",OE],["div",OE],["dl",OE],["fieldset",OE],["figcaption",OE],["figure",OE],["footer",OE],["form",OE],["header",OE],["hr",OE],["main",OE],["nav",OE],["ol",OE],["pre",OE],["section",OE],["table",OE],["ul",OE],["rt",ZS],["rp",ZS],["tbody",JS],["tfoot",JS]]),kQ=new Set(["area","base","basefont","br","col","command","embed","frame","hr","img","input","isindex","keygen","link","meta","param","source","track","wbr"]),wS=new Set(["math","svg"]),QS=new Set(["mi","mo","mn","ms","mtext","annotation-xml","foreignobject","desc","title"]),mQ=/\s|\//,gQ=function(){function _(E,R){if(R===void 0)R={};var N,A,L,U,G;this.options=R,this.startIndex=0,this.endIndex=0,this.openTagStart=0,this.tagname="",this.attribname="",this.attribvalue="",this.attribs=null,this.stack=[],this.foreignContext=[],this.buffers=[],this.bufferOffset=0,this.writeIndex=0,this.ended=!1,this.cbs=E!==null&&E!==void 0?E:{},this.lowerCaseTagNames=(N=R.lowerCaseTags)!==null&&N!==void 0?N:!R.xmlMode,this.lowerCaseAttributeNames=(A=R.lowerCaseAttributeNames)!==null&&A!==void 0?A:!R.xmlMode,this.tokenizer=new((L=R.Tokenizer)!==null&&L!==void 0?L:iI.default)(this.options,this),(G=(U=this.cbs).onparserinit)===null||G===void 0||G.call(U,this)}return _.prototype.ontext=function(E,R){var N,A,L=this.getSlice(E,R);this.endIndex=R-1,(A=(N=this.cbs).ontext)===null||A===void 0||A.call(N,L),this.startIndex=R},_.prototype.ontextentity=function(E){var R,N,A=this.tokenizer.getSectionStart();this.endIndex=A-1,(N=(R=this.cbs).ontext)===null||N===void 0||N.call(R,XS.fromCodePoint(E)),this.startIndex=A},_.prototype.isVoidElement=function(E){return!this.options.xmlMode&&kQ.has(E)},_.prototype.onopentagname=function(E,R){this.endIndex=R;var N=this.getSlice(E,R);if(this.lowerCaseTagNames)N=N.toLowerCase();this.emitOpenTag(N)},_.prototype.emitOpenTag=function(E){var R,N,A,L;this.openTagStart=this.startIndex,this.tagname=E;var U=!this.options.xmlMode&&hQ.get(E);if(U)while(this.stack.length>0&&U.has(this.stack[this.stack.length-1])){var G=this.stack.pop();(N=(R=this.cbs).onclosetag)===null||N===void 0||N.call(R,G,!0)}if(!this.isVoidElement(E)){if(this.stack.push(E),wS.has(E))this.foreignContext.push(!0);else if(QS.has(E))this.foreignContext.push(!1)}if((L=(A=this.cbs).onopentagname)===null||L===void 0||L.call(A,E),this.cbs.onopentag)this.attribs={}},_.prototype.endOpenTag=function(E){var R,N;if(this.startIndex=this.openTagStart,this.attribs)(N=(R=this.cbs).onopentag)===null||N===void 0||N.call(R,this.tagname,this.attribs,E),this.attribs=null;if(this.cbs.onclosetag&&this.isVoidElement(this.tagname))this.cbs.onclosetag(this.tagname,!0);this.tagname=""},_.prototype.onopentagend=function(E){this.endIndex=E,this.endOpenTag(!1),this.startIndex=E+1},_.prototype.onclosetag=function(E,R){var N,A,L,U,G,S;this.endIndex=R;var C=this.getSlice(E,R);if(this.lowerCaseTagNames)C=C.toLowerCase();if(wS.has(C)||QS.has(C))this.foreignContext.pop();if(!this.isVoidElement(C)){var Y=this.stack.lastIndexOf(C);if(Y!==-1)if(this.cbs.onclosetag){var M=this.stack.length-Y;while(M--)this.cbs.onclosetag(this.stack.pop(),M!==0)}else this.stack.length=Y;else if(!this.options.xmlMode&&C==="p")this.emitOpenTag("p"),this.closeCurrentTag(!0)}else if(!this.options.xmlMode&&C==="br")(A=(N=this.cbs).onopentagname)===null||A===void 0||A.call(N,"br"),(U=(L=this.cbs).onopentag)===null||U===void 0||U.call(L,"br",{},!0),(S=(G=this.cbs).onclosetag)===null||S===void 0||S.call(G,"br",!1);this.startIndex=R+1},_.prototype.onselfclosingtag=function(E){if(this.endIndex=E,this.options.xmlMode||this.options.recognizeSelfClosing||this.foreignContext[this.foreignContext.length-1])this.closeCurrentTag(!1),this.startIndex=E+1;else this.onopentagend(E)},_.prototype.closeCurrentTag=function(E){var R,N,A=this.tagname;if(this.endOpenTag(E),this.stack[this.stack.length-1]===A)(N=(R=this.cbs).onclosetag)===null||N===void 0||N.call(R,A,!E),this.stack.pop()},_.prototype.onattribname=function(E,R){this.startIndex=E;var N=this.getSlice(E,R);this.attribname=this.lowerCaseAttributeNames?N.toLowerCase():N},_.prototype.onattribdata=function(E,R){this.attribvalue+=this.getSlice(E,R)},_.prototype.onattribentity=function(E){this.attribvalue+=XS.fromCodePoint(E)},_.prototype.onattribend=function(E,R){var N,A;if(this.endIndex=R,(A=(N=this.cbs).onattribute)===null||A===void 0||A.call(N,this.attribname,this.attribvalue,E===iI.QuoteType.Double?'"':E===iI.QuoteType.Single?"'":E===iI.QuoteType.NoValue?void 0:null),this.attribs&&!Object.prototype.hasOwnProperty.call(this.attribs,this.attribname))this.attribs[this.attribname]=this.attribvalue;this.attribvalue=""},_.prototype.getInstructionName=function(E){var R=E.search(mQ),N=R<0?E:E.substr(0,R);if(this.lowerCaseTagNames)N=N.toLowerCase();return N},_.prototype.ondeclaration=function(E,R){this.endIndex=R;var N=this.getSlice(E,R);if(this.cbs.onprocessinginstruction){var A=this.getInstructionName(N);this.cbs.onprocessinginstruction("!".concat(A),"!".concat(N))}this.startIndex=R+1},_.prototype.onprocessinginstruction=function(E,R){this.endIndex=R;var N=this.getSlice(E,R);if(this.cbs.onprocessinginstruction){var A=this.getInstructionName(N);this.cbs.onprocessinginstruction("?".concat(A),"?".concat(N))}this.startIndex=R+1},_.prototype.oncomment=function(E,R,N){var A,L,U,G;this.endIndex=R,(L=(A=this.cbs).oncomment)===null||L===void 0||L.call(A,this.getSlice(E,R-N)),(G=(U=this.cbs).oncommentend)===null||G===void 0||G.call(U),this.startIndex=R+1},_.prototype.oncdata=function(E,R,N){var A,L,U,G,S,C,Y,M,H,X;this.endIndex=R;var $=this.getSlice(E,R-N);if(this.options.xmlMode||this.options.recognizeCDATA)(L=(A=this.cbs).oncdatastart)===null||L===void 0||L.call(A),(G=(U=this.cbs).ontext)===null||G===void 0||G.call(U,$),(C=(S=this.cbs).oncdataend)===null||C===void 0||C.call(S);else(M=(Y=this.cbs).oncomment)===null||M===void 0||M.call(Y,"[CDATA[".concat($,"]]")),(X=(H=this.cbs).oncommentend)===null||X===void 0||X.call(H);this.startIndex=R+1},_.prototype.onend=function(){var E,R;if(this.cbs.onclosetag){this.endIndex=this.startIndex;for(var N=this.stack.length;N>0;this.cbs.onclosetag(this.stack[--N],!0));}(R=(E=this.cbs).onend)===null||R===void 0||R.call(E)},_.prototype.reset=function(){var E,R,N,A;(R=(E=this.cbs).onreset)===null||R===void 0||R.call(E),this.tokenizer.reset(),this.tagname="",this.attribname="",this.attribs=null,this.stack.length=0,this.startIndex=0,this.endIndex=0,(A=(N=this.cbs).onparserinit)===null||A===void 0||A.call(N,this),this.buffers.length=0,this.bufferOffset=0,this.writeIndex=0,this.ended=!1},_.prototype.parseComplete=function(E){this.reset(),this.end(E)},_.prototype.getSlice=function(E,R){while(E-this.bufferOffset>=this.buffers[0].length)this.shiftBuffer();var N=this.buffers[0].slice(E-this.bufferOffset,R-this.bufferOffset);while(R-this.bufferOffset>this.buffers[0].length)this.shiftBuffer(),N+=this.buffers[0].slice(0,R-this.bufferOffset);return N},_.prototype.shiftBuffer=function(){this.bufferOffset+=this.buffers[0].length,this.writeIndex--,this.buffers.shift()},_.prototype.write=function(E){var R,N;if(this.ended){(N=(R=this.cbs).onerror)===null||N===void 0||N.call(R,new Error(".write() after done!"));return}if(this.buffers.push(E),this.tokenizer.running)this.tokenizer.write(E),this.writeIndex++},_.prototype.end=function(E){var R,N;if(this.ended){(N=(R=this.cbs).onerror)===null||N===void 0||N.call(R,new Error(".end() after done!"));return}if(E)this.write(E);this.ended=!0,this.tokenizer.end()},_.prototype.pause=function(){this.tokenizer.pause()},_.prototype.resume=function(){this.tokenizer.resume();while(this.tokenizer.running&&this.writeIndex{Object.defineProperty(PE,"__esModule",{value:!0});PE.Doctype=PE.CDATA=PE.Tag=PE.Style=PE.Script=PE.Comment=PE.Directive=PE.Text=PE.Root=PE.isTag=PE.ElementType=void 0;var pR;(function(_){_.Root="root",_.Text="text",_.Directive="directive",_.Comment="comment",_.Script="script",_.Style="style",_.Tag="tag",_.CDATA="cdata",_.Doctype="doctype"})(pR=PE.ElementType||(PE.ElementType={}));function yQ(_){return _.type===pR.Tag||_.type===pR.Script||_.type===pR.Style}PE.isTag=yQ;PE.Root=pR.Root;PE.Text=pR.Text;PE.Directive=pR.Directive;PE.Comment=pR.Comment;PE.Script=pR.Script;PE.Style=pR.Style;PE.Tag=pR.Tag;PE.CDATA=pR.CDATA;PE.Doctype=pR.Doctype});var h3=j((g_)=>{var H1=g_&&g_.__extends||function(){var _=function(E,R){return _=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(N,A){N.__proto__=A}||function(N,A){for(var L in A)if(Object.prototype.hasOwnProperty.call(A,L))N[L]=A[L]},_(E,R)};return function(E,R){if(typeof R!=="function"&&R!==null)throw new TypeError("Class extends value "+String(R)+" is not a constructor or null");_(E,R);function N(){this.constructor=E}E.prototype=R===null?Object.create(R):(N.prototype=R.prototype,new N)}}(),QO=g_&&g_.__assign||function(){return QO=Object.assign||function(_){for(var E,R=1,N=arguments.length;R0?this.children[this.children.length-1]:null},enumerable:!1,configurable:!0}),Object.defineProperty(E.prototype,"childNodes",{get:function(){return this.children},set:function(R){this.children=R},enumerable:!1,configurable:!0}),E}(v3);g_.NodeWithChildren=cI;var fS=function(_){H1(E,_);function E(){var R=_!==null&&_.apply(this,arguments)||this;return R.type=BR.ElementType.CDATA,R}return Object.defineProperty(E.prototype,"nodeType",{get:function(){return 4},enumerable:!1,configurable:!0}),E}(cI);g_.CDATA=fS;var jS=function(_){H1(E,_);function E(){var R=_!==null&&_.apply(this,arguments)||this;return R.type=BR.ElementType.Root,R}return Object.defineProperty(E.prototype,"nodeType",{get:function(){return 9},enumerable:!1,configurable:!0}),E}(cI);g_.Document=jS;var vS=function(_){H1(E,_);function E(R,N,A,L){if(A===void 0)A=[];if(L===void 0)L=R==="script"?BR.ElementType.Script:R==="style"?BR.ElementType.Style:BR.ElementType.Tag;var U=_.call(this,A)||this;return U.name=R,U.attribs=N,U.type=L,U}return Object.defineProperty(E.prototype,"nodeType",{get:function(){return 1},enumerable:!1,configurable:!0}),Object.defineProperty(E.prototype,"tagName",{get:function(){return this.name},set:function(R){this.name=R},enumerable:!1,configurable:!0}),Object.defineProperty(E.prototype,"attributes",{get:function(){var R=this;return Object.keys(this.attribs).map(function(N){var A,L;return{name:N,value:R.attribs[N],namespace:(A=R["x-attribsNamespace"])===null||A===void 0?void 0:A[N],prefix:(L=R["x-attribsPrefix"])===null||L===void 0?void 0:L[N]}})},enumerable:!1,configurable:!0}),E}(cI);g_.Element=vS;function pS(_){return BR.isTag(_)}g_.isTag=pS;function hS(_){return _.type===BR.ElementType.CDATA}g_.isCDATA=hS;function kS(_){return _.type===BR.ElementType.Text}g_.isText=kS;function mS(_){return _.type===BR.ElementType.Comment}g_.isComment=mS;function gS(_){return _.type===BR.ElementType.Directive}g_.isDirective=gS;function yS(_){return _.type===BR.ElementType.Root}g_.isDocument=yS;function bQ(_){return Object.prototype.hasOwnProperty.call(_,"children")}g_.hasChildren=bQ;function p3(_,E){if(E===void 0)E=!1;var R;if(kS(_))R=new zS(_.data);else if(mS(_))R=new xS(_.data);else if(pS(_)){var N=E?j3(_.children):[],A=new vS(_.name,QO({},_.attribs),N);if(N.forEach(function(S){return S.parent=A}),_.namespace!=null)A.namespace=_.namespace;if(_["x-attribsNamespace"])A["x-attribsNamespace"]=QO({},_["x-attribsNamespace"]);if(_["x-attribsPrefix"])A["x-attribsPrefix"]=QO({},_["x-attribsPrefix"]);R=A}else if(hS(_)){var N=E?j3(_.children):[],L=new fS(N);N.forEach(function(C){return C.parent=L}),R=L}else if(yS(_)){var N=E?j3(_.children):[],U=new jS(N);if(N.forEach(function(C){return C.parent=U}),_["x-mode"])U["x-mode"]=_["x-mode"];R=U}else if(gS(_)){var G=new qS(_.name,_.data);if(_["x-name"]!=null)G["x-name"]=_["x-name"],G["x-publicId"]=_["x-publicId"],G["x-systemId"]=_["x-systemId"];R=G}else throw new Error("Not implemented yet: ".concat(_.type));if(R.startIndex=_.startIndex,R.endIndex=_.endIndex,_.sourceCodeLocation!=null)R.sourceCodeLocation=_.sourceCodeLocation;return R}g_.cloneNode=p3;function j3(_){var E=_.map(function(N){return p3(N,!0)});for(var R=1;R{var iQ=BN&&BN.__createBinding||(Object.create?function(_,E,R,N){if(N===void 0)N=R;var A=Object.getOwnPropertyDescriptor(E,R);if(!A||("get"in A?!E.__esModule:A.writable||A.configurable))A={enumerable:!0,get:function(){return E[R]}};Object.defineProperty(_,N,A)}:function(_,E,R,N){if(N===void 0)N=R;_[N]=E[R]}),uQ=BN&&BN.__exportStar||function(_,E){for(var R in _)if(R!=="default"&&!Object.prototype.hasOwnProperty.call(E,R))iQ(E,_,R)};Object.defineProperty(BN,"__esModule",{value:!0});BN.DomHandler=void 0;var k3=fT(),W1=h3();uQ(h3(),BN);var bS={withStartIndices:!1,withEndIndices:!1,xmlMode:!1},iS=function(){function _(E,R,N){if(this.dom=[],this.root=new W1.Document(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null,typeof R==="function")N=R,R=bS;if(typeof E==="object")R=E,E=void 0;this.callback=E!==null&&E!==void 0?E:null,this.options=R!==null&&R!==void 0?R:bS,this.elementCB=N!==null&&N!==void 0?N:null}return _.prototype.onparserinit=function(E){this.parser=E},_.prototype.onreset=function(){this.dom=[],this.root=new W1.Document(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null},_.prototype.onend=function(){if(this.done)return;this.done=!0,this.parser=null,this.handleCallback(null)},_.prototype.onerror=function(E){this.handleCallback(E)},_.prototype.onclosetag=function(){this.lastNode=null;var E=this.tagStack.pop();if(this.options.withEndIndices)E.endIndex=this.parser.endIndex;if(this.elementCB)this.elementCB(E)},_.prototype.onopentag=function(E,R){var N=this.options.xmlMode?k3.ElementType.Tag:void 0,A=new W1.Element(E,R,void 0,N);this.addNode(A),this.tagStack.push(A)},_.prototype.ontext=function(E){var R=this.lastNode;if(R&&R.type===k3.ElementType.Text){if(R.data+=E,this.options.withEndIndices)R.endIndex=this.parser.endIndex}else{var N=new W1.Text(E);this.addNode(N),this.lastNode=N}},_.prototype.oncomment=function(E){if(this.lastNode&&this.lastNode.type===k3.ElementType.Comment){this.lastNode.data+=E;return}var R=new W1.Comment(E);this.addNode(R),this.lastNode=R},_.prototype.oncommentend=function(){this.lastNode=null},_.prototype.oncdatastart=function(){var E=new W1.Text(""),R=new W1.CDATA([E]);this.addNode(R),E.parent=R,this.lastNode=E},_.prototype.oncdataend=function(){this.lastNode=null},_.prototype.onprocessinginstruction=function(E,R){var N=new W1.ProcessingInstruction(E,R);this.addNode(N)},_.prototype.handleCallback=function(E){if(typeof this.callback==="function")this.callback(E,this.dom);else if(E)throw E},_.prototype.addNode=function(E){var R=this.tagStack[this.tagStack.length-1],N=R.children[R.children.length-1];if(this.options.withStartIndices)E.startIndex=this.parser.startIndex;if(this.options.withEndIndices)E.endIndex=this.parser.endIndex;if(R.children.push(E),N)E.prev=N,N.next=E;E.parent=R,this.lastNode=null},_}();BN.DomHandler=iS;BN.default=iS});var uS=j((m3)=>{Object.defineProperty(m3,"__esModule",{value:!0});function dI(_){for(var E=1;E<_.length;E++)_[E][0]+=_[E-1][0]+1;return _}m3.default=new Map(dI([[9," "],[0," "],[22,"!"],[0,"""],[0,"#"],[0,"$"],[0,"%"],[0,"&"],[0,"'"],[0,"("],[0,")"],[0,"*"],[0,"+"],[0,","],[1,"."],[0,"/"],[10,":"],[0,";"],[0,{v:"<",n:8402,o:"<⃒"}],[0,{v:"=",n:8421,o:"=⃥"}],[0,{v:">",n:8402,o:">⃒"}],[0,"?"],[0,"@"],[26,"["],[0,"\"],[0,"]"],[0,"^"],[0,"_"],[0,"`"],[5,{n:106,o:"fj"}],[20,"{"],[0,"|"],[0,"}"],[34," "],[0,"¡"],[0,"¢"],[0,"£"],[0,"¤"],[0,"¥"],[0,"¦"],[0,"§"],[0,"¨"],[0,"©"],[0,"ª"],[0,"«"],[0,"¬"],[0,"­"],[0,"®"],[0,"¯"],[0,"°"],[0,"±"],[0,"²"],[0,"³"],[0,"´"],[0,"µ"],[0,"¶"],[0,"·"],[0,"¸"],[0,"¹"],[0,"º"],[0,"»"],[0,"¼"],[0,"½"],[0,"¾"],[0,"¿"],[0,"À"],[0,"Á"],[0,"Â"],[0,"Ã"],[0,"Ä"],[0,"Å"],[0,"Æ"],[0,"Ç"],[0,"È"],[0,"É"],[0,"Ê"],[0,"Ë"],[0,"Ì"],[0,"Í"],[0,"Î"],[0,"Ï"],[0,"Ð"],[0,"Ñ"],[0,"Ò"],[0,"Ó"],[0,"Ô"],[0,"Õ"],[0,"Ö"],[0,"×"],[0,"Ø"],[0,"Ù"],[0,"Ú"],[0,"Û"],[0,"Ü"],[0,"Ý"],[0,"Þ"],[0,"ß"],[0,"à"],[0,"á"],[0,"â"],[0,"ã"],[0,"ä"],[0,"å"],[0,"æ"],[0,"ç"],[0,"è"],[0,"é"],[0,"ê"],[0,"ë"],[0,"ì"],[0,"í"],[0,"î"],[0,"ï"],[0,"ð"],[0,"ñ"],[0,"ò"],[0,"ó"],[0,"ô"],[0,"õ"],[0,"ö"],[0,"÷"],[0,"ø"],[0,"ù"],[0,"ú"],[0,"û"],[0,"ü"],[0,"ý"],[0,"þ"],[0,"ÿ"],[0,"Ā"],[0,"ā"],[0,"Ă"],[0,"ă"],[0,"Ą"],[0,"ą"],[0,"Ć"],[0,"ć"],[0,"Ĉ"],[0,"ĉ"],[0,"Ċ"],[0,"ċ"],[0,"Č"],[0,"č"],[0,"Ď"],[0,"ď"],[0,"Đ"],[0,"đ"],[0,"Ē"],[0,"ē"],[2,"Ė"],[0,"ė"],[0,"Ę"],[0,"ę"],[0,"Ě"],[0,"ě"],[0,"Ĝ"],[0,"ĝ"],[0,"Ğ"],[0,"ğ"],[0,"Ġ"],[0,"ġ"],[0,"Ģ"],[1,"Ĥ"],[0,"ĥ"],[0,"Ħ"],[0,"ħ"],[0,"Ĩ"],[0,"ĩ"],[0,"Ī"],[0,"ī"],[2,"Į"],[0,"į"],[0,"İ"],[0,"ı"],[0,"IJ"],[0,"ij"],[0,"Ĵ"],[0,"ĵ"],[0,"Ķ"],[0,"ķ"],[0,"ĸ"],[0,"Ĺ"],[0,"ĺ"],[0,"Ļ"],[0,"ļ"],[0,"Ľ"],[0,"ľ"],[0,"Ŀ"],[0,"ŀ"],[0,"Ł"],[0,"ł"],[0,"Ń"],[0,"ń"],[0,"Ņ"],[0,"ņ"],[0,"Ň"],[0,"ň"],[0,"ʼn"],[0,"Ŋ"],[0,"ŋ"],[0,"Ō"],[0,"ō"],[2,"Ő"],[0,"ő"],[0,"Œ"],[0,"œ"],[0,"Ŕ"],[0,"ŕ"],[0,"Ŗ"],[0,"ŗ"],[0,"Ř"],[0,"ř"],[0,"Ś"],[0,"ś"],[0,"Ŝ"],[0,"ŝ"],[0,"Ş"],[0,"ş"],[0,"Š"],[0,"š"],[0,"Ţ"],[0,"ţ"],[0,"Ť"],[0,"ť"],[0,"Ŧ"],[0,"ŧ"],[0,"Ũ"],[0,"ũ"],[0,"Ū"],[0,"ū"],[0,"Ŭ"],[0,"ŭ"],[0,"Ů"],[0,"ů"],[0,"Ű"],[0,"ű"],[0,"Ų"],[0,"ų"],[0,"Ŵ"],[0,"ŵ"],[0,"Ŷ"],[0,"ŷ"],[0,"Ÿ"],[0,"Ź"],[0,"ź"],[0,"Ż"],[0,"ż"],[0,"Ž"],[0,"ž"],[19,"ƒ"],[34,"Ƶ"],[63,"ǵ"],[65,"ȷ"],[142,"ˆ"],[0,"ˇ"],[16,"˘"],[0,"˙"],[0,"˚"],[0,"˛"],[0,"˜"],[0,"˝"],[51,"̑"],[127,"Α"],[0,"Β"],[0,"Γ"],[0,"Δ"],[0,"Ε"],[0,"Ζ"],[0,"Η"],[0,"Θ"],[0,"Ι"],[0,"Κ"],[0,"Λ"],[0,"Μ"],[0,"Ν"],[0,"Ξ"],[0,"Ο"],[0,"Π"],[0,"Ρ"],[1,"Σ"],[0,"Τ"],[0,"Υ"],[0,"Φ"],[0,"Χ"],[0,"Ψ"],[0,"Ω"],[7,"α"],[0,"β"],[0,"γ"],[0,"δ"],[0,"ε"],[0,"ζ"],[0,"η"],[0,"θ"],[0,"ι"],[0,"κ"],[0,"λ"],[0,"μ"],[0,"ν"],[0,"ξ"],[0,"ο"],[0,"π"],[0,"ρ"],[0,"ς"],[0,"σ"],[0,"τ"],[0,"υ"],[0,"φ"],[0,"χ"],[0,"ψ"],[0,"ω"],[7,"ϑ"],[0,"ϒ"],[2,"ϕ"],[0,"ϖ"],[5,"Ϝ"],[0,"ϝ"],[18,"ϰ"],[0,"ϱ"],[3,"ϵ"],[0,"϶"],[10,"Ё"],[0,"Ђ"],[0,"Ѓ"],[0,"Є"],[0,"Ѕ"],[0,"І"],[0,"Ї"],[0,"Ј"],[0,"Љ"],[0,"Њ"],[0,"Ћ"],[0,"Ќ"],[1,"Ў"],[0,"Џ"],[0,"А"],[0,"Б"],[0,"В"],[0,"Г"],[0,"Д"],[0,"Е"],[0,"Ж"],[0,"З"],[0,"И"],[0,"Й"],[0,"К"],[0,"Л"],[0,"М"],[0,"Н"],[0,"О"],[0,"П"],[0,"Р"],[0,"С"],[0,"Т"],[0,"У"],[0,"Ф"],[0,"Х"],[0,"Ц"],[0,"Ч"],[0,"Ш"],[0,"Щ"],[0,"Ъ"],[0,"Ы"],[0,"Ь"],[0,"Э"],[0,"Ю"],[0,"Я"],[0,"а"],[0,"б"],[0,"в"],[0,"г"],[0,"д"],[0,"е"],[0,"ж"],[0,"з"],[0,"и"],[0,"й"],[0,"к"],[0,"л"],[0,"м"],[0,"н"],[0,"о"],[0,"п"],[0,"р"],[0,"с"],[0,"т"],[0,"у"],[0,"ф"],[0,"х"],[0,"ц"],[0,"ч"],[0,"ш"],[0,"щ"],[0,"ъ"],[0,"ы"],[0,"ь"],[0,"э"],[0,"ю"],[0,"я"],[1,"ё"],[0,"ђ"],[0,"ѓ"],[0,"є"],[0,"ѕ"],[0,"і"],[0,"ї"],[0,"ј"],[0,"љ"],[0,"њ"],[0,"ћ"],[0,"ќ"],[1,"ў"],[0,"џ"],[7074," "],[0," "],[0," "],[0," "],[1," "],[0," "],[0," "],[0," "],[0,"​"],[0,"‌"],[0,"‍"],[0,"‎"],[0,"‏"],[0,"‐"],[2,"–"],[0,"—"],[0,"―"],[0,"‖"],[1,"‘"],[0,"’"],[0,"‚"],[1,"“"],[0,"”"],[0,"„"],[1,"†"],[0,"‡"],[0,"•"],[2,"‥"],[0,"…"],[9,"‰"],[0,"‱"],[0,"′"],[0,"″"],[0,"‴"],[0,"‵"],[3,"‹"],[0,"›"],[3,"‾"],[2,"⁁"],[1,"⁃"],[0,"⁄"],[10,"⁏"],[7,"⁗"],[7,{v:" ",n:8202,o:"  "}],[0,"⁠"],[0,"⁡"],[0,"⁢"],[0,"⁣"],[72,"€"],[46,"⃛"],[0,"⃜"],[37,"ℂ"],[2,"℅"],[4,"ℊ"],[0,"ℋ"],[0,"ℌ"],[0,"ℍ"],[0,"ℎ"],[0,"ℏ"],[0,"ℐ"],[0,"ℑ"],[0,"ℒ"],[0,"ℓ"],[1,"ℕ"],[0,"№"],[0,"℗"],[0,"℘"],[0,"ℙ"],[0,"ℚ"],[0,"ℛ"],[0,"ℜ"],[0,"ℝ"],[0,"℞"],[3,"™"],[1,"ℤ"],[2,"℧"],[0,"ℨ"],[0,"℩"],[2,"ℬ"],[0,"ℭ"],[1,"ℯ"],[0,"ℰ"],[0,"ℱ"],[1,"ℳ"],[0,"ℴ"],[0,"ℵ"],[0,"ℶ"],[0,"ℷ"],[0,"ℸ"],[12,"ⅅ"],[0,"ⅆ"],[0,"ⅇ"],[0,"ⅈ"],[10,"⅓"],[0,"⅔"],[0,"⅕"],[0,"⅖"],[0,"⅗"],[0,"⅘"],[0,"⅙"],[0,"⅚"],[0,"⅛"],[0,"⅜"],[0,"⅝"],[0,"⅞"],[49,"←"],[0,"↑"],[0,"→"],[0,"↓"],[0,"↔"],[0,"↕"],[0,"↖"],[0,"↗"],[0,"↘"],[0,"↙"],[0,"↚"],[0,"↛"],[1,{v:"↝",n:824,o:"↝̸"}],[0,"↞"],[0,"↟"],[0,"↠"],[0,"↡"],[0,"↢"],[0,"↣"],[0,"↤"],[0,"↥"],[0,"↦"],[0,"↧"],[1,"↩"],[0,"↪"],[0,"↫"],[0,"↬"],[0,"↭"],[0,"↮"],[1,"↰"],[0,"↱"],[0,"↲"],[0,"↳"],[1,"↵"],[0,"↶"],[0,"↷"],[2,"↺"],[0,"↻"],[0,"↼"],[0,"↽"],[0,"↾"],[0,"↿"],[0,"⇀"],[0,"⇁"],[0,"⇂"],[0,"⇃"],[0,"⇄"],[0,"⇅"],[0,"⇆"],[0,"⇇"],[0,"⇈"],[0,"⇉"],[0,"⇊"],[0,"⇋"],[0,"⇌"],[0,"⇍"],[0,"⇎"],[0,"⇏"],[0,"⇐"],[0,"⇑"],[0,"⇒"],[0,"⇓"],[0,"⇔"],[0,"⇕"],[0,"⇖"],[0,"⇗"],[0,"⇘"],[0,"⇙"],[0,"⇚"],[0,"⇛"],[1,"⇝"],[6,"⇤"],[0,"⇥"],[15,"⇵"],[7,"⇽"],[0,"⇾"],[0,"⇿"],[0,"∀"],[0,"∁"],[0,{v:"∂",n:824,o:"∂̸"}],[0,"∃"],[0,"∄"],[0,"∅"],[1,"∇"],[0,"∈"],[0,"∉"],[1,"∋"],[0,"∌"],[2,"∏"],[0,"∐"],[0,"∑"],[0,"−"],[0,"∓"],[0,"∔"],[1,"∖"],[0,"∗"],[0,"∘"],[1,"√"],[2,"∝"],[0,"∞"],[0,"∟"],[0,{v:"∠",n:8402,o:"∠⃒"}],[0,"∡"],[0,"∢"],[0,"∣"],[0,"∤"],[0,"∥"],[0,"∦"],[0,"∧"],[0,"∨"],[0,{v:"∩",n:65024,o:"∩︀"}],[0,{v:"∪",n:65024,o:"∪︀"}],[0,"∫"],[0,"∬"],[0,"∭"],[0,"∮"],[0,"∯"],[0,"∰"],[0,"∱"],[0,"∲"],[0,"∳"],[0,"∴"],[0,"∵"],[0,"∶"],[0,"∷"],[0,"∸"],[1,"∺"],[0,"∻"],[0,{v:"∼",n:8402,o:"∼⃒"}],[0,{v:"∽",n:817,o:"∽̱"}],[0,{v:"∾",n:819,o:"∾̳"}],[0,"∿"],[0,"≀"],[0,"≁"],[0,{v:"≂",n:824,o:"≂̸"}],[0,"≃"],[0,"≄"],[0,"≅"],[0,"≆"],[0,"≇"],[0,"≈"],[0,"≉"],[0,"≊"],[0,{v:"≋",n:824,o:"≋̸"}],[0,"≌"],[0,{v:"≍",n:8402,o:"≍⃒"}],[0,{v:"≎",n:824,o:"≎̸"}],[0,{v:"≏",n:824,o:"≏̸"}],[0,{v:"≐",n:824,o:"≐̸"}],[0,"≑"],[0,"≒"],[0,"≓"],[0,"≔"],[0,"≕"],[0,"≖"],[0,"≗"],[1,"≙"],[0,"≚"],[1,"≜"],[2,"≟"],[0,"≠"],[0,{v:"≡",n:8421,o:"≡⃥"}],[0,"≢"],[1,{v:"≤",n:8402,o:"≤⃒"}],[0,{v:"≥",n:8402,o:"≥⃒"}],[0,{v:"≦",n:824,o:"≦̸"}],[0,{v:"≧",n:824,o:"≧̸"}],[0,{v:"≨",n:65024,o:"≨︀"}],[0,{v:"≩",n:65024,o:"≩︀"}],[0,{v:"≪",n:new Map(dI([[824,"≪̸"],[7577,"≪⃒"]]))}],[0,{v:"≫",n:new Map(dI([[824,"≫̸"],[7577,"≫⃒"]]))}],[0,"≬"],[0,"≭"],[0,"≮"],[0,"≯"],[0,"≰"],[0,"≱"],[0,"≲"],[0,"≳"],[0,"≴"],[0,"≵"],[0,"≶"],[0,"≷"],[0,"≸"],[0,"≹"],[0,"≺"],[0,"≻"],[0,"≼"],[0,"≽"],[0,"≾"],[0,{v:"≿",n:824,o:"≿̸"}],[0,"⊀"],[0,"⊁"],[0,{v:"⊂",n:8402,o:"⊂⃒"}],[0,{v:"⊃",n:8402,o:"⊃⃒"}],[0,"⊄"],[0,"⊅"],[0,"⊆"],[0,"⊇"],[0,"⊈"],[0,"⊉"],[0,{v:"⊊",n:65024,o:"⊊︀"}],[0,{v:"⊋",n:65024,o:"⊋︀"}],[1,"⊍"],[0,"⊎"],[0,{v:"⊏",n:824,o:"⊏̸"}],[0,{v:"⊐",n:824,o:"⊐̸"}],[0,"⊑"],[0,"⊒"],[0,{v:"⊓",n:65024,o:"⊓︀"}],[0,{v:"⊔",n:65024,o:"⊔︀"}],[0,"⊕"],[0,"⊖"],[0,"⊗"],[0,"⊘"],[0,"⊙"],[0,"⊚"],[0,"⊛"],[1,"⊝"],[0,"⊞"],[0,"⊟"],[0,"⊠"],[0,"⊡"],[0,"⊢"],[0,"⊣"],[0,"⊤"],[0,"⊥"],[1,"⊧"],[0,"⊨"],[0,"⊩"],[0,"⊪"],[0,"⊫"],[0,"⊬"],[0,"⊭"],[0,"⊮"],[0,"⊯"],[0,"⊰"],[1,"⊲"],[0,"⊳"],[0,{v:"⊴",n:8402,o:"⊴⃒"}],[0,{v:"⊵",n:8402,o:"⊵⃒"}],[0,"⊶"],[0,"⊷"],[0,"⊸"],[0,"⊹"],[0,"⊺"],[0,"⊻"],[1,"⊽"],[0,"⊾"],[0,"⊿"],[0,"⋀"],[0,"⋁"],[0,"⋂"],[0,"⋃"],[0,"⋄"],[0,"⋅"],[0,"⋆"],[0,"⋇"],[0,"⋈"],[0,"⋉"],[0,"⋊"],[0,"⋋"],[0,"⋌"],[0,"⋍"],[0,"⋎"],[0,"⋏"],[0,"⋐"],[0,"⋑"],[0,"⋒"],[0,"⋓"],[0,"⋔"],[0,"⋕"],[0,"⋖"],[0,"⋗"],[0,{v:"⋘",n:824,o:"⋘̸"}],[0,{v:"⋙",n:824,o:"⋙̸"}],[0,{v:"⋚",n:65024,o:"⋚︀"}],[0,{v:"⋛",n:65024,o:"⋛︀"}],[2,"⋞"],[0,"⋟"],[0,"⋠"],[0,"⋡"],[0,"⋢"],[0,"⋣"],[2,"⋦"],[0,"⋧"],[0,"⋨"],[0,"⋩"],[0,"⋪"],[0,"⋫"],[0,"⋬"],[0,"⋭"],[0,"⋮"],[0,"⋯"],[0,"⋰"],[0,"⋱"],[0,"⋲"],[0,"⋳"],[0,"⋴"],[0,{v:"⋵",n:824,o:"⋵̸"}],[0,"⋶"],[0,"⋷"],[1,{v:"⋹",n:824,o:"⋹̸"}],[0,"⋺"],[0,"⋻"],[0,"⋼"],[0,"⋽"],[0,"⋾"],[6,"⌅"],[0,"⌆"],[1,"⌈"],[0,"⌉"],[0,"⌊"],[0,"⌋"],[0,"⌌"],[0,"⌍"],[0,"⌎"],[0,"⌏"],[0,"⌐"],[1,"⌒"],[0,"⌓"],[1,"⌕"],[0,"⌖"],[5,"⌜"],[0,"⌝"],[0,"⌞"],[0,"⌟"],[2,"⌢"],[0,"⌣"],[9,"⌭"],[0,"⌮"],[7,"⌶"],[6,"⌽"],[1,"⌿"],[60,"⍼"],[51,"⎰"],[0,"⎱"],[2,"⎴"],[0,"⎵"],[0,"⎶"],[37,"⏜"],[0,"⏝"],[0,"⏞"],[0,"⏟"],[2,"⏢"],[4,"⏧"],[59,"␣"],[164,"Ⓢ"],[55,"─"],[1,"│"],[9,"┌"],[3,"┐"],[3,"└"],[3,"┘"],[3,"├"],[7,"┤"],[7,"┬"],[7,"┴"],[7,"┼"],[19,"═"],[0,"║"],[0,"╒"],[0,"╓"],[0,"╔"],[0,"╕"],[0,"╖"],[0,"╗"],[0,"╘"],[0,"╙"],[0,"╚"],[0,"╛"],[0,"╜"],[0,"╝"],[0,"╞"],[0,"╟"],[0,"╠"],[0,"╡"],[0,"╢"],[0,"╣"],[0,"╤"],[0,"╥"],[0,"╦"],[0,"╧"],[0,"╨"],[0,"╩"],[0,"╪"],[0,"╫"],[0,"╬"],[19,"▀"],[3,"▄"],[3,"█"],[8,"░"],[0,"▒"],[0,"▓"],[13,"□"],[8,"▪"],[0,"▫"],[1,"▭"],[0,"▮"],[2,"▱"],[1,"△"],[0,"▴"],[0,"▵"],[2,"▸"],[0,"▹"],[3,"▽"],[0,"▾"],[0,"▿"],[2,"◂"],[0,"◃"],[6,"◊"],[0,"○"],[32,"◬"],[2,"◯"],[8,"◸"],[0,"◹"],[0,"◺"],[0,"◻"],[0,"◼"],[8,"★"],[0,"☆"],[7,"☎"],[49,"♀"],[1,"♂"],[29,"♠"],[2,"♣"],[1,"♥"],[0,"♦"],[3,"♪"],[2,"♭"],[0,"♮"],[0,"♯"],[163,"✓"],[3,"✗"],[8,"✠"],[21,"✶"],[33,"❘"],[25,"❲"],[0,"❳"],[84,"⟈"],[0,"⟉"],[28,"⟦"],[0,"⟧"],[0,"⟨"],[0,"⟩"],[0,"⟪"],[0,"⟫"],[0,"⟬"],[0,"⟭"],[7,"⟵"],[0,"⟶"],[0,"⟷"],[0,"⟸"],[0,"⟹"],[0,"⟺"],[1,"⟼"],[2,"⟿"],[258,"⤂"],[0,"⤃"],[0,"⤄"],[0,"⤅"],[6,"⤌"],[0,"⤍"],[0,"⤎"],[0,"⤏"],[0,"⤐"],[0,"⤑"],[0,"⤒"],[0,"⤓"],[2,"⤖"],[2,"⤙"],[0,"⤚"],[0,"⤛"],[0,"⤜"],[0,"⤝"],[0,"⤞"],[0,"⤟"],[0,"⤠"],[2,"⤣"],[0,"⤤"],[0,"⤥"],[0,"⤦"],[0,"⤧"],[0,"⤨"],[0,"⤩"],[0,"⤪"],[8,{v:"⤳",n:824,o:"⤳̸"}],[1,"⤵"],[0,"⤶"],[0,"⤷"],[0,"⤸"],[0,"⤹"],[2,"⤼"],[0,"⤽"],[7,"⥅"],[2,"⥈"],[0,"⥉"],[0,"⥊"],[0,"⥋"],[2,"⥎"],[0,"⥏"],[0,"⥐"],[0,"⥑"],[0,"⥒"],[0,"⥓"],[0,"⥔"],[0,"⥕"],[0,"⥖"],[0,"⥗"],[0,"⥘"],[0,"⥙"],[0,"⥚"],[0,"⥛"],[0,"⥜"],[0,"⥝"],[0,"⥞"],[0,"⥟"],[0,"⥠"],[0,"⥡"],[0,"⥢"],[0,"⥣"],[0,"⥤"],[0,"⥥"],[0,"⥦"],[0,"⥧"],[0,"⥨"],[0,"⥩"],[0,"⥪"],[0,"⥫"],[0,"⥬"],[0,"⥭"],[0,"⥮"],[0,"⥯"],[0,"⥰"],[0,"⥱"],[0,"⥲"],[0,"⥳"],[0,"⥴"],[0,"⥵"],[0,"⥶"],[1,"⥸"],[0,"⥹"],[1,"⥻"],[0,"⥼"],[0,"⥽"],[0,"⥾"],[0,"⥿"],[5,"⦅"],[0,"⦆"],[4,"⦋"],[0,"⦌"],[0,"⦍"],[0,"⦎"],[0,"⦏"],[0,"⦐"],[0,"⦑"],[0,"⦒"],[0,"⦓"],[0,"⦔"],[0,"⦕"],[0,"⦖"],[3,"⦚"],[1,"⦜"],[0,"⦝"],[6,"⦤"],[0,"⦥"],[0,"⦦"],[0,"⦧"],[0,"⦨"],[0,"⦩"],[0,"⦪"],[0,"⦫"],[0,"⦬"],[0,"⦭"],[0,"⦮"],[0,"⦯"],[0,"⦰"],[0,"⦱"],[0,"⦲"],[0,"⦳"],[0,"⦴"],[0,"⦵"],[0,"⦶"],[0,"⦷"],[1,"⦹"],[1,"⦻"],[0,"⦼"],[1,"⦾"],[0,"⦿"],[0,"⧀"],[0,"⧁"],[0,"⧂"],[0,"⧃"],[0,"⧄"],[0,"⧅"],[3,"⧉"],[3,"⧍"],[0,"⧎"],[0,{v:"⧏",n:824,o:"⧏̸"}],[0,{v:"⧐",n:824,o:"⧐̸"}],[11,"⧜"],[0,"⧝"],[0,"⧞"],[4,"⧣"],[0,"⧤"],[0,"⧥"],[5,"⧫"],[8,"⧴"],[1,"⧶"],[9,"⨀"],[0,"⨁"],[0,"⨂"],[1,"⨄"],[1,"⨆"],[5,"⨌"],[0,"⨍"],[2,"⨐"],[0,"⨑"],[0,"⨒"],[0,"⨓"],[0,"⨔"],[0,"⨕"],[0,"⨖"],[0,"⨗"],[10,"⨢"],[0,"⨣"],[0,"⨤"],[0,"⨥"],[0,"⨦"],[0,"⨧"],[1,"⨩"],[0,"⨪"],[2,"⨭"],[0,"⨮"],[0,"⨯"],[0,"⨰"],[0,"⨱"],[1,"⨳"],[0,"⨴"],[0,"⨵"],[0,"⨶"],[0,"⨷"],[0,"⨸"],[0,"⨹"],[0,"⨺"],[0,"⨻"],[0,"⨼"],[2,"⨿"],[0,"⩀"],[1,"⩂"],[0,"⩃"],[0,"⩄"],[0,"⩅"],[0,"⩆"],[0,"⩇"],[0,"⩈"],[0,"⩉"],[0,"⩊"],[0,"⩋"],[0,"⩌"],[0,"⩍"],[2,"⩐"],[2,"⩓"],[0,"⩔"],[0,"⩕"],[0,"⩖"],[0,"⩗"],[0,"⩘"],[1,"⩚"],[0,"⩛"],[0,"⩜"],[0,"⩝"],[1,"⩟"],[6,"⩦"],[3,"⩪"],[2,{v:"⩭",n:824,o:"⩭̸"}],[0,"⩮"],[0,"⩯"],[0,{v:"⩰",n:824,o:"⩰̸"}],[0,"⩱"],[0,"⩲"],[0,"⩳"],[0,"⩴"],[0,"⩵"],[1,"⩷"],[0,"⩸"],[0,"⩹"],[0,"⩺"],[0,"⩻"],[0,"⩼"],[0,{v:"⩽",n:824,o:"⩽̸"}],[0,{v:"⩾",n:824,o:"⩾̸"}],[0,"⩿"],[0,"⪀"],[0,"⪁"],[0,"⪂"],[0,"⪃"],[0,"⪄"],[0,"⪅"],[0,"⪆"],[0,"⪇"],[0,"⪈"],[0,"⪉"],[0,"⪊"],[0,"⪋"],[0,"⪌"],[0,"⪍"],[0,"⪎"],[0,"⪏"],[0,"⪐"],[0,"⪑"],[0,"⪒"],[0,"⪓"],[0,"⪔"],[0,"⪕"],[0,"⪖"],[0,"⪗"],[0,"⪘"],[0,"⪙"],[0,"⪚"],[2,"⪝"],[0,"⪞"],[0,"⪟"],[0,"⪠"],[0,{v:"⪡",n:824,o:"⪡̸"}],[0,{v:"⪢",n:824,o:"⪢̸"}],[1,"⪤"],[0,"⪥"],[0,"⪦"],[0,"⪧"],[0,"⪨"],[0,"⪩"],[0,"⪪"],[0,"⪫"],[0,{v:"⪬",n:65024,o:"⪬︀"}],[0,{v:"⪭",n:65024,o:"⪭︀"}],[0,"⪮"],[0,{v:"⪯",n:824,o:"⪯̸"}],[0,{v:"⪰",n:824,o:"⪰̸"}],[2,"⪳"],[0,"⪴"],[0,"⪵"],[0,"⪶"],[0,"⪷"],[0,"⪸"],[0,"⪹"],[0,"⪺"],[0,"⪻"],[0,"⪼"],[0,"⪽"],[0,"⪾"],[0,"⪿"],[0,"⫀"],[0,"⫁"],[0,"⫂"],[0,"⫃"],[0,"⫄"],[0,{v:"⫅",n:824,o:"⫅̸"}],[0,{v:"⫆",n:824,o:"⫆̸"}],[0,"⫇"],[0,"⫈"],[2,{v:"⫋",n:65024,o:"⫋︀"}],[0,{v:"⫌",n:65024,o:"⫌︀"}],[2,"⫏"],[0,"⫐"],[0,"⫑"],[0,"⫒"],[0,"⫓"],[0,"⫔"],[0,"⫕"],[0,"⫖"],[0,"⫗"],[0,"⫘"],[0,"⫙"],[0,"⫚"],[0,"⫛"],[8,"⫤"],[1,"⫦"],[0,"⫧"],[0,"⫨"],[0,"⫩"],[1,"⫫"],[0,"⫬"],[0,"⫭"],[0,"⫮"],[0,"⫯"],[0,"⫰"],[0,"⫱"],[0,"⫲"],[0,"⫳"],[9,{v:"⫽",n:8421,o:"⫽⃥"}],[44343,{n:new Map(dI([[56476,"𝒜"],[1,"𝒞"],[0,"𝒟"],[2,"𝒢"],[2,"𝒥"],[0,"𝒦"],[2,"𝒩"],[0,"𝒪"],[0,"𝒫"],[0,"𝒬"],[1,"𝒮"],[0,"𝒯"],[0,"𝒰"],[0,"𝒱"],[0,"𝒲"],[0,"𝒳"],[0,"𝒴"],[0,"𝒵"],[0,"𝒶"],[0,"𝒷"],[0,"𝒸"],[0,"𝒹"],[1,"𝒻"],[1,"𝒽"],[0,"𝒾"],[0,"𝒿"],[0,"𝓀"],[0,"𝓁"],[0,"𝓂"],[0,"𝓃"],[1,"𝓅"],[0,"𝓆"],[0,"𝓇"],[0,"𝓈"],[0,"𝓉"],[0,"𝓊"],[0,"𝓋"],[0,"𝓌"],[0,"𝓍"],[0,"𝓎"],[0,"𝓏"],[52,"𝔄"],[0,"𝔅"],[1,"𝔇"],[0,"𝔈"],[0,"𝔉"],[0,"𝔊"],[2,"𝔍"],[0,"𝔎"],[0,"𝔏"],[0,"𝔐"],[0,"𝔑"],[0,"𝔒"],[0,"𝔓"],[0,"𝔔"],[1,"𝔖"],[0,"𝔗"],[0,"𝔘"],[0,"𝔙"],[0,"𝔚"],[0,"𝔛"],[0,"𝔜"],[1,"𝔞"],[0,"𝔟"],[0,"𝔠"],[0,"𝔡"],[0,"𝔢"],[0,"𝔣"],[0,"𝔤"],[0,"𝔥"],[0,"𝔦"],[0,"𝔧"],[0,"𝔨"],[0,"𝔩"],[0,"𝔪"],[0,"𝔫"],[0,"𝔬"],[0,"𝔭"],[0,"𝔮"],[0,"𝔯"],[0,"𝔰"],[0,"𝔱"],[0,"𝔲"],[0,"𝔳"],[0,"𝔴"],[0,"𝔵"],[0,"𝔶"],[0,"𝔷"],[0,"𝔸"],[0,"𝔹"],[1,"𝔻"],[0,"𝔼"],[0,"𝔽"],[0,"𝔾"],[1,"𝕀"],[0,"𝕁"],[0,"𝕂"],[0,"𝕃"],[0,"𝕄"],[1,"𝕆"],[3,"𝕊"],[0,"𝕋"],[0,"𝕌"],[0,"𝕍"],[0,"𝕎"],[0,"𝕏"],[0,"𝕐"],[1,"𝕒"],[0,"𝕓"],[0,"𝕔"],[0,"𝕕"],[0,"𝕖"],[0,"𝕗"],[0,"𝕘"],[0,"𝕙"],[0,"𝕚"],[0,"𝕛"],[0,"𝕜"],[0,"𝕝"],[0,"𝕞"],[0,"𝕟"],[0,"𝕠"],[0,"𝕡"],[0,"𝕢"],[0,"𝕣"],[0,"𝕤"],[0,"𝕥"],[0,"𝕦"],[0,"𝕧"],[0,"𝕨"],[0,"𝕩"],[0,"𝕪"],[0,"𝕫"]]))}],[8906,"ff"],[0,"fi"],[0,"fl"],[0,"ffi"],[0,"ffl"]]))});var lI=j((pE)=>{Object.defineProperty(pE,"__esModule",{value:!0});pE.escapeText=pE.escapeAttribute=pE.escapeUTF8=pE.escape=pE.encodeXML=pE.getCodePoint=pE.xmlReplacer=void 0;pE.xmlReplacer=/["&'<>$\x80-\uFFFF]/g;var cS=new Map([[34,"""],[38,"&"],[39,"'"],[60,"<"],[62,">"]]);pE.getCodePoint=String.prototype.codePointAt!=null?function(_,E){return _.codePointAt(E)}:function(_,E){return(_.charCodeAt(E)&64512)===55296?(_.charCodeAt(E)-55296)*1024+_.charCodeAt(E+1)-56320+65536:_.charCodeAt(E)};function dS(_){var E="",R=0,N;while((N=pE.xmlReplacer.exec(_))!==null){var A=N.index,L=_.charCodeAt(A),U=cS.get(L);if(U!==void 0)E+=_.substring(R,A)+U,R=A+1;else E+="".concat(_.substring(R,A),"&#x").concat(pE.getCodePoint(_,A).toString(16),";"),R=pE.xmlReplacer.lastIndex+=Number((L&64512)===55296)}return E+_.substr(R)}pE.encodeXML=dS;pE.escape=dS;function g3(_,E){return function R(N){var A,L=0,U="";while(A=_.exec(N)){if(L!==A.index)U+=N.substring(L,A.index);U+=E.get(A[0].charCodeAt(0)),L=A.index+1}return U+N.substring(L)}}pE.escapeUTF8=g3(/[&<>'"]/g,cS);pE.escapeAttribute=g3(/["&\u00A0]/g,new Map([[34,"""],[38,"&"],[160," "]]));pE.escapeText=g3(/[&<>\u00A0]/g,new Map([[38,"&"],[60,"<"],[62,">"],[160," "]]))});var y3=j((M1)=>{var cQ=M1&&M1.__importDefault||function(_){return _&&_.__esModule?_:{default:_}};Object.defineProperty(M1,"__esModule",{value:!0});M1.encodeNonAsciiHTML=M1.encodeHTML=void 0;var dQ=cQ(uS()),lS=lI(),lQ=/[\t\n!-,./:-@[-`\f{-}$\x80-\uFFFF]/g;function nQ(_){return nS(lQ,_)}M1.encodeHTML=nQ;function oQ(_){return nS(lS.xmlReplacer,_)}M1.encodeNonAsciiHTML=oQ;function nS(_,E){var R="",N=0,A;while((A=_.exec(E))!==null){var L=A.index;R+=E.substring(N,L);var U=E.charCodeAt(L),G=dQ.default.get(U);if(typeof G==="object"){if(L+1{Object.defineProperty(J_,"__esModule",{value:!0});J_.decodeXMLStrict=J_.decodeHTML5Strict=J_.decodeHTML4Strict=J_.decodeHTML5=J_.decodeHTML4=J_.decodeHTMLAttribute=J_.decodeHTMLStrict=J_.decodeHTML=J_.decodeXML=J_.DecodingMode=J_.EntityDecoder=J_.encodeHTML5=J_.encodeHTML4=J_.encodeNonAsciiHTML=J_.encodeHTML=J_.escapeText=J_.escapeAttribute=J_.escapeUTF8=J_.escape=J_.encodeXML=J_.encode=J_.decodeStrict=J_.decode=J_.EncodingMode=J_.EntityLevel=void 0;var b3=wO(),oS=y3(),nI=lI(),jT;(function(_){_[_.XML=0]="XML",_[_.HTML=1]="HTML"})(jT=J_.EntityLevel||(J_.EntityLevel={}));var zO;(function(_){_[_.UTF8=0]="UTF8",_[_.ASCII=1]="ASCII",_[_.Extensive=2]="Extensive",_[_.Attribute=3]="Attribute",_[_.Text=4]="Text"})(zO=J_.EncodingMode||(J_.EncodingMode={}));function sS(_,E){if(E===void 0)E=jT.XML;var R=typeof E==="number"?E:E.level;if(R===jT.HTML){var N=typeof E==="object"?E.mode:void 0;return b3.decodeHTML(_,N)}return b3.decodeXML(_)}J_.decode=sS;function sQ(_,E){var R;if(E===void 0)E=jT.XML;var N=typeof E==="number"?{level:E}:E;return(R=N.mode)!==null&&R!==void 0||(N.mode=b3.DecodingMode.Strict),sS(_,N)}J_.decodeStrict=sQ;function tQ(_,E){if(E===void 0)E=jT.XML;var R=typeof E==="number"?{level:E}:E;if(R.mode===zO.UTF8)return nI.escapeUTF8(_);if(R.mode===zO.Attribute)return nI.escapeAttribute(_);if(R.mode===zO.Text)return nI.escapeText(_);if(R.level===jT.HTML){if(R.mode===zO.ASCII)return oS.encodeNonAsciiHTML(_);return oS.encodeHTML(_)}return nI.encodeXML(_)}J_.encode=tQ;var xO=lI();Object.defineProperty(J_,"encodeXML",{enumerable:!0,get:function(){return xO.encodeXML}});Object.defineProperty(J_,"escape",{enumerable:!0,get:function(){return xO.escape}});Object.defineProperty(J_,"escapeUTF8",{enumerable:!0,get:function(){return xO.escapeUTF8}});Object.defineProperty(J_,"escapeAttribute",{enumerable:!0,get:function(){return xO.escapeAttribute}});Object.defineProperty(J_,"escapeText",{enumerable:!0,get:function(){return xO.escapeText}});var oI=y3();Object.defineProperty(J_,"encodeHTML",{enumerable:!0,get:function(){return oI.encodeHTML}});Object.defineProperty(J_,"encodeNonAsciiHTML",{enumerable:!0,get:function(){return oI.encodeNonAsciiHTML}});Object.defineProperty(J_,"encodeHTML4",{enumerable:!0,get:function(){return oI.encodeHTML}});Object.defineProperty(J_,"encodeHTML5",{enumerable:!0,get:function(){return oI.encodeHTML}});var TN=wO();Object.defineProperty(J_,"EntityDecoder",{enumerable:!0,get:function(){return TN.EntityDecoder}});Object.defineProperty(J_,"DecodingMode",{enumerable:!0,get:function(){return TN.DecodingMode}});Object.defineProperty(J_,"decodeXML",{enumerable:!0,get:function(){return TN.decodeXML}});Object.defineProperty(J_,"decodeHTML",{enumerable:!0,get:function(){return TN.decodeHTML}});Object.defineProperty(J_,"decodeHTMLStrict",{enumerable:!0,get:function(){return TN.decodeHTMLStrict}});Object.defineProperty(J_,"decodeHTMLAttribute",{enumerable:!0,get:function(){return TN.decodeHTMLAttribute}});Object.defineProperty(J_,"decodeHTML4",{enumerable:!0,get:function(){return TN.decodeHTML}});Object.defineProperty(J_,"decodeHTML5",{enumerable:!0,get:function(){return TN.decodeHTML}});Object.defineProperty(J_,"decodeHTML4Strict",{enumerable:!0,get:function(){return TN.decodeHTMLStrict}});Object.defineProperty(J_,"decodeHTML5Strict",{enumerable:!0,get:function(){return TN.decodeHTMLStrict}});Object.defineProperty(J_,"decodeXMLStrict",{enumerable:!0,get:function(){return TN.decodeXML}})});var rS=j((vT)=>{Object.defineProperty(vT,"__esModule",{value:!0});vT.attributeNames=vT.elementNames=void 0;vT.elementNames=new Map(["altGlyph","altGlyphDef","altGlyphItem","animateColor","animateMotion","animateTransform","clipPath","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","foreignObject","glyphRef","linearGradient","radialGradient","textPath"].map(function(_){return[_.toLowerCase(),_]}));vT.attributeNames=new Map(["definitionURL","attributeName","attributeType","baseFrequency","baseProfile","calcMode","clipPathUnits","diffuseConstant","edgeMode","filterUnits","glyphRef","gradientTransform","gradientUnits","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","lengthAdjust","limitingConeAngle","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","numOctaves","pathLength","patternContentUnits","patternTransform","patternUnits","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","specularConstant","specularExponent","spreadMethod","startOffset","stdDeviation","stitchTiles","surfaceScale","systemLanguage","tableValues","targetX","targetY","textLength","viewBox","viewTarget","xChannelSelector","yChannelSelector","zoomAndPan"].map(function(_){return[_.toLowerCase(),_]}))});var _C=j((hR)=>{var pT=hR&&hR.__assign||function(){return pT=Object.assign||function(_){for(var E,R=1,N=arguments.length;R0)N+=tI(_.children,E);if(E.xmlMode||!aS.has(_.name))N+="")}return N}function Iz(_){return"<".concat(_.data,">")}function Lz(_,E){var R,N=_.data||"";if(((R=E.encodeEntities)!==null&&R!==void 0?R:E.decodeEntities)!==!1&&!(!E.xmlMode&&_.parent&&_z.has(_.parent.name)))N=E.xmlMode||E.encodeEntities!=="utf8"?sI.encodeXML(N):sI.escapeText(N);return N}function Uz(_){return"")}function Gz(_){return"")}});var c3=j((VR)=>{var Dz=VR&&VR.__importDefault||function(_){return _&&_.__esModule?_:{default:_}};Object.defineProperty(VR,"__esModule",{value:!0});VR.innerText=VR.textContent=VR.getText=VR.getInnerHTML=VR.getOuterHTML=void 0;var VN=lN(),Sz=Dz(_C()),Cz=fT();function EC(_,E){return Sz.default(_,E)}VR.getOuterHTML=EC;function Pz(_,E){return VN.hasChildren(_)?_.children.map(function(R){return EC(R,E)}).join(""):""}VR.getInnerHTML=Pz;function rI(_){if(Array.isArray(_))return _.map(rI).join("");if(VN.isTag(_))return _.name==="br"?"\n":rI(_.children);if(VN.isCDATA(_))return rI(_.children);if(VN.isText(_))return _.data;return""}VR.getText=rI;function i3(_){if(Array.isArray(_))return _.map(i3).join("");if(VN.hasChildren(_)&&!VN.isComment(_))return i3(_.children);if(VN.isText(_))return _.data;return""}VR.textContent=i3;function u3(_){if(Array.isArray(_))return _.map(u3).join("");if(VN.hasChildren(_)&&(_.type===Cz.ElementType.Tag||VN.isCDATA(_)))return u3(_.children);if(VN.isText(_))return _.data;return""}VR.innerText=u3});var TC=j((yE)=>{Object.defineProperty(yE,"__esModule",{value:!0});yE.prevElementSibling=yE.nextElementSibling=yE.getName=yE.hasAttrib=yE.getAttributeValue=yE.getSiblings=yE.getParent=yE.getChildren=void 0;var d3=lN();function RC(_){return d3.hasChildren(_)?_.children:[]}yE.getChildren=RC;function NC(_){return _.parent||null}yE.getParent=NC;function Yz(_){var E,R,N=NC(_);if(N!=null)return RC(N);var A=[_],L=_.prev,U=_.next;while(L!=null)A.unshift(L),E=L,L=E.prev;while(U!=null)A.push(U),R=U,U=R.next;return A}yE.getSiblings=Yz;function Hz(_,E){var R;return(R=_.attribs)===null||R===void 0?void 0:R[E]}yE.getAttributeValue=Hz;function Wz(_,E){return _.attribs!=null&&Object.prototype.hasOwnProperty.call(_.attribs,E)&&_.attribs[E]!=null}yE.hasAttrib=Wz;function Mz(_){return _.name}yE.getName=Mz;function Fz(_){var E,R=_.next;while(R!==null&&!d3.isTag(R))E=R,R=E.next;return R}yE.nextElementSibling=Fz;function Bz(_){var E,R=_.prev;while(R!==null&&!d3.isTag(R))E=R,R=E.prev;return R}yE.prevElementSibling=Bz});var OC=j((KR)=>{Object.defineProperty(KR,"__esModule",{value:!0});KR.prepend=KR.prependChild=KR.append=KR.appendChild=KR.replaceElement=KR.removeElement=void 0;function qO(_){if(_.prev)_.prev.next=_.next;if(_.next)_.next.prev=_.prev;if(_.parent){var E=_.parent.children,R=E.lastIndexOf(_);if(R>=0)E.splice(R,1)}_.next=null,_.prev=null,_.parent=null}KR.removeElement=qO;function Vz(_,E){var R=E.prev=_.prev;if(R)R.next=E;var N=E.next=_.next;if(N)N.prev=E;var A=E.parent=_.parent;if(A){var L=A.children;L[L.lastIndexOf(_)]=E,_.parent=null}}KR.replaceElement=Vz;function Kz(_,E){if(qO(E),E.next=null,E.parent=_,_.children.push(E)>1){var R=_.children[_.children.length-2];R.next=E,E.prev=R}else E.prev=null}KR.appendChild=Kz;function Xz(_,E){qO(E);var{parent:R,next:N}=_;if(E.next=N,E.prev=_,_.next=E,E.parent=R,N){if(N.prev=E,R){var A=R.children;A.splice(A.lastIndexOf(N),0,E)}}else if(R)R.children.push(E)}KR.append=Xz;function Jz(_,E){if(qO(E),E.parent=_,E.prev=null,_.children.unshift(E)!==1){var R=_.children[1];R.prev=E,E.next=R}else E.next=null}KR.prependChild=Jz;function $z(_,E){qO(E);var R=_.parent;if(R){var N=R.children;N.splice(N.indexOf(_),0,E)}if(_.prev)_.prev.next=E;E.parent=R,E.prev=_.prev,E.next=_,_.prev=E}KR.prepend=$z});var l3=j((XR)=>{Object.defineProperty(XR,"__esModule",{value:!0});XR.findAll=XR.existsOne=XR.findOne=XR.findOneChild=XR.find=XR.filter=void 0;var aI=lN();function Zz(_,E,R,N){if(R===void 0)R=!0;if(N===void 0)N=1/0;return AC(_,Array.isArray(E)?E:[E],R,N)}XR.filter=Zz;function AC(_,E,R,N){var A=[],L=[E],U=[0];for(;;){if(U[0]>=L[0].length){if(U.length===1)return A;L.shift(),U.shift();continue}var G=L[0][U[0]++];if(_(G)){if(A.push(G),--N<=0)return A}if(R&&aI.hasChildren(G)&&G.children.length>0)U.unshift(0),L.unshift(G.children)}}XR.find=AC;function wz(_,E){return E.find(_)}XR.findOneChild=wz;function IC(_,E,R){if(R===void 0)R=!0;var N=null;for(var A=0;A0)N=IC(_,L.children,!0)}return N}XR.findOne=IC;function LC(_,E){return E.some(function(R){return aI.isTag(R)&&(_(R)||LC(_,R.children))})}XR.existsOne=LC;function Qz(_,E){var R=[],N=[E],A=[0];for(;;){if(A[0]>=N[0].length){if(N.length===1)return R;N.shift(),A.shift();continue}var L=N[0][A[0]++];if(!aI.isTag(L))continue;if(_(L))R.push(L);if(L.children.length>0)A.unshift(0),N.unshift(L.children)}}XR.findAll=Qz});var n3=j((nR)=>{Object.defineProperty(nR,"__esModule",{value:!0});nR.getElementsByTagType=nR.getElementsByTagName=nR.getElementById=nR.getElements=nR.testElement=void 0;var l1=lN(),_L=l3(),eI={tag_name:function(_){if(typeof _==="function")return function(E){return l1.isTag(E)&&_(E.name)};else if(_==="*")return l1.isTag;return function(E){return l1.isTag(E)&&E.name===_}},tag_type:function(_){if(typeof _==="function")return function(E){return _(E.type)};return function(E){return E.type===_}},tag_contains:function(_){if(typeof _==="function")return function(E){return l1.isText(E)&&_(E.data)};return function(E){return l1.isText(E)&&E.data===_}}};function UC(_,E){if(typeof E==="function")return function(R){return l1.isTag(R)&&E(R.attribs[_])};return function(R){return l1.isTag(R)&&R.attribs[_]===E}}function zz(_,E){return function(R){return _(R)||E(R)}}function GC(_){var E=Object.keys(_).map(function(R){var N=_[R];return Object.prototype.hasOwnProperty.call(eI,R)?eI[R](N):UC(R,N)});return E.length===0?null:E.reduce(zz)}function xz(_,E){var R=GC(_);return R?R(E):!0}nR.testElement=xz;function qz(_,E,R,N){if(N===void 0)N=1/0;var A=GC(_);return A?_L.filter(A,E,R,N):[]}nR.getElements=qz;function fz(_,E,R){if(R===void 0)R=!0;if(!Array.isArray(E))E=[E];return _L.findOne(UC("id",_),E,R)}nR.getElementById=fz;function jz(_,E,R,N){if(R===void 0)R=!0;if(N===void 0)N=1/0;return _L.filter(eI.tag_name(_),E,R,N)}nR.getElementsByTagName=jz;function vz(_,E,R,N){if(R===void 0)R=!0;if(N===void 0)N=1/0;return _L.filter(eI.tag_type(_),E,R,N)}nR.getElementsByTagType=vz});var CC=j((ON)=>{Object.defineProperty(ON,"__esModule",{value:!0});ON.uniqueSort=ON.compareDocumentPosition=ON.DocumentPosition=ON.removeSubsets=void 0;var DC=lN();function pz(_){var E=_.length;while(--E>=0){var R=_[E];if(E>0&&_.lastIndexOf(R,E-1)>=0){_.splice(E,1);continue}for(var N=R.parent;N;N=N.parent)if(_.includes(N)){_.splice(E,1);break}}return _}ON.removeSubsets=pz;var KN;(function(_){_[_.DISCONNECTED=1]="DISCONNECTED",_[_.PRECEDING=2]="PRECEDING",_[_.FOLLOWING=4]="FOLLOWING",_[_.CONTAINS=8]="CONTAINS",_[_.CONTAINED_BY=16]="CONTAINED_BY"})(KN=ON.DocumentPosition||(ON.DocumentPosition={}));function SC(_,E){var R=[],N=[];if(_===E)return 0;var A=DC.hasChildren(_)?_:_.parent;while(A)R.unshift(A),A=A.parent;A=DC.hasChildren(E)?E:E.parent;while(A)N.unshift(A),A=A.parent;var L=Math.min(R.length,N.length),U=0;while(US.indexOf(Y)){if(G===E)return KN.FOLLOWING|KN.CONTAINED_BY;return KN.FOLLOWING}if(G===_)return KN.PRECEDING|KN.CONTAINS;return KN.PRECEDING}ON.compareDocumentPosition=SC;function hz(_){return _=_.filter(function(E,R,N){return!N.includes(E,R+1)}),_.sort(function(E,R){var N=SC(E,R);if(N&KN.PRECEDING)return-1;else if(N&KN.FOLLOWING)return 1;return 0}),_}ON.uniqueSort=hz});var YC=j((RL)=>{Object.defineProperty(RL,"__esModule",{value:!0});RL.getFeed=void 0;var kz=c3(),fO=n3();function mz(_){var E=EL(uz,_);return!E?null:E.name==="feed"?gz(E):yz(E)}RL.getFeed=mz;function gz(_){var E,R=_.children,N={type:"atom",items:fO.getElementsByTagName("entry",R).map(function(U){var G,S=U.children,C={media:PC(S)};JR(C,"id","id",S),JR(C,"title","title",S);var Y=(G=EL("link",S))===null||G===void 0?void 0:G.attribs.href;if(Y)C.link=Y;var M=F1("summary",S)||F1("content",S);if(M)C.description=M;var H=F1("updated",S);if(H)C.pubDate=new Date(H);return C})};JR(N,"id","id",R),JR(N,"title","title",R);var A=(E=EL("link",R))===null||E===void 0?void 0:E.attribs.href;if(A)N.link=A;JR(N,"description","subtitle",R);var L=F1("updated",R);if(L)N.updated=new Date(L);return JR(N,"author","email",R,!0),N}function yz(_){var E,R,N=(R=(E=EL("channel",_.children))===null||E===void 0?void 0:E.children)!==null&&R!==void 0?R:[],A={type:_.name.substr(0,3),id:"",items:fO.getElementsByTagName("item",_.children).map(function(U){var G=U.children,S={media:PC(G)};JR(S,"id","guid",G),JR(S,"title","title",G),JR(S,"link","link",G),JR(S,"description","description",G);var C=F1("pubDate",G)||F1("dc:date",G);if(C)S.pubDate=new Date(C);return S})};JR(A,"title","title",N),JR(A,"link","link",N),JR(A,"description","description",N);var L=F1("lastBuildDate",N);if(L)A.updated=new Date(L);return JR(A,"author","managingEditor",N,!0),A}var bz=["url","type","lang"],iz=["fileSize","bitrate","framerate","samplingrate","channels","duration","height","width"];function PC(_){return fO.getElementsByTagName("media:content",_).map(function(E){var R=E.attribs,N={medium:R.medium,isDefault:!!R.isDefault};for(var A=0,L=bz;A{var cz=YE&&YE.__createBinding||(Object.create?function(_,E,R,N){if(N===void 0)N=R;var A=Object.getOwnPropertyDescriptor(E,R);if(!A||("get"in A?!E.__esModule:A.writable||A.configurable))A={enumerable:!0,get:function(){return E[R]}};Object.defineProperty(_,N,A)}:function(_,E,R,N){if(N===void 0)N=R;_[N]=E[R]}),n1=YE&&YE.__exportStar||function(_,E){for(var R in _)if(R!=="default"&&!Object.prototype.hasOwnProperty.call(E,R))cz(E,_,R)};Object.defineProperty(YE,"__esModule",{value:!0});YE.hasChildren=YE.isDocument=YE.isComment=YE.isText=YE.isCDATA=YE.isTag=void 0;n1(c3(),YE);n1(TC(),YE);n1(OC(),YE);n1(l3(),YE);n1(n3(),YE);n1(CC(),YE);n1(YC(),YE);var hT=lN();Object.defineProperty(YE,"isTag",{enumerable:!0,get:function(){return hT.isTag}});Object.defineProperty(YE,"isCDATA",{enumerable:!0,get:function(){return hT.isCDATA}});Object.defineProperty(YE,"isText",{enumerable:!0,get:function(){return hT.isText}});Object.defineProperty(YE,"isComment",{enumerable:!0,get:function(){return hT.isComment}});Object.defineProperty(YE,"isDocument",{enumerable:!0,get:function(){return hT.isDocument}});Object.defineProperty(YE,"hasChildren",{enumerable:!0,get:function(){return hT.hasChildren}})});var KC=j((o_)=>{var dz=o_&&o_.__createBinding||(Object.create?function(_,E,R,N){if(N===void 0)N=R;var A=Object.getOwnPropertyDescriptor(E,R);if(!A||("get"in A?!E.__esModule:A.writable||A.configurable))A={enumerable:!0,get:function(){return E[R]}};Object.defineProperty(_,N,A)}:function(_,E,R,N){if(N===void 0)N=R;_[N]=E[R]}),lz=o_&&o_.__setModuleDefault||(Object.create?function(_,E){Object.defineProperty(_,"default",{enumerable:!0,value:E})}:function(_,E){_.default=E}),HC=o_&&o_.__importStar||function(_){if(_&&_.__esModule)return _;var E={};if(_!=null){for(var R in _)if(R!=="default"&&Object.prototype.hasOwnProperty.call(_,R))dz(E,_,R)}return lz(E,_),E},nz=o_&&o_.__importDefault||function(_){return _&&_.__esModule?_:{default:_}};Object.defineProperty(o_,"__esModule",{value:!0});o_.DomUtils=o_.parseFeed=o_.getFeed=o_.ElementType=o_.Tokenizer=o_.createDomStream=o_.parseDOM=o_.parseDocument=o_.DefaultHandler=o_.DomHandler=o_.Parser=void 0;var WC=f3(),oz=f3();Object.defineProperty(o_,"Parser",{enumerable:!0,get:function(){return oz.Parser}});var MC=lN(),FC=lN();Object.defineProperty(o_,"DomHandler",{enumerable:!0,get:function(){return FC.DomHandler}});Object.defineProperty(o_,"DefaultHandler",{enumerable:!0,get:function(){return FC.DomHandler}});function BC(_,E){var R=new MC.DomHandler(void 0,E);return new WC.Parser(R,E).end(_),R.root}o_.parseDocument=BC;function VC(_,E){return BC(_,E).children}o_.parseDOM=VC;function sz(_,E,R){var N=new MC.DomHandler(_,E,R);return new WC.Parser(N,E)}o_.createDomStream=sz;var tz=q3();Object.defineProperty(o_,"Tokenizer",{enumerable:!0,get:function(){return nz(tz).default}});o_.ElementType=HC(fT());var rz=NL(),az=NL();Object.defineProperty(o_,"getFeed",{enumerable:!0,get:function(){return az.getFeed}});var ez={xmlMode:!0};function _x(_,E){if(E===void 0)E=ez;return rz.getFeed(VC(_,E))}o_.parseFeed=_x;o_.DomUtils=HC(NL())});var JC=j((Em,XC)=>{XC.exports=(_)=>{if(typeof _!=="string")throw new TypeError("Expected a string");return _.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}});var ZC=j((o3)=>{Object.defineProperty(o3,"__esModule",{value:!0});/*! + * is-plain-object + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. + */function $C(_){return Object.prototype.toString.call(_)==="[object Object]"}function Ex(_){var E,R;if($C(_)===!1)return!1;if(E=_.constructor,E===void 0)return!0;if(R=E.prototype,$C(R)===!1)return!1;if(R.hasOwnProperty("isPrototypeOf")===!1)return!1;return!0}o3.isPlainObject=Ex});var xC=j((Nm,zC)=>{var Rx=function _(E){return Nx(E)&&!Tx(E)};function Nx(_){return!!_&&typeof _==="object"}function Tx(_){var E=Object.prototype.toString.call(_);return E==="[object RegExp]"||E==="[object Date]"||Ix(_)}var Ox=typeof Symbol==="function"&&Symbol.for,Ax=Ox?Symbol.for("react.element"):60103;function Ix(_){return _.$$typeof===Ax}function Lx(_){return Array.isArray(_)?[]:{}}function jO(_,E){return E.clone!==!1&&E.isMergeableObject(_)?kT(Lx(_),_,E):_}function Ux(_,E,R){return _.concat(E).map(function(N){return jO(N,R)})}function Gx(_,E){if(!E.customMerge)return kT;var R=E.customMerge(_);return typeof R==="function"?R:kT}function Dx(_){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(_).filter(function(E){return Object.propertyIsEnumerable.call(_,E)}):[]}function wC(_){return Object.keys(_).concat(Dx(_))}function QC(_,E){try{return E in _}catch(R){return!1}}function Sx(_,E){return QC(_,E)&&!(Object.hasOwnProperty.call(_,E)&&Object.propertyIsEnumerable.call(_,E))}function Cx(_,E,R){var N={};if(R.isMergeableObject(_))wC(_).forEach(function(A){N[A]=jO(_[A],R)});return wC(E).forEach(function(A){if(Sx(_,A))return;if(QC(_,A)&&R.isMergeableObject(E[A]))N[A]=Gx(A,R)(_[A],E[A],R);else N[A]=jO(E[A],R)}),N}function kT(_,E,R){R=R||{},R.arrayMerge=R.arrayMerge||Ux,R.isMergeableObject=R.isMergeableObject||Rx,R.cloneUnlessOtherwiseSpecified=jO;var N=Array.isArray(E),A=Array.isArray(_),L=N===A;if(!L)return jO(E,R);else if(N)return R.arrayMerge(_,E,R);else return Cx(_,E,R)}kT.all=function _(E,R){if(!Array.isArray(E))throw new Error("first argument should be an array");return E.reduce(function(N,A){return kT(N,A,R)},{})};var Px=kT;zC.exports=Px});var fC=j((qC,TL)=>{(function(_,E){if(typeof define==="function"&&define.amd)define([],E);else if(typeof TL==="object"&&TL.exports)TL.exports=E();else _.parseSrcset=E()})(qC,function(){return function(_){function E(t){return t===" "||t==="\t"||t===` +`||t==="\f"||t===`\r`}function R(t){var s,m=t.exec(_.substring(z));if(m)return s=m[0],z+=s.length,s}var N=_.length,A=/^[ \t\n\r\u000c]+/,L=/^[, \t\n\r\u000c]+/,U=/^[^ \t\n\r\u000c]+/,G=/[,]+$/,S=/^\d+$/,C=/^-?(?:[0-9]+|[0-9]*\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/,Y,M,H,X,$,z=0,w=[];while(!0){if(R(L),z>=N)return w;if(Y=R(U),M=[],Y.slice(-1)===",")Y=Y.replace(G,""),d();else g()}function g(){R(A),H="",X="in descriptor";while(!0){if($=_.charAt(z),X==="in descriptor")if(E($)){if(H)M.push(H),H="",X="after descriptor"}else if($===","){if(z+=1,H)M.push(H);d();return}else if($==="(")H=H+$,X="in parens";else if($===""){if(H)M.push(H);d();return}else H=H+$;else if(X==="in parens")if($===")")H=H+$,X="in descriptor";else if($===""){M.push(H),d();return}else H=H+$;else if(X==="after descriptor")if(E($));else if($===""){d();return}else X="in descriptor",z-=1;z+=1}}function d(){var t=!1,s,m,k,e,o={},c,S_,U_,V_,K_;for(e=0;e{var AL=process||{},jC=AL.argv||[],OL=AL.env||{},Yx=!(!!OL.NO_COLOR||jC.includes("--no-color"))&&(!!OL.FORCE_COLOR||jC.includes("--color")||AL.platform==="win32"||(AL.stdout||{}).isTTY&&OL.TERM!=="dumb"||!!OL.CI),Hx=(_,E,R=_)=>(N)=>{let A=""+N,L=A.indexOf(E,_.length);return~L?_+Wx(A,E,R,L)+E:_+A+E},Wx=(_,E,R,N)=>{let A="",L=0;do A+=_.substring(L,N)+R,L=N+E.length,N=_.indexOf(E,L);while(~N);return A+_.substring(L)},vC=(_=Yx)=>{let E=_?Hx:()=>String;return{isColorSupported:_,reset:E("\x1B[0m","\x1B[0m"),bold:E("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:E("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:E("\x1B[3m","\x1B[23m"),underline:E("\x1B[4m","\x1B[24m"),inverse:E("\x1B[7m","\x1B[27m"),hidden:E("\x1B[8m","\x1B[28m"),strikethrough:E("\x1B[9m","\x1B[29m"),black:E("\x1B[30m","\x1B[39m"),red:E("\x1B[31m","\x1B[39m"),green:E("\x1B[32m","\x1B[39m"),yellow:E("\x1B[33m","\x1B[39m"),blue:E("\x1B[34m","\x1B[39m"),magenta:E("\x1B[35m","\x1B[39m"),cyan:E("\x1B[36m","\x1B[39m"),white:E("\x1B[37m","\x1B[39m"),gray:E("\x1B[90m","\x1B[39m"),bgBlack:E("\x1B[40m","\x1B[49m"),bgRed:E("\x1B[41m","\x1B[49m"),bgGreen:E("\x1B[42m","\x1B[49m"),bgYellow:E("\x1B[43m","\x1B[49m"),bgBlue:E("\x1B[44m","\x1B[49m"),bgMagenta:E("\x1B[45m","\x1B[49m"),bgCyan:E("\x1B[46m","\x1B[49m"),bgWhite:E("\x1B[47m","\x1B[49m"),blackBright:E("\x1B[90m","\x1B[39m"),redBright:E("\x1B[91m","\x1B[39m"),greenBright:E("\x1B[92m","\x1B[39m"),yellowBright:E("\x1B[93m","\x1B[39m"),blueBright:E("\x1B[94m","\x1B[39m"),magentaBright:E("\x1B[95m","\x1B[39m"),cyanBright:E("\x1B[96m","\x1B[39m"),whiteBright:E("\x1B[97m","\x1B[39m"),bgBlackBright:E("\x1B[100m","\x1B[49m"),bgRedBright:E("\x1B[101m","\x1B[49m"),bgGreenBright:E("\x1B[102m","\x1B[49m"),bgYellowBright:E("\x1B[103m","\x1B[49m"),bgBlueBright:E("\x1B[104m","\x1B[49m"),bgMagentaBright:E("\x1B[105m","\x1B[49m"),bgCyanBright:E("\x1B[106m","\x1B[49m"),bgWhiteBright:E("\x1B[107m","\x1B[49m")}};s3.exports=vC();s3.exports.createColors=vC});var a3=j((Om,mC)=>{var r3="'".charCodeAt(0),pC='"'.charCodeAt(0),IL="\\".charCodeAt(0),hC="/".charCodeAt(0),LL="\n".charCodeAt(0),vO=" ".charCodeAt(0),UL="\f".charCodeAt(0),GL="\t".charCodeAt(0),DL="\r".charCodeAt(0),Mx="[".charCodeAt(0),Fx="]".charCodeAt(0),Bx="(".charCodeAt(0),Vx=")".charCodeAt(0),Kx="{".charCodeAt(0),Xx="}".charCodeAt(0),Jx=";".charCodeAt(0),$x="*".charCodeAt(0),Zx=":".charCodeAt(0),wx="@".charCodeAt(0),SL=/[\t\n\f\r "#'()/;[\\\]{}]/g,CL=/[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g,Qx=/.[\r\n"'(/\\]/,kC=/[\da-f]/i;mC.exports=function _(E,R={}){let N=E.css.valueOf(),A=R.ignoreErrors,L,U,G,S,C,Y,M,H,X,$,z=N.length,w=0,g=[],d=[];function t(){return w}function s(o){throw E.error("Unclosed "+o,w)}function m(){return d.length===0&&w>=z}function k(o){if(d.length)return d.pop();if(w>=z)return;let c=o?o.ignoreUnclosed:!1;switch(L=N.charCodeAt(w),L){case LL:case vO:case GL:case DL:case UL:{S=w;do S+=1,L=N.charCodeAt(S);while(L===vO||L===LL||L===GL||L===DL||L===UL);Y=["space",N.slice(w,S)],w=S-1;break}case Mx:case Fx:case Kx:case Xx:case Zx:case Jx:case Vx:{let S_=String.fromCharCode(L);Y=[S_,S_,w];break}case Bx:{if($=g.length?g.pop()[1]:"",X=N.charCodeAt(w+1),$==="url"&&X!==r3&&X!==pC&&X!==vO&&X!==LL&&X!==GL&&X!==UL&&X!==DL){S=w;do{if(M=!1,S=N.indexOf(")",S+1),S===-1)if(A||c){S=w;break}else s("bracket");H=S;while(N.charCodeAt(H-1)===IL)H-=1,M=!M}while(M);Y=["brackets",N.slice(w,S+1),w,S],w=S}else if(S=N.indexOf(")",w+1),U=N.slice(w,S+1),S===-1||Qx.test(U))Y=["(","(",w];else Y=["brackets",U,w,S],w=S;break}case r3:case pC:{C=L===r3?"'":'"',S=w;do{if(M=!1,S=N.indexOf(C,S+1),S===-1)if(A||c){S=w+1;break}else s("string");H=S;while(N.charCodeAt(H-1)===IL)H-=1,M=!M}while(M);Y=["string",N.slice(w,S+1),w,S],w=S;break}case wx:{if(SL.lastIndex=w+1,SL.test(N),SL.lastIndex===0)S=N.length-1;else S=SL.lastIndex-2;Y=["at-word",N.slice(w,S+1),w,S],w=S;break}case IL:{S=w,G=!0;while(N.charCodeAt(S+1)===IL)S+=1,G=!G;if(L=N.charCodeAt(S+1),G&&L!==hC&&L!==vO&&L!==LL&&L!==GL&&L!==DL&&L!==UL){if(S+=1,kC.test(N.charAt(S))){while(kC.test(N.charAt(S+1)))S+=1;if(N.charCodeAt(S+1)===vO)S+=1}}Y=["word",N.slice(w,S+1),w,S],w=S;break}default:{if(L===hC&&N.charCodeAt(w+1)===$x){if(S=N.indexOf("*/",w+2)+1,S===0)if(A||c)S=N.length;else s("comment");Y=["comment",N.slice(w,S+1),w,S],w=S}else{if(CL.lastIndex=w+1,CL.test(N),CL.lastIndex===0)S=N.length-1;else S=CL.lastIndex-2;Y=["word",N.slice(w,S+1),w,S],g.push(Y),w=S}break}}return w++,Y}function e(o){d.push(o)}return{back:e,endOfFile:m,nextToken:k,position:t}}});var e3=j((Am,bC)=>{var AR=t3(),zx=a3(),gC;function xx(_){gC=_}var qx={";":AR.yellow,":":AR.yellow,"(":AR.cyan,")":AR.cyan,"[":AR.yellow,"]":AR.yellow,"{":AR.yellow,"}":AR.yellow,"at-word":AR.cyan,brackets:AR.cyan,call:AR.cyan,class:AR.yellow,comment:AR.gray,hash:AR.magenta,string:AR.green};function fx([_,E],R){if(_==="word"){if(E[0]===".")return"class";if(E[0]==="#")return"hash"}if(!R.endOfFile()){let N=R.nextToken();if(R.back(N),N[0]==="brackets"||N[0]==="(")return"call"}return _}function yC(_){let E=zx(new gC(_),{ignoreErrors:!0}),R="";while(!E.endOfFile()){let N=E.nextToken(),A=qx[fx(N,E)];if(A)R+=N[1].split(/\r?\n/).map((L)=>A(L)).join("\n");else R+=N[1]}return R}yC.registerInput=xx;bC.exports=yC});var PL=j((Im,cC)=>{var iC=t3(),uC=e3();class pO extends Error{constructor(_,E,R,N,A,L){super(_);if(this.name="CssSyntaxError",this.reason=_,A)this.file=A;if(N)this.source=N;if(L)this.plugin=L;if(typeof E!=="undefined"&&typeof R!=="undefined")if(typeof E==="number")this.line=E,this.column=R;else this.line=E.line,this.column=E.column,this.endLine=R.line,this.endColumn=R.column;if(this.setMessage(),Error.captureStackTrace)Error.captureStackTrace(this,pO)}setMessage(){if(this.message=this.plugin?this.plugin+": ":"",this.message+=this.file?this.file:"",typeof this.line!=="undefined")this.message+=":"+this.line+":"+this.column;this.message+=": "+this.reason}showSourceCode(_){if(!this.source)return"";let E=this.source;if(_==null)_=iC.isColorSupported;let R=(C)=>C,N=(C)=>C,A=(C)=>C;if(_){let{bold:C,gray:Y,red:M}=iC.createColors(!0);if(N=(H)=>C(M(H)),R=(H)=>Y(H),uC)A=(H)=>uC(H)}let L=E.split(/\r?\n/),U=Math.max(this.line-3,0),G=Math.min(this.line+2,L.length),S=String(G).length;return L.slice(U,G).map((C,Y)=>{let M=U+1+Y,H=" "+(" "+M).slice(-S)+" | ";if(M===this.line){if(C.length>160){let $=20,z=Math.max(0,this.column-$),w=Math.max(this.column+$,this.endColumn+$),g=C.slice(z,w),d=R(H.replace(/\d/g," "))+C.slice(0,Math.min(this.column-1,$-1)).replace(/[^\t]/g," ");return N(">")+R(H)+A(g)+"\n "+d+N("^")}let X=R(H.replace(/\d/g," "))+C.slice(0,this.column-1).replace(/[^\t]/g," ");return N(">")+R(H)+A(C)+"\n "+X+N("^")}return" "+R(H)+A(C)}).join("\n")}toString(){let _=this.showSourceCode();if(_)_="\n\n"+_+"\n";return this.name+": "+this.message+_}}cC.exports=pO;pO.default=pO});var _G=j((Lm,lC)=>{var dC={after:"\n",beforeClose:"\n",beforeComment:"\n",beforeDecl:"\n",beforeOpen:" ",beforeRule:"\n",colon:": ",commentLeft:" ",commentRight:" ",emptyBody:"",indent:" ",semicolon:!1};function jx(_){return _[0].toUpperCase()+_.slice(1)}class YL{constructor(_){this.builder=_}atrule(_,E){let R="@"+_.name,N=_.params?this.rawValue(_,"params"):"";if(typeof _.raws.afterName!=="undefined")R+=_.raws.afterName;else if(N)R+=" ";if(_.nodes)this.block(_,R+N);else{let A=(_.raws.between||"")+(E?";":"");this.builder(R+N+A,_)}}beforeAfter(_,E){let R;if(_.type==="decl")R=this.raw(_,null,"beforeDecl");else if(_.type==="comment")R=this.raw(_,null,"beforeComment");else if(E==="before")R=this.raw(_,null,"beforeRule");else R=this.raw(_,null,"beforeClose");let N=_.parent,A=0;while(N&&N.type!=="root")A+=1,N=N.parent;if(R.includes("\n")){let L=this.raw(_,null,"indent");if(L.length)for(let U=0;U0){if(_.nodes[E].type!=="comment")break;E-=1}let R=this.raw(_,"semicolon");for(let N=0;N<_.nodes.length;N++){let A=_.nodes[N],L=this.raw(A,"before");if(L)this.builder(L);this.stringify(A,E!==N||R)}}comment(_){let E=this.raw(_,"left","commentLeft"),R=this.raw(_,"right","commentRight");this.builder("/*"+E+_.text+R+"*/",_)}decl(_,E){let R=this.raw(_,"between","colon"),N=_.prop+R+this.rawValue(_,"value");if(_.important)N+=_.raws.important||" !important";if(E)N+=";";this.builder(N,_)}document(_){this.body(_)}raw(_,E,R){let N;if(!R)R=E;if(E){if(N=_.raws[E],typeof N!=="undefined")return N}let A=_.parent;if(R==="before"){if(!A||A.type==="root"&&A.first===_)return"";if(A&&A.type==="document")return""}if(!A)return dC[R];let L=_.root();if(!L.rawCache)L.rawCache={};if(typeof L.rawCache[R]!=="undefined")return L.rawCache[R];if(R==="before"||R==="after")return this.beforeAfter(_,R);else{let U="raw"+jx(R);if(this[U])N=this[U](L,_);else L.walk((G)=>{if(N=G.raws[E],typeof N!=="undefined")return!1})}if(typeof N==="undefined")N=dC[R];return L.rawCache[R]=N,N}rawBeforeClose(_){let E;if(_.walk((R)=>{if(R.nodes&&R.nodes.length>0){if(typeof R.raws.after!=="undefined"){if(E=R.raws.after,E.includes("\n"))E=E.replace(/[^\n]+$/,"");return!1}}}),E)E=E.replace(/\S/g,"");return E}rawBeforeComment(_,E){let R;if(_.walkComments((N)=>{if(typeof N.raws.before!=="undefined"){if(R=N.raws.before,R.includes("\n"))R=R.replace(/[^\n]+$/,"");return!1}}),typeof R==="undefined")R=this.raw(E,null,"beforeDecl");else if(R)R=R.replace(/\S/g,"");return R}rawBeforeDecl(_,E){let R;if(_.walkDecls((N)=>{if(typeof N.raws.before!=="undefined"){if(R=N.raws.before,R.includes("\n"))R=R.replace(/[^\n]+$/,"");return!1}}),typeof R==="undefined")R=this.raw(E,null,"beforeRule");else if(R)R=R.replace(/\S/g,"");return R}rawBeforeOpen(_){let E;return _.walk((R)=>{if(R.type!=="decl"){if(E=R.raws.between,typeof E!=="undefined")return!1}}),E}rawBeforeRule(_){let E;if(_.walk((R)=>{if(R.nodes&&(R.parent!==_||_.first!==R)){if(typeof R.raws.before!=="undefined"){if(E=R.raws.before,E.includes("\n"))E=E.replace(/[^\n]+$/,"");return!1}}}),E)E=E.replace(/\S/g,"");return E}rawColon(_){let E;return _.walkDecls((R)=>{if(typeof R.raws.between!=="undefined")return E=R.raws.between.replace(/[^\s:]/g,""),!1}),E}rawEmptyBody(_){let E;return _.walk((R)=>{if(R.nodes&&R.nodes.length===0){if(E=R.raws.after,typeof E!=="undefined")return!1}}),E}rawIndent(_){if(_.raws.indent)return _.raws.indent;let E;return _.walk((R)=>{let N=R.parent;if(N&&N!==_&&N.parent&&N.parent===_){if(typeof R.raws.before!=="undefined"){let A=R.raws.before.split("\n");return E=A[A.length-1],E=E.replace(/\S/g,""),!1}}}),E}rawSemicolon(_){let E;return _.walk((R)=>{if(R.nodes&&R.nodes.length&&R.last.type==="decl"){if(E=R.raws.semicolon,typeof E!=="undefined")return!1}}),E}rawValue(_,E){let R=_[E],N=_.raws[E];if(N&&N.value===R)return N.raw;return R}root(_){if(this.body(_),_.raws.after)this.builder(_.raws.after)}rule(_){if(this.block(_,this.rawValue(_,"selector")),_.raws.ownSemicolon)this.builder(_.raws.ownSemicolon,_,"end")}stringify(_,E){if(!this[_.type])throw new Error("Unknown AST node type "+_.type+". Maybe you need to change PostCSS stringifier.");this[_.type](_,E)}}lC.exports=YL;YL.default=YL});var hO=j((Um,nC)=>{var vx=_G();function EG(_,E){new vx(E).stringify(_)}nC.exports=EG;EG.default=EG});var HL=j((Gm,RG)=>{RG.exports.isClean=Symbol("isClean");RG.exports.my=Symbol("my")});var mO=j((Dm,oC)=>{var px=PL(),hx=_G(),kx=hO(),{isClean:kO,my:mx}=HL();function NG(_,E){let R=new _.constructor;for(let N in _){if(!Object.prototype.hasOwnProperty.call(_,N))continue;if(N==="proxyCache")continue;let A=_[N],L=typeof A;if(N==="parent"&&L==="object"){if(E)R[N]=E}else if(N==="source")R[N]=A;else if(Array.isArray(A))R[N]=A.map((U)=>NG(U,R));else{if(L==="object"&&A!==null)A=NG(A);R[N]=A}}return R}class WL{constructor(_={}){this.raws={},this[kO]=!1,this[mx]=!0;for(let E in _)if(E==="nodes"){this.nodes=[];for(let R of _[E])if(typeof R.clone==="function")this.append(R.clone());else this.append(R)}else this[E]=_[E]}addToError(_){if(_.postcssNode=this,_.stack&&this.source&&/\n\s{4}at /.test(_.stack)){let E=this.source;_.stack=_.stack.replace(/\n\s{4}at /,`\$&${E.input.from}:${E.start.line}:${E.start.column}\$&`)}return _}after(_){return this.parent.insertAfter(this,_),this}assign(_={}){for(let E in _)this[E]=_[E];return this}before(_){return this.parent.insertBefore(this,_),this}cleanRaws(_){if(delete this.raws.before,delete this.raws.after,!_)delete this.raws.between}clone(_={}){let E=NG(this);for(let R in _)E[R]=_[R];return E}cloneAfter(_={}){let E=this.clone(_);return this.parent.insertAfter(this,E),E}cloneBefore(_={}){let E=this.clone(_);return this.parent.insertBefore(this,E),E}error(_,E={}){if(this.source){let{end:R,start:N}=this.rangeBy(E);return this.source.input.error(_,{column:N.column,line:N.line},{column:R.column,line:R.line},E)}return new px(_)}getProxyProcessor(){return{get(_,E){if(E==="proxyOf")return _;else if(E==="root")return()=>_.root().toProxy();else return _[E]},set(_,E,R){if(_[E]===R)return!0;if(_[E]=R,E==="prop"||E==="value"||E==="name"||E==="params"||E==="important"||E==="text")_.markDirty();return!0}}}markClean(){this[kO]=!0}markDirty(){if(this[kO]){this[kO]=!1;let _=this;while(_=_.parent)_[kO]=!1}}next(){if(!this.parent)return;let _=this.parent.index(this);return this.parent.nodes[_+1]}positionBy(_,E){let R=this.source.start;if(_.index)R=this.positionInside(_.index,E);else if(_.word){E=this.toString();let N=E.indexOf(_.word);if(N!==-1)R=this.positionInside(N,E)}return R}positionInside(_,E){let R=E||this.toString(),N=this.source.start.column,A=this.source.start.line;for(let L=0;L<_;L++)if(R[L]==="\n")N=1,A+=1;else N+=1;return{column:N,line:A}}prev(){if(!this.parent)return;let _=this.parent.index(this);return this.parent.nodes[_-1]}rangeBy(_){let E={column:this.source.start.column,line:this.source.start.line},R=this.source.end?{column:this.source.end.column+1,line:this.source.end.line}:{column:E.column+1,line:E.line};if(_.word){let N=this.toString(),A=N.indexOf(_.word);if(A!==-1)E=this.positionInside(A,N),R=this.positionInside(A+_.word.length,N)}else{if(_.start)E={column:_.start.column,line:_.start.line};else if(_.index)E=this.positionInside(_.index);if(_.end)R={column:_.end.column,line:_.end.line};else if(typeof _.endIndex==="number")R=this.positionInside(_.endIndex);else if(_.index)R=this.positionInside(_.index+1)}if(R.line{if(typeof G==="object"&&G.toJSON)return G.toJSON(null,E);else return G});else if(typeof U==="object"&&U.toJSON)R[L]=U.toJSON(null,E);else if(L==="source"){let G=E.get(U.input);if(G==null)G=A,E.set(U.input,A),A++;R[L]={end:U.end,inputId:G,start:U.start}}else R[L]=U}if(N)R.inputs=[...E.keys()].map((L)=>L.toJSON());return R}toProxy(){if(!this.proxyCache)this.proxyCache=new Proxy(this,this.getProxyProcessor());return this.proxyCache}toString(_=kx){if(_.stringify)_=_.stringify;let E="";return _(this,(R)=>{E+=R}),E}warn(_,E,R){let N={node:this};for(let A in R)N[A]=R[A];return _.warn(E,N)}get proxyOf(){return this}}oC.exports=WL;WL.default=WL});var gO=j((Sm,sC)=>{var gx=mO();class ML extends gx{constructor(_){super(_);this.type="comment"}}sC.exports=ML;ML.default=ML});var yO=j((Cm,tC)=>{var yx=mO();class FL extends yx{constructor(_){if(_&&typeof _.value!=="undefined"&&typeof _.value!=="string")_={..._,value:String(_.value)};super(_);this.type="decl"}get variable(){return this.prop.startsWith("--")||this.prop[0]==="$"}}tC.exports=FL;FL.default=FL});var B1=j((Pm,O9)=>{var rC=gO(),aC=yO(),bx=mO(),{isClean:eC,my:_9}=HL(),TG,E9,R9,OG;function N9(_){return _.map((E)=>{if(E.nodes)E.nodes=N9(E.nodes);return delete E.source,E})}function T9(_){if(_[eC]=!1,_.proxyOf.nodes)for(let E of _.proxyOf.nodes)T9(E)}class AN extends bx{append(..._){for(let E of _){let R=this.normalize(E,this.last);for(let N of R)this.proxyOf.nodes.push(N)}return this.markDirty(),this}cleanRaws(_){if(super.cleanRaws(_),this.nodes)for(let E of this.nodes)E.cleanRaws(_)}each(_){if(!this.proxyOf.nodes)return;let E=this.getIterator(),R,N;while(this.indexes[E]{return _[E](...R.map((N)=>{if(typeof N==="function")return(A,L)=>N(A.toProxy(),L);else return N}))};else if(E==="every"||E==="some")return(R)=>{return _[E]((N,...A)=>R(N.toProxy(),...A))};else if(E==="root")return()=>_.root().toProxy();else if(E==="nodes")return _.nodes.map((R)=>R.toProxy());else if(E==="first"||E==="last")return _[E].toProxy();else return _[E]},set(_,E,R){if(_[E]===R)return!0;if(_[E]=R,E==="name"||E==="params"||E==="selector")_.markDirty();return!0}}}index(_){if(typeof _==="number")return _;if(_.proxyOf)_=_.proxyOf;return this.proxyOf.nodes.indexOf(_)}insertAfter(_,E){let R=this.index(_),N=this.normalize(E,this.proxyOf.nodes[R]).reverse();R=this.index(_);for(let L of N)this.proxyOf.nodes.splice(R+1,0,L);let A;for(let L in this.indexes)if(A=this.indexes[L],R{if(!N[_9])AN.rebuild(N);if(N=N.proxyOf,N.parent)N.parent.removeChild(N);if(N[eC])T9(N);if(!N.raws)N.raws={};if(typeof N.raws.before==="undefined"){if(E&&typeof E.raws.before!=="undefined")N.raws.before=E.raws.before.replace(/\S/g,"")}return N.parent=this.proxyOf,N})}prepend(..._){_=_.reverse();for(let E of _){let R=this.normalize(E,this.first,"prepend").reverse();for(let N of R)this.proxyOf.nodes.unshift(N);for(let N in this.indexes)this.indexes[N]=this.indexes[N]+R.length}return this.markDirty(),this}push(_){return _.parent=this,this.proxyOf.nodes.push(_),this}removeAll(){for(let _ of this.proxyOf.nodes)_.parent=void 0;return this.proxyOf.nodes=[],this.markDirty(),this}removeChild(_){_=this.index(_),this.proxyOf.nodes[_].parent=void 0,this.proxyOf.nodes.splice(_,1);let E;for(let R in this.indexes)if(E=this.indexes[R],E>=_)this.indexes[R]=E-1;return this.markDirty(),this}replaceValues(_,E,R){if(!R)R=E,E={};return this.walkDecls((N)=>{if(E.props&&!E.props.includes(N.prop))return;if(E.fast&&!N.value.includes(E.fast))return;N.value=N.value.replace(_,R)}),this.markDirty(),this}some(_){return this.nodes.some(_)}walk(_){return this.each((E,R)=>{let N;try{N=_(E,R)}catch(A){throw E.addToError(A)}if(N!==!1&&E.walk)N=E.walk(_);return N})}walkAtRules(_,E){if(!E)return E=_,this.walk((R,N)=>{if(R.type==="atrule")return E(R,N)});if(_ instanceof RegExp)return this.walk((R,N)=>{if(R.type==="atrule"&&_.test(R.name))return E(R,N)});return this.walk((R,N)=>{if(R.type==="atrule"&&R.name===_)return E(R,N)})}walkComments(_){return this.walk((E,R)=>{if(E.type==="comment")return _(E,R)})}walkDecls(_,E){if(!E)return E=_,this.walk((R,N)=>{if(R.type==="decl")return E(R,N)});if(_ instanceof RegExp)return this.walk((R,N)=>{if(R.type==="decl"&&_.test(R.prop))return E(R,N)});return this.walk((R,N)=>{if(R.type==="decl"&&R.prop===_)return E(R,N)})}walkRules(_,E){if(!E)return E=_,this.walk((R,N)=>{if(R.type==="rule")return E(R,N)});if(_ instanceof RegExp)return this.walk((R,N)=>{if(R.type==="rule"&&_.test(R.selector))return E(R,N)});return this.walk((R,N)=>{if(R.type==="rule"&&R.selector===_)return E(R,N)})}get first(){if(!this.proxyOf.nodes)return;return this.proxyOf.nodes[0]}get last(){if(!this.proxyOf.nodes)return;return this.proxyOf.nodes[this.proxyOf.nodes.length-1]}}AN.registerParse=(_)=>{E9=_};AN.registerRule=(_)=>{OG=_};AN.registerAtRule=(_)=>{TG=_};AN.registerRoot=(_)=>{R9=_};O9.exports=AN;AN.default=AN;AN.rebuild=(_)=>{if(_.type==="atrule")Object.setPrototypeOf(_,TG.prototype);else if(_.type==="rule")Object.setPrototypeOf(_,OG.prototype);else if(_.type==="decl")Object.setPrototypeOf(_,aC.prototype);else if(_.type==="comment")Object.setPrototypeOf(_,rC.prototype);else if(_.type==="root")Object.setPrototypeOf(_,R9.prototype);if(_[_9]=!0,_.nodes)_.nodes.forEach((E)=>{AN.rebuild(E)})}});var BL=j((Ym,I9)=>{var A9=B1();class bO extends A9{constructor(_){super(_);this.type="atrule"}append(..._){if(!this.proxyOf.nodes)this.nodes=[];return super.append(..._)}prepend(..._){if(!this.proxyOf.nodes)this.nodes=[];return super.prepend(..._)}}I9.exports=bO;bO.default=bO;A9.registerAtRule(bO)});var VL=j((Hm,G9)=>{var ix=B1(),L9,U9;class mT extends ix{constructor(_){super({type:"document",..._});if(!this.nodes)this.nodes=[]}toResult(_={}){return new L9(new U9,this,_).stringify()}}mT.registerLazyResult=(_)=>{L9=_};mT.registerProcessor=(_)=>{U9=_};G9.exports=mT;mT.default=mT});var S9=j((Wm,D9)=>{var ux="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",cx=(_,E=21)=>{return(R=E)=>{let N="",A=R;while(A--)N+=_[Math.random()*_.length|0];return N}},dx=(_=21)=>{let E="",R=_;while(R--)E+=ux[Math.random()*64|0];return E};D9.exports={nanoid:dx,customAlphabet:cx}});var P9=j((AG)=>{var C9="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");AG.encode=function(_){if(0<=_&&_{var Y9=P9(),IG=5,H9=1<>1;return E?-R:R}LG.encode=function _(E){var R="",N,A=lx(E);do{if(N=A&W9,A>>>=IG,A>0)N|=M9;R+=Y9.encode(N)}while(A>0);return R};LG.decode=function _(E,R,N){var A=E.length,L=0,U=0,G,S;do{if(R>=A)throw new Error("Expected more digits in base 64 VLQ value.");if(S=Y9.decode(E.charCodeAt(R++)),S===-1)throw new Error("Invalid base64 digit: "+E.charAt(R-1));G=!!(S&M9),S&=W9,L=L+(S<{function ox(_,E,R){if(E in _)return _[E];else if(arguments.length===3)return R;else throw new Error('"'+E+'" is a required argument.')}bE.getArg=ox;var F9=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/,sx=/^data:.+\,.+$/;function iO(_){var E=_.match(F9);if(!E)return null;return{scheme:E[1],auth:E[2],host:E[3],port:E[4],path:E[5]}}bE.urlParse=iO;function gT(_){var E="";if(_.scheme)E+=_.scheme+":";if(E+="//",_.auth)E+=_.auth+"@";if(_.host)E+=_.host;if(_.port)E+=":"+_.port;if(_.path)E+=_.path;return E}bE.urlGenerate=gT;var tx=32;function rx(_){var E=[];return function(R){for(var N=0;Ntx)E.pop();return L}}var GG=rx(function _(E){var R=E,N=iO(E);if(N){if(!N.path)return E;R=N.path}var A=bE.isAbsolute(R),L=[],U=0,G=0;while(!0)if(U=G,G=R.indexOf("/",U),G===-1){L.push(R.slice(U));break}else{L.push(R.slice(U,G));while(G=0;G--)if(S=L[G],S===".")L.splice(G,1);else if(S==="..")C++;else if(C>0)if(S==="")L.splice(G+1,C),C=0;else L.splice(G,2),C--;if(R=L.join("/"),R==="")R=A?"/":".";if(N)return N.path=R,gT(N);return R});bE.normalize=GG;function B9(_,E){if(_==="")_=".";if(E==="")E=".";var R=iO(E),N=iO(_);if(N)_=N.path||"/";if(R&&!R.scheme){if(N)R.scheme=N.scheme;return gT(R)}if(R||E.match(sx))return E;if(N&&!N.host&&!N.path)return N.host=E,gT(N);var A=E.charAt(0)==="/"?E:GG(_.replace(/\/+$/,"")+"/"+E);if(N)return N.path=A,gT(N);return A}bE.join=B9;bE.isAbsolute=function(_){return _.charAt(0)==="/"||F9.test(_)};function ax(_,E){if(_==="")_=".";_=_.replace(/\/$/,"");var R=0;while(E.indexOf(_+"/")!==0){var N=_.lastIndexOf("/");if(N<0)return E;if(_=_.slice(0,N),_.match(/^([^\/]+:\/)?\/*$/))return E;++R}return Array(R+1).join("../")+E.substr(_.length+1)}bE.relative=ax;var V9=function(){var _=Object.create(null);return!("__proto__"in _)}();function K9(_){return _}function ex(_){if(X9(_))return"$"+_;return _}bE.toSetString=V9?K9:ex;function _q(_){if(X9(_))return _.slice(1);return _}bE.fromSetString=V9?K9:_q;function X9(_){if(!_)return!1;var E=_.length;if(E<9)return!1;if(_.charCodeAt(E-1)!==95||_.charCodeAt(E-2)!==95||_.charCodeAt(E-3)!==111||_.charCodeAt(E-4)!==116||_.charCodeAt(E-5)!==111||_.charCodeAt(E-6)!==114||_.charCodeAt(E-7)!==112||_.charCodeAt(E-8)!==95||_.charCodeAt(E-9)!==95)return!1;for(var R=E-10;R>=0;R--)if(_.charCodeAt(R)!==36)return!1;return!0}function Eq(_,E,R){var N=oN(_.source,E.source);if(N!==0)return N;if(N=_.originalLine-E.originalLine,N!==0)return N;if(N=_.originalColumn-E.originalColumn,N!==0||R)return N;if(N=_.generatedColumn-E.generatedColumn,N!==0)return N;if(N=_.generatedLine-E.generatedLine,N!==0)return N;return oN(_.name,E.name)}bE.compareByOriginalPositions=Eq;function Rq(_,E,R){var N=_.originalLine-E.originalLine;if(N!==0)return N;if(N=_.originalColumn-E.originalColumn,N!==0||R)return N;if(N=_.generatedColumn-E.generatedColumn,N!==0)return N;if(N=_.generatedLine-E.generatedLine,N!==0)return N;return oN(_.name,E.name)}bE.compareByOriginalPositionsNoSource=Rq;function Nq(_,E,R){var N=_.generatedLine-E.generatedLine;if(N!==0)return N;if(N=_.generatedColumn-E.generatedColumn,N!==0||R)return N;if(N=oN(_.source,E.source),N!==0)return N;if(N=_.originalLine-E.originalLine,N!==0)return N;if(N=_.originalColumn-E.originalColumn,N!==0)return N;return oN(_.name,E.name)}bE.compareByGeneratedPositionsDeflated=Nq;function Tq(_,E,R){var N=_.generatedColumn-E.generatedColumn;if(N!==0||R)return N;if(N=oN(_.source,E.source),N!==0)return N;if(N=_.originalLine-E.originalLine,N!==0)return N;if(N=_.originalColumn-E.originalColumn,N!==0)return N;return oN(_.name,E.name)}bE.compareByGeneratedPositionsDeflatedNoLine=Tq;function oN(_,E){if(_===E)return 0;if(_===null)return 1;if(E===null)return-1;if(_>E)return 1;return-1}function Oq(_,E){var R=_.generatedLine-E.generatedLine;if(R!==0)return R;if(R=_.generatedColumn-E.generatedColumn,R!==0)return R;if(R=oN(_.source,E.source),R!==0)return R;if(R=_.originalLine-E.originalLine,R!==0)return R;if(R=_.originalColumn-E.originalColumn,R!==0)return R;return oN(_.name,E.name)}bE.compareByGeneratedPositionsInflated=Oq;function Aq(_){return JSON.parse(_.replace(/^\)]}'[^\n]*\n/,""))}bE.parseSourceMapInput=Aq;function Iq(_,E,R){if(E=E||"",_){if(_[_.length-1]!=="/"&&E[0]!=="/")_+="/";E=_+E}if(R){var N=iO(R);if(!N)throw new Error("sourceMapURL could not be parsed");if(N.path){var A=N.path.lastIndexOf("/");if(A>=0)N.path=N.path.substring(0,A+1)}E=B9(gT(N),E)}return GG(E)}bE.computeSourceURL=Iq});var CG=j((J9)=>{var DG=yT(),SG=Object.prototype.hasOwnProperty,o1=typeof Map!=="undefined";function sN(){this._array=[],this._set=o1?new Map:Object.create(null)}sN.fromArray=function _(E,R){var N=new sN;for(var A=0,L=E.length;A=0)return R}else{var N=DG.toSetString(E);if(SG.call(this._set,N))return this._set[N]}throw new Error('"'+E+'" is not in the set.')};sN.prototype.at=function _(E){if(E>=0&&E{var $9=yT();function Lq(_,E){var R=_.generatedLine,N=E.generatedLine,A=_.generatedColumn,L=E.generatedColumn;return N>R||N==R&&L>=A||$9.compareByGeneratedPositionsInflated(_,E)<=0}function KL(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}KL.prototype.unsortedForEach=function _(E,R){this._array.forEach(E,R)};KL.prototype.add=function _(E){if(Lq(this._last,E))this._last=E,this._array.push(E);else this._sorted=!1,this._array.push(E)};KL.prototype.toArray=function _(){if(!this._sorted)this._array.sort($9.compareByGeneratedPositionsInflated),this._sorted=!0;return this._array};Z9.MappingList=KL});var PG=j((Q9)=>{var uO=UG(),QE=yT(),XL=CG().ArraySet,Uq=w9().MappingList;function oR(_){if(!_)_={};this._file=QE.getArg(_,"file",null),this._sourceRoot=QE.getArg(_,"sourceRoot",null),this._skipValidation=QE.getArg(_,"skipValidation",!1),this._ignoreInvalidMapping=QE.getArg(_,"ignoreInvalidMapping",!1),this._sources=new XL,this._names=new XL,this._mappings=new Uq,this._sourcesContents=null}oR.prototype._version=3;oR.fromSourceMap=function _(E,R){var N=E.sourceRoot,A=new oR(Object.assign(R||{},{file:E.file,sourceRoot:N}));return E.eachMapping(function(L){var U={generated:{line:L.generatedLine,column:L.generatedColumn}};if(L.source!=null){if(U.source=L.source,N!=null)U.source=QE.relative(N,U.source);if(U.original={line:L.originalLine,column:L.originalColumn},L.name!=null)U.name=L.name}A.addMapping(U)}),E.sources.forEach(function(L){var U=L;if(N!==null)U=QE.relative(N,L);if(!A._sources.has(U))A._sources.add(U);var G=E.sourceContentFor(L);if(G!=null)A.setSourceContent(L,G)}),A};oR.prototype.addMapping=function _(E){var R=QE.getArg(E,"generated"),N=QE.getArg(E,"original",null),A=QE.getArg(E,"source",null),L=QE.getArg(E,"name",null);if(!this._skipValidation){if(this._validateMapping(R,N,A,L)===!1)return}if(A!=null){if(A=String(A),!this._sources.has(A))this._sources.add(A)}if(L!=null){if(L=String(L),!this._names.has(L))this._names.add(L)}this._mappings.add({generatedLine:R.line,generatedColumn:R.column,originalLine:N!=null&&N.line,originalColumn:N!=null&&N.column,source:A,name:L})};oR.prototype.setSourceContent=function _(E,R){var N=E;if(this._sourceRoot!=null)N=QE.relative(this._sourceRoot,N);if(R!=null){if(!this._sourcesContents)this._sourcesContents=Object.create(null);this._sourcesContents[QE.toSetString(N)]=R}else if(this._sourcesContents){if(delete this._sourcesContents[QE.toSetString(N)],Object.keys(this._sourcesContents).length===0)this._sourcesContents=null}};oR.prototype.applySourceMap=function _(E,R,N){var A=R;if(R==null){if(E.file==null)throw new Error('SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map\'s "file" property. Both were omitted.');A=E.file}var L=this._sourceRoot;if(L!=null)A=QE.relative(L,A);var U=new XL,G=new XL;this._mappings.unsortedForEach(function(S){if(S.source===A&&S.originalLine!=null){var C=E.originalPositionFor({line:S.originalLine,column:S.originalColumn});if(C.source!=null){if(S.source=C.source,N!=null)S.source=QE.join(N,S.source);if(L!=null)S.source=QE.relative(L,S.source);if(S.originalLine=C.line,S.originalColumn=C.column,C.name!=null)S.name=C.name}}var Y=S.source;if(Y!=null&&!U.has(Y))U.add(Y);var M=S.name;if(M!=null&&!G.has(M))G.add(M)},this),this._sources=U,this._names=G,E.sources.forEach(function(S){var C=E.sourceContentFor(S);if(C!=null){if(N!=null)S=QE.join(N,S);if(L!=null)S=QE.relative(L,S);this.setSourceContent(S,C)}},this)};oR.prototype._validateMapping=function _(E,R,N,A){if(R&&typeof R.line!=="number"&&typeof R.column!=="number"){var L="original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values.";if(this._ignoreInvalidMapping){if(typeof console!=="undefined"&&console.warn)console.warn(L);return!1}else throw new Error(L)}if(E&&"line"in E&&"column"in E&&E.line>0&&E.column>=0&&!R&&!N&&!A)return;else if(E&&"line"in E&&"column"in E&&R&&"line"in R&&"column"in R&&E.line>0&&E.column>=0&&R.line>0&&R.column>=0&&N)return;else{var L="Invalid mapping: "+JSON.stringify({generated:E,source:N,original:R,name:A});if(this._ignoreInvalidMapping){if(typeof console!=="undefined"&&console.warn)console.warn(L);return!1}else throw new Error(L)}};oR.prototype._serializeMappings=function _(){var E=0,R=1,N=0,A=0,L=0,U=0,G="",S,C,Y,M,H=this._mappings.toArray();for(var X=0,$=H.length;X<$;X++){if(C=H[X],S="",C.generatedLine!==R){E=0;while(C.generatedLine!==R)S+=";",R++}else if(X>0){if(!QE.compareByGeneratedPositionsInflated(C,H[X-1]))continue;S+=","}if(S+=uO.encode(C.generatedColumn-E),E=C.generatedColumn,C.source!=null){if(M=this._sources.indexOf(C.source),S+=uO.encode(M-U),U=M,S+=uO.encode(C.originalLine-1-A),A=C.originalLine-1,S+=uO.encode(C.originalColumn-N),N=C.originalColumn,C.name!=null)Y=this._names.indexOf(C.name),S+=uO.encode(Y-L),L=Y}G+=S}return G};oR.prototype._generateSourcesContent=function _(E,R){return E.map(function(N){if(!this._sourcesContents)return null;if(R!=null)N=QE.relative(R,N);var A=QE.toSetString(N);return Object.prototype.hasOwnProperty.call(this._sourcesContents,A)?this._sourcesContents[A]:null},this)};oR.prototype.toJSON=function _(){var E={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};if(this._file!=null)E.file=this._file;if(this._sourceRoot!=null)E.sourceRoot=this._sourceRoot;if(this._sourcesContents)E.sourcesContent=this._generateSourcesContent(E.sources,E.sourceRoot);return E};oR.prototype.toString=function _(){return JSON.stringify(this.toJSON())};Q9.SourceMapGenerator=oR});var z9=j((s1)=>{s1.GREATEST_LOWER_BOUND=1;s1.LEAST_UPPER_BOUND=2;function YG(_,E,R,N,A,L){var U=Math.floor((E-_)/2)+_,G=A(R,N[U],!0);if(G===0)return U;else if(G>0){if(E-U>1)return YG(U,E,R,N,A,L);if(L==s1.LEAST_UPPER_BOUND)return E1)return YG(_,U,R,N,A,L);if(L==s1.LEAST_UPPER_BOUND)return U;else return _<0?-1:_}}s1.search=function _(E,R,N,A){if(R.length===0)return-1;var L=YG(-1,R.length,E,R,N,A||s1.GREATEST_LOWER_BOUND);if(L<0)return-1;while(L-1>=0){if(N(R[L],R[L-1],!0)!==0)break;--L}return L}});var f9=j((q9)=>{function Gq(_){function E(A,L,U){var G=A[L];A[L]=A[U],A[U]=G}function R(A,L){return Math.round(A+Math.random()*(L-A))}function N(A,L,U,G){if(U{var F_=yT(),WG=z9(),bT=CG().ArraySet,Sq=UG(),cO=f9().quickSort;function HE(_,E){var R=_;if(typeof _==="string")R=F_.parseSourceMapInput(_);return R.sections!=null?new IN(R,E):new nE(R,E)}HE.fromSourceMap=function(_,E){return nE.fromSourceMap(_,E)};HE.prototype._version=3;HE.prototype.__generatedMappings=null;Object.defineProperty(HE.prototype,"_generatedMappings",{configurable:!0,enumerable:!0,get:function(){if(!this.__generatedMappings)this._parseMappings(this._mappings,this.sourceRoot);return this.__generatedMappings}});HE.prototype.__originalMappings=null;Object.defineProperty(HE.prototype,"_originalMappings",{configurable:!0,enumerable:!0,get:function(){if(!this.__originalMappings)this._parseMappings(this._mappings,this.sourceRoot);return this.__originalMappings}});HE.prototype._charIsMappingSeparator=function _(E,R){var N=E.charAt(R);return N===";"||N===","};HE.prototype._parseMappings=function _(E,R){throw new Error("Subclasses must implement _parseMappings")};HE.GENERATED_ORDER=1;HE.ORIGINAL_ORDER=2;HE.GREATEST_LOWER_BOUND=1;HE.LEAST_UPPER_BOUND=2;HE.prototype.eachMapping=function _(E,R,N){var A=R||null,L=N||HE.GENERATED_ORDER,U;switch(L){case HE.GENERATED_ORDER:U=this._generatedMappings;break;case HE.ORIGINAL_ORDER:U=this._originalMappings;break;default:throw new Error("Unknown order of iteration.")}var G=this.sourceRoot,S=E.bind(A),C=this._names,Y=this._sources,M=this._sourceMapURL;for(var H=0,X=U.length;H=0){var U=this._originalMappings[L];if(E.column===void 0){var G=U.originalLine;while(U&&U.originalLine===G)A.push({line:F_.getArg(U,"generatedLine",null),column:F_.getArg(U,"generatedColumn",null),lastColumn:F_.getArg(U,"lastGeneratedColumn",null)}),U=this._originalMappings[++L]}else{var S=U.originalColumn;while(U&&U.originalLine===R&&U.originalColumn==S)A.push({line:F_.getArg(U,"generatedLine",null),column:F_.getArg(U,"generatedColumn",null),lastColumn:F_.getArg(U,"lastGeneratedColumn",null)}),U=this._originalMappings[++L]}}return A};JL.SourceMapConsumer=HE;function nE(_,E){var R=_;if(typeof _==="string")R=F_.parseSourceMapInput(_);var N=F_.getArg(R,"version"),A=F_.getArg(R,"sources"),L=F_.getArg(R,"names",[]),U=F_.getArg(R,"sourceRoot",null),G=F_.getArg(R,"sourcesContent",null),S=F_.getArg(R,"mappings"),C=F_.getArg(R,"file",null);if(N!=this._version)throw new Error("Unsupported version: "+N);if(U)U=F_.normalize(U);A=A.map(String).map(F_.normalize).map(function(Y){return U&&F_.isAbsolute(U)&&F_.isAbsolute(Y)?F_.relative(U,Y):Y}),this._names=bT.fromArray(L.map(String),!0),this._sources=bT.fromArray(A,!0),this._absoluteSources=this._sources.toArray().map(function(Y){return F_.computeSourceURL(U,Y,E)}),this.sourceRoot=U,this.sourcesContent=G,this._mappings=S,this._sourceMapURL=E,this.file=C}nE.prototype=Object.create(HE.prototype);nE.prototype.consumer=HE;nE.prototype._findSourceIndex=function(_){var E=_;if(this.sourceRoot!=null)E=F_.relative(this.sourceRoot,E);if(this._sources.has(E))return this._sources.indexOf(E);var R;for(R=0;R0)_[E]=L,_[E+1]=A}else if(N<20)for(let A=E;AE;L--){let U=_[L-1],G=_[L];if(HG(U,G)<=0)break;_[L-1]=G,_[L]=U}else cO(_,HG,E)}nE.prototype._parseMappings=function _(E,R){var N=1,A=0,L=0,U=0,G=0,S=0,C=E.length,Y=0,M={},H={},X=[],$=[],z,w,g,d,t;let s=0;while(Y1){if(z.source=G+g[1],G+=g[1],z.originalLine=L+g[2],L=z.originalLine,z.originalLine+=1,z.originalColumn=U+g[3],U=z.originalColumn,g.length>4)z.name=S+g[4],S+=g[4]}if($.push(z),typeof z.originalLine==="number"){let k=z.source;while(X.length<=k)X.push(null);if(X[k]===null)X[k]=[];X[k].push(z)}}j9($,s),this.__generatedMappings=$;for(var m=0;m=0){var A=this._generatedMappings[N];if(A.generatedLine===R.generatedLine){var L=F_.getArg(A,"source",null);if(L!==null)L=this._sources.at(L),L=F_.computeSourceURL(this.sourceRoot,L,this._sourceMapURL);var U=F_.getArg(A,"name",null);if(U!==null)U=this._names.at(U);return{source:L,line:F_.getArg(A,"originalLine",null),column:F_.getArg(A,"originalColumn",null),name:U}}}return{source:null,line:null,column:null,name:null}};nE.prototype.hasContentsOfAllSources=function _(){if(!this.sourcesContent)return!1;return this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some(function(E){return E==null})};nE.prototype.sourceContentFor=function _(E,R){if(!this.sourcesContent)return null;var N=this._findSourceIndex(E);if(N>=0)return this.sourcesContent[N];var A=E;if(this.sourceRoot!=null)A=F_.relative(this.sourceRoot,A);var L;if(this.sourceRoot!=null&&(L=F_.urlParse(this.sourceRoot))){var U=A.replace(/^file:\/\//,"");if(L.scheme=="file"&&this._sources.has(U))return this.sourcesContent[this._sources.indexOf(U)];if((!L.path||L.path=="/")&&this._sources.has("/"+A))return this.sourcesContent[this._sources.indexOf("/"+A)]}if(R)return null;else throw new Error('"'+A+'" is not in the SourceMap.')};nE.prototype.generatedPositionFor=function _(E){var R=F_.getArg(E,"source");if(R=this._findSourceIndex(R),R<0)return{line:null,column:null,lastColumn:null};var N={source:R,originalLine:F_.getArg(E,"line"),originalColumn:F_.getArg(E,"column")},A=this._findMapping(N,this._originalMappings,"originalLine","originalColumn",F_.compareByOriginalPositions,F_.getArg(E,"bias",HE.GREATEST_LOWER_BOUND));if(A>=0){var L=this._originalMappings[A];if(L.source===N.source)return{line:F_.getArg(L,"generatedLine",null),column:F_.getArg(L,"generatedColumn",null),lastColumn:F_.getArg(L,"lastGeneratedColumn",null)}}return{line:null,column:null,lastColumn:null}};JL.BasicSourceMapConsumer=nE;function IN(_,E){var R=_;if(typeof _==="string")R=F_.parseSourceMapInput(_);var N=F_.getArg(R,"version"),A=F_.getArg(R,"sections");if(N!=this._version)throw new Error("Unsupported version: "+N);this._sources=new bT,this._names=new bT;var L={line:-1,column:0};this._sections=A.map(function(U){if(U.url)throw new Error("Support for url field in sections not implemented.");var G=F_.getArg(U,"offset"),S=F_.getArg(G,"line"),C=F_.getArg(G,"column");if(S{var Cq=PG().SourceMapGenerator,$L=yT(),Pq=/(\r?\n)/,Yq=10,iT="$$$isSourceNode$$$";function kR(_,E,R,N,A){if(this.children=[],this.sourceContents={},this.line=_==null?null:_,this.column=E==null?null:E,this.source=R==null?null:R,this.name=A==null?null:A,this[iT]=!0,N!=null)this.add(N)}kR.fromStringWithSourceMap=function _(E,R,N){var A=new kR,L=E.split(Pq),U=0,G=function(){var H=$(),X=$()||"";return H+X;function $(){return U=0;R--)this.prepend(E[R]);else if(E[iT]||typeof E==="string")this.children.unshift(E);else throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+E);return this};kR.prototype.walk=function _(E){var R;for(var N=0,A=this.children.length;N0){R=[];for(N=0;N{ZL.SourceMapGenerator=PG().SourceMapGenerator;ZL.SourceMapConsumer=p9().SourceMapConsumer;ZL.SourceNode=k9().SourceNode});var FG=j((zm,y9)=>{var{existsSync:Hq,readFileSync:Wq}=require("fs"),{dirname:MG,join:Mq}=require("path"),{SourceMapConsumer:m9,SourceMapGenerator:g9}=wL();function Fq(_){if(Buffer)return Buffer.from(_,"base64").toString();else return window.atob(_)}class QL{constructor(_,E){if(E.map===!1)return;this.loadAnnotation(_),this.inline=this.startWith(this.annotation,"data:");let R=E.map?E.map.prev:void 0,N=this.loadMap(E.from,R);if(!this.mapFile&&E.from)this.mapFile=E.from;if(this.mapFile)this.root=MG(this.mapFile);if(N)this.text=N}consumer(){if(!this.consumerCache)this.consumerCache=new m9(this.text);return this.consumerCache}decodeInline(_){let E=/^data:application\/json;charset=utf-?8;base64,/,R=/^data:application\/json;base64,/,N=/^data:application\/json;charset=utf-?8,/,A=/^data:application\/json,/,L=_.match(N)||_.match(A);if(L)return decodeURIComponent(_.substr(L[0].length));let U=_.match(E)||_.match(R);if(U)return Fq(_.substr(U[0].length));let G=_.match(/data:application\/json;([^,]+),/)[1];throw new Error("Unsupported source map encoding "+G)}getAnnotationURL(_){return _.replace(/^\/\*\s*# sourceMappingURL=/,"").trim()}isMap(_){if(typeof _!=="object")return!1;return typeof _.mappings==="string"||typeof _._mappings==="string"||Array.isArray(_.sections)}loadAnnotation(_){let E=_.match(/\/\*\s*# sourceMappingURL=/g);if(!E)return;let R=_.lastIndexOf(E.pop()),N=_.indexOf("*/",R);if(R>-1&&N>-1)this.annotation=this.getAnnotationURL(_.substring(R,N))}loadFile(_){if(this.root=MG(_),Hq(_))return this.mapFile=_,Wq(_,"utf-8").toString().trim()}loadMap(_,E){if(E===!1)return!1;if(E)if(typeof E==="string")return E;else if(typeof E==="function"){let R=E(_);if(R){let N=this.loadFile(R);if(!N)throw new Error("Unable to load previous source map: "+R.toString());return N}}else if(E instanceof m9)return g9.fromSourceMap(E).toString();else if(E instanceof g9)return E.toString();else if(this.isMap(E))return JSON.stringify(E);else throw new Error("Unsupported previous source map format: "+E.toString());else if(this.inline)return this.decodeInline(this.annotation);else if(this.annotation){let R=this.annotation;if(_)R=Mq(MG(_),R);return this.loadFile(R)}}startWith(_,E){if(!_)return!1;return _.substr(0,E.length)===E}withContent(){return!!(this.consumer().sourcesContent&&this.consumer().sourcesContent.length>0)}}y9.exports=QL;QL.default=QL});var lO=j((xm,c9)=>{var{nanoid:Bq}=S9(),{isAbsolute:KG,resolve:XG}=require("path"),{SourceMapConsumer:Vq,SourceMapGenerator:Kq}=wL(),{fileURLToPath:b9,pathToFileURL:zL}=require("url"),i9=PL(),Xq=FG(),BG=e3(),VG=Symbol("fromOffsetCache"),Jq=Boolean(Vq&&Kq),u9=Boolean(XG&&KG);class dO{constructor(_,E={}){if(_===null||typeof _==="undefined"||typeof _==="object"&&!_.toString)throw new Error(`PostCSS received ${_} instead of CSS string`);if(this.css=_.toString(),this.css[0]==="\uFEFF"||this.css[0]==="\uFFFE")this.hasBOM=!0,this.css=this.css.slice(1);else this.hasBOM=!1;if(E.from)if(!u9||/^\w+:\/\//.test(E.from)||KG(E.from))this.file=E.from;else this.file=XG(E.from);if(u9&&Jq){let R=new Xq(this.css,E);if(R.text){this.map=R;let N=R.consumer().file;if(!this.file&&N)this.file=this.mapResolve(N)}}if(!this.file)this.id="";if(this.map)this.map.file=this.from}error(_,E,R,N={}){let A,L,U;if(E&&typeof E==="object"){let S=E,C=R;if(typeof S.offset==="number"){let Y=this.fromOffset(S.offset);E=Y.line,R=Y.col}else E=S.line,R=S.column;if(typeof C.offset==="number"){let Y=this.fromOffset(C.offset);L=Y.line,A=Y.col}else L=C.line,A=C.column}else if(!R){let S=this.fromOffset(E);E=S.line,R=S.col}let G=this.origin(E,R,L,A);if(G)U=new i9(_,G.endLine===void 0?G.line:{column:G.column,line:G.line},G.endLine===void 0?G.column:{column:G.endColumn,line:G.endLine},G.source,G.file,N.plugin);else U=new i9(_,L===void 0?E:{column:R,line:E},L===void 0?R:{column:A,line:L},this.css,this.file,N.plugin);if(U.input={column:R,endColumn:A,endLine:L,line:E,source:this.css},this.file){if(zL)U.input.url=zL(this.file).toString();U.input.file=this.file}return U}fromOffset(_){let E,R;if(!this[VG]){let A=this.css.split("\n");R=new Array(A.length);let L=0;for(let U=0,G=A.length;U=E)N=R.length-1;else{let A=R.length-2,L;while(N>1),_=R[L+1])N=L+1;else{N=L;break}}return{col:_-R[N]+1,line:N+1}}mapResolve(_){if(/^\w+:\/\//.test(_))return _;return XG(this.map.consumer().sourceRoot||this.map.root||".",_)}origin(_,E,R,N){if(!this.map)return!1;let A=this.map.consumer(),L=A.originalPositionFor({column:E,line:_});if(!L.source)return!1;let U;if(typeof R==="number")U=A.originalPositionFor({column:N,line:R});let G;if(KG(L.source))G=zL(L.source);else G=new URL(L.source,this.map.consumer().sourceRoot||zL(this.map.mapFile));let S={column:L.column,endColumn:U&&U.column,endLine:U&&U.line,line:L.line,url:G.toString()};if(G.protocol==="file:")if(b9)S.file=b9(G);else throw new Error("file: protocol is not available in this PostCSS build");let C=A.sourceContentFor(L.source);if(C)S.source=C;return S}toJSON(){let _={};for(let E of["hasBOM","css","file","id"])if(this[E]!=null)_[E]=this[E];if(this.map){if(_.map={...this.map},_.map.consumerCache)_.map.consumerCache=void 0}return _}get from(){return this.file||this.id}}c9.exports=dO;dO.default=dO;if(BG&&BG.registerInput)BG.registerInput(dO)});var uT=j((qm,o9)=>{var d9=B1(),l9,n9;class t1 extends d9{constructor(_){super(_);if(this.type="root",!this.nodes)this.nodes=[]}normalize(_,E,R){let N=super.normalize(_);if(E){if(R==="prepend")if(this.nodes.length>1)E.raws.before=this.nodes[1].raws.before;else delete E.raws.before;else if(this.first!==E)for(let A of N)A.raws.before=E.raws.before}return N}removeChild(_,E){let R=this.index(_);if(!E&&R===0&&this.nodes.length>1)this.nodes[1].raws.before=this.nodes[R].raws.before;return super.removeChild(_)}toResult(_={}){return new l9(new n9,this,_).stringify()}}t1.registerLazyResult=(_)=>{l9=_};t1.registerProcessor=(_)=>{n9=_};o9.exports=t1;t1.default=t1;d9.registerRoot(t1)});var JG=j((fm,s9)=>{var nO={comma(_){return nO.split(_,[","],!0)},space(_){let E=[" ","\n","\t"];return nO.split(_,E)},split(_,E,R){let N=[],A="",L=!1,U=0,G=!1,S="",C=!1;for(let Y of _){if(C)C=!1;else if(Y==="\\")C=!0;else if(G){if(Y===S)G=!1}else if(Y==='"'||Y==="'")G=!0,S=Y;else if(Y==="(")U+=1;else if(Y===")"){if(U>0)U-=1}else if(U===0){if(E.includes(Y))L=!0}if(L){if(A!=="")N.push(A.trim());A="",L=!1}else A+=Y}if(R||A!=="")N.push(A.trim());return N}};s9.exports=nO;nO.default=nO});var xL=j((jm,r9)=>{var t9=B1(),$q=JG();class oO extends t9{constructor(_){super(_);if(this.type="rule",!this.nodes)this.nodes=[]}get selectors(){return $q.comma(this.selector)}set selectors(_){let E=this.selector?this.selector.match(/,\s*/):null,R=E?E[0]:","+this.raw("between","beforeOpen");this.selector=_.join(R)}}r9.exports=oO;oO.default=oO;t9.registerRule(oO)});var e9=j((vm,a9)=>{var Zq=BL(),wq=gO(),Qq=yO(),zq=lO(),xq=FG(),qq=uT(),fq=xL();function sO(_,E){if(Array.isArray(_))return _.map((A)=>sO(A));let{inputs:R,...N}=_;if(R){E=[];for(let A of R){let L={...A,__proto__:zq.prototype};if(L.map)L.map={...L.map,__proto__:xq.prototype};E.push(L)}}if(N.nodes)N.nodes=_.nodes.map((A)=>sO(A,E));if(N.source){let{inputId:A,...L}=N.source;if(N.source=L,A!=null)N.source.input=E[A]}if(N.type==="root")return new qq(N);else if(N.type==="decl")return new Qq(N);else if(N.type==="rule")return new fq(N);else if(N.type==="comment")return new wq(N);else if(N.type==="atrule")return new Zq(N);else throw new Error("Unknown node type: "+_.type)}a9.exports=sO;sO.default=sO});var $G=j((pm,AP)=>{var{dirname:qL,relative:EP,resolve:RP,sep:NP}=require("path"),{SourceMapConsumer:TP,SourceMapGenerator:fL}=wL(),{pathToFileURL:_P}=require("url"),jq=lO(),vq=Boolean(TP&&fL),pq=Boolean(qL&&RP&&EP&&NP);class OP{constructor(_,E,R,N){this.stringify=_,this.mapOpts=R.map||{},this.root=E,this.opts=R,this.css=N,this.originalCSS=N,this.usesFileUrls=!this.mapOpts.from&&this.mapOpts.absolute,this.memoizedFileURLs=new Map,this.memoizedPaths=new Map,this.memoizedURLs=new Map}addAnnotation(){let _;if(this.isInline())_="data:application/json;base64,"+this.toBase64(this.map.toString());else if(typeof this.mapOpts.annotation==="string")_=this.mapOpts.annotation;else if(typeof this.mapOpts.annotation==="function")_=this.mapOpts.annotation(this.opts.to,this.root);else _=this.outputFile()+".map";let E="\n";if(this.css.includes("\r\n"))E="\r\n";this.css+=E+"/*# sourceMappingURL="+_+" */"}applyPrevMaps(){for(let _ of this.previous()){let E=this.toUrl(this.path(_.file)),R=_.root||qL(_.file),N;if(this.mapOpts.sourcesContent===!1){if(N=new TP(_.text),N.sourcesContent)N.sourcesContent=null}else N=_.consumer();this.map.applySourceMap(N,E,this.toUrl(this.path(R)))}}clearAnnotation(){if(this.mapOpts.annotation===!1)return;if(this.root){let _;for(let E=this.root.nodes.length-1;E>=0;E--){if(_=this.root.nodes[E],_.type!=="comment")continue;if(_.text.startsWith("# sourceMappingURL="))this.root.removeChild(E)}}else if(this.css)this.css=this.css.replace(/\n*\/\*#[\S\s]*?\*\/$/gm,"")}generate(){if(this.clearAnnotation(),pq&&vq&&this.isMap())return this.generateMap();else{let _="";return this.stringify(this.root,(E)=>{_+=E}),[_]}}generateMap(){if(this.root)this.generateString();else if(this.previous().length===1){let _=this.previous()[0].consumer();_.file=this.outputFile(),this.map=fL.fromSourceMap(_,{ignoreInvalidMapping:!0})}else this.map=new fL({file:this.outputFile(),ignoreInvalidMapping:!0}),this.map.addMapping({generated:{column:0,line:1},original:{column:0,line:1},source:this.opts.from?this.toUrl(this.path(this.opts.from)):""});if(this.isSourcesContent())this.setSourcesContent();if(this.root&&this.previous().length>0)this.applyPrevMaps();if(this.isAnnotation())this.addAnnotation();if(this.isInline())return[this.css];else return[this.css,this.map]}generateString(){this.css="",this.map=new fL({file:this.outputFile(),ignoreInvalidMapping:!0});let _=1,E=1,R="",N={generated:{column:0,line:0},original:{column:0,line:0},source:""},A,L;this.stringify(this.root,(U,G,S)=>{if(this.css+=U,G&&S!=="end")if(N.generated.line=_,N.generated.column=E-1,G.source&&G.source.start)N.source=this.sourcePath(G),N.original.line=G.source.start.line,N.original.column=G.source.start.column-1,this.map.addMapping(N);else N.source=R,N.original.line=1,N.original.column=0,this.map.addMapping(N);if(L=U.match(/\n/g),L)_+=L.length,A=U.lastIndexOf("\n"),E=U.length-A;else E+=U.length;if(G&&S!=="start"){let C=G.parent||{raws:{}};if(!(G.type==="decl"||G.type==="atrule"&&!G.nodes)||G!==C.last||C.raws.semicolon)if(G.source&&G.source.end)N.source=this.sourcePath(G),N.original.line=G.source.end.line,N.original.column=G.source.end.column-1,N.generated.line=_,N.generated.column=E-2,this.map.addMapping(N);else N.source=R,N.original.line=1,N.original.column=0,N.generated.line=_,N.generated.column=E-1,this.map.addMapping(N)}})}isAnnotation(){if(this.isInline())return!0;if(typeof this.mapOpts.annotation!=="undefined")return this.mapOpts.annotation;if(this.previous().length)return this.previous().some((_)=>_.annotation);return!0}isInline(){if(typeof this.mapOpts.inline!=="undefined")return this.mapOpts.inline;let _=this.mapOpts.annotation;if(typeof _!=="undefined"&&_!==!0)return!1;if(this.previous().length)return this.previous().some((E)=>E.inline);return!0}isMap(){if(typeof this.opts.map!=="undefined")return!!this.opts.map;return this.previous().length>0}isSourcesContent(){if(typeof this.mapOpts.sourcesContent!=="undefined")return this.mapOpts.sourcesContent;if(this.previous().length)return this.previous().some((_)=>_.withContent());return!0}outputFile(){if(this.opts.to)return this.path(this.opts.to);else if(this.opts.from)return this.path(this.opts.from);else return"to.css"}path(_){if(this.mapOpts.absolute)return _;if(_.charCodeAt(0)===60)return _;if(/^\w+:\/\//.test(_))return _;let E=this.memoizedPaths.get(_);if(E)return E;let R=this.opts.to?qL(this.opts.to):".";if(typeof this.mapOpts.annotation==="string")R=qL(RP(R,this.mapOpts.annotation));let N=EP(R,_);return this.memoizedPaths.set(_,N),N}previous(){if(!this.previousMaps)if(this.previousMaps=[],this.root)this.root.walk((_)=>{if(_.source&&_.source.input.map){let E=_.source.input.map;if(!this.previousMaps.includes(E))this.previousMaps.push(E)}});else{let _=new jq(this.originalCSS,this.opts);if(_.map)this.previousMaps.push(_.map)}return this.previousMaps}setSourcesContent(){let _={};if(this.root)this.root.walk((E)=>{if(E.source){let R=E.source.input.from;if(R&&!_[R]){_[R]=!0;let N=this.usesFileUrls?this.toFileUrl(R):this.toUrl(this.path(R));this.map.setSourceContent(N,E.source.input.css)}}});else if(this.css){let E=this.opts.from?this.toUrl(this.path(this.opts.from)):"";this.map.setSourceContent(E,this.css)}}sourcePath(_){if(this.mapOpts.from)return this.toUrl(this.mapOpts.from);else if(this.usesFileUrls)return this.toFileUrl(_.source.input.from);else return this.toUrl(this.path(_.source.input.from))}toBase64(_){if(Buffer)return Buffer.from(_).toString("base64");else return window.btoa(unescape(encodeURIComponent(_)))}toFileUrl(_){let E=this.memoizedFileURLs.get(_);if(E)return E;if(_P){let R=_P(_).toString();return this.memoizedFileURLs.set(_,R),R}else throw new Error("`map.absolute` option is not available in this PostCSS build")}toUrl(_){let E=this.memoizedURLs.get(_);if(E)return E;if(NP==="\\")_=_.replace(/\\/g,"/");let R=encodeURI(_).replace(/[#?]/g,encodeURIComponent);return this.memoizedURLs.set(_,R),R}}AP.exports=OP});var DP=j((hm,GP)=>{var hq=BL(),kq=gO(),mq=yO(),gq=uT(),IP=xL(),yq=a3(),LP={empty:!0,space:!0};function bq(_){for(let E=_.length-1;E>=0;E--){let R=_[E],N=R[3]||R[2];if(N)return N}}class UP{constructor(_){this.input=_,this.root=new gq,this.current=this.root,this.spaces="",this.semicolon=!1,this.createTokenizer(),this.root.source={input:_,start:{column:1,line:1,offset:0}}}atrule(_){let E=new hq;if(E.name=_[1].slice(1),E.name==="")this.unnamedAtrule(E,_);this.init(E,_[2]);let R,N,A,L=!1,U=!1,G=[],S=[];while(!this.tokenizer.endOfFile()){if(_=this.tokenizer.nextToken(),R=_[0],R==="("||R==="[")S.push(R==="("?")":"]");else if(R==="{"&&S.length>0)S.push("}");else if(R===S[S.length-1])S.pop();if(S.length===0)if(R===";"){E.source.end=this.getPosition(_[2]),E.source.end.offset++,this.semicolon=!0;break}else if(R==="{"){U=!0;break}else if(R==="}"){if(G.length>0){A=G.length-1,N=G[A];while(N&&N[0]==="space")N=G[--A];if(N)E.source.end=this.getPosition(N[3]||N[2]),E.source.end.offset++}this.end(_);break}else G.push(_);else G.push(_);if(this.tokenizer.endOfFile()){L=!0;break}}if(E.raws.between=this.spacesAndCommentsFromEnd(G),G.length){if(E.raws.afterName=this.spacesAndCommentsFromStart(G),this.raw(E,"params",G),L)_=G[G.length-1],E.source.end=this.getPosition(_[3]||_[2]),E.source.end.offset++,this.spaces=E.raws.between,E.raws.between=""}else E.raws.afterName="",E.params="";if(U)E.nodes=[],this.current=E}checkMissedSemicolon(_){let E=this.colon(_);if(E===!1)return;let R=0,N;for(let A=E-1;A>=0;A--)if(N=_[A],N[0]!=="space"){if(R+=1,R===2)break}throw this.input.error("Missed semicolon",N[0]==="word"?N[3]+1:N[2])}colon(_){let E=0,R,N,A;for(let[L,U]of _.entries()){if(N=U,A=N[0],A==="(")E+=1;if(A===")")E-=1;if(E===0&&A===":")if(!R)this.doubleColon(N);else if(R[0]==="word"&&R[1]==="progid")continue;else return L;R=N}return!1}comment(_){let E=new kq;this.init(E,_[2]),E.source.end=this.getPosition(_[3]||_[2]),E.source.end.offset++;let R=_[1].slice(2,-2);if(/^\s*$/.test(R))E.text="",E.raws.left=R,E.raws.right="";else{let N=R.match(/^(\s*)([^]*\S)(\s*)$/);E.text=N[2],E.raws.left=N[1],E.raws.right=N[3]}}createTokenizer(){this.tokenizer=yq(this.input)}decl(_,E){let R=new mq;this.init(R,_[0][2]);let N=_[_.length-1];if(N[0]===";")this.semicolon=!0,_.pop();R.source.end=this.getPosition(N[3]||N[2]||bq(_)),R.source.end.offset++;while(_[0][0]!=="word"){if(_.length===1)this.unknownWord(_);R.raws.before+=_.shift()[1]}R.source.start=this.getPosition(_[0][2]),R.prop="";while(_.length){let S=_[0][0];if(S===":"||S==="space"||S==="comment")break;R.prop+=_.shift()[1]}R.raws.between="";let A;while(_.length)if(A=_.shift(),A[0]===":"){R.raws.between+=A[1];break}else{if(A[0]==="word"&&/\w/.test(A[1]))this.unknownWord([A]);R.raws.between+=A[1]}if(R.prop[0]==="_"||R.prop[0]==="*")R.raws.before+=R.prop[0],R.prop=R.prop.slice(1);let L=[],U;while(_.length){if(U=_[0][0],U!=="space"&&U!=="comment")break;L.push(_.shift())}this.precheckMissedSemicolon(_);for(let S=_.length-1;S>=0;S--){if(A=_[S],A[1].toLowerCase()==="!important"){R.important=!0;let C=this.stringFrom(_,S);if(C=this.spacesFromEnd(_)+C,C!==" !important")R.raws.important=C;break}else if(A[1].toLowerCase()==="important"){let C=_.slice(0),Y="";for(let M=S;M>0;M--){let H=C[M][0];if(Y.trim().startsWith("!")&&H!=="space")break;Y=C.pop()[1]+Y}if(Y.trim().startsWith("!"))R.important=!0,R.raws.important=Y,_=C}if(A[0]!=="space"&&A[0]!=="comment")break}if(_.some((S)=>S[0]!=="space"&&S[0]!=="comment"))R.raws.between+=L.map((S)=>S[1]).join(""),L=[];if(this.raw(R,"value",L.concat(_),E),R.value.includes(":")&&!E)this.checkMissedSemicolon(_)}doubleColon(_){throw this.input.error("Double colon",{offset:_[2]},{offset:_[2]+_[1].length})}emptyRule(_){let E=new IP;this.init(E,_[2]),E.selector="",E.raws.between="",this.current=E}end(_){if(this.current.nodes&&this.current.nodes.length)this.current.raws.semicolon=this.semicolon;if(this.semicolon=!1,this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.spaces="",this.current.parent)this.current.source.end=this.getPosition(_[2]),this.current.source.end.offset++,this.current=this.current.parent;else this.unexpectedClose(_)}endFile(){if(this.current.parent)this.unclosedBlock();if(this.current.nodes&&this.current.nodes.length)this.current.raws.semicolon=this.semicolon;this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.root.source.end=this.getPosition(this.tokenizer.position())}freeSemicolon(_){if(this.spaces+=_[1],this.current.nodes){let E=this.current.nodes[this.current.nodes.length-1];if(E&&E.type==="rule"&&!E.raws.ownSemicolon)E.raws.ownSemicolon=this.spaces,this.spaces=""}}getPosition(_){let E=this.input.fromOffset(_);return{column:E.col,line:E.line,offset:_}}init(_,E){if(this.current.push(_),_.source={input:this.input,start:this.getPosition(E)},_.raws.before=this.spaces,this.spaces="",_.type!=="comment")this.semicolon=!1}other(_){let E=!1,R=null,N=!1,A=null,L=[],U=_[1].startsWith("--"),G=[],S=_;while(S){if(R=S[0],G.push(S),R==="("||R==="["){if(!A)A=S;L.push(R==="("?")":"]")}else if(U&&N&&R==="{"){if(!A)A=S;L.push("}")}else if(L.length===0){if(R===";")if(N){this.decl(G,U);return}else break;else if(R==="{"){this.rule(G);return}else if(R==="}"){this.tokenizer.back(G.pop()),E=!0;break}else if(R===":")N=!0}else if(R===L[L.length-1]){if(L.pop(),L.length===0)A=null}S=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile())E=!0;if(L.length>0)this.unclosedBracket(A);if(E&&N){if(!U)while(G.length){if(S=G[G.length-1][0],S!=="space"&&S!=="comment")break;this.tokenizer.back(G.pop())}this.decl(G,U)}else this.unknownWord(G)}parse(){let _;while(!this.tokenizer.endOfFile())switch(_=this.tokenizer.nextToken(),_[0]){case"space":this.spaces+=_[1];break;case";":this.freeSemicolon(_);break;case"}":this.end(_);break;case"comment":this.comment(_);break;case"at-word":this.atrule(_);break;case"{":this.emptyRule(_);break;default:this.other(_);break}this.endFile()}precheckMissedSemicolon(){}raw(_,E,R,N){let A,L,U=R.length,G="",S=!0,C,Y;for(let M=0;MH+X[1],"");_.raws[E]={raw:M,value:G}}_[E]=G}rule(_){_.pop();let E=new IP;this.init(E,_[0][2]),E.raws.between=this.spacesAndCommentsFromEnd(_),this.raw(E,"selector",_),this.current=E}spacesAndCommentsFromEnd(_){let E,R="";while(_.length){if(E=_[_.length-1][0],E!=="space"&&E!=="comment")break;R=_.pop()[1]+R}return R}spacesAndCommentsFromStart(_){let E,R="";while(_.length){if(E=_[0][0],E!=="space"&&E!=="comment")break;R+=_.shift()[1]}return R}spacesFromEnd(_){let E,R="";while(_.length){if(E=_[_.length-1][0],E!=="space")break;R=_.pop()[1]+R}return R}stringFrom(_,E){let R="";for(let N=E;N<_.length;N++)R+=_[N][1];return _.splice(E,_.length-E),R}unclosedBlock(){let _=this.current.source.start;throw this.input.error("Unclosed block",_.line,_.column)}unclosedBracket(_){throw this.input.error("Unclosed bracket",{offset:_[2]},{offset:_[2]+1})}unexpectedClose(_){throw this.input.error("Unexpected }",{offset:_[2]},{offset:_[2]+1})}unknownWord(_){throw this.input.error("Unknown word",{offset:_[0][2]},{offset:_[0][2]+_[0][1].length})}unnamedAtrule(_,E){throw this.input.error("At-rule without name",{offset:E[2]},{offset:E[2]+E[1].length})}}GP.exports=UP});var vL=j((km,SP)=>{var iq=B1(),uq=lO(),cq=DP();function jL(_,E){let R=new uq(_,E),N=new cq(R);try{N.parse()}catch(A){if(A.name==="CssSyntaxError"&&E&&E.from){if(/\.scss$/i.test(E.from))A.message+="\nYou tried to parse SCSS with the standard CSS parser; try again with the postcss-scss parser";else if(/\.sass/i.test(E.from))A.message+="\nYou tried to parse Sass with the standard CSS parser; try again with the postcss-sass parser";else if(/\.less$/i.test(E.from))A.message+="\nYou tried to parse Less with the standard CSS parser; try again with the postcss-less parser"}throw A}return N.root}SP.exports=jL;jL.default=jL;iq.registerParse(jL)});var ZG=j((mm,CP)=>{class pL{constructor(_,E={}){if(this.type="warning",this.text=_,E.node&&E.node.source){let R=E.node.rangeBy(E);this.line=R.start.line,this.column=R.start.column,this.endLine=R.end.line,this.endColumn=R.end.column}for(let R in E)this[R]=E[R]}toString(){if(this.node)return this.node.error(this.text,{index:this.index,plugin:this.plugin,word:this.word}).message;if(this.plugin)return this.plugin+": "+this.text;return this.text}}CP.exports=pL;pL.default=pL});var kL=j((gm,PP)=>{var dq=ZG();class hL{constructor(_,E,R){this.processor=_,this.messages=[],this.root=E,this.opts=R,this.css=void 0,this.map=void 0}toString(){return this.css}warn(_,E={}){if(!E.plugin){if(this.lastPlugin&&this.lastPlugin.postcssPlugin)E.plugin=this.lastPlugin.postcssPlugin}let R=new dq(_,E);return this.messages.push(R),R}warnings(){return this.messages.filter((_)=>_.type==="warning")}get content(){return this.css}}PP.exports=hL;hL.default=hL});var wG=j((ym,HP)=>{var YP={};HP.exports=function _(E){if(YP[E])return;if(YP[E]=!0,typeof console!=="undefined"&&console.warn)console.warn(E)}});var xG=j((bm,BP)=>{var lq=B1(),nq=VL(),oq=$G(),sq=vL(),WP=kL(),tq=uT(),rq=hO(),{isClean:XN,my:aq}=HL(),eq=wG(),_f={atrule:"AtRule",comment:"Comment",decl:"Declaration",document:"Document",root:"Root",rule:"Rule"},Ef={AtRule:!0,AtRuleExit:!0,Comment:!0,CommentExit:!0,Declaration:!0,DeclarationExit:!0,Document:!0,DocumentExit:!0,Once:!0,OnceExit:!0,postcssPlugin:!0,prepare:!0,Root:!0,RootExit:!0,Rule:!0,RuleExit:!0},Rf={Once:!0,postcssPlugin:!0,prepare:!0},cT=0;function tO(_){return typeof _==="object"&&typeof _.then==="function"}function FP(_){let E=!1,R=_f[_.type];if(_.type==="decl")E=_.prop.toLowerCase();else if(_.type==="atrule")E=_.name.toLowerCase();if(E&&_.append)return[R,R+"-"+E,cT,R+"Exit",R+"Exit-"+E];else if(E)return[R,R+"-"+E,R+"Exit",R+"Exit-"+E];else if(_.append)return[R,cT,R+"Exit"];else return[R,R+"Exit"]}function MP(_){let E;if(_.type==="document")E=["Document",cT,"DocumentExit"];else if(_.type==="root")E=["Root",cT,"RootExit"];else E=FP(_);return{eventIndex:0,events:E,iterator:0,node:_,visitorIndex:0,visitors:[]}}function QG(_){if(_[XN]=!1,_.nodes)_.nodes.forEach((E)=>QG(E));return _}var zG={};class V1{constructor(_,E,R){this.stringified=!1,this.processed=!1;let N;if(typeof E==="object"&&E!==null&&(E.type==="root"||E.type==="document"))N=QG(E);else if(E instanceof V1||E instanceof WP){if(N=QG(E.root),E.map){if(typeof R.map==="undefined")R.map={};if(!R.map.inline)R.map.inline=!1;R.map.prev=E.map}}else{let A=sq;if(R.syntax)A=R.syntax.parse;if(R.parser)A=R.parser;if(A.parse)A=A.parse;try{N=A(E,R)}catch(L){this.processed=!0,this.error=L}if(N&&!N[aq])lq.rebuild(N)}this.result=new WP(_,N,R),this.helpers={...zG,postcss:zG,result:this.result},this.plugins=this.processor.plugins.map((A)=>{if(typeof A==="object"&&A.prepare)return{...A,...A.prepare(this.result)};else return A})}async(){if(this.error)return Promise.reject(this.error);if(this.processed)return Promise.resolve(this.result);if(!this.processing)this.processing=this.runAsync();return this.processing}catch(_){return this.async().catch(_)}finally(_){return this.async().then(_,_)}getAsyncError(){throw new Error("Use process(css).then(cb) to work with async plugins")}handleError(_,E){let R=this.result.lastPlugin;try{if(E)E.addToError(_);if(this.error=_,_.name==="CssSyntaxError"&&!_.plugin)_.plugin=R.postcssPlugin,_.setMessage();else if(R.postcssVersion){let{postcssPlugin:N,postcssVersion:A}=R,L=this.result.processor.version,U=A.split("."),G=L.split(".");if(U[0]!==G[0]||parseInt(U[1])>parseInt(G[1]))console.error("Unknown error from PostCSS plugin. Your current PostCSS version is "+L+", but "+N+" uses "+A+". Perhaps this is the source of the error below.")}}catch(N){if(console&&console.error)console.error(N)}return _}prepareVisitors(){this.listeners={};let _=(E,R,N)=>{if(!this.listeners[R])this.listeners[R]=[];this.listeners[R].push([E,N])};for(let E of this.plugins)if(typeof E==="object")for(let R in E){if(!Ef[R]&&/^[A-Z]/.test(R))throw new Error(`Unknown event ${R} in ${E.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!Rf[R]){if(typeof E[R]==="object")for(let N in E[R])if(N==="*")_(E,R,E[R][N]);else _(E,R+"-"+N.toLowerCase(),E[R][N]);else if(typeof E[R]==="function")_(E,R,E[R])}}this.hasListener=Object.keys(this.listeners).length>0}async runAsync(){this.plugin=0;for(let _=0;_0){let R=this.visitTick(E);if(tO(R))try{await R}catch(N){let A=E[E.length-1].node;throw this.handleError(N,A)}}}if(this.listeners.OnceExit)for(let[E,R]of this.listeners.OnceExit){this.result.lastPlugin=E;try{if(_.type==="document"){let N=_.nodes.map((A)=>R(A,this.helpers));await Promise.all(N)}else await R(_,this.helpers)}catch(N){throw this.handleError(N)}}}return this.processed=!0,this.stringify()}runOnRoot(_){this.result.lastPlugin=_;try{if(typeof _==="object"&&_.Once){if(this.result.root.type==="document"){let E=this.result.root.nodes.map((R)=>_.Once(R,this.helpers));if(tO(E[0]))return Promise.all(E);return E}return _.Once(this.result.root,this.helpers)}else if(typeof _==="function")return _(this.result.root,this.result)}catch(E){throw this.handleError(E)}}stringify(){if(this.error)throw this.error;if(this.stringified)return this.result;this.stringified=!0,this.sync();let _=this.result.opts,E=rq;if(_.syntax)E=_.syntax.stringify;if(_.stringifier)E=_.stringifier;if(E.stringify)E=E.stringify;let N=new oq(E,this.result.root,this.result.opts).generate();return this.result.css=N[0],this.result.map=N[1],this.result}sync(){if(this.error)throw this.error;if(this.processed)return this.result;if(this.processed=!0,this.processing)throw this.getAsyncError();for(let _ of this.plugins){let E=this.runOnRoot(_);if(tO(E))throw this.getAsyncError()}if(this.prepareVisitors(),this.hasListener){let _=this.result.root;while(!_[XN])_[XN]=!0,this.walkSync(_);if(this.listeners.OnceExit)if(_.type==="document")for(let E of _.nodes)this.visitSync(this.listeners.OnceExit,E);else this.visitSync(this.listeners.OnceExit,_)}return this.result}then(_,E){if(!("from"in this.opts))eq("Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.");return this.async().then(_,E)}toString(){return this.css}visitSync(_,E){for(let[R,N]of _){this.result.lastPlugin=R;let A;try{A=N(E,this.helpers)}catch(L){throw this.handleError(L,E.proxyOf)}if(E.type!=="root"&&E.type!=="document"&&!E.parent)return!0;if(tO(A))throw this.getAsyncError()}}visitTick(_){let E=_[_.length-1],{node:R,visitors:N}=E;if(R.type!=="root"&&R.type!=="document"&&!R.parent){_.pop();return}if(N.length>0&&E.visitorIndex{if(!N[XN])this.walkSync(N)})}else{let N=this.listeners[R];if(N){if(this.visitSync(N,_.toProxy()))return}}}warnings(){return this.sync().warnings()}get content(){return this.stringify().content}get css(){return this.stringify().css}get map(){return this.stringify().map}get messages(){return this.sync().messages}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){return this.sync().root}get[Symbol.toStringTag](){return"LazyResult"}}V1.registerPostcss=(_)=>{zG=_};BP.exports=V1;V1.default=V1;tq.registerLazyResult(V1);nq.registerLazyResult(V1)});var KP=j((im,VP)=>{var Nf=$G(),Tf=vL(),Of=kL(),Af=hO(),If=wG();class mL{constructor(_,E,R){E=E.toString(),this.stringified=!1,this._processor=_,this._css=E,this._opts=R,this._map=void 0;let N,A=Af;this.result=new Of(this._processor,N,this._opts),this.result.css=E;let L=this;Object.defineProperty(this.result,"root",{get(){return L.root}});let U=new Nf(A,N,this._opts,E);if(U.isMap()){let[G,S]=U.generate();if(G)this.result.css=G;if(S)this.result.map=S}else U.clearAnnotation(),this.result.css=U.css}async(){if(this.error)return Promise.reject(this.error);return Promise.resolve(this.result)}catch(_){return this.async().catch(_)}finally(_){return this.async().then(_,_)}sync(){if(this.error)throw this.error;return this.result}then(_,E){if(!("from"in this._opts))If("Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.");return this.async().then(_,E)}toString(){return this._css}warnings(){return[]}get content(){return this.result.css}get css(){return this.result.css}get map(){return this.result.map}get messages(){return[]}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){if(this._root)return this._root;let _,E=Tf;try{_=E(this._css,this._opts)}catch(R){this.error=R}if(this.error)throw this.error;else return this._root=_,_}get[Symbol.toStringTag](){return"NoWorkResult"}}VP.exports=mL;mL.default=mL});var JP=j((um,XP)=>{var Lf=VL(),Uf=xG(),Gf=KP(),Df=uT();class dT{constructor(_=[]){this.version="8.4.47",this.plugins=this.normalize(_)}normalize(_){let E=[];for(let R of _){if(R.postcss===!0)R=R();else if(R.postcss)R=R.postcss;if(typeof R==="object"&&Array.isArray(R.plugins))E=E.concat(R.plugins);else if(typeof R==="object"&&R.postcssPlugin)E.push(R);else if(typeof R==="function")E.push(R);else if(typeof R==="object"&&(R.parse||R.stringify))throw new Error("PostCSS syntaxes cannot be used as plugins. Instead, please use one of the syntax/parser/stringifier options as outlined in your PostCSS runner documentation.");else throw new Error(R+" is not a PostCSS plugin")}return E}process(_,E={}){if(!this.plugins.length&&!E.parser&&!E.stringifier&&!E.syntax)return new Gf(this,_,E);else return new Uf(this,_,E)}use(_){return this.plugins=this.plugins.concat(this.normalize([_])),this}}XP.exports=dT;dT.default=dT;Df.registerProcessor(dT);Lf.registerProcessor(dT)});var fP=j((cm,qP)=>{var $P=BL(),ZP=gO(),Sf=B1(),Cf=PL(),wP=yO(),QP=VL(),Pf=e9(),Yf=lO(),Hf=xG(),Wf=JG(),Mf=mO(),Ff=vL(),qG=JP(),Bf=kL(),zP=uT(),xP=xL(),Vf=hO(),Kf=ZG();function RE(..._){if(_.length===1&&Array.isArray(_[0]))_=_[0];return new qG(_)}RE.plugin=function _(E,R){let N=!1;function A(...U){if(console&&console.warn&&!N){if(N=!0,console.warn(E+": postcss.plugin was deprecated. Migration guide:\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration"),process.env.LANG&&process.env.LANG.startsWith("cn"))console.warn(E+`: \u91CC\u9762 postcss.plugin \u88AB\u5F03\u7528. \u8FC1\u79FB\u6307\u5357: +`+"https://www.w3ctech.com/topic/2226")}let G=R(...U);return G.postcssPlugin=E,G.postcssVersion=new qG().version,G}let L;return Object.defineProperty(A,"postcss",{get(){if(!L)L=A();return L}}),A.process=function(U,G,S){return RE([A(S)]).process(U,G)},A};RE.stringify=Vf;RE.parse=Ff;RE.fromJSON=Pf;RE.list=Wf;RE.comment=(_)=>new ZP(_);RE.atRule=(_)=>new $P(_);RE.decl=(_)=>new wP(_);RE.rule=(_)=>new xP(_);RE.root=(_)=>new zP(_);RE.document=(_)=>new QP(_);RE.CssSyntaxError=Cf;RE.Declaration=wP;RE.Container=Sf;RE.Processor=qG;RE.Document=QP;RE.Comment=ZP;RE.Warning=Kf;RE.AtRule=$P;RE.Result=Bf;RE.Input=Yf;RE.Rule=xP;RE.Root=zP;RE.Node=Mf;Hf.registerPostcss(RE);qP.exports=RE;RE.default=RE});var fG=j((dm,hP)=>{var Xf=KC(),jP=JC(),{isPlainObject:Jf}=ZC(),vP=xC(),$f=fC(),{parse:Zf}=fP(),wf=["img","audio","video","picture","svg","object","map","iframe","embed"],Qf=["script","style"];function rO(_,E){if(_)Object.keys(_).forEach(function(R){E(_[R],R)})}function tN(_,E){return{}.hasOwnProperty.call(_,E)}function pP(_,E){let R=[];return rO(_,function(N){if(E(N))R.push(N)}),R}function zf(_){for(let E in _)if(tN(_,E))return!1;return!0}function xf(_){return _.map(function(E){if(!E.url)throw new Error("URL missing");return E.url+(E.w?` ${E.w}w`:"")+(E.h?` ${E.h}h`:"")+(E.d?` ${E.d}x`:"")}).join(", ")}hP.exports=aO;var qf=/^[^\0\t\n\f\r /<=>]+$/;function aO(_,E,R){if(_==null)return"";if(typeof _==="number")_=_.toString();let N="",A="";function L(r,A_){let L_=this;this.tag=r,this.attribs=A_||{},this.tagPosition=N.length,this.text="",this.mediaChildren=[],this.updateParentNodeText=function(){if(w.length){let P_=w[w.length-1];P_.text+=L_.text}},this.updateParentNodeMediaChildren=function(){if(w.length&&wf.includes(this.tag))w[w.length-1].mediaChildren.push(this.tag)}}E=Object.assign({},aO.defaults,E),E.parser=Object.assign({},ff,E.parser);let U=function(r){return E.allowedTags===!1||(E.allowedTags||[]).indexOf(r)>-1};Qf.forEach(function(r){if(U(r)&&!E.allowVulnerableTags)console.warn(` + +\u26A0\uFE0F Your \`allowedTags\` option includes, \`${r}\`, which is inherently\nvulnerable to XSS attacks. Please remove it from \`allowedTags\`.\nOr, to disable this warning, add the \`allowVulnerableTags\` option\nand ensure you are accounting for this risk.\n\n`)});let G=E.nonTextTags||["script","style","textarea","option"],S,C;if(E.allowedAttributes)S={},C={},rO(E.allowedAttributes,function(r,A_){S[A_]=[];let L_=[];if(r.forEach(function(P_){if(typeof P_==="string"&&P_.indexOf("*")>=0)L_.push(jP(P_).replace(/\\\*/g,".*"));else S[A_].push(P_)}),L_.length)C[A_]=new RegExp("^("+L_.join("|")+")$")});let Y={},M={},H={};rO(E.allowedClasses,function(r,A_){if(S){if(!tN(S,A_))S[A_]=[];S[A_].push("class")}if(Y[A_]=r,Array.isArray(r)){let L_=[];if(Y[A_]=[],H[A_]=[],r.forEach(function(P_){if(typeof P_==="string"&&P_.indexOf("*")>=0)L_.push(jP(P_).replace(/\\\*/g,".*"));else if(P_ instanceof RegExp)H[A_].push(P_);else Y[A_].push(P_)}),L_.length)M[A_]=new RegExp("^("+L_.join("|")+")$")}});let X={},$;rO(E.transformTags,function(r,A_){let L_;if(typeof r==="function")L_=r;else if(typeof r==="string")L_=aO.simpleTransform(r);if(A_==="*")$=L_;else X[A_]=L_});let z,w,g,d,t,s,m=!1;e();let k=new Xf.Parser({onopentag:function(r,A_){if(E.enforceHtmlBoundary&&r==="html")e();if(t){s++;return}let L_=new L(r,A_);w.push(L_);let P_=!1,p_=!!L_.text,l_;if(tN(X,r)){if(l_=X[r](r,A_),L_.attribs=A_=l_.attribs,l_.text!==void 0)L_.innerText=l_.text;if(r!==l_.tagName)L_.name=r=l_.tagName,d[z]=l_.tagName}if($){if(l_=$(r,A_),L_.attribs=A_=l_.attribs,r!==l_.tagName)L_.name=r=l_.tagName,d[z]=l_.tagName}if(!U(r)||E.disallowedTagsMode==="recursiveEscape"&&!zf(g)||E.nestingLimit!=null&&z>=E.nestingLimit){if(P_=!0,g[z]=!0,E.disallowedTagsMode==="discard"||E.disallowedTagsMode==="completelyDiscard"){if(G.indexOf(r)!==-1)t=!0,s=1}g[z]=!0}if(z++,P_){if(E.disallowedTagsMode==="discard"||E.disallowedTagsMode==="completelyDiscard")return;A=N,N=""}if(N+="<"+r,r==="script"){if(E.allowedScriptHostnames||E.allowedScriptDomains)L_.innerText=""}if(!S||tN(S,r)||S["*"])rO(A_,function(j_,a){if(!qf.test(a)){delete L_.attribs[a];return}if(j_===""&&!E.allowedEmptyAttributes.includes(a)&&(E.nonBooleanAttributes.includes(a)||E.nonBooleanAttributes.includes("*"))){delete L_.attribs[a];return}let WE=!1;if(!S||tN(S,r)&&S[r].indexOf(a)!==-1||S["*"]&&S["*"].indexOf(a)!==-1||tN(C,r)&&C[r].test(a)||C["*"]&&C["*"].test(a))WE=!0;else if(S&&S[r]){for(let q_ of S[r])if(Jf(q_)&&q_.name&&q_.name===a){WE=!0;let k_="";if(q_.multiple===!0){let n_=j_.split(" ");for(let e_ of n_)if(q_.values.indexOf(e_)!==-1)if(k_==="")k_=e_;else k_+=" "+e_}else if(q_.values.indexOf(j_)>=0)k_=j_;j_=k_}}if(WE){if(E.allowedSchemesAppliedToAttributes.indexOf(a)!==-1){if(c(r,j_)){delete L_.attribs[a];return}}if(r==="script"&&a==="src"){let q_=!0;try{let k_=S_(j_);if(E.allowedScriptHostnames||E.allowedScriptDomains){let n_=(E.allowedScriptHostnames||[]).find(function(V){return V===k_.url.hostname}),e_=(E.allowedScriptDomains||[]).find(function(V){return k_.url.hostname===V||k_.url.hostname.endsWith(`.${V}`)});q_=n_||e_}}catch(k_){q_=!1}if(!q_){delete L_.attribs[a];return}}if(r==="iframe"&&a==="src"){let q_=!0;try{let k_=S_(j_);if(k_.isRelativeUrl)q_=tN(E,"allowIframeRelativeUrls")?E.allowIframeRelativeUrls:!E.allowedIframeHostnames&&!E.allowedIframeDomains;else if(E.allowedIframeHostnames||E.allowedIframeDomains){let n_=(E.allowedIframeHostnames||[]).find(function(V){return V===k_.url.hostname}),e_=(E.allowedIframeDomains||[]).find(function(V){return k_.url.hostname===V||k_.url.hostname.endsWith(`.${V}`)});q_=n_||e_}}catch(k_){q_=!1}if(!q_){delete L_.attribs[a];return}}if(a==="srcset")try{let q_=$f(j_);if(q_.forEach(function(k_){if(c("srcset",k_.url))k_.evil=!0}),q_=pP(q_,function(k_){return!k_.evil}),!q_.length){delete L_.attribs[a];return}else j_=xf(pP(q_,function(k_){return!k_.evil})),L_.attribs[a]=j_}catch(q_){delete L_.attribs[a];return}if(a==="class"){let q_=Y[r],k_=Y["*"],n_=M[r],e_=H[r],V=H["*"],J=M["*"],Q=[n_,J].concat(e_,V).filter(function(i){return i});if(q_&&k_)j_=z_(j_,vP(q_,k_),Q);else j_=z_(j_,q_||k_,Q);if(!j_.length){delete L_.attribs[a];return}}if(a==="style"){if(E.parseStyleAttributes)try{let q_=Zf(r+" {"+j_+"}",{map:!1}),k_=U_(q_,E.allowedStyles);if(j_=V_(k_),j_.length===0){delete L_.attribs[a];return}}catch(q_){if(typeof window!=="undefined")console.warn('Failed to parse "'+r+" {"+j_+'}", If you\'re running this in a browser, we recommend to disable style parsing: options.parseStyleAttributes: false, since this only works in a node environment due to a postcss dependency, More info: https://github.com/apostrophecms/sanitize-html/issues/547');delete L_.attribs[a];return}else if(E.allowedStyles)throw new Error("allowedStyles option cannot be used together with parseStyleAttributes: false.")}if(N+=" "+a,j_&&j_.length)N+='="'+o(j_,!0)+'"';else if(E.allowedEmptyAttributes.includes(a))N+='=""'}else delete L_.attribs[a]});if(E.selfClosing.indexOf(r)!==-1)N+=" />";else if(N+=">",L_.innerText&&!p_&&!E.textFilter)N+=o(L_.innerText),m=!0;if(P_)N=A+o(N),A=""},ontext:function(r){if(t)return;let A_=w[w.length-1],L_;if(A_)L_=A_.tag,r=A_.innerText!==void 0?A_.innerText:r;if(E.disallowedTagsMode==="completelyDiscard"&&!U(L_))r="";else if((E.disallowedTagsMode==="discard"||E.disallowedTagsMode==="completelyDiscard")&&(L_==="script"||L_==="style"))N+=r;else{let P_=o(r,!1);if(E.textFilter&&!m)N+=E.textFilter(P_,L_);else if(!m)N+=P_}if(w.length){let P_=w[w.length-1];P_.text+=r}},onclosetag:function(r,A_){if(t)if(s--,!s)t=!1;else return;let L_=w.pop();if(!L_)return;if(L_.tag!==r){w.push(L_);return}t=E.enforceHtmlBoundary?r==="html":!1,z--;let P_=g[z];if(P_){if(delete g[z],E.disallowedTagsMode==="discard"||E.disallowedTagsMode==="completelyDiscard"){L_.updateParentNodeText();return}A=N,N=""}if(d[z])r=d[z],delete d[z];if(E.exclusiveFilter&&E.exclusiveFilter(L_)){N=N.substr(0,L_.tagPosition);return}if(L_.updateParentNodeMediaChildren(),L_.updateParentNodeText(),E.selfClosing.indexOf(r)!==-1||A_&&!U(r)&&["escape","recursiveEscape"].indexOf(E.disallowedTagsMode)>=0){if(P_)N=A,A="";return}if(N+="",P_)N=A+o(N),A="";m=!1}},E.parser);return k.write(_),k.end(),N;function e(){N="",z=0,w=[],g={},d={},t=!1,s=0}function o(r,A_){if(typeof r!=="string")r=r+"";if(E.parser.decodeEntities){if(r=r.replace(/&/g,"&").replace(//g,">"),A_)r=r.replace(/"/g,""")}if(r=r.replace(/&(?![a-zA-Z0-9#]{1,20};)/g,"&").replace(//g,">"),A_)r=r.replace(/"/g,""");return r}function c(r,A_){A_=A_.replace(/[\x00-\x20]+/g,"");while(!0){let p_=A_.indexOf("",p_+4);if(l_===-1)break;A_=A_.substring(0,p_)+A_.substring(l_+3)}let L_=A_.match(/^([a-zA-Z][a-zA-Z0-9.\-+]*):/);if(!L_){if(A_.match(/^[/\\]{2}/))return!E.allowProtocolRelative;return!1}let P_=L_[1].toLowerCase();if(tN(E.allowedSchemesByTag,r))return E.allowedSchemesByTag[r].indexOf(P_)===-1;return!E.allowedSchemes||E.allowedSchemes.indexOf(P_)===-1}function S_(r){if(r=r.replace(/^(\w+:)?\s*[\\/]\s*[\\/]/,"$1//"),r.startsWith("relative:"))throw new Error("relative: exploit attempt");let A_="relative://relative-site";for(let p_=0;p_<100;p_++)A_+=`/${p_}`;let L_=new URL(r,A_);return{isRelativeUrl:L_&&L_.hostname==="relative-site"&&L_.protocol==="relative:",url:L_}}function U_(r,A_){if(!A_)return r;let L_=r.nodes[0],P_;if(A_[L_.selector]&&A_["*"])P_=vP(A_[L_.selector],A_["*"]);else P_=A_[L_.selector]||A_["*"];if(P_)r.nodes[0].nodes=L_.nodes.reduce(K_(P_),[]);return r}function V_(r){return r.nodes[0].nodes.reduce(function(A_,L_){return A_.push(`${L_.prop}:${L_.value}${L_.important?" !important":""}`),A_},[]).join(";")}function K_(r){return function(A_,L_){if(tN(r,L_.prop)){if(r[L_.prop].some(function(p_){return p_.test(L_.value)}))A_.push(L_)}return A_}}function z_(r,A_,L_){if(!A_)return r;return r=r.split(/\s+/),r.filter(function(P_){return A_.indexOf(P_)!==-1||L_.some(function(p_){return p_.test(P_)})}).join(" ")}}var ff={decodeEntities:!0};aO.defaults={allowedTags:["address","article","aside","footer","header","h1","h2","h3","h4","h5","h6","hgroup","main","nav","section","blockquote","dd","div","dl","dt","figcaption","figure","hr","li","main","ol","p","pre","ul","a","abbr","b","bdi","bdo","br","cite","code","data","dfn","em","i","kbd","mark","q","rb","rp","rt","rtc","ruby","s","samp","small","span","strong","sub","sup","time","u","var","wbr","caption","col","colgroup","table","tbody","td","tfoot","th","thead","tr"],nonBooleanAttributes:["abbr","accept","accept-charset","accesskey","action","allow","alt","as","autocapitalize","autocomplete","blocking","charset","cite","class","color","cols","colspan","content","contenteditable","coords","crossorigin","data","datetime","decoding","dir","dirname","download","draggable","enctype","enterkeyhint","fetchpriority","for","form","formaction","formenctype","formmethod","formtarget","headers","height","hidden","high","href","hreflang","http-equiv","id","imagesizes","imagesrcset","inputmode","integrity","is","itemid","itemprop","itemref","itemtype","kind","label","lang","list","loading","low","max","maxlength","media","method","min","minlength","name","nonce","optimum","pattern","ping","placeholder","popover","popovertarget","popovertargetaction","poster","preload","referrerpolicy","rel","rows","rowspan","sandbox","scope","shape","size","sizes","slot","span","spellcheck","src","srcdoc","srclang","srcset","start","step","style","tabindex","target","title","translate","type","usemap","value","width","wrap","onauxclick","onafterprint","onbeforematch","onbeforeprint","onbeforeunload","onbeforetoggle","onblur","oncancel","oncanplay","oncanplaythrough","onchange","onclick","onclose","oncontextlost","oncontextmenu","oncontextrestored","oncopy","oncuechange","oncut","ondblclick","ondrag","ondragend","ondragenter","ondragleave","ondragover","ondragstart","ondrop","ondurationchange","onemptied","onended","onerror","onfocus","onformdata","onhashchange","oninput","oninvalid","onkeydown","onkeypress","onkeyup","onlanguagechange","onload","onloadeddata","onloadedmetadata","onloadstart","onmessage","onmessageerror","onmousedown","onmouseenter","onmouseleave","onmousemove","onmouseout","onmouseover","onmouseup","onoffline","ononline","onpagehide","onpageshow","onpaste","onpause","onplay","onplaying","onpopstate","onprogress","onratechange","onreset","onresize","onrejectionhandled","onscroll","onscrollend","onsecuritypolicyviolation","onseeked","onseeking","onselect","onslotchange","onstalled","onstorage","onsubmit","onsuspend","ontimeupdate","ontoggle","onunhandledrejection","onunload","onvolumechange","onwaiting","onwheel"],disallowedTagsMode:"discard",allowedAttributes:{a:["href","name","target"],img:["src","srcset","alt","title","width","height","loading"]},allowedEmptyAttributes:["alt"],selfClosing:["img","br","hr","area","base","basefont","input","link","meta"],allowedSchemes:["http","https","ftp","mailto","tel"],allowedSchemesByTag:{},allowedSchemesAppliedToAttributes:["href","src","cite"],allowProtocolRelative:!0,enforceHtmlBoundary:!1,parseStyleAttributes:!0};aO.simpleTransform=function(_,E,R){return R=R===void 0?!0:R,E=E||{},function(N,A){let L;if(R)for(L in E)A[L]=E[L];else A=E;return{tagName:_,attribs:A}}}});async function oE(..._){try{let E=await kP.query(..._);return await kP.end(),JSON.parse(JSON.stringify(E))}catch(E){return console.log("DB Error =>",E),{success:!1,error:E.message}}}var mP,kP;var rN=dE(()=>{mP=X_(ZT());wT();kP=mP.default({config:{host:process.env.DSQL_DB_HOST,user:process.env.DSQL_DB_USERNAME,password:process.env.DSQL_DB_PASSWORD,database:process.env.DSQL_DB_NAME,port:process.env.DSQL_DB_PORT?Number(process.env.DSQL_DB_PORT):void 0,charset:"utf8mb4",ssl:WR()}})});var yP={};YT(yP,{default:()=>BE});function BE({data:_,encryptionKey:E,encryptionSalt:R}){if(!_?.match(/./))return console.log("Encryption string is invalid"),_;let N=E||process.env.DSQL_ENCRYPTION_PASSWORD,A=R||process.env.DSQL_ENCRYPTION_SALT,L=process.env.DSQL_ENCRYPTION_KEY_LENGTH?Number(process.env.DSQL_ENCRYPTION_KEY_LENGTH):24;if(!N?.match(/.{8,}/))return console.log("Encryption key is invalid"),_;if(!A?.match(/.{8,}/))return console.log("Encryption salt is invalid"),_;let U="aes-192-cbc",S=yL.scryptSync(N,A,L),C=gP.Buffer.alloc(16,0),Y=yL.createCipheriv(U,S,C);try{let M=Y.update(_,"utf8","hex");return M+=Y.final("hex"),M}catch(M){return console.log("Error in encrypting =>",M.message),_}}var yL,gP;var sR=dE(()=>{yL=require("crypto"),gP=require("buffer");vf.exports=BE});async function eO({dbContext:_,paradigm:E,dbFullName:R,tableName:N,identifierColumnName:A,identifierValue:L,useLocal:U}){try{let G=U?!0:_?.match(/dsql.user/i)?!1:R&&!R.match(/^datasquirel$/)?!1:!0,S=U?xE:G?oE:MR,C=`DELETE FROM ${N} WHERE \`${A}\`=?`;return G?await S(C,[L]):await S({paradigm:E,queryString:C,database:R,queryValues:[L]})}catch(G){return null}}var jG=dE(()=>{rN();i1();WN()});function pf(_,E){if(!_)return;if(typeof _=="object")return _;if(typeof _!=="string")return;try{return JSON.parse(_,E)}catch(R){return}}function hf(_,E,R){try{return JSON.stringify(_,E,R)}catch(N){return}}var kf,tR;var a1=dE(()=>{kf={parse:pf,stringify:hf},tR=kf});var bG=j((Ry,yf)=>{yf.exports=[{fieldName:"id",dataType:"BIGINT",notNullValue:!0,primaryKey:!0,autoIncrement:!0},{fieldName:"uuid",dataType:"UUID",defaultValueLiteral:"UUID()"},{fieldName:"date_created",dataType:"VARCHAR(250)",nullValue:!0},{fieldName:"date_created_code",dataType:"BIGINT",nullValue:!0},{fieldName:"date_created_timestamp",dataType:"TIMESTAMP",defaultValueLiteral:"CURRENT_TIMESTAMP"},{fieldName:"date_updated",dataType:"VARCHAR(250)",nullValue:!0},{fieldName:"date_updated_code",dataType:"BIGINT",nullValue:!0},{fieldName:"date_updated_timestamp",dataType:"TIMESTAMP",defaultValueLiteral:"CURRENT_TIMESTAMP",onUpdateLiteral:"CURRENT_TIMESTAMP"}]});var RY=j((Cy,uf)=>{uf.exports={name:"dotenv",version:"16.3.1",description:"Loads environment variables from .env file",main:"lib/main.js",types:"lib/main.d.ts",exports:{".":{types:"./lib/main.d.ts",require:"./lib/main.js",default:"./lib/main.js"},"./config":"./config.js","./config.js":"./config.js","./lib/env-options":"./lib/env-options.js","./lib/env-options.js":"./lib/env-options.js","./lib/cli-options":"./lib/cli-options.js","./lib/cli-options.js":"./lib/cli-options.js","./package.json":"./package.json"},scripts:{"dts-check":"tsc --project tests/types/tsconfig.json",lint:"standard","lint-readme":"standard-markdown",pretest:"npm run lint && npm run dts-check",test:"tap tests/*.js --100 -Rspec",prerelease:"npm test",release:"standard-version"},repository:{type:"git",url:"git://github.com/motdotla/dotenv.git"},funding:"https://github.com/motdotla/dotenv?sponsor=1",keywords:["dotenv","env",".env","environment","variables","config","settings"],readmeFilename:"README.md",license:"BSD-2-Clause",devDependencies:{"@definitelytyped/dtslint":"^0.0.133","@types/node":"^18.11.3",decache:"^4.6.1",sinon:"^14.0.1",standard:"^17.0.0","standard-markdown":"^7.1.0","standard-version":"^9.5.0",tap:"^16.3.0",tar:"^6.1.11",typescript:"^4.8.4"},engines:{node:">=12"},browser:{fs:!1}}});var AY=j((Py,aN)=>{var NY=require("fs"),dG=require("path"),cf=require("os"),df=require("crypto"),lf=RY(),lG=lf.version,nf=/(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/mg;function of(_){let E={},R=_.toString();R=R.replace(/\r\n?/mg,"\n");let N;while((N=nf.exec(R))!=null){let A=N[1],L=N[2]||"";L=L.trim();let U=L[0];if(L=L.replace(/^(['"`])([\s\S]*)\1$/mg,"$2"),U==='"')L=L.replace(/\\n/g,"\n"),L=L.replace(/\\r/g,"\r");E[A]=L}return E}function sf(_){let E=OY(_),R=iE.configDotenv({path:E});if(!R.parsed)throw new Error(`MISSING_DATA: Cannot parse ${E} for an unknown reason`);let N=TY(_).split(","),A=N.length,L;for(let U=0;U=A)throw G}return iE.parse(L)}function tf(_){console.log(`[dotenv@${lG}][INFO] ${_}`)}function rf(_){console.log(`[dotenv@${lG}][WARN] ${_}`)}function cG(_){console.log(`[dotenv@${lG}][DEBUG] ${_}`)}function TY(_){if(_&&_.DOTENV_KEY&&_.DOTENV_KEY.length>0)return _.DOTENV_KEY;if(process.env.DOTENV_KEY&&process.env.DOTENV_KEY.length>0)return process.env.DOTENV_KEY;return""}function af(_,E){let R;try{R=new URL(E)}catch(G){if(G.code==="ERR_INVALID_URL")throw new Error("INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenv.org/vault/.env.vault?environment=development");throw G}let N=R.password;if(!N)throw new Error("INVALID_DOTENV_KEY: Missing key part");let A=R.searchParams.get("environment");if(!A)throw new Error("INVALID_DOTENV_KEY: Missing environment part");let L=`DOTENV_VAULT_${A.toUpperCase()}`,U=_.parsed[L];if(!U)throw new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${L} in your .env.vault file.`);return{ciphertext:U,key:N}}function OY(_){let E=dG.resolve(process.cwd(),".env");if(_&&_.path&&_.path.length>0)E=_.path;return E.endsWith(".vault")?E:`${E}.vault`}function ef(_){return _[0]==="~"?dG.join(cf.homedir(),_.slice(1)):_}function _j(_){tf("Loading env from encrypted .env.vault");let E=iE._parseVault(_),R=process.env;if(_&&_.processEnv!=null)R=_.processEnv;return iE.populate(R,E,_),{parsed:E}}function Ej(_){let E=dG.resolve(process.cwd(),".env"),R="utf8",N=Boolean(_&&_.debug);if(_){if(_.path!=null)E=ef(_.path);if(_.encoding!=null)R=_.encoding}try{let A=iE.parse(NY.readFileSync(E,{encoding:R})),L=process.env;if(_&&_.processEnv!=null)L=_.processEnv;return iE.populate(L,A,_),{parsed:A}}catch(A){if(N)cG(`Failed to load ${E} ${A.message}`);return{error:A}}}function Rj(_){let E=OY(_);if(TY(_).length===0)return iE.configDotenv(_);if(!NY.existsSync(E))return rf(`You set DOTENV_KEY but you are missing a .env.vault file at ${E}. Did you forget to build it?`),iE.configDotenv(_);return iE._configVault(_)}function Nj(_,E){let R=Buffer.from(E.slice(-64),"hex"),N=Buffer.from(_,"base64"),A=N.slice(0,12),L=N.slice(-16);N=N.slice(12,-16);try{let U=df.createDecipheriv("aes-256-gcm",R,A);return U.setAuthTag(L),`${U.update(N)}${U.final()}`}catch(U){let G=U instanceof RangeError,S=U.message==="Invalid key length",C=U.message==="Unsupported state or unable to authenticate data";if(G||S)throw new Error("INVALID_DOTENV_KEY: It must be 64 characters long (or more)");else if(C)throw new Error("DECRYPTION_FAILED: Please check your DOTENV_KEY");else throw console.error("Error: ",U.code),console.error("Error: ",U.message),U}}function Tj(_,E,R={}){let N=Boolean(R&&R.debug),A=Boolean(R&&R.override);if(typeof E!=="object")throw new Error("OBJECT_REQUIRED: Please check the processEnv argument being passed to populate");for(let L of Object.keys(E))if(Object.prototype.hasOwnProperty.call(_,L)){if(A===!0)_[L]=E[L];if(N)if(A===!0)cG(`"${L}" is already defined and WAS overwritten`);else cG(`"${L}" is already defined and was NOT overwritten`)}else _[L]=E[L]}var iE={configDotenv:Ej,_configVault:_j,_parseVault:sf,config:Rj,decrypt:Nj,parse:of,populate:Tj};aN.exports.configDotenv=iE.configDotenv;aN.exports._configVault=iE._configVault;aN.exports._parseVault=iE._parseVault;aN.exports.config=iE.config;aN.exports.decrypt=iE.decrypt;aN.exports.parse=iE.parse;aN.exports.populate=iE.populate;aN.exports=iE});var LY=j((Ky,Aj)=>{Aj.exports={fieldName:"string",dataType:"BIGINT",nullValue:!0,primaryKey:!0,autoIncrement:!0,defaultValue:"CURRENT_TIMESTAMP",defaultValueLiteral:"CURRENT_TIMESTAMP",notNullValue:!0,foreignKey:{foreignKeyName:"Name",destinationTableName:"Table Name",destinationTableColumnName:"Column Name",cascadeDelete:!0,cascadeUpdate:!0},onUpdate:"CURRENT_TIMESTAMP",onUpdateLiteral:"CURRENT_TIMESTAMP",onDelete:"CURRENT_TIMESTAMP",onDeleteLiteral:"CURRENT_TIMESTAMP",encrypted:!1}});var UY=j((Xy,Ij)=>{Ij.exports=[{title:"VARCHAR",name:"VARCHAR",value:"0-255",argument:!0,description:"Varchar is simply letters and numbers within the range 0 - 255",maxValue:255},{title:"TINYINT",name:"TINYINT",value:"0-100",description:"TINYINT means Integers: 0 to 100",maxValue:127},{title:"SMALLINT",name:"SMALLINT",value:"0-255",description:"SMALLINT means Integers: 0 to 240933",maxValue:32767},{title:"MEDIUMINT",name:"MEDIUMINT",value:"0-255",description:"MEDIUMINT means Integers: 0 to 1245568545560",maxValue:8388607},{title:"INT",name:"INT",value:"0-255",description:"INT means Integers: 0 to 12560",maxValue:2147483647},{title:"BIGINT",name:"BIGINT",value:"0-255",description:"BIGINT means Integers: 0 to 1245569056767568545560",maxValue:2000000000000000000000000000000000000000000000000000000000000000},{title:"TINYTEXT",name:"TINYTEXT",value:"0-255",description:"Text with 255 max characters",maxValue:127},{title:"TEXT",name:"TEXT",value:"0-100",description:"MEDIUMTEXT is just text with max length 16,777,215",maxValue:127},{title:"MEDIUMTEXT",name:"MEDIUMTEXT",value:"0-255",description:"MEDIUMTEXT is just text with max length 16,777,215",maxValue:127},{title:"LONGTEXT",name:"LONGTEXT",value:"0-255",description:"LONGTEXT is just text with max length 4,294,967,295",maxValue:127},{title:"UUID",name:"UUID",valueLiteral:"UUID()",description:"A Unique ID"}]});var GY=j((Zy,Lj)=>{Lj.exports={tableName:"users",tableFullName:"Users",fields:[{fieldName:"first_name",dataType:"VARCHAR(100)",notNullValue:!0},{fieldName:"last_name",dataType:"VARCHAR(100)",notNullValue:!0},{fieldName:"email",dataType:"VARCHAR(200)",notNullValue:!0},{fieldName:"phone",dataType:"VARCHAR(50)"},{fieldName:"user_type",dataType:"VARCHAR(20)",defaultValue:"default"},{fieldName:"username",dataType:"VARCHAR(100)",nullValue:!0},{fieldName:"password",dataType:"TEXT"},{fieldName:"image",dataType:"VARCHAR(250)"},{fieldName:"image_thumbnail",dataType:"VARCHAR(250)"},{fieldName:"address",dataType:"VARCHAR(255)"},{fieldName:"city",dataType:"VARCHAR(50)"},{fieldName:"state",dataType:"VARCHAR(50)"},{fieldName:"country",dataType:"VARCHAR(50)"},{fieldName:"zip_code",dataType:"VARCHAR(50)"},{fieldName:"social_login",dataType:"TINYINT",defaultValue:"0"},{fieldName:"social_platform",dataType:"VARCHAR(50)",nullValue:!0},{fieldName:"social_id",dataType:"VARCHAR(250)",nullValue:!0},{fieldName:"more_user_data",dataType:"BIGINT",defaultValue:"0"},{fieldName:"verification_status",dataType:"TINYINT",defaultValue:"0"},{fieldName:"temp_login_code",dataType:"VARCHAR(50)",nullValue:!0}]}});async function LE({queryString:_,queryValuesArray:E,database:R,tableSchema:N,useLocal:A}){let L=A?!0:R?.match(/^datasquirel$/)?!0:!1,U=A?xE:L?oE:MR,G;try{if(_&&E&&Array.isArray(E)&&E[0])G=L?await U(_,E):await U({paradigm:"Full Access",database:R,queryString:_,queryValues:E});else G=L?await U(_):await U({paradigm:"Full Access",database:R,queryString:_})}catch(S){NE({component:"varDatabaseDbHandler/lines-29-32",message:S.message})}if(G&&N)try{return await u1({unparsedResults:G,tableSchema:N})}catch(S){return console.log("\x1B[31mvarDatabaseDbHandler ERROR\x1B[0m =>",R,S),NE({component:"varDatabaseDbHandler/lines-52-53",message:S.message}),null}else if(G)return G;else return null}var JN=dE(()=>{yI();CR();rN();i1();WN()});var SY={};YT(SY,{default:()=>K1});function K1({password:_,encryptionKey:E}){let R=E||process.env.DSQL_ENCRYPTION_PASSWORD;if(!R?.match(/.{8,}/))throw new Error("Encryption key is invalid");let N=DY.createHmac("sha512",R);return N.update(_),N.digest("base64")}var DY;var LA=dE(()=>{DY=require("crypto")});function uE(_){let E=process.env.DSQL_COOKIES_PREFIX||"dsql_",R=process.env.DSQL_COOKIES_KEY_NAME||"key",N=process.env.DSQL_COOKIES_CSRF_NAME||"csrf",A=process.env.DSQL_COOKIES_ONE_TIME_CODE_NAME||"one-time-code",L=_?.database?.replace(/^datasquirel_user_\d+_/,"")||process.env.DSQL_DB_NAME?.replace(/^datasquirel_user_\d+_/,""),U=E;if(_?.userId)U+=`user_${_.userId}_`;if(L)U+=`${L}_`;U+=R;let G=E;if(_?.userId)G+=`user_${_.userId}_`;if(L)G+=`${L}_`;G+=N;let S=E;if(_?.userId)S+=`user_${_.userId}_`;if(L)S+=`${L}_`;return S+=A,{keyCookieName:U,csrfCookieName:G,oneTimeCodeName:S}}var XY=j(($b,KY)=>{var BY=require("url");class VY{constructor(_){this.options=_||{},this.cookies=[]}set(_,E){let R=BY.parse(E||""),N=this.parse(_),A;if(N.domain){if(A=N.domain.replace(/^\./,""),R.hostname.lengthE.name+"="+E.value).join("; ")}list(_){let E=[],R,N;for(R=this.cookies.length-1;R>=0;R--){if(N=this.cookies[R],this.isExpired(N)){this.cookies.splice(R,R);continue}if(this.match(N,_))E.unshift(N)}return E}parse(_){let E={};return(_||"").toString().split(";").forEach((R)=>{let N=R.split("="),A=N.shift().trim().toLowerCase(),L=N.join("=").trim(),U;if(!A)return;switch(A){case"expires":if(L=new Date(L),L.toString()!=="Invalid Date")E.expires=L;break;case"path":E.path=L;break;case"domain":if(U=L.toLowerCase(),U.length&&U.charAt(0)!==".")U="."+U;E.domain=U;break;case"max-age":E.expires=new Date(Date.now()+(Number(L)||0)*1000);break;case"secure":E.secure=!0;break;case"httponly":E.httponly=!0;break;default:if(!E.name)E.name=A,E.value=L}}),E}match(_,E){let R=BY.parse(E||"");if(R.hostname!==_.domain&&(_.domain.charAt(0)!=="."||("."+R.hostname).substr(-_.domain.length)!==_.domain))return!1;if(this.getPath(R.pathname).substr(0,_.path.length)!==_.path)return!1;if(_.secure&&R.protocol!=="https:")return!1;return!0}add(_){let E,R;if(!_||!_.name)return!1;for(E=0,R=this.cookies.length;E{Gj.exports={name:"nodemailer",version:"6.9.14",description:"Easy as cake e-mail sending from your Node.js applications",main:"lib/nodemailer.js",scripts:{test:"node --test --test-concurrency=1 test/**/*.test.js test/**/*-test.js","test:coverage":"c8 node --test --test-concurrency=1 test/**/*.test.js test/**/*-test.js",lint:"eslint .",update:"rm -rf node_modules/ package-lock.json && ncu -u && npm install"},repository:{type:"git",url:"https://github.com/nodemailer/nodemailer.git"},keywords:["Nodemailer"],author:"Andris Reinman",license:"MIT-0",bugs:{url:"https://github.com/nodemailer/nodemailer/issues"},homepage:"https://nodemailer.com/",devDependencies:{"@aws-sdk/client-ses":"3.600.0",bunyan:"1.8.15",c8:"10.1.2",eslint:"8.57.0","eslint-config-nodemailer":"1.2.0","eslint-config-prettier":"9.1.0",libbase64:"1.3.0",libmime:"5.3.5",libqp:"2.1.0","nodemailer-ntlm-auth":"1.0.4",proxy:"1.0.2","proxy-test-server":"1.0.0","smtp-server":"3.13.4"},engines:{node:">=6.0.0"}}});var UA=j((wb,T2)=>{var Dj=require("http"),Sj=require("https"),JY=require("url"),Cj=require("zlib"),Pj=require("stream").PassThrough,$Y=XY(),Yj=LN(),Hj=require("net");T2.exports=function(_,E){return ZY(_,E)};T2.exports.Cookies=$Y;function ZY(_,E){if(E=E||{},E.fetchRes=E.fetchRes||new Pj,E.cookies=E.cookies||new $Y,E.redirects=E.redirects||0,E.maxRedirects=isNaN(E.maxRedirects)?5:E.maxRedirects,E.cookie)[].concat(E.cookie||[]).forEach((H)=>{E.cookies.set(H,_)}),E.cookie=!1;let R=E.fetchRes,N=JY.parse(_),A=(E.method||"").toString().trim().toUpperCase()||"GET",L=!1,U,G,S=N.protocol==="https:"?Sj:Dj,C={"accept-encoding":"gzip,deflate","user-agent":"nodemailer/"+Yj.version};if(Object.keys(E.headers||{}).forEach((H)=>{C[H.toLowerCase().trim()]=E.headers[H]}),E.userAgent)C["user-agent"]=E.userAgent;if(N.auth)C.Authorization="Basic "+Buffer.from(N.auth).toString("base64");if(U=E.cookies.get(_))C.cookie=U;if(E.body){if(E.contentType!==!1)C["Content-Type"]=E.contentType||"application/x-www-form-urlencoded";if(typeof E.body.pipe==="function")C["Transfer-Encoding"]="chunked",G=E.body,G.on("error",(H)=>{if(L)return;L=!0,H.type="FETCH",H.sourceUrl=_,R.emit("error",H)});else{if(E.body instanceof Buffer)G=E.body;else if(typeof E.body==="object")try{G=Buffer.from(Object.keys(E.body).map((H)=>{let X=E.body[H].toString().trim();return encodeURIComponent(H)+"="+encodeURIComponent(X)}).join("&"))}catch(H){if(L)return;L=!0,H.type="FETCH",H.sourceUrl=_,R.emit("error",H);return}else G=Buffer.from(E.body.toString().trim());C["Content-Type"]=E.contentType||"application/x-www-form-urlencoded",C["Content-Length"]=G.length}A=(E.method||"").toString().trim().toUpperCase()||"POST"}let Y,M={method:A,host:N.hostname,path:N.path,port:N.port?N.port:N.protocol==="https:"?443:80,headers:C,rejectUnauthorized:!1,agent:!1};if(E.tls)Object.keys(E.tls).forEach((H)=>{M[H]=E.tls[H]});if(N.protocol==="https:"&&N.hostname&&N.hostname!==M.host&&!Hj.isIP(N.hostname)&&!M.servername)M.servername=N.hostname;try{Y=S.request(M)}catch(H){return L=!0,setImmediate(()=>{H.type="FETCH",H.sourceUrl=_,R.emit("error",H)}),R}if(E.timeout)Y.setTimeout(E.timeout,()=>{if(L)return;L=!0,Y.abort();let H=new Error("Request Timeout");H.type="FETCH",H.sourceUrl=_,R.emit("error",H)});return Y.on("error",(H)=>{if(L)return;L=!0,H.type="FETCH",H.sourceUrl=_,R.emit("error",H)}),Y.on("response",(H)=>{let X;if(L)return;switch(H.headers["content-encoding"]){case"gzip":case"deflate":X=Cj.createUnzip();break}if(H.headers["set-cookie"])[].concat(H.headers["set-cookie"]||[]).forEach(($)=>{E.cookies.set($,_)});if([301,302,303,307,308].includes(H.statusCode)&&H.headers.location){if(E.redirects++,E.redirects>E.maxRedirects){L=!0;let $=new Error("Maximum redirect count exceeded");$.type="FETCH",$.sourceUrl=_,R.emit("error",$),Y.abort();return}return E.method="GET",E.body=!1,ZY(JY.resolve(_,H.headers.location),E)}if(R.statusCode=H.statusCode,R.headers=H.headers,H.statusCode>=300&&!E.allowErrorResponse){L=!0;let $=new Error("Invalid status code "+H.statusCode);$.type="FETCH",$.sourceUrl=_,R.emit("error",$),Y.abort();return}if(H.on("error",($)=>{if(L)return;L=!0,$.type="FETCH",$.sourceUrl=_,R.emit("error",$),Y.abort()}),X)H.pipe(X).pipe(R),X.on("error",($)=>{if(L)return;L=!0,$.type="FETCH",$.sourceUrl=_,R.emit("error",$),Y.abort()});else H.pipe(R)}),setImmediate(()=>{if(G)try{if(typeof G.pipe==="function")return G.pipe(Y);else Y.write(G)}catch(H){L=!0,H.type="FETCH",H.sourceUrl=_,R.emit("error",H);return}Y.end()}),R}});var IR=j((Qb,ER)=>{var Wj=require("url"),Mj=require("util"),Fj=require("fs"),Bj=UA(),ZN=require("dns"),Vj=require("net"),Kj=require("os"),QY;try{QY=Kj.networkInterfaces()}catch(_){}ER.exports.networkInterfaces=QY;var zY=(_,E)=>{let R=ER.exports.networkInterfaces;if(!R)return!0;return Object.keys(R).map((A)=>R[A]).reduce((A,L)=>A.concat(L),[]).filter((A)=>!A.internal||E).filter((A)=>A.family==="IPv"+_||A.family===_).length>0},wY=(_,E,R,N)=>{if(R=R||{},!zY(_,R.allowInternalNetworkInterfaces))return N(null,[]);(ZN.Resolver?new ZN.Resolver(R):ZN)["resolve"+_](E,(U,G)=>{if(U){switch(U.code){case ZN.NODATA:case ZN.NOTFOUND:case ZN.NOTIMP:case ZN.SERVFAIL:case ZN.CONNREFUSED:case ZN.REFUSED:case"EAI_AGAIN":return N(null,[])}return N(U)}return N(null,Array.isArray(G)?G:[].concat(G||[]))})},GA=ER.exports.dnsCache=new Map,$N=(_,E)=>{if(!_)return Object.assign({},E||{});return Object.assign({servername:_.servername,host:!_.addresses||!_.addresses.length?null:_.addresses.length===1?_.addresses[0]:_.addresses[Math.floor(Math.random()*_.addresses.length)]},E||{})};ER.exports.resolveHostname=(_,E)=>{if(_=_||{},!_.host&&_.servername)_.host=_.servername;if(!_.host||Vj.isIP(_.host)){let N={addresses:[_.host],servername:_.servername||!1};return E(null,$N(N,{cached:!1}))}let R;if(GA.has(_.host)){if(R=GA.get(_.host),!R.expires||R.expires>=Date.now())return E(null,$N(R.value,{cached:!0}))}wY(4,_.host,_,(N,A)=>{if(N){if(R)return E(null,$N(R.value,{cached:!0,error:N}));return E(N)}if(A&&A.length){let L={addresses:A,servername:_.servername||_.host};return GA.set(_.host,{value:L,expires:Date.now()+(_.dnsTtl||300000)}),E(null,$N(L,{cached:!1}))}wY(6,_.host,_,(L,U)=>{if(L){if(R)return E(null,$N(R.value,{cached:!0,error:L}));return E(L)}if(U&&U.length){let G={addresses:U,servername:_.servername||_.host};return GA.set(_.host,{value:G,expires:Date.now()+(_.dnsTtl||300000)}),E(null,$N(G,{cached:!1}))}try{ZN.lookup(_.host,{all:!0},(G,S)=>{if(G){if(R)return E(null,$N(R.value,{cached:!0,error:G}));return E(G)}let C=S?S.filter((M)=>zY(M.family)).map((M)=>M.address).shift():!1;if(S&&S.length&&!C)console.warn(`Failed to resolve IPv${S[0].family} addresses with current network`);if(!C&&R)return E(null,$N(R.value,{cached:!0}));let Y={addresses:C?[C]:[_.host],servername:_.servername||_.host};return GA.set(_.host,{value:Y,expires:Date.now()+(_.dnsTtl||300000)}),E(null,$N(Y,{cached:!1}))})}catch(G){if(R)return E(null,$N(R.value,{cached:!0,error:G}));return E(G)}})})};ER.exports.parseConnectionUrl=(_)=>{_=_||"";let E={};return[Wj.parse(_,!0)].forEach((R)=>{let N;switch(R.protocol){case"smtp:":E.secure=!1;break;case"smtps:":E.secure=!0;break;case"direct:":E.direct=!0;break}if(!isNaN(R.port)&&Number(R.port))E.port=Number(R.port);if(R.hostname)E.host=R.hostname;if(R.auth){if(N=R.auth.split(":"),!E.auth)E.auth={};E.auth.user=N.shift(),E.auth.pass=N.join(":")}Object.keys(R.query||{}).forEach((A)=>{let L=E,U=A,G=R.query[A];if(!isNaN(G))G=Number(G);switch(G){case"true":G=!0;break;case"false":G=!1;break}if(A.indexOf("tls.")===0){if(U=A.substr(4),!E.tls)E.tls={};L=E.tls}else if(A.indexOf(".")>=0)return;if(!(U in L))L[U]=G})}),E};ER.exports._logFunc=(_,E,R,N,A,...L)=>{let U={};Object.keys(R||{}).forEach((G)=>{if(G!=="level")U[G]=R[G]}),Object.keys(N||{}).forEach((G)=>{if(G!=="level")U[G]=N[G]}),_[E](U,A,...L)};ER.exports.getLogger=(_,E)=>{_=_||{};let R={},N=["trace","debug","info","warn","error","fatal"];if(!_.logger)return N.forEach((L)=>{R[L]=()=>!1}),R;let A=_.logger;if(_.logger===!0)A=Xj(N);return N.forEach((L)=>{R[L]=(U,G,...S)=>{ER.exports._logFunc(A,L,E,U,G,...S)}}),R};ER.exports.callbackPromise=(_,E)=>function(){let R=Array.from(arguments),N=R.shift();if(N)E(N);else _(...R)};ER.exports.parseDataURI=(_)=>{let E=_,R=E.indexOf(",");if(!R)return _;let N=E.substring(R+1),A=E.substring("data:".length,R),L,U=A.split(";"),G=U.length>1?U[U.length-1]:!1;if(G&&G.indexOf("=")<0)L=G.toLowerCase(),U.pop();let S=U.shift()||"application/octet-stream",C={};for(let Y of U){let M=Y.indexOf("=");if(M>=0){let H=Y.substring(0,M),X=Y.substring(M+1);C[H]=X}}switch(L){case"base64":N=Buffer.from(N,"base64");break;case"utf8":N=Buffer.from(N);break;default:try{N=Buffer.from(decodeURIComponent(N))}catch(Y){N=Buffer.from(N)}N=Buffer.from(N)}return{data:N,encoding:L,contentType:S,params:C}};ER.exports.resolveContent=(_,E,R)=>{let N;if(!R)N=new Promise((G,S)=>{R=ER.exports.callbackPromise(G,S)});let A=_&&_[E]&&_[E].content||_[E],L,U=(typeof _[E]==="object"&&_[E].encoding||"utf8").toString().toLowerCase().replace(/[-_\s]/g,"");if(!A)return R(null,A);if(typeof A==="object"){if(typeof A.pipe==="function")return O2(A,(G,S)=>{if(G)return R(G);if(_[E].content)_[E].content=S;else _[E]=S;R(null,S)});else if(/^https?:\/\//i.test(A.path||A.href))return L=Bj(A.path||A.href),O2(L,R);else if(/^data:/i.test(A.path||A.href)){let G=ER.exports.parseDataURI(A.path||A.href);if(!G||!G.data)return R(null,Buffer.from(0));return R(null,G.data)}else if(A.path)return O2(Fj.createReadStream(A.path),R)}if(typeof _[E].content==="string"&&!["utf8","usascii","ascii"].includes(U))A=Buffer.from(_[E].content,U);return setImmediate(()=>R(null,A)),N};ER.exports.assign=function(){let _=Array.from(arguments),E=_.shift()||{};return _.forEach((R)=>{Object.keys(R||{}).forEach((N)=>{if(["tls","auth"].includes(N)&&R[N]&&typeof R[N]==="object"){if(!E[N])E[N]={};Object.keys(R[N]).forEach((A)=>{E[N][A]=R[N][A]})}else E[N]=R[N]})}),E};ER.exports.encodeXText=(_)=>{if(!/[^\x21-\x2A\x2C-\x3C\x3E-\x7E]/.test(_))return _;let E=Buffer.from(_),R="";for(let N=0,A=E.length;N126||L===43||L===61)R+="+"+(L<16?"0":"")+L.toString(16).toUpperCase();else R+=String.fromCharCode(L)}return R};function O2(_,E){let R=!1,N=[],A=0;_.on("error",(L)=>{if(R)return;R=!0,E(L)}),_.on("readable",()=>{let L;while((L=_.read())!==null)N.push(L),A+=L.length}),_.on("end",()=>{if(R)return;R=!0;let L;try{L=Buffer.concat(N,A)}catch(U){return E(U)}E(null,L)})}function Xj(_){let E=0,R=new Map;_.forEach((L)=>{if(L.length>E)E=L.length}),_.forEach((L)=>{let U=L.toUpperCase();if(U.length{let C="";if(U){if(U.tnx==="server")C="S: ";else if(U.tnx==="client")C="C: ";if(U.sid)C="["+U.sid+"] "+C;if(U.cid)C="[#"+U.cid+"] "+C}G=Mj.format(G,...S),G.split(/\r?\n/).forEach((Y)=>{console.log("[%s] %s %s",new Date().toISOString().substr(0,19).replace(/T/," "),R.get(L),C+Y)})},A={};return _.forEach((L)=>{A[L]=N.bind(null,L)}),A}});var A2=j((zb,fY)=>{var Jj=require("path"),xY=new Map([["application/acad","dwg"],["application/applixware","aw"],["application/arj","arj"],["application/atom+xml","xml"],["application/atomcat+xml","atomcat"],["application/atomsvc+xml","atomsvc"],["application/base64",["mm","mme"]],["application/binhex","hqx"],["application/binhex4","hqx"],["application/book",["book","boo"]],["application/ccxml+xml,","ccxml"],["application/cdf","cdf"],["application/cdmi-capability","cdmia"],["application/cdmi-container","cdmic"],["application/cdmi-domain","cdmid"],["application/cdmi-object","cdmio"],["application/cdmi-queue","cdmiq"],["application/clariscad","ccad"],["application/commonground","dp"],["application/cu-seeme","cu"],["application/davmount+xml","davmount"],["application/drafting","drw"],["application/dsptype","tsp"],["application/dssc+der","dssc"],["application/dssc+xml","xdssc"],["application/dxf","dxf"],["application/ecmascript",["js","es"]],["application/emma+xml","emma"],["application/envoy","evy"],["application/epub+zip","epub"],["application/excel",["xls","xl","xla","xlb","xlc","xld","xlk","xll","xlm","xlt","xlv","xlw"]],["application/exi","exi"],["application/font-tdpfr","pfr"],["application/fractals","fif"],["application/freeloader","frl"],["application/futuresplash","spl"],["application/gnutar","tgz"],["application/groupwise","vew"],["application/hlp","hlp"],["application/hta","hta"],["application/hyperstudio","stk"],["application/i-deas","unv"],["application/iges",["iges","igs"]],["application/inf","inf"],["application/internet-property-stream","acx"],["application/ipfix","ipfix"],["application/java","class"],["application/java-archive","jar"],["application/java-byte-code","class"],["application/java-serialized-object","ser"],["application/java-vm","class"],["application/javascript","js"],["application/json","json"],["application/lha","lha"],["application/lzx","lzx"],["application/mac-binary","bin"],["application/mac-binhex","hqx"],["application/mac-binhex40","hqx"],["application/mac-compactpro","cpt"],["application/macbinary","bin"],["application/mads+xml","mads"],["application/marc","mrc"],["application/marcxml+xml","mrcx"],["application/mathematica","ma"],["application/mathml+xml","mathml"],["application/mbedlet","mbd"],["application/mbox","mbox"],["application/mcad","mcd"],["application/mediaservercontrol+xml","mscml"],["application/metalink4+xml","meta4"],["application/mets+xml","mets"],["application/mime","aps"],["application/mods+xml","mods"],["application/mp21","m21"],["application/mp4","mp4"],["application/mspowerpoint",["ppt","pot","pps","ppz"]],["application/msword",["doc","dot","w6w","wiz","word"]],["application/mswrite","wri"],["application/mxf","mxf"],["application/netmc","mcp"],["application/octet-stream",["*"]],["application/oda","oda"],["application/oebps-package+xml","opf"],["application/ogg","ogx"],["application/olescript","axs"],["application/onenote","onetoc"],["application/patch-ops-error+xml","xer"],["application/pdf","pdf"],["application/pgp-encrypted","asc"],["application/pgp-signature","pgp"],["application/pics-rules","prf"],["application/pkcs-12","p12"],["application/pkcs-crl","crl"],["application/pkcs10","p10"],["application/pkcs7-mime",["p7c","p7m"]],["application/pkcs7-signature","p7s"],["application/pkcs8","p8"],["application/pkix-attr-cert","ac"],["application/pkix-cert",["cer","crt"]],["application/pkix-crl","crl"],["application/pkix-pkipath","pkipath"],["application/pkixcmp","pki"],["application/plain","text"],["application/pls+xml","pls"],["application/postscript",["ps","ai","eps"]],["application/powerpoint","ppt"],["application/pro_eng",["part","prt"]],["application/prs.cww","cww"],["application/pskc+xml","pskcxml"],["application/rdf+xml","rdf"],["application/reginfo+xml","rif"],["application/relax-ng-compact-syntax","rnc"],["application/resource-lists+xml","rl"],["application/resource-lists-diff+xml","rld"],["application/ringing-tones","rng"],["application/rls-services+xml","rs"],["application/rsd+xml","rsd"],["application/rss+xml","xml"],["application/rtf",["rtf","rtx"]],["application/sbml+xml","sbml"],["application/scvp-cv-request","scq"],["application/scvp-cv-response","scs"],["application/scvp-vp-request","spq"],["application/scvp-vp-response","spp"],["application/sdp","sdp"],["application/sea","sea"],["application/set","set"],["application/set-payment-initiation","setpay"],["application/set-registration-initiation","setreg"],["application/shf+xml","shf"],["application/sla","stl"],["application/smil",["smi","smil"]],["application/smil+xml","smi"],["application/solids","sol"],["application/sounder","sdr"],["application/sparql-query","rq"],["application/sparql-results+xml","srx"],["application/srgs","gram"],["application/srgs+xml","grxml"],["application/sru+xml","sru"],["application/ssml+xml","ssml"],["application/step",["step","stp"]],["application/streamingmedia","ssm"],["application/tei+xml","tei"],["application/thraud+xml","tfi"],["application/timestamped-data","tsd"],["application/toolbook","tbk"],["application/vda","vda"],["application/vnd.3gpp.pic-bw-large","plb"],["application/vnd.3gpp.pic-bw-small","psb"],["application/vnd.3gpp.pic-bw-var","pvb"],["application/vnd.3gpp2.tcap","tcap"],["application/vnd.3m.post-it-notes","pwn"],["application/vnd.accpac.simply.aso","aso"],["application/vnd.accpac.simply.imp","imp"],["application/vnd.acucobol","acu"],["application/vnd.acucorp","atc"],["application/vnd.adobe.air-application-installer-package+zip","air"],["application/vnd.adobe.fxp","fxp"],["application/vnd.adobe.xdp+xml","xdp"],["application/vnd.adobe.xfdf","xfdf"],["application/vnd.ahead.space","ahead"],["application/vnd.airzip.filesecure.azf","azf"],["application/vnd.airzip.filesecure.azs","azs"],["application/vnd.amazon.ebook","azw"],["application/vnd.americandynamics.acc","acc"],["application/vnd.amiga.ami","ami"],["application/vnd.android.package-archive","apk"],["application/vnd.anser-web-certificate-issue-initiation","cii"],["application/vnd.anser-web-funds-transfer-initiation","fti"],["application/vnd.antix.game-component","atx"],["application/vnd.apple.installer+xml","mpkg"],["application/vnd.apple.mpegurl","m3u8"],["application/vnd.aristanetworks.swi","swi"],["application/vnd.audiograph","aep"],["application/vnd.blueice.multipass","mpm"],["application/vnd.bmi","bmi"],["application/vnd.businessobjects","rep"],["application/vnd.chemdraw+xml","cdxml"],["application/vnd.chipnuts.karaoke-mmd","mmd"],["application/vnd.cinderella","cdy"],["application/vnd.claymore","cla"],["application/vnd.cloanto.rp9","rp9"],["application/vnd.clonk.c4group","c4g"],["application/vnd.cluetrust.cartomobile-config","c11amc"],["application/vnd.cluetrust.cartomobile-config-pkg","c11amz"],["application/vnd.commonspace","csp"],["application/vnd.contact.cmsg","cdbcmsg"],["application/vnd.cosmocaller","cmc"],["application/vnd.crick.clicker","clkx"],["application/vnd.crick.clicker.keyboard","clkk"],["application/vnd.crick.clicker.palette","clkp"],["application/vnd.crick.clicker.template","clkt"],["application/vnd.crick.clicker.wordbank","clkw"],["application/vnd.criticaltools.wbs+xml","wbs"],["application/vnd.ctc-posml","pml"],["application/vnd.cups-ppd","ppd"],["application/vnd.curl.car","car"],["application/vnd.curl.pcurl","pcurl"],["application/vnd.data-vision.rdz","rdz"],["application/vnd.denovo.fcselayout-link","fe_launch"],["application/vnd.dna","dna"],["application/vnd.dolby.mlp","mlp"],["application/vnd.dpgraph","dpg"],["application/vnd.dreamfactory","dfac"],["application/vnd.dvb.ait","ait"],["application/vnd.dvb.service","svc"],["application/vnd.dynageo","geo"],["application/vnd.ecowin.chart","mag"],["application/vnd.enliven","nml"],["application/vnd.epson.esf","esf"],["application/vnd.epson.msf","msf"],["application/vnd.epson.quickanime","qam"],["application/vnd.epson.salt","slt"],["application/vnd.epson.ssf","ssf"],["application/vnd.eszigno3+xml","es3"],["application/vnd.ezpix-album","ez2"],["application/vnd.ezpix-package","ez3"],["application/vnd.fdf","fdf"],["application/vnd.fdsn.seed","seed"],["application/vnd.flographit","gph"],["application/vnd.fluxtime.clip","ftc"],["application/vnd.framemaker","fm"],["application/vnd.frogans.fnc","fnc"],["application/vnd.frogans.ltf","ltf"],["application/vnd.fsc.weblaunch","fsc"],["application/vnd.fujitsu.oasys","oas"],["application/vnd.fujitsu.oasys2","oa2"],["application/vnd.fujitsu.oasys3","oa3"],["application/vnd.fujitsu.oasysgp","fg5"],["application/vnd.fujitsu.oasysprs","bh2"],["application/vnd.fujixerox.ddd","ddd"],["application/vnd.fujixerox.docuworks","xdw"],["application/vnd.fujixerox.docuworks.binder","xbd"],["application/vnd.fuzzysheet","fzs"],["application/vnd.genomatix.tuxedo","txd"],["application/vnd.geogebra.file","ggb"],["application/vnd.geogebra.tool","ggt"],["application/vnd.geometry-explorer","gex"],["application/vnd.geonext","gxt"],["application/vnd.geoplan","g2w"],["application/vnd.geospace","g3w"],["application/vnd.gmx","gmx"],["application/vnd.google-earth.kml+xml","kml"],["application/vnd.google-earth.kmz","kmz"],["application/vnd.grafeq","gqf"],["application/vnd.groove-account","gac"],["application/vnd.groove-help","ghf"],["application/vnd.groove-identity-message","gim"],["application/vnd.groove-injector","grv"],["application/vnd.groove-tool-message","gtm"],["application/vnd.groove-tool-template","tpl"],["application/vnd.groove-vcard","vcg"],["application/vnd.hal+xml","hal"],["application/vnd.handheld-entertainment+xml","zmm"],["application/vnd.hbci","hbci"],["application/vnd.hhe.lesson-player","les"],["application/vnd.hp-hpgl",["hgl","hpg","hpgl"]],["application/vnd.hp-hpid","hpid"],["application/vnd.hp-hps","hps"],["application/vnd.hp-jlyt","jlt"],["application/vnd.hp-pcl","pcl"],["application/vnd.hp-pclxl","pclxl"],["application/vnd.hydrostatix.sof-data","sfd-hdstx"],["application/vnd.hzn-3d-crossword","x3d"],["application/vnd.ibm.minipay","mpy"],["application/vnd.ibm.modcap","afp"],["application/vnd.ibm.rights-management","irm"],["application/vnd.ibm.secure-container","sc"],["application/vnd.iccprofile","icc"],["application/vnd.igloader","igl"],["application/vnd.immervision-ivp","ivp"],["application/vnd.immervision-ivu","ivu"],["application/vnd.insors.igm","igm"],["application/vnd.intercon.formnet","xpw"],["application/vnd.intergeo","i2g"],["application/vnd.intu.qbo","qbo"],["application/vnd.intu.qfx","qfx"],["application/vnd.ipunplugged.rcprofile","rcprofile"],["application/vnd.irepository.package+xml","irp"],["application/vnd.is-xpr","xpr"],["application/vnd.isac.fcs","fcs"],["application/vnd.jam","jam"],["application/vnd.jcp.javame.midlet-rms","rms"],["application/vnd.jisp","jisp"],["application/vnd.joost.joda-archive","joda"],["application/vnd.kahootz","ktz"],["application/vnd.kde.karbon","karbon"],["application/vnd.kde.kchart","chrt"],["application/vnd.kde.kformula","kfo"],["application/vnd.kde.kivio","flw"],["application/vnd.kde.kontour","kon"],["application/vnd.kde.kpresenter","kpr"],["application/vnd.kde.kspread","ksp"],["application/vnd.kde.kword","kwd"],["application/vnd.kenameaapp","htke"],["application/vnd.kidspiration","kia"],["application/vnd.kinar","kne"],["application/vnd.koan","skp"],["application/vnd.kodak-descriptor","sse"],["application/vnd.las.las+xml","lasxml"],["application/vnd.llamagraphics.life-balance.desktop","lbd"],["application/vnd.llamagraphics.life-balance.exchange+xml","lbe"],["application/vnd.lotus-1-2-3","123"],["application/vnd.lotus-approach","apr"],["application/vnd.lotus-freelance","pre"],["application/vnd.lotus-notes","nsf"],["application/vnd.lotus-organizer","org"],["application/vnd.lotus-screencam","scm"],["application/vnd.lotus-wordpro","lwp"],["application/vnd.macports.portpkg","portpkg"],["application/vnd.mcd","mcd"],["application/vnd.medcalcdata","mc1"],["application/vnd.mediastation.cdkey","cdkey"],["application/vnd.mfer","mwf"],["application/vnd.mfmp","mfm"],["application/vnd.micrografx.flo","flo"],["application/vnd.micrografx.igx","igx"],["application/vnd.mif","mif"],["application/vnd.mobius.daf","daf"],["application/vnd.mobius.dis","dis"],["application/vnd.mobius.mbk","mbk"],["application/vnd.mobius.mqy","mqy"],["application/vnd.mobius.msl","msl"],["application/vnd.mobius.plc","plc"],["application/vnd.mobius.txf","txf"],["application/vnd.mophun.application","mpn"],["application/vnd.mophun.certificate","mpc"],["application/vnd.mozilla.xul+xml","xul"],["application/vnd.ms-artgalry","cil"],["application/vnd.ms-cab-compressed","cab"],["application/vnd.ms-excel",["xls","xla","xlc","xlm","xlt","xlw","xlb","xll"]],["application/vnd.ms-excel.addin.macroenabled.12","xlam"],["application/vnd.ms-excel.sheet.binary.macroenabled.12","xlsb"],["application/vnd.ms-excel.sheet.macroenabled.12","xlsm"],["application/vnd.ms-excel.template.macroenabled.12","xltm"],["application/vnd.ms-fontobject","eot"],["application/vnd.ms-htmlhelp","chm"],["application/vnd.ms-ims","ims"],["application/vnd.ms-lrm","lrm"],["application/vnd.ms-officetheme","thmx"],["application/vnd.ms-outlook","msg"],["application/vnd.ms-pki.certstore","sst"],["application/vnd.ms-pki.pko","pko"],["application/vnd.ms-pki.seccat","cat"],["application/vnd.ms-pki.stl","stl"],["application/vnd.ms-pkicertstore","sst"],["application/vnd.ms-pkiseccat","cat"],["application/vnd.ms-pkistl","stl"],["application/vnd.ms-powerpoint",["ppt","pot","pps","ppa","pwz"]],["application/vnd.ms-powerpoint.addin.macroenabled.12","ppam"],["application/vnd.ms-powerpoint.presentation.macroenabled.12","pptm"],["application/vnd.ms-powerpoint.slide.macroenabled.12","sldm"],["application/vnd.ms-powerpoint.slideshow.macroenabled.12","ppsm"],["application/vnd.ms-powerpoint.template.macroenabled.12","potm"],["application/vnd.ms-project","mpp"],["application/vnd.ms-word.document.macroenabled.12","docm"],["application/vnd.ms-word.template.macroenabled.12","dotm"],["application/vnd.ms-works",["wks","wcm","wdb","wps"]],["application/vnd.ms-wpl","wpl"],["application/vnd.ms-xpsdocument","xps"],["application/vnd.mseq","mseq"],["application/vnd.musician","mus"],["application/vnd.muvee.style","msty"],["application/vnd.neurolanguage.nlu","nlu"],["application/vnd.noblenet-directory","nnd"],["application/vnd.noblenet-sealer","nns"],["application/vnd.noblenet-web","nnw"],["application/vnd.nokia.configuration-message","ncm"],["application/vnd.nokia.n-gage.data","ngdat"],["application/vnd.nokia.n-gage.symbian.install","n-gage"],["application/vnd.nokia.radio-preset","rpst"],["application/vnd.nokia.radio-presets","rpss"],["application/vnd.nokia.ringing-tone","rng"],["application/vnd.novadigm.edm","edm"],["application/vnd.novadigm.edx","edx"],["application/vnd.novadigm.ext","ext"],["application/vnd.oasis.opendocument.chart","odc"],["application/vnd.oasis.opendocument.chart-template","otc"],["application/vnd.oasis.opendocument.database","odb"],["application/vnd.oasis.opendocument.formula","odf"],["application/vnd.oasis.opendocument.formula-template","odft"],["application/vnd.oasis.opendocument.graphics","odg"],["application/vnd.oasis.opendocument.graphics-template","otg"],["application/vnd.oasis.opendocument.image","odi"],["application/vnd.oasis.opendocument.image-template","oti"],["application/vnd.oasis.opendocument.presentation","odp"],["application/vnd.oasis.opendocument.presentation-template","otp"],["application/vnd.oasis.opendocument.spreadsheet","ods"],["application/vnd.oasis.opendocument.spreadsheet-template","ots"],["application/vnd.oasis.opendocument.text","odt"],["application/vnd.oasis.opendocument.text-master","odm"],["application/vnd.oasis.opendocument.text-template","ott"],["application/vnd.oasis.opendocument.text-web","oth"],["application/vnd.olpc-sugar","xo"],["application/vnd.oma.dd2+xml","dd2"],["application/vnd.openofficeorg.extension","oxt"],["application/vnd.openxmlformats-officedocument.presentationml.presentation","pptx"],["application/vnd.openxmlformats-officedocument.presentationml.slide","sldx"],["application/vnd.openxmlformats-officedocument.presentationml.slideshow","ppsx"],["application/vnd.openxmlformats-officedocument.presentationml.template","potx"],["application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","xlsx"],["application/vnd.openxmlformats-officedocument.spreadsheetml.template","xltx"],["application/vnd.openxmlformats-officedocument.wordprocessingml.document","docx"],["application/vnd.openxmlformats-officedocument.wordprocessingml.template","dotx"],["application/vnd.osgeo.mapguide.package","mgp"],["application/vnd.osgi.dp","dp"],["application/vnd.palm","pdb"],["application/vnd.pawaafile","paw"],["application/vnd.pg.format","str"],["application/vnd.pg.osasli","ei6"],["application/vnd.picsel","efif"],["application/vnd.pmi.widget","wg"],["application/vnd.pocketlearn","plf"],["application/vnd.powerbuilder6","pbd"],["application/vnd.previewsystems.box","box"],["application/vnd.proteus.magazine","mgz"],["application/vnd.publishare-delta-tree","qps"],["application/vnd.pvi.ptid1","ptid"],["application/vnd.quark.quarkxpress","qxd"],["application/vnd.realvnc.bed","bed"],["application/vnd.recordare.musicxml","mxl"],["application/vnd.recordare.musicxml+xml","musicxml"],["application/vnd.rig.cryptonote","cryptonote"],["application/vnd.rim.cod","cod"],["application/vnd.rn-realmedia","rm"],["application/vnd.rn-realplayer","rnx"],["application/vnd.route66.link66+xml","link66"],["application/vnd.sailingtracker.track","st"],["application/vnd.seemail","see"],["application/vnd.sema","sema"],["application/vnd.semd","semd"],["application/vnd.semf","semf"],["application/vnd.shana.informed.formdata","ifm"],["application/vnd.shana.informed.formtemplate","itp"],["application/vnd.shana.informed.interchange","iif"],["application/vnd.shana.informed.package","ipk"],["application/vnd.simtech-mindmapper","twd"],["application/vnd.smaf","mmf"],["application/vnd.smart.teacher","teacher"],["application/vnd.solent.sdkm+xml","sdkm"],["application/vnd.spotfire.dxp","dxp"],["application/vnd.spotfire.sfs","sfs"],["application/vnd.stardivision.calc","sdc"],["application/vnd.stardivision.draw","sda"],["application/vnd.stardivision.impress","sdd"],["application/vnd.stardivision.math","smf"],["application/vnd.stardivision.writer","sdw"],["application/vnd.stardivision.writer-global","sgl"],["application/vnd.stepmania.stepchart","sm"],["application/vnd.sun.xml.calc","sxc"],["application/vnd.sun.xml.calc.template","stc"],["application/vnd.sun.xml.draw","sxd"],["application/vnd.sun.xml.draw.template","std"],["application/vnd.sun.xml.impress","sxi"],["application/vnd.sun.xml.impress.template","sti"],["application/vnd.sun.xml.math","sxm"],["application/vnd.sun.xml.writer","sxw"],["application/vnd.sun.xml.writer.global","sxg"],["application/vnd.sun.xml.writer.template","stw"],["application/vnd.sus-calendar","sus"],["application/vnd.svd","svd"],["application/vnd.symbian.install","sis"],["application/vnd.syncml+xml","xsm"],["application/vnd.syncml.dm+wbxml","bdm"],["application/vnd.syncml.dm+xml","xdm"],["application/vnd.tao.intent-module-archive","tao"],["application/vnd.tmobile-livetv","tmo"],["application/vnd.trid.tpt","tpt"],["application/vnd.triscape.mxs","mxs"],["application/vnd.trueapp","tra"],["application/vnd.ufdl","ufd"],["application/vnd.uiq.theme","utz"],["application/vnd.umajin","umj"],["application/vnd.unity","unityweb"],["application/vnd.uoml+xml","uoml"],["application/vnd.vcx","vcx"],["application/vnd.visio","vsd"],["application/vnd.visionary","vis"],["application/vnd.vsf","vsf"],["application/vnd.wap.wbxml","wbxml"],["application/vnd.wap.wmlc","wmlc"],["application/vnd.wap.wmlscriptc","wmlsc"],["application/vnd.webturbo","wtb"],["application/vnd.wolfram.player","nbp"],["application/vnd.wordperfect","wpd"],["application/vnd.wqd","wqd"],["application/vnd.wt.stf","stf"],["application/vnd.xara",["web","xar"]],["application/vnd.xfdl","xfdl"],["application/vnd.yamaha.hv-dic","hvd"],["application/vnd.yamaha.hv-script","hvs"],["application/vnd.yamaha.hv-voice","hvp"],["application/vnd.yamaha.openscoreformat","osf"],["application/vnd.yamaha.openscoreformat.osfpvg+xml","osfpvg"],["application/vnd.yamaha.smaf-audio","saf"],["application/vnd.yamaha.smaf-phrase","spf"],["application/vnd.yellowriver-custom-menu","cmp"],["application/vnd.zul","zir"],["application/vnd.zzazz.deck+xml","zaz"],["application/vocaltec-media-desc","vmd"],["application/vocaltec-media-file","vmf"],["application/voicexml+xml","vxml"],["application/widget","wgt"],["application/winhlp","hlp"],["application/wordperfect",["wp","wp5","wp6","wpd"]],["application/wordperfect6.0",["w60","wp5"]],["application/wordperfect6.1","w61"],["application/wsdl+xml","wsdl"],["application/wspolicy+xml","wspolicy"],["application/x-123","wk1"],["application/x-7z-compressed","7z"],["application/x-abiword","abw"],["application/x-ace-compressed","ace"],["application/x-aim","aim"],["application/x-authorware-bin","aab"],["application/x-authorware-map","aam"],["application/x-authorware-seg","aas"],["application/x-bcpio","bcpio"],["application/x-binary","bin"],["application/x-binhex40","hqx"],["application/x-bittorrent","torrent"],["application/x-bsh",["bsh","sh","shar"]],["application/x-bytecode.elisp","elc"],["application/x-bytecode.python","pyc"],["application/x-bzip","bz"],["application/x-bzip2",["boz","bz2"]],["application/x-cdf","cdf"],["application/x-cdlink","vcd"],["application/x-chat",["cha","chat"]],["application/x-chess-pgn","pgn"],["application/x-cmu-raster","ras"],["application/x-cocoa","cco"],["application/x-compactpro","cpt"],["application/x-compress","z"],["application/x-compressed",["tgz","gz","z","zip"]],["application/x-conference","nsc"],["application/x-cpio","cpio"],["application/x-cpt","cpt"],["application/x-csh","csh"],["application/x-debian-package","deb"],["application/x-deepv","deepv"],["application/x-director",["dir","dcr","dxr"]],["application/x-doom","wad"],["application/x-dtbncx+xml","ncx"],["application/x-dtbook+xml","dtb"],["application/x-dtbresource+xml","res"],["application/x-dvi","dvi"],["application/x-elc","elc"],["application/x-envoy",["env","evy"]],["application/x-esrehber","es"],["application/x-excel",["xls","xla","xlb","xlc","xld","xlk","xll","xlm","xlt","xlv","xlw"]],["application/x-font-bdf","bdf"],["application/x-font-ghostscript","gsf"],["application/x-font-linux-psf","psf"],["application/x-font-otf","otf"],["application/x-font-pcf","pcf"],["application/x-font-snf","snf"],["application/x-font-ttf","ttf"],["application/x-font-type1","pfa"],["application/x-font-woff","woff"],["application/x-frame","mif"],["application/x-freelance","pre"],["application/x-futuresplash","spl"],["application/x-gnumeric","gnumeric"],["application/x-gsp","gsp"],["application/x-gss","gss"],["application/x-gtar","gtar"],["application/x-gzip",["gz","gzip"]],["application/x-hdf","hdf"],["application/x-helpfile",["help","hlp"]],["application/x-httpd-imap","imap"],["application/x-ima","ima"],["application/x-internet-signup",["ins","isp"]],["application/x-internett-signup","ins"],["application/x-inventor","iv"],["application/x-ip2","ip"],["application/x-iphone","iii"],["application/x-java-class","class"],["application/x-java-commerce","jcm"],["application/x-java-jnlp-file","jnlp"],["application/x-javascript","js"],["application/x-koan",["skd","skm","skp","skt"]],["application/x-ksh","ksh"],["application/x-latex",["latex","ltx"]],["application/x-lha","lha"],["application/x-lisp","lsp"],["application/x-livescreen","ivy"],["application/x-lotus","wq1"],["application/x-lotusscreencam","scm"],["application/x-lzh","lzh"],["application/x-lzx","lzx"],["application/x-mac-binhex40","hqx"],["application/x-macbinary","bin"],["application/x-magic-cap-package-1.0","mc$"],["application/x-mathcad","mcd"],["application/x-meme","mm"],["application/x-midi",["mid","midi"]],["application/x-mif","mif"],["application/x-mix-transfer","nix"],["application/x-mobipocket-ebook","prc"],["application/x-mplayer2","asx"],["application/x-ms-application","application"],["application/x-ms-wmd","wmd"],["application/x-ms-wmz","wmz"],["application/x-ms-xbap","xbap"],["application/x-msaccess","mdb"],["application/x-msbinder","obd"],["application/x-mscardfile","crd"],["application/x-msclip","clp"],["application/x-msdownload",["exe","dll"]],["application/x-msexcel",["xls","xla","xlw"]],["application/x-msmediaview",["mvb","m13","m14"]],["application/x-msmetafile","wmf"],["application/x-msmoney","mny"],["application/x-mspowerpoint","ppt"],["application/x-mspublisher","pub"],["application/x-msschedule","scd"],["application/x-msterminal","trm"],["application/x-mswrite","wri"],["application/x-navi-animation","ani"],["application/x-navidoc","nvd"],["application/x-navimap","map"],["application/x-navistyle","stl"],["application/x-netcdf",["cdf","nc"]],["application/x-newton-compatible-pkg","pkg"],["application/x-nokia-9000-communicator-add-on-software","aos"],["application/x-omc","omc"],["application/x-omcdatamaker","omcd"],["application/x-omcregerator","omcr"],["application/x-pagemaker",["pm4","pm5"]],["application/x-pcl","pcl"],["application/x-perfmon",["pma","pmc","pml","pmr","pmw"]],["application/x-pixclscript","plx"],["application/x-pkcs10","p10"],["application/x-pkcs12",["p12","pfx"]],["application/x-pkcs7-certificates",["p7b","spc"]],["application/x-pkcs7-certreqresp","p7r"],["application/x-pkcs7-mime",["p7m","p7c"]],["application/x-pkcs7-signature",["p7s","p7a"]],["application/x-pointplus","css"],["application/x-portable-anymap","pnm"],["application/x-project",["mpc","mpt","mpv","mpx"]],["application/x-qpro","wb1"],["application/x-rar-compressed","rar"],["application/x-rtf","rtf"],["application/x-sdp","sdp"],["application/x-sea","sea"],["application/x-seelogo","sl"],["application/x-sh","sh"],["application/x-shar",["shar","sh"]],["application/x-shockwave-flash","swf"],["application/x-silverlight-app","xap"],["application/x-sit","sit"],["application/x-sprite",["spr","sprite"]],["application/x-stuffit","sit"],["application/x-stuffitx","sitx"],["application/x-sv4cpio","sv4cpio"],["application/x-sv4crc","sv4crc"],["application/x-tar","tar"],["application/x-tbook",["sbk","tbk"]],["application/x-tcl","tcl"],["application/x-tex","tex"],["application/x-tex-tfm","tfm"],["application/x-texinfo",["texi","texinfo"]],["application/x-troff",["roff","t","tr"]],["application/x-troff-man","man"],["application/x-troff-me","me"],["application/x-troff-ms","ms"],["application/x-troff-msvideo","avi"],["application/x-ustar","ustar"],["application/x-visio",["vsd","vst","vsw"]],["application/x-vnd.audioexplosion.mzz","mzz"],["application/x-vnd.ls-xpix","xpix"],["application/x-vrml","vrml"],["application/x-wais-source",["src","wsrc"]],["application/x-winhelp","hlp"],["application/x-wintalk","wtk"],["application/x-world",["wrl","svr"]],["application/x-wpwin","wpd"],["application/x-wri","wri"],["application/x-x509-ca-cert",["cer","crt","der"]],["application/x-x509-user-cert","crt"],["application/x-xfig","fig"],["application/x-xpinstall","xpi"],["application/x-zip-compressed","zip"],["application/xcap-diff+xml","xdf"],["application/xenc+xml","xenc"],["application/xhtml+xml","xhtml"],["application/xml","xml"],["application/xml-dtd","dtd"],["application/xop+xml","xop"],["application/xslt+xml","xslt"],["application/xspf+xml","xspf"],["application/xv+xml","mxml"],["application/yang","yang"],["application/yin+xml","yin"],["application/ynd.ms-pkipko","pko"],["application/zip","zip"],["audio/adpcm","adp"],["audio/aiff",["aiff","aif","aifc"]],["audio/basic",["snd","au"]],["audio/it","it"],["audio/make",["funk","my","pfunk"]],["audio/make.my.funk","pfunk"],["audio/mid",["mid","rmi"]],["audio/midi",["midi","kar","mid"]],["audio/mod","mod"],["audio/mp4","mp4a"],["audio/mpeg",["mpga","mp3","m2a","mp2","mpa","mpg"]],["audio/mpeg3","mp3"],["audio/nspaudio",["la","lma"]],["audio/ogg","oga"],["audio/s3m","s3m"],["audio/tsp-audio","tsi"],["audio/tsplayer","tsp"],["audio/vnd.dece.audio","uva"],["audio/vnd.digital-winds","eol"],["audio/vnd.dra","dra"],["audio/vnd.dts","dts"],["audio/vnd.dts.hd","dtshd"],["audio/vnd.lucent.voice","lvp"],["audio/vnd.ms-playready.media.pya","pya"],["audio/vnd.nuera.ecelp4800","ecelp4800"],["audio/vnd.nuera.ecelp7470","ecelp7470"],["audio/vnd.nuera.ecelp9600","ecelp9600"],["audio/vnd.qcelp","qcp"],["audio/vnd.rip","rip"],["audio/voc","voc"],["audio/voxware","vox"],["audio/wav","wav"],["audio/webm","weba"],["audio/x-aac","aac"],["audio/x-adpcm","snd"],["audio/x-aiff",["aiff","aif","aifc"]],["audio/x-au","au"],["audio/x-gsm",["gsd","gsm"]],["audio/x-jam","jam"],["audio/x-liveaudio","lam"],["audio/x-mid",["mid","midi"]],["audio/x-midi",["midi","mid"]],["audio/x-mod","mod"],["audio/x-mpeg","mp2"],["audio/x-mpeg-3","mp3"],["audio/x-mpegurl","m3u"],["audio/x-mpequrl","m3u"],["audio/x-ms-wax","wax"],["audio/x-ms-wma","wma"],["audio/x-nspaudio",["la","lma"]],["audio/x-pn-realaudio",["ra","ram","rm","rmm","rmp"]],["audio/x-pn-realaudio-plugin",["ra","rmp","rpm"]],["audio/x-psid","sid"],["audio/x-realaudio","ra"],["audio/x-twinvq","vqf"],["audio/x-twinvq-plugin",["vqe","vql"]],["audio/x-vnd.audioexplosion.mjuicemediafile","mjf"],["audio/x-voc","voc"],["audio/x-wav","wav"],["audio/xm","xm"],["chemical/x-cdx","cdx"],["chemical/x-cif","cif"],["chemical/x-cmdf","cmdf"],["chemical/x-cml","cml"],["chemical/x-csml","csml"],["chemical/x-pdb",["pdb","xyz"]],["chemical/x-xyz","xyz"],["drawing/x-dwf","dwf"],["i-world/i-vrml","ivr"],["image/bmp",["bmp","bm"]],["image/cgm","cgm"],["image/cis-cod","cod"],["image/cmu-raster",["ras","rast"]],["image/fif","fif"],["image/florian",["flo","turbot"]],["image/g3fax","g3"],["image/gif","gif"],["image/ief",["ief","iefs"]],["image/jpeg",["jpeg","jpe","jpg","jfif","jfif-tbnl"]],["image/jutvision","jut"],["image/ktx","ktx"],["image/naplps",["nap","naplps"]],["image/pict",["pic","pict"]],["image/pipeg","jfif"],["image/pjpeg",["jfif","jpe","jpeg","jpg"]],["image/png",["png","x-png"]],["image/prs.btif","btif"],["image/svg+xml","svg"],["image/tiff",["tif","tiff"]],["image/vasa","mcf"],["image/vnd.adobe.photoshop","psd"],["image/vnd.dece.graphic","uvi"],["image/vnd.djvu","djvu"],["image/vnd.dvb.subtitle","sub"],["image/vnd.dwg",["dwg","dxf","svf"]],["image/vnd.dxf","dxf"],["image/vnd.fastbidsheet","fbs"],["image/vnd.fpx","fpx"],["image/vnd.fst","fst"],["image/vnd.fujixerox.edmics-mmr","mmr"],["image/vnd.fujixerox.edmics-rlc","rlc"],["image/vnd.ms-modi","mdi"],["image/vnd.net-fpx",["fpx","npx"]],["image/vnd.rn-realflash","rf"],["image/vnd.rn-realpix","rp"],["image/vnd.wap.wbmp","wbmp"],["image/vnd.xiff","xif"],["image/webp","webp"],["image/x-cmu-raster","ras"],["image/x-cmx","cmx"],["image/x-dwg",["dwg","dxf","svf"]],["image/x-freehand","fh"],["image/x-icon","ico"],["image/x-jg","art"],["image/x-jps","jps"],["image/x-niff",["niff","nif"]],["image/x-pcx","pcx"],["image/x-pict",["pct","pic"]],["image/x-portable-anymap","pnm"],["image/x-portable-bitmap","pbm"],["image/x-portable-graymap","pgm"],["image/x-portable-greymap","pgm"],["image/x-portable-pixmap","ppm"],["image/x-quicktime",["qif","qti","qtif"]],["image/x-rgb","rgb"],["image/x-tiff",["tif","tiff"]],["image/x-windows-bmp","bmp"],["image/x-xbitmap","xbm"],["image/x-xbm","xbm"],["image/x-xpixmap",["xpm","pm"]],["image/x-xwd","xwd"],["image/x-xwindowdump","xwd"],["image/xbm","xbm"],["image/xpm","xpm"],["message/rfc822",["eml","mht","mhtml","nws","mime"]],["model/iges",["iges","igs"]],["model/mesh","msh"],["model/vnd.collada+xml","dae"],["model/vnd.dwf","dwf"],["model/vnd.gdl","gdl"],["model/vnd.gtw","gtw"],["model/vnd.mts","mts"],["model/vnd.vtu","vtu"],["model/vrml",["vrml","wrl","wrz"]],["model/x-pov","pov"],["multipart/x-gzip","gzip"],["multipart/x-ustar","ustar"],["multipart/x-zip","zip"],["music/crescendo",["mid","midi"]],["music/x-karaoke","kar"],["paleovu/x-pv","pvu"],["text/asp","asp"],["text/calendar","ics"],["text/css","css"],["text/csv","csv"],["text/ecmascript","js"],["text/h323","323"],["text/html",["html","htm","stm","acgi","htmls","htx","shtml"]],["text/iuls","uls"],["text/javascript","js"],["text/mcf","mcf"],["text/n3","n3"],["text/pascal","pas"],["text/plain",["txt","bas","c","h","c++","cc","com","conf","cxx","def","f","f90","for","g","hh","idc","jav","java","list","log","lst","m","mar","pl","sdml","text"]],["text/plain-bas","par"],["text/prs.lines.tag","dsc"],["text/richtext",["rtx","rt","rtf"]],["text/scriplet","wsc"],["text/scriptlet","sct"],["text/sgml",["sgm","sgml"]],["text/tab-separated-values","tsv"],["text/troff","t"],["text/turtle","ttl"],["text/uri-list",["uni","unis","uri","uris"]],["text/vnd.abc","abc"],["text/vnd.curl","curl"],["text/vnd.curl.dcurl","dcurl"],["text/vnd.curl.mcurl","mcurl"],["text/vnd.curl.scurl","scurl"],["text/vnd.fly","fly"],["text/vnd.fmi.flexstor","flx"],["text/vnd.graphviz","gv"],["text/vnd.in3d.3dml","3dml"],["text/vnd.in3d.spot","spot"],["text/vnd.rn-realtext","rt"],["text/vnd.sun.j2me.app-descriptor","jad"],["text/vnd.wap.wml","wml"],["text/vnd.wap.wmlscript","wmls"],["text/webviewhtml","htt"],["text/x-asm",["asm","s"]],["text/x-audiosoft-intra","aip"],["text/x-c",["c","cc","cpp"]],["text/x-component","htc"],["text/x-fortran",["for","f","f77","f90"]],["text/x-h",["h","hh"]],["text/x-java-source",["java","jav"]],["text/x-java-source,java","java"],["text/x-la-asf","lsx"],["text/x-m","m"],["text/x-pascal","p"],["text/x-script","hlb"],["text/x-script.csh","csh"],["text/x-script.elisp","el"],["text/x-script.guile","scm"],["text/x-script.ksh","ksh"],["text/x-script.lisp","lsp"],["text/x-script.perl","pl"],["text/x-script.perl-module","pm"],["text/x-script.phyton","py"],["text/x-script.rexx","rexx"],["text/x-script.scheme","scm"],["text/x-script.sh","sh"],["text/x-script.tcl","tcl"],["text/x-script.tcsh","tcsh"],["text/x-script.zsh","zsh"],["text/x-server-parsed-html",["shtml","ssi"]],["text/x-setext","etx"],["text/x-sgml",["sgm","sgml"]],["text/x-speech",["spc","talk"]],["text/x-uil","uil"],["text/x-uuencode",["uu","uue"]],["text/x-vcalendar","vcs"],["text/x-vcard","vcf"],["text/xml","xml"],["video/3gpp","3gp"],["video/3gpp2","3g2"],["video/animaflex","afl"],["video/avi","avi"],["video/avs-video","avs"],["video/dl","dl"],["video/fli","fli"],["video/gl","gl"],["video/h261","h261"],["video/h263","h263"],["video/h264","h264"],["video/jpeg","jpgv"],["video/jpm","jpm"],["video/mj2","mj2"],["video/mp4","mp4"],["video/mpeg",["mpeg","mp2","mpa","mpe","mpg","mpv2","m1v","m2v","mp3"]],["video/msvideo","avi"],["video/ogg","ogv"],["video/quicktime",["mov","qt","moov"]],["video/vdo","vdo"],["video/vivo",["viv","vivo"]],["video/vnd.dece.hd","uvh"],["video/vnd.dece.mobile","uvm"],["video/vnd.dece.pd","uvp"],["video/vnd.dece.sd","uvs"],["video/vnd.dece.video","uvv"],["video/vnd.fvt","fvt"],["video/vnd.mpegurl","mxu"],["video/vnd.ms-playready.media.pyv","pyv"],["video/vnd.rn-realvideo","rv"],["video/vnd.uvvu.mp4","uvu"],["video/vnd.vivo",["viv","vivo"]],["video/vosaic","vos"],["video/webm","webm"],["video/x-amt-demorun","xdr"],["video/x-amt-showrun","xsr"],["video/x-atomic3d-feature","fmf"],["video/x-dl","dl"],["video/x-dv",["dif","dv"]],["video/x-f4v","f4v"],["video/x-fli","fli"],["video/x-flv","flv"],["video/x-gl","gl"],["video/x-isvideo","isu"],["video/x-la-asf",["lsf","lsx"]],["video/x-m4v","m4v"],["video/x-motion-jpeg","mjpg"],["video/x-mpeg",["mp3","mp2"]],["video/x-mpeq2a","mp2"],["video/x-ms-asf",["asf","asr","asx"]],["video/x-ms-asf-plugin","asx"],["video/x-ms-wm","wm"],["video/x-ms-wmv","wmv"],["video/x-ms-wmx","wmx"],["video/x-ms-wvx","wvx"],["video/x-msvideo","avi"],["video/x-qtc","qtc"],["video/x-scm","scm"],["video/x-sgi-movie",["movie","mv"]],["windows/metafile","wmf"],["www/mime","mime"],["x-conference/x-cooltalk","ice"],["x-music/x-midi",["mid","midi"]],["x-world/x-3dmf",["3dm","3dmf","qd3","qd3d"]],["x-world/x-svr","svr"],["x-world/x-vrml",["flr","vrml","wrl","wrz","xaf","xof"]],["x-world/x-vrt","vrt"],["xgl/drawing","xgz"],["xgl/movie","xmz"]]),qY=new Map([["123","application/vnd.lotus-1-2-3"],["323","text/h323"],["*","application/octet-stream"],["3dm","x-world/x-3dmf"],["3dmf","x-world/x-3dmf"],["3dml","text/vnd.in3d.3dml"],["3g2","video/3gpp2"],["3gp","video/3gpp"],["7z","application/x-7z-compressed"],["a","application/octet-stream"],["aab","application/x-authorware-bin"],["aac","audio/x-aac"],["aam","application/x-authorware-map"],["aas","application/x-authorware-seg"],["abc","text/vnd.abc"],["abw","application/x-abiword"],["ac","application/pkix-attr-cert"],["acc","application/vnd.americandynamics.acc"],["ace","application/x-ace-compressed"],["acgi","text/html"],["acu","application/vnd.acucobol"],["acx","application/internet-property-stream"],["adp","audio/adpcm"],["aep","application/vnd.audiograph"],["afl","video/animaflex"],["afp","application/vnd.ibm.modcap"],["ahead","application/vnd.ahead.space"],["ai","application/postscript"],["aif",["audio/aiff","audio/x-aiff"]],["aifc",["audio/aiff","audio/x-aiff"]],["aiff",["audio/aiff","audio/x-aiff"]],["aim","application/x-aim"],["aip","text/x-audiosoft-intra"],["air","application/vnd.adobe.air-application-installer-package+zip"],["ait","application/vnd.dvb.ait"],["ami","application/vnd.amiga.ami"],["ani","application/x-navi-animation"],["aos","application/x-nokia-9000-communicator-add-on-software"],["apk","application/vnd.android.package-archive"],["application","application/x-ms-application"],["apr","application/vnd.lotus-approach"],["aps","application/mime"],["arc","application/octet-stream"],["arj",["application/arj","application/octet-stream"]],["art","image/x-jg"],["asf","video/x-ms-asf"],["asm","text/x-asm"],["aso","application/vnd.accpac.simply.aso"],["asp","text/asp"],["asr","video/x-ms-asf"],["asx",["video/x-ms-asf","application/x-mplayer2","video/x-ms-asf-plugin"]],["atc","application/vnd.acucorp"],["atomcat","application/atomcat+xml"],["atomsvc","application/atomsvc+xml"],["atx","application/vnd.antix.game-component"],["au",["audio/basic","audio/x-au"]],["avi",["video/avi","video/msvideo","application/x-troff-msvideo","video/x-msvideo"]],["avs","video/avs-video"],["aw","application/applixware"],["axs","application/olescript"],["azf","application/vnd.airzip.filesecure.azf"],["azs","application/vnd.airzip.filesecure.azs"],["azw","application/vnd.amazon.ebook"],["bas","text/plain"],["bcpio","application/x-bcpio"],["bdf","application/x-font-bdf"],["bdm","application/vnd.syncml.dm+wbxml"],["bed","application/vnd.realvnc.bed"],["bh2","application/vnd.fujitsu.oasysprs"],["bin",["application/octet-stream","application/mac-binary","application/macbinary","application/x-macbinary","application/x-binary"]],["bm","image/bmp"],["bmi","application/vnd.bmi"],["bmp",["image/bmp","image/x-windows-bmp"]],["boo","application/book"],["book","application/book"],["box","application/vnd.previewsystems.box"],["boz","application/x-bzip2"],["bsh","application/x-bsh"],["btif","image/prs.btif"],["bz","application/x-bzip"],["bz2","application/x-bzip2"],["c",["text/plain","text/x-c"]],["c++","text/plain"],["c11amc","application/vnd.cluetrust.cartomobile-config"],["c11amz","application/vnd.cluetrust.cartomobile-config-pkg"],["c4g","application/vnd.clonk.c4group"],["cab","application/vnd.ms-cab-compressed"],["car","application/vnd.curl.car"],["cat",["application/vnd.ms-pkiseccat","application/vnd.ms-pki.seccat"]],["cc",["text/plain","text/x-c"]],["ccad","application/clariscad"],["cco","application/x-cocoa"],["ccxml","application/ccxml+xml,"],["cdbcmsg","application/vnd.contact.cmsg"],["cdf",["application/cdf","application/x-cdf","application/x-netcdf"]],["cdkey","application/vnd.mediastation.cdkey"],["cdmia","application/cdmi-capability"],["cdmic","application/cdmi-container"],["cdmid","application/cdmi-domain"],["cdmio","application/cdmi-object"],["cdmiq","application/cdmi-queue"],["cdx","chemical/x-cdx"],["cdxml","application/vnd.chemdraw+xml"],["cdy","application/vnd.cinderella"],["cer",["application/pkix-cert","application/x-x509-ca-cert"]],["cgm","image/cgm"],["cha","application/x-chat"],["chat","application/x-chat"],["chm","application/vnd.ms-htmlhelp"],["chrt","application/vnd.kde.kchart"],["cif","chemical/x-cif"],["cii","application/vnd.anser-web-certificate-issue-initiation"],["cil","application/vnd.ms-artgalry"],["cla","application/vnd.claymore"],["class",["application/octet-stream","application/java","application/java-byte-code","application/java-vm","application/x-java-class"]],["clkk","application/vnd.crick.clicker.keyboard"],["clkp","application/vnd.crick.clicker.palette"],["clkt","application/vnd.crick.clicker.template"],["clkw","application/vnd.crick.clicker.wordbank"],["clkx","application/vnd.crick.clicker"],["clp","application/x-msclip"],["cmc","application/vnd.cosmocaller"],["cmdf","chemical/x-cmdf"],["cml","chemical/x-cml"],["cmp","application/vnd.yellowriver-custom-menu"],["cmx","image/x-cmx"],["cod",["image/cis-cod","application/vnd.rim.cod"]],["com",["application/octet-stream","text/plain"]],["conf","text/plain"],["cpio","application/x-cpio"],["cpp","text/x-c"],["cpt",["application/mac-compactpro","application/x-compactpro","application/x-cpt"]],["crd","application/x-mscardfile"],["crl",["application/pkix-crl","application/pkcs-crl"]],["crt",["application/pkix-cert","application/x-x509-user-cert","application/x-x509-ca-cert"]],["cryptonote","application/vnd.rig.cryptonote"],["csh",["text/x-script.csh","application/x-csh"]],["csml","chemical/x-csml"],["csp","application/vnd.commonspace"],["css",["text/css","application/x-pointplus"]],["csv","text/csv"],["cu","application/cu-seeme"],["curl","text/vnd.curl"],["cww","application/prs.cww"],["cxx","text/plain"],["dae","model/vnd.collada+xml"],["daf","application/vnd.mobius.daf"],["davmount","application/davmount+xml"],["dcr","application/x-director"],["dcurl","text/vnd.curl.dcurl"],["dd2","application/vnd.oma.dd2+xml"],["ddd","application/vnd.fujixerox.ddd"],["deb","application/x-debian-package"],["deepv","application/x-deepv"],["def","text/plain"],["der","application/x-x509-ca-cert"],["dfac","application/vnd.dreamfactory"],["dif","video/x-dv"],["dir","application/x-director"],["dis","application/vnd.mobius.dis"],["djvu","image/vnd.djvu"],["dl",["video/dl","video/x-dl"]],["dll","application/x-msdownload"],["dms","application/octet-stream"],["dna","application/vnd.dna"],["doc","application/msword"],["docm","application/vnd.ms-word.document.macroenabled.12"],["docx","application/vnd.openxmlformats-officedocument.wordprocessingml.document"],["dot","application/msword"],["dotm","application/vnd.ms-word.template.macroenabled.12"],["dotx","application/vnd.openxmlformats-officedocument.wordprocessingml.template"],["dp",["application/commonground","application/vnd.osgi.dp"]],["dpg","application/vnd.dpgraph"],["dra","audio/vnd.dra"],["drw","application/drafting"],["dsc","text/prs.lines.tag"],["dssc","application/dssc+der"],["dtb","application/x-dtbook+xml"],["dtd","application/xml-dtd"],["dts","audio/vnd.dts"],["dtshd","audio/vnd.dts.hd"],["dump","application/octet-stream"],["dv","video/x-dv"],["dvi","application/x-dvi"],["dwf",["model/vnd.dwf","drawing/x-dwf"]],["dwg",["application/acad","image/vnd.dwg","image/x-dwg"]],["dxf",["application/dxf","image/vnd.dwg","image/vnd.dxf","image/x-dwg"]],["dxp","application/vnd.spotfire.dxp"],["dxr","application/x-director"],["ecelp4800","audio/vnd.nuera.ecelp4800"],["ecelp7470","audio/vnd.nuera.ecelp7470"],["ecelp9600","audio/vnd.nuera.ecelp9600"],["edm","application/vnd.novadigm.edm"],["edx","application/vnd.novadigm.edx"],["efif","application/vnd.picsel"],["ei6","application/vnd.pg.osasli"],["el","text/x-script.elisp"],["elc",["application/x-elc","application/x-bytecode.elisp"]],["eml","message/rfc822"],["emma","application/emma+xml"],["env","application/x-envoy"],["eol","audio/vnd.digital-winds"],["eot","application/vnd.ms-fontobject"],["eps","application/postscript"],["epub","application/epub+zip"],["es",["application/ecmascript","application/x-esrehber"]],["es3","application/vnd.eszigno3+xml"],["esf","application/vnd.epson.esf"],["etx","text/x-setext"],["evy",["application/envoy","application/x-envoy"]],["exe",["application/octet-stream","application/x-msdownload"]],["exi","application/exi"],["ext","application/vnd.novadigm.ext"],["ez2","application/vnd.ezpix-album"],["ez3","application/vnd.ezpix-package"],["f",["text/plain","text/x-fortran"]],["f4v","video/x-f4v"],["f77","text/x-fortran"],["f90",["text/plain","text/x-fortran"]],["fbs","image/vnd.fastbidsheet"],["fcs","application/vnd.isac.fcs"],["fdf","application/vnd.fdf"],["fe_launch","application/vnd.denovo.fcselayout-link"],["fg5","application/vnd.fujitsu.oasysgp"],["fh","image/x-freehand"],["fif",["application/fractals","image/fif"]],["fig","application/x-xfig"],["fli",["video/fli","video/x-fli"]],["flo",["image/florian","application/vnd.micrografx.flo"]],["flr","x-world/x-vrml"],["flv","video/x-flv"],["flw","application/vnd.kde.kivio"],["flx","text/vnd.fmi.flexstor"],["fly","text/vnd.fly"],["fm","application/vnd.framemaker"],["fmf","video/x-atomic3d-feature"],["fnc","application/vnd.frogans.fnc"],["for",["text/plain","text/x-fortran"]],["fpx",["image/vnd.fpx","image/vnd.net-fpx"]],["frl","application/freeloader"],["fsc","application/vnd.fsc.weblaunch"],["fst","image/vnd.fst"],["ftc","application/vnd.fluxtime.clip"],["fti","application/vnd.anser-web-funds-transfer-initiation"],["funk","audio/make"],["fvt","video/vnd.fvt"],["fxp","application/vnd.adobe.fxp"],["fzs","application/vnd.fuzzysheet"],["g","text/plain"],["g2w","application/vnd.geoplan"],["g3","image/g3fax"],["g3w","application/vnd.geospace"],["gac","application/vnd.groove-account"],["gdl","model/vnd.gdl"],["geo","application/vnd.dynageo"],["gex","application/vnd.geometry-explorer"],["ggb","application/vnd.geogebra.file"],["ggt","application/vnd.geogebra.tool"],["ghf","application/vnd.groove-help"],["gif","image/gif"],["gim","application/vnd.groove-identity-message"],["gl",["video/gl","video/x-gl"]],["gmx","application/vnd.gmx"],["gnumeric","application/x-gnumeric"],["gph","application/vnd.flographit"],["gqf","application/vnd.grafeq"],["gram","application/srgs"],["grv","application/vnd.groove-injector"],["grxml","application/srgs+xml"],["gsd","audio/x-gsm"],["gsf","application/x-font-ghostscript"],["gsm","audio/x-gsm"],["gsp","application/x-gsp"],["gss","application/x-gss"],["gtar","application/x-gtar"],["gtm","application/vnd.groove-tool-message"],["gtw","model/vnd.gtw"],["gv","text/vnd.graphviz"],["gxt","application/vnd.geonext"],["gz",["application/x-gzip","application/x-compressed"]],["gzip",["multipart/x-gzip","application/x-gzip"]],["h",["text/plain","text/x-h"]],["h261","video/h261"],["h263","video/h263"],["h264","video/h264"],["hal","application/vnd.hal+xml"],["hbci","application/vnd.hbci"],["hdf","application/x-hdf"],["help","application/x-helpfile"],["hgl","application/vnd.hp-hpgl"],["hh",["text/plain","text/x-h"]],["hlb","text/x-script"],["hlp",["application/winhlp","application/hlp","application/x-helpfile","application/x-winhelp"]],["hpg","application/vnd.hp-hpgl"],["hpgl","application/vnd.hp-hpgl"],["hpid","application/vnd.hp-hpid"],["hps","application/vnd.hp-hps"],["hqx",["application/mac-binhex40","application/binhex","application/binhex4","application/mac-binhex","application/x-binhex40","application/x-mac-binhex40"]],["hta","application/hta"],["htc","text/x-component"],["htke","application/vnd.kenameaapp"],["htm","text/html"],["html","text/html"],["htmls","text/html"],["htt","text/webviewhtml"],["htx","text/html"],["hvd","application/vnd.yamaha.hv-dic"],["hvp","application/vnd.yamaha.hv-voice"],["hvs","application/vnd.yamaha.hv-script"],["i2g","application/vnd.intergeo"],["icc","application/vnd.iccprofile"],["ice","x-conference/x-cooltalk"],["ico","image/x-icon"],["ics","text/calendar"],["idc","text/plain"],["ief","image/ief"],["iefs","image/ief"],["ifm","application/vnd.shana.informed.formdata"],["iges",["application/iges","model/iges"]],["igl","application/vnd.igloader"],["igm","application/vnd.insors.igm"],["igs",["application/iges","model/iges"]],["igx","application/vnd.micrografx.igx"],["iif","application/vnd.shana.informed.interchange"],["iii","application/x-iphone"],["ima","application/x-ima"],["imap","application/x-httpd-imap"],["imp","application/vnd.accpac.simply.imp"],["ims","application/vnd.ms-ims"],["inf","application/inf"],["ins",["application/x-internet-signup","application/x-internett-signup"]],["ip","application/x-ip2"],["ipfix","application/ipfix"],["ipk","application/vnd.shana.informed.package"],["irm","application/vnd.ibm.rights-management"],["irp","application/vnd.irepository.package+xml"],["isp","application/x-internet-signup"],["isu","video/x-isvideo"],["it","audio/it"],["itp","application/vnd.shana.informed.formtemplate"],["iv","application/x-inventor"],["ivp","application/vnd.immervision-ivp"],["ivr","i-world/i-vrml"],["ivu","application/vnd.immervision-ivu"],["ivy","application/x-livescreen"],["jad","text/vnd.sun.j2me.app-descriptor"],["jam",["application/vnd.jam","audio/x-jam"]],["jar","application/java-archive"],["jav",["text/plain","text/x-java-source"]],["java",["text/plain","text/x-java-source,java","text/x-java-source"]],["jcm","application/x-java-commerce"],["jfif",["image/pipeg","image/jpeg","image/pjpeg"]],["jfif-tbnl","image/jpeg"],["jisp","application/vnd.jisp"],["jlt","application/vnd.hp-jlyt"],["jnlp","application/x-java-jnlp-file"],["joda","application/vnd.joost.joda-archive"],["jpe",["image/jpeg","image/pjpeg"]],["jpeg",["image/jpeg","image/pjpeg"]],["jpg",["image/jpeg","image/pjpeg"]],["jpgv","video/jpeg"],["jpm","video/jpm"],["jps","image/x-jps"],["js",["application/javascript","application/ecmascript","text/javascript","text/ecmascript","application/x-javascript"]],["json","application/json"],["jut","image/jutvision"],["kar",["audio/midi","music/x-karaoke"]],["karbon","application/vnd.kde.karbon"],["kfo","application/vnd.kde.kformula"],["kia","application/vnd.kidspiration"],["kml","application/vnd.google-earth.kml+xml"],["kmz","application/vnd.google-earth.kmz"],["kne","application/vnd.kinar"],["kon","application/vnd.kde.kontour"],["kpr","application/vnd.kde.kpresenter"],["ksh",["application/x-ksh","text/x-script.ksh"]],["ksp","application/vnd.kde.kspread"],["ktx","image/ktx"],["ktz","application/vnd.kahootz"],["kwd","application/vnd.kde.kword"],["la",["audio/nspaudio","audio/x-nspaudio"]],["lam","audio/x-liveaudio"],["lasxml","application/vnd.las.las+xml"],["latex","application/x-latex"],["lbd","application/vnd.llamagraphics.life-balance.desktop"],["lbe","application/vnd.llamagraphics.life-balance.exchange+xml"],["les","application/vnd.hhe.lesson-player"],["lha",["application/octet-stream","application/lha","application/x-lha"]],["lhx","application/octet-stream"],["link66","application/vnd.route66.link66+xml"],["list","text/plain"],["lma",["audio/nspaudio","audio/x-nspaudio"]],["log","text/plain"],["lrm","application/vnd.ms-lrm"],["lsf","video/x-la-asf"],["lsp",["application/x-lisp","text/x-script.lisp"]],["lst","text/plain"],["lsx",["video/x-la-asf","text/x-la-asf"]],["ltf","application/vnd.frogans.ltf"],["ltx","application/x-latex"],["lvp","audio/vnd.lucent.voice"],["lwp","application/vnd.lotus-wordpro"],["lzh",["application/octet-stream","application/x-lzh"]],["lzx",["application/lzx","application/octet-stream","application/x-lzx"]],["m",["text/plain","text/x-m"]],["m13","application/x-msmediaview"],["m14","application/x-msmediaview"],["m1v","video/mpeg"],["m21","application/mp21"],["m2a","audio/mpeg"],["m2v","video/mpeg"],["m3u",["audio/x-mpegurl","audio/x-mpequrl"]],["m3u8","application/vnd.apple.mpegurl"],["m4v","video/x-m4v"],["ma","application/mathematica"],["mads","application/mads+xml"],["mag","application/vnd.ecowin.chart"],["man","application/x-troff-man"],["map","application/x-navimap"],["mar","text/plain"],["mathml","application/mathml+xml"],["mbd","application/mbedlet"],["mbk","application/vnd.mobius.mbk"],["mbox","application/mbox"],["mc$","application/x-magic-cap-package-1.0"],["mc1","application/vnd.medcalcdata"],["mcd",["application/mcad","application/vnd.mcd","application/x-mathcad"]],["mcf",["image/vasa","text/mcf"]],["mcp","application/netmc"],["mcurl","text/vnd.curl.mcurl"],["mdb","application/x-msaccess"],["mdi","image/vnd.ms-modi"],["me","application/x-troff-me"],["meta4","application/metalink4+xml"],["mets","application/mets+xml"],["mfm","application/vnd.mfmp"],["mgp","application/vnd.osgeo.mapguide.package"],["mgz","application/vnd.proteus.magazine"],["mht","message/rfc822"],["mhtml","message/rfc822"],["mid",["audio/mid","audio/midi","music/crescendo","x-music/x-midi","audio/x-midi","application/x-midi","audio/x-mid"]],["midi",["audio/midi","music/crescendo","x-music/x-midi","audio/x-midi","application/x-midi","audio/x-mid"]],["mif",["application/vnd.mif","application/x-mif","application/x-frame"]],["mime",["message/rfc822","www/mime"]],["mj2","video/mj2"],["mjf","audio/x-vnd.audioexplosion.mjuicemediafile"],["mjpg","video/x-motion-jpeg"],["mlp","application/vnd.dolby.mlp"],["mm",["application/base64","application/x-meme"]],["mmd","application/vnd.chipnuts.karaoke-mmd"],["mme","application/base64"],["mmf","application/vnd.smaf"],["mmr","image/vnd.fujixerox.edmics-mmr"],["mny","application/x-msmoney"],["mod",["audio/mod","audio/x-mod"]],["mods","application/mods+xml"],["moov","video/quicktime"],["mov","video/quicktime"],["movie","video/x-sgi-movie"],["mp2",["video/mpeg","audio/mpeg","video/x-mpeg","audio/x-mpeg","video/x-mpeq2a"]],["mp3",["audio/mpeg","audio/mpeg3","video/mpeg","audio/x-mpeg-3","video/x-mpeg"]],["mp4",["video/mp4","application/mp4"]],["mp4a","audio/mp4"],["mpa",["video/mpeg","audio/mpeg"]],["mpc",["application/vnd.mophun.certificate","application/x-project"]],["mpe","video/mpeg"],["mpeg","video/mpeg"],["mpg",["video/mpeg","audio/mpeg"]],["mpga","audio/mpeg"],["mpkg","application/vnd.apple.installer+xml"],["mpm","application/vnd.blueice.multipass"],["mpn","application/vnd.mophun.application"],["mpp","application/vnd.ms-project"],["mpt","application/x-project"],["mpv","application/x-project"],["mpv2","video/mpeg"],["mpx","application/x-project"],["mpy","application/vnd.ibm.minipay"],["mqy","application/vnd.mobius.mqy"],["mrc","application/marc"],["mrcx","application/marcxml+xml"],["ms","application/x-troff-ms"],["mscml","application/mediaservercontrol+xml"],["mseq","application/vnd.mseq"],["msf","application/vnd.epson.msf"],["msg","application/vnd.ms-outlook"],["msh","model/mesh"],["msl","application/vnd.mobius.msl"],["msty","application/vnd.muvee.style"],["mts","model/vnd.mts"],["mus","application/vnd.musician"],["musicxml","application/vnd.recordare.musicxml+xml"],["mv","video/x-sgi-movie"],["mvb","application/x-msmediaview"],["mwf","application/vnd.mfer"],["mxf","application/mxf"],["mxl","application/vnd.recordare.musicxml"],["mxml","application/xv+xml"],["mxs","application/vnd.triscape.mxs"],["mxu","video/vnd.mpegurl"],["my","audio/make"],["mzz","application/x-vnd.audioexplosion.mzz"],["n-gage","application/vnd.nokia.n-gage.symbian.install"],["n3","text/n3"],["nap","image/naplps"],["naplps","image/naplps"],["nbp","application/vnd.wolfram.player"],["nc","application/x-netcdf"],["ncm","application/vnd.nokia.configuration-message"],["ncx","application/x-dtbncx+xml"],["ngdat","application/vnd.nokia.n-gage.data"],["nif","image/x-niff"],["niff","image/x-niff"],["nix","application/x-mix-transfer"],["nlu","application/vnd.neurolanguage.nlu"],["nml","application/vnd.enliven"],["nnd","application/vnd.noblenet-directory"],["nns","application/vnd.noblenet-sealer"],["nnw","application/vnd.noblenet-web"],["npx","image/vnd.net-fpx"],["nsc","application/x-conference"],["nsf","application/vnd.lotus-notes"],["nvd","application/x-navidoc"],["nws","message/rfc822"],["o","application/octet-stream"],["oa2","application/vnd.fujitsu.oasys2"],["oa3","application/vnd.fujitsu.oasys3"],["oas","application/vnd.fujitsu.oasys"],["obd","application/x-msbinder"],["oda","application/oda"],["odb","application/vnd.oasis.opendocument.database"],["odc","application/vnd.oasis.opendocument.chart"],["odf","application/vnd.oasis.opendocument.formula"],["odft","application/vnd.oasis.opendocument.formula-template"],["odg","application/vnd.oasis.opendocument.graphics"],["odi","application/vnd.oasis.opendocument.image"],["odm","application/vnd.oasis.opendocument.text-master"],["odp","application/vnd.oasis.opendocument.presentation"],["ods","application/vnd.oasis.opendocument.spreadsheet"],["odt","application/vnd.oasis.opendocument.text"],["oga","audio/ogg"],["ogv","video/ogg"],["ogx","application/ogg"],["omc","application/x-omc"],["omcd","application/x-omcdatamaker"],["omcr","application/x-omcregerator"],["onetoc","application/onenote"],["opf","application/oebps-package+xml"],["org","application/vnd.lotus-organizer"],["osf","application/vnd.yamaha.openscoreformat"],["osfpvg","application/vnd.yamaha.openscoreformat.osfpvg+xml"],["otc","application/vnd.oasis.opendocument.chart-template"],["otf","application/x-font-otf"],["otg","application/vnd.oasis.opendocument.graphics-template"],["oth","application/vnd.oasis.opendocument.text-web"],["oti","application/vnd.oasis.opendocument.image-template"],["otp","application/vnd.oasis.opendocument.presentation-template"],["ots","application/vnd.oasis.opendocument.spreadsheet-template"],["ott","application/vnd.oasis.opendocument.text-template"],["oxt","application/vnd.openofficeorg.extension"],["p","text/x-pascal"],["p10",["application/pkcs10","application/x-pkcs10"]],["p12",["application/pkcs-12","application/x-pkcs12"]],["p7a","application/x-pkcs7-signature"],["p7b","application/x-pkcs7-certificates"],["p7c",["application/pkcs7-mime","application/x-pkcs7-mime"]],["p7m",["application/pkcs7-mime","application/x-pkcs7-mime"]],["p7r","application/x-pkcs7-certreqresp"],["p7s",["application/pkcs7-signature","application/x-pkcs7-signature"]],["p8","application/pkcs8"],["par","text/plain-bas"],["part","application/pro_eng"],["pas","text/pascal"],["paw","application/vnd.pawaafile"],["pbd","application/vnd.powerbuilder6"],["pbm","image/x-portable-bitmap"],["pcf","application/x-font-pcf"],["pcl",["application/vnd.hp-pcl","application/x-pcl"]],["pclxl","application/vnd.hp-pclxl"],["pct","image/x-pict"],["pcurl","application/vnd.curl.pcurl"],["pcx","image/x-pcx"],["pdb",["application/vnd.palm","chemical/x-pdb"]],["pdf","application/pdf"],["pfa","application/x-font-type1"],["pfr","application/font-tdpfr"],["pfunk",["audio/make","audio/make.my.funk"]],["pfx","application/x-pkcs12"],["pgm",["image/x-portable-graymap","image/x-portable-greymap"]],["pgn","application/x-chess-pgn"],["pgp","application/pgp-signature"],["pic",["image/pict","image/x-pict"]],["pict","image/pict"],["pkg","application/x-newton-compatible-pkg"],["pki","application/pkixcmp"],["pkipath","application/pkix-pkipath"],["pko",["application/ynd.ms-pkipko","application/vnd.ms-pki.pko"]],["pl",["text/plain","text/x-script.perl"]],["plb","application/vnd.3gpp.pic-bw-large"],["plc","application/vnd.mobius.plc"],["plf","application/vnd.pocketlearn"],["pls","application/pls+xml"],["plx","application/x-pixclscript"],["pm",["text/x-script.perl-module","image/x-xpixmap"]],["pm4","application/x-pagemaker"],["pm5","application/x-pagemaker"],["pma","application/x-perfmon"],["pmc","application/x-perfmon"],["pml",["application/vnd.ctc-posml","application/x-perfmon"]],["pmr","application/x-perfmon"],["pmw","application/x-perfmon"],["png","image/png"],["pnm",["application/x-portable-anymap","image/x-portable-anymap"]],["portpkg","application/vnd.macports.portpkg"],["pot",["application/vnd.ms-powerpoint","application/mspowerpoint"]],["potm","application/vnd.ms-powerpoint.template.macroenabled.12"],["potx","application/vnd.openxmlformats-officedocument.presentationml.template"],["pov","model/x-pov"],["ppa","application/vnd.ms-powerpoint"],["ppam","application/vnd.ms-powerpoint.addin.macroenabled.12"],["ppd","application/vnd.cups-ppd"],["ppm","image/x-portable-pixmap"],["pps",["application/vnd.ms-powerpoint","application/mspowerpoint"]],["ppsm","application/vnd.ms-powerpoint.slideshow.macroenabled.12"],["ppsx","application/vnd.openxmlformats-officedocument.presentationml.slideshow"],["ppt",["application/vnd.ms-powerpoint","application/mspowerpoint","application/powerpoint","application/x-mspowerpoint"]],["pptm","application/vnd.ms-powerpoint.presentation.macroenabled.12"],["pptx","application/vnd.openxmlformats-officedocument.presentationml.presentation"],["ppz","application/mspowerpoint"],["prc","application/x-mobipocket-ebook"],["pre",["application/vnd.lotus-freelance","application/x-freelance"]],["prf","application/pics-rules"],["prt","application/pro_eng"],["ps","application/postscript"],["psb","application/vnd.3gpp.pic-bw-small"],["psd",["application/octet-stream","image/vnd.adobe.photoshop"]],["psf","application/x-font-linux-psf"],["pskcxml","application/pskc+xml"],["ptid","application/vnd.pvi.ptid1"],["pub","application/x-mspublisher"],["pvb","application/vnd.3gpp.pic-bw-var"],["pvu","paleovu/x-pv"],["pwn","application/vnd.3m.post-it-notes"],["pwz","application/vnd.ms-powerpoint"],["py","text/x-script.phyton"],["pya","audio/vnd.ms-playready.media.pya"],["pyc","application/x-bytecode.python"],["pyv","video/vnd.ms-playready.media.pyv"],["qam","application/vnd.epson.quickanime"],["qbo","application/vnd.intu.qbo"],["qcp","audio/vnd.qcelp"],["qd3","x-world/x-3dmf"],["qd3d","x-world/x-3dmf"],["qfx","application/vnd.intu.qfx"],["qif","image/x-quicktime"],["qps","application/vnd.publishare-delta-tree"],["qt","video/quicktime"],["qtc","video/x-qtc"],["qti","image/x-quicktime"],["qtif","image/x-quicktime"],["qxd","application/vnd.quark.quarkxpress"],["ra",["audio/x-realaudio","audio/x-pn-realaudio","audio/x-pn-realaudio-plugin"]],["ram","audio/x-pn-realaudio"],["rar","application/x-rar-compressed"],["ras",["image/cmu-raster","application/x-cmu-raster","image/x-cmu-raster"]],["rast","image/cmu-raster"],["rcprofile","application/vnd.ipunplugged.rcprofile"],["rdf","application/rdf+xml"],["rdz","application/vnd.data-vision.rdz"],["rep","application/vnd.businessobjects"],["res","application/x-dtbresource+xml"],["rexx","text/x-script.rexx"],["rf","image/vnd.rn-realflash"],["rgb","image/x-rgb"],["rif","application/reginfo+xml"],["rip","audio/vnd.rip"],["rl","application/resource-lists+xml"],["rlc","image/vnd.fujixerox.edmics-rlc"],["rld","application/resource-lists-diff+xml"],["rm",["application/vnd.rn-realmedia","audio/x-pn-realaudio"]],["rmi","audio/mid"],["rmm","audio/x-pn-realaudio"],["rmp",["audio/x-pn-realaudio-plugin","audio/x-pn-realaudio"]],["rms","application/vnd.jcp.javame.midlet-rms"],["rnc","application/relax-ng-compact-syntax"],["rng",["application/ringing-tones","application/vnd.nokia.ringing-tone"]],["rnx","application/vnd.rn-realplayer"],["roff","application/x-troff"],["rp","image/vnd.rn-realpix"],["rp9","application/vnd.cloanto.rp9"],["rpm","audio/x-pn-realaudio-plugin"],["rpss","application/vnd.nokia.radio-presets"],["rpst","application/vnd.nokia.radio-preset"],["rq","application/sparql-query"],["rs","application/rls-services+xml"],["rsd","application/rsd+xml"],["rt",["text/richtext","text/vnd.rn-realtext"]],["rtf",["application/rtf","text/richtext","application/x-rtf"]],["rtx",["text/richtext","application/rtf"]],["rv","video/vnd.rn-realvideo"],["s","text/x-asm"],["s3m","audio/s3m"],["saf","application/vnd.yamaha.smaf-audio"],["saveme","application/octet-stream"],["sbk","application/x-tbook"],["sbml","application/sbml+xml"],["sc","application/vnd.ibm.secure-container"],["scd","application/x-msschedule"],["scm",["application/vnd.lotus-screencam","video/x-scm","text/x-script.guile","application/x-lotusscreencam","text/x-script.scheme"]],["scq","application/scvp-cv-request"],["scs","application/scvp-cv-response"],["sct","text/scriptlet"],["scurl","text/vnd.curl.scurl"],["sda","application/vnd.stardivision.draw"],["sdc","application/vnd.stardivision.calc"],["sdd","application/vnd.stardivision.impress"],["sdkm","application/vnd.solent.sdkm+xml"],["sdml","text/plain"],["sdp",["application/sdp","application/x-sdp"]],["sdr","application/sounder"],["sdw","application/vnd.stardivision.writer"],["sea",["application/sea","application/x-sea"]],["see","application/vnd.seemail"],["seed","application/vnd.fdsn.seed"],["sema","application/vnd.sema"],["semd","application/vnd.semd"],["semf","application/vnd.semf"],["ser","application/java-serialized-object"],["set","application/set"],["setpay","application/set-payment-initiation"],["setreg","application/set-registration-initiation"],["sfd-hdstx","application/vnd.hydrostatix.sof-data"],["sfs","application/vnd.spotfire.sfs"],["sgl","application/vnd.stardivision.writer-global"],["sgm",["text/sgml","text/x-sgml"]],["sgml",["text/sgml","text/x-sgml"]],["sh",["application/x-shar","application/x-bsh","application/x-sh","text/x-script.sh"]],["shar",["application/x-bsh","application/x-shar"]],["shf","application/shf+xml"],["shtml",["text/html","text/x-server-parsed-html"]],["sid","audio/x-psid"],["sis","application/vnd.symbian.install"],["sit",["application/x-stuffit","application/x-sit"]],["sitx","application/x-stuffitx"],["skd","application/x-koan"],["skm","application/x-koan"],["skp",["application/vnd.koan","application/x-koan"]],["skt","application/x-koan"],["sl","application/x-seelogo"],["sldm","application/vnd.ms-powerpoint.slide.macroenabled.12"],["sldx","application/vnd.openxmlformats-officedocument.presentationml.slide"],["slt","application/vnd.epson.salt"],["sm","application/vnd.stepmania.stepchart"],["smf","application/vnd.stardivision.math"],["smi",["application/smil","application/smil+xml"]],["smil","application/smil"],["snd",["audio/basic","audio/x-adpcm"]],["snf","application/x-font-snf"],["sol","application/solids"],["spc",["text/x-speech","application/x-pkcs7-certificates"]],["spf","application/vnd.yamaha.smaf-phrase"],["spl",["application/futuresplash","application/x-futuresplash"]],["spot","text/vnd.in3d.spot"],["spp","application/scvp-vp-response"],["spq","application/scvp-vp-request"],["spr","application/x-sprite"],["sprite","application/x-sprite"],["src","application/x-wais-source"],["sru","application/sru+xml"],["srx","application/sparql-results+xml"],["sse","application/vnd.kodak-descriptor"],["ssf","application/vnd.epson.ssf"],["ssi","text/x-server-parsed-html"],["ssm","application/streamingmedia"],["ssml","application/ssml+xml"],["sst",["application/vnd.ms-pkicertstore","application/vnd.ms-pki.certstore"]],["st","application/vnd.sailingtracker.track"],["stc","application/vnd.sun.xml.calc.template"],["std","application/vnd.sun.xml.draw.template"],["step","application/step"],["stf","application/vnd.wt.stf"],["sti","application/vnd.sun.xml.impress.template"],["stk","application/hyperstudio"],["stl",["application/vnd.ms-pkistl","application/sla","application/vnd.ms-pki.stl","application/x-navistyle"]],["stm","text/html"],["stp","application/step"],["str","application/vnd.pg.format"],["stw","application/vnd.sun.xml.writer.template"],["sub","image/vnd.dvb.subtitle"],["sus","application/vnd.sus-calendar"],["sv4cpio","application/x-sv4cpio"],["sv4crc","application/x-sv4crc"],["svc","application/vnd.dvb.service"],["svd","application/vnd.svd"],["svf",["image/vnd.dwg","image/x-dwg"]],["svg","image/svg+xml"],["svr",["x-world/x-svr","application/x-world"]],["swf","application/x-shockwave-flash"],["swi","application/vnd.aristanetworks.swi"],["sxc","application/vnd.sun.xml.calc"],["sxd","application/vnd.sun.xml.draw"],["sxg","application/vnd.sun.xml.writer.global"],["sxi","application/vnd.sun.xml.impress"],["sxm","application/vnd.sun.xml.math"],["sxw","application/vnd.sun.xml.writer"],["t",["text/troff","application/x-troff"]],["talk","text/x-speech"],["tao","application/vnd.tao.intent-module-archive"],["tar","application/x-tar"],["tbk",["application/toolbook","application/x-tbook"]],["tcap","application/vnd.3gpp2.tcap"],["tcl",["text/x-script.tcl","application/x-tcl"]],["tcsh","text/x-script.tcsh"],["teacher","application/vnd.smart.teacher"],["tei","application/tei+xml"],["tex","application/x-tex"],["texi","application/x-texinfo"],["texinfo","application/x-texinfo"],["text",["application/plain","text/plain"]],["tfi","application/thraud+xml"],["tfm","application/x-tex-tfm"],["tgz",["application/gnutar","application/x-compressed"]],["thmx","application/vnd.ms-officetheme"],["tif",["image/tiff","image/x-tiff"]],["tiff",["image/tiff","image/x-tiff"]],["tmo","application/vnd.tmobile-livetv"],["torrent","application/x-bittorrent"],["tpl","application/vnd.groove-tool-template"],["tpt","application/vnd.trid.tpt"],["tr","application/x-troff"],["tra","application/vnd.trueapp"],["trm","application/x-msterminal"],["tsd","application/timestamped-data"],["tsi","audio/tsp-audio"],["tsp",["application/dsptype","audio/tsplayer"]],["tsv","text/tab-separated-values"],["ttf","application/x-font-ttf"],["ttl","text/turtle"],["turbot","image/florian"],["twd","application/vnd.simtech-mindmapper"],["txd","application/vnd.genomatix.tuxedo"],["txf","application/vnd.mobius.txf"],["txt","text/plain"],["ufd","application/vnd.ufdl"],["uil","text/x-uil"],["uls","text/iuls"],["umj","application/vnd.umajin"],["uni","text/uri-list"],["unis","text/uri-list"],["unityweb","application/vnd.unity"],["unv","application/i-deas"],["uoml","application/vnd.uoml+xml"],["uri","text/uri-list"],["uris","text/uri-list"],["ustar",["application/x-ustar","multipart/x-ustar"]],["utz","application/vnd.uiq.theme"],["uu",["application/octet-stream","text/x-uuencode"]],["uue","text/x-uuencode"],["uva","audio/vnd.dece.audio"],["uvh","video/vnd.dece.hd"],["uvi","image/vnd.dece.graphic"],["uvm","video/vnd.dece.mobile"],["uvp","video/vnd.dece.pd"],["uvs","video/vnd.dece.sd"],["uvu","video/vnd.uvvu.mp4"],["uvv","video/vnd.dece.video"],["vcd","application/x-cdlink"],["vcf","text/x-vcard"],["vcg","application/vnd.groove-vcard"],["vcs","text/x-vcalendar"],["vcx","application/vnd.vcx"],["vda","application/vda"],["vdo","video/vdo"],["vew","application/groupwise"],["vis","application/vnd.visionary"],["viv",["video/vivo","video/vnd.vivo"]],["vivo",["video/vivo","video/vnd.vivo"]],["vmd","application/vocaltec-media-desc"],["vmf","application/vocaltec-media-file"],["voc",["audio/voc","audio/x-voc"]],["vos","video/vosaic"],["vox","audio/voxware"],["vqe","audio/x-twinvq-plugin"],["vqf","audio/x-twinvq"],["vql","audio/x-twinvq-plugin"],["vrml",["model/vrml","x-world/x-vrml","application/x-vrml"]],["vrt","x-world/x-vrt"],["vsd",["application/vnd.visio","application/x-visio"]],["vsf","application/vnd.vsf"],["vst","application/x-visio"],["vsw","application/x-visio"],["vtu","model/vnd.vtu"],["vxml","application/voicexml+xml"],["w60","application/wordperfect6.0"],["w61","application/wordperfect6.1"],["w6w","application/msword"],["wad","application/x-doom"],["wav",["audio/wav","audio/x-wav"]],["wax","audio/x-ms-wax"],["wb1","application/x-qpro"],["wbmp","image/vnd.wap.wbmp"],["wbs","application/vnd.criticaltools.wbs+xml"],["wbxml","application/vnd.wap.wbxml"],["wcm","application/vnd.ms-works"],["wdb","application/vnd.ms-works"],["web","application/vnd.xara"],["weba","audio/webm"],["webm","video/webm"],["webp","image/webp"],["wg","application/vnd.pmi.widget"],["wgt","application/widget"],["wiz","application/msword"],["wk1","application/x-123"],["wks","application/vnd.ms-works"],["wm","video/x-ms-wm"],["wma","audio/x-ms-wma"],["wmd","application/x-ms-wmd"],["wmf",["windows/metafile","application/x-msmetafile"]],["wml","text/vnd.wap.wml"],["wmlc","application/vnd.wap.wmlc"],["wmls","text/vnd.wap.wmlscript"],["wmlsc","application/vnd.wap.wmlscriptc"],["wmv","video/x-ms-wmv"],["wmx","video/x-ms-wmx"],["wmz","application/x-ms-wmz"],["woff","application/x-font-woff"],["word","application/msword"],["wp","application/wordperfect"],["wp5",["application/wordperfect","application/wordperfect6.0"]],["wp6","application/wordperfect"],["wpd",["application/wordperfect","application/vnd.wordperfect","application/x-wpwin"]],["wpl","application/vnd.ms-wpl"],["wps","application/vnd.ms-works"],["wq1","application/x-lotus"],["wqd","application/vnd.wqd"],["wri",["application/mswrite","application/x-wri","application/x-mswrite"]],["wrl",["model/vrml","x-world/x-vrml","application/x-world"]],["wrz",["model/vrml","x-world/x-vrml"]],["wsc","text/scriplet"],["wsdl","application/wsdl+xml"],["wspolicy","application/wspolicy+xml"],["wsrc","application/x-wais-source"],["wtb","application/vnd.webturbo"],["wtk","application/x-wintalk"],["wvx","video/x-ms-wvx"],["x-png","image/png"],["x3d","application/vnd.hzn-3d-crossword"],["xaf","x-world/x-vrml"],["xap","application/x-silverlight-app"],["xar","application/vnd.xara"],["xbap","application/x-ms-xbap"],["xbd","application/vnd.fujixerox.docuworks.binder"],["xbm",["image/xbm","image/x-xbm","image/x-xbitmap"]],["xdf","application/xcap-diff+xml"],["xdm","application/vnd.syncml.dm+xml"],["xdp","application/vnd.adobe.xdp+xml"],["xdr","video/x-amt-demorun"],["xdssc","application/dssc+xml"],["xdw","application/vnd.fujixerox.docuworks"],["xenc","application/xenc+xml"],["xer","application/patch-ops-error+xml"],["xfdf","application/vnd.adobe.xfdf"],["xfdl","application/vnd.xfdl"],["xgz","xgl/drawing"],["xhtml","application/xhtml+xml"],["xif","image/vnd.xiff"],["xl","application/excel"],["xla",["application/vnd.ms-excel","application/excel","application/x-msexcel","application/x-excel"]],["xlam","application/vnd.ms-excel.addin.macroenabled.12"],["xlb",["application/excel","application/vnd.ms-excel","application/x-excel"]],["xlc",["application/vnd.ms-excel","application/excel","application/x-excel"]],["xld",["application/excel","application/x-excel"]],["xlk",["application/excel","application/x-excel"]],["xll",["application/excel","application/vnd.ms-excel","application/x-excel"]],["xlm",["application/vnd.ms-excel","application/excel","application/x-excel"]],["xls",["application/vnd.ms-excel","application/excel","application/x-msexcel","application/x-excel"]],["xlsb","application/vnd.ms-excel.sheet.binary.macroenabled.12"],["xlsm","application/vnd.ms-excel.sheet.macroenabled.12"],["xlsx","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"],["xlt",["application/vnd.ms-excel","application/excel","application/x-excel"]],["xltm","application/vnd.ms-excel.template.macroenabled.12"],["xltx","application/vnd.openxmlformats-officedocument.spreadsheetml.template"],["xlv",["application/excel","application/x-excel"]],["xlw",["application/vnd.ms-excel","application/excel","application/x-msexcel","application/x-excel"]],["xm","audio/xm"],["xml",["application/xml","text/xml","application/atom+xml","application/rss+xml"]],["xmz","xgl/movie"],["xo","application/vnd.olpc-sugar"],["xof","x-world/x-vrml"],["xop","application/xop+xml"],["xpi","application/x-xpinstall"],["xpix","application/x-vnd.ls-xpix"],["xpm",["image/xpm","image/x-xpixmap"]],["xpr","application/vnd.is-xpr"],["xps","application/vnd.ms-xpsdocument"],["xpw","application/vnd.intercon.formnet"],["xslt","application/xslt+xml"],["xsm","application/vnd.syncml+xml"],["xspf","application/xspf+xml"],["xsr","video/x-amt-showrun"],["xul","application/vnd.mozilla.xul+xml"],["xwd",["image/x-xwd","image/x-xwindowdump"]],["xyz",["chemical/x-xyz","chemical/x-pdb"]],["yang","application/yang"],["yin","application/yin+xml"],["z",["application/x-compressed","application/x-compress"]],["zaz","application/vnd.zzazz.deck+xml"],["zip",["application/zip","multipart/x-zip","application/x-zip-compressed","application/x-compressed"]],["zir","application/vnd.zul"],["zmm","application/vnd.handheld-entertainment+xml"],["zoo","application/octet-stream"],["zsh","text/x-script.zsh"]]);fY.exports={detectMimeType(_){if(!_)return"application/octet-stream";let E=Jj.parse(_),R=(E.ext.substr(1)||E.name||"").split("?").shift().trim().toLowerCase(),N="application/octet-stream";if(qY.has(R))N=qY.get(R);if(Array.isArray(N))return N[0];return N},detectExtension(_){if(!_)return"bin";let E=(_||"").toLowerCase().trim().split("/"),R=E.shift().trim(),N=E.join("/").trim();if(xY.has(R+"/"+N)){let A=xY.get(R+"/"+N);if(Array.isArray(A))return A[0];return A}switch(R){case"text":return"txt";default:return"bin"}}}});var L2=j((xb,gY)=>{var $j=/^xn--/,Zj=/[^\0-\x7F]/,wj=/[\x2E\u3002\uFF0E\uFF61]/g,Qj={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},wN=Math.floor,I2=String.fromCharCode;function J1(_){throw new RangeError(Qj[_])}function zj(_,E){let R=[],N=_.length;while(N--)R[N]=E(_[N]);return R}function vY(_,E){let R=_.split("@"),N="";if(R.length>1)N=R[0]+"@",_=R[1];_=_.replace(wj,".");let A=_.split("."),L=zj(A,E).join(".");return N+L}function pY(_){let E=[],R=0,N=_.length;while(R=55296&&A<=56319&&RString.fromCodePoint(..._),qj=function(_){if(_>=48&&_<58)return 26+(_-48);if(_>=65&&_<91)return _-65;if(_>=97&&_<123)return _-97;return 36},jY=function(_,E){return _+22+75*(_<26)-((E!=0)<<5)},hY=function(_,E,R){let N=0;_=R?wN(_/700):_>>1,_+=wN(_/E);for(;_>455;N+=36)_=wN(_/35);return wN(N+36*_/(_+38))},kY=function(_){let E=[],R=_.length,N=0,A=128,L=72,U=_.lastIndexOf("-");if(U<0)U=0;for(let G=0;G=128)J1("not-basic");E.push(_.charCodeAt(G))}for(let G=U>0?U+1:0;G=R)J1("invalid-input");let H=qj(_.charCodeAt(G++));if(H>=36)J1("invalid-input");if(H>wN((2147483647-N)/Y))J1("overflow");N+=H*Y;let X=M<=L?1:M>=L+26?26:M-L;if(HwN(2147483647/$))J1("overflow");Y*=$}let C=E.length+1;if(L=hY(N-S,C,S==0),wN(N/C)>2147483647-A)J1("overflow");A+=wN(N/C),N%=C,E.splice(N++,0,A)}return String.fromCodePoint(...E)},mY=function(_){let E=[];_=pY(_);let R=_.length,N=128,A=0,L=72;for(let S of _)if(S<128)E.push(I2(S));let U=E.length,G=U;if(U)E.push("-");while(G=N&&YwN((2147483647-A)/C))J1("overflow");A+=(S-N)*C,N=S;for(let Y of _){if(Y2147483647)J1("overflow");if(Y===N){let M=A;for(let H=36;;H+=36){let X=H<=L?1:H>=L+26?26:H-L;if(M{var pj=require("stream").Transform;function U2(_){if(typeof _==="string")_=Buffer.from(_,"utf-8");return _.toString("base64")}function G2(_,E){if(_=(_||"").toString(),E=E||76,_.length<=E)return _;let R=[],N=0,A=E*1024;while(N<_.length){let L=_.substr(N,A).replace(new RegExp(".{"+E+"}","g"),"$&\r\n").trim();R.push(L),N+=A}return R.join("\r\n").trim()}class yY extends pj{constructor(_){super();if(this.options=_||{},this.options.lineLength!==!1)this.options.lineLength=this.options.lineLength||76;this._curLine="",this._remainingBytes=!1,this.inputBytes=0,this.outputBytes=0}_transform(_,E,R){if(E!=="buffer")_=Buffer.from(_,E);if(!_||!_.length)return setImmediate(R);if(this.inputBytes+=_.length,this._remainingBytes&&this._remainingBytes.length)_=Buffer.concat([this._remainingBytes,_],this._remainingBytes.length+_.length),this._remainingBytes=!1;if(_.length%3)this._remainingBytes=_.slice(_.length-_.length%3),_=_.slice(0,_.length-_.length%3);else this._remainingBytes=!1;let N=this._curLine+U2(_);if(this.options.lineLength){N=G2(N,this.options.lineLength);let A=N.lastIndexOf("\n");if(A<0)this._curLine=N,N="";else if(A===N.length-1)this._curLine="";else this._curLine=N.substr(A+1),N=N.substr(0,A+1)}if(N)this.outputBytes+=N.length,this.push(Buffer.from(N,"ascii"));setImmediate(R)}_flush(_){if(this._remainingBytes&&this._remainingBytes.length)this._curLine+=U2(this._remainingBytes);if(this._curLine)this._curLine=G2(this._curLine,this.options.lineLength),this.outputBytes+=this._curLine.length,this.push(this._curLine,"ascii"),this._curLine="";_()}}bY.exports={encode:U2,wrap:G2,Encoder:yY}});var C2=j((fb,cY)=>{var hj=require("stream").Transform;function S2(_){if(typeof _==="string")_=Buffer.from(_,"utf-8");let E=[[9],[10],[13],[32,60],[62,126]],R="",N;for(let A=0,L=_.length;AE-G&&(A=U.substr(-G).match(/[ \t.,!?][^ \t.,!?]*$/)))U=U.substr(0,U.length-(A[0].length-1));else if(U.match(/[=][\da-f]{0,2}$/i)){if(A=U.match(/[=][\da-f]{0,1}$/i))U=U.substr(0,U.length-A[0].length);while(U.length>3&&U.length=192)break}}if(R+U.length=0;R--){if(!E[R].length)continue;if(E[R].length===1&&_===E[R][0])return!0;if(E[R].length===2&&_>=E[R][0]&&_<=E[R][1])return!0}return!1}class uY extends hj{constructor(_){super();if(this.options=_||{},this.options.lineLength!==!1)this.options.lineLength=this.options.lineLength||76;this._curLine="",this.inputBytes=0,this.outputBytes=0}_transform(_,E,R){let N;if(E!=="buffer")_=Buffer.from(_,E);if(!_||!_.length)return R();if(this.inputBytes+=_.length,this.options.lineLength){if(N=this._curLine+S2(_),N=iY(N,this.options.lineLength),N=N.replace(/(^|\n)([^\n]*)$/,(A,L,U)=>{return this._curLine=U,L}),N)this.outputBytes+=N.length,this.push(N)}else N=S2(_),this.outputBytes+=N.length,this.push(N,"ascii");R()}_flush(_){if(this._curLine)this.outputBytes+=this._curLine.length,this.push(this._curLine,"ascii");_()}}cY.exports={encode:S2,wrap:iY,Encoder:uY}});var SA=j((jb,lY)=>{var DA=D2(),mj=C2(),dY=A2();lY.exports={isPlainText(_,E){if(typeof _!=="string"||(E?/[\x00-\x08\x0b\x0c\x0e-\x1f"\u0080-\uFFFF]/:/[\x00-\x08\x0b\x0c\x0e-\x1f\u0080-\uFFFF]/).test(_))return!1;else return!0},hasLongerLines(_,E){if(_.length>131072)return!0;return new RegExp("^.{"+(E+1)+",}","m").test(_)},encodeWord(_,E,R){E=(E||"Q").toString().toUpperCase().trim().charAt(0),R=R||0;let N,A="UTF-8";if(R&&R>7+A.length)R-=7+A.length;if(E==="Q")N=mj.encode(_).replace(/[^a-z0-9!*+\-/=]/gi,(L)=>{let U=L.charCodeAt(0).toString(16).toUpperCase();if(L===" ")return"_";else return"="+(U.length===1?"0"+U:U)});else if(E==="B")N=typeof _==="string"?_:DA.encode(_),R=R?Math.max(3,(R-R%4)/4*3):0;if(R&&(E!=="B"?N:DA.encode(_)).length>R)if(E==="Q")N=this.splitMimeEncodedString(N,R).join("?= =?"+A+"?"+E+"?");else{let L=[],U="";for(let G=0,S=N.length;G1)N=L.join("?= =?"+A+"?"+E+"?");else N=L.join("")}else if(E==="B")N=DA.encode(_);return"=?"+A+"?"+E+"?"+N+(N.substr(-2)==="?="?"":"?=")},encodeWords(_,E,R,N){R=R||0;let A,L=_.match(/(?:^|\s)([^\s]*["\u0080-\uFFFF])/);if(!L)return _;if(N)return this.encodeWord(_,E,R);let U=_.match(/(["\u0080-\uFFFF][^\s]*)[^"\u0080-\uFFFF]*$/);if(!U)return _;let G=L.index+(L[0].match(/[^\s]/)||{index:0}).index,S=U.index+(U[1]||"").length;return A=(G?_.substr(0,G):"")+this.encodeWord(_.substring(G,S),E||"Q",R)+(S<_.length?_.substr(S):""),A},buildHeaderValue(_){let E=[];return Object.keys(_.params||{}).forEach((R)=>{let N=_.params[R];if(!this.isPlainText(N,!0)||N.length>=75)this.buildHeaderParam(R,N,50).forEach((A)=>{if(!/[\s"\\;:/=(),<>@[\]?]|^[-']|'$/.test(A.value)||A.key.substr(-1)==="*")E.push(A.key+"="+A.value);else E.push(A.key+"="+JSON.stringify(A.value))});else if(/[\s'"\\;:/=(),<>@[\]?]|^-/.test(N))E.push(R+"="+JSON.stringify(N));else E.push(R+"="+N)}),_.value+(E.length?"; "+E.join("; "):"")},buildHeaderParam(_,E,R){let N=[],A=typeof E==="string"?E:(E||"").toString(),L,U,G,S,C=0,Y,M;if(R=R||50,this.isPlainText(E,!0)){if(A.length<=R)return[{key:_,value:A}];if(A=A.replace(new RegExp(".{"+R+"}","g"),(H)=>{return N.push({line:H}),""}),A)N.push({line:A})}else{if(/[\uD800-\uDBFF]/.test(A)){L=[];for(Y=0,M=A.length;Y=55296&&G<=56319&&Y=R)N.push({line:S,encoded:H}),S="",C=Y-1;else{H=!0,Y=C,S="";continue}if((S+U).length>=R)if(N.push({line:S,encoded:H}),S=U=A[Y]===" "?" ":this.safeEncodeURIComponent(A[Y]),U===A[Y])H=!1,C=Y-1;else H=!0;else S+=U}if(S)N.push({line:S,encoded:H})}return N.map((H,X)=>({key:_+"*"+X+(H.encoded?"*":""),value:H.line}))},parseHeaderValue(_){let E={value:!1,params:{}},R=!1,N="",A="value",L=!1,U=!1,G;for(let S=0,C=_.length;S{let C,Y,M,H;if(M=S.match(/(\*(\d+)|\*(\d+)\*|\*)$/)){if(C=S.substr(0,M.index),Y=Number(M[2]||M[3])||0,!E.params[C]||typeof E.params[C]!=="object")E.params[C]={charset:!1,values:[]};if(H=E.params[S],Y===0&&M[0].substr(-1)==="*"&&(M=H.match(/^([^']*)'[^']*'(.*)$/)))E.params[C].charset=M[1]||"iso-8859-1",H=M[2];E.params[C].values[Y]=H,delete E.params[S]}}),Object.keys(E.params).forEach((S)=>{let C;if(E.params[S]&&Array.isArray(E.params[S].values))if(C=E.params[S].values.map((Y)=>Y||"").join(""),E.params[S].charset)E.params[S]="=?"+E.params[S].charset+"?Q?"+C.replace(/[=?_\s]/g,(Y)=>{let M=Y.charCodeAt(0).toString(16);if(Y===" ")return"_";else return"%"+(M.length<2?"0":"")+M}).replace(/%/g,"=")+"?=";else E.params[S]=C}),E},detectExtension:(_)=>dY.detectExtension(_),detectMimeType:(_)=>dY.detectMimeType(_),foldLines(_,E,R){_=(_||"").toString(),E=E||76;let N=0,A=_.length,L="",U,G;while(N{let R,N,A,L,U=[];E=Math.max(E||0,12);while(_.length){if(R=_.substr(0,E),N=R.match(/[=][0-9A-F]?$/i))R=R.substr(0,N.index);L=!1;while(!L)if(L=!0,N=_.substr(R.length).match(/^[=]([0-9A-F]{2})/i)){if(A=parseInt(N[1],16),A<194&&A>127)R=R.substr(0,R.length-3),L=!1}if(R.length)U.push(R);_=_.substr(R.length)}return U},encodeURICharComponent:(_)=>{let E="",R=_.charCodeAt(0).toString(16).toUpperCase();if(R.length%2)R="0"+R;if(R.length>2)for(let N=0,A=R.length/2;N@,;:\\"[\]?=\u007F-\uFFFF]+/g,"")}return _.replace(/[\x00-\x1F *'()<>@,;:\\"[\]?=\u007F-\uFFFF]/g,(E)=>this.encodeURICharComponent(E))}}});var tY=j((vb,sY)=>{function gj(_){let E,R=!1,N="text",A,L=[],U={address:[],comment:[],group:[],text:[]},G,S;for(G=0,S=_.length;G=0;G--)if(U.text[G].match(/^[^@\s]+@[^@\s]+$/)){U.address=U.text.splice(G,1);break}let C=function(Y){if(!U.address.length)return U.address=[Y.trim()]," ";else return Y};if(!U.address.length){for(G=U.text.length-1;G>=0;G--)if(U.text[G]=U.text[G].replace(/\s*\b[^@\s]+@[^\s]+\b\s*/,C).trim(),U.address.length)break}}if(!U.text.length&&U.comment.length)U.text=U.comment,U.comment=[];if(U.address.length>1)U.text=U.text.concat(U.address.splice(1));if(U.text=U.text.join(" "),U.address=U.address.join(" "),!U.address&&R)return[];else{if(A={address:U.address||U.text||"",name:U.text||U.address||""},A.address===A.name)if((A.address||"").match(/@/))A.name="";else A.address="";L.push(A)}}return L}class nY{constructor(_){this.str=(_||"").toString(),this.operatorCurrent="",this.operatorExpecting="",this.node=null,this.escaped=!1,this.list=[],this.operators={'"':'"',"(":")","<":">",",":"",":":";",";":""}}tokenize(){let _,E=[];for(let R=0,N=this.str.length;R{if(R.value=(R.value||"").toString().trim(),R.value)E.push(R)}),E}checkChar(_){if(this.escaped);else if(_===this.operatorExpecting){this.node={type:"operator",value:_},this.list.push(this.node),this.node=null,this.operatorExpecting="",this.escaped=!1;return}else if(!this.operatorExpecting&&_ in this.operators){this.node={type:"operator",value:_},this.list.push(this.node),this.node=null,this.operatorExpecting=this.operators[_],this.escaped=!1;return}else if(['"',"'"].includes(this.operatorExpecting)&&_==="\\"){this.escaped=!0;return}if(!this.node)this.node={type:"text",value:""},this.list.push(this.node);if(_==="\n")_=" ";if(_.charCodeAt(0)>=33||[" ","\t"].includes(_))this.node.value+=_;this.escaped=!1}}function oY(_,E){E=E||{};let N=new nY(_).tokenize(),A=[],L=[],U=[];if(N.forEach((G)=>{if(G.type==="operator"&&(G.value===","||G.value===";")){if(L.length)A.push(L);L=[]}else L.push(G)}),L.length)A.push(L);if(A.forEach((G)=>{if(G=gj(G),G.length)U=U.concat(G)}),E.flatten){let G=[],S=(C)=>{C.forEach((Y)=>{if(Y.group)return S(Y.group);else G.push(Y)})};return S(U),G}return U}sY.exports=oY});var eY=j((pb,aY)=>{var yj=require("stream").Transform;class rY extends yj{constructor(){super();this.lastByte=!1}_transform(_,E,R){if(_.length)this.lastByte=_[_.length-1];this.push(_),R()}_flush(_){if(this.lastByte===10)return _();if(this.lastByte===13)return this.push(Buffer.from("\n")),_();return this.push(Buffer.from("\r\n")),_()}}aY.exports=rY});var P2=j((hb,EH)=>{var bj=require("stream"),ij=bj.Transform;class _H extends ij{constructor(_){super(_);this.options=_||{},this.lastByte=!1}_transform(_,E,R){let N,A=0;for(let L=0,U=_.length;LA)N=_.slice(A,L),this.push(N);this.push(Buffer.from("\r\n")),A=L+1}}if(A&&A<_.length)N=_.slice(A),this.push(N);else if(!A)this.push(_);this.lastByte=_[_.length-1],R()}}EH.exports=_H});var TH=j((kb,NH)=>{var uj=require("stream"),cj=uj.Transform;class RH extends cj{constructor(_){super(_);this.options=_||{}}_transform(_,E,R){let N,A=0;for(let L=0,U=_.length;L{var Y2=require("crypto"),dj=require("fs"),lj=L2(),CA=require("stream").PassThrough,nj=IR(),UN=SA(),oj=C2(),sj=D2(),tj=tY(),rj=UA(),aj=eY(),ej=P2(),_v=TH();class H2{constructor(_,E){if(this.nodeCounter=0,E=E||{},this.baseBoundary=E.baseBoundary||Y2.randomBytes(8).toString("hex"),this.boundaryPrefix=E.boundaryPrefix||"--_NmP",this.disableFileAccess=!!E.disableFileAccess,this.disableUrlAccess=!!E.disableUrlAccess,this.normalizeHeaderKey=E.normalizeHeaderKey,this.date=new Date,this.rootNode=E.rootNode||this,this.keepBcc=!!E.keepBcc,E.filename){if(this.filename=E.filename,!_)_=UN.detectMimeType(this.filename.split(".").pop())}if(this.textEncoding=(E.textEncoding||"").toString().trim().charAt(0).toUpperCase(),this.parentNode=E.parentNode,this.hostname=E.hostname,this.newline=E.newline,this.childNodes=[],this._nodeId=++this.rootNode.nodeCounter,this._headers=[],this._isPlainText=!1,this._hasLongLines=!1,this._envelope=!1,this._raw=!1,this._transforms=[],this._processFuncs=[],_)this.setHeader("Content-Type",_)}createChild(_,E){if(!E&&typeof _==="object")E=_,_=void 0;let R=new H2(_,E);return this.appendChild(R),R}appendChild(_){if(_.rootNode!==this.rootNode)_.rootNode=this.rootNode,_._nodeId=++this.rootNode.nodeCounter;return _.parentNode=this,this.childNodes.push(_),_}replace(_){if(_===this)return this;return this.parentNode.childNodes.forEach((E,R)=>{if(E===this)_.rootNode=this.rootNode,_.parentNode=this.parentNode,_._nodeId=this._nodeId,this.rootNode=this,this.parentNode=void 0,_.parentNode.childNodes[R]=_}),_}remove(){if(!this.parentNode)return this;for(let _=this.parentNode.childNodes.length-1;_>=0;_--)if(this.parentNode.childNodes[_]===this)return this.parentNode.childNodes.splice(_,1),this.parentNode=void 0,this.rootNode=this,this}setHeader(_,E){let R=!1,N;if(!E&&_&&typeof _==="object"){if(_.key&&"value"in _)this.setHeader(_.key,_.value);else if(Array.isArray(_))_.forEach((A)=>{this.setHeader(A.key,A.value)});else Object.keys(_).forEach((A)=>{this.setHeader(A,_[A])});return this}_=this._normalizeHeaderKey(_),N={key:_,value:E};for(let A=0,L=this._headers.length;A{this.addHeader(R.key,R.value)});else Object.keys(_).forEach((R)=>{this.addHeader(R,_[R])});return this}else if(Array.isArray(E))return E.forEach((R)=>{this.addHeader(_,R)}),this;return this._headers.push({key:this._normalizeHeaderKey(_),value:E}),this}getHeader(_){_=this._normalizeHeaderKey(_);for(let E=0,R=this._headers.length;E{this.content.removeListener("error",this._contentErrorHandler),this.content=E},this.content.once("error",this._contentErrorHandler);else if(typeof this.content==="string"){if(this._isPlainText=UN.isPlainText(this.content),this._isPlainText&&UN.hasLongerLines(this.content,76))this._hasLongLines=!0}return this}build(_){let E;if(!_)E=new Promise((U,G)=>{_=nj.callbackPromise(U,G)});let R=this.createReadStream(),N=[],A=0,L=!1;return R.on("readable",()=>{let U;while((U=R.read())!==null)N.push(U),A+=U.length}),R.once("error",(U)=>{if(L)return;return L=!0,_(U)}),R.once("end",(U)=>{if(L)return;if(L=!0,U&&U.length)N.push(U),A+=U.length;return _(null,Buffer.concat(N,A))}),E}getTransferEncoding(){let _=!1,E=(this.getHeader("Content-Type")||"").toString().toLowerCase().trim();if(this.content){if(_=(this.getHeader("Content-Transfer-Encoding")||"").toString().toLowerCase().trim(),!_||!["base64","quoted-printable"].includes(_)){if(/^text\//i.test(E))if(this._isPlainText&&!this._hasLongLines)_="7bit";else if(typeof this.content==="string"||this.content instanceof Buffer)_=this._getTextEncoding(this.content)==="Q"?"quoted-printable":"base64";else _=this.textEncoding==="B"?"base64":"quoted-printable";else if(!/^(multipart|message)\//i.test(E))_=_||"base64"}}return _}buildHeaders(){let _=this.getTransferEncoding(),E=[];if(_)this.setHeader("Content-Transfer-Encoding",_);if(this.filename&&!this.getHeader("Content-Disposition"))this.setHeader("Content-Disposition","attachment");if(this.rootNode===this){if(!this.getHeader("Date"))this.setHeader("Date",this.date.toUTCString().replace(/GMT/,"+0000"));if(this.messageId(),!this.getHeader("MIME-Version"))this.setHeader("MIME-Version","1.0");for(let R=this._headers.length-2;R>=0;R--){let N=this._headers[R];if(N.key==="Content-Type")this._headers.splice(R,1),this._headers.push(N)}}return this._headers.forEach((R)=>{let{key:N,value:A}=R,L,U,G={};if(A&&typeof A==="object"&&!["From","Sender","To","Cc","Bcc","Reply-To","Date","References"].includes(N)){if(Object.keys(A).forEach((C)=>{if(C!=="value")G[C]=A[C]}),A=(A.value||"").toString(),!A.trim())return}if(G.prepared){if(G.foldLines)E.push(UN.foldLines(N+": "+A));else E.push(N+": "+A);return}switch(R.key){case"Content-Disposition":if(L=UN.parseHeaderValue(A),this.filename)L.params.filename=this.filename;A=UN.buildHeaderValue(L);break;case"Content-Type":if(L=UN.parseHeaderValue(A),this._handleContentType(L),L.value.match(/^text\/plain\b/)&&typeof this.content==="string"&&/[\u0080-\uFFFF]/.test(this.content))L.params.charset="utf-8";if(A=UN.buildHeaderValue(L),this.filename){if(U=this._encodeWords(this.filename),U!==this.filename||/[\s'"\\;:/=(),<>@[\]?]|^-/.test(U))U='"'+U+'"';A+="; name="+U}break;case"Bcc":if(!this.keepBcc)return;break}if(A=this._encodeHeaderValue(N,A),!(A||"").toString().trim())return;if(typeof this.normalizeHeaderKey==="function"){let C=this.normalizeHeaderKey(N,A);if(C&&typeof C==="string"&&C.length)N=C}E.push(UN.foldLines(N+": "+A,76))}),E.join("\r\n")}createReadStream(_){_=_||{};let E=new CA(_),R=E,N;this.stream(E,_,(A)=>{if(A){R.emit("error",A);return}E.end()});for(let A=0,L=this._transforms.length;A{N.emit("error",U)}),R=R.pipe(N);N=new aj,R.once("error",(A)=>{N.emit("error",A)}),R=R.pipe(N);for(let A=0,L=this._processFuncs.length;AU.emit("error",G)),U}return R}transform(_){this._transforms.push(_)}processFunc(_){this._processFuncs.push(_)}stream(_,E,R){let N=this.getTransferEncoding(),A,L,U=!1,G=(Y)=>{if(U)return;U=!0,R(Y)},S=()=>{let Y=0,M=()=>{if(Y>=this.childNodes.length)return _.write("\r\n--"+this.boundary+"--\r\n"),G();let H=this.childNodes[Y++];_.write((Y>1?"\r\n":"")+"--"+this.boundary+"\r\n"),H.stream(_,E,(X)=>{if(X)return G(X);setImmediate(M)})};if(this.multipart)setImmediate(M);else return G()},C=()=>{if(this.content){if(Object.prototype.toString.call(this.content)==="[object Error]")return G(this.content);if(typeof this.content.pipe==="function")this.content.removeListener("error",this._contentErrorHandler),this._contentErrorHandler=(M)=>G(M),this.content.once("error",this._contentErrorHandler);let Y=()=>{if(["quoted-printable","base64"].includes(N))A=new(N==="base64"?sj:oj).Encoder(E),A.pipe(_,{end:!1}),A.once("end",S),A.once("error",(M)=>G(M)),L=this._getStream(this.content),L.pipe(A);else L=this._getStream(this.content),L.pipe(_,{end:!1}),L.once("end",S);L.once("error",(M)=>G(M))};if(this.content._resolve){let M=[],H=0,X=!1,$=this._getStream(this.content);$.on("error",(z)=>{if(X)return;X=!0,G(z)}),$.on("readable",()=>{let z;while((z=$.read())!==null)M.push(z),H+=z.length}),$.on("end",()=>{if(X)return;X=!0,this.content._resolve=!1,this.content._resolvedValue=Buffer.concat(M,H),setImmediate(Y)})}else setImmediate(Y);return}else return setImmediate(S)};if(this._raw)setImmediate(()=>{if(Object.prototype.toString.call(this._raw)==="[object Error]")return G(this._raw);if(typeof this._raw.pipe==="function")this._raw.removeListener("error",this._contentErrorHandler);let Y=this._getStream(this._raw);Y.pipe(_,{end:!1}),Y.on("error",(M)=>_.emit("error",M)),Y.on("end",S)});else _.write(this.buildHeaders()+"\r\n\r\n"),setImmediate(C)}setEnvelope(_){let E;if(this._envelope={from:!1,to:[]},_.from){if(E=[],this._convertAddresses(this._parseAddresses(_.from),E),E=E.filter((N)=>N&&N.address),E.length&&E[0])this._envelope.from=E[0].address}["to","cc","bcc"].forEach((N)=>{if(_[N])this._convertAddresses(this._parseAddresses(_[N]),this._envelope.to)}),this._envelope.to=this._envelope.to.map((N)=>N.address).filter((N)=>N);let R=["to","cc","bcc","from"];return Object.keys(_).forEach((N)=>{if(!R.includes(N))this._envelope[N]=_[N]}),this}getAddresses(){let _={};return this._headers.forEach((E)=>{let R=E.key.toLowerCase();if(["from","sender","reply-to","to","cc","bcc"].includes(R)){if(!Array.isArray(_[R]))_[R]=[];this._convertAddresses(this._parseAddresses(E.value),_[R])}}),_}getEnvelope(){if(this._envelope)return this._envelope;let _={from:!1,to:[]};return this._headers.forEach((E)=>{let R=[];if(E.key==="From"||!_.from&&["Reply-To","Sender"].includes(E.key)){if(this._convertAddresses(this._parseAddresses(E.value),R),R.length&&R[0])_.from=R[0].address}else if(["To","Cc","Bcc"].includes(E.key))this._convertAddresses(this._parseAddresses(E.value),_.to)}),_.to=_.to.map((E)=>E.address),_}messageId(){let _=this.getHeader("Message-ID");if(!_)_=this._generateMessageId(),this.setHeader("Message-ID",_);return _}setRaw(_){if(this._raw=_,this._raw&&typeof this._raw.pipe==="function")this._contentErrorHandler=(E)=>{this._raw.removeListener("error",this._contentErrorHandler),this._raw=E},this._raw.once("error",this._contentErrorHandler);return this}_getStream(_){let E;if(_._resolvedValue)return E=new CA,setImmediate(()=>{try{E.end(_._resolvedValue)}catch(R){E.emit("error",R)}}),E;else if(typeof _.pipe==="function")return _;else if(_&&typeof _.path==="string"&&!_.href){if(this.disableFileAccess)return E=new CA,setImmediate(()=>E.emit("error",new Error("File access rejected for "+_.path))),E;return dj.createReadStream(_.path)}else if(_&&typeof _.href==="string"){if(this.disableUrlAccess)return E=new CA,setImmediate(()=>E.emit("error",new Error("Url access rejected for "+_.href))),E;return rj(_.href,{headers:_.httpHeaders})}else return E=new CA,setImmediate(()=>{try{E.end(_||"")}catch(R){E.emit("error",R)}}),E}_parseAddresses(_){return[].concat.apply([],[].concat(_).map((E)=>{if(E&&E.address)return E.address=this._normalizeAddress(E.address),E.name=E.name||"",[E];return tj(E)}))}_normalizeHeaderKey(_){return _=(_||"").toString().replace(/\r?\n|\r/g," ").trim().toLowerCase().replace(/^X-SMTPAPI$|^(MIME|DKIM|ARC|BIMI)\b|^[a-z]|-(SPF|FBL|ID|MD5)$|-[a-z]/gi,(E)=>E.toUpperCase()).replace(/^Content-Features$/i,"Content-features"),_}_handleContentType(_){if(this.contentType=_.value.trim().toLowerCase(),this.multipart=/^multipart\//i.test(this.contentType)?this.contentType.substr(this.contentType.indexOf("/")+1):!1,this.multipart)this.boundary=_.params.boundary=_.params.boundary||this.boundary||this._generateBoundary();else this.boundary=!1}_generateBoundary(){return this.rootNode.boundaryPrefix+"-"+this.rootNode.baseBoundary+"-Part_"+this._nodeId}_encodeHeaderValue(_,E){switch(_=this._normalizeHeaderKey(_),_){case"From":case"Sender":case"To":case"Cc":case"Bcc":case"Reply-To":return this._convertAddresses(this._parseAddresses(E));case"Message-ID":case"In-Reply-To":case"Content-Id":if(E=(E||"").toString().replace(/\r?\n|\r/g," "),E.charAt(0)!=="<")E="<"+E;if(E.charAt(E.length-1)!==">")E=E+">";return E;case"References":return E=[].concat.apply([],[].concat(E||"").map((R)=>{return R=(R||"").toString().replace(/\r?\n|\r/g," ").trim(),R.replace(/<[^>]*>/g,(N)=>N.replace(/\s/g,"")).split(/\s+/)})).map((R)=>{if(R.charAt(0)!=="<")R="<"+R;if(R.charAt(R.length-1)!==">")R=R+">";return R}),E.join(" ").trim();case"Date":if(Object.prototype.toString.call(E)==="[object Date]")return E.toUTCString().replace(/GMT/,"+0000");return E=(E||"").toString().replace(/\r?\n|\r/g," "),this._encodeWords(E);case"Content-Type":case"Content-Disposition":return(E||"").toString().replace(/\r?\n|\r/g," ");default:return E=(E||"").toString().replace(/\r?\n|\r/g," "),this._encodeWords(E)}}_convertAddresses(_,E){let R=[];return E=E||[],[].concat(_||[]).forEach((N)=>{if(N.address){if(N.address=this._normalizeAddress(N.address),!N.name)R.push(N.address.indexOf(" ")>=0?`<${N.address}>`:`${N.address}`);else if(N.name)R.push(`${this._encodeAddressName(N.name)} <${N.address}>`);if(N.address){if(!E.filter((A)=>A.address===N.address).length)E.push(N)}}else if(N.group){let A=(N.group.length?this._convertAddresses(N.group,E):"").trim();R.push(`${this._encodeAddressName(N.name)}:${A};`)}}),R.join(", ")}_normalizeAddress(_){_=(_||"").toString().replace(/[\x00-\x1F<>]+/g," ").trim();let E=_.lastIndexOf("@");if(E<0)return _;let R=_.substr(0,E),N=_.substr(E+1),A;try{A=lj.toASCII(N.toLowerCase())}catch(L){}if(R.indexOf(" ")>=0){if(R.charAt(0)!=='"')R='"'+R;if(R.substr(-1)!=='"')R=R+'"'}return`${R}@${A}`}_encodeAddressName(_){if(!/^[\w ]*$/.test(_))if(/^[\x20-\x7e]*$/.test(_))return'"'+_.replace(/([\\"])/g,"\\$1")+'"';else return UN.encodeWord(_,this._getTextEncoding(_),52);return _}_encodeWords(_){return UN.encodeWords(_,this._getTextEncoding(_),52,!0)}_getTextEncoding(_){_=(_||"").toString();let E=this.textEncoding,R,N;if(!E)N=(_.match(/[\x00-\x08\x0B\x0C\x0E-\x1F\u0080-\uFFFF]/g)||[]).length,R=(_.match(/[a-z]/gi)||[]).length,E=N_+"-"+Y2.randomBytes(E).toString("hex"),Y2.randomBytes(4).toString("hex"))+"@"+(this.getEnvelope().from||this.hostname||"localhost").split("@").pop()+">"}}OH.exports=H2});var LH=j((gb,IH)=>{var PA=W2(),M2=SA(),Ev=IR().parseDataURI;class AH{constructor(_){this.mail=_||{},this.message=!1}compile(){if(this._alternatives=this.getAlternatives(),this._htmlNode=this._alternatives.filter((_)=>/^text\/html\b/i.test(_.contentType)).pop(),this._attachments=this.getAttachments(!!this._htmlNode),this._useRelated=!!(this._htmlNode&&this._attachments.related.length),this._useAlternative=this._alternatives.length>1,this._useMixed=this._attachments.attached.length>1||this._alternatives.length&&this._attachments.attached.length===1,this.mail.raw)this.message=new PA("message/rfc822",{newline:this.mail.newline}).setRaw(this.mail.raw);else if(this._useMixed)this.message=this._createMixed();else if(this._useAlternative)this.message=this._createAlternative();else if(this._useRelated)this.message=this._createRelated();else this.message=this._createContentNode(!1,[].concat(this._alternatives||[]).concat(this._attachments.attached||[]).shift()||{contentType:"text/plain",content:""});if(this.mail.headers)this.message.addHeader(this.mail.headers);if(["from","sender","to","cc","bcc","reply-to","in-reply-to","references","subject","message-id","date"].forEach((_)=>{let E=_.replace(/-(\w)/g,(R,N)=>N.toUpperCase());if(this.mail[E])this.message.setHeader(_,this.mail[E])}),this.mail.envelope)this.message.setEnvelope(this.mail.envelope);return this.message.messageId(),this.message}getAttachments(_){let E,R,N=[].concat(this.mail.attachments||[]).map((A,L)=>{let U,G=/^message\//i.test(A.contentType);if(/^data:/i.test(A.path||A.href))A=this._processDataUrl(A);let S=A.contentType||M2.detectMimeType(A.filename||A.path||A.href||"bin"),C=/^image\//i.test(S),Y=A.contentDisposition||(G||C&&A.cid?"inline":"attachment");if(U={contentType:S,contentDisposition:Y,contentTransferEncoding:"contentTransferEncoding"in A?A.contentTransferEncoding:"base64"},A.filename)U.filename=A.filename;else if(!G&&A.filename!==!1){if(U.filename=(A.path||A.href||"").split("/").pop().split("?").shift()||"attachment-"+(L+1),U.filename.indexOf(".")<0)U.filename+="."+M2.detectExtension(U.contentType)}if(/^https?:\/\//i.test(A.path))A.href=A.path,A.path=void 0;if(A.cid)U.cid=A.cid;if(A.raw)U.raw=A.raw;else if(A.path)U.content={path:A.path};else if(A.href)U.content={href:A.href,httpHeaders:A.httpHeaders};else U.content=A.content||"";if(A.encoding)U.encoding=A.encoding;if(A.headers)U.headers=A.headers;return U});if(this.mail.icalEvent){if(typeof this.mail.icalEvent==="object"&&(this.mail.icalEvent.content||this.mail.icalEvent.path||this.mail.icalEvent.href||this.mail.icalEvent.raw))E=this.mail.icalEvent;else E={content:this.mail.icalEvent};if(R={},Object.keys(E).forEach((A)=>{R[A]=E[A]}),R.contentType="application/ics",!R.headers)R.headers={};R.filename=R.filename||"invite.ics",R.headers["Content-Disposition"]="attachment",R.headers["Content-Transfer-Encoding"]="base64"}if(!_)return{attached:N.concat(R||[]),related:[]};else return{attached:N.filter((A)=>!A.cid).concat(R||[]),related:N.filter((A)=>!!A.cid)}}getAlternatives(){let _=[],E,R,N,A,L,U;if(this.mail.text){if(typeof this.mail.text==="object"&&(this.mail.text.content||this.mail.text.path||this.mail.text.href||this.mail.text.raw))E=this.mail.text;else E={content:this.mail.text};E.contentType="text/plain; charset=utf-8"}if(this.mail.watchHtml){if(typeof this.mail.watchHtml==="object"&&(this.mail.watchHtml.content||this.mail.watchHtml.path||this.mail.watchHtml.href||this.mail.watchHtml.raw))N=this.mail.watchHtml;else N={content:this.mail.watchHtml};N.contentType="text/watch-html; charset=utf-8"}if(this.mail.amp){if(typeof this.mail.amp==="object"&&(this.mail.amp.content||this.mail.amp.path||this.mail.amp.href||this.mail.amp.raw))A=this.mail.amp;else A={content:this.mail.amp};A.contentType="text/x-amp-html; charset=utf-8"}if(this.mail.icalEvent){if(typeof this.mail.icalEvent==="object"&&(this.mail.icalEvent.content||this.mail.icalEvent.path||this.mail.icalEvent.href||this.mail.icalEvent.raw))L=this.mail.icalEvent;else L={content:this.mail.icalEvent};if(U={},Object.keys(L).forEach((G)=>{U[G]=L[G]}),U.content&&typeof U.content==="object")U.content._resolve=!0;if(U.filename=!1,U.contentType="text/calendar; charset=utf-8; method="+(U.method||"PUBLISH").toString().trim().toUpperCase(),!U.headers)U.headers={}}if(this.mail.html){if(typeof this.mail.html==="object"&&(this.mail.html.content||this.mail.html.path||this.mail.html.href||this.mail.html.raw))R=this.mail.html;else R={content:this.mail.html};R.contentType="text/html; charset=utf-8"}return[].concat(E||[]).concat(N||[]).concat(A||[]).concat(R||[]).concat(U||[]).concat(this.mail.alternatives||[]).forEach((G)=>{let S;if(/^data:/i.test(G.path||G.href))G=this._processDataUrl(G);if(S={contentType:G.contentType||M2.detectMimeType(G.filename||G.path||G.href||"txt"),contentTransferEncoding:G.contentTransferEncoding},G.filename)S.filename=G.filename;if(/^https?:\/\//i.test(G.path))G.href=G.path,G.path=void 0;if(G.raw)S.raw=G.raw;else if(G.path)S.content={path:G.path};else if(G.href)S.content={href:G.href};else S.content=G.content||"";if(G.encoding)S.encoding=G.encoding;if(G.headers)S.headers=G.headers;_.push(S)}),_}_createMixed(_){let E;if(!_)E=new PA("multipart/mixed",{baseBoundary:this.mail.baseBoundary,textEncoding:this.mail.textEncoding,boundaryPrefix:this.mail.boundaryPrefix,disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline});else E=_.createChild("multipart/mixed",{disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline});if(this._useAlternative)this._createAlternative(E);else if(this._useRelated)this._createRelated(E);return[].concat(!this._useAlternative&&this._alternatives||[]).concat(this._attachments.attached||[]).forEach((R)=>{if(!this._useRelated||R!==this._htmlNode)this._createContentNode(E,R)}),E}_createAlternative(_){let E;if(!_)E=new PA("multipart/alternative",{baseBoundary:this.mail.baseBoundary,textEncoding:this.mail.textEncoding,boundaryPrefix:this.mail.boundaryPrefix,disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline});else E=_.createChild("multipart/alternative",{disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline});return this._alternatives.forEach((R)=>{if(this._useRelated&&this._htmlNode===R)this._createRelated(E);else this._createContentNode(E,R)}),E}_createRelated(_){let E;if(!_)E=new PA('multipart/related; type="text/html"',{baseBoundary:this.mail.baseBoundary,textEncoding:this.mail.textEncoding,boundaryPrefix:this.mail.boundaryPrefix,disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline});else E=_.createChild('multipart/related; type="text/html"',{disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline});return this._createContentNode(E,this._htmlNode),this._attachments.related.forEach((R)=>this._createContentNode(E,R)),E}_createContentNode(_,E){E=E||{},E.content=E.content||"";let R,N=(E.encoding||"utf8").toString().toLowerCase().replace(/[-_\s]/g,"");if(!_)R=new PA(E.contentType,{filename:E.filename,baseBoundary:this.mail.baseBoundary,textEncoding:this.mail.textEncoding,boundaryPrefix:this.mail.boundaryPrefix,disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline});else R=_.createChild(E.contentType,{filename:E.filename,textEncoding:this.mail.textEncoding,disableUrlAccess:this.mail.disableUrlAccess,disableFileAccess:this.mail.disableFileAccess,normalizeHeaderKey:this.mail.normalizeHeaderKey,newline:this.mail.newline});if(E.headers)R.addHeader(E.headers);if(E.cid)R.setHeader("Content-Id","<"+E.cid.replace(/[<>]/g,"")+">");if(E.contentTransferEncoding)R.setHeader("Content-Transfer-Encoding",E.contentTransferEncoding);else if(this.mail.encoding&&/^text\//i.test(E.contentType))R.setHeader("Content-Transfer-Encoding",this.mail.encoding);if(!/^text\//i.test(E.contentType)||E.contentDisposition)R.setHeader("Content-Disposition",E.contentDisposition||(E.cid&&/^image\//i.test(E.contentType)?"inline":"attachment"));if(typeof E.content==="string"&&!["utf8","usascii","ascii"].includes(N))E.content=Buffer.from(E.content,N);if(E.raw)R.setRaw(E.raw);else R.setContent(E.content);return R}_processDataUrl(_){let E;if((_.path||_.href).match(/^data:/))E=Ev(_.path||_.href);if(!E)return _;if(_.content=E.data,_.contentType=_.contentType||E.contentType,"path"in _)_.path=!1;if("href"in _)_.href=!1;return _}}IH.exports=AH});var DH=j((yb,GH)=>{var Rv=require("stream").Transform;class UH extends Rv{constructor(_){super(_);this.lastBytes=Buffer.alloc(4),this.headersParsed=!1,this.headerBytes=0,this.headerChunks=[],this.rawHeaders=!1,this.bodySize=0}updateLastBytes(_){let E=this.lastBytes.length,R=Math.min(_.length,E);for(let N=0,A=E-R;N1?N-2R){let N=_.slice(R);this.bodySize+=N.length,setImmediate(()=>this.push(N))}return!1}else this.headerBytes+=_.length,this.headerChunks.push(_);return this.updateLastBytes(_),!1}_transform(_,E,R){if(!_||!_.length)return R();if(typeof _==="string")_=Buffer.from(_,E);let N;try{N=this.checkHeaders(_)}catch(A){return R(A)}if(N)this.bodySize+=_.length,this.push(_);setImmediate(R)}_flush(_){if(this.headerChunks){let E=Buffer.concat(this.headerChunks,this.headerBytes);this.bodySize+=E.length,this.push(E),this.headerChunks=null}_()}parseHeaders(){let _=(this.rawHeaders||"").toString().split(/\r?\n/);for(let E=_.length-1;E>0;E--)if(/^\s/.test(_[E]))_[E-1]+="\n"+_[E],_.splice(E,1);return _.filter((E)=>E.trim()).map((E)=>({key:E.substr(0,E.indexOf(":")).trim().toLowerCase(),line:E}))}}GH.exports=UH});var PH=j((bb,CH)=>{var Nv=require("stream").Transform,Tv=require("crypto");class SH extends Nv{constructor(_){super();_=_||{},this.chunkBuffer=[],this.chunkBufferLen=0,this.bodyHash=Tv.createHash(_.hashAlgo||"sha1"),this.remainder="",this.byteLength=0,this.debug=_.debug,this._debugBody=_.debug?[]:!1}updateHash(_){let E,R="",N="file";for(let L=_.length-1;L>=0;L--){let U=_[L];if(N==="file"&&(U===10||U===13));else if(N==="file"&&(U===9||U===32))N="line";else if(N==="line"&&(U===9||U===32));else if(N==="file"||N==="line"){if(N="body",L===_.length-1)break}if(L===0){if(N==="file"&&(!this.remainder||/[\r\n]$/.test(this.remainder))||N==="line"&&(!this.remainder||/[ \t]$/.test(this.remainder))){this.remainder+=_.toString("binary");return}else if(N==="line"||N==="file"){R=_.toString("binary"),_=!1;break}}if(N!=="body")continue;R=_.slice(L+1).toString("binary"),_=_.slice(0,L+1);break}let A=!!this.remainder;if(_&&!A){for(let L=0,U=_.length;L2)this.bodyHash.update(Buffer.from("\r\n"));if(!this.byteLength)this.push(Buffer.from("\r\n"));this.emit("hash",this.bodyHash.digest("base64"),this.debug?Buffer.concat(this._debugBody):!1),_()}}CH.exports=SH});var WH=j((ib,F2)=>{var Ov=L2(),Av=SA(),Iv=require("crypto");F2.exports=(_,E,R,N)=>{N=N||{};let A="From:Sender:Reply-To:Subject:Date:Message-ID:To:Cc:MIME-Version:Content-Type:Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive",L=N.headerFieldNames||A,U=YH(_,L,N.skipFields),G=Lv(N.domainName,N.keySelector,U.fieldNames,E,R),S,C;U.headers+="dkim-signature:"+HH(G),S=Iv.createSign(("rsa-"+E).toUpperCase()),S.update(U.headers);try{C=S.sign(N.privateKey,"base64")}catch(Y){return!1}return G+C.replace(/(^.{73}|.{75}(?!\r?\n|\r))/g,"$&\r\n ").trim()};F2.exports.relaxedHeaders=YH;function Lv(_,E,R,N,A){let L=["v=1","a=rsa-"+N,"c=relaxed/relaxed","d="+Ov.toASCII(_),"q=dns/txt","s="+E,"bh="+A,"h="+R].join("; ");return Av.foldLines("DKIM-Signature: "+L,76)+";\r\n b="}function YH(_,E,R){let N=new Set,A=new Set,L=new Map;(R||"").toLowerCase().split(":").forEach((S)=>{A.add(S.trim())}),(E||"").toLowerCase().split(":").filter((S)=>!A.has(S.trim())).forEach((S)=>{N.add(S.trim())});for(let S=_.length-1;S>=0;S--){let C=_[S];if(N.has(C.key)&&!L.has(C.key))L.set(C.key,HH(C.line))}let U=[],G=[];return N.forEach((S)=>{if(L.has(S))G.push(S),U.push(S+":"+L.get(S))}),{headers:U.join("\r\n")+"\r\n",fieldNames:G.join(":")}}function HH(_){return _.substr(_.indexOf(":")+1).replace(/\r?\n/g,"").replace(/\s+/g," ").trim()}});var VH=j((ub,BH)=>{var Uv=DH(),Gv=PH(),Dv=WH(),B2=require("stream").PassThrough,V2=require("fs"),Sv=require("path"),Cv=require("crypto");class MH{constructor(_,E,R,N){this.options=_||{},this.keys=E,this.cacheTreshold=Number(this.options.cacheTreshold)||131072,this.hashAlgo=this.options.hashAlgo||"sha256",this.cacheDir=this.options.cacheDir||!1,this.chunks=[],this.chunklen=0,this.readPos=0,this.cachePath=this.cacheDir?Sv.join(this.cacheDir,"message."+Date.now()+"-"+Cv.randomBytes(14).toString("hex")):!1,this.cache=!1,this.headers=!1,this.bodyHash=!1,this.parser=!1,this.relaxedBody=!1,this.input=R,this.output=N,this.output.usingCache=!1,this.hasErrored=!1,this.input.on("error",(A)=>{this.hasErrored=!0,this.cleanup(),N.emit("error",A)})}cleanup(){if(!this.cache||!this.cachePath)return;V2.unlink(this.cachePath,()=>!1)}createReadCache(){this.cache=V2.createReadStream(this.cachePath),this.cache.once("error",(_)=>{this.cleanup(),this.output.emit("error",_)}),this.cache.once("close",()=>{this.cleanup()}),this.cache.pipe(this.output)}sendNextChunk(){if(this.hasErrored)return;if(this.readPos>=this.chunks.length){if(!this.cache)return this.output.end();return this.createReadCache()}let _=this.chunks[this.readPos++];if(this.output.write(_)===!1)return this.output.once("drain",()=>{this.sendNextChunk()});setImmediate(()=>this.sendNextChunk())}sendSignedOutput(){let _=0,E=()=>{if(_>=this.keys.length)return this.output.write(this.parser.rawHeaders),setImmediate(()=>this.sendNextChunk());let R=this.keys[_++],N=Dv(this.headers,this.hashAlgo,this.bodyHash,{domainName:R.domainName,keySelector:R.keySelector,privateKey:R.privateKey,headerFieldNames:this.options.headerFieldNames,skipFields:this.options.skipFields});if(N)this.output.write(Buffer.from(N+"\r\n"));return setImmediate(E)};if(this.bodyHash&&this.headers)return E();this.output.write(this.parser.rawHeaders),this.sendNextChunk()}createWriteCache(){this.output.usingCache=!0,this.cache=V2.createWriteStream(this.cachePath),this.cache.once("error",(_)=>{this.cleanup(),this.relaxedBody.unpipe(this.cache),this.relaxedBody.on("readable",()=>{while(this.relaxedBody.read()!==null);}),this.hasErrored=!0,this.output.emit("error",_)}),this.cache.once("close",()=>{this.sendSignedOutput()}),this.relaxedBody.removeAllListeners("readable"),this.relaxedBody.pipe(this.cache)}signStream(){this.parser=new Uv,this.relaxedBody=new Gv({hashAlgo:this.hashAlgo}),this.parser.on("headers",(_)=>{this.headers=_}),this.relaxedBody.on("hash",(_)=>{this.bodyHash=_}),this.relaxedBody.on("readable",()=>{let _;if(this.cache)return;while((_=this.relaxedBody.read())!==null)if(this.chunks.push(_),this.chunklen+=_.length,this.chunklen>=this.cacheTreshold&&this.cachePath)return this.createWriteCache()}),this.relaxedBody.on("end",()=>{if(this.cache)return;this.sendSignedOutput()}),this.parser.pipe(this.relaxedBody),setImmediate(()=>this.input.pipe(this.parser))}}class FH{constructor(_){this.options=_||{},this.keys=[].concat(this.options.keys||{domainName:_.domainName,keySelector:_.keySelector,privateKey:_.privateKey})}sign(_,E){let R=new B2,N=_,A=!1;if(Buffer.isBuffer(_))A=_,N=new B2;else if(typeof _==="string")A=Buffer.from(_),N=new B2;let L=this.options;if(E&&Object.keys(E).length)L={},Object.keys(this.options||{}).forEach((G)=>{L[G]=this.options[G]}),Object.keys(E||{}).forEach((G)=>{if(!(G in L))L[G]=E[G]});let U=new MH(L,this.keys,N,R);return setImmediate(()=>{if(U.signStream(),A)setImmediate(()=>{N.end(A)})}),R}}BH.exports=FH});var ZH=j((cb,$H)=>{var KH=require("net"),XH=require("tls"),Pv=require("url");function JH(_,E,R,N){let A=Pv.parse(_),L,U,G;if(L={host:A.hostname,port:Number(A.port)?Number(A.port):A.protocol==="https:"?443:80},A.protocol==="https:")L.rejectUnauthorized=!1,U=XH.connect.bind(XH);else U=KH.connect.bind(KH);let S=!1,C=(M)=>{if(S)return;S=!0;try{G.destroy()}catch(H){}N(M)},Y=()=>{let M=new Error("Proxy socket timed out");M.code="ETIMEDOUT",C(M)};G=U(L,()=>{if(S)return;let M={Host:R+":"+E,Connection:"close"};if(A.auth)M["Proxy-Authorization"]="Basic "+Buffer.from(A.auth).toString("base64");G.write("CONNECT "+R+":"+E+" HTTP/1.1\r\n"+Object.keys(M).map(($)=>$+": "+M[$]).join("\r\n")+"\r\n\r\n");let H="",X=($)=>{let z,w;if(S)return;if(H+=$.toString("binary"),z=H.match(/\r\n\r\n/)){if(G.removeListener("data",X),w=H.substr(z.index+z[0].length),H=H.substr(0,z.index),w)G.unshift(Buffer.from(w,"binary"));if(S=!0,z=H.match(/^HTTP\/\d+\.\d+ (\d+)/i),!z||(z[1]||"").charAt(0)!=="2"){try{G.destroy()}catch(g){}return N(new Error("Invalid response from proxy"+(z&&": "+z[1]||"")))}return G.removeListener("error",C),G.removeListener("timeout",Y),G.setTimeout(0),N(null,G)}};G.on("data",X)}),G.setTimeout(JH.timeout||30000),G.on("timeout",Y),G.once("error",C)}$H.exports=JH});var xH=j((db,zH)=>{var wH=IR(),Yv=W2(),oT=SA();class QH{constructor(_,E){this.mailer=_,this.data={},this.message=null,E=E||{};let R=_.options||{},N=_._defaults||{};Object.keys(E).forEach((A)=>{this.data[A]=E[A]}),this.data.headers=this.data.headers||{},Object.keys(N).forEach((A)=>{if(!(A in this.data))this.data[A]=N[A];else if(A==="headers")Object.keys(N.headers).forEach((L)=>{if(!(L in this.data.headers))this.data.headers[L]=N.headers[L]})}),["disableFileAccess","disableUrlAccess","normalizeHeaderKey"].forEach((A)=>{if(A in R)this.data[A]=R[A]})}resolveContent(..._){return wH.resolveContent(..._)}resolveAll(_){let E=[[this.data,"html"],[this.data,"text"],[this.data,"watchHtml"],[this.data,"amp"],[this.data,"icalEvent"]];if(this.data.alternatives&&this.data.alternatives.length)this.data.alternatives.forEach((G,S)=>{E.push([this.data.alternatives,S])});if(this.data.attachments&&this.data.attachments.length)this.data.attachments.forEach((G,S)=>{if(!G.filename){if(G.filename=(G.path||G.href||"").split("/").pop().split("?").shift()||"attachment-"+(S+1),G.filename.indexOf(".")<0)G.filename+="."+oT.detectExtension(G.contentType)}if(!G.contentType)G.contentType=oT.detectMimeType(G.filename||G.path||G.href||"bin");E.push([this.data.attachments,S])});let R=new Yv;["from","to","cc","bcc","sender","replyTo"].forEach((G)=>{let S;if(this.message)S=[].concat(R._parseAddresses(this.message.getHeader(G==="replyTo"?"reply-to":G))||[]);else if(this.data[G])S=[].concat(R._parseAddresses(this.data[G])||[]);if(S&&S.length)this.data[G]=S;else if(G in this.data)this.data[G]=null}),["from","sender"].forEach((G)=>{if(this.data[G])this.data[G]=this.data[G].shift()});let L=0,U=()=>{if(L>=E.length)return _(null,this.data);let G=E[L++];if(!G[0]||!G[0][G[1]])return U();wH.resolveContent(...G,(S,C)=>{if(S)return _(S);let Y={content:C};if(G[0][G[1]]&&typeof G[0][G[1]]==="object"&&!Buffer.isBuffer(G[0][G[1]]))Object.keys(G[0][G[1]]).forEach((M)=>{if(!(M in Y)&&!["content","path","href","raw"].includes(M))Y[M]=G[0][G[1]][M]});G[0][G[1]]=Y,U()})};setImmediate(()=>U())}normalize(_){let E=this.data.envelope||this.message.getEnvelope(),R=this.message.messageId();this.resolveAll((N,A)=>{if(N)return _(N);if(A.envelope=E,A.messageId=R,["html","text","watchHtml","amp"].forEach((L)=>{if(A[L]&&A[L].content){if(typeof A[L].content==="string")A[L]=A[L].content;else if(Buffer.isBuffer(A[L].content))A[L]=A[L].content.toString()}}),A.icalEvent&&Buffer.isBuffer(A.icalEvent.content))A.icalEvent.content=A.icalEvent.content.toString("base64"),A.icalEvent.encoding="base64";if(A.alternatives&&A.alternatives.length)A.alternatives.forEach((L)=>{if(L&&L.content&&Buffer.isBuffer(L.content))L.content=L.content.toString("base64"),L.encoding="base64"});if(A.attachments&&A.attachments.length)A.attachments.forEach((L)=>{if(L&&L.content&&Buffer.isBuffer(L.content))L.content=L.content.toString("base64"),L.encoding="base64"});if(A.normalizedHeaders={},Object.keys(A.headers||{}).forEach((L)=>{let U=[].concat(A.headers[L]||[]).shift();if(U=U&&U.value||U,U){if(["references","in-reply-to","message-id","content-id"].includes(L))U=this.message._encodeHeaderValue(L,U);A.normalizedHeaders[L]=U}}),A.list&&typeof A.list==="object")this._getListHeaders(A.list).forEach((U)=>{A.normalizedHeaders[U.key]=U.value.map((G)=>G&&G.value||G).join(", ")});if(A.references)A.normalizedHeaders.references=this.message._encodeHeaderValue("references",A.references);if(A.inReplyTo)A.normalizedHeaders["in-reply-to"]=this.message._encodeHeaderValue("in-reply-to",A.inReplyTo);return _(null,A)})}setMailerHeader(){if(!this.message||!this.data.xMailer)return;this.message.setHeader("X-Mailer",this.data.xMailer)}setPriorityHeaders(){if(!this.message||!this.data.priority)return;switch((this.data.priority||"").toString().toLowerCase()){case"high":this.message.setHeader("X-Priority","1 (Highest)"),this.message.setHeader("X-MSMail-Priority","High"),this.message.setHeader("Importance","High");break;case"low":this.message.setHeader("X-Priority","5 (Lowest)"),this.message.setHeader("X-MSMail-Priority","Low"),this.message.setHeader("Importance","Low");break;default:}}setListHeaders(){if(!this.message||!this.data.list||typeof this.data.list!=="object")return;if(this.data.list&&typeof this.data.list==="object")this._getListHeaders(this.data.list).forEach((_)=>{_.value.forEach((E)=>{this.message.addHeader(_.key,E)})})}_getListHeaders(_){return Object.keys(_).map((E)=>({key:"list-"+E.toLowerCase().trim(),value:[].concat(_[E]||[]).map((R)=>({prepared:!0,foldLines:!0,value:[].concat(R||[]).map((N)=>{if(typeof N==="string")N={url:N};if(N&&N.url){if(E.toLowerCase().trim()==="id"){let L=N.comment||"";if(oT.isPlainText(L))L='"'+L+'"';else L=oT.encodeWord(L);return(N.comment?L+" ":"")+this._formatListUrl(N.url).replace(/^<[^:]+\/{,2}/,"")}let A=N.comment||"";if(!oT.isPlainText(A))A=oT.encodeWord(A);return this._formatListUrl(N.url)+(N.comment?" ("+A+")":"")}return""}).filter((N)=>N).join(", ")}))}))}_formatListUrl(_){if(_=_.replace(/[\s<]+|[\s>]+/g,""),/^(https?|mailto|ftp):/.test(_))return"<"+_+">";if(/^[^@]+@[^@]+$/.test(_))return"";return""}}zH.exports=QH});var pH=j((lb,vH)=>{var Hv=require("events"),qH=IR(),Wv=A2(),Mv=LH(),fH=VH(),Fv=ZH(),Bv=require("util"),Vv=require("url"),K2=LN(),Kv=xH(),Xv=require("net"),Jv=require("dns"),$v=require("crypto");class jH extends Hv{constructor(_,E,R){super();if(this.options=E||{},this._defaults=R||{},this._defaultPlugins={compile:[(...N)=>this._convertDataImages(...N)],stream:[]},this._userPlugins={compile:[],stream:[]},this.meta=new Map,this.dkim=this.options.dkim?new fH(this.options.dkim):!1,this.transporter=_,this.transporter.mailer=this,this.logger=qH.getLogger(this.options,{component:this.options.component||"mail"}),this.logger.debug({tnx:"create"},"Creating transport: %s",this.getVersionString()),typeof this.transporter.on==="function")this.transporter.on("log",(N)=>{this.logger.debug({tnx:"transport"},"%s: %s",N.type,N.message)}),this.transporter.on("error",(N)=>{this.logger.error({err:N,tnx:"transport"},"Transport Error: %s",N.message),this.emit("error",N)}),this.transporter.on("idle",(...N)=>{this.emit("idle",...N)});if(["close","isIdle","verify"].forEach((N)=>{this[N]=(...A)=>{if(typeof this.transporter[N]==="function"){if(N==="verify"&&typeof this.getSocket==="function")this.transporter.getSocket=this.getSocket,this.getSocket=!1;return this.transporter[N](...A)}else return this.logger.warn({tnx:"transport",methodName:N},"Non existing method %s called for transport",N),!1}}),this.options.proxy&&typeof this.options.proxy==="string")this.setupProxy(this.options.proxy)}use(_,E){if(_=(_||"").toString(),!this._userPlugins.hasOwnProperty(_))this._userPlugins[_]=[E];else this._userPlugins[_].push(E);return this}sendMail(_,E=null){let R;if(!E)R=new Promise((A,L)=>{E=qH.callbackPromise(A,L)});if(typeof this.getSocket==="function")this.transporter.getSocket=this.getSocket,this.getSocket=!1;let N=new Kv(this,_);return this.logger.debug({tnx:"transport",name:this.transporter.name,version:this.transporter.version,action:"send"},"Sending mail using %s/%s",this.transporter.name,this.transporter.version),this._processPlugins("compile",N,(A)=>{if(A)return this.logger.error({err:A,tnx:"plugin",action:"compile"},"PluginCompile Error: %s",A.message),E(A);N.message=new Mv(N.data).compile(),N.setMailerHeader(),N.setPriorityHeaders(),N.setListHeaders(),this._processPlugins("stream",N,(L)=>{if(L)return this.logger.error({err:L,tnx:"plugin",action:"stream"},"PluginStream Error: %s",L.message),E(L);if(N.data.dkim||this.dkim)N.message.processFunc((U)=>{let G=N.data.dkim?new fH(N.data.dkim):this.dkim;return this.logger.debug({tnx:"DKIM",messageId:N.message.messageId(),dkimDomains:G.keys.map((S)=>S.keySelector+"."+S.domainName).join(", ")},"Signing outgoing message with %s keys",G.keys.length),G.sign(U,N.data._dkim)});this.transporter.send(N,(...U)=>{if(U[0])this.logger.error({err:U[0],tnx:"transport",action:"send"},"Send Error: %s",U[0].message);E(...U)})})}),R}getVersionString(){return Bv.format("%s (%s; +%s; %s/%s)",K2.name,K2.version,K2.homepage,this.transporter.name,this.transporter.version)}_processPlugins(_,E,R){if(_=(_||"").toString(),!this._userPlugins.hasOwnProperty(_))return R();let N=this._userPlugins[_]||[],A=this._defaultPlugins[_]||[];if(N.length)this.logger.debug({tnx:"transaction",pluginCount:N.length,step:_},"Using %s plugins for %s",N.length,_);if(N.length+A.length===0)return R();let L=0,U="default",G=()=>{let S=U==="default"?A:N;if(L>=S.length)if(U==="default"&&N.length)U="user",L=0,S=N;else return R();let C=S[L++];C(E,(Y)=>{if(Y)return R(Y);G()})};G()}setupProxy(_){let E=Vv.parse(_);this.getSocket=(R,N)=>{let A=E.protocol.replace(/:$/,"").toLowerCase();if(this.meta.has("proxy_handler_"+A))return this.meta.get("proxy_handler_"+A)(E,R,N);switch(A){case"http":case"https":Fv(E.href,R.port,R.host,(L,U)=>{if(L)return N(L);return N(null,{connection:U})});return;case"socks":case"socks5":case"socks4":case"socks4a":{if(!this.meta.has("proxy_socks_module"))return N(new Error("Socks module not loaded"));let L=(U)=>{let G=!!this.meta.get("proxy_socks_module").SocksClient,S=G?this.meta.get("proxy_socks_module").SocksClient:this.meta.get("proxy_socks_module"),C=Number(E.protocol.replace(/\D/g,""))||5,Y={proxy:{ipaddress:U,port:Number(E.port),type:C},[G?"destination":"target"]:{host:R.host,port:R.port},command:"connect"};if(E.auth){let M=decodeURIComponent(E.auth.split(":").shift()),H=decodeURIComponent(E.auth.split(":").pop());if(G)Y.proxy.userId=M,Y.proxy.password=H;else if(C===4)Y.userid=M;else Y.authentication={username:M,password:H}}S.createConnection(Y,(M,H)=>{if(M)return N(M);return N(null,{connection:H.socket||H})})};if(Xv.isIP(E.hostname))return L(E.hostname);return Jv.resolve(E.hostname,(U,G)=>{if(U)return N(U);L(Array.isArray(G)?G[0]:G)})}}N(new Error("Unknown proxy configuration"))}}_convertDataImages(_,E){if(!this.options.attachDataUrls&&!_.data.attachDataUrls||!_.data.html)return E();_.resolveContent(_.data,"html",(R,N)=>{if(R)return E(R);let A=0;N=(N||"").toString().replace(/(]{0,1024} src\s{0,20}=[\s"']{0,20})(data:([^;]+);[^"'>\s]+)/gi,(L,U,G,S)=>{let C=$v.randomBytes(10).toString("hex")+"@localhost";if(!_.data.attachments)_.data.attachments=[];if(!Array.isArray(_.data.attachments))_.data.attachments=[].concat(_.data.attachments||[]);return _.data.attachments.push({path:G,cid:C,filename:"image-"+ ++A+"."+Wv.detectExtension(S)}),U+"cid:"+C}),_.data.html=N,E()})}set(_,E){return this.meta.set(_,E)}get(_){return this.meta.get(_)}}vH.exports=jH});var mH=j((nb,kH)=>{var Zv=require("stream"),wv=Zv.Transform;class hH extends wv{constructor(_){super(_);this.options=_||{},this._curLine="",this.inByteCount=0,this.outByteCount=0,this.lastByte=!1}_transform(_,E,R){let N=[],A=0,L,U,G=0,S;if(!_||!_.length)return R();if(typeof _==="string")_=Buffer.from(_);this.inByteCount+=_.length;for(L=0,U=_.length;LG)S=_.slice(G,L),N.push(S),A+=S.length+2;else A+=2;N.push(Buffer.from("\r\n")),G=L+1}}if(A){if(G<_.length)S=_.slice(G),N.push(S),A+=S.length;this.outByteCount+=A,this.push(Buffer.concat(N,A))}else this.outByteCount+=_.length,this.push(_);this.lastByte=_[_.length-1],R()}_flush(_){let E;if(this.lastByte===10)E=Buffer.from(".\r\n");else if(this.lastByte===13)E=Buffer.from("\n.\r\n");else E=Buffer.from("\r\n.\r\n");this.outByteCount+=E.length,this.push(E),_()}}kH.exports=hH});var lL=j((ob,uH)=>{var Qv=LN(),zv=require("events").EventEmitter,gH=require("net"),yH=require("tls"),xv=require("os"),bH=require("crypto"),qv=mH(),fv=require("stream").PassThrough,eN=IR();class iH extends zv{constructor(_){super(_);if(this.id=bH.randomBytes(8).toString("base64").replace(/\W/g,""),this.stage="init",this.options=_||{},this.secureConnection=!!this.options.secure,this.alreadySecured=!!this.options.secured,this.port=Number(this.options.port)||(this.secureConnection?465:587),this.host=this.options.host||"localhost",this.servername=this.options.servername?this.options.servername:!gH.isIP(this.host)?this.host:!1,this.allowInternalNetworkInterfaces=this.options.allowInternalNetworkInterfaces||!1,typeof this.options.secure==="undefined"&&this.port===465)this.secureConnection=!0;this.name=this.options.name||this._getHostname(),this.logger=eN.getLogger(this.options,{component:this.options.component||"smtp-connection",sid:this.id}),this.customAuth=new Map,Object.keys(this.options.customAuth||{}).forEach((E)=>{let R=(E||"").toString().trim().toUpperCase();if(!R)return;this.customAuth.set(R,this.options.customAuth[E])}),this.version=Qv.version,this.authenticated=!1,this.destroyed=!1,this.secure=!!this.secureConnection,this._remainder="",this._responseQueue=[],this.lastServerResponse=!1,this._socket=!1,this._supportedAuth=[],this.allowsAuth=!1,this._envelope=!1,this._supportedExtensions=[],this._maxAllowedSize=0,this._responseActions=[],this._recipientQueue=[],this._greetingTimeout=!1,this._connectionTimeout=!1,this._destroyed=!1,this._closing=!1,this._onSocketData=(E)=>this._onData(E),this._onSocketError=(E)=>this._onError(E,"ESOCKET",!1,"CONN"),this._onSocketClose=()=>this._onClose(),this._onSocketEnd=()=>this._onEnd(),this._onSocketTimeout=()=>this._onTimeout()}connect(_){if(typeof _==="function"){this.once("connect",()=>{this.logger.debug({tnx:"smtp"},"SMTP handshake finished"),_()});let N=this._isDestroyedMessage("connect");if(N)return _(this._formatError(N,"ECONNECTION",!1,"CONN"))}let E={port:this.port,host:this.host,allowInternalNetworkInterfaces:this.allowInternalNetworkInterfaces,timeout:this.options.dnsTimeout||30000};if(this.options.localAddress)E.localAddress=this.options.localAddress;let R=()=>{this._connectionTimeout=setTimeout(()=>{this._onError("Connection timeout","ETIMEDOUT",!1,"CONN")},this.options.connectionTimeout||120000),this._socket.on("error",this._onSocketError)};if(this.options.connection){if(this._socket=this.options.connection,this.secureConnection&&!this.alreadySecured)setImmediate(()=>this._upgradeConnection((N)=>{if(N){this._onError(new Error("Error initiating TLS - "+(N.message||N)),"ETLS",!1,"CONN");return}this._onConnect()}));else setImmediate(()=>this._onConnect());return}else if(this.options.socket)return this._socket=this.options.socket,eN.resolveHostname(E,(N,A)=>{if(N)return setImmediate(()=>this._onError(N,"EDNS",!1,"CONN"));this.logger.debug({tnx:"dns",source:E.host,resolved:A.host,cached:!!A.cached},"Resolved %s as %s [cache %s]",E.host,A.host,A.cached?"hit":"miss"),Object.keys(A).forEach((L)=>{if(L.charAt(0)!=="_"&&A[L])E[L]=A[L]});try{this._socket.connect(this.port,this.host,()=>{this._socket.setKeepAlive(!0),this._onConnect()}),R()}catch(L){return setImmediate(()=>this._onError(L,"ECONNECTION",!1,"CONN"))}});else if(this.secureConnection){if(this.options.tls)Object.keys(this.options.tls).forEach((N)=>{E[N]=this.options.tls[N]});if(this.servername&&!E.servername)E.servername=this.servername;return eN.resolveHostname(E,(N,A)=>{if(N)return setImmediate(()=>this._onError(N,"EDNS",!1,"CONN"));this.logger.debug({tnx:"dns",source:E.host,resolved:A.host,cached:!!A.cached},"Resolved %s as %s [cache %s]",E.host,A.host,A.cached?"hit":"miss"),Object.keys(A).forEach((L)=>{if(L.charAt(0)!=="_"&&A[L])E[L]=A[L]});try{this._socket=yH.connect(E,()=>{this._socket.setKeepAlive(!0),this._onConnect()}),R()}catch(L){return setImmediate(()=>this._onError(L,"ECONNECTION",!1,"CONN"))}})}else return eN.resolveHostname(E,(N,A)=>{if(N)return setImmediate(()=>this._onError(N,"EDNS",!1,"CONN"));this.logger.debug({tnx:"dns",source:E.host,resolved:A.host,cached:!!A.cached},"Resolved %s as %s [cache %s]",E.host,A.host,A.cached?"hit":"miss"),Object.keys(A).forEach((L)=>{if(L.charAt(0)!=="_"&&A[L])E[L]=A[L]});try{this._socket=gH.connect(E,()=>{this._socket.setKeepAlive(!0),this._onConnect()}),R()}catch(L){return setImmediate(()=>this._onError(L,"ECONNECTION",!1,"CONN"))}})}quit(){this._sendCommand("QUIT"),this._responseActions.push(this.close)}close(){if(clearTimeout(this._connectionTimeout),clearTimeout(this._greetingTimeout),this._responseActions=[],this._closing)return;this._closing=!0;let _="end";if(this.stage==="init")_="destroy";this.logger.debug({tnx:"smtp"},'Closing connection to the server using "%s"',_);let E=this._socket&&this._socket.socket||this._socket;if(E&&!E.destroyed)try{this._socket[_]()}catch(R){}this._destroy()}login(_,E){let R=this._isDestroyedMessage("login");if(R)return E(this._formatError(R,"ECONNECTION",!1,"API"));if(this._auth=_||{},this._authMethod=(this._auth.method||"").toString().trim().toUpperCase()||!1,!this._authMethod&&this._auth.oauth2&&!this._auth.credentials)this._authMethod="XOAUTH2";else if(!this._authMethod||this._authMethod==="XOAUTH2"&&!this._auth.oauth2)this._authMethod=(this._supportedAuth[0]||"PLAIN").toUpperCase().trim();if(this._authMethod!=="XOAUTH2"&&(!this._auth.credentials||!this._auth.credentials.user||!this._auth.credentials.pass))if(this._auth.user&&this._auth.pass||this.customAuth.has(this._authMethod))this._auth.credentials={user:this._auth.user,pass:this._auth.pass,options:this._auth.options};else return E(this._formatError('Missing credentials for "'+this._authMethod+'"',"EAUTH",!1,"API"));if(this.customAuth.has(this._authMethod)){let N=this.customAuth.get(this._authMethod),A,L=!1,U=()=>{if(L)return;L=!0,this.logger.info({tnx:"smtp",username:this._auth.user,action:"authenticated",method:this._authMethod},"User %s authenticated",JSON.stringify(this._auth.user)),this.authenticated=!0,E(null,!0)},G=(C)=>{if(L)return;L=!0,E(this._formatError(C,"EAUTH",A,"AUTH "+this._authMethod))},S=N({auth:this._auth,method:this._authMethod,extensions:[].concat(this._supportedExtensions),authMethods:[].concat(this._supportedAuth),maxAllowedSize:this._maxAllowedSize||!1,sendCommand:(C,Y)=>{let M;if(!Y)M=new Promise((H,X)=>{Y=eN.callbackPromise(H,X)});return this._responseActions.push((H)=>{A=H;let X=H.match(/^(\d+)(?:\s(\d+\.\d+\.\d+))?\s/),$={command:C,response:H};if(X){if($.status=Number(X[1])||0,X[2])$.code=X[2];$.text=H.substr(X[0].length)}else $.text=H,$.status=0;Y(null,$)}),setImmediate(()=>this._sendCommand(C)),M},resolve:U,reject:G});if(S&&typeof S.catch==="function")S.then(U).catch(G);return}switch(this._authMethod){case"XOAUTH2":this._handleXOauth2Token(!1,E);return;case"LOGIN":this._responseActions.push((N)=>{this._actionAUTH_LOGIN_USER(N,E)}),this._sendCommand("AUTH LOGIN");return;case"PLAIN":this._responseActions.push((N)=>{this._actionAUTHComplete(N,E)}),this._sendCommand("AUTH PLAIN "+Buffer.from("\0"+this._auth.credentials.user+"\0"+this._auth.credentials.pass,"utf-8").toString("base64"),"AUTH PLAIN "+Buffer.from("\0"+this._auth.credentials.user+"\0"+"/* secret */","utf-8").toString("base64"));return;case"CRAM-MD5":this._responseActions.push((N)=>{this._actionAUTH_CRAM_MD5(N,E)}),this._sendCommand("AUTH CRAM-MD5");return}return E(this._formatError('Unknown authentication method "'+this._authMethod+'"',"EAUTH",!1,"API"))}send(_,E,R){if(!E)return R(this._formatError("Empty message","EMESSAGE",!1,"API"));let N=this._isDestroyedMessage("send message");if(N)return R(this._formatError(N,"ECONNECTION",!1,"API"));if(this._maxAllowedSize&&_.size>this._maxAllowedSize)return setImmediate(()=>{R(this._formatError("Message size larger than allowed "+this._maxAllowedSize,"EMESSAGE",!1,"MAIL FROM"))});let A=!1,L=function(){if(A)return;A=!0,R(...arguments)};if(typeof E.on==="function")E.on("error",(G)=>L(this._formatError(G,"ESTREAM",!1,"API")));let U=Date.now();this._setEnvelope(_,(G,S)=>{if(G)return L(G);let C=Date.now(),Y=this._createSendStream((M,H)=>{if(M)return L(M);return S.envelopeTime=C-U,S.messageTime=Date.now()-C,S.messageSize=Y.outByteCount,S.response=H,L(null,S)});if(typeof E.pipe==="function")E.pipe(Y);else Y.write(E),Y.end()})}reset(_){this._sendCommand("RSET"),this._responseActions.push((E)=>{if(E.charAt(0)!=="2")return _(this._formatError("Could not reset session state. response="+E,"EPROTOCOL",E,"RSET"));return this._envelope=!1,_(null,!0)})}_onConnect(){if(clearTimeout(this._connectionTimeout),this.logger.info({tnx:"network",localAddress:this._socket.localAddress,localPort:this._socket.localPort,remoteAddress:this._socket.remoteAddress,remotePort:this._socket.remotePort},"%s established to %s:%s",this.secure?"Secure connection":"Connection",this._socket.remoteAddress,this._socket.remotePort),this._destroyed){this.close();return}this.stage="connected",this._socket.removeListener("data",this._onSocketData),this._socket.removeListener("timeout",this._onSocketTimeout),this._socket.removeListener("close",this._onSocketClose),this._socket.removeListener("end",this._onSocketEnd),this._socket.on("data",this._onSocketData),this._socket.once("close",this._onSocketClose),this._socket.once("end",this._onSocketEnd),this._socket.setTimeout(this.options.socketTimeout||600000),this._socket.on("timeout",this._onSocketTimeout),this._greetingTimeout=setTimeout(()=>{if(this._socket&&!this._destroyed&&this._responseActions[0]===this._actionGreeting)this._onError("Greeting never received","ETIMEDOUT",!1,"CONN")},this.options.greetingTimeout||30000),this._responseActions.push(this._actionGreeting),this._socket.resume()}_onData(_){if(this._destroyed||!_||!_.length)return;let E=(_||"").toString("binary"),R=(this._remainder+E).split(/\r?\n/),N;this._remainder=R.pop();for(let A=0,L=R.length;A{R[N]=this.options.tls[N]}),this.servername&&!R.servername)R.servername=this.servername;this.upgrading=!0;try{this._socket=yH.connect(R,()=>{return this.secure=!0,this.upgrading=!1,this._socket.on("data",this._onSocketData),E.removeListener("close",this._onSocketClose),E.removeListener("end",this._onSocketEnd),_(null,!0)})}catch(N){return _(N)}this._socket.on("error",this._onSocketError),this._socket.once("close",this._onSocketClose),this._socket.once("end",this._onSocketEnd),this._socket.setTimeout(this.options.socketTimeout||600000),this._socket.on("timeout",this._onSocketTimeout),E.resume()}_processResponse(){if(!this._responseQueue.length)return!1;let _=this.lastServerResponse=(this._responseQueue.shift()||"").toString();if(/^\d+-/.test(_.split("\n").pop()))return;if(this.options.debug||this.options.transactionLog)this.logger.debug({tnx:"server"},_.replace(/\r?\n$/,""));if(!_.trim())setImmediate(()=>this._processResponse());let E=this._responseActions.shift();if(typeof E==="function")E.call(this,_),setImmediate(()=>this._processResponse());else return this._onError(new Error("Unexpected Response"),"EPROTOCOL",_,"CONN")}_sendCommand(_,E){if(this._destroyed)return;if(this._socket.destroyed)return this.close();if(this.options.debug||this.options.transactionLog)this.logger.debug({tnx:"client"},(E||_||"").toString().replace(/\r?\n$/,""));this._socket.write(Buffer.from(_+"\r\n","utf-8"))}_setEnvelope(_,E){let R=[],N=!1;if(this._envelope=_||{},this._envelope.from=(this._envelope.from&&this._envelope.from.address||this._envelope.from||"").toString().trim(),this._envelope.to=[].concat(this._envelope.to||[]).map((A)=>(A&&A.address||A||"").toString().trim()),!this._envelope.to.length)return E(this._formatError("No recipients defined","EENVELOPE",!1,"API"));if(this._envelope.from&&/[\r\n<>]/.test(this._envelope.from))return E(this._formatError("Invalid sender "+JSON.stringify(this._envelope.from),"EENVELOPE",!1,"API"));if(/[\x80-\uFFFF]/.test(this._envelope.from))N=!0;for(let A=0,L=this._envelope.to.length;A]/.test(this._envelope.to[A]))return E(this._formatError("Invalid recipient "+JSON.stringify(this._envelope.to[A]),"EENVELOPE",!1,"API"));if(/[\x80-\uFFFF]/.test(this._envelope.to[A]))N=!0}if(this._envelope.rcptQueue=JSON.parse(JSON.stringify(this._envelope.to||[])),this._envelope.rejected=[],this._envelope.rejectedErrors=[],this._envelope.accepted=[],this._envelope.dsn)try{this._envelope.dsn=this._setDsnEnvelope(this._envelope.dsn)}catch(A){return E(this._formatError("Invalid DSN "+A.message,"EENVELOPE",!1,"API"))}if(this._responseActions.push((A)=>{this._actionMAIL(A,E)}),N&&this._supportedExtensions.includes("SMTPUTF8"))R.push("SMTPUTF8"),this._usingSmtpUtf8=!0;if(this._envelope.use8BitMime&&this._supportedExtensions.includes("8BITMIME"))R.push("BODY=8BITMIME"),this._using8BitMime=!0;if(this._envelope.size&&this._supportedExtensions.includes("SIZE"))R.push("SIZE="+this._envelope.size);if(this._envelope.dsn&&this._supportedExtensions.includes("DSN")){if(this._envelope.dsn.ret)R.push("RET="+eN.encodeXText(this._envelope.dsn.ret));if(this._envelope.dsn.envid)R.push("ENVID="+eN.encodeXText(this._envelope.dsn.envid))}this._sendCommand("MAIL FROM:<"+this._envelope.from+">"+(R.length?" "+R.join(" "):""))}_setDsnEnvelope(_){let E=(_.ret||_.return||"").toString().toUpperCase()||null;if(E)switch(E){case"HDRS":case"HEADERS":E="HDRS";break;case"FULL":case"BODY":E="FULL";break}if(E&&!["FULL","HDRS"].includes(E))throw new Error("ret: "+JSON.stringify(E));let R=(_.envid||_.id||"").toString()||null,N=_.notify||null;if(N){if(typeof N==="string")N=N.split(",");N=N.map((G)=>G.trim().toUpperCase());let L=["NEVER","SUCCESS","FAILURE","DELAY"];if(N.filter((G)=>!L.includes(G)).length||N.length>1&&N.includes("NEVER"))throw new Error("notify: "+JSON.stringify(N.join(",")));N=N.join(",")}let A=(_.recipient||_.orcpt||"").toString()||null;if(A&&A.indexOf(";")<0)A="rfc822;"+A;return{ret:E,envid:R,notify:N,orcpt:A}}_getDsnRcptToArgs(){let _=[];if(this._envelope.dsn&&this._supportedExtensions.includes("DSN")){if(this._envelope.dsn.notify)_.push("NOTIFY="+eN.encodeXText(this._envelope.dsn.notify));if(this._envelope.dsn.orcpt)_.push("ORCPT="+eN.encodeXText(this._envelope.dsn.orcpt))}return _.length?" "+_.join(" "):""}_createSendStream(_){let E=new qv,R;if(this.options.lmtp)this._envelope.accepted.forEach((N,A)=>{let L=A===this._envelope.accepted.length-1;this._responseActions.push((U)=>{this._actionLMTPStream(N,L,U,_)})});else this._responseActions.push((N)=>{this._actionSMTPStream(N,_)});if(E.pipe(this._socket,{end:!1}),this.options.debug)R=new fv,R.on("readable",()=>{let N;while(N=R.read())this.logger.debug({tnx:"message"},N.toString("binary").replace(/\r?\n$/,""))}),E.pipe(R);return E.once("end",()=>{this.logger.info({tnx:"message",inByteCount:E.inByteCount,outByteCount:E.outByteCount},"<%s bytes encoded mime message (source size %s bytes)>",E.outByteCount,E.inByteCount)}),E}_actionGreeting(_){if(clearTimeout(this._greetingTimeout),_.substr(0,3)!=="220"){this._onError(new Error("Invalid greeting. response="+_),"EPROTOCOL",_,"CONN");return}if(this.options.lmtp)this._responseActions.push(this._actionLHLO),this._sendCommand("LHLO "+this.name);else this._responseActions.push(this._actionEHLO),this._sendCommand("EHLO "+this.name)}_actionLHLO(_){if(_.charAt(0)!=="2"){this._onError(new Error("Invalid LHLO. response="+_),"EPROTOCOL",_,"LHLO");return}this._actionEHLO(_)}_actionEHLO(_){let E;if(_.substr(0,3)==="421"){this._onError(new Error("Server terminates connection. response="+_),"ECONNECTION",_,"EHLO");return}if(_.charAt(0)!=="2"){if(this.options.requireTLS){this._onError(new Error("EHLO failed but HELO does not support required STARTTLS. response="+_),"ECONNECTION",_,"EHLO");return}this._responseActions.push(this._actionHELO),this._sendCommand("HELO "+this.name);return}if(this._ehloLines=_.split(/\r?\n/).map((R)=>R.replace(/^\d+[ -]/,"").trim()).filter((R)=>R).slice(1),!this.secure&&!this.options.ignoreTLS&&(/[ -]STARTTLS\b/im.test(_)||this.options.requireTLS)){this._sendCommand("STARTTLS"),this._responseActions.push(this._actionSTARTTLS);return}if(/[ -]SMTPUTF8\b/im.test(_))this._supportedExtensions.push("SMTPUTF8");if(/[ -]DSN\b/im.test(_))this._supportedExtensions.push("DSN");if(/[ -]8BITMIME\b/im.test(_))this._supportedExtensions.push("8BITMIME");if(/[ -]PIPELINING\b/im.test(_))this._supportedExtensions.push("PIPELINING");if(/[ -]AUTH\b/i.test(_))this.allowsAuth=!0;if(/[ -]AUTH(?:(\s+|=)[^\n]*\s+|\s+|=)PLAIN/i.test(_))this._supportedAuth.push("PLAIN");if(/[ -]AUTH(?:(\s+|=)[^\n]*\s+|\s+|=)LOGIN/i.test(_))this._supportedAuth.push("LOGIN");if(/[ -]AUTH(?:(\s+|=)[^\n]*\s+|\s+|=)CRAM-MD5/i.test(_))this._supportedAuth.push("CRAM-MD5");if(/[ -]AUTH(?:(\s+|=)[^\n]*\s+|\s+|=)XOAUTH2/i.test(_))this._supportedAuth.push("XOAUTH2");if(E=_.match(/[ -]SIZE(?:[ \t]+(\d+))?/im))this._supportedExtensions.push("SIZE"),this._maxAllowedSize=Number(E[1])||0;this.emit("connect")}_actionHELO(_){if(_.charAt(0)!=="2"){this._onError(new Error("Invalid HELO. response="+_),"EPROTOCOL",_,"HELO");return}this.allowsAuth=!0,this.emit("connect")}_actionSTARTTLS(_){if(_.charAt(0)!=="2"){if(this.options.opportunisticTLS)return this.logger.info({tnx:"smtp"},"Failed STARTTLS upgrade, continuing unencrypted"),this.emit("connect");this._onError(new Error("Error upgrading connection with STARTTLS"),"ETLS",_,"STARTTLS");return}this._upgradeConnection((E,R)=>{if(E){this._onError(new Error("Error initiating TLS - "+(E.message||E)),"ETLS",!1,"STARTTLS");return}if(this.logger.info({tnx:"smtp"},"Connection upgraded with STARTTLS"),R)if(this.options.lmtp)this._responseActions.push(this._actionLHLO),this._sendCommand("LHLO "+this.name);else this._responseActions.push(this._actionEHLO),this._sendCommand("EHLO "+this.name);else this.emit("connect")})}_actionAUTH_LOGIN_USER(_,E){if(!/^334[ -]/.test(_)){E(this._formatError('Invalid login sequence while waiting for "334 VXNlcm5hbWU6"',"EAUTH",_,"AUTH LOGIN"));return}this._responseActions.push((R)=>{this._actionAUTH_LOGIN_PASS(R,E)}),this._sendCommand(Buffer.from(this._auth.credentials.user+"","utf-8").toString("base64"))}_actionAUTH_CRAM_MD5(_,E){let R=_.match(/^334\s+(.+)$/),N="";if(!R)return E(this._formatError("Invalid login sequence while waiting for server challenge string","EAUTH",_,"AUTH CRAM-MD5"));else N=R[1];let A=Buffer.from(N,"base64").toString("ascii"),L=bH.createHmac("md5",this._auth.credentials.pass);L.update(A);let U=this._auth.credentials.user+" "+L.digest("hex");this._responseActions.push((G)=>{this._actionAUTH_CRAM_MD5_PASS(G,E)}),this._sendCommand(Buffer.from(U).toString("base64"),Buffer.from(this._auth.credentials.user+" /* secret */").toString("base64"))}_actionAUTH_CRAM_MD5_PASS(_,E){if(!_.match(/^235\s+/))return E(this._formatError('Invalid login sequence while waiting for "235"',"EAUTH",_,"AUTH CRAM-MD5"));this.logger.info({tnx:"smtp",username:this._auth.user,action:"authenticated",method:this._authMethod},"User %s authenticated",JSON.stringify(this._auth.user)),this.authenticated=!0,E(null,!0)}_actionAUTH_LOGIN_PASS(_,E){if(!/^334[ -]/.test(_))return E(this._formatError('Invalid login sequence while waiting for "334 UGFzc3dvcmQ6"',"EAUTH",_,"AUTH LOGIN"));this._responseActions.push((R)=>{this._actionAUTHComplete(R,E)}),this._sendCommand(Buffer.from((this._auth.credentials.pass||"").toString(),"utf-8").toString("base64"),Buffer.from("/* secret */","utf-8").toString("base64"))}_actionAUTHComplete(_,E,R){if(!R&&typeof E==="function")R=E,E=!1;if(_.substr(0,3)==="334"){this._responseActions.push((N)=>{if(E||this._authMethod!=="XOAUTH2")this._actionAUTHComplete(N,!0,R);else setImmediate(()=>this._handleXOauth2Token(!0,R))}),this._sendCommand("");return}if(_.charAt(0)!=="2")return this.logger.info({tnx:"smtp",username:this._auth.user,action:"authfail",method:this._authMethod},"User %s failed to authenticate",JSON.stringify(this._auth.user)),R(this._formatError("Invalid login","EAUTH",_,"AUTH "+this._authMethod));this.logger.info({tnx:"smtp",username:this._auth.user,action:"authenticated",method:this._authMethod},"User %s authenticated",JSON.stringify(this._auth.user)),this.authenticated=!0,R(null,!0)}_actionMAIL(_,E){let R,N;if(Number(_.charAt(0))!==2){if(this._usingSmtpUtf8&&/^550 /.test(_)&&/[\x80-\uFFFF]/.test(this._envelope.from))R="Internationalized mailbox name not allowed";else R="Mail command failed";return E(this._formatError(R,"EENVELOPE",_,"MAIL FROM"))}if(!this._envelope.rcptQueue.length)return E(this._formatError("Can't send mail - no recipients defined","EENVELOPE",!1,"API"));else if(this._recipientQueue=[],this._supportedExtensions.includes("PIPELINING"))while(this._envelope.rcptQueue.length)N=this._envelope.rcptQueue.shift(),this._recipientQueue.push(N),this._responseActions.push((A)=>{this._actionRCPT(A,E)}),this._sendCommand("RCPT TO:<"+N+">"+this._getDsnRcptToArgs());else N=this._envelope.rcptQueue.shift(),this._recipientQueue.push(N),this._responseActions.push((A)=>{this._actionRCPT(A,E)}),this._sendCommand("RCPT TO:<"+N+">"+this._getDsnRcptToArgs())}_actionRCPT(_,E){let R,N,A=this._recipientQueue.shift();if(Number(_.charAt(0))!==2){if(this._usingSmtpUtf8&&/^553 /.test(_)&&/[\x80-\uFFFF]/.test(A))R="Internationalized mailbox name not allowed";else R="Recipient command failed";this._envelope.rejected.push(A),N=this._formatError(R,"EENVELOPE",_,"RCPT TO"),N.recipient=A,this._envelope.rejectedErrors.push(N)}else this._envelope.accepted.push(A);if(!this._envelope.rcptQueue.length&&!this._recipientQueue.length)if(this._envelope.rejected.length{this._actionDATA(L,E)}),this._sendCommand("DATA");else return N=this._formatError("Can't send mail - all recipients were rejected","EENVELOPE",_,"RCPT TO"),N.rejected=this._envelope.rejected,N.rejectedErrors=this._envelope.rejectedErrors,E(N);else if(this._envelope.rcptQueue.length)A=this._envelope.rcptQueue.shift(),this._recipientQueue.push(A),this._responseActions.push((L)=>{this._actionRCPT(L,E)}),this._sendCommand("RCPT TO:<"+A+">"+this._getDsnRcptToArgs())}_actionDATA(_,E){if(!/^[23]/.test(_))return E(this._formatError("Data command failed","EENVELOPE",_,"DATA"));let R={accepted:this._envelope.accepted,rejected:this._envelope.rejected};if(this._ehloLines&&this._ehloLines.length)R.ehlo=this._ehloLines;if(this._envelope.rejectedErrors.length)R.rejectedErrors=this._envelope.rejectedErrors;E(null,R)}_actionSMTPStream(_,E){if(Number(_.charAt(0))!==2)return E(this._formatError("Message failed","EMESSAGE",_,"DATA"));else return E(null,_)}_actionLMTPStream(_,E,R,N){let A;if(Number(R.charAt(0))!==2){A=this._formatError("Message failed for recipient "+_,"EMESSAGE",R,"DATA"),A.recipient=_,this._envelope.rejected.push(_),this._envelope.rejectedErrors.push(A);for(let L=0,U=this._envelope.accepted.length;L{if(R)return this.logger.info({tnx:"smtp",username:this._auth.user,action:"authfail",method:this._authMethod},"User %s failed to authenticate",JSON.stringify(this._auth.user)),E(this._formatError(R,"EAUTH",!1,"AUTH XOAUTH2"));this._responseActions.push((A)=>{this._actionAUTHComplete(A,_,E)}),this._sendCommand("AUTH XOAUTH2 "+this._auth.oauth2.buildXOAuth2Token(N),"AUTH XOAUTH2 "+this._auth.oauth2.buildXOAuth2Token("/* secret */"))})}_isDestroyedMessage(_){if(this._destroyed)return"Cannot "+_+" - smtp connection is already destroyed.";if(this._socket){if(this._socket.destroyed)return"Cannot "+_+" - smtp connection socket is already destroyed.";if(!this._socket.writable)return"Cannot "+_+" - smtp connection socket is already half-closed."}}_getHostname(){let _;try{_=xv.hostname()||""}catch(E){_="localhost"}if(!_||_.indexOf(".")<0)_="[127.0.0.1]";if(_.match(/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/))_="["+_+"]";return _}}uH.exports=iH});var X2=j((sb,dH)=>{var jv=require("stream").Stream,vv=UA(),pv=require("crypto"),hv=IR();class cH extends jv{constructor(_,E){super();if(this.options=_||{},_&&_.serviceClient){if(!_.privateKey||!_.user){setImmediate(()=>this.emit("error",new Error('Options "privateKey" and "user" are required for service account!')));return}let R=Math.min(Math.max(Number(this.options.serviceRequestTimeout)||0,0),3600);this.options.serviceRequestTimeout=R||300}if(this.logger=hv.getLogger({logger:E},{component:this.options.component||"OAuth2"}),this.provisionCallback=typeof this.options.provisionCallback==="function"?this.options.provisionCallback:!1,this.options.accessUrl=this.options.accessUrl||"https://accounts.google.com/o/oauth2/token",this.options.customHeaders=this.options.customHeaders||{},this.options.customParams=this.options.customParams||{},this.accessToken=this.options.accessToken||!1,this.options.expires&&Number(this.options.expires))this.expires=this.options.expires;else{let R=Math.max(Number(this.options.timeout)||0,0);this.expires=R&&Date.now()+R*1000||0}}getToken(_,E){if(!_&&this.accessToken&&(!this.expires||this.expires>Date.now()))return E(null,this.accessToken);let R=(...N)=>{if(N[0])this.logger.error({err:N[0],tnx:"OAUTH2",user:this.options.user,action:"renew"},"Failed generating new Access Token for %s",this.options.user);else this.logger.info({tnx:"OAUTH2",user:this.options.user,action:"renew"},"Generated new Access Token for %s",this.options.user);E(...N)};if(this.provisionCallback)this.provisionCallback(this.options.user,!!_,(N,A,L)=>{if(!N&&A)this.accessToken=A,this.expires=L||0;R(N,A)});else this.generateToken(R)}updateToken(_,E){this.accessToken=_,E=Math.max(Number(E)||0,0),this.expires=E&&Date.now()+E*1000||0,this.emit("token",{user:this.options.user,accessToken:_||"",expires:this.expires})}generateToken(_){let E,R;if(this.options.serviceClient){let N=Math.floor(Date.now()/1000),A={iss:this.options.serviceClient,scope:this.options.scope||"https://mail.google.com/",sub:this.options.user,aud:this.options.accessUrl,iat:N,exp:N+this.options.serviceRequestTimeout},L;try{L=this.jwtSignRS256(A)}catch(U){return _(new Error("Can't generate token. Check your auth options"))}E={grant_type:"urn:ietf:params:oauth:grant-type:jwt-bearer",assertion:L},R={grant_type:"urn:ietf:params:oauth:grant-type:jwt-bearer",assertion:A}}else{if(!this.options.refreshToken)return _(new Error("Can't create new access token for user"));E={client_id:this.options.clientId||"",client_secret:this.options.clientSecret||"",refresh_token:this.options.refreshToken,grant_type:"refresh_token"},R={client_id:this.options.clientId||"",client_secret:(this.options.clientSecret||"").substr(0,6)+"...",refresh_token:(this.options.refreshToken||"").substr(0,6)+"...",grant_type:"refresh_token"}}Object.keys(this.options.customParams).forEach((N)=>{E[N]=this.options.customParams[N],R[N]=this.options.customParams[N]}),this.logger.debug({tnx:"OAUTH2",user:this.options.user,action:"generate"},"Requesting token using: %s",JSON.stringify(R)),this.postRequest(this.options.accessUrl,E,this.options,(N,A)=>{let L;if(N)return _(N);try{L=JSON.parse(A.toString())}catch(G){return _(G)}if(!L||typeof L!=="object")return this.logger.debug({tnx:"OAUTH2",user:this.options.user,action:"post"},"Response: %s",(A||"").toString()),_(new Error("Invalid authentication response"));let U={};if(Object.keys(L).forEach((G)=>{if(G!=="access_token")U[G]=L[G];else U[G]=(L[G]||"").toString().substr(0,6)+"..."}),this.logger.debug({tnx:"OAUTH2",user:this.options.user,action:"post"},"Response: %s",JSON.stringify(U)),L.error){let G=L.error;if(L.error_description)G+=": "+L.error_description;if(L.error_uri)G+=" ("+L.error_uri+")";return _(new Error(G))}if(L.access_token)return this.updateToken(L.access_token,L.expires_in),_(null,this.accessToken);return _(new Error("No access token"))})}buildXOAuth2Token(_){let E=["user="+(this.options.user||""),"auth=Bearer "+(_||this.accessToken),"",""];return Buffer.from(E.join("\x01"),"utf-8").toString("base64")}postRequest(_,E,R,N){let A=!1,L=[],U=0,G=vv(_,{method:"post",headers:R.customHeaders,body:E,allowErrorResponse:!0});G.on("readable",()=>{let S;while((S=G.read())!==null)L.push(S),U+=S.length}),G.once("error",(S)=>{if(A)return;return A=!0,N(S)}),G.once("end",()=>{if(A)return;return A=!0,N(null,Buffer.concat(L,U))})}toBase64URL(_){if(typeof _==="string")_=Buffer.from(_);return _.toString("base64").replace(/[=]+/g,"").replace(/\+/g,"-").replace(/\//g,"_")}jwtSignRS256(_){_=['{"alg":"RS256","typ":"JWT"}',JSON.stringify(_)].map((R)=>this.toBase64URL(R)).join(".");let E=pv.createSign("RSA-SHA256").update(_).sign(this.options.privateKey);return _+"."+this.toBase64URL(E)}}dH.exports=cH});var oH=j((tb,nH)=>{var kv=lL(),mv=IR().assign,gv=X2(),yv=require("events");class lH extends yv{constructor(_){super();if(this.pool=_,this.options=_.options,this.logger=this.pool.logger,this.options.auth)switch((this.options.auth.type||"").toString().toUpperCase()){case"OAUTH2":{let E=new gv(this.options.auth,this.logger);E.provisionCallback=this.pool.mailer&&this.pool.mailer.get("oauth2_provision_cb")||E.provisionCallback,this.auth={type:"OAUTH2",user:this.options.auth.user,oauth2:E,method:"XOAUTH2"},E.on("token",(R)=>this.pool.mailer.emit("token",R)),E.on("error",(R)=>this.emit("error",R));break}default:if(!this.options.auth.user&&!this.options.auth.pass)break;this.auth={type:(this.options.auth.type||"").toString().toUpperCase()||"LOGIN",user:this.options.auth.user,credentials:{user:this.options.auth.user||"",pass:this.options.auth.pass,options:this.options.auth.options},method:(this.options.auth.method||"").trim().toUpperCase()||this.options.authMethod||!1}}this._connection=!1,this._connected=!1,this.messages=0,this.available=!0}connect(_){this.pool.getSocket(this.options,(E,R)=>{if(E)return _(E);let N=!1,A=this.options;if(R&&R.connection)this.logger.info({tnx:"proxy",remoteAddress:R.connection.remoteAddress,remotePort:R.connection.remotePort,destHost:A.host||"",destPort:A.port||"",action:"connected"},"Using proxied socket from %s:%s to %s:%s",R.connection.remoteAddress,R.connection.remotePort,A.host||"",A.port||""),A=mv(!1,A),Object.keys(R).forEach((L)=>{A[L]=R[L]});this.connection=new kv(A),this.connection.once("error",(L)=>{if(this.emit("error",L),N)return;return N=!0,_(L)}),this.connection.once("end",()=>{if(this.close(),N)return;N=!0;let L=setTimeout(()=>{if(N)return;let U=new Error("Unexpected socket close");if(this.connection&&this.connection._socket&&this.connection._socket.upgrading)U.code="ETLS";_(U)},1000);try{L.unref()}catch(U){}}),this.connection.connect(()=>{if(N)return;if(this.auth&&(this.connection.allowsAuth||A.forceAuth))this.connection.login(this.auth,(L)=>{if(N)return;if(N=!0,L)return this.connection.close(),this.emit("error",L),_(L);this._connected=!0,_(null,!0)});else return N=!0,this._connected=!0,_(null,!0)})})}send(_,E){if(!this._connected)return this.connect((L)=>{if(L)return E(L);return this.send(_,E)});let R=_.message.getEnvelope(),N=_.message.messageId(),A=[].concat(R.to||[]);if(A.length>3)A.push("...and "+A.splice(2).length+" more");if(this.logger.info({tnx:"send",messageId:N,cid:this.id},"Sending message %s using #%s to <%s>",N,this.id,A.join(", ")),_.data.dsn)R.dsn=_.data.dsn;this.connection.send(R,_.message.createReadStream(),(L,U)=>{if(this.messages++,L)return this.connection.close(),this.emit("error",L),E(L);U.envelope={from:R.from,to:R.to},U.messageId=N,setImmediate(()=>{let G;if(this.messages>=this.options.maxMessages)G=new Error("Resource exhausted"),G.code="EMAXLIMIT",this.connection.close(),this.emit("error",G);else this.pool._checkRateLimit(()=>{this.available=!0,this.emit("available")})}),E(null,U)})}close(){if(this._connected=!1,this.auth&&this.auth.oauth2)this.auth.oauth2.removeAllListeners();if(this.connection)this.connection.close();this.emit("close")}}nH.exports=lH});var sH=j((rb,bv)=>{bv.exports={"1und1":{host:"smtp.1und1.de",port:465,secure:!0,authMethod:"LOGIN"},Aliyun:{domains:["aliyun.com"],host:"smtp.aliyun.com",port:465,secure:!0},AOL:{domains:["aol.com"],host:"smtp.aol.com",port:587},Bluewin:{host:"smtpauths.bluewin.ch",domains:["bluewin.ch"],port:465},DebugMail:{host:"debugmail.io",port:25},DynectEmail:{aliases:["Dynect"],host:"smtp.dynect.net",port:25},Ethereal:{aliases:["ethereal.email"],host:"smtp.ethereal.email",port:587},FastMail:{domains:["fastmail.fm"],host:"smtp.fastmail.com",port:465,secure:!0},"Forward Email":{aliases:["FE","ForwardEmail"],domains:["forwardemail.net"],host:"smtp.forwardemail.net",port:465,secure:!0},"Feishu Mail":{aliases:["Feishu","FeishuMail"],domains:["www.feishu.cn"],host:"smtp.feishu.cn",port:465,secure:!0},GandiMail:{aliases:["Gandi","Gandi Mail"],host:"mail.gandi.net",port:587},Gmail:{aliases:["Google Mail"],domains:["gmail.com","googlemail.com"],host:"smtp.gmail.com",port:465,secure:!0},Godaddy:{host:"smtpout.secureserver.net",port:25},GodaddyAsia:{host:"smtp.asia.secureserver.net",port:25},GodaddyEurope:{host:"smtp.europe.secureserver.net",port:25},"hot.ee":{host:"mail.hot.ee"},Hotmail:{aliases:["Outlook","Outlook.com","Hotmail.com"],domains:["hotmail.com","outlook.com"],host:"smtp-mail.outlook.com",port:587},iCloud:{aliases:["Me","Mac"],domains:["me.com","mac.com"],host:"smtp.mail.me.com",port:587},Infomaniak:{host:"mail.infomaniak.com",domains:["ik.me","ikmail.com","etik.com"],port:587},Loopia:{host:"mailcluster.loopia.se",port:465},"mail.ee":{host:"smtp.mail.ee"},"Mail.ru":{host:"smtp.mail.ru",port:465,secure:!0},"Mailcatch.app":{host:"sandbox-smtp.mailcatch.app",port:2525},Maildev:{port:1025,ignoreTLS:!0},Mailgun:{host:"smtp.mailgun.org",port:465,secure:!0},Mailjet:{host:"in.mailjet.com",port:587},Mailosaur:{host:"mailosaur.io",port:25},Mailtrap:{host:"live.smtp.mailtrap.io",port:587},Mandrill:{host:"smtp.mandrillapp.com",port:587},Naver:{host:"smtp.naver.com",port:587},One:{host:"send.one.com",port:465,secure:!0},OpenMailBox:{aliases:["OMB","openmailbox.org"],host:"smtp.openmailbox.org",port:465,secure:!0},Outlook365:{host:"smtp.office365.com",port:587,secure:!1},OhMySMTP:{host:"smtp.ohmysmtp.com",port:587,secure:!1},Postmark:{aliases:["PostmarkApp"],host:"smtp.postmarkapp.com",port:2525},"qiye.aliyun":{host:"smtp.mxhichina.com",port:"465",secure:!0},QQ:{domains:["qq.com"],host:"smtp.qq.com",port:465,secure:!0},QQex:{aliases:["QQ Enterprise"],domains:["exmail.qq.com"],host:"smtp.exmail.qq.com",port:465,secure:!0},SendCloud:{host:"smtp.sendcloud.net",port:2525},SendGrid:{host:"smtp.sendgrid.net",port:587},SendinBlue:{aliases:["Brevo"],host:"smtp-relay.brevo.com",port:587},SendPulse:{host:"smtp-pulse.com",port:465,secure:!0},SES:{host:"email-smtp.us-east-1.amazonaws.com",port:465,secure:!0},"SES-US-EAST-1":{host:"email-smtp.us-east-1.amazonaws.com",port:465,secure:!0},"SES-US-WEST-2":{host:"email-smtp.us-west-2.amazonaws.com",port:465,secure:!0},"SES-EU-WEST-1":{host:"email-smtp.eu-west-1.amazonaws.com",port:465,secure:!0},"SES-AP-SOUTH-1":{host:"email-smtp.ap-south-1.amazonaws.com",port:465,secure:!0},"SES-AP-NORTHEAST-1":{host:"email-smtp.ap-northeast-1.amazonaws.com",port:465,secure:!0},"SES-AP-NORTHEAST-2":{host:"email-smtp.ap-northeast-2.amazonaws.com",port:465,secure:!0},"SES-AP-NORTHEAST-3":{host:"email-smtp.ap-northeast-3.amazonaws.com",port:465,secure:!0},"SES-AP-SOUTHEAST-1":{host:"email-smtp.ap-southeast-1.amazonaws.com",port:465,secure:!0},"SES-AP-SOUTHEAST-2":{host:"email-smtp.ap-southeast-2.amazonaws.com",port:465,secure:!0},Sparkpost:{aliases:["SparkPost","SparkPost Mail"],domains:["sparkpost.com"],host:"smtp.sparkpostmail.com",port:587,secure:!1},Tipimail:{host:"smtp.tipimail.com",port:587},Yahoo:{domains:["yahoo.com"],host:"smtp.mail.yahoo.com",port:465,secure:!0},Yandex:{domains:["yandex.ru"],host:"smtp.yandex.ru",port:465,secure:!0},Zoho:{host:"smtp.zoho.com",port:465,secure:!0,authMethod:"LOGIN"},"126":{host:"smtp.126.com",port:465,secure:!0},"163":{host:"smtp.163.com",port:465,secure:!0}}});var $2=j((ab,rH)=>{var tH=sH(),nL={};Object.keys(tH).forEach((_)=>{let E=tH[_];nL[oL(_)]=J2(E),[].concat(E.aliases||[]).forEach((R)=>{nL[oL(R)]=J2(E)}),[].concat(E.domains||[]).forEach((R)=>{nL[oL(R)]=J2(E)})});function oL(_){return _.replace(/[^a-zA-Z0-9.-]/g,"").toLowerCase()}function J2(_){let E=["domains","aliases"],R={};return Object.keys(_).forEach((N)=>{if(E.indexOf(N)<0)R[N]=_[N]}),R}rH.exports=function(_){return _=oL(_.split("@").pop()),nL[_]||!1}});var RW=j((eb,EW)=>{var iv=require("events"),aH=oH(),eH=lL(),uv=$2(),YA=IR(),cv=LN();class _W extends iv{constructor(_){super();if(_=_||{},typeof _==="string")_={url:_};let E,R=_.service;if(typeof _.getSocket==="function")this.getSocket=_.getSocket;if(_.url)E=YA.parseConnectionUrl(_.url),R=R||E.service;this.options=YA.assign(!1,_,E,R&&uv(R)),this.options.maxConnections=this.options.maxConnections||5,this.options.maxMessages=this.options.maxMessages||100,this.logger=YA.getLogger(this.options,{component:this.options.component||"smtp-pool"});let N=new eH(this.options);this.name="SMTP (pool)",this.version=cv.version+"[client:"+N.version+"]",this._rateLimit={counter:0,timeout:null,waiting:[],checkpoint:!1,delta:Number(this.options.rateDelta)||1000,limit:Number(this.options.rateLimit)||0},this._closed=!1,this._queue=[],this._connections=[],this._connectionCounter=0,this.idling=!0,setImmediate(()=>{if(this.idling)this.emit("idle")})}getSocket(_,E){return setImmediate(()=>E(null,!1))}send(_,E){if(this._closed)return!1;if(this._queue.push({mail:_,requeueAttempts:0,callback:E}),this.idling&&this._queue.length>=this.options.maxConnections)this.idling=!1;return setImmediate(()=>this._processMessages()),!0}close(){let _,E=this._connections.length;if(this._closed=!0,clearTimeout(this._rateLimit.timeout),!E&&!this._queue.length)return;for(let N=E-1;N>=0;N--)if(this._connections[N]&&this._connections[N].available)_=this._connections[N],_.close(),this.logger.info({tnx:"connection",cid:_.id,action:"removed"},"Connection #%s removed",_.id);if(E&&!this._connections.length)this.logger.debug({tnx:"connection"},"All connections removed");if(!this._queue.length)return;let R=()=>{if(!this._queue.length){this.logger.debug({tnx:"connection"},"Pending queue entries cleared");return}let N=this._queue.shift();if(N&&typeof N.callback==="function")try{N.callback(new Error("Connection pool was closed"))}catch(A){this.logger.error({err:A,tnx:"callback",cid:_.id},"Callback error for #%s: %s",_.id,A.message)}setImmediate(R)};setImmediate(R)}_processMessages(){let _,E,R;if(this._closed)return;if(!this._queue.length){if(!this.idling)this.idling=!0,this.emit("idle");return}for(E=0,R=this._connections.length;E\s]/g,""),_.available=!1,this.logger.debug({tnx:"pool",cid:_.id,messageId:N.messageId,action:"assign"},"Assigned message <%s> to #%s (%s)",N.messageId,_.id,_.messages+1),this._rateLimit.limit){if(this._rateLimit.counter++,!this._rateLimit.checkpoint)this._rateLimit.checkpoint=Date.now()}_.send(N.mail,(A,L)=>{if(N===_.queueEntry){try{N.callback(A,L)}catch(U){this.logger.error({err:U,tnx:"callback",cid:_.id},"Callback error for #%s: %s",_.id,U.message)}_.queueEntry=!1}})}_createConnection(){let _=new aH(this);return _.id=++this._connectionCounter,this.logger.info({tnx:"pool",cid:_.id,action:"conection"},"Created new pool resource #%s",_.id),_.on("available",()=>{if(this.logger.debug({tnx:"connection",cid:_.id,action:"available"},"Connection #%s became available",_.id),this._closed)this.close();else this._processMessages()}),_.once("error",(E)=>{if(E.code!=="EMAXLIMIT")this.logger.error({err:E,tnx:"pool",cid:_.id},"Pool Error for #%s: %s",_.id,E.message);else this.logger.debug({tnx:"pool",cid:_.id,action:"maxlimit"},"Max messages limit exchausted for #%s",_.id);if(_.queueEntry){try{_.queueEntry.callback(E)}catch(R){this.logger.error({err:R,tnx:"callback",cid:_.id},"Callback error for #%s: %s",_.id,R.message)}_.queueEntry=!1}this._removeConnection(_),this._continueProcessing()}),_.once("close",()=>{if(this.logger.info({tnx:"connection",cid:_.id,action:"closed"},"Connection #%s was closed",_.id),this._removeConnection(_),_.queueEntry)setTimeout(()=>{if(_.queueEntry)if(this._shouldRequeuOnConnectionClose(_.queueEntry))this._requeueEntryOnConnectionClose(_);else this._failDeliveryOnConnectionClose(_);this._continueProcessing()},50);else this._continueProcessing()}),this._connections.push(_),_}_shouldRequeuOnConnectionClose(_){if(this.options.maxRequeues===void 0||this.options.maxRequeues<0)return!0;return _.requeueAttempts for #%s. Attempt: #%s",_.queueEntry.messageId,_.id,_.queueEntry.requeueAttempts),this._queue.unshift(_.queueEntry),_.queueEntry=!1}_continueProcessing(){if(this._closed)this.close();else setTimeout(()=>this._processMessages(),100)}_removeConnection(_){let E=this._connections.indexOf(_);if(E!==-1)this._connections.splice(E,1)}_checkRateLimit(_){if(!this._rateLimit.limit)return _();let E=Date.now();if(this._rateLimit.counterthis._clearRateLimit(),this._rateLimit.delta-(E-this._rateLimit.checkpoint)),this._rateLimit.checkpoint=E}_clearRateLimit(){clearTimeout(this._rateLimit.timeout),this._rateLimit.timeout=null,this._rateLimit.counter=0,this._rateLimit.checkpoint=!1;while(this._rateLimit.waiting.length){let _=this._rateLimit.waiting.shift();setImmediate(_)}}isIdle(){return this.idling}verify(_){let E;if(!_)E=new Promise((N,A)=>{_=YA.callbackPromise(N,A)});let R=new aH(this).auth;return this.getSocket(this.options,(N,A)=>{if(N)return _(N);let L=this.options;if(A&&A.connection)this.logger.info({tnx:"proxy",remoteAddress:A.connection.remoteAddress,remotePort:A.connection.remotePort,destHost:L.host||"",destPort:L.port||"",action:"connected"},"Using proxied socket from %s:%s to %s:%s",A.connection.remoteAddress,A.connection.remotePort,L.host||"",L.port||""),L=YA.assign(!1,L),Object.keys(A).forEach((C)=>{L[C]=A[C]});let U=new eH(L),G=!1;U.once("error",(C)=>{if(G)return;return G=!0,U.close(),_(C)}),U.once("end",()=>{if(G)return;return G=!0,_(new Error("Connection closed"))});let S=()=>{if(G)return;return G=!0,U.quit(),_(null,!0)};U.connect(()=>{if(G)return;if(R&&(U.allowsAuth||L.forceAuth))U.login(R,(C)=>{if(G)return;if(C)return G=!0,U.close(),_(C);S()});else if(!R&&U.allowsAuth&&L.forceAuth){let C=new Error("Authentication info was not provided");return C.code="NoAuth",G=!0,U.close(),_(C)}else S()})}),E}}EW.exports=_W});var OW=j((_i,TW)=>{var dv=require("events"),Z2=lL(),lv=$2(),sT=IR(),nv=X2(),ov=LN();class NW extends dv{constructor(_){super();if(_=_||{},typeof _==="string")_={url:_};let E,R=_.service;if(typeof _.getSocket==="function")this.getSocket=_.getSocket;if(_.url)E=sT.parseConnectionUrl(_.url),R=R||E.service;this.options=sT.assign(!1,_,E,R&&lv(R)),this.logger=sT.getLogger(this.options,{component:this.options.component||"smtp-transport"});let N=new Z2(this.options);if(this.name="SMTP",this.version=ov.version+"[client:"+N.version+"]",this.options.auth)this.auth=this.getAuth({})}getSocket(_,E){return setImmediate(()=>E(null,!1))}getAuth(_){if(!_)return this.auth;let E=!1,R={};if(this.options.auth&&typeof this.options.auth==="object")Object.keys(this.options.auth).forEach((N)=>{E=!0,R[N]=this.options.auth[N]});if(_&&typeof _==="object")Object.keys(_).forEach((N)=>{E=!0,R[N]=_[N]});if(!E)return!1;switch((R.type||"").toString().toUpperCase()){case"OAUTH2":{if(!R.service&&!R.user)return!1;let N=new nv(R,this.logger);return N.provisionCallback=this.mailer&&this.mailer.get("oauth2_provision_cb")||N.provisionCallback,N.on("token",(A)=>this.mailer.emit("token",A)),N.on("error",(A)=>this.emit("error",A)),{type:"OAUTH2",user:R.user,oauth2:N,method:"XOAUTH2"}}default:return{type:(R.type||"").toString().toUpperCase()||"LOGIN",user:R.user,credentials:{user:R.user||"",pass:R.pass,options:R.options},method:(R.method||"").trim().toUpperCase()||this.options.authMethod||!1}}}send(_,E){this.getSocket(this.options,(R,N)=>{if(R)return E(R);let A=!1,L=this.options;if(N&&N.connection)this.logger.info({tnx:"proxy",remoteAddress:N.connection.remoteAddress,remotePort:N.connection.remotePort,destHost:L.host||"",destPort:L.port||"",action:"connected"},"Using proxied socket from %s:%s to %s:%s",N.connection.remoteAddress,N.connection.remotePort,L.host||"",L.port||""),L=sT.assign(!1,L),Object.keys(N).forEach((S)=>{L[S]=N[S]});let U=new Z2(L);U.once("error",(S)=>{if(A)return;return A=!0,U.close(),E(S)}),U.once("end",()=>{if(A)return;let S=setTimeout(()=>{if(A)return;A=!0;let C=new Error("Unexpected socket close");if(U&&U._socket&&U._socket.upgrading)C.code="ETLS";E(C)},1000);try{S.unref()}catch(C){}});let G=()=>{let S=_.message.getEnvelope(),C=_.message.messageId(),Y=[].concat(S.to||[]);if(Y.length>3)Y.push("...and "+Y.splice(2).length+" more");if(_.data.dsn)S.dsn=_.data.dsn;this.logger.info({tnx:"send",messageId:C},"Sending message %s to <%s>",C,Y.join(", ")),U.send(S,_.message.createReadStream(),(M,H)=>{if(A=!0,U.close(),M)return this.logger.error({err:M,tnx:"send"},"Send error for %s: %s",C,M.message),E(M);H.envelope={from:S.from,to:S.to},H.messageId=C;try{return E(null,H)}catch(X){this.logger.error({err:X,tnx:"callback"},"Callback error for %s: %s",C,X.message)}})};U.connect(()=>{if(A)return;let S=this.getAuth(_.data.auth);if(S&&(U.allowsAuth||L.forceAuth))U.login(S,(C)=>{if(S&&S!==this.auth&&S.oauth2)S.oauth2.removeAllListeners();if(A)return;if(C)return A=!0,U.close(),E(C);G()});else G()})})}verify(_){let E;if(!_)E=new Promise((R,N)=>{_=sT.callbackPromise(R,N)});return this.getSocket(this.options,(R,N)=>{if(R)return _(R);let A=this.options;if(N&&N.connection)this.logger.info({tnx:"proxy",remoteAddress:N.connection.remoteAddress,remotePort:N.connection.remotePort,destHost:A.host||"",destPort:A.port||"",action:"connected"},"Using proxied socket from %s:%s to %s:%s",N.connection.remoteAddress,N.connection.remotePort,A.host||"",A.port||""),A=sT.assign(!1,A),Object.keys(N).forEach((S)=>{A[S]=N[S]});let L=new Z2(A),U=!1;L.once("error",(S)=>{if(U)return;return U=!0,L.close(),_(S)}),L.once("end",()=>{if(U)return;return U=!0,_(new Error("Connection closed"))});let G=()=>{if(U)return;return U=!0,L.quit(),_(null,!0)};L.connect(()=>{if(U)return;let S=this.getAuth({});if(S&&(L.allowsAuth||A.forceAuth))L.login(S,(C)=>{if(U)return;if(C)return U=!0,L.close(),_(C);G()});else if(!S&&L.allowsAuth&&A.forceAuth){let C=new Error("Authentication info was not provided");return C.code="NoAuth",U=!0,L.close(),_(C)}else G()})}),E}close(){if(this.auth&&this.auth.oauth2)this.auth.oauth2.removeAllListeners();this.emit("close")}}TW.exports=NW});var LW=j((Ei,IW)=>{var sv=require("child_process").spawn,tv=LN(),rv=IR();class AW{constructor(_){if(_=_||{},this._spawn=sv,this.options=_||{},this.name="Sendmail",this.version=tv.version,this.path="sendmail",this.args=!1,this.winbreak=!1,this.logger=rv.getLogger(this.options,{component:this.options.component||"sendmail"}),_){if(typeof _==="string")this.path=_;else if(typeof _==="object"){if(_.path)this.path=_.path;if(Array.isArray(_.args))this.args=_.args;this.winbreak=["win","windows","dos","\r\n"].includes((_.newline||"").toString().toLowerCase())}}}send(_,E){_.message.keepBcc=!0;let R=_.data.envelope||_.message.getEnvelope(),N=_.message.messageId(),A,L,U;if([].concat(R.from||[]).concat(R.to||[]).some((C)=>/^-/.test(C)))return E(new Error("Can not send mail. Invalid envelope addresses."));if(this.args)A=["-i"].concat(this.args).concat(R.to);else A=["-i"].concat(R.from?["-f",R.from]:[]).concat(R.to);let S=(C)=>{if(U)return;if(U=!0,typeof E==="function")if(C)return E(C);else return E(null,{envelope:_.data.envelope||_.message.getEnvelope(),messageId:N,response:"Messages queued for delivery"})};try{L=this._spawn(this.path,A)}catch(C){return this.logger.error({err:C,tnx:"spawn",messageId:N},"Error occurred while spawning sendmail. %s",C.message),S(C)}if(L){L.on("error",(M)=>{this.logger.error({err:M,tnx:"spawn",messageId:N},"Error occurred when sending message %s. %s",N,M.message),S(M)}),L.once("exit",(M)=>{if(!M)return S();let H;if(M===127)H=new Error("Sendmail command not found, process exited with code "+M);else H=new Error("Sendmail exited with code "+M);this.logger.error({err:H,tnx:"stdin",messageId:N},"Error sending message %s to sendmail. %s",N,H.message),S(H)}),L.once("close",S),L.stdin.on("error",(M)=>{this.logger.error({err:M,tnx:"stdin",messageId:N},"Error occurred when piping message %s to sendmail. %s",N,M.message),S(M)});let C=[].concat(R.to||[]);if(C.length>3)C.push("...and "+C.splice(2).length+" more");this.logger.info({tnx:"send",messageId:N},"Sending message %s to <%s>",N,C.join(", "));let Y=_.message.createReadStream();Y.once("error",(M)=>{this.logger.error({err:M,tnx:"stdin",messageId:N},"Error occurred when generating message %s. %s",N,M.message),L.kill("SIGINT"),S(M)}),Y.pipe(L.stdin)}else return S(new Error("sendmail was not found"))}}IW.exports=AW});var DW=j((Ri,GW)=>{var av=LN(),ev=IR();class UW{constructor(_){_=_||{},this.options=_||{},this.name="StreamTransport",this.version=av.version,this.logger=ev.getLogger(this.options,{component:this.options.component||"stream-transport"}),this.winbreak=["win","windows","dos","\r\n"].includes((_.newline||"").toString().toLowerCase())}send(_,E){_.message.keepBcc=!0;let R=_.data.envelope||_.message.getEnvelope(),N=_.message.messageId(),A=[].concat(R.to||[]);if(A.length>3)A.push("...and "+A.splice(2).length+" more");this.logger.info({tnx:"send",messageId:N},"Sending message %s to <%s> using %s line breaks",N,A.join(", "),this.winbreak?"":""),setImmediate(()=>{let L;try{L=_.message.createReadStream()}catch(S){return this.logger.error({err:S,tnx:"send",messageId:N},"Creating send stream failed for %s. %s",N,S.message),E(S)}if(!this.options.buffer)return L.once("error",(S)=>{this.logger.error({err:S,tnx:"send",messageId:N},"Failed creating message for %s. %s",N,S.message)}),E(null,{envelope:_.data.envelope||_.message.getEnvelope(),messageId:N,message:L});let U=[],G=0;L.on("readable",()=>{let S;while((S=L.read())!==null)U.push(S),G+=S.length}),L.once("error",(S)=>{return this.logger.error({err:S,tnx:"send",messageId:N},"Failed creating message for %s. %s",N,S.message),E(S)}),L.on("end",()=>E(null,{envelope:_.data.envelope||_.message.getEnvelope(),messageId:N,message:Buffer.concat(U,G)}))})}}GW.exports=UW});var PW=j((Ni,CW)=>{var _p=LN(),Ep=IR();class SW{constructor(_){_=_||{},this.options=_||{},this.name="JSONTransport",this.version=_p.version,this.logger=Ep.getLogger(this.options,{component:this.options.component||"json-transport"})}send(_,E){_.message.keepBcc=!0;let R=_.data.envelope||_.message.getEnvelope(),N=_.message.messageId(),A=[].concat(R.to||[]);if(A.length>3)A.push("...and "+A.splice(2).length+" more");this.logger.info({tnx:"send",messageId:N},"Composing JSON structure of %s to <%s>",N,A.join(", ")),setImmediate(()=>{_.normalize((L,U)=>{if(L)return this.logger.error({err:L,tnx:"send",messageId:N},"Failed building JSON structure for %s. %s",N,L.message),E(L);return delete U.envelope,delete U.normalizedHeaders,E(null,{envelope:R,messageId:N,message:this.options.skipEncoding?U:JSON.stringify(U)})})})}}CW.exports=SW});var MW=j((Ti,WW)=>{var Rp=require("events"),Np=LN(),YW=IR(),Tp=P2();class HW extends Rp{constructor(_){super();_=_||{},this.options=_||{},this.ses=this.options.SES,this.name="SESTransport",this.version=Np.version,this.logger=YW.getLogger(this.options,{component:this.options.component||"ses-transport"}),this.maxConnections=Number(this.options.maxConnections)||1/0,this.connections=0,this.sendingRate=Number(this.options.sendingRate)||1/0,this.sendingRateTTL=null,this.rateInterval=1000,this.rateMessages=[],this.pending=[],this.idling=!0,setImmediate(()=>{if(this.idling)this.emit("idle")})}send(_,E){if(this.connections>=this.maxConnections)return this.idling=!1,this.pending.push({mail:_,callback:E});if(!this._checkSendingRate())return this.idling=!1,this.pending.push({mail:_,callback:E});this._send(_,(...R)=>{setImmediate(()=>E(...R)),this._sent()})}_checkRatedQueue(){if(this.connections>=this.maxConnections||!this._checkSendingRate())return;if(!this.pending.length){if(!this.idling)this.idling=!0,this.emit("idle");return}let _=this.pending.shift();this._send(_.mail,(...E)=>{setImmediate(()=>_.callback(...E)),this._sent()})}_checkSendingRate(){clearTimeout(this.sendingRateTTL);let _=Date.now(),E=!1;for(let N=this.rateMessages.length-1;N>=0;N--){if(this.rateMessages[N].ts>=_-this.rateInterval&&(!E||this.rateMessages[N].tsthis._checkRatedQueue(),_-R);try{this.sendingRateTTL.unref()}catch(N){}return!1}_sent(){this.connections--,this._checkRatedQueue()}isIdle(){return this.idling}_send(_,E){let R={ts:Date.now(),pending:!0};this.connections++,this.rateMessages.push(R);let N=_.data.envelope||_.message.getEnvelope(),A=_.message.messageId(),L=[].concat(N.to||[]);if(L.length>3)L.push("...and "+L.splice(2).length+" more");this.logger.info({tnx:"send",messageId:A},"Sending message %s to <%s>",A,L.join(", "));let U=(G)=>{if(!_.data._dkim)_.data._dkim={};if(_.data._dkim.skipFields&&typeof _.data._dkim.skipFields==="string")_.data._dkim.skipFields+=":date:message-id";else _.data._dkim.skipFields="date:message-id";let S=_.message.createReadStream(),C=S.pipe(new Tp),Y=[],M=0;C.on("readable",()=>{let H;while((H=C.read())!==null)Y.push(H),M+=H.length}),S.once("error",(H)=>C.emit("error",H)),C.once("error",(H)=>{G(H)}),C.once("end",()=>G(null,Buffer.concat(Y,M)))};setImmediate(()=>U((G,S)=>{if(G)return this.logger.error({err:G,tnx:"send",messageId:A},"Failed creating message for %s. %s",A,G.message),R.pending=!1,E(G);let C={RawMessage:{Data:S},Source:N.from,Destinations:N.to};Object.keys(_.data.ses||{}).forEach((X)=>{C[X]=_.data.ses[X]});let Y=(this.ses.aws?this.ses.ses:this.ses)||{},M=this.ses.aws||{};((X)=>{if(Y.config&&typeof Y.config.region==="function")return Y.config.region().then(($)=>X(null,$)).catch(($)=>X($));return X(null,Y.config&&Y.config.region||"us-east-1")})((X,$)=>{if(X||!$)$="us-east-1";let z;if(typeof Y.send==="function"&&M.SendRawEmailCommand)z=Y.send(new M.SendRawEmailCommand(C));else z=Y.sendRawEmail(C).promise();z.then((w)=>{if($==="us-east-1")$="email";R.pending=!1,E(null,{envelope:{from:N.from,to:N.to},messageId:"<"+w.MessageId+(!/@/.test(w.MessageId)?"@"+$+".amazonses.com":"")+">",response:w.MessageId,raw:S})}).catch((w)=>{this.logger.error({err:w,tnx:"send"},"Send error for %s: %s",A,w.message),R.pending=!1,E(w)})})}))}verify(_){let E,R=(this.ses.aws?this.ses.ses:this.ses)||{},N=this.ses.aws||{},A={RawMessage:{Data:"From: invalid@invalid\r\nTo: invalid@invalid\r\n Subject: Invalid\r\n\r\nInvalid"},Source:"invalid@invalid",Destinations:["invalid@invalid"]};if(!_)E=new Promise((U,G)=>{_=YW.callbackPromise(U,G)});let L=(U)=>{if(U&&(U.code||U.Code)!=="InvalidParameterValue")return _(U);return _(null,!0)};if(typeof R.send==="function"&&N.SendRawEmailCommand)A.RawMessage.Data=Buffer.from(A.RawMessage.Data),R.send(new N.SendRawEmailCommand(A),L);else R.sendRawEmail(A,L);return E}}WW.exports=HW});var w2=j((Oi,sL)=>{var Op=pH(),VW=IR(),Ap=RW(),Ip=OW(),Lp=LW(),Up=DW(),Gp=PW(),Dp=MW(),Sp=UA(),FW=LN(),Cp=(process.env.ETHEREAL_API||"https://api.nodemailer.com").replace(/\/+$/,""),Pp=(process.env.ETHEREAL_WEB||"https://ethereal.email").replace(/\/+$/,""),BW=(process.env.ETHEREAL_API_KEY||"").replace(/\s*/g,"")||null,Yp=["true","yes","y","1"].includes((process.env.ETHEREAL_CACHE||"yes").toString().trim().toLowerCase()),HA=!1;sL.exports.createTransport=function(_,E){let R,N,A;if(typeof _==="object"&&typeof _.send!=="function"||typeof _==="string"&&/^(smtps?|direct):/i.test(_)){if(R=typeof _==="string"?_:_.url)N=VW.parseConnectionUrl(R);else N=_;if(N.pool)_=new Ap(N);else if(N.sendmail)_=new Lp(N);else if(N.streamTransport)_=new Up(N);else if(N.jsonTransport)_=new Gp(N);else if(N.SES)_=new Dp(N);else _=new Ip(N)}return A=new Op(_,N,E),A};sL.exports.createTestAccount=function(_,E){let R;if(!E&&typeof _==="function")E=_,_=!1;if(!E)R=new Promise((S,C)=>{E=VW.callbackPromise(S,C)});if(Yp&&HA)return setImmediate(()=>E(null,HA)),R;_=_||Cp;let N=[],A=0,L={},U={requestor:FW.name,version:FW.version};if(BW)L.Authorization="Bearer "+BW;let G=Sp(_+"/user",{contentType:"application/json",method:"POST",headers:L,body:Buffer.from(JSON.stringify(U))});return G.on("readable",()=>{let S;while((S=G.read())!==null)N.push(S),A+=S.length}),G.once("error",(S)=>E(S)),G.once("end",()=>{let S=Buffer.concat(N,A),C,Y;try{C=JSON.parse(S.toString())}catch(M){Y=M}if(Y)return E(Y);if(C.status!=="success"||C.error)return E(new Error(C.error||"Request failed"));delete C.status,HA=C,E(null,HA)}),R};sL.exports.getTestMessageUrl=function(_){if(!_||!_.response)return!1;let E=new Map;if(_.response.replace(/\[([^\]]+)\]$/,(R,N)=>{N.replace(/\b([A-Z0-9]+)=([^\s]+)/g,(A,L,U)=>{E.set(L,U)})}),E.has("STATUS")&&E.has("MSGID"))return(HA.web||Pp)+"/message/"+E.get("MSGID");return!1}});function GN({request:_,cookieString:E}){try{let R=_?_.headers.cookie:E?E:void 0;if(!R)return{};if(!R||typeof R!=="string")return{};let N=R.split(";"),A={};return N.forEach((L)=>{let[U,G]=L.split("=");if(U&&typeof U=="string"){let S=U.replace(/^ +| +$/,"");A[S]=G&&typeof G=="string"?G.replace(/^ +| +$/,""):""}}),A}catch(R){return console.log(`ERROR parsing cookies: ${R.message}`),{}}}var xW=j((li,rL)=>{var Vp=require("crypto"),Kp=256,FA,g2,QW=function(){if(FA===void 0||FA>=g2.length)FA=0,g2=Vp.randomBytes(Kp);var _=g2[FA];return FA+=1,_},Xp=function(_){var E=QW();while(E>=256-256%_)E=QW();return E%_},Jp="abcdefghijklmnopqrstuvwxyz",$p="ABCDEFGHIJKLMNOPQRSTUVWXYZ",Zp="0123456789",wp='!@#$%^&*()+_-=}{[]|:;"/?.><,`~',Qp=/[ilLI|`oO0]/g,zp=[{name:"lowercase",rule:/[a-z]/},{name:"uppercase",rule:/[A-Z]/},{name:"numbers",rule:/[0-9]/},{name:"symbols",rule:/[!@#$%^&*()+_\-=}{[\]|:;"/?.><,`~]/}],zW=function(_,E){var R="",N=_.length,A=E.length;for(var L=0;L_.length)throw new TypeError("Length must correlate with strict guidelines")}var R="";if(_.lowercase)R+=Jp;if(_.uppercase)R+=$p;if(_.numbers)R+=Zp;if(_.symbols)if(typeof _.symbols==="string")R+=_.symbols;else R+=wp;if(!R)throw new TypeError("At least one rule for pools must be true");if(_.excludeSimilarCharacters)R=R.replace(Qp,"");var N=_.exclude.length;while(N--)R=R.replace(_.exclude[N],"");var A=zW(_,R);return A};rL.exports.generateMultiple=function(_,E){var R=[];for(var N=0;N<_;N++)R[N]=rL.exports.generate(E);return R}});var fW=j((ni,qW)=>{qW.exports=xW()});async function SD({dbFullName:_,deletedUserId:E,useLocal:R}){if(!(await LE({queryString:"SELECT * FROM users WHERE id = ?",queryValuesArray:[E],database:_,useLocal:R}))?.[0])return{success:!1,msg:"User not found"};return{success:!0,result:await eO({dbContext:"Dsql User",paradigm:"Full Access",dbFullName:_,tableName:"users",identifierColumnName:"id",identifierValue:E,useLocal:R})}}var lW=dE(()=>{jG();JN()});var tW={};YT(tW,{default:()=>sW});async function sW({key:_,database:E,user_id:R,useLocal:N,deletedUserId:A}){let{DSQL_DB_HOST:L,DSQL_DB_USERNAME:U,DSQL_DB_PASSWORD:G,DSQL_DB_NAME:S}=process.env,C=t_(),{host:Y,port:M,scheme:H}=C;if(L?.match(/./)&&U?.match(/./)&&G?.match(/./)&&S?.match(/./)&&N){let $;try{let z=nW.default.resolve(process.cwd(),"dsql.schema.json");$=JSON.parse(oW.default.readFileSync(z,"utf8"))}catch(z){}return await SD({dbFullName:S,useLocal:N,deletedUserId:A})}return await new Promise(($,z)=>{let w=JSON.stringify({database:E,deletedUserId:A}),g=H.request({method:"POST",headers:{"Content-Type":"application/json","Content-Length":Buffer.from(w).length,Authorization:process.env.DSQL_FULL_ACCESS_API_KEY||process.env.DSQL_API_KEY||_},port:M,hostname:Y,path:`/api/user/${R||C.user_id}/delete-user`},(d)=>{var t="";d.on("data",function(s){t+=s}),d.on("end",function(){$(JSON.parse(t))}),d.on("error",(s)=>{z(s)})});g.write(w),g.end()})}var nW,oW;var rW=dE(()=>{nW=X_(require("path")),oW=X_(require("fs"));aE();lW()});var eW={};YT(eW,{default:()=>aW});async function aW({request:_,email:E,cookieString:R}){try{let A=uE().oneTimeCodeName,U=GN({request:_,cookieString:R})[A],G=OR({encryptedString:U}),S=tR.parse(G);if(S?.email&&!E)return S;if(S?.email&&S.email===E)return S;return null}catch(N){return console.log("validateTempEmailCode error:",N.message),null}}var _M=dE(()=>{P1();a1()});var yp={};YT(yp,{default:()=>bp});module.exports=PT(yp);var cP=X_(require("path")),dP=X_(require("fs"));aE();var uP=X_(SI());CR();i1();WN();yI();CR();async function K3({queryString:_,database:E,tableSchema:R,queryValuesArray:N,local:A}){let L;try{L=A?await xE(_,N):await MR({paradigm:"Full Access",database:E,queryString:_,queryValues:N})}catch(U){return NE({component:"fullAccessDbHandler",message:U.message}),U.message}if(L&&R)return await u1({unparsedResults:L,tableSchema:R});else if(L)return L;else return null}CR();yI();i1();WN();async function X3({queryString:_,database:E,queryValuesArray:R,tableSchema:N,useLocal:A}){let L;try{L=A?await xE(_,R):await MR({paradigm:"Read Only",database:E,queryString:_,queryValues:R})}catch(U){return NE({component:"varReadOnlyDatabaseDbHandler",message:U.message,noMail:!0}),U.message}if(L)return await u1({unparsedResults:L,tableSchema:N});else return null}CR();var iP=X_(fG());var jf={allowedTags:["b","i","em","strong","a","p","span","ul","ol","li","h1","h2","h3","h4","h5","h6","img","div","button","pre","code","br"],allowedAttributes:{a:["href"],img:["src","alt","width","height","class","style"],"*":["style","class"]}},gL=jf;var bP=X_(fG());rN();i1();sR();WN();async function r1({dbContext:_,paradigm:E,dbFullName:R,tableName:N,data:A,tableSchema:L,identifierColumnName:U,identifierValue:G,encryptionKey:S,encryptionSalt:C,useLocal:Y}){if(!A||!Object.keys(A).length)return null;let M=Y?!0:_?.match(/dsql.user/i)?!1:R&&!R.match(/^datasquirel$/)?!1:!0,H=Y?xE:M?oE:MR,X=Object.keys(A),$=[],z=[];for(let d=0;do.fieldName===t):null,k=m&&m[0]?m[0]:null;if(s==null||s==null)continue;let e=/<[^>]+>/g;if(k?.richText||String(s).match(e))s=bP.default(s,gL);if(k?.encrypted)s=BE({data:s,encryptionKey:S,encryptionSalt:C});if(typeof s==="object")s=JSON.stringify(s);if(k?.pattern){if(!new RegExp(k.pattern,k.patternFlags||"").test(s))console.log("DSQL: Pattern not matched =>",s),s=""}if(typeof s==="string"&&s.match(/^null$/i))s={toSqlString:function(){return"NULL"}};if(typeof s==="string"&&!s.match(/./i))s={toSqlString:function(){return"NULL"}};if($.push(`\`${t}\`=?`),typeof s=="number")z.push(String(s));else z.push(s)}catch(t){console.log("DSQL: Error in parsing data keys in update function =>",t.message);continue}$.push(`date_updated='${Date()}'`),$.push(`date_updated_code='${Date.now()}'`);let w=`UPDATE ${N} SET ${$.join(",")} WHERE \`${U}\`=?`;return z.push(G),M?await H(w,z):await H({paradigm:E,database:R,queryString:w,queryValues:z})}rN();i1();sR();WN();async function $R({dbContext:_,paradigm:E,dbFullName:R,tableName:N,data:A,tableSchema:L,duplicateColumnName:U,duplicateColumnValue:G,update:S,encryptionKey:C,encryptionSalt:Y,useLocal:M}){let H=M?!0:_?.match(/dsql.user/i)?!1:R&&!R.match(/^datasquirel$/)?!1:!0,X=M?xE:H?oE:MR;if(A?.date_created_timestamp)delete A.date_created_timestamp;if(A?.date_updated_timestamp)delete A.date_updated_timestamp;if(A?.date_updated)delete A.date_updated;if(A?.date_updated_code)delete A.date_updated_code;if(A?.date_created)delete A.date_created;if(A?.date_created_code)delete A.date_created_code;if(U&&typeof U==="string"){let s=H?await X(`SELECT * FROM \`${N}\` WHERE \`${U}\`=?`,[G]):await X({paradigm:"Read Only",database:R,queryString:`SELECT * FROM \`${N}\` WHERE \`${U}\`=?`,queryValues:[G]});if(s?.[0]&&!S)return null;else if(s&&s[0]&&S)return await r1({dbContext:_,paradigm:E,dbFullName:R,tableName:N,data:A,tableSchema:L,encryptionKey:C,encryptionSalt:Y,identifierColumnName:U,identifierValue:G||""})}let $=Object.keys(A),z=[],w=[];for(let s=0;s<$.length;s++)try{let m=$[s],k=A?.[m],e=L?L?.fields?.filter((S_)=>S_.fieldName==m):null,o=e&&e[0]?e[0]:null;if(k==null||k==null)continue;if(o?.dataType?.match(/int$/i)&&typeof k=="string"&&!k?.match(/./))continue;if(o?.encrypted)k=BE({data:k,encryptionKey:C,encryptionSalt:Y}),console.log("DSQL: Encrypted value =>",k);let c=/<[^>]+>/g;if(o?.richText||String(k).match(c))k=iP.default(k,gL);if(o?.pattern){if(!new RegExp(o.pattern,o.patternFlags||"").test(k))console.log("DSQL: Pattern not matched =>",k),k=""}if(z.push("`"+m+"`"),typeof k==="object")k=JSON.stringify(k);if(typeof k=="number")w.push(String(k));else w.push(k)}catch(m){console.log("DSQL: Error in parsing data keys =>",m.message);continue}if(!A?.date_created)z.push("`date_created`"),w.push(Date());if(!A?.date_created_code)z.push("`date_created_code`"),w.push(Date.now());if(!A?.date_updated)z.push("`date_updated`"),w.push(Date());if(!A?.date_updated_code)z.push("`date_updated_code`"),w.push(Date.now());let g=`INSERT INTO \`${N}\` (${z.join(",")}) VALUES (${w.map(()=>"?").join(",")})`,d=w;return H?await X(g,d):await X({paradigm:E,database:R,queryString:g,queryValues:d})}jG();function _A(_){return _.replace(/\n|\r|\n\r|\r\n/gm," ").replace(/ {2,}/g," ").trim()}async function EA({dbFullName:_,query:E,readOnly:R,dbSchema:N,queryValuesArray:A,tableName:L,local:U}){let G,S,C;if(N)try{let Y=L?L:typeof E=="string"?null:E?E?.table:null;if(!Y)throw new Error("No table name provided");C=N.tables.filter((M)=>M?.tableName===Y)[0]}catch(Y){}try{if(typeof E==="string"){let Y=_A(E);if(R&&Y.match(/^alter|^delete|information_schema|^create/i))throw new Error("Wrong Input!");if(R)G=await X3({queryString:Y,queryValuesArray:A?.map((M)=>String(M)),database:_,tableSchema:C,useLocal:U});else G=await K3({queryString:Y,queryValuesArray:A?.map((M)=>String(M)),database:_,tableSchema:C,local:U})}else if(typeof E==="object"){let{data:Y,action:M,table:H,identifierColumnName:X,identifierValue:$,update:z,duplicateColumnName:w,duplicateColumnValue:g}=E;switch(M.toLowerCase()){case"insert":if(G=await $R({dbContext:U?"Master":"Dsql User",paradigm:"Full Access",dbFullName:_,tableName:H,data:Y,update:z,duplicateColumnName:w,duplicateColumnValue:g,tableSchema:C,useLocal:U}),!G?.insertId)S=new Error("Couldn't insert data");break;case"update":G=await r1({dbContext:U?"Master":"Dsql User",paradigm:"Full Access",dbFullName:_,tableName:H,data:Y,identifierColumnName:X,identifierValue:$,tableSchema:C,useLocal:U});break;case"delete":G=await eO({dbContext:U?"Master":"Dsql User",paradigm:"Full Access",dbFullName:_,tableName:H,identifierColumnName:X,identifierValue:$,tableSchema:C,useLocal:U});break;default:G=null;break}}}catch(Y){NE({component:"functions/backend/runQuery",message:Y.message}),G=null,Y=Y.message}return{result:G,error:S}}async function vG({query:_,dbFullName:E,queryValues:R,tableName:N,dbSchema:A,useLocal:L}){if(typeof _=="string"&&_.match(/^alter|^delete|information_schema|databases|^create/i))return{success:!1,msg:"Wrong Input."};let U;try{let{result:G,error:S}=await EA({dbFullName:E,query:_,queryValuesArray:R,readOnly:!0,dbSchema:A,tableName:N,local:L}),C;if(A){let M=A.tables.find((H)=>H.tableName===N);if(M){let H=uP.default.cloneDeep(M);delete H.childTable,delete H.childTableDbFullName,delete H.childTableName,delete H.childrenTables,delete H.updateData,delete H.tableNameOld,delete H.indexes,C=H}}if(S)throw S;if(G.error)throw new Error(G.error);return U=G,{success:!0,payload:U,schema:N&&C?C:void 0}}catch(G){return NE({component:"/api/query/get/lines-85-94",message:G.message}),{success:!1,payload:null,error:G.message}}}a1();function e1(_){let E="?";if(typeof _!=="object")return console.log("Invalid Query type"),E;if(Array.isArray(_))return console.log("Query is an Array. This is invalid."),E;if(!_)return console.log("No Query provided."),E;let R=Object.keys(_),N=[];return R.forEach((A)=>{if(!A||!_[A])return;let L=_[A];if(typeof L==="object"){let U=tR.stringify(L);N.push(`${A}=${encodeURIComponent(String(U))}`)}else if(typeof L==="string"||typeof L==="number")N.push(`${A}=${encodeURIComponent(L)}`);else N.push(`${A}=${String(L)}`)}),E+=N.join("&"),E}async function pG({key:_,db:E,query:R,queryValues:N,tableName:A,useLocal:L,user_id:U}){let G=t_(),{host:S,port:C,scheme:Y}=G,{DSQL_DB_HOST:M,DSQL_DB_USERNAME:H,DSQL_DB_PASSWORD:X,DSQL_DB_NAME:$}=process.env;if(M?.match(/./)&&H?.match(/./)&&X?.match(/./)&&$?.match(/./)&&L){let w;try{let g=cP.default.resolve(process.cwd(),"dsql.schema.json");w=JSON.parse(dP.default.readFileSync(g,"utf8"))}catch(g){}return await vG({dbFullName:$,query:R,queryValues:N,tableName:A,dbSchema:w,useLocal:L})}return await new Promise((w,g)=>{let d={db:process.env.DSQL_API_DB_NAME||String(E),query:String(R.replace(/\n|\r|\n\r/g,"").replace(/ {2,}/g," ")),queryValues:N?JSON.stringify(N):void 0,tableName:A},t=e1({...d}),s=`/api/query/${U||G.user_id}/get${t}`,m={method:"GET",headers:{"Content-Type":"application/json",Authorization:_||process.env.DSQL_READ_ONLY_API_KEY||process.env.DSQL_FULL_ACCESS_API_KEY||process.env.DSQL_API_KEY},port:C,hostname:S,path:s};Y.request(m,(k)=>{var e="";k.on("data",function(o){e+=o}),k.on("end",function(){try{w(JSON.parse(e))}catch(o){g({error:o.message,result:e})}}),k.on("error",(o)=>{console.log("DSQL get Error,",o.message),w(null)})}).end()})}var nP=X_(require("path")),oP=X_(require("fs"));aE();var lP=X_(SI());CR();async function hG({query:_,dbFullName:E,queryValues:R,tableName:N,dbSchema:A,useLocal:L}){if(typeof _==="string"&&_?.match(/^create |^alter |^drop /i))return{success:!1,msg:"Wrong Input"};if(typeof _==="object"&&_?.action?.match(/^create |^alter |^drop /i))return{success:!1,msg:"Wrong Input"};let U;try{let{result:G,error:S}=await EA({dbFullName:E,query:_,dbSchema:A,queryValuesArray:R,tableName:N,local:L});if(U=G,S)throw S;let C;if(A){let Y=A.tables.find((M)=>M.tableName===N);if(Y){let M=lP.default.cloneDeep(Y);delete M.childTable,delete M.childTableDbFullName,delete M.childTableName,delete M.childrenTables,delete M.updateData,delete M.tableNameOld,delete M.indexes,C=M}}return{success:!0,payload:U,error:S,schema:N&&C?C:void 0}}catch(G){return NE({component:"/api/query/post/lines-132-142",message:G.message}),{success:!1,payload:U,error:G.message}}}async function kG({key:_,query:E,queryValues:R,database:N,tableName:A,useLocal:L,user_id:U}){let G=t_(),{host:S,port:C,scheme:Y}=G,{DSQL_DB_HOST:M,DSQL_DB_USERNAME:H,DSQL_DB_PASSWORD:X,DSQL_DB_NAME:$}=process.env;if(M?.match(/./)&&H?.match(/./)&&X?.match(/./)&&$?.match(/./)&&L){let w;try{let g=nP.default.resolve(process.cwd(),"dsql.schema.json");w=JSON.parse(oP.default.readFileSync(g,"utf8"))}catch(g){}return await hG({dbFullName:$,query:E,dbSchema:w,queryValues:R,tableName:A,useLocal:L})}return await new Promise((w,g)=>{let d=JSON.stringify({query:E,queryValues:R,database:process.env.DSQL_API_DB_NAME||N,tableName:A?A:null}).replace(/\n|\r|\n\r/gm,"");try{JSON.parse(d)}catch(k){return console.log(k),console.log(d),{success:!1,payload:null,error:"Query object is invalid. Please Check query data values"}}let t=d,s=`/api/query/${U||G.user_id}/post`,m=Y.request({method:"POST",headers:{"Content-Type":"application/json","Content-Length":Buffer.from(t).length,Authorization:_||process.env.DSQL_FULL_ACCESS_API_KEY||process.env.DSQL_API_KEY},port:C,hostname:S,path:s},(k)=>{var e="";k.on("data",function(o){e+=o}),k.on("end",function(){try{w(JSON.parse(e))}catch(o){console.log("Route ERROR:",o.message),w({success:!1,payload:null,error:o.message,errPayload:e})}}),k.on("error",(o)=>{w({success:!1,payload:null,error:o.message})})});m.write(t),m.on("error",(k)=>{console.log("HTTPS request ERROR =>",k)}),m.end()})}aE();async function mG({key:_,database:E,field:R,table:N,user_id:A}){let L=t_(),{host:U,port:G,scheme:S}=L;return{success:!0,payload:await new Promise((Y,M)=>{let H={database:E,field:R,table:N},X=Object.keys(H).filter(($)=>H[$]).map(($)=>`${$}=${H[$]}`).join("&");S.request({method:"GET",headers:{"Content-Type":"application/json",Authorization:_||process.env.DSQL_FULL_ACCESS_API_KEY||process.env.DSQL_API_KEY},port:G,hostname:U,path:`/api/query/${A||L.user_id}/get-schema`+(X?.match(/./)?`?${X}`:"")},($)=>{var z="";$.on("data",function(w){z+=w}),$.on("end",function(){Y(JSON.parse(z))}),$.on("error",(w)=>{Y(null)})}).end()})}}aE();async function bL({key:_,payload:E,user_id:R}){let N=t_(),{host:A,port:L,scheme:U}=N;try{return await new Promise((S,C)=>{let Y=JSON.stringify(E),M=U.request({method:"POST",headers:{"Content-Type":"application/json","Content-Length":Buffer.from(Y).length,Authorization:_||process.env.DSQL_FULL_ACCESS_API_KEY||process.env.DSQL_API_KEY},port:L,hostname:A,path:`/api/query/${R||N.user_id}/add-image`},(H)=>{var X="";H.on("data",function($){X+=$}),H.on("end",function(){S(JSON.parse(X))}),H.on("error",($)=>{C($)})});M.write(Y),M.end()})}catch(G){return console.log("Error in uploading image: ",G.message),{success:!1,payload:null,msg:G.message}}}mf.exports=bL;aE();async function gG({key:_,payload:E,user_id:R}){let N=t_(),{host:A,port:L,scheme:U}=N;try{return await new Promise((S,C)=>{let Y=JSON.stringify(E),M=U.request({method:"POST",headers:{"Content-Type":"application/json","Content-Length":Buffer.from(Y).length,Authorization:_||process.env.DSQL_FULL_ACCESS_API_KEY||process.env.DSQL_API_KEY},port:L,hostname:A,path:`/api/query/${R||N.user_id}/add-file`},(H)=>{var X="";H.on("data",function($){X+=$}),H.on("end",function(){S(JSON.parse(X))}),H.on("error",($)=>{C($)})});M.write(Y),M.end()})}catch(G){return console.log("Error in uploading file: ",G.message),{success:!1,payload:null,msg:G.message}}}aE();async function iL({key:_,url:E,user_id:R}){let N=t_(),{host:A,port:L,scheme:U}=N;try{return await new Promise((S,C)=>{let Y=JSON.stringify({url:E}),M=U.request({method:"POST",headers:{"Content-Type":"application/json","Content-Length":Buffer.from(Y).length,Authorization:_||process.env.DSQL_FULL_ACCESS_API_KEY||process.env.DSQL_API_KEY},port:L,hostname:A,path:`/api/query/${R||N.user_id}/delete-file`},(H)=>{var X="";H.on("data",function($){X+=$}),H.on("end",function(){S(JSON.parse(X))}),H.on("error",($)=>{C($)})});M.write(Y),M.end()})}catch(G){return console.log("Error deleting file: ",G.message),{success:!1,payload:null,msg:G.message}}}gf.exports=iL;var CY=X_(require("path")),PY=X_(require("fs"));aE();CR();rN();CR();var sP=X_(require("fs")),tP=X_(require("path"));function RA({userId:_}){try{let E=tP.default.resolve(process.cwd(),`${process.env.DSQL_USER_DB_SCHEMA_PATH}/user-${_}/main.json`);return JSON.parse(sP.default.readFileSync(E,"utf-8"))}catch(E){return NE({component:"grabUserSchemaData",message:E.message}),null}}CR();var rP=X_(require("fs")),aP=X_(require("path"));function NA({userId:_,schemaData:E}){try{let R=aP.default.resolve(process.cwd(),`${process.env.DSQL_USER_DB_SCHEMA_PATH}/user-${_}/main.json`);return rP.default.writeFileSync(R,JSON.stringify(E),"utf8"),!0}catch(R){return NE({component:"/functions/backend/setUserSchemaData",message:R.message}),!1}}var nG=X_(require("path")),IY=X_(require("fs"));var eP=X_(require("fs")),_Y=X_(require("path")),yG=X_(ZT());wT();var __dirname="/home/benoti/Projects/Git/moduletrace/datasquirel/datasquirel/package-shared/shell/utils",TA=yG.default({config:{host:process.env.DSQL_DB_HOST,user:process.env.DSQL_DB_USERNAME,password:process.env.DSQL_DB_PASSWORD,database:process.env.DSQL_DB_NAME,charset:"utf8mb4",ssl:WR()}});async function rR({query:_,values:E,database:R}){let N=!0;if(R)TA=yG.default({config:{host:process.env.DSQL_DB_HOST,user:process.env.DSQL_DB_USERNAME,password:process.env.DSQL_DB_PASSWORD,database:R,charset:"utf8mb4",ssl:WR()}});if(!N)return console.log("Shell Db Handler ERROR in switching Database! Operation Failed!"),null;let A;try{if(_&&E)A=await TA.query(_,E);else A=await TA.query(_);await TA.end()}catch(L){if(process.env.FIRST_RUN)return null;console.log("ERROR in dbHandler =>",L.message),console.log(L),console.log(TA.config()),eP.default.appendFileSync(_Y.default.resolve(__dirname,"../.tmp/dbErrorLogs.txt"),JSON.stringify(L,null,4)+"\n"+Date()+"\n\n\n","utf8"),A=null}if(A)return JSON.parse(JSON.stringify(A));else return null}async function OA(_){let E;try{E=await rR({query:_})}catch(R){console.log("ERROR in noDatabaseDbHandler =>",R.message)}if(E)return E;else return null}async function XE({queryString:_,queryValuesArray:E,database:R,tableSchema:N}){let A;try{if(_&&E&&Array.isArray(E)&&E[0])A=await rR({query:_,values:E,database:R});else A=await rR({query:_,database:R})}catch(L){console.log("Shell Vardb Error =>",L.message)}return A}function AA({columnData:_,primaryKeySet:E}){let{fieldName:R,dataType:N,nullValue:A,primaryKey:L,autoIncrement:U,defaultValue:G,defaultValueLiteral:S,onUpdateLiteral:C,notNullValue:Y}=_,M="";if(M+=`\`${R}\` ${N}`,A)M+=" DEFAULT NULL";else if(S)M+=` DEFAULT ${S}`;else if(G)if(String(G).match(/uuid\(\)/i))M+=" DEFAULT UUID()";else M+=` DEFAULT '${G}'`;else if(Y)M+=" NOT NULL";if(C)M+=` ON UPDATE ${C}`;if(L&&!E)M+=" PRIMARY KEY",E=!0;if(U)M+=" AUTO_INCREMENT",E=!0;return{fieldEntryText:M,newPrimaryKeySet:E||!1}}function iG({tableInfoArray:_}){let E=_,R=bG(),N=E.filter((A)=>A.primaryKey);return R.forEach((A)=>{let L=E.filter((U)=>U.fieldName===A.fieldName);if(L&&L[0])return;else if(A.fieldName==="id"&&!N[0])E.unshift(A);else E.push(A)}),E}async function uG({dbFullName:_,tableName:E,tableInfoArray:R,dbSchema:N,clone:A,tableSchema:L,recordedDbEntry:U}){let G=iG({tableInfoArray:R}),S=[];S.push(`CREATE TABLE IF NOT EXISTS \`${E}\` (`);try{if(!U)throw new Error("Recorded Db entry not found!");if(!(await XE({database:"datasquirel",queryString:"SELECT * FROM user_database_tables WHERE db_id = ? AND table_slug = ?",queryValuesArray:[U.id,L?.tableName]}))?.[0]?.id){let z=await rR({query:"INSERT INTO user_database_tables SET ?",values:{user_id:U.user_id,db_id:U.id,db_slug:U.db_slug,table_name:L?.tableFullName,table_slug:L?.tableName,child_table:L?.childTable?"1":null,child_table_parent_database:L?.childTableDbFullName||null,child_table_parent_table:L?.childTableName||null,date_created:Date(),date_created_code:Date.now(),date_updated:Date(),date_updated_code:Date.now()},database:"datasquirel"})}}catch(X){}let C=!1,Y=[];for(let X=0;X{if(Y[0])return",";if(X===G.length-1)return"";return","})();S.push(" "+a+q_)}if(Y[0])Y.forEach((X,$,z)=>{let w=X.fieldName,g=X.foreignKey?.destinationTableName,d=X.foreignKey?.destinationTableColumnName,t=X.foreignKey?.cascadeDelete,s=X.foreignKey?.cascadeUpdate,m=X.foreignKey?.foreignKeyName,k=(()=>{if($===Y.length-1)return"";return","})();S.push(` CONSTRAINT \`${m}\` FOREIGN KEY (\`${w}\`) REFERENCES \`${g}\`(${d})${t?" ON DELETE CASCADE":""}${s?" ON UPDATE CASCADE":""}${k}`)});S.push(") ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;");let M=S.join("\n");return await XE({queryString:M,database:_})}var EY=X_(require("fs"));var bf=/^id$|^uuid$|^date_created$|^date_created_code$|^date_created_timestamp$|^date_updated$|^date_updated_code$|^date_updated_timestamp$/;async function uL({dbFullName:_,tableName:E,tableInfoArray:R,userId:N,dbSchema:A,tableIndexes:L,tableSchema:U,clone:G,childDb:S,tableIndex:C,tableNameFull:Y,recordedDbEntry:M}){let H=[],X=R;try{let $=[],z=[];if($.push(`ALTER TABLE \`${E}\``),S)try{if(!M)throw new Error("Recorded Db entry not found!");if(!(await XE({database:"datasquirel",queryString:"SELECT * FROM user_database_tables WHERE db_id = ? AND table_slug = ?",queryValuesArray:[M.id,E]}))?.[0]?.id){let e=await rR({query:"INSERT INTO user_database_tables SET ?",values:{user_id:M.user_id,db_id:M.id,db_slug:M.db_slug,table_name:Y,table_slug:E,child_table:U?.childTable?"1":null,child_table_parent_database:U?.childTableDbFullName||null,child_table_parent_table:U.childTableName||null,date_created:Date(),date_created_code:Date.now(),date_updated:Date(),date_updated_code:Date.now()},database:"datasquirel"})}}catch(m){}let w=await XE({queryString:`SHOW INDEXES FROM \`${E}\``,database:_}),g=await XE({queryString:`SHOW COLUMNS FROM \`${E}\``,database:_}),d=[];for(let m=0;mo.fieldName===k||o.originName===k);if(e&&e[0]){if(e[0].updatedField&&e[0].fieldName){d.push(e[0].fieldName);let o=await XE({queryString:`ALTER TABLE ${E} RENAME COLUMN \`${e[0].originName}\` TO \`${e[0].fieldName}\``,database:_});console.log(`Column Renamed from "${e[0].originName}" to "${e[0].fieldName}"`);try{let c=A,S_=c.findIndex((K_)=>K_.dbFullName===_),U_=c[S_].tables.findIndex((K_)=>K_.tableName===E),V_=c[S_].tables[U_].fields.findIndex((K_)=>K_.fieldName===e[0].fieldName);delete c[S_].tables[U_].fields[V_].originName,delete c[S_].tables[U_].fields[V_].updatedField,X=c[S_].tables[U_].fields,EY.default.writeFileSync(`${String(process.env.DSQL_USER_DB_SCHEMA_PATH)}/user-${N}/main.json`,JSON.stringify(c),"utf8")}catch(c){console.log("Update table error =>",c.message)}}continue}else await XE({queryString:`ALTER TABLE ${E} DROP COLUMN \`${k}\``,database:_})}for(let m=0;mc.alias===k)?.[0])throw new Error(`This Index(${k}) Has been Deleted!`)}catch(o){await XE({queryString:`ALTER TABLE ${E} DROP INDEX \`${k}\``,database:_})}}if(L&&L[0])for(let m=0;mU_.Key_name===c)[0])throw new Error("This Index Does not Exist")}catch(S_){await XE({queryString:`CREATE${k?.match(/fullText/i)?" FULLTEXT":""} INDEX \`${c}\` ON ${E}(${o?.map((U_)=>U_.value).map((U_)=>`\`${U_}\``).join(",")}) COMMENT 'schema_index'`,database:_})}}let t=await XE({queryString:`SELECT CONSTRAINT_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE CONSTRAINT_SCHEMA = '${_}' AND TABLE_NAME='${E}' AND CONSTRAINT_TYPE='FOREIGN KEY'`,database:_});if(t)for(let m=0;m{if(a.Field===c)return p_=WE,!0}):null,{fieldEntryText:j_}=AA({columnData:k});if(l_&&l_[0]?.Field){let{Field:a,Type:WE,Null:q_,Key:k_,Default:n_,Extra:e_}=l_[0],V=m1)return await XE({queryString:s,database:_});else return"No Changes Made to Table"}catch($){return console.log('Error in "updateTable" shell function =>',$.message),"Error in Updating Table"}}a1();var __dirname="/home/benoti/Projects/Git/moduletrace/datasquirel/datasquirel/package-shared/shell";AY().config({path:"./../.env"});var Oj=process.argv.find((_)=>_==="--exec");async function _T({userId:_,targetDatabase:E,dbSchemaData:R}){let N=_?nG.default.join(String(process.env.DSQL_USER_DB_SCHEMA_PATH),`/user-${_}/main.json`):nG.default.resolve(__dirname,"../../jsonData/dbSchemas/main.json"),A=R||tR.parse(IY.default.readFileSync(N,"utf8"));if(!A){console.log("Schema Not Found!");return}for(let L=0;Ld.tableName===g)[0]){let d=S.filter((t)=>t.tableNameOld&&t.tableNameOld===g);if(d&&d[0])console.log("Renaming Table"),await XE({queryString:`RENAME TABLE \`${d[0].tableNameOld}\` TO \`${d[0].tableName}\``,database:G});else{console.log(`Dropping Table from ${G}`),await XE({queryString:`DROP TABLE \`${g}\``,database:G});let t=await rR({query:"DELETE FROM user_database_tables WHERE user_id = ? AND db_slug = ? AND table_slug = ?",values:[_,Y,g],database:"datasquirel"})}}}let z=(_?await XE({database:"datasquirel",queryString:"SELECT * FROM user_databases WHERE db_full_name = ?",queryValuesArray:[G]}):void 0)?.[0];for(let w=0;w0){let k=await uL({dbFullName:G,tableName:d,tableNameFull:g.tableFullName,tableInfoArray:t,userId:_,dbSchema:A,tableIndexes:s,tableIndex:w,childDb:U.childDatabase||void 0,recordedDbEntry:z,tableSchema:g});if(g.childrenTables&&g.childrenTables[0])for(let e=0;ez_.Key_name===U_)[0])throw new Error("This Index Does not Exist")}catch(V_){await XE({queryString:`CREATE${o?.match(/fullText/i)?" FULLTEXT":""} INDEX \`${U_}\` ON ${d}(${S_?.map((K_)=>K_.value).map((K_)=>`\`${K_}\``).join(",")}) COMMENT 'schema_index'`,database:G})}}}}}if(M?.[0])for(let w=0;w!R||!Object.keys(R).includes(S)).filter((S)=>!N||!N.find((C)=>C.fieldName==S)),G.forEach((S)=>{let C=_?_[S]:null;if(typeof C=="string"){let Y={fieldName:S,dataType:C.length>255?"TEXT":"VARCHAR(255)"};if(Boolean(C.match(/<[^>]+>/g)))Y.richText=!0;U.push(Y)}else if(typeof C=="number")U.push({fieldName:S,dataType:"INT"});else U.push({fieldName:S,dataType:"VARCHAR(255)"})}),U}catch(A){return console.log(`grabSchemaFieldsFromData.js ERROR: ${A.message}`),NE({component:"grabSchemaFieldsFromData.js",message:A.message}),[]}}CR();function oG(_){try{let E=GY(),R=bG(),N=_?.payload?IA({data:_?.payload,excludeData:R,excludeFields:E.fields}):[];console.log("supplementalFields",N);let A=[...E.fields,...N];console.log("allFields",A);let L=[...R.slice(0,2),...A,...R.slice(2)];return E.fields=[...L],E}catch(E){return console.log(`grabNewUsersTableSchema.js ERROR: ${E.message}`),NE({component:"grabNewUsersTableSchema",message:E.message}),null}}async function sG({userId:_,database:E,useLocal:R,payload:N}){try{let A=E,L=oG({payload:N});if(!L)throw new Error("Couldn't Get User Preset!");let U=RA({userId:_});if(!U)throw new Error("User schema data not found!");let G=U.find((M)=>M.dbFullName===E);if(!G)throw new Error("Couldn't Find Target Database!");let S=G?.tables.findIndex((M)=>M.tableName==="users");if(typeof S=="number"&&S>0)G.tables[S]=L;else G.tables.push(L);NA({schemaData:U,userId:_});let C=R?await xE("SELECT id FROM user_databases WHERE user_id=? AND db_slug=?",[_,E]):await oE("SELECT id FROM user_databases WHERE user_id=? AND db_slug=?",[_,E]);if(C?.[0]){let M=await $R({dbFullName:"datasquirel",tableName:"user_database_tables",data:{user_id:_,db_id:C[0].id,db_slug:G.dbSlug,table_name:"Users",table_slug:"users"},useLocal:R})}let Y=await _T({userId:_,targetDatabase:A});return"Done!"}catch(A){return console.log(`addUsersTableToDb.js ERROR: ${A.message}`),NE({component:"addUsersTableToDb",message:A.message,user:{id:_}}),A.message}}CR();async function tG({userId:_,database:E,newFields:R,newPayload:N}){try{let A=E,L=RA({userId:_});if(!L)throw new Error("User schema data not found!");let U=L.findIndex((X)=>X.dbFullName===E);if(U<0)throw new Error("Couldn't Find Target Database!");let G=L[U]?.tables.findIndex((X)=>X.tableName==="users"),S=L[U].tables[G];if(!S?.fields?.[0])throw new Error("Users Table Not Found!");let C=IA({fields:R,data:N}),Y=S.fields.findIndex((X)=>X.fieldName==="date_created"),M=Y>=0?Y:0;S.fields.splice(M,0,...C),NA({schemaData:L,userId:_});let H=await _T({userId:_,targetDatabase:A});return"Done!"}catch(A){return console.log(`addUsersTableToDb.js ERROR: ${A.message}`),NE({component:"addUsersTableToDb",message:A.message,user:{id:_}}),A.message}}JN();LA();async function rG({encryptionKey:_,payload:E,database:R,userId:N,useLocal:A}){let L=R,U=N||process.env.DSQL_API_USER_ID,G=_||process.env.DSQL_ENCRYPTION_PASSWORD;if(!G)return{success:!1,msg:"No encryption key provided",payload:null};if(!G?.match(/.{8,}/))return{success:!1,msg:"Encryption key must be at least 8 characters long",payload:null};let S=K1({encryptionKey:G,password:String(E.password)});E.password=S;let C="SHOW COLUMNS FROM users",Y=await LE({queryString:C,database:L,useLocal:A});if(!Y?.[0]){let g=await sG({userId:Number(U),database:L,useLocal:A,payload:E});Y=await LE({queryString:C,database:L,useLocal:A})}if(!Y?.[0])return{success:!1,msg:"Could not create users table"};let M=Y.map((g)=>g.Field),H=null;for(let g=0;g{let t=JSON.stringify({payload:E,database:R,encryptionKey:N}),s=z.request({method:"POST",headers:{"Content-Type":"application/json","Content-Length":Buffer.from(t).length,Authorization:_||process.env.DSQL_FULL_ACCESS_API_KEY||process.env.DSQL_API_KEY},port:$,hostname:X,path:`/api/user/${A||H.user_id}/add-user`},(m)=>{var k="";m.on("data",function(e){k+=e}),m.on("end",function(){g(JSON.parse(k))}),m.on("error",(e)=>{d(e)})});s.write(t),s.end()})}var YY=X_(require("path")),HY=X_(require("fs"));aE();sR();LA();JN();async function eG({payload:_,dbFullName:E,updatedUserId:R,useLocal:N,dbSchema:A}){if(!(await LE({queryString:"SELECT * FROM users WHERE id = ?",queryValuesArray:[R],database:E,useLocal:N}))?.[0])return{success:!1,msg:"User not found"};let S=(()=>{let Y=Object.keys(_),M=(()=>{try{return A?.tables?.find(($)=>$.tableName=="users")}catch(X){return}})(),H={};if(Y.forEach((X)=>{let $=M?.fields?.find((w)=>w.fieldName==X);if(X?.match(/^date_|^id$|^uuid$/))return;let z=_[X];if($?.encrypted)z=BE({data:z});H[X]=z}),H.password&&typeof H.password=="string")H.password=K1({password:H.password});return H})();return{success:!0,payload:await r1({dbContext:"Dsql User",paradigm:"Full Access",dbFullName:E,tableName:"users",identifierColumnName:"id",identifierValue:R,data:S,useLocal:N})}}async function _2({key:_,payload:E,database:R,user_id:N,useLocal:A,updatedUserId:L}){let{DSQL_DB_HOST:U,DSQL_DB_USERNAME:G,DSQL_DB_PASSWORD:S,DSQL_DB_NAME:C}=process.env,Y=t_(),{host:M,port:H,scheme:X}=Y;if(U?.match(/./)&&G?.match(/./)&&S?.match(/./)&&C?.match(/./)&&A){let z;try{let w=YY.default.resolve(process.cwd(),"dsql.schema.json");z=JSON.parse(HY.default.readFileSync(w,"utf8"))}catch(w){}return await eG({payload:E,dbFullName:C,useLocal:A,updatedUserId:L,dbSchema:z})}return await new Promise((z,w)=>{let g=JSON.stringify({payload:E,database:R,updatedUserId:L}),d=X.request({method:"POST",headers:{"Content-Type":"application/json","Content-Length":Buffer.from(g).length,Authorization:process.env.DSQL_FULL_ACCESS_API_KEY||process.env.DSQL_API_KEY||_},port:H,hostname:M,path:`/api/user/${N||Y.user_id}/update-user`},(t)=>{var s="";t.on("data",function(m){s+=m}),t.on("end",function(){z(JSON.parse(s))}),t.on("error",(m)=>{w(m)})});d.write(g),d.end()})}var MY=X_(require("fs")),FY=X_(require("path"));sR();aE();JN();LA();async function E2({encryptionKey:_,email:E,username:R,password:N,database:A,additionalFields:L,email_login:U,email_login_code:G,email_login_field:S,token:C,skipPassword:Y,social:M,useLocal:H}){let X=A;if(E?.match(/ /)||R&&R?.match(/ /)||N&&N?.match(/ /))return{success:!1,msg:"Invalid Email/Password format"};let $=N?K1({encryptionKey:_,password:N}):null,z=await LE({queryString:"SELECT * FROM users WHERE email = ? OR username = ?",queryValuesArray:[E,R],database:X.replace(/[^a-z0-9_]/g,""),useLocal:H});if((!z||!z[0])&&!M)return{success:!1,payload:null,msg:"No user found"};let w=!1;if(z?.[0]&&!U&&Y)w=!0;else if(z?.[0]&&!U)w=$===z[0].password;else if(z&&z[0]&&U&&G&&S){let m=z[0][S];if(!m)throw new Error("No code Found!");let k=m.split("-"),[e,o]=k,c=900000;if(Date.now()-Number(o)>c)throw new Error("Code Expired");w=e===G}if(!w&&!0)return{success:!1,msg:"Wrong password, no social login validity",payload:null};if(w&&U){let m=await LE({queryString:`UPDATE users SET ${S} = '' WHERE email = ? OR username = ?`,queryValuesArray:[E,R],database:X.replace(/[^a-z0-9_]/g,""),useLocal:H})}let d=Math.random().toString(36).substring(2)+"-"+Math.random().toString(36).substring(2),t={id:z[0].id,first_name:z[0].first_name,last_name:z[0].last_name,username:z[0].username,email:z[0].email,phone:z[0].phone,social_id:z[0].social_id,image:z[0].image,image_thumbnail:z[0].image_thumbnail,verification_status:z[0].verification_status,social_login:z[0].social_login,social_platform:z[0].social_platform,csrf_k:d,more_data:z[0].more_user_data,logged_in_status:!0,date:Date.now()},s={success:!0,msg:"Login Successful",payload:t,userId:z[0].id,csrf:d};if(L&&Array.isArray(L)&&L.length>0)L.forEach((m)=>{t[m]=z[0][m]});return s}var X1=X_(require("fs")),lT=X_(require("path")),cL=()=>{let _=process.env.DSQL_AUTH_DIR,E=_?.match(/./)?_:lT.default.resolve(process.cwd(),"./.tmp"),R=lT.default.join(E,"logins");return{root:E,auth:R}},Uj=()=>{try{let _=cL();if(!X1.default.existsSync(_.root))X1.default.mkdirSync(_.root,{recursive:!0});if(!X1.default.existsSync(_.auth))X1.default.mkdirSync(_.auth,{recursive:!0});return!0}catch(_){return console.log(`Error initializing Auth Files: ${_.message}`),!1}},nT=(_,E)=>{Uj();try{return X1.default.writeFileSync(lT.default.join(cL().auth,_),E),!0}catch(R){return console.log(`Error writing Auth File: ${R.message}`),!1}};var dL=(_)=>{try{return X1.default.rmSync(lT.default.join(cL().auth,_))}catch(E){return console.log(`Error deleting Auth File: ${E.message}`),null}},WY=(_)=>{try{return X1.default.existsSync(lT.default.join(cL().auth,_))}catch(E){return console.log(`Error checking Auth File: ${E.message}`),!1}};async function N2({key:_,payload:E,database:R,additionalFields:N,response:A,encryptionKey:L,encryptionSalt:U,email_login:G,email_login_code:S,temp_code_field:C,token:Y,user_id:M,skipPassword:H,useLocal:X,apiUserID:$,skipWriteAuthFile:z}){let w=t_(),{host:g,port:d,scheme:t}=w,s="temp_login_code",m=G?C?C:"temp_login_code":void 0,k=L||process.env.DSQL_ENCRYPTION_PASSWORD,e=U||process.env.DSQL_ENCRYPTION_SALT;if(!k?.match(/.{8,}/))return console.log("Encryption key is invalid"),{success:!1,payload:null,msg:"Encryption key is invalid"};if(!e?.match(/.{8,}/))return console.log("Encryption salt is invalid"),{success:!1,payload:null,msg:"Encryption salt is invalid"};if(!E.email)return{success:!1,payload:null,msg:"Email Required"};let o={success:!1},{DSQL_DB_HOST:c,DSQL_DB_USERNAME:S_,DSQL_DB_PASSWORD:U_,DSQL_DB_NAME:V_}=process.env;if(c?.match(/./)&&S_?.match(/./)&&U_?.match(/./)&&V_?.match(/./)&&X){let K_;try{let z_=FY.default.resolve(process.cwd(),"dsql.schema.json");K_=JSON.parse(MY.default.readFileSync(z_,"utf8"))}catch(z_){}o=await E2({database:process.env.DSQL_DB_NAME||"",email:E.email,username:E.username,password:E.password,skipPassword:H,encryptionKey:k,additionalFields:N,email_login:G,email_login_code:S,email_login_field:m,token:Y,useLocal:X})}else o=await new Promise((K_,z_)=>{let r={encryptionKey:k,payload:E,database:R,additionalFields:N,email_login:G,email_login_code:S,email_login_field:m,token:Y,skipPassword:H},A_=JSON.stringify(r),L_=t.request({method:"POST",headers:{"Content-Type":"application/json","Content-Length":Buffer.from(A_).length,Authorization:_||process.env.DSQL_FULL_ACCESS_API_KEY||process.env.DSQL_API_KEY},port:d,hostname:g,path:`/api/user/${M||w.user_id}/login-user`},(P_)=>{var p_="";P_.on("data",function(l_){p_+=l_}),P_.on("end",function(){K_(JSON.parse(p_))}),P_.on("error",(l_)=>{z_(l_)})});L_.write(A_),L_.end()});if(o?.success){let K_=BE({data:JSON.stringify(o.payload),encryptionKey:k,encryptionSalt:e});try{if(Y&&K_)o.token=K_}catch(L_){}let z_=uE({database:R,userId:$||M||w.user_id});if(o.csrf&&!z)nT(o.csrf,JSON.stringify(o.payload));o.cookieNames=z_,o.key=String(K_);let{keyCookieName:r,csrfCookieName:A_}=z_;A?.setHeader("Set-Cookie",[`${r}=${K_};samesite=strict;path=/;HttpOnly=true;Secure=true`,`${A_}=${o.payload?.csrf_k};samesite=strict;path=/;HttpOnly=true`])}return o}var z2=X_(require("fs")),x2=X_(require("path"));aE();JN();var KW=X_(w2());sR();function WA({cookies:_}){let E=[];for(let R=0;R<_.length;R++){let N=_[R],A=`${N.name}=${N.value}`;if(N.maxAge)A+=`;Max-Age=${N.maxAge}`;if(N.path)A+=`;Path=${N.path}`;if(N.domain)A+=`;Domain=${N.domain}`;if(N.secure)A+=";Secure";if(N.httpOnly)A+=";HttpOnly";if(N.sameSite)A+=`;SameSite=${N.sameSite}`;if(N.expires)A+=`;expires=${N.expires}`;if(N.priority)A+=`;priority=${N.priority}`;E.push(A)}return E}async function Q2({email:_,database:E,email_login_field:R,mail_domain:N,mail_port:A,sender:L,mail_username:U,mail_password:G,html:S,useLocal:C,response:Y,extraCookies:M}){if(_?.match(/ /))return{success:!1,msg:"Invalid Email/Password format"};let H=Date.now(),z=await LE({queryString:"SELECT * FROM users WHERE email = ?",queryValuesArray:[_],database:E,useLocal:C});if(!z||!z[0])return{success:!1,msg:"No user found"};function w(){let d="";for(let t=0;t<8;t++)d+="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"[Math.floor(Math.random()*"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789".length)];return d}if(z?.[0]&&R){let g=w(),d=KW.default.createTransport({host:N||process.env.DSQL_MAIL_HOST,port:A?A:process.env.DSQL_MAIL_PORT?Number(process.env.DSQL_MAIL_PORT):465,secure:!0,auth:{user:U||process.env.DSQL_MAIL_EMAIL,pass:G||process.env.DSQL_MAIL_PASSWORD}}),t={};if(t.from=`"Datasquirel SSO" <${L||"support@datasquirel.com"}>`,t.sender=L||"support@datasquirel.com",t.to=_,t.subject="One Time Login Code",t.html=S.replace(/{{code}}/,g),!(await d.sendMail(t))?.accepted)throw new Error("Mail not Sent!");let m=`UPDATE users SET ${R} = ? WHERE email = ?`,k=[g+`-${H}`,_],e=await LE({queryString:m,queryValuesArray:k,database:E,useLocal:C}),o={success:!0,code:g,email:_,createdAt:H,msg:"Success"};if(Y){let S_=uE().oneTimeCodeName,U_=BE({data:JSON.stringify(o)});if(!U_)throw new Error("apiSendEmailCode Error: Failed to encrypt payload");let V_={name:S_,value:U_,sameSite:"Strict",path:"/",httpOnly:!0,secure:!0},K_=M?[...M,V_]:[V_],z_=WA({cookies:K_});Y.setHeader("Set-Cookie",z_)}return o}else return{success:!1,msg:"Invalid Email/Password format"}}var __dirname="/home/benoti/Projects/Git/moduletrace/datasquirel/datasquirel/users";async function q2({key:_,email:E,database:R,temp_code_field_name:N,mail_domain:A,mail_password:L,mail_username:U,mail_port:G,sender:S,user_id:C,useLocal:Y,response:M,extraCookies:H}){let X=t_(),{host:$,port:z,scheme:w}=X,g="temp_login_code",d=N?N:"temp_login_code",t=z2.default.readFileSync(x2.default.resolve(__dirname,"../package-shared/html/one-time-code.html"),"utf-8"),{DSQL_DB_HOST:s,DSQL_DB_USERNAME:m,DSQL_DB_PASSWORD:k,DSQL_DB_NAME:e}=process.env;if(s?.match(/./)&&m?.match(/./)&&k?.match(/./)&&e?.match(/./)&&Y){let o;try{let c=x2.default.resolve(process.cwd(),"dsql.schema.json");o=JSON.parse(z2.default.readFileSync(c,"utf8"))}catch(c){}return await Q2({database:e,email:E,email_login_field:d,html:t,mail_domain:A,mail_password:L,mail_port:G,mail_username:U,sender:S,useLocal:Y,response:M,extraCookies:H})}else return await new Promise((c,S_)=>{let U_=JSON.stringify({email:E,database:R,email_login_field:d,mail_domain:A,mail_password:L,mail_username:U,mail_port:G,sender:S,html:t}),V_=w.request({method:"POST",headers:{"Content-Type":"application/json","Content-Length":Buffer.from(U_).length,Authorization:_||process.env.DSQL_FULL_ACCESS_API_KEY||process.env.DSQL_API_KEY},port:z,hostname:$,path:`/api/user/${C||X.user_id}/send-email-code`},(K_)=>{var z_="";K_.on("data",function(r){z_+=r}),K_.on("end",function(){c(JSON.parse(z_))}),K_.on("error",(r)=>{S_(r)})});V_.write(U_),V_.end()})}P1();a1();function tL({response:_,database:E,dsqlUserId:R,encryptedUserString:N,request:A,cookieString:L}){try{let U=uE({database:E,userId:R||process.env.DSQL_API_USER_ID}),G=U.keyCookieName,S=U.csrfCookieName,C=uE().oneTimeCodeName,Y=(()=>{try{if(A){let X=GN({request:A,cookieString:L});return OR({encryptedString:X[G]})}else if(N)return OR({encryptedString:N});else return}catch(X){console.log("Error getting decrypted User JSON to logout:",X.message);return}})();if(!Y)throw new Error("Invalid User");let M=tR.parse(Y);if(!M?.csrf_k)throw new Error("Invalid User. Please check key");_?.setHeader("Set-Cookie",[`${G}=null;max-age=0`,`${S}=null;max-age=0`,`${C}=null;max-age=0`]);let H=M.csrf_k;return dL(H),{success:!0,msg:"User Logged Out",cookieNames:U}}catch(U){return console.log("Logout Error:",U.message),{success:!1,msg:"Logout Failed"}}}Hp.exports=tL;P1();var Wp=60000,Mp=Wp*60,f2=Mp*24,Fp=f2*7,wi=f2*30,Qi=f2*365;function MA({request:_,req:E,encryptionKey:R,encryptionSalt:N,level:A,database:L,dsqlUserId:U,encryptedUserString:G,expiry:S=Fp,cookieString:C,csrfHeaderIsValue:Y,csrfHeaderName:M}){try{let H=E||_,X=R||process.env.DSQL_ENCRYPTION_PASSWORD,$=N||process.env.DSQL_ENCRYPTION_SALT,z=GN({request:H,cookieString:C}),w=uE({userId:U||process.env.DSQL_API_USER_ID,database:L||process.env.DSQL_DB_NAME}),g=w.keyCookieName,d=w.csrfCookieName,t=G?G:z[g],s=z[d],m=OR({encryptedString:t,encryptionKey:X,encryptionSalt:$});if(!m)return{success:!1,payload:null,msg:"Couldn't Decrypt cookie"};let k=JSON.parse(m);if(!k.csrf_k)return{success:!1,payload:null,msg:"No CSRF_K in decrypted payload"};if(!WY(k.csrf_k))return{success:!1,payload:null,msg:"Auth file doesn't exist"};if(A?.match(/deep/i)&&H){if(M&&H.headers[M]!==k.csrf_k)return{success:!1,payload:null,msg:"CSRF_K mismatch"};let S_=Object.keys(H.headers).map((U_)=>U_.replace(/[^a-zA-Z0-9\-]/g,"")).find((U_)=>U_==k.csrf_k);if(Y&&!S_)return{success:!1,payload:null,msg:"CSRF_K Header Key mismatch"}}let e=Number(k.date);if(Number.isNaN(e)||typeof e!=="number")return{success:!1,payload:null,msg:"Payload Creation Date is not a number"};let o=Date.now()-e,c=process.env.DSQL_SESSION_EXPIRY_TIME?Number(process.env.DSQL_SESSION_EXPIRY_TIME):S;if(o>c)return{success:!1,payload:null,msg:"Session has expired"};return{success:!0,payload:k}}catch(H){return{success:!1,payload:null,msg:H.message}}}var XW=X_(require("fs")),JW=X_(require("path"));sR();aE();JN();async function j2({existingUser:_,database:E,additionalFields:R,useLocal:N}){let A=_?.id&&_.id.toString().match(/./)?await LE({queryString:"SELECT * FROM users WHERE id=?",queryValuesArray:[_.id.toString()],database:E,useLocal:N}):null;if(!A||!A[0])return{success:!1,payload:null,msg:"No user found"};let L=Math.random().toString(36).substring(2)+"-"+Math.random().toString(36).substring(2),U={id:A[0].id,first_name:A[0].first_name,last_name:A[0].last_name,username:A[0].username,email:A[0].email,phone:A[0].phone,social_id:A[0].social_id,image:A[0].image,image_thumbnail:A[0].image_thumbnail,verification_status:A[0].verification_status,social_login:A[0].social_login,social_platform:A[0].social_platform,csrf_k:L,more_data:A[0].more_user_data,logged_in_status:!0,date:Date.now()};if(R&&Array.isArray(R)&&R.length>0)R.forEach((G)=>{U[G]=A[0][G]});return{success:!0,msg:"Login Successful",payload:U,csrf:L}}async function v2({key:_,database:E,response:R,request:N,level:A,encryptionKey:L,encryptionSalt:U,additionalFields:G,encryptedUserString:S,user_id:C,useLocal:Y}){let M=t_(),{host:H,port:X,scheme:$}=M,z=L||process.env.DSQL_ENCRYPTION_PASSWORD,w=U||process.env.DSQL_ENCRYPTION_SALT,g=MA({database:E,encryptionKey:z,encryptionSalt:w,level:A,request:N,encryptedUserString:S});if(!g?.payload?.id)return{success:!1,payload:null,msg:"Cookie Credentials Invalid"};let d,{DSQL_DB_HOST:t,DSQL_DB_USERNAME:s,DSQL_DB_PASSWORD:m,DSQL_DB_NAME:k}=process.env;if(t?.match(/./)&&s?.match(/./)&&m?.match(/./)&&k?.match(/./)&&Y){let e;try{let o=JW.default.resolve(process.cwd(),"dsql.schema.json");e=JSON.parse(XW.default.readFileSync(o,"utf8"))}catch(o){}d=await j2({existingUser:g.payload,additionalFields:G,useLocal:Y})}else d=await new Promise((e,o)=>{let c=JSON.stringify({existingUser:g.payload,database:E,additionalFields:G}),S_=$.request({method:"POST",headers:{"Content-Type":"application/json","Content-Length":Buffer.from(c).length,Authorization:_||process.env.DSQL_FULL_ACCESS_API_KEY||process.env.DSQL_API_KEY},port:X,hostname:H,path:`/api/user/${C||M.user_id}/reauth-user`},(U_)=>{var V_="";U_.on("data",function(K_){V_+=K_}),U_.on("end",function(){e(JSON.parse(V_))}),U_.on("error",(K_)=>{o(K_)})});S_.write(c),S_.end()});if(d?.success){let e=BE({data:JSON.stringify(d.payload),encryptionKey:z,encryptionSalt:w}),o=uE({database:E,userId:C||M.user_id});d.cookieNames=o,d.key=String(e);let{keyCookieName:c,csrfCookieName:S_}=o;if(R?.setHeader("Set-Cookie",[`${c}=${e};samesite=strict;path=/;HttpOnly=true;Secure=true`,`${S_}=${d.payload?.csrf_k};samesite=strict;path=/;HttpOnly=true`]),d.csrf)dL(String(g.payload.csrf_k)),nT(d.csrf,JSON.stringify(d.payload))}return d}var $W=X_(require("path")),ZW=X_(require("fs"));aE();JN();async function p2({fields:_,dbFullName:E,userId:R,useLocal:N}){let A=`SELECT ${_.join(",")} FROM users WHERE id=?`,L=R||process.env.DSQL_API_USER_ID,U=await LE({queryString:A,queryValuesArray:[L],database:E.replace(/[^a-z0-9_]/g,""),useLocal:N});if(!U||!U[0])return{success:!1,payload:null};return{success:!0,payload:U[0]}}async function h2({key:_,userId:E,database:R,fields:N,apiUserId:A,useLocal:L}){let U=["id","first_name","last_name","email","username","image","image_thumbnail","verification_status","date_created","date_created_code","date_created_timestamp","date_updated","date_updated_code","date_updated_timestamp"],G=N&&N[0]?[...U,...N]:U,S=JSON.stringify({userId:E,database:R,fields:[...new Set(G)]}),C=t_(),{host:Y,port:M,scheme:H}=C,{DSQL_DB_HOST:X,DSQL_DB_USERNAME:$,DSQL_DB_PASSWORD:z,DSQL_DB_NAME:w}=process.env;if(X?.match(/./)&&$?.match(/./)&&z?.match(/./)&&w?.match(/./)&&L){let d;try{let t=$W.default.resolve(process.cwd(),"dsql.schema.json");d=JSON.parse(ZW.default.readFileSync(t,"utf8"))}catch(t){}return await p2({userId:E,fields:[...new Set(G)],dbFullName:w,useLocal:L})}return await new Promise((d,t)=>{let s=H.request({method:"POST",headers:{"Content-Type":"application/json","Content-Length":Buffer.from(S).length,Authorization:_||process.env.DSQL_FULL_ACCESS_API_KEY||process.env.DSQL_API_KEY},port:M,hostname:Y,path:`/api/user/${A||C.user_id}/get-user`},(m)=>{var k="";m.on("data",function(e){k+=e}),m.on("end",function(){d(JSON.parse(k))}),m.on("error",(e)=>{t(e)})});s.write(S),s.end()})}sR();aE();var hW=X_(require("https"));var VA=X_(require("fs"));var k2=X_(require("fs")),wW=X_(w2()),Bp=wW.default.createTransport({host:process.env.DSQL_MAIL_HOST,port:465,secure:!0,auth:{user:process.env.DSQL_MAIL_EMAIL,pass:process.env.DSQL_MAIL_PASSWORD}});async function m2({to:_,subject:E,text:R,html:N,alias:A,senderName:L}){if(!process.env.DSQL_MAIL_HOST||!process.env.DSQL_MAIL_EMAIL||!process.env.DSQL_MAIL_PASSWORD)return null;let U=(()=>{if(A?.match(/support/i))return process.env.DSQL_MAIL_EMAIL;return process.env.DSQL_MAIL_EMAIL})(),G;if(!k2.default.existsSync("./email/index.html"))return;let C=k2.default.readFileSync("./email/index.html","utf8").replace(/{{email_body}}/,N?N:"").replace(/{{issue_date}}/,Date().substring(0,24));try{let Y={};if(Y.from=`"${L||"Datasquirel"}" <${U}>`,Y.sender=U,A)Y.replyTo=U;Y.to=_,Y.subject=E,Y.text=R,Y.html=C,G=await Bp.sendMail(Y)}catch(Y){console.log("ERROR in handleNodemailer Function =>",Y.message)}return G}var pW=X_(require("path"));var vW=X_(fW());rN();var jW=X_(ZT());wT();var y2=jW.default({config:{host:process.env.DSQL_DB_HOST,user:process.env.DSQL_DB_USERNAME,password:process.env.DSQL_DB_PASSWORD,charset:"utf8mb4",ssl:WR()}});function b2(..._){try{return new Promise((E,R)=>{y2.query(..._).then((N)=>{y2.end(),E(JSON.parse(JSON.stringify(N)))}).catch((N)=>{y2.end(),E({error:N.message,sql:N.sql})})})}catch(E){return{success:!1,error:E.message}}}sR();WN();async function i2({userId:_,useLocal:E}){try{let R=process.env.DSQL_DB_HOST||"127.0.0.1",N=`dsql_user_${_}`,A=vW.default.generate({length:16,numbers:!0,symbols:!0,uppercase:!0,exclude:"*#.'`\""}),L=BE({data:A}),U=`CREATE USER IF NOT EXISTS '${N}'@'127.0.0.1' IDENTIFIED BY '${A}'`;if(E)await xE(U);else await b2(U);let G="UPDATE users SET mariadb_user = ?, mariadb_host = '127.0.0.1', mariadb_pass = ? WHERE id = ?",S=[N,L,_],C=E?await xE(G,S):await oE(G,S),Y=await $R({tableName:"mariadb_users",data:{user_id:_,username:N,host:R,password:L,primary:"1",grants:'[{"database":"*","table":"*","privileges":["ALL"]}]'},dbContext:"Master",useLocal:E});console.log(`User ${_} SQL credentials successfully added.`)}catch(R){console.log("Error in adding SQL user in 'addMariadbUser' function =>",R.message)}}JN();sR();CR();rN();WN();async function u2({query:_,user:E,useLocal:R}){try{let N=R?xE:oE,{invite:A,database_access:L,priviledge:U,email:G}=_,S="SELECT date_created_code FROM invitations WHERE inviting_user_id=? AND invited_user_email=?",Y=await N("SELECT date_created_code FROM invitations WHERE inviting_user_id=? AND invited_user_email=?",[A,G]);if(!Y||!Y[0])throw new Error("No Invitation Found");if((await N("SELECT first_name,last_name,email FROM users WHERE id=?",[A]))?.[0]){if((await N("SELECT email FROM user_users WHERE user_id=? AND invited_user_id=? AND user_type='admin' AND email=?",[A,E.id,G]))?.[0])console.log("User already added");else{$R({dbFullName:"datasquirel",tableName:"user_users",data:{user_id:A,invited_user_id:E.id,database_access:L,first_name:E.first_name,last_name:E.last_name,phone:E.phone,email:E.email,username:E.username,user_type:"admin",user_priviledge:U,image:E.image,image_thumbnail:E.image_thumbnail},useLocal:R});let w=await N("SELECT db_tables_data FROM invitations WHERE inviting_user_id=? AND invited_user_email=?",[A,G]),g=await N("DELETE FROM delegated_user_tables WHERE root_user_id=? AND delegated_user_id=?",[A,E.id]);if(w&&w[0]){let d=w[0].db_tables_data.split("|");for(let t=0;t{Y[H]=S[0][H]});if(R&&(!N||N?.match(/^datasquirel$/)))u2({query:R,user:Y,useLocal:L});return{success:!0,payload:Y,csrf:C}}async function KA({database:_,social_id:E,email:R,social_platform:N,payload:A,invitation:L,supEmail:U,additionalFields:G,useLocal:S}){try{let Y=[E.toString(),N],M=await LE({database:_?_:"datasquirel",queryString:"SELECT * FROM users WHERE social_id = ? AND social_login='1' AND social_platform = ? ",queryValuesArray:Y,useLocal:S});if(M&&M[0])return await BA({user:M[0],social_platform:N,invitation:L,database:_,additionalFields:G,useLocal:S});let H=R?R:U?U:null;if(!H)return{success:!1,payload:null,msg:"No Email Present"};let X=`SELECT * FROM users WHERE email='${H}'`,$=await LE({database:_?_:"datasquirel",queryString:X,useLocal:S});if($&&$[0])return{success:!1,payload:null,msg:"This Email is already taken"};let g=await LE({database:_?_:"datasquirel",queryString:"SELECT * FROM users WHERE email=? AND social_login='1' AND social_platform=? AND social_id=?",queryValuesArray:[H,N,E],useLocal:S});if(g&&g[0])return await BA({user:A,social_platform:N,invitation:L,database:_,additionalFields:G,useLocal:S});let d=BE({data:E.toString()}),t={social_login:"1",verification_status:U?"0":"1",password:d};Object.keys(A).forEach((m)=>{t[m]=A[m]});let s=await $R({dbContext:_?"Dsql User":void 0,paradigm:_?"Full Access":void 0,dbFullName:_?_:"datasquirel",tableName:"users",duplicateColumnName:"email",duplicateColumnValue:H,data:{...t,email:H},useLocal:S});if(s?.insertId){if(!_)await i2({userId:s.insertId,useLocal:S});let m=`SELECT * FROM users WHERE id='${s.insertId}'`,k=await LE({database:_?_:"datasquirel",queryString:m,useLocal:S});if(!k||!k[0])return{success:!1,payload:null,msg:"User Insertion Failed!"};if(U&&_?.match(/^datasquirel$/)){let o=BE({data:JSON.stringify({id:s.insertId,email:U,dateCode:Date.now()})});m2({to:U,subject:"Verify Email Address",text:"Please click the link to verify your email address",html:VA.default.readFileSync("./email/send-email-verification-link.html","utf8").replace(/{{host}}/,process.env.DSQL_HOST||"").replace(/{{token}}/,o||"")}).then(()=>{})}let e=process.env.DSQL_STATIC_SERVER_DIR;if(!e)return console.log("Static File ENV not Found!"),{success:!1,payload:null,msg:"Static File ENV not Found!"};if(!_||_?.match(/^datasquirel$/)){let o=`${process.env.DSQL_USER_DB_SCHEMA_PATH}/user-${s.insertId}`,c=pW.default.join(e,`images/user-images/user-${s.insertId}`);VA.default.mkdirSync(o),VA.default.mkdirSync(c),VA.default.writeFileSync(`${o}/main.json`,JSON.stringify([]),"utf8")}return await BA({user:k[0],social_platform:N,invitation:L,database:_,additionalFields:G,useLocal:S})}else return console.log("Social User Failed to insert in 'handleSocialDb.js' backend function =>",s),{success:!1,payload:null,msg:"Social User Failed to insert in 'handleSocialDb.js' backend function"}}catch(C){return console.log("ERROR in 'handleSocialDb.js' backend function =>",C.message),{success:!1,payload:null,msg:C.message}}}a1();async function c2({token:_,database:E,additionalFields:R,additionalData:N}){try{let A=await new Promise((H,X)=>{hW.default.request({method:"GET",hostname:"www.googleapis.com",path:"/oauth2/v3/userinfo",headers:{Authorization:`Bearer ${_}`}},($)=>{let z="";$.on("data",(w)=>{z+=w}),$.on("end",()=>{H(tR.parse(z))})}).end()});if(!A?.email_verified)throw new Error("No Google User.");if(!E||typeof E!="string"||E?.match(/ /))return{success:!1,payload:void 0,msg:"Please provide a database slug(database name in lowercase with no spaces)"};let{given_name:L,family_name:U,email:G,sub:S,picture:C}=A,Y={email:G,first_name:L,last_name:U,social_id:S,social_platform:"google",image:C,image_thumbnail:C,username:`google-user-${S}`};if(N)Y={...Y,...N};return{...await KA({database:E,email:G||"",payload:Y,social_platform:"google",social_id:S,additionalFields:R})}}catch(A){return console.log(`apo-google-login.js ERROR: ${A.message}`),{success:!1,payload:void 0,msg:A.message}}}async function d2({key:_,token:E,database:R,response:N,encryptionKey:A,encryptionSalt:L,additionalFields:U,additionalData:G,apiUserID:S,useLocal:C}){let Y=t_(),{host:M,port:H,scheme:X}=Y,$=A||process.env.DSQL_ENCRYPTION_PASSWORD,z=L||process.env.DSQL_ENCRYPTION_SALT;if(!$?.match(/.{8,}/))return console.log("Encryption key is invalid"),{success:!1,payload:null,msg:"Encryption key is invalid"};if(!z?.match(/.{8,}/))return console.log("Encryption salt is invalid"),{success:!1,payload:null,msg:"Encryption salt is invalid"};if(!E||E?.match(/ /))return{success:!1,payload:null,msg:"Please enter Google Access Token"};let w={success:!1},{DSQL_DB_HOST:g,DSQL_DB_USERNAME:d,DSQL_DB_PASSWORD:t,DSQL_DB_NAME:s}=process.env;if(g?.match(/./)&&d?.match(/./)&&t?.match(/./)&&s?.match(/./)&&C)w=await c2({token:E,additionalFields:U,database:s,additionalData:G});else w=await new Promise((m,k)=>{let e=JSON.stringify({token:E,database:R,additionalFields:U,additionalData:G}),o=X.request({method:"POST",headers:{"Content-Type":"application/json","Content-Length":Buffer.from(e).length,Authorization:_||process.env.DSQL_FULL_ACCESS_API_KEY||process.env.DSQL_API_KEY},port:H,hostname:M,path:`/api/user/${S||Y.user_id}/google-login`},(c)=>{var S_="";c.on("data",function(U_){S_+=U_}),c.on("end",function(){m(JSON.parse(S_))}),c.on("error",(U_)=>{k(U_)})});o.write(e),o.end()});if(w?.success&&w?.payload){let m=BE({data:JSON.stringify(w.payload),encryptionKey:$,encryptionSalt:z}),k=uE({database:R,userId:S||process.env.DSQL_API_USER_ID});if(w.csrf)nT(w.csrf,JSON.stringify(w.payload));w.cookieNames=k,w.key=String(m);let{keyCookieName:e,csrfCookieName:o}=k;N?.setHeader("Set-Cookie",[`${e}=${m};samesite=strict;path=/;HttpOnly=true;Secure=true`,`${o}=${w.payload?.csrf_k};samesite=strict;path=/;HttpOnly=true`])}return w}var gW=X_(require("fs")),yW=X_(require("path"));sR();aE();rN();var l2=X_(require("https")),kW=X_(require("http")),mW=require("url");function aL({url:_,method:E,hostname:R,path:N,headers:A,body:L,port:U,scheme:G}){let S=L?JSON.stringify(L):null,C=_?new mW.URL(_):null,Y={method:E||"GET",hostname:C?C.hostname:R,port:G?.match(/https/i)?443:C?C.protocol?.match(/https/i)?443:C.port:U?Number(U):80,headers:{}};if(N)Y.path=N;if(A)Y.headers=A;if(L)Y.headers["Content-Type"]="application/json",Y.headers["Content-Length"]=S?Buffer.from(S).length:void 0;return new Promise((M,H)=>{let X=((G?.match(/https/i))?l2.default:(C?.protocol?.match(/https/i))?l2.default:kW.default).request(Y,($)=>{var z="";$.on("data",function(w){z+=w}),$.on("end",function(){M(z)}),$.on("error",(w)=>{console.log("HTTP response error =>",w.message),H(`HTTP response error =>, ${w.message}`)}),$.on("close",()=>{console.log("HTTP(S) Response Closed Successfully")})});if(L)X.write(S);X.on("error",($)=>{console.log("HTTPS request ERROR =>",$.message),H(`HTTP request error =>, ${$.message}`)}),X.end()})}async function n2({code:_,clientId:E,clientSecret:R}){let N;try{let A=await aL({method:"POST",hostname:"github.com",path:`/login/oauth/access_token?client_id=${E}&client_secret=${R}&code=${_}`,headers:{Accept:"application/json","User-Agent":"*"},scheme:"https"}),L=JSON.parse(A);if(!L?.access_token)return N;let U=await aL({method:"GET",hostname:"api.github.com",path:"/user",headers:{Authorization:`Bearer ${L.access_token}`,"User-Agent":"*"},scheme:"https"});if(N=JSON.parse(U),!N?.email&&N){let G=await oE(`SELECT email FROM users WHERE social_login='1' AND social_platform='github' AND social_id='${N.id}'`);if(G&&G[0])N.email=G[0].email}}catch(A){console.log("ERROR in githubLogin.js backend function =>",A.message)}return N}function eL(_){if(!_?.match(/./))return"";if(_?.match(/ /))return _;if(_){let E=_.split(""),R=[];for(let A=0;A{let S_=JSON.stringify({code:E,email:R,clientId:A,clientSecret:L,database:N,additionalFields:C,additionalData:M}),U_=z.request({method:"POST",headers:{"Content-Type":"application/json","Content-Length":Buffer.from(S_).length,Authorization:_||process.env.DSQL_FULL_ACCESS_API_KEY||process.env.DSQL_API_KEY},port:$,hostname:X,path:`/api/user/${Y||H.user_id}/github-login`},(V_)=>{var K_="";V_.on("data",function(z_){K_+=z_}),V_.on("end",function(){try{o(JSON.parse(K_))}catch(z_){console.log(z_),o({success:!1,user:null,msg:"Something went wrong"})}}),V_.on("error",(z_)=>{c(z_)})});U_.write(S_),U_.end()});if(w?.success&&w?.user){let o=BE({data:JSON.stringify(w.user),encryptionKey:G,encryptionSalt:S}),{user:c,dsqlUserId:S_}=w,U_=`datasquirel_${S_}_${N}_auth_key`,V_=`datasquirel_${S_}_${N}_csrf`;U.setHeader("Set-Cookie",[`${U_}=${o};samesite=strict;path=/;HttpOnly=true;Secure=true`,`${V_}=${c.csrf_k};samesite=strict;path=/;HttpOnly=true`,`dsqluid=${S_};samesite=strict;path=/;HttpOnly=true`,`datasquirel_social_id=${c.social_id};samesite=strict;path=/`])}return w}P1();function t2({request:_,encryptionKey:E,encryptionSalt:R,database:N,useLocal:A,cookieString:L}){try{let U=GN({request:_,cookieString:L}),G=uE(),S=G.keyCookieName,C=G.csrfCookieName,Y=U[S],M=U[C],H=OR({encryptedString:Y,encryptionKey:E,encryptionSalt:R});if(!H)return{key:void 0,csrf:void 0};if(!JSON.parse(H).csrf_k)return{key:void 0,csrf:void 0};return{key:Y,csrf:M}}catch(U){return{key:void 0,csrf:void 0}}}P1();function r2({token:_,encryptionKey:E,encryptionSalt:R}){try{let A=OR({encryptedString:_,encryptionKey:E,encryptionSalt:R});if(!A)return null;let L=JSON.parse(A);if(!L.csrf_k)return null;return L}catch(N){return null}}async function a2({imageInputFile:_,maxWidth:E,imagePreviewNode:R}){try{let N=_.name.replace(/\..*/,""),A,L,U=document.createElement("canvas"),G=_.type,S=0.95,C=E?E:null,Y=_,M=URL.createObjectURL(Y),H=new Image;return H.src=M,A=await new Promise((X,$)=>{H.onerror=function(){URL.revokeObjectURL(this.src),console.log("Cannot load image")},H.onload=function(z){let w=z.target;if(URL.revokeObjectURL(w.src),C){let t=C/H.naturalWidth;U.width=H.naturalWidth{U.toBlob((z)=>{X(z?.size)},G,S)}),{imageBase64:A?.replace(/.*?base64,/,""),imageBase64Full:A,imageName:N,imageSize:L}}catch(N){return console.log("Image Processing Error! =>",N.message),{imageBase64:void 0,imageBase64Full:void 0,imageName:void 0,imageSize:void 0}}}async function e2({imageInput:_,maxWidth:E,mimeType:R}){try{let N=document.querySelector("[data-imagepreview='image']"),A=_.files?.[0].name.replace(/\..*/,""),L,U=R?R:"image/jpeg",G=0.95,S=E?E:null,C=_.files?.[0],Y=C?URL.createObjectURL(C):void 0,M=new Image;if(Y)return M.src=Y,L=await new Promise((H,X)=>{M.onerror=function(){URL.revokeObjectURL(this.src),window.alert("Cannot load image!")},M.onload=function($){let z=$.target;URL.revokeObjectURL(z.src);let w=document.createElement("canvas");if(S){let t=S/M.naturalWidth;w.width=M.naturalWidth{let s=t;s.src=d});H(d)}}),{imageBase64:L?.replace(/.*?base64,/,""),imageBase64Full:L,imageName:A};else return{}}catch(N){return console.log("Image Processing Error! =>",N.message),{}}}async function _D({inputFile:_,allowedRegex:E}){let R=E?E:/image\/*|\/pdf/;if(!_?.type?.match(R))return window.alert(`We currently don't support ${_.type} file types. Support is coming soon. For now we support only images and PDFs.`),{fileName:_.name};try{let N=_.name.replace(/\..*/,""),A=await new Promise((L,U)=>{var G=new FileReader;G.readAsDataURL(_),G.onload=function(){L(G.result?.toString())},G.onerror=function(S){console.log("Error: ",S.message)}});return{fileBase64:A?.replace(/.*?base64,/,""),fileBase64Full:A,fileName:N,fileSize:_.size,fileType:_.type}}catch(N){return console.log("File Processing Error! =>",N.message),{fileName:_.name}}}var bW;async function ED(_){_.setLoading?.(!0);let E=await new Promise((R,N)=>{bW=setInterval(()=>{let A=window.google;if(A)window.clearInterval(bW),R(xp({..._,google:A}))},500)});return _.setLoading?.(!1),E}function xp({google:_,clientId:E,setLoading:R,triggerPrompt:N}){return setTimeout(()=>{R?.(!1)},3000),new Promise((A,L)=>{function U(C){A(C.access_token)}if(_.accounts.oauth2.initTokenClient({client_id:E,scope:"email profile",callback:U}).requestAccessToken(),N)_.accounts.id.prompt(S);function S(C){console.log(C)}})}function RD({clientId:_,redirectUrl:E,setLoading:R,scopes:N}){if(R)R(!0);let A=N?N.join("%20"):"read:user",L=`https://github.com/login/oauth/authorize?client_id=${_}&scope=${A}&redirect_uri=${E}`;window.location.assign(L)}function ND(){let _=document.cookie;if(!_||typeof _!=="string")return null;let E=_.split(";"),R={};return E.forEach((N)=>{let[A,L]=N.split("=");if(A&&typeof A=="string")R[A.replace(/^ +| +$/,"")]=L&&typeof L=="string"?L.replace(/^ +| +$/,""):null}),R}async function TD(_){try{let E=localStorage.getItem("user"),R;try{R=JSON.parse(E||"")}catch(U){console.log(U)}if(!R)return!1;let N=ND(),A=N?.datasquirel_social_id&&typeof N.datasquirel_social_id=="string"&&!N.datasquirel_social_id.match(/^null$/i)?N.datasquirel_social_id:null;return localStorage.setItem("user","{}"),localStorage.removeItem("csrf"),document.cookie="datasquirel_social_id=null;samesite=strict;path=/",await new Promise((U,G)=>{if(A&&!A?.match(/^null$/i)){let S=_?.googleClientId;if(S){let C=document.createElement("script");C.src="https://accounts.google.com/gsi/client",C.className="social-script-tag",document.body.appendChild(C),C.onload=function(Y){let M=window.google;if(M)M.accounts.id.initialize({client_id:S}),M.accounts.id.revoke(A,(H)=>{console.log(H.error),U(!0)})}}else U(!0)}else U(!0)})}catch(E){return!1}}var OD=X_(SI());async function XA(_,E,R,N){let A,L=localStorage.getItem(N||"csrf"),U={"Content-Type":"application/json"};if(R&&L)U[`'${L.replace(/\"/g,"")}'`]="true";if(typeof E==="string")try{let G;switch(E){case"post":G=await fetch(_,{method:E,headers:U}),A=G.json();break;default:G=await fetch(_),A=G.json();break}}catch(G){console.log("FetchAPI error #1:",G.message),A=null}else if(typeof E==="object")try{let G;if(E.body&&typeof E.body==="object"){let S=OD.default.cloneDeep(E.body);E.body=JSON.stringify(S)}if(E.headers){E.headers=OD.default.merge(E.headers,U);let S={...E};G=await fetch(_,S)}else{let S={...E,headers:U};G=await fetch(_,S)}A=G.json()}catch(G){console.log("FetchAPI error #2:",G.message),A=null}else try{A=await(await fetch(_)).json()}catch(G){console.log("FetchAPI error #3:",G.message),A=null}return A}a1();function AD(_,E){try{let R=Number(_);if(typeof R!=="number")return 0;if(isNaN(R))return 0;if(E)return Number(R.toFixed(E));return Math.round(R)}catch(R){return console.log(`Numberfy ERROR: ${R.message}`),0}}function ID(_){try{return String(_).trim().toLowerCase().replace(/ {2,}/g," ").replace(/ /g,"-").replace(/[^a-z0-9]/g,"-").replace(/-{2,}/g,"-").replace(/^-/,"").replace(/-$/,"")}catch(E){return console.log(`Slugify ERROR: ${E.message}`),""}}var qp={imageInputToBase64:e2,imageInputFileToBase64:a2,inputFileToBase64:_D},fp={google:{getAccessToken:ED},github:{getAccessToken:RD},logout:TD},jp={serializeQuery:e1,serializeCookies:WA,EJSON:tR,numberfy:AD,slugify:ID},vp={fetchApi:XA,clientFetch:XA},pp={media:qp,auth:fp,fetch:vp,utils:jp},iW=pp;function LD({tableName:_,genObject:E}){if(!E)return;let R=E.query?E.query:void 0,N=R?Object.keys(R):void 0,A=[];function L({queryObj:C,join:Y,field:M}){let H=(()=>{if(C?.tableName)return`${C.tableName}.${M}`;if(Y)return`${_}.${M}`;return M})(),X=`${H}=?`;if(typeof C.value=="string"||typeof C.value=="number"){let $=String(C.value);if(C.equality=="LIKE")X=`LOWER(${H}) LIKE LOWER('%${$}%')`;else if(C.equality=="NOT EQUAL")X=`${H} != ?`,A.push($);else A.push($)}else if(Array.isArray(C.value)){let $=[];C.value.forEach((z)=>{let w=z;if(C.equality=="LIKE")$.push(`LOWER(${H}) LIKE LOWER('%${w}%')`);else if(C.equality=="NOT EQUAL")$.push(`${H} != ?`),A.push(w);else $.push(`${H} = ?`),A.push(w)}),X="("+$.join(` ${C.operator||"AND"} `)+")"}return X}let U=N?.map((C)=>{let Y=R?.[C];if(!Y)return;if(Y.__query){let M=Y.__query,X=Object.keys(M).map(($)=>{let z=M?.[$];return L({queryObj:z,field:$,join:E.join})});return console.log("queryObj.operator",Y.operator),"("+X.join(` ${Y.operator||"AND"} `)+")"}return L({queryObj:Y,field:C,join:E.join})});function G(C,Y){return`${typeof C.source=="object"?C.source.tableName:_}.${typeof C.source=="object"?C.source.fieldName:C.source}=${(()=>{if(C.targetLiteral)return`'${C.targetLiteral}'`;if(Y.alias)return`${typeof C.target=="object"?C.target.tableName:Y.alias}.${typeof C.target=="object"?C.target.fieldName:C.target}`;return`${typeof C.target=="object"?C.target.tableName:Y.tableName}.${typeof C.target=="object"?C.target.fieldName:C.target}`})()}`}let S=(()=>{let C="SELECT";if(E.selectFields?.[0])if(E.join)C+=` ${E.selectFields?.map((Y)=>`${_}.${Y}`).join(",")}`;else C+=` ${E.selectFields?.join(",")}`;else if(E.join)C+=` ${_}.*`;else C+=" *";if(E.join){let Y=[_];C+=","+E.join.map((M)=>{let H=M.alias?M.alias:M.tableName;if(Y.includes(H))return null;if(Y.push(H),M.selectFields)return M.selectFields.map((X)=>{if(typeof X=="string")return`${H}.${X}`;else if(typeof X=="object"){let $=X.count?`COUNT(${H}.${X.field})`:`${H}.${X.field}`;if(X.alias)$+=` AS ${X.alias}`;return $}}).join(",");else return`${H}.*`}).filter((M)=>Boolean(M)).join(",")}if(C+=` FROM ${_}`,E.join)C+=" "+E.join.map((Y)=>{return Y.joinType+" "+(Y.alias?Y.tableName+" "+Y.alias:Y.tableName)+" ON "+(()=>{if(Array.isArray(Y.match))return"("+Y.match.map((M)=>G(M,Y)).join(Y.operator?` ${Y.operator} `:" AND ")+")";else if(typeof Y.match=="object")return G(Y.match,Y)})()}).join(" ");return C})();if(U?.[0]&&U.find((C)=>C)){let C=E?.searchOperator||"AND";S+=` WHERE ${U.join(` ${C} `)} `}if(E.order)S+=` ORDER BY ${E.join?`${_}.${E.order.field}`:E.order.field} ${E.order.strategy}`;if(E.limit)S+=` LIMIT ${E.limit}`;if(E.offset)S+=` OFFSET ${E.offset}`;return{string:S,values:A}}function UD({tableName:_,data:E}){try{if(Array.isArray(E)&&E?.[0]){let R=[];E.forEach((U)=>{Object.keys(U).forEach((S)=>{if(!R.includes(S))R.push(S)})});let N=[],A=[];return E.forEach((U)=>{N.push(`(${R.map((G)=>{return A.push(U[G]?.toString()?.match(/./)?U[G]:null),"?"}).join(",")})`)}),{query:`INSERT INTO ${_} (${R.join(",")}) VALUES ${N.join(",")}`,values:A}}else return}catch(R){console.log(`SQL insert gen ERROR: ${R.message}`);return}}function GD({tableName:_,data:E}){try{let R=`DELETE FROM ${_}`,N=[],A=[];return Object.keys(E).forEach((L)=>{N.push(`${L}=?`),A.push(E[L])}),R+=` WHERE ${N.join(" AND ")}`,{query:R,values:A}}catch(R){console.log(`SQL delete gen ERROR: ${R.message}`);return}}var uW=X_(require("node:http")),cW=X_(require("node:https")),dW=X_(require("querystring"));function DD(_){return new Promise((E,R)=>{let N=_.urlEncodedFormBody,A=_.body?N?dW.default.stringify(_.body):JSON.stringify(_.body).replace(/\n|\r|\n\r/gm,""):void 0,L=_.query?e1(_.query):void 0,U=_.scheme,G=U=="http"?uW.default:cW.default,S=_.path?_.path+(L?L:""):void 0;delete _.body,delete _.scheme,delete _.query,delete _.urlEncodedFormBody;let C={..._,headers:{"Content-Type":N?"application/x-www-form-urlencoded":"application/json","Content-Length":A?Buffer.from(A).length:void 0,..._.headers},port:U=="https"?443:_.port,path:S},Y=G.request(C,(M)=>{var H="";M.on("data",function(X){H+=X}),M.on("end",function(){let X=(()=>{try{return JSON.parse(H)}catch($){return}})();E({status:M.statusCode||404,data:X,str:H,requestedPath:S})}),M.on("error",(X)=>{E({status:M.statusCode||404,str:H,error:X.message,requestedPath:S})})});if(A)Y.write(A);Y.on("error",(M)=>{console.log("HTTPS request ERROR =>",M)}),Y.end()})}var hp={createUser:aG,deleteUser:(rW(),PT(tW)),loginUser:N2,sendEmailCode:q2,logoutUser:tL,userAuth:MA,reAuthUser:v2,updateUser:_2,getUser:h2,getToken:t2,validateToken:r2,validateTempEmailCode:(_M(),PT(eW)),social:{loginWithGoogle:d2,loginWithGithub:s2}},kp={uploadImage:bL,uploadFile:gG,deleteFile:iL},mp={sqlGenerator:LD,sqlInsertGenerator:UD,sqlDeleteGenerator:GD,trim:_A},gp={get:pG,post:kG,media:kp,user:hp,getSchema:mG,client:iW,sql:mp,utils:{crypto:{encrypt:(sR(),PT(yP)),decrypt:(P1(),PT(US)),hash:(LA(),PT(SY))},parseCookies:GN,httpRequest:DD}},bp=gp; diff --git a/dist/index.js b/dist/index.js new file mode 100644 index 0000000..19db025 --- /dev/null +++ b/dist/index.js @@ -0,0 +1,42558 @@ +import { createRequire } from "node:module"; +var __create = Object.create; +var __getProtoOf = Object.getPrototypeOf; +var __defProp = Object.defineProperty; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __toESM = (mod, isNodeMode, target) => { + target = mod != null ? __create(__getProtoOf(mod)) : {}; + const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target; + for (let key of __getOwnPropNames(mod)) + if (!__hasOwnProp.call(to, key)) + __defProp(to, key, { + get: () => mod[key], + enumerable: true + }); + return to; +}; +var __moduleCache = /* @__PURE__ */ new WeakMap; +var __toCommonJS = (from) => { + var entry = __moduleCache.get(from), desc; + if (entry) + return entry; + entry = __defProp({}, "__esModule", { value: true }); + if (from && typeof from === "object" || typeof from === "function") + __getOwnPropNames(from).map((key) => !__hasOwnProp.call(entry, key) && __defProp(entry, key, { + get: () => from[key], + enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + })); + __moduleCache.set(from, entry); + return entry; +}; +var __commonJS = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports); +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { + get: all[name], + enumerable: true, + configurable: true, + set: (newValue) => all[name] = () => newValue + }); +}; +var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res); +var __require = /* @__PURE__ */ createRequire(import.meta.url); + +// package-shared/utils/grab-host-names.ts +import https from "https"; +import http from "http"; +function grabHostNames() { + const scheme = process.env.DSQL_HTTP_SCHEME; + const localHost = process.env.DSQL_LOCAL_HOST; + const localHostPort = process.env.DSQL_LOCAL_HOST_PORT; + const remoteHost = process.env.DSQL_API_REMOTE_HOST?.match(/.*\..*/) ? process.env.DSQL_API_REMOTE_HOST : undefined; + const remoteHostPort = process.env.DSQL_API_REMOTE_HOST_PORT?.match(/./) ? process.env.DSQL_API_REMOTE_HOST_PORT : undefined; + return { + host: remoteHost || localHost || "datasquirel.com", + port: remoteHostPort || localHostPort || 443, + scheme: scheme?.match(/^http$/i) ? http : https, + user_id: String(process.env.DSQL_API_USER_ID || 0) + }; +} +var init_grab_host_names = () => { +}; + +// node_modules/lodash/lodash.js +var require_lodash = __commonJS((exports, module) => { + (function() { + var undefined2; + var VERSION = "4.17.21"; + var LARGE_ARRAY_SIZE = 200; + var CORE_ERROR_TEXT = "Unsupported core-js use. Try https://npms.io/search?q=ponyfill.", FUNC_ERROR_TEXT = "Expected a function", INVALID_TEMPL_VAR_ERROR_TEXT = "Invalid `variable` option passed into `_.template`"; + var HASH_UNDEFINED = "__lodash_hash_undefined__"; + var MAX_MEMOIZE_SIZE = 500; + var PLACEHOLDER = "__lodash_placeholder__"; + var CLONE_DEEP_FLAG = 1, CLONE_FLAT_FLAG = 2, CLONE_SYMBOLS_FLAG = 4; + var COMPARE_PARTIAL_FLAG = 1, COMPARE_UNORDERED_FLAG = 2; + var WRAP_BIND_FLAG = 1, WRAP_BIND_KEY_FLAG = 2, WRAP_CURRY_BOUND_FLAG = 4, WRAP_CURRY_FLAG = 8, WRAP_CURRY_RIGHT_FLAG = 16, WRAP_PARTIAL_FLAG = 32, WRAP_PARTIAL_RIGHT_FLAG = 64, WRAP_ARY_FLAG = 128, WRAP_REARG_FLAG = 256, WRAP_FLIP_FLAG = 512; + var DEFAULT_TRUNC_LENGTH = 30, DEFAULT_TRUNC_OMISSION = "..."; + var HOT_COUNT = 800, HOT_SPAN = 16; + var LAZY_FILTER_FLAG = 1, LAZY_MAP_FLAG = 2, LAZY_WHILE_FLAG = 3; + var INFINITY = 1 / 0, MAX_SAFE_INTEGER = 9007199254740991, MAX_INTEGER = 179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, NAN = 0 / 0; + var MAX_ARRAY_LENGTH = 4294967295, MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1, HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1; + var wrapFlags = [ + ["ary", WRAP_ARY_FLAG], + ["bind", WRAP_BIND_FLAG], + ["bindKey", WRAP_BIND_KEY_FLAG], + ["curry", WRAP_CURRY_FLAG], + ["curryRight", WRAP_CURRY_RIGHT_FLAG], + ["flip", WRAP_FLIP_FLAG], + ["partial", WRAP_PARTIAL_FLAG], + ["partialRight", WRAP_PARTIAL_RIGHT_FLAG], + ["rearg", WRAP_REARG_FLAG] + ]; + var argsTag = "[object Arguments]", arrayTag = "[object Array]", asyncTag = "[object AsyncFunction]", boolTag = "[object Boolean]", dateTag = "[object Date]", domExcTag = "[object DOMException]", errorTag = "[object Error]", funcTag = "[object Function]", genTag = "[object GeneratorFunction]", mapTag = "[object Map]", numberTag = "[object Number]", nullTag = "[object Null]", objectTag = "[object Object]", promiseTag = "[object Promise]", proxyTag = "[object Proxy]", regexpTag = "[object RegExp]", setTag = "[object Set]", stringTag = "[object String]", symbolTag = "[object Symbol]", undefinedTag = "[object Undefined]", weakMapTag = "[object WeakMap]", weakSetTag = "[object WeakSet]"; + var arrayBufferTag = "[object ArrayBuffer]", dataViewTag = "[object DataView]", float32Tag = "[object Float32Array]", float64Tag = "[object Float64Array]", int8Tag = "[object Int8Array]", int16Tag = "[object Int16Array]", int32Tag = "[object Int32Array]", uint8Tag = "[object Uint8Array]", uint8ClampedTag = "[object Uint8ClampedArray]", uint16Tag = "[object Uint16Array]", uint32Tag = "[object Uint32Array]"; + var reEmptyStringLeading = /\b__p \+= '';/g, reEmptyStringMiddle = /\b(__p \+=) '' \+/g, reEmptyStringTrailing = /(__e\(.*?\)|\b__t\)) \+\n'';/g; + var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g, reUnescapedHtml = /[&<>"']/g, reHasEscapedHtml = RegExp(reEscapedHtml.source), reHasUnescapedHtml = RegExp(reUnescapedHtml.source); + var reEscape = /<%-([\s\S]+?)%>/g, reEvaluate = /<%([\s\S]+?)%>/g, reInterpolate = /<%=([\s\S]+?)%>/g; + var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, reIsPlainProp = /^\w*$/, rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; + var reRegExpChar = /[\\^$.*+?()[\]{}|]/g, reHasRegExpChar = RegExp(reRegExpChar.source); + var reTrimStart = /^\s+/; + var reWhitespace = /\s/; + var reWrapComment = /\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/, reWrapDetails = /\{\n\/\* \[wrapped with (.+)\] \*/, reSplitDetails = /,? & /; + var reAsciiWord = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g; + var reForbiddenIdentifierChars = /[()=,{}\[\]\/\s]/; + var reEscapeChar = /\\(\\)?/g; + var reEsTemplate = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g; + var reFlags = /\w*$/; + var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; + var reIsBinary = /^0b[01]+$/i; + var reIsHostCtor = /^\[object .+?Constructor\]$/; + var reIsOctal = /^0o[0-7]+$/i; + var reIsUint = /^(?:0|[1-9]\d*)$/; + var reLatin = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g; + var reNoMatch = /($^)/; + var reUnescapedString = /['\n\r\u2028\u2029\\]/g; + var rsAstralRange = "\\ud800-\\udfff", rsComboMarksRange = "\\u0300-\\u036f", reComboHalfMarksRange = "\\ufe20-\\ufe2f", rsComboSymbolsRange = "\\u20d0-\\u20ff", rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, rsDingbatRange = "\\u2700-\\u27bf", rsLowerRange = "a-z\\xdf-\\xf6\\xf8-\\xff", rsMathOpRange = "\\xac\\xb1\\xd7\\xf7", rsNonCharRange = "\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf", rsPunctuationRange = "\\u2000-\\u206f", rsSpaceRange = " \\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", rsUpperRange = "A-Z\\xc0-\\xd6\\xd8-\\xde", rsVarRange = "\\ufe0e\\ufe0f", rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange; + var rsApos = "['\u2019]", rsAstral = "[" + rsAstralRange + "]", rsBreak = "[" + rsBreakRange + "]", rsCombo = "[" + rsComboRange + "]", rsDigits = "\\d+", rsDingbat = "[" + rsDingbatRange + "]", rsLower = "[" + rsLowerRange + "]", rsMisc = "[^" + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + "]", rsFitz = "\\ud83c[\\udffb-\\udfff]", rsModifier = "(?:" + rsCombo + "|" + rsFitz + ")", rsNonAstral = "[^" + rsAstralRange + "]", rsRegional = "(?:\\ud83c[\\udde6-\\uddff]){2}", rsSurrPair = "[\\ud800-\\udbff][\\udc00-\\udfff]", rsUpper = "[" + rsUpperRange + "]", rsZWJ = "\\u200d"; + var rsMiscLower = "(?:" + rsLower + "|" + rsMisc + ")", rsMiscUpper = "(?:" + rsUpper + "|" + rsMisc + ")", rsOptContrLower = "(?:" + rsApos + "(?:d|ll|m|re|s|t|ve))?", rsOptContrUpper = "(?:" + rsApos + "(?:D|LL|M|RE|S|T|VE))?", reOptMod = rsModifier + "?", rsOptVar = "[" + rsVarRange + "]?", rsOptJoin = "(?:" + rsZWJ + "(?:" + [rsNonAstral, rsRegional, rsSurrPair].join("|") + ")" + rsOptVar + reOptMod + ")*", rsOrdLower = "\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])", rsOrdUpper = "\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])", rsSeq = rsOptVar + reOptMod + rsOptJoin, rsEmoji = "(?:" + [rsDingbat, rsRegional, rsSurrPair].join("|") + ")" + rsSeq, rsSymbol = "(?:" + [rsNonAstral + rsCombo + "?", rsCombo, rsRegional, rsSurrPair, rsAstral].join("|") + ")"; + var reApos = RegExp(rsApos, "g"); + var reComboMark = RegExp(rsCombo, "g"); + var reUnicode = RegExp(rsFitz + "(?=" + rsFitz + ")|" + rsSymbol + rsSeq, "g"); + var reUnicodeWord = RegExp([ + rsUpper + "?" + rsLower + "+" + rsOptContrLower + "(?=" + [rsBreak, rsUpper, "$"].join("|") + ")", + rsMiscUpper + "+" + rsOptContrUpper + "(?=" + [rsBreak, rsUpper + rsMiscLower, "$"].join("|") + ")", + rsUpper + "?" + rsMiscLower + "+" + rsOptContrLower, + rsUpper + "+" + rsOptContrUpper, + rsOrdUpper, + rsOrdLower, + rsDigits, + rsEmoji + ].join("|"), "g"); + var reHasUnicode = RegExp("[" + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + "]"); + var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/; + var contextProps = [ + "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" + ]; + var templateCounter = -1; + var typedArrayTags = {}; + typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true; + typedArrayTags[argsTag] = typedArrayTags[arrayTag] = typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = typedArrayTags[errorTag] = typedArrayTags[funcTag] = typedArrayTags[mapTag] = typedArrayTags[numberTag] = typedArrayTags[objectTag] = typedArrayTags[regexpTag] = typedArrayTags[setTag] = typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false; + var cloneableTags = {}; + cloneableTags[argsTag] = cloneableTags[arrayTag] = cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] = cloneableTags[boolTag] = cloneableTags[dateTag] = cloneableTags[float32Tag] = cloneableTags[float64Tag] = cloneableTags[int8Tag] = cloneableTags[int16Tag] = cloneableTags[int32Tag] = cloneableTags[mapTag] = cloneableTags[numberTag] = cloneableTags[objectTag] = cloneableTags[regexpTag] = cloneableTags[setTag] = cloneableTags[stringTag] = cloneableTags[symbolTag] = cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true; + cloneableTags[errorTag] = cloneableTags[funcTag] = cloneableTags[weakMapTag] = false; + var deburredLetters = { + "\xC0": "A", + "\xC1": "A", + "\xC2": "A", + "\xC3": "A", + "\xC4": "A", + "\xC5": "A", + "\xE0": "a", + "\xE1": "a", + "\xE2": "a", + "\xE3": "a", + "\xE4": "a", + "\xE5": "a", + "\xC7": "C", + "\xE7": "c", + "\xD0": "D", + "\xF0": "d", + "\xC8": "E", + "\xC9": "E", + "\xCA": "E", + "\xCB": "E", + "\xE8": "e", + "\xE9": "e", + "\xEA": "e", + "\xEB": "e", + "\xCC": "I", + "\xCD": "I", + "\xCE": "I", + "\xCF": "I", + "\xEC": "i", + "\xED": "i", + "\xEE": "i", + "\xEF": "i", + "\xD1": "N", + "\xF1": "n", + "\xD2": "O", + "\xD3": "O", + "\xD4": "O", + "\xD5": "O", + "\xD6": "O", + "\xD8": "O", + "\xF2": "o", + "\xF3": "o", + "\xF4": "o", + "\xF5": "o", + "\xF6": "o", + "\xF8": "o", + "\xD9": "U", + "\xDA": "U", + "\xDB": "U", + "\xDC": "U", + "\xF9": "u", + "\xFA": "u", + "\xFB": "u", + "\xFC": "u", + "\xDD": "Y", + "\xFD": "y", + "\xFF": "y", + "\xC6": "Ae", + "\xE6": "ae", + "\xDE": "Th", + "\xFE": "th", + "\xDF": "ss", + "\u0100": "A", + "\u0102": "A", + "\u0104": "A", + "\u0101": "a", + "\u0103": "a", + "\u0105": "a", + "\u0106": "C", + "\u0108": "C", + "\u010A": "C", + "\u010C": "C", + "\u0107": "c", + "\u0109": "c", + "\u010B": "c", + "\u010D": "c", + "\u010E": "D", + "\u0110": "D", + "\u010F": "d", + "\u0111": "d", + "\u0112": "E", + "\u0114": "E", + "\u0116": "E", + "\u0118": "E", + "\u011A": "E", + "\u0113": "e", + "\u0115": "e", + "\u0117": "e", + "\u0119": "e", + "\u011B": "e", + "\u011C": "G", + "\u011E": "G", + "\u0120": "G", + "\u0122": "G", + "\u011D": "g", + "\u011F": "g", + "\u0121": "g", + "\u0123": "g", + "\u0124": "H", + "\u0126": "H", + "\u0125": "h", + "\u0127": "h", + "\u0128": "I", + "\u012A": "I", + "\u012C": "I", + "\u012E": "I", + "\u0130": "I", + "\u0129": "i", + "\u012B": "i", + "\u012D": "i", + "\u012F": "i", + "\u0131": "i", + "\u0134": "J", + "\u0135": "j", + "\u0136": "K", + "\u0137": "k", + "\u0138": "k", + "\u0139": "L", + "\u013B": "L", + "\u013D": "L", + "\u013F": "L", + "\u0141": "L", + "\u013A": "l", + "\u013C": "l", + "\u013E": "l", + "\u0140": "l", + "\u0142": "l", + "\u0143": "N", + "\u0145": "N", + "\u0147": "N", + "\u014A": "N", + "\u0144": "n", + "\u0146": "n", + "\u0148": "n", + "\u014B": "n", + "\u014C": "O", + "\u014E": "O", + "\u0150": "O", + "\u014D": "o", + "\u014F": "o", + "\u0151": "o", + "\u0154": "R", + "\u0156": "R", + "\u0158": "R", + "\u0155": "r", + "\u0157": "r", + "\u0159": "r", + "\u015A": "S", + "\u015C": "S", + "\u015E": "S", + "\u0160": "S", + "\u015B": "s", + "\u015D": "s", + "\u015F": "s", + "\u0161": "s", + "\u0162": "T", + "\u0164": "T", + "\u0166": "T", + "\u0163": "t", + "\u0165": "t", + "\u0167": "t", + "\u0168": "U", + "\u016A": "U", + "\u016C": "U", + "\u016E": "U", + "\u0170": "U", + "\u0172": "U", + "\u0169": "u", + "\u016B": "u", + "\u016D": "u", + "\u016F": "u", + "\u0171": "u", + "\u0173": "u", + "\u0174": "W", + "\u0175": "w", + "\u0176": "Y", + "\u0177": "y", + "\u0178": "Y", + "\u0179": "Z", + "\u017B": "Z", + "\u017D": "Z", + "\u017A": "z", + "\u017C": "z", + "\u017E": "z", + "\u0132": "IJ", + "\u0133": "ij", + "\u0152": "Oe", + "\u0153": "oe", + "\u0149": "'n", + "\u017F": "s" + }; + var htmlEscapes = { + "&": "&", + "<": "<", + ">": ">", + '"': """, + "'": "'" + }; + var htmlUnescapes = { + "&": "&", + "<": "<", + ">": ">", + """: '"', + "'": "'" + }; + var stringEscapes = { + "\\": "\\", + "'": "'", + "\n": "n", + "\r": "r", + "\u2028": "u2028", + "\u2029": "u2029" + }; + var freeParseFloat = parseFloat, freeParseInt = parseInt; + var freeGlobal = typeof global == "object" && global && global.Object === Object && global; + var freeSelf = typeof self == "object" && self && self.Object === Object && self; + var root = freeGlobal || freeSelf || Function("return this")(); + var freeExports = typeof exports == "object" && exports && !exports.nodeType && exports; + var freeModule = freeExports && typeof module == "object" && module && !module.nodeType && module; + var moduleExports = freeModule && freeModule.exports === freeExports; + var freeProcess = moduleExports && freeGlobal.process; + var nodeUtil = function() { + try { + var types = freeModule && freeModule.require && freeModule.require("util").types; + if (types) { + return types; + } + return freeProcess && freeProcess.binding && freeProcess.binding("util"); + } catch (e) { + } + }(); + var nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer, nodeIsDate = nodeUtil && nodeUtil.isDate, nodeIsMap = nodeUtil && nodeUtil.isMap, nodeIsRegExp = nodeUtil && nodeUtil.isRegExp, nodeIsSet = nodeUtil && nodeUtil.isSet, nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray; + function apply(func, thisArg, args) { + switch (args.length) { + case 0: + return func.call(thisArg); + case 1: + return func.call(thisArg, args[0]); + case 2: + return func.call(thisArg, args[0], args[1]); + case 3: + return func.call(thisArg, args[0], args[1], args[2]); + } + return func.apply(thisArg, args); + } + function arrayAggregator(array, setter, iteratee, accumulator) { + var index = -1, length = array == null ? 0 : array.length; + while (++index < length) { + var value = array[index]; + setter(accumulator, value, iteratee(value), array); + } + return accumulator; + } + function arrayEach(array, iteratee) { + var index = -1, length = array == null ? 0 : array.length; + while (++index < length) { + if (iteratee(array[index], index, array) === false) { + break; + } + } + return array; + } + function arrayEachRight(array, iteratee) { + var length = array == null ? 0 : array.length; + while (length--) { + if (iteratee(array[length], length, array) === false) { + break; + } + } + return array; + } + function arrayEvery(array, predicate) { + var index = -1, length = array == null ? 0 : array.length; + while (++index < length) { + if (!predicate(array[index], index, array)) { + return false; + } + } + return true; + } + function arrayFilter(array, predicate) { + var index = -1, length = array == null ? 0 : array.length, resIndex = 0, result = []; + while (++index < length) { + var value = array[index]; + if (predicate(value, index, array)) { + result[resIndex++] = value; + } + } + return result; + } + function arrayIncludes(array, value) { + var length = array == null ? 0 : array.length; + return !!length && baseIndexOf(array, value, 0) > -1; + } + function arrayIncludesWith(array, value, comparator) { + var index = -1, length = array == null ? 0 : array.length; + while (++index < length) { + if (comparator(value, array[index])) { + return true; + } + } + return false; + } + function arrayMap(array, iteratee) { + var index = -1, length = array == null ? 0 : array.length, result = Array(length); + while (++index < length) { + result[index] = iteratee(array[index], index, array); + } + return result; + } + function arrayPush(array, values) { + var index = -1, length = values.length, offset = array.length; + while (++index < length) { + array[offset + index] = values[index]; + } + return array; + } + function arrayReduce(array, iteratee, accumulator, initAccum) { + var index = -1, length = array == null ? 0 : array.length; + if (initAccum && length) { + accumulator = array[++index]; + } + while (++index < length) { + accumulator = iteratee(accumulator, array[index], index, array); + } + return accumulator; + } + function arrayReduceRight(array, iteratee, accumulator, initAccum) { + var length = array == null ? 0 : array.length; + if (initAccum && length) { + accumulator = array[--length]; + } + while (length--) { + accumulator = iteratee(accumulator, array[length], length, array); + } + return accumulator; + } + function arraySome(array, predicate) { + var index = -1, length = array == null ? 0 : array.length; + while (++index < length) { + if (predicate(array[index], index, array)) { + return true; + } + } + return false; + } + var asciiSize = baseProperty("length"); + function asciiToArray(string) { + return string.split(""); + } + function asciiWords(string) { + return string.match(reAsciiWord) || []; + } + function baseFindKey(collection, predicate, eachFunc) { + var result; + eachFunc(collection, function(value, key, collection2) { + if (predicate(value, key, collection2)) { + result = key; + return false; + } + }); + return result; + } + function baseFindIndex(array, predicate, fromIndex, fromRight) { + var length = array.length, index = fromIndex + (fromRight ? 1 : -1); + while (fromRight ? index-- : ++index < length) { + if (predicate(array[index], index, array)) { + return index; + } + } + return -1; + } + function baseIndexOf(array, value, fromIndex) { + return value === value ? strictIndexOf(array, value, fromIndex) : baseFindIndex(array, baseIsNaN, fromIndex); + } + function baseIndexOfWith(array, value, fromIndex, comparator) { + var index = fromIndex - 1, length = array.length; + while (++index < length) { + if (comparator(array[index], value)) { + return index; + } + } + return -1; + } + function baseIsNaN(value) { + return value !== value; + } + function baseMean(array, iteratee) { + var length = array == null ? 0 : array.length; + return length ? baseSum(array, iteratee) / length : NAN; + } + function baseProperty(key) { + return function(object) { + return object == null ? undefined2 : object[key]; + }; + } + function basePropertyOf(object) { + return function(key) { + return object == null ? undefined2 : object[key]; + }; + } + function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) { + eachFunc(collection, function(value, index, collection2) { + accumulator = initAccum ? (initAccum = false, value) : iteratee(accumulator, value, index, collection2); + }); + return accumulator; + } + function baseSortBy(array, comparer) { + var length = array.length; + array.sort(comparer); + while (length--) { + array[length] = array[length].value; + } + return array; + } + function baseSum(array, iteratee) { + var result, index = -1, length = array.length; + while (++index < length) { + var current = iteratee(array[index]); + if (current !== undefined2) { + result = result === undefined2 ? current : result + current; + } + } + return result; + } + function baseTimes(n, iteratee) { + var index = -1, result = Array(n); + while (++index < n) { + result[index] = iteratee(index); + } + return result; + } + function baseToPairs(object, props) { + return arrayMap(props, function(key) { + return [key, object[key]]; + }); + } + function baseTrim(string) { + return string ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, "") : string; + } + function baseUnary(func) { + return function(value) { + return func(value); + }; + } + function baseValues(object, props) { + return arrayMap(props, function(key) { + return object[key]; + }); + } + function cacheHas(cache, key) { + return cache.has(key); + } + function charsStartIndex(strSymbols, chrSymbols) { + var index = -1, length = strSymbols.length; + while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) { + } + return index; + } + function charsEndIndex(strSymbols, chrSymbols) { + var index = strSymbols.length; + while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) { + } + return index; + } + function countHolders(array, placeholder) { + var length = array.length, result = 0; + while (length--) { + if (array[length] === placeholder) { + ++result; + } + } + return result; + } + var deburrLetter = basePropertyOf(deburredLetters); + var escapeHtmlChar = basePropertyOf(htmlEscapes); + function escapeStringChar(chr) { + return "\\" + stringEscapes[chr]; + } + function getValue(object, key) { + return object == null ? undefined2 : object[key]; + } + function hasUnicode(string) { + return reHasUnicode.test(string); + } + function hasUnicodeWord(string) { + return reHasUnicodeWord.test(string); + } + function iteratorToArray(iterator) { + var data, result = []; + while (!(data = iterator.next()).done) { + result.push(data.value); + } + return result; + } + function mapToArray(map) { + var index = -1, result = Array(map.size); + map.forEach(function(value, key) { + result[++index] = [key, value]; + }); + return result; + } + function overArg(func, transform) { + return function(arg) { + return func(transform(arg)); + }; + } + function replaceHolders(array, placeholder) { + var index = -1, length = array.length, resIndex = 0, result = []; + while (++index < length) { + var value = array[index]; + if (value === placeholder || value === PLACEHOLDER) { + array[index] = PLACEHOLDER; + result[resIndex++] = index; + } + } + return result; + } + function setToArray(set) { + var index = -1, result = Array(set.size); + set.forEach(function(value) { + result[++index] = value; + }); + return result; + } + function setToPairs(set) { + var index = -1, result = Array(set.size); + set.forEach(function(value) { + result[++index] = [value, value]; + }); + return result; + } + function strictIndexOf(array, value, fromIndex) { + var index = fromIndex - 1, length = array.length; + while (++index < length) { + if (array[index] === value) { + return index; + } + } + return -1; + } + function strictLastIndexOf(array, value, fromIndex) { + var index = fromIndex + 1; + while (index--) { + if (array[index] === value) { + return index; + } + } + return index; + } + function stringSize(string) { + return hasUnicode(string) ? unicodeSize(string) : asciiSize(string); + } + function stringToArray(string) { + return hasUnicode(string) ? unicodeToArray(string) : asciiToArray(string); + } + function trimmedEndIndex(string) { + var index = string.length; + while (index-- && reWhitespace.test(string.charAt(index))) { + } + return index; + } + var unescapeHtmlChar = basePropertyOf(htmlUnescapes); + function unicodeSize(string) { + var result = reUnicode.lastIndex = 0; + while (reUnicode.test(string)) { + ++result; + } + return result; + } + function unicodeToArray(string) { + return string.match(reUnicode) || []; + } + function unicodeWords(string) { + return string.match(reUnicodeWord) || []; + } + var runInContext = function runInContext(context) { + context = context == null ? root : _.defaults(root.Object(), context, _.pick(root, contextProps)); + var { Array: Array2, Date: Date2, Error: Error2, Function: Function2, Math: Math2, Object: Object2, RegExp: RegExp2, String: String2, TypeError: TypeError2 } = context; + var arrayProto = Array2.prototype, funcProto = Function2.prototype, objectProto = Object2.prototype; + var coreJsData = context["__core-js_shared__"]; + var funcToString = funcProto.toString; + var hasOwnProperty = objectProto.hasOwnProperty; + var idCounter = 0; + var maskSrcKey = function() { + var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ""); + return uid ? "Symbol(src)_1." + uid : ""; + }(); + var nativeObjectToString = objectProto.toString; + var objectCtorString = funcToString.call(Object2); + var oldDash = root._; + var reIsNative = RegExp2("^" + funcToString.call(hasOwnProperty).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"); + var Buffer2 = moduleExports ? context.Buffer : undefined2, Symbol2 = context.Symbol, Uint8Array2 = context.Uint8Array, allocUnsafe = Buffer2 ? Buffer2.allocUnsafe : undefined2, getPrototype = overArg(Object2.getPrototypeOf, Object2), objectCreate = Object2.create, propertyIsEnumerable = objectProto.propertyIsEnumerable, splice = arrayProto.splice, spreadableSymbol = Symbol2 ? Symbol2.isConcatSpreadable : undefined2, symIterator = Symbol2 ? Symbol2.iterator : undefined2, symToStringTag = Symbol2 ? Symbol2.toStringTag : undefined2; + var defineProperty = function() { + try { + var func = getNative(Object2, "defineProperty"); + func({}, "", {}); + return func; + } catch (e) { + } + }(); + var ctxClearTimeout = context.clearTimeout !== root.clearTimeout && context.clearTimeout, ctxNow = Date2 && Date2.now !== root.Date.now && Date2.now, ctxSetTimeout = context.setTimeout !== root.setTimeout && context.setTimeout; + var { ceil: nativeCeil, floor: nativeFloor } = Math2, nativeGetSymbols = Object2.getOwnPropertySymbols, nativeIsBuffer = Buffer2 ? Buffer2.isBuffer : undefined2, nativeIsFinite = context.isFinite, nativeJoin = arrayProto.join, nativeKeys = overArg(Object2.keys, Object2), nativeMax = Math2.max, nativeMin = Math2.min, nativeNow = Date2.now, nativeParseInt = context.parseInt, nativeRandom = Math2.random, nativeReverse = arrayProto.reverse; + var DataView = getNative(context, "DataView"), Map2 = getNative(context, "Map"), Promise2 = getNative(context, "Promise"), Set2 = getNative(context, "Set"), WeakMap2 = getNative(context, "WeakMap"), nativeCreate = getNative(Object2, "create"); + var metaMap = WeakMap2 && new WeakMap2; + var realNames = {}; + var dataViewCtorString = toSource(DataView), mapCtorString = toSource(Map2), promiseCtorString = toSource(Promise2), setCtorString = toSource(Set2), weakMapCtorString = toSource(WeakMap2); + var symbolProto = Symbol2 ? Symbol2.prototype : undefined2, symbolValueOf = symbolProto ? symbolProto.valueOf : undefined2, symbolToString = symbolProto ? symbolProto.toString : undefined2; + function lodash(value) { + if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) { + if (value instanceof LodashWrapper) { + return value; + } + if (hasOwnProperty.call(value, "__wrapped__")) { + return wrapperClone(value); + } + } + return new LodashWrapper(value); + } + var baseCreate = function() { + function object() { + } + return function(proto) { + if (!isObject(proto)) { + return {}; + } + if (objectCreate) { + return objectCreate(proto); + } + object.prototype = proto; + var result2 = new object; + object.prototype = undefined2; + return result2; + }; + }(); + function baseLodash() { + } + function LodashWrapper(value, chainAll) { + this.__wrapped__ = value; + this.__actions__ = []; + this.__chain__ = !!chainAll; + this.__index__ = 0; + this.__values__ = undefined2; + } + lodash.templateSettings = { + escape: reEscape, + evaluate: reEvaluate, + interpolate: reInterpolate, + variable: "", + imports: { + _: lodash + } + }; + lodash.prototype = baseLodash.prototype; + lodash.prototype.constructor = lodash; + LodashWrapper.prototype = baseCreate(baseLodash.prototype); + LodashWrapper.prototype.constructor = LodashWrapper; + function LazyWrapper(value) { + this.__wrapped__ = value; + this.__actions__ = []; + this.__dir__ = 1; + this.__filtered__ = false; + this.__iteratees__ = []; + this.__takeCount__ = MAX_ARRAY_LENGTH; + this.__views__ = []; + } + function lazyClone() { + var result2 = new LazyWrapper(this.__wrapped__); + result2.__actions__ = copyArray(this.__actions__); + result2.__dir__ = this.__dir__; + result2.__filtered__ = this.__filtered__; + result2.__iteratees__ = copyArray(this.__iteratees__); + result2.__takeCount__ = this.__takeCount__; + result2.__views__ = copyArray(this.__views__); + return result2; + } + function lazyReverse() { + if (this.__filtered__) { + var result2 = new LazyWrapper(this); + result2.__dir__ = -1; + result2.__filtered__ = true; + } else { + result2 = this.clone(); + result2.__dir__ *= -1; + } + return result2; + } + function lazyValue() { + var array = this.__wrapped__.value(), dir = this.__dir__, isArr = isArray(array), isRight = dir < 0, arrLength = isArr ? array.length : 0, view = getView(0, arrLength, this.__views__), start = view.start, end = view.end, length = end - start, index = isRight ? end : start - 1, iteratees = this.__iteratees__, iterLength = iteratees.length, resIndex = 0, takeCount = nativeMin(length, this.__takeCount__); + if (!isArr || !isRight && arrLength == length && takeCount == length) { + return baseWrapperValue(array, this.__actions__); + } + var result2 = []; + outer: + while (length-- && resIndex < takeCount) { + index += dir; + var iterIndex = -1, value = array[index]; + while (++iterIndex < iterLength) { + var data = iteratees[iterIndex], iteratee2 = data.iteratee, type = data.type, computed = iteratee2(value); + if (type == LAZY_MAP_FLAG) { + value = computed; + } else if (!computed) { + if (type == LAZY_FILTER_FLAG) { + continue outer; + } else { + break outer; + } + } + } + result2[resIndex++] = value; + } + return result2; + } + LazyWrapper.prototype = baseCreate(baseLodash.prototype); + LazyWrapper.prototype.constructor = LazyWrapper; + function Hash(entries) { + var index = -1, length = entries == null ? 0 : entries.length; + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } + } + function hashClear() { + this.__data__ = nativeCreate ? nativeCreate(null) : {}; + this.size = 0; + } + function hashDelete(key) { + var result2 = this.has(key) && delete this.__data__[key]; + this.size -= result2 ? 1 : 0; + return result2; + } + function hashGet(key) { + var data = this.__data__; + if (nativeCreate) { + var result2 = data[key]; + return result2 === HASH_UNDEFINED ? undefined2 : result2; + } + return hasOwnProperty.call(data, key) ? data[key] : undefined2; + } + function hashHas(key) { + var data = this.__data__; + return nativeCreate ? data[key] !== undefined2 : hasOwnProperty.call(data, key); + } + function hashSet(key, value) { + var data = this.__data__; + this.size += this.has(key) ? 0 : 1; + data[key] = nativeCreate && value === undefined2 ? HASH_UNDEFINED : value; + return this; + } + Hash.prototype.clear = hashClear; + Hash.prototype["delete"] = hashDelete; + Hash.prototype.get = hashGet; + Hash.prototype.has = hashHas; + Hash.prototype.set = hashSet; + function ListCache(entries) { + var index = -1, length = entries == null ? 0 : entries.length; + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } + } + function listCacheClear() { + this.__data__ = []; + this.size = 0; + } + function listCacheDelete(key) { + var data = this.__data__, index = assocIndexOf(data, key); + if (index < 0) { + return false; + } + var lastIndex = data.length - 1; + if (index == lastIndex) { + data.pop(); + } else { + splice.call(data, index, 1); + } + --this.size; + return true; + } + function listCacheGet(key) { + var data = this.__data__, index = assocIndexOf(data, key); + return index < 0 ? undefined2 : data[index][1]; + } + function listCacheHas(key) { + return assocIndexOf(this.__data__, key) > -1; + } + function listCacheSet(key, value) { + var data = this.__data__, index = assocIndexOf(data, key); + if (index < 0) { + ++this.size; + data.push([key, value]); + } else { + data[index][1] = value; + } + return this; + } + ListCache.prototype.clear = listCacheClear; + ListCache.prototype["delete"] = listCacheDelete; + ListCache.prototype.get = listCacheGet; + ListCache.prototype.has = listCacheHas; + ListCache.prototype.set = listCacheSet; + function MapCache(entries) { + var index = -1, length = entries == null ? 0 : entries.length; + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } + } + function mapCacheClear() { + this.size = 0; + this.__data__ = { + hash: new Hash, + map: new (Map2 || ListCache), + string: new Hash + }; + } + function mapCacheDelete(key) { + var result2 = getMapData(this, key)["delete"](key); + this.size -= result2 ? 1 : 0; + return result2; + } + function mapCacheGet(key) { + return getMapData(this, key).get(key); + } + function mapCacheHas(key) { + return getMapData(this, key).has(key); + } + function mapCacheSet(key, value) { + var data = getMapData(this, key), size2 = data.size; + data.set(key, value); + this.size += data.size == size2 ? 0 : 1; + return this; + } + MapCache.prototype.clear = mapCacheClear; + MapCache.prototype["delete"] = mapCacheDelete; + MapCache.prototype.get = mapCacheGet; + MapCache.prototype.has = mapCacheHas; + MapCache.prototype.set = mapCacheSet; + function SetCache(values2) { + var index = -1, length = values2 == null ? 0 : values2.length; + this.__data__ = new MapCache; + while (++index < length) { + this.add(values2[index]); + } + } + function setCacheAdd(value) { + this.__data__.set(value, HASH_UNDEFINED); + return this; + } + function setCacheHas(value) { + return this.__data__.has(value); + } + SetCache.prototype.add = SetCache.prototype.push = setCacheAdd; + SetCache.prototype.has = setCacheHas; + function Stack(entries) { + var data = this.__data__ = new ListCache(entries); + this.size = data.size; + } + function stackClear() { + this.__data__ = new ListCache; + this.size = 0; + } + function stackDelete(key) { + var data = this.__data__, result2 = data["delete"](key); + this.size = data.size; + return result2; + } + function stackGet(key) { + return this.__data__.get(key); + } + function stackHas(key) { + return this.__data__.has(key); + } + function stackSet(key, value) { + var data = this.__data__; + if (data instanceof ListCache) { + var pairs = data.__data__; + if (!Map2 || pairs.length < LARGE_ARRAY_SIZE - 1) { + pairs.push([key, value]); + this.size = ++data.size; + return this; + } + data = this.__data__ = new MapCache(pairs); + } + data.set(key, value); + this.size = data.size; + return this; + } + Stack.prototype.clear = stackClear; + Stack.prototype["delete"] = stackDelete; + Stack.prototype.get = stackGet; + Stack.prototype.has = stackHas; + Stack.prototype.set = stackSet; + function arrayLikeKeys(value, inherited) { + var isArr = isArray(value), isArg = !isArr && isArguments(value), isBuff = !isArr && !isArg && isBuffer(value), isType = !isArr && !isArg && !isBuff && isTypedArray(value), skipIndexes = isArr || isArg || isBuff || isType, result2 = skipIndexes ? baseTimes(value.length, String2) : [], length = result2.length; + for (var key in value) { + if ((inherited || hasOwnProperty.call(value, key)) && !(skipIndexes && (key == "length" || isBuff && (key == "offset" || key == "parent") || isType && (key == "buffer" || key == "byteLength" || key == "byteOffset") || isIndex(key, length)))) { + result2.push(key); + } + } + return result2; + } + function arraySample(array) { + var length = array.length; + return length ? array[baseRandom(0, length - 1)] : undefined2; + } + function arraySampleSize(array, n) { + return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length)); + } + function arrayShuffle(array) { + return shuffleSelf(copyArray(array)); + } + function assignMergeValue(object, key, value) { + if (value !== undefined2 && !eq(object[key], value) || value === undefined2 && !(key in object)) { + baseAssignValue(object, key, value); + } + } + function assignValue(object, key, value) { + var objValue = object[key]; + if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || value === undefined2 && !(key in object)) { + baseAssignValue(object, key, value); + } + } + function assocIndexOf(array, key) { + var length = array.length; + while (length--) { + if (eq(array[length][0], key)) { + return length; + } + } + return -1; + } + function baseAggregator(collection, setter, iteratee2, accumulator) { + baseEach(collection, function(value, key, collection2) { + setter(accumulator, value, iteratee2(value), collection2); + }); + return accumulator; + } + function baseAssign(object, source) { + return object && copyObject(source, keys(source), object); + } + function baseAssignIn(object, source) { + return object && copyObject(source, keysIn(source), object); + } + function baseAssignValue(object, key, value) { + if (key == "__proto__" && defineProperty) { + defineProperty(object, key, { + configurable: true, + enumerable: true, + value, + writable: true + }); + } else { + object[key] = value; + } + } + function baseAt(object, paths) { + var index = -1, length = paths.length, result2 = Array2(length), skip = object == null; + while (++index < length) { + result2[index] = skip ? undefined2 : get(object, paths[index]); + } + return result2; + } + function baseClamp(number, lower, upper) { + if (number === number) { + if (upper !== undefined2) { + number = number <= upper ? number : upper; + } + if (lower !== undefined2) { + number = number >= lower ? number : lower; + } + } + return number; + } + function baseClone(value, bitmask, customizer, key, object, stack) { + var result2, isDeep = bitmask & CLONE_DEEP_FLAG, isFlat = bitmask & CLONE_FLAT_FLAG, isFull = bitmask & CLONE_SYMBOLS_FLAG; + if (customizer) { + result2 = object ? customizer(value, key, object, stack) : customizer(value); + } + if (result2 !== undefined2) { + return result2; + } + if (!isObject(value)) { + return value; + } + var isArr = isArray(value); + if (isArr) { + result2 = initCloneArray(value); + if (!isDeep) { + return copyArray(value, result2); + } + } else { + var tag = getTag(value), isFunc = tag == funcTag || tag == genTag; + if (isBuffer(value)) { + return cloneBuffer(value, isDeep); + } + if (tag == objectTag || tag == argsTag || isFunc && !object) { + result2 = isFlat || isFunc ? {} : initCloneObject(value); + if (!isDeep) { + return isFlat ? copySymbolsIn(value, baseAssignIn(result2, value)) : copySymbols(value, baseAssign(result2, value)); + } + } else { + if (!cloneableTags[tag]) { + return object ? value : {}; + } + result2 = initCloneByTag(value, tag, isDeep); + } + } + stack || (stack = new Stack); + var stacked = stack.get(value); + if (stacked) { + return stacked; + } + stack.set(value, result2); + if (isSet(value)) { + value.forEach(function(subValue) { + result2.add(baseClone(subValue, bitmask, customizer, subValue, value, stack)); + }); + } else if (isMap(value)) { + value.forEach(function(subValue, key2) { + result2.set(key2, baseClone(subValue, bitmask, customizer, key2, value, stack)); + }); + } + var keysFunc = isFull ? isFlat ? getAllKeysIn : getAllKeys : isFlat ? keysIn : keys; + var props = isArr ? undefined2 : keysFunc(value); + arrayEach(props || value, function(subValue, key2) { + if (props) { + key2 = subValue; + subValue = value[key2]; + } + assignValue(result2, key2, baseClone(subValue, bitmask, customizer, key2, value, stack)); + }); + return result2; + } + function baseConforms(source) { + var props = keys(source); + return function(object) { + return baseConformsTo(object, source, props); + }; + } + function baseConformsTo(object, source, props) { + var length = props.length; + if (object == null) { + return !length; + } + object = Object2(object); + while (length--) { + var key = props[length], predicate = source[key], value = object[key]; + if (value === undefined2 && !(key in object) || !predicate(value)) { + return false; + } + } + return true; + } + function baseDelay(func, wait, args) { + if (typeof func != "function") { + throw new TypeError2(FUNC_ERROR_TEXT); + } + return setTimeout2(function() { + func.apply(undefined2, args); + }, wait); + } + function baseDifference(array, values2, iteratee2, comparator) { + var index = -1, includes2 = arrayIncludes, isCommon = true, length = array.length, result2 = [], valuesLength = values2.length; + if (!length) { + return result2; + } + if (iteratee2) { + values2 = arrayMap(values2, baseUnary(iteratee2)); + } + if (comparator) { + includes2 = arrayIncludesWith; + isCommon = false; + } else if (values2.length >= LARGE_ARRAY_SIZE) { + includes2 = cacheHas; + isCommon = false; + values2 = new SetCache(values2); + } + outer: + while (++index < length) { + var value = array[index], computed = iteratee2 == null ? value : iteratee2(value); + value = comparator || value !== 0 ? value : 0; + if (isCommon && computed === computed) { + var valuesIndex = valuesLength; + while (valuesIndex--) { + if (values2[valuesIndex] === computed) { + continue outer; + } + } + result2.push(value); + } else if (!includes2(values2, computed, comparator)) { + result2.push(value); + } + } + return result2; + } + var baseEach = createBaseEach(baseForOwn); + var baseEachRight = createBaseEach(baseForOwnRight, true); + function baseEvery(collection, predicate) { + var result2 = true; + baseEach(collection, function(value, index, collection2) { + result2 = !!predicate(value, index, collection2); + return result2; + }); + return result2; + } + function baseExtremum(array, iteratee2, comparator) { + var index = -1, length = array.length; + while (++index < length) { + var value = array[index], current = iteratee2(value); + if (current != null && (computed === undefined2 ? current === current && !isSymbol(current) : comparator(current, computed))) { + var computed = current, result2 = value; + } + } + return result2; + } + function baseFill(array, value, start, end) { + var length = array.length; + start = toInteger(start); + if (start < 0) { + start = -start > length ? 0 : length + start; + } + end = end === undefined2 || end > length ? length : toInteger(end); + if (end < 0) { + end += length; + } + end = start > end ? 0 : toLength(end); + while (start < end) { + array[start++] = value; + } + return array; + } + function baseFilter(collection, predicate) { + var result2 = []; + baseEach(collection, function(value, index, collection2) { + if (predicate(value, index, collection2)) { + result2.push(value); + } + }); + return result2; + } + function baseFlatten(array, depth, predicate, isStrict, result2) { + var index = -1, length = array.length; + predicate || (predicate = isFlattenable); + result2 || (result2 = []); + while (++index < length) { + var value = array[index]; + if (depth > 0 && predicate(value)) { + if (depth > 1) { + baseFlatten(value, depth - 1, predicate, isStrict, result2); + } else { + arrayPush(result2, value); + } + } else if (!isStrict) { + result2[result2.length] = value; + } + } + return result2; + } + var baseFor = createBaseFor(); + var baseForRight = createBaseFor(true); + function baseForOwn(object, iteratee2) { + return object && baseFor(object, iteratee2, keys); + } + function baseForOwnRight(object, iteratee2) { + return object && baseForRight(object, iteratee2, keys); + } + function baseFunctions(object, props) { + return arrayFilter(props, function(key) { + return isFunction(object[key]); + }); + } + function baseGet(object, path) { + path = castPath(path, object); + var index = 0, length = path.length; + while (object != null && index < length) { + object = object[toKey(path[index++])]; + } + return index && index == length ? object : undefined2; + } + function baseGetAllKeys(object, keysFunc, symbolsFunc) { + var result2 = keysFunc(object); + return isArray(object) ? result2 : arrayPush(result2, symbolsFunc(object)); + } + function baseGetTag(value) { + if (value == null) { + return value === undefined2 ? undefinedTag : nullTag; + } + return symToStringTag && symToStringTag in Object2(value) ? getRawTag(value) : objectToString(value); + } + function baseGt(value, other) { + return value > other; + } + function baseHas(object, key) { + return object != null && hasOwnProperty.call(object, key); + } + function baseHasIn(object, key) { + return object != null && key in Object2(object); + } + function baseInRange(number, start, end) { + return number >= nativeMin(start, end) && number < nativeMax(start, end); + } + function baseIntersection(arrays, iteratee2, comparator) { + var includes2 = comparator ? arrayIncludesWith : arrayIncludes, length = arrays[0].length, othLength = arrays.length, othIndex = othLength, caches = Array2(othLength), maxLength = Infinity, result2 = []; + while (othIndex--) { + var array = arrays[othIndex]; + if (othIndex && iteratee2) { + array = arrayMap(array, baseUnary(iteratee2)); + } + maxLength = nativeMin(array.length, maxLength); + caches[othIndex] = !comparator && (iteratee2 || length >= 120 && array.length >= 120) ? new SetCache(othIndex && array) : undefined2; + } + array = arrays[0]; + var index = -1, seen = caches[0]; + outer: + while (++index < length && result2.length < maxLength) { + var value = array[index], computed = iteratee2 ? iteratee2(value) : value; + value = comparator || value !== 0 ? value : 0; + if (!(seen ? cacheHas(seen, computed) : includes2(result2, computed, comparator))) { + othIndex = othLength; + while (--othIndex) { + var cache = caches[othIndex]; + if (!(cache ? cacheHas(cache, computed) : includes2(arrays[othIndex], computed, comparator))) { + continue outer; + } + } + if (seen) { + seen.push(computed); + } + result2.push(value); + } + } + return result2; + } + function baseInverter(object, setter, iteratee2, accumulator) { + baseForOwn(object, function(value, key, object2) { + setter(accumulator, iteratee2(value), key, object2); + }); + return accumulator; + } + function baseInvoke(object, path, args) { + path = castPath(path, object); + object = parent(object, path); + var func = object == null ? object : object[toKey(last(path))]; + return func == null ? undefined2 : apply(func, object, args); + } + function baseIsArguments(value) { + return isObjectLike(value) && baseGetTag(value) == argsTag; + } + function baseIsArrayBuffer(value) { + return isObjectLike(value) && baseGetTag(value) == arrayBufferTag; + } + function baseIsDate(value) { + return isObjectLike(value) && baseGetTag(value) == dateTag; + } + function baseIsEqual(value, other, bitmask, customizer, stack) { + if (value === other) { + return true; + } + if (value == null || other == null || !isObjectLike(value) && !isObjectLike(other)) { + return value !== value && other !== other; + } + return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack); + } + function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) { + var objIsArr = isArray(object), othIsArr = isArray(other), objTag = objIsArr ? arrayTag : getTag(object), othTag = othIsArr ? arrayTag : getTag(other); + objTag = objTag == argsTag ? objectTag : objTag; + othTag = othTag == argsTag ? objectTag : othTag; + var objIsObj = objTag == objectTag, othIsObj = othTag == objectTag, isSameTag = objTag == othTag; + if (isSameTag && isBuffer(object)) { + if (!isBuffer(other)) { + return false; + } + objIsArr = true; + objIsObj = false; + } + if (isSameTag && !objIsObj) { + stack || (stack = new Stack); + return objIsArr || isTypedArray(object) ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); + } + if (!(bitmask & COMPARE_PARTIAL_FLAG)) { + var objIsWrapped = objIsObj && hasOwnProperty.call(object, "__wrapped__"), othIsWrapped = othIsObj && hasOwnProperty.call(other, "__wrapped__"); + if (objIsWrapped || othIsWrapped) { + var objUnwrapped = objIsWrapped ? object.value() : object, othUnwrapped = othIsWrapped ? other.value() : other; + stack || (stack = new Stack); + return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); + } + } + if (!isSameTag) { + return false; + } + stack || (stack = new Stack); + return equalObjects(object, other, bitmask, customizer, equalFunc, stack); + } + function baseIsMap(value) { + return isObjectLike(value) && getTag(value) == mapTag; + } + function baseIsMatch(object, source, matchData, customizer) { + var index = matchData.length, length = index, noCustomizer = !customizer; + if (object == null) { + return !length; + } + object = Object2(object); + while (index--) { + var data = matchData[index]; + if (noCustomizer && data[2] ? data[1] !== object[data[0]] : !(data[0] in object)) { + return false; + } + } + while (++index < length) { + data = matchData[index]; + var key = data[0], objValue = object[key], srcValue = data[1]; + if (noCustomizer && data[2]) { + if (objValue === undefined2 && !(key in object)) { + return false; + } + } else { + var stack = new Stack; + if (customizer) { + var result2 = customizer(objValue, srcValue, key, object, source, stack); + } + if (!(result2 === undefined2 ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack) : result2)) { + return false; + } + } + } + return true; + } + function baseIsNative(value) { + if (!isObject(value) || isMasked(value)) { + return false; + } + var pattern = isFunction(value) ? reIsNative : reIsHostCtor; + return pattern.test(toSource(value)); + } + function baseIsRegExp(value) { + return isObjectLike(value) && baseGetTag(value) == regexpTag; + } + function baseIsSet(value) { + return isObjectLike(value) && getTag(value) == setTag; + } + function baseIsTypedArray(value) { + return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[baseGetTag(value)]; + } + function baseIteratee(value) { + if (typeof value == "function") { + return value; + } + if (value == null) { + return identity; + } + if (typeof value == "object") { + return isArray(value) ? baseMatchesProperty(value[0], value[1]) : baseMatches(value); + } + return property(value); + } + function baseKeys(object) { + if (!isPrototype(object)) { + return nativeKeys(object); + } + var result2 = []; + for (var key in Object2(object)) { + if (hasOwnProperty.call(object, key) && key != "constructor") { + result2.push(key); + } + } + return result2; + } + function baseKeysIn(object) { + if (!isObject(object)) { + return nativeKeysIn(object); + } + var isProto = isPrototype(object), result2 = []; + for (var key in object) { + if (!(key == "constructor" && (isProto || !hasOwnProperty.call(object, key)))) { + result2.push(key); + } + } + return result2; + } + function baseLt(value, other) { + return value < other; + } + function baseMap(collection, iteratee2) { + var index = -1, result2 = isArrayLike(collection) ? Array2(collection.length) : []; + baseEach(collection, function(value, key, collection2) { + result2[++index] = iteratee2(value, key, collection2); + }); + return result2; + } + function baseMatches(source) { + var matchData = getMatchData(source); + if (matchData.length == 1 && matchData[0][2]) { + return matchesStrictComparable(matchData[0][0], matchData[0][1]); + } + return function(object) { + return object === source || baseIsMatch(object, source, matchData); + }; + } + function baseMatchesProperty(path, srcValue) { + if (isKey(path) && isStrictComparable(srcValue)) { + return matchesStrictComparable(toKey(path), srcValue); + } + return function(object) { + var objValue = get(object, path); + return objValue === undefined2 && objValue === srcValue ? hasIn(object, path) : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG); + }; + } + function baseMerge(object, source, srcIndex, customizer, stack) { + if (object === source) { + return; + } + baseFor(source, function(srcValue, key) { + stack || (stack = new Stack); + if (isObject(srcValue)) { + baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack); + } else { + var newValue = customizer ? customizer(safeGet(object, key), srcValue, key + "", object, source, stack) : undefined2; + if (newValue === undefined2) { + newValue = srcValue; + } + assignMergeValue(object, key, newValue); + } + }, keysIn); + } + function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) { + var objValue = safeGet(object, key), srcValue = safeGet(source, key), stacked = stack.get(srcValue); + if (stacked) { + assignMergeValue(object, key, stacked); + return; + } + var newValue = customizer ? customizer(objValue, srcValue, key + "", object, source, stack) : undefined2; + var isCommon = newValue === undefined2; + if (isCommon) { + var isArr = isArray(srcValue), isBuff = !isArr && isBuffer(srcValue), isTyped = !isArr && !isBuff && isTypedArray(srcValue); + newValue = srcValue; + if (isArr || isBuff || isTyped) { + if (isArray(objValue)) { + newValue = objValue; + } else if (isArrayLikeObject(objValue)) { + newValue = copyArray(objValue); + } else if (isBuff) { + isCommon = false; + newValue = cloneBuffer(srcValue, true); + } else if (isTyped) { + isCommon = false; + newValue = cloneTypedArray(srcValue, true); + } else { + newValue = []; + } + } else if (isPlainObject(srcValue) || isArguments(srcValue)) { + newValue = objValue; + if (isArguments(objValue)) { + newValue = toPlainObject(objValue); + } else if (!isObject(objValue) || isFunction(objValue)) { + newValue = initCloneObject(srcValue); + } + } else { + isCommon = false; + } + } + if (isCommon) { + stack.set(srcValue, newValue); + mergeFunc(newValue, srcValue, srcIndex, customizer, stack); + stack["delete"](srcValue); + } + assignMergeValue(object, key, newValue); + } + function baseNth(array, n) { + var length = array.length; + if (!length) { + return; + } + n += n < 0 ? length : 0; + return isIndex(n, length) ? array[n] : undefined2; + } + function baseOrderBy(collection, iteratees, orders) { + if (iteratees.length) { + iteratees = arrayMap(iteratees, function(iteratee2) { + if (isArray(iteratee2)) { + return function(value) { + return baseGet(value, iteratee2.length === 1 ? iteratee2[0] : iteratee2); + }; + } + return iteratee2; + }); + } else { + iteratees = [identity]; + } + var index = -1; + iteratees = arrayMap(iteratees, baseUnary(getIteratee())); + var result2 = baseMap(collection, function(value, key, collection2) { + var criteria = arrayMap(iteratees, function(iteratee2) { + return iteratee2(value); + }); + return { criteria, index: ++index, value }; + }); + return baseSortBy(result2, function(object, other) { + return compareMultiple(object, other, orders); + }); + } + function basePick(object, paths) { + return basePickBy(object, paths, function(value, path) { + return hasIn(object, path); + }); + } + function basePickBy(object, paths, predicate) { + var index = -1, length = paths.length, result2 = {}; + while (++index < length) { + var path = paths[index], value = baseGet(object, path); + if (predicate(value, path)) { + baseSet(result2, castPath(path, object), value); + } + } + return result2; + } + function basePropertyDeep(path) { + return function(object) { + return baseGet(object, path); + }; + } + function basePullAll(array, values2, iteratee2, comparator) { + var indexOf2 = comparator ? baseIndexOfWith : baseIndexOf, index = -1, length = values2.length, seen = array; + if (array === values2) { + values2 = copyArray(values2); + } + if (iteratee2) { + seen = arrayMap(array, baseUnary(iteratee2)); + } + while (++index < length) { + var fromIndex = 0, value = values2[index], computed = iteratee2 ? iteratee2(value) : value; + while ((fromIndex = indexOf2(seen, computed, fromIndex, comparator)) > -1) { + if (seen !== array) { + splice.call(seen, fromIndex, 1); + } + splice.call(array, fromIndex, 1); + } + } + return array; + } + function basePullAt(array, indexes) { + var length = array ? indexes.length : 0, lastIndex = length - 1; + while (length--) { + var index = indexes[length]; + if (length == lastIndex || index !== previous) { + var previous = index; + if (isIndex(index)) { + splice.call(array, index, 1); + } else { + baseUnset(array, index); + } + } + } + return array; + } + function baseRandom(lower, upper) { + return lower + nativeFloor(nativeRandom() * (upper - lower + 1)); + } + function baseRange(start, end, step, fromRight) { + var index = -1, length = nativeMax(nativeCeil((end - start) / (step || 1)), 0), result2 = Array2(length); + while (length--) { + result2[fromRight ? length : ++index] = start; + start += step; + } + return result2; + } + function baseRepeat(string, n) { + var result2 = ""; + if (!string || n < 1 || n > MAX_SAFE_INTEGER) { + return result2; + } + do { + if (n % 2) { + result2 += string; + } + n = nativeFloor(n / 2); + if (n) { + string += string; + } + } while (n); + return result2; + } + function baseRest(func, start) { + return setToString(overRest(func, start, identity), func + ""); + } + function baseSample(collection) { + return arraySample(values(collection)); + } + function baseSampleSize(collection, n) { + var array = values(collection); + return shuffleSelf(array, baseClamp(n, 0, array.length)); + } + function baseSet(object, path, value, customizer) { + if (!isObject(object)) { + return object; + } + path = castPath(path, object); + var index = -1, length = path.length, lastIndex = length - 1, nested = object; + while (nested != null && ++index < length) { + var key = toKey(path[index]), newValue = value; + if (key === "__proto__" || key === "constructor" || key === "prototype") { + return object; + } + if (index != lastIndex) { + var objValue = nested[key]; + newValue = customizer ? customizer(objValue, key, nested) : undefined2; + if (newValue === undefined2) { + newValue = isObject(objValue) ? objValue : isIndex(path[index + 1]) ? [] : {}; + } + } + assignValue(nested, key, newValue); + nested = nested[key]; + } + return object; + } + var baseSetData = !metaMap ? identity : function(func, data) { + metaMap.set(func, data); + return func; + }; + var baseSetToString = !defineProperty ? identity : function(func, string) { + return defineProperty(func, "toString", { + configurable: true, + enumerable: false, + value: constant(string), + writable: true + }); + }; + function baseShuffle(collection) { + return shuffleSelf(values(collection)); + } + function baseSlice(array, start, end) { + var index = -1, length = array.length; + if (start < 0) { + start = -start > length ? 0 : length + start; + } + end = end > length ? length : end; + if (end < 0) { + end += length; + } + length = start > end ? 0 : end - start >>> 0; + start >>>= 0; + var result2 = Array2(length); + while (++index < length) { + result2[index] = array[index + start]; + } + return result2; + } + function baseSome(collection, predicate) { + var result2; + baseEach(collection, function(value, index, collection2) { + result2 = predicate(value, index, collection2); + return !result2; + }); + return !!result2; + } + function baseSortedIndex(array, value, retHighest) { + var low = 0, high = array == null ? low : array.length; + if (typeof value == "number" && value === value && high <= HALF_MAX_ARRAY_LENGTH) { + while (low < high) { + var mid = low + high >>> 1, computed = array[mid]; + if (computed !== null && !isSymbol(computed) && (retHighest ? computed <= value : computed < value)) { + low = mid + 1; + } else { + high = mid; + } + } + return high; + } + return baseSortedIndexBy(array, value, identity, retHighest); + } + function baseSortedIndexBy(array, value, iteratee2, retHighest) { + var low = 0, high = array == null ? 0 : array.length; + if (high === 0) { + return 0; + } + value = iteratee2(value); + var valIsNaN = value !== value, valIsNull = value === null, valIsSymbol = isSymbol(value), valIsUndefined = value === undefined2; + while (low < high) { + var mid = nativeFloor((low + high) / 2), computed = iteratee2(array[mid]), othIsDefined = computed !== undefined2, othIsNull = computed === null, othIsReflexive = computed === computed, othIsSymbol = isSymbol(computed); + if (valIsNaN) { + var setLow = retHighest || othIsReflexive; + } else if (valIsUndefined) { + setLow = othIsReflexive && (retHighest || othIsDefined); + } else if (valIsNull) { + setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull); + } else if (valIsSymbol) { + setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol); + } else if (othIsNull || othIsSymbol) { + setLow = false; + } else { + setLow = retHighest ? computed <= value : computed < value; + } + if (setLow) { + low = mid + 1; + } else { + high = mid; + } + } + return nativeMin(high, MAX_ARRAY_INDEX); + } + function baseSortedUniq(array, iteratee2) { + var index = -1, length = array.length, resIndex = 0, result2 = []; + while (++index < length) { + var value = array[index], computed = iteratee2 ? iteratee2(value) : value; + if (!index || !eq(computed, seen)) { + var seen = computed; + result2[resIndex++] = value === 0 ? 0 : value; + } + } + return result2; + } + function baseToNumber(value) { + if (typeof value == "number") { + return value; + } + if (isSymbol(value)) { + return NAN; + } + return +value; + } + function baseToString(value) { + if (typeof value == "string") { + return value; + } + if (isArray(value)) { + return arrayMap(value, baseToString) + ""; + } + if (isSymbol(value)) { + return symbolToString ? symbolToString.call(value) : ""; + } + var result2 = value + ""; + return result2 == "0" && 1 / value == -INFINITY ? "-0" : result2; + } + function baseUniq(array, iteratee2, comparator) { + var index = -1, includes2 = arrayIncludes, length = array.length, isCommon = true, result2 = [], seen = result2; + if (comparator) { + isCommon = false; + includes2 = arrayIncludesWith; + } else if (length >= LARGE_ARRAY_SIZE) { + var set2 = iteratee2 ? null : createSet(array); + if (set2) { + return setToArray(set2); + } + isCommon = false; + includes2 = cacheHas; + seen = new SetCache; + } else { + seen = iteratee2 ? [] : result2; + } + outer: + while (++index < length) { + var value = array[index], computed = iteratee2 ? iteratee2(value) : value; + value = comparator || value !== 0 ? value : 0; + if (isCommon && computed === computed) { + var seenIndex = seen.length; + while (seenIndex--) { + if (seen[seenIndex] === computed) { + continue outer; + } + } + if (iteratee2) { + seen.push(computed); + } + result2.push(value); + } else if (!includes2(seen, computed, comparator)) { + if (seen !== result2) { + seen.push(computed); + } + result2.push(value); + } + } + return result2; + } + function baseUnset(object, path) { + path = castPath(path, object); + object = parent(object, path); + return object == null || delete object[toKey(last(path))]; + } + function baseUpdate(object, path, updater, customizer) { + return baseSet(object, path, updater(baseGet(object, path)), customizer); + } + function baseWhile(array, predicate, isDrop, fromRight) { + var length = array.length, index = fromRight ? length : -1; + while ((fromRight ? index-- : ++index < length) && predicate(array[index], index, array)) { + } + return isDrop ? baseSlice(array, fromRight ? 0 : index, fromRight ? index + 1 : length) : baseSlice(array, fromRight ? index + 1 : 0, fromRight ? length : index); + } + function baseWrapperValue(value, actions) { + var result2 = value; + if (result2 instanceof LazyWrapper) { + result2 = result2.value(); + } + return arrayReduce(actions, function(result3, action) { + return action.func.apply(action.thisArg, arrayPush([result3], action.args)); + }, result2); + } + function baseXor(arrays, iteratee2, comparator) { + var length = arrays.length; + if (length < 2) { + return length ? baseUniq(arrays[0]) : []; + } + var index = -1, result2 = Array2(length); + while (++index < length) { + var array = arrays[index], othIndex = -1; + while (++othIndex < length) { + if (othIndex != index) { + result2[index] = baseDifference(result2[index] || array, arrays[othIndex], iteratee2, comparator); + } + } + } + return baseUniq(baseFlatten(result2, 1), iteratee2, comparator); + } + function baseZipObject(props, values2, assignFunc) { + var index = -1, length = props.length, valsLength = values2.length, result2 = {}; + while (++index < length) { + var value = index < valsLength ? values2[index] : undefined2; + assignFunc(result2, props[index], value); + } + return result2; + } + function castArrayLikeObject(value) { + return isArrayLikeObject(value) ? value : []; + } + function castFunction(value) { + return typeof value == "function" ? value : identity; + } + function castPath(value, object) { + if (isArray(value)) { + return value; + } + return isKey(value, object) ? [value] : stringToPath(toString(value)); + } + var castRest = baseRest; + function castSlice(array, start, end) { + var length = array.length; + end = end === undefined2 ? length : end; + return !start && end >= length ? array : baseSlice(array, start, end); + } + var clearTimeout2 = ctxClearTimeout || function(id) { + return root.clearTimeout(id); + }; + function cloneBuffer(buffer, isDeep) { + if (isDeep) { + return buffer.slice(); + } + var length = buffer.length, result2 = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length); + buffer.copy(result2); + return result2; + } + function cloneArrayBuffer(arrayBuffer) { + var result2 = new arrayBuffer.constructor(arrayBuffer.byteLength); + new Uint8Array2(result2).set(new Uint8Array2(arrayBuffer)); + return result2; + } + function cloneDataView(dataView, isDeep) { + var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer; + return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength); + } + function cloneRegExp(regexp) { + var result2 = new regexp.constructor(regexp.source, reFlags.exec(regexp)); + result2.lastIndex = regexp.lastIndex; + return result2; + } + function cloneSymbol(symbol) { + return symbolValueOf ? Object2(symbolValueOf.call(symbol)) : {}; + } + function cloneTypedArray(typedArray, isDeep) { + var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer; + return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length); + } + function compareAscending(value, other) { + if (value !== other) { + var valIsDefined = value !== undefined2, valIsNull = value === null, valIsReflexive = value === value, valIsSymbol = isSymbol(value); + var othIsDefined = other !== undefined2, othIsNull = other === null, othIsReflexive = other === other, othIsSymbol = isSymbol(other); + if (!othIsNull && !othIsSymbol && !valIsSymbol && value > other || valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol || valIsNull && othIsDefined && othIsReflexive || !valIsDefined && othIsReflexive || !valIsReflexive) { + return 1; + } + if (!valIsNull && !valIsSymbol && !othIsSymbol && value < other || othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol || othIsNull && valIsDefined && valIsReflexive || !othIsDefined && valIsReflexive || !othIsReflexive) { + return -1; + } + } + return 0; + } + function compareMultiple(object, other, orders) { + var index = -1, objCriteria = object.criteria, othCriteria = other.criteria, length = objCriteria.length, ordersLength = orders.length; + while (++index < length) { + var result2 = compareAscending(objCriteria[index], othCriteria[index]); + if (result2) { + if (index >= ordersLength) { + return result2; + } + var order = orders[index]; + return result2 * (order == "desc" ? -1 : 1); + } + } + return object.index - other.index; + } + function composeArgs(args, partials, holders, isCurried) { + var argsIndex = -1, argsLength = args.length, holdersLength = holders.length, leftIndex = -1, leftLength = partials.length, rangeLength = nativeMax(argsLength - holdersLength, 0), result2 = Array2(leftLength + rangeLength), isUncurried = !isCurried; + while (++leftIndex < leftLength) { + result2[leftIndex] = partials[leftIndex]; + } + while (++argsIndex < holdersLength) { + if (isUncurried || argsIndex < argsLength) { + result2[holders[argsIndex]] = args[argsIndex]; + } + } + while (rangeLength--) { + result2[leftIndex++] = args[argsIndex++]; + } + return result2; + } + function composeArgsRight(args, partials, holders, isCurried) { + var argsIndex = -1, argsLength = args.length, holdersIndex = -1, holdersLength = holders.length, rightIndex = -1, rightLength = partials.length, rangeLength = nativeMax(argsLength - holdersLength, 0), result2 = Array2(rangeLength + rightLength), isUncurried = !isCurried; + while (++argsIndex < rangeLength) { + result2[argsIndex] = args[argsIndex]; + } + var offset = argsIndex; + while (++rightIndex < rightLength) { + result2[offset + rightIndex] = partials[rightIndex]; + } + while (++holdersIndex < holdersLength) { + if (isUncurried || argsIndex < argsLength) { + result2[offset + holders[holdersIndex]] = args[argsIndex++]; + } + } + return result2; + } + function copyArray(source, array) { + var index = -1, length = source.length; + array || (array = Array2(length)); + while (++index < length) { + array[index] = source[index]; + } + return array; + } + function copyObject(source, props, object, customizer) { + var isNew = !object; + object || (object = {}); + var index = -1, length = props.length; + while (++index < length) { + var key = props[index]; + var newValue = customizer ? customizer(object[key], source[key], key, object, source) : undefined2; + if (newValue === undefined2) { + newValue = source[key]; + } + if (isNew) { + baseAssignValue(object, key, newValue); + } else { + assignValue(object, key, newValue); + } + } + return object; + } + function copySymbols(source, object) { + return copyObject(source, getSymbols(source), object); + } + function copySymbolsIn(source, object) { + return copyObject(source, getSymbolsIn(source), object); + } + function createAggregator(setter, initializer) { + return function(collection, iteratee2) { + var func = isArray(collection) ? arrayAggregator : baseAggregator, accumulator = initializer ? initializer() : {}; + return func(collection, setter, getIteratee(iteratee2, 2), accumulator); + }; + } + function createAssigner(assigner) { + return baseRest(function(object, sources) { + var index = -1, length = sources.length, customizer = length > 1 ? sources[length - 1] : undefined2, guard = length > 2 ? sources[2] : undefined2; + customizer = assigner.length > 3 && typeof customizer == "function" ? (length--, customizer) : undefined2; + if (guard && isIterateeCall(sources[0], sources[1], guard)) { + customizer = length < 3 ? undefined2 : customizer; + length = 1; + } + object = Object2(object); + while (++index < length) { + var source = sources[index]; + if (source) { + assigner(object, source, index, customizer); + } + } + return object; + }); + } + function createBaseEach(eachFunc, fromRight) { + return function(collection, iteratee2) { + if (collection == null) { + return collection; + } + if (!isArrayLike(collection)) { + return eachFunc(collection, iteratee2); + } + var length = collection.length, index = fromRight ? length : -1, iterable = Object2(collection); + while (fromRight ? index-- : ++index < length) { + if (iteratee2(iterable[index], index, iterable) === false) { + break; + } + } + return collection; + }; + } + function createBaseFor(fromRight) { + return function(object, iteratee2, keysFunc) { + var index = -1, iterable = Object2(object), props = keysFunc(object), length = props.length; + while (length--) { + var key = props[fromRight ? length : ++index]; + if (iteratee2(iterable[key], key, iterable) === false) { + break; + } + } + return object; + }; + } + function createBind(func, bitmask, thisArg) { + var isBind = bitmask & WRAP_BIND_FLAG, Ctor = createCtor(func); + function wrapper() { + var fn = this && this !== root && this instanceof wrapper ? Ctor : func; + return fn.apply(isBind ? thisArg : this, arguments); + } + return wrapper; + } + function createCaseFirst(methodName) { + return function(string) { + string = toString(string); + var strSymbols = hasUnicode(string) ? stringToArray(string) : undefined2; + var chr = strSymbols ? strSymbols[0] : string.charAt(0); + var trailing = strSymbols ? castSlice(strSymbols, 1).join("") : string.slice(1); + return chr[methodName]() + trailing; + }; + } + function createCompounder(callback) { + return function(string) { + return arrayReduce(words(deburr(string).replace(reApos, "")), callback, ""); + }; + } + function createCtor(Ctor) { + return function() { + var args = arguments; + switch (args.length) { + case 0: + return new Ctor; + case 1: + return new Ctor(args[0]); + case 2: + return new Ctor(args[0], args[1]); + case 3: + return new Ctor(args[0], args[1], args[2]); + case 4: + return new Ctor(args[0], args[1], args[2], args[3]); + case 5: + return new Ctor(args[0], args[1], args[2], args[3], args[4]); + case 6: + return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]); + case 7: + return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]); + } + var thisBinding = baseCreate(Ctor.prototype), result2 = Ctor.apply(thisBinding, args); + return isObject(result2) ? result2 : thisBinding; + }; + } + function createCurry(func, bitmask, arity) { + var Ctor = createCtor(func); + function wrapper() { + var length = arguments.length, args = Array2(length), index = length, placeholder = getHolder(wrapper); + while (index--) { + args[index] = arguments[index]; + } + var holders = length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder ? [] : replaceHolders(args, placeholder); + length -= holders.length; + if (length < arity) { + return createRecurry(func, bitmask, createHybrid, wrapper.placeholder, undefined2, args, holders, undefined2, undefined2, arity - length); + } + var fn = this && this !== root && this instanceof wrapper ? Ctor : func; + return apply(fn, this, args); + } + return wrapper; + } + function createFind(findIndexFunc) { + return function(collection, predicate, fromIndex) { + var iterable = Object2(collection); + if (!isArrayLike(collection)) { + var iteratee2 = getIteratee(predicate, 3); + collection = keys(collection); + predicate = function(key) { + return iteratee2(iterable[key], key, iterable); + }; + } + var index = findIndexFunc(collection, predicate, fromIndex); + return index > -1 ? iterable[iteratee2 ? collection[index] : index] : undefined2; + }; + } + function createFlow(fromRight) { + return flatRest(function(funcs) { + var length = funcs.length, index = length, prereq = LodashWrapper.prototype.thru; + if (fromRight) { + funcs.reverse(); + } + while (index--) { + var func = funcs[index]; + if (typeof func != "function") { + throw new TypeError2(FUNC_ERROR_TEXT); + } + if (prereq && !wrapper && getFuncName(func) == "wrapper") { + var wrapper = new LodashWrapper([], true); + } + } + index = wrapper ? index : length; + while (++index < length) { + func = funcs[index]; + var funcName = getFuncName(func), data = funcName == "wrapper" ? getData(func) : undefined2; + if (data && isLaziable(data[0]) && data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) && !data[4].length && data[9] == 1) { + wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]); + } else { + wrapper = func.length == 1 && isLaziable(func) ? wrapper[funcName]() : wrapper.thru(func); + } + } + return function() { + var args = arguments, value = args[0]; + if (wrapper && args.length == 1 && isArray(value)) { + return wrapper.plant(value).value(); + } + var index2 = 0, result2 = length ? funcs[index2].apply(this, args) : value; + while (++index2 < length) { + result2 = funcs[index2].call(this, result2); + } + return result2; + }; + }); + } + function createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary2, arity) { + var isAry = bitmask & WRAP_ARY_FLAG, isBind = bitmask & WRAP_BIND_FLAG, isBindKey = bitmask & WRAP_BIND_KEY_FLAG, isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG), isFlip = bitmask & WRAP_FLIP_FLAG, Ctor = isBindKey ? undefined2 : createCtor(func); + function wrapper() { + var length = arguments.length, args = Array2(length), index = length; + while (index--) { + args[index] = arguments[index]; + } + if (isCurried) { + var placeholder = getHolder(wrapper), holdersCount = countHolders(args, placeholder); + } + if (partials) { + args = composeArgs(args, partials, holders, isCurried); + } + if (partialsRight) { + args = composeArgsRight(args, partialsRight, holdersRight, isCurried); + } + length -= holdersCount; + if (isCurried && length < arity) { + var newHolders = replaceHolders(args, placeholder); + return createRecurry(func, bitmask, createHybrid, wrapper.placeholder, thisArg, args, newHolders, argPos, ary2, arity - length); + } + var thisBinding = isBind ? thisArg : this, fn = isBindKey ? thisBinding[func] : func; + length = args.length; + if (argPos) { + args = reorder(args, argPos); + } else if (isFlip && length > 1) { + args.reverse(); + } + if (isAry && ary2 < length) { + args.length = ary2; + } + if (this && this !== root && this instanceof wrapper) { + fn = Ctor || createCtor(fn); + } + return fn.apply(thisBinding, args); + } + return wrapper; + } + function createInverter(setter, toIteratee) { + return function(object, iteratee2) { + return baseInverter(object, setter, toIteratee(iteratee2), {}); + }; + } + function createMathOperation(operator, defaultValue) { + return function(value, other) { + var result2; + if (value === undefined2 && other === undefined2) { + return defaultValue; + } + if (value !== undefined2) { + result2 = value; + } + if (other !== undefined2) { + if (result2 === undefined2) { + return other; + } + if (typeof value == "string" || typeof other == "string") { + value = baseToString(value); + other = baseToString(other); + } else { + value = baseToNumber(value); + other = baseToNumber(other); + } + result2 = operator(value, other); + } + return result2; + }; + } + function createOver(arrayFunc) { + return flatRest(function(iteratees) { + iteratees = arrayMap(iteratees, baseUnary(getIteratee())); + return baseRest(function(args) { + var thisArg = this; + return arrayFunc(iteratees, function(iteratee2) { + return apply(iteratee2, thisArg, args); + }); + }); + }); + } + function createPadding(length, chars) { + chars = chars === undefined2 ? " " : baseToString(chars); + var charsLength = chars.length; + if (charsLength < 2) { + return charsLength ? baseRepeat(chars, length) : chars; + } + var result2 = baseRepeat(chars, nativeCeil(length / stringSize(chars))); + return hasUnicode(chars) ? castSlice(stringToArray(result2), 0, length).join("") : result2.slice(0, length); + } + function createPartial(func, bitmask, thisArg, partials) { + var isBind = bitmask & WRAP_BIND_FLAG, Ctor = createCtor(func); + function wrapper() { + var argsIndex = -1, argsLength = arguments.length, leftIndex = -1, leftLength = partials.length, args = Array2(leftLength + argsLength), fn = this && this !== root && this instanceof wrapper ? Ctor : func; + while (++leftIndex < leftLength) { + args[leftIndex] = partials[leftIndex]; + } + while (argsLength--) { + args[leftIndex++] = arguments[++argsIndex]; + } + return apply(fn, isBind ? thisArg : this, args); + } + return wrapper; + } + function createRange(fromRight) { + return function(start, end, step) { + if (step && typeof step != "number" && isIterateeCall(start, end, step)) { + end = step = undefined2; + } + start = toFinite(start); + if (end === undefined2) { + end = start; + start = 0; + } else { + end = toFinite(end); + } + step = step === undefined2 ? start < end ? 1 : -1 : toFinite(step); + return baseRange(start, end, step, fromRight); + }; + } + function createRelationalOperation(operator) { + return function(value, other) { + if (!(typeof value == "string" && typeof other == "string")) { + value = toNumber(value); + other = toNumber(other); + } + return operator(value, other); + }; + } + function createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary2, arity) { + var isCurry = bitmask & WRAP_CURRY_FLAG, newHolders = isCurry ? holders : undefined2, newHoldersRight = isCurry ? undefined2 : holders, newPartials = isCurry ? partials : undefined2, newPartialsRight = isCurry ? undefined2 : partials; + bitmask |= isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG; + bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG); + if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) { + bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG); + } + var newData = [ + func, + bitmask, + thisArg, + newPartials, + newHolders, + newPartialsRight, + newHoldersRight, + argPos, + ary2, + arity + ]; + var result2 = wrapFunc.apply(undefined2, newData); + if (isLaziable(func)) { + setData(result2, newData); + } + result2.placeholder = placeholder; + return setWrapToString(result2, func, bitmask); + } + function createRound(methodName) { + var func = Math2[methodName]; + return function(number, precision) { + number = toNumber(number); + precision = precision == null ? 0 : nativeMin(toInteger(precision), 292); + if (precision && nativeIsFinite(number)) { + var pair = (toString(number) + "e").split("e"), value = func(pair[0] + "e" + (+pair[1] + precision)); + pair = (toString(value) + "e").split("e"); + return +(pair[0] + "e" + (+pair[1] - precision)); + } + return func(number); + }; + } + var createSet = !(Set2 && 1 / setToArray(new Set2([, -0]))[1] == INFINITY) ? noop : function(values2) { + return new Set2(values2); + }; + function createToPairs(keysFunc) { + return function(object) { + var tag = getTag(object); + if (tag == mapTag) { + return mapToArray(object); + } + if (tag == setTag) { + return setToPairs(object); + } + return baseToPairs(object, keysFunc(object)); + }; + } + function createWrap(func, bitmask, thisArg, partials, holders, argPos, ary2, arity) { + var isBindKey = bitmask & WRAP_BIND_KEY_FLAG; + if (!isBindKey && typeof func != "function") { + throw new TypeError2(FUNC_ERROR_TEXT); + } + var length = partials ? partials.length : 0; + if (!length) { + bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG); + partials = holders = undefined2; + } + ary2 = ary2 === undefined2 ? ary2 : nativeMax(toInteger(ary2), 0); + arity = arity === undefined2 ? arity : toInteger(arity); + length -= holders ? holders.length : 0; + if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) { + var partialsRight = partials, holdersRight = holders; + partials = holders = undefined2; + } + var data = isBindKey ? undefined2 : getData(func); + var newData = [ + func, + bitmask, + thisArg, + partials, + holders, + partialsRight, + holdersRight, + argPos, + ary2, + arity + ]; + if (data) { + mergeData(newData, data); + } + func = newData[0]; + bitmask = newData[1]; + thisArg = newData[2]; + partials = newData[3]; + holders = newData[4]; + arity = newData[9] = newData[9] === undefined2 ? isBindKey ? 0 : func.length : nativeMax(newData[9] - length, 0); + if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) { + bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG); + } + if (!bitmask || bitmask == WRAP_BIND_FLAG) { + var result2 = createBind(func, bitmask, thisArg); + } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) { + result2 = createCurry(func, bitmask, arity); + } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) { + result2 = createPartial(func, bitmask, thisArg, partials); + } else { + result2 = createHybrid.apply(undefined2, newData); + } + var setter = data ? baseSetData : setData; + return setWrapToString(setter(result2, newData), func, bitmask); + } + function customDefaultsAssignIn(objValue, srcValue, key, object) { + if (objValue === undefined2 || eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key)) { + return srcValue; + } + return objValue; + } + function customDefaultsMerge(objValue, srcValue, key, object, source, stack) { + if (isObject(objValue) && isObject(srcValue)) { + stack.set(srcValue, objValue); + baseMerge(objValue, srcValue, undefined2, customDefaultsMerge, stack); + stack["delete"](srcValue); + } + return objValue; + } + function customOmitClone(value) { + return isPlainObject(value) ? undefined2 : value; + } + function equalArrays(array, other, bitmask, customizer, equalFunc, stack) { + var isPartial = bitmask & COMPARE_PARTIAL_FLAG, arrLength = array.length, othLength = other.length; + if (arrLength != othLength && !(isPartial && othLength > arrLength)) { + return false; + } + var arrStacked = stack.get(array); + var othStacked = stack.get(other); + if (arrStacked && othStacked) { + return arrStacked == other && othStacked == array; + } + var index = -1, result2 = true, seen = bitmask & COMPARE_UNORDERED_FLAG ? new SetCache : undefined2; + stack.set(array, other); + stack.set(other, array); + while (++index < arrLength) { + var arrValue = array[index], othValue = other[index]; + if (customizer) { + var compared = isPartial ? customizer(othValue, arrValue, index, other, array, stack) : customizer(arrValue, othValue, index, array, other, stack); + } + if (compared !== undefined2) { + if (compared) { + continue; + } + result2 = false; + break; + } + if (seen) { + if (!arraySome(other, function(othValue2, othIndex) { + if (!cacheHas(seen, othIndex) && (arrValue === othValue2 || equalFunc(arrValue, othValue2, bitmask, customizer, stack))) { + return seen.push(othIndex); + } + })) { + result2 = false; + break; + } + } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { + result2 = false; + break; + } + } + stack["delete"](array); + stack["delete"](other); + return result2; + } + function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) { + switch (tag) { + case dataViewTag: + if (object.byteLength != other.byteLength || object.byteOffset != other.byteOffset) { + return false; + } + object = object.buffer; + other = other.buffer; + case arrayBufferTag: + if (object.byteLength != other.byteLength || !equalFunc(new Uint8Array2(object), new Uint8Array2(other))) { + return false; + } + return true; + case boolTag: + case dateTag: + case numberTag: + return eq(+object, +other); + case errorTag: + return object.name == other.name && object.message == other.message; + case regexpTag: + case stringTag: + return object == other + ""; + case mapTag: + var convert = mapToArray; + case setTag: + var isPartial = bitmask & COMPARE_PARTIAL_FLAG; + convert || (convert = setToArray); + if (object.size != other.size && !isPartial) { + return false; + } + var stacked = stack.get(object); + if (stacked) { + return stacked == other; + } + bitmask |= COMPARE_UNORDERED_FLAG; + stack.set(object, other); + var result2 = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack); + stack["delete"](object); + return result2; + case symbolTag: + if (symbolValueOf) { + return symbolValueOf.call(object) == symbolValueOf.call(other); + } + } + return false; + } + function equalObjects(object, other, bitmask, customizer, equalFunc, stack) { + var isPartial = bitmask & COMPARE_PARTIAL_FLAG, objProps = getAllKeys(object), objLength = objProps.length, othProps = getAllKeys(other), othLength = othProps.length; + if (objLength != othLength && !isPartial) { + return false; + } + var index = objLength; + while (index--) { + var key = objProps[index]; + if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) { + return false; + } + } + var objStacked = stack.get(object); + var othStacked = stack.get(other); + if (objStacked && othStacked) { + return objStacked == other && othStacked == object; + } + var result2 = true; + stack.set(object, other); + stack.set(other, object); + var skipCtor = isPartial; + while (++index < objLength) { + key = objProps[index]; + var objValue = object[key], othValue = other[key]; + if (customizer) { + var compared = isPartial ? customizer(othValue, objValue, key, other, object, stack) : customizer(objValue, othValue, key, object, other, stack); + } + if (!(compared === undefined2 ? objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack) : compared)) { + result2 = false; + break; + } + skipCtor || (skipCtor = key == "constructor"); + } + if (result2 && !skipCtor) { + var objCtor = object.constructor, othCtor = other.constructor; + if (objCtor != othCtor && (("constructor" in object) && ("constructor" in other)) && !(typeof objCtor == "function" && objCtor instanceof objCtor && typeof othCtor == "function" && othCtor instanceof othCtor)) { + result2 = false; + } + } + stack["delete"](object); + stack["delete"](other); + return result2; + } + function flatRest(func) { + return setToString(overRest(func, undefined2, flatten), func + ""); + } + function getAllKeys(object) { + return baseGetAllKeys(object, keys, getSymbols); + } + function getAllKeysIn(object) { + return baseGetAllKeys(object, keysIn, getSymbolsIn); + } + var getData = !metaMap ? noop : function(func) { + return metaMap.get(func); + }; + function getFuncName(func) { + var result2 = func.name + "", array = realNames[result2], length = hasOwnProperty.call(realNames, result2) ? array.length : 0; + while (length--) { + var data = array[length], otherFunc = data.func; + if (otherFunc == null || otherFunc == func) { + return data.name; + } + } + return result2; + } + function getHolder(func) { + var object = hasOwnProperty.call(lodash, "placeholder") ? lodash : func; + return object.placeholder; + } + function getIteratee() { + var result2 = lodash.iteratee || iteratee; + result2 = result2 === iteratee ? baseIteratee : result2; + return arguments.length ? result2(arguments[0], arguments[1]) : result2; + } + function getMapData(map2, key) { + var data = map2.__data__; + return isKeyable(key) ? data[typeof key == "string" ? "string" : "hash"] : data.map; + } + function getMatchData(object) { + var result2 = keys(object), length = result2.length; + while (length--) { + var key = result2[length], value = object[key]; + result2[length] = [key, value, isStrictComparable(value)]; + } + return result2; + } + function getNative(object, key) { + var value = getValue(object, key); + return baseIsNative(value) ? value : undefined2; + } + function getRawTag(value) { + var isOwn = hasOwnProperty.call(value, symToStringTag), tag = value[symToStringTag]; + try { + value[symToStringTag] = undefined2; + var unmasked = true; + } catch (e) { + } + var result2 = nativeObjectToString.call(value); + if (unmasked) { + if (isOwn) { + value[symToStringTag] = tag; + } else { + delete value[symToStringTag]; + } + } + return result2; + } + var getSymbols = !nativeGetSymbols ? stubArray : function(object) { + if (object == null) { + return []; + } + object = Object2(object); + return arrayFilter(nativeGetSymbols(object), function(symbol) { + return propertyIsEnumerable.call(object, symbol); + }); + }; + var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) { + var result2 = []; + while (object) { + arrayPush(result2, getSymbols(object)); + object = getPrototype(object); + } + return result2; + }; + var getTag = baseGetTag; + if (DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag || Map2 && getTag(new Map2) != mapTag || Promise2 && getTag(Promise2.resolve()) != promiseTag || Set2 && getTag(new Set2) != setTag || WeakMap2 && getTag(new WeakMap2) != weakMapTag) { + getTag = function(value) { + var result2 = baseGetTag(value), Ctor = result2 == objectTag ? value.constructor : undefined2, ctorString = Ctor ? toSource(Ctor) : ""; + if (ctorString) { + switch (ctorString) { + case dataViewCtorString: + return dataViewTag; + case mapCtorString: + return mapTag; + case promiseCtorString: + return promiseTag; + case setCtorString: + return setTag; + case weakMapCtorString: + return weakMapTag; + } + } + return result2; + }; + } + function getView(start, end, transforms) { + var index = -1, length = transforms.length; + while (++index < length) { + var data = transforms[index], size2 = data.size; + switch (data.type) { + case "drop": + start += size2; + break; + case "dropRight": + end -= size2; + break; + case "take": + end = nativeMin(end, start + size2); + break; + case "takeRight": + start = nativeMax(start, end - size2); + break; + } + } + return { start, end }; + } + function getWrapDetails(source) { + var match = source.match(reWrapDetails); + return match ? match[1].split(reSplitDetails) : []; + } + function hasPath(object, path, hasFunc) { + path = castPath(path, object); + var index = -1, length = path.length, result2 = false; + while (++index < length) { + var key = toKey(path[index]); + if (!(result2 = object != null && hasFunc(object, key))) { + break; + } + object = object[key]; + } + if (result2 || ++index != length) { + return result2; + } + length = object == null ? 0 : object.length; + return !!length && isLength(length) && isIndex(key, length) && (isArray(object) || isArguments(object)); + } + function initCloneArray(array) { + var length = array.length, result2 = new array.constructor(length); + if (length && typeof array[0] == "string" && hasOwnProperty.call(array, "index")) { + result2.index = array.index; + result2.input = array.input; + } + return result2; + } + function initCloneObject(object) { + return typeof object.constructor == "function" && !isPrototype(object) ? baseCreate(getPrototype(object)) : {}; + } + function initCloneByTag(object, tag, isDeep) { + var Ctor = object.constructor; + switch (tag) { + case arrayBufferTag: + return cloneArrayBuffer(object); + case boolTag: + case dateTag: + return new Ctor(+object); + case dataViewTag: + return cloneDataView(object, isDeep); + case float32Tag: + case float64Tag: + case int8Tag: + case int16Tag: + case int32Tag: + case uint8Tag: + case uint8ClampedTag: + case uint16Tag: + case uint32Tag: + return cloneTypedArray(object, isDeep); + case mapTag: + return new Ctor; + case numberTag: + case stringTag: + return new Ctor(object); + case regexpTag: + return cloneRegExp(object); + case setTag: + return new Ctor; + case symbolTag: + return cloneSymbol(object); + } + } + function insertWrapDetails(source, details) { + var length = details.length; + if (!length) { + return source; + } + var lastIndex = length - 1; + details[lastIndex] = (length > 1 ? "& " : "") + details[lastIndex]; + details = details.join(length > 2 ? ", " : " "); + return source.replace(reWrapComment, "{\n/* [wrapped with " + details + "] */\n"); + } + function isFlattenable(value) { + return isArray(value) || isArguments(value) || !!(spreadableSymbol && value && value[spreadableSymbol]); + } + function isIndex(value, length) { + var type = typeof value; + length = length == null ? MAX_SAFE_INTEGER : length; + return !!length && (type == "number" || type != "symbol" && reIsUint.test(value)) && (value > -1 && value % 1 == 0 && value < length); + } + function isIterateeCall(value, index, object) { + if (!isObject(object)) { + return false; + } + var type = typeof index; + if (type == "number" ? isArrayLike(object) && isIndex(index, object.length) : type == "string" && (index in object)) { + return eq(object[index], value); + } + return false; + } + function isKey(value, object) { + if (isArray(value)) { + return false; + } + var type = typeof value; + if (type == "number" || type == "symbol" || type == "boolean" || value == null || isSymbol(value)) { + return true; + } + return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || object != null && value in Object2(object); + } + function isKeyable(value) { + var type = typeof value; + return type == "string" || type == "number" || type == "symbol" || type == "boolean" ? value !== "__proto__" : value === null; + } + function isLaziable(func) { + var funcName = getFuncName(func), other = lodash[funcName]; + if (typeof other != "function" || !(funcName in LazyWrapper.prototype)) { + return false; + } + if (func === other) { + return true; + } + var data = getData(other); + return !!data && func === data[0]; + } + function isMasked(func) { + return !!maskSrcKey && maskSrcKey in func; + } + var isMaskable = coreJsData ? isFunction : stubFalse; + function isPrototype(value) { + var Ctor = value && value.constructor, proto = typeof Ctor == "function" && Ctor.prototype || objectProto; + return value === proto; + } + function isStrictComparable(value) { + return value === value && !isObject(value); + } + function matchesStrictComparable(key, srcValue) { + return function(object) { + if (object == null) { + return false; + } + return object[key] === srcValue && (srcValue !== undefined2 || (key in Object2(object))); + }; + } + function memoizeCapped(func) { + var result2 = memoize(func, function(key) { + if (cache.size === MAX_MEMOIZE_SIZE) { + cache.clear(); + } + return key; + }); + var cache = result2.cache; + return result2; + } + function mergeData(data, source) { + var bitmask = data[1], srcBitmask = source[1], newBitmask = bitmask | srcBitmask, isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG); + var isCombo = srcBitmask == WRAP_ARY_FLAG && bitmask == WRAP_CURRY_FLAG || srcBitmask == WRAP_ARY_FLAG && bitmask == WRAP_REARG_FLAG && data[7].length <= source[8] || srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG) && source[7].length <= source[8] && bitmask == WRAP_CURRY_FLAG; + if (!(isCommon || isCombo)) { + return data; + } + if (srcBitmask & WRAP_BIND_FLAG) { + data[2] = source[2]; + newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG; + } + var value = source[3]; + if (value) { + var partials = data[3]; + data[3] = partials ? composeArgs(partials, value, source[4]) : value; + data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4]; + } + value = source[5]; + if (value) { + partials = data[5]; + data[5] = partials ? composeArgsRight(partials, value, source[6]) : value; + data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6]; + } + value = source[7]; + if (value) { + data[7] = value; + } + if (srcBitmask & WRAP_ARY_FLAG) { + data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]); + } + if (data[9] == null) { + data[9] = source[9]; + } + data[0] = source[0]; + data[1] = newBitmask; + return data; + } + function nativeKeysIn(object) { + var result2 = []; + if (object != null) { + for (var key in Object2(object)) { + result2.push(key); + } + } + return result2; + } + function objectToString(value) { + return nativeObjectToString.call(value); + } + function overRest(func, start, transform2) { + start = nativeMax(start === undefined2 ? func.length - 1 : start, 0); + return function() { + var args = arguments, index = -1, length = nativeMax(args.length - start, 0), array = Array2(length); + while (++index < length) { + array[index] = args[start + index]; + } + index = -1; + var otherArgs = Array2(start + 1); + while (++index < start) { + otherArgs[index] = args[index]; + } + otherArgs[start] = transform2(array); + return apply(func, this, otherArgs); + }; + } + function parent(object, path) { + return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1)); + } + function reorder(array, indexes) { + var arrLength = array.length, length = nativeMin(indexes.length, arrLength), oldArray = copyArray(array); + while (length--) { + var index = indexes[length]; + array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined2; + } + return array; + } + function safeGet(object, key) { + if (key === "constructor" && typeof object[key] === "function") { + return; + } + if (key == "__proto__") { + return; + } + return object[key]; + } + var setData = shortOut(baseSetData); + var setTimeout2 = ctxSetTimeout || function(func, wait) { + return root.setTimeout(func, wait); + }; + var setToString = shortOut(baseSetToString); + function setWrapToString(wrapper, reference, bitmask) { + var source = reference + ""; + return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask))); + } + function shortOut(func) { + var count = 0, lastCalled = 0; + return function() { + var stamp = nativeNow(), remaining = HOT_SPAN - (stamp - lastCalled); + lastCalled = stamp; + if (remaining > 0) { + if (++count >= HOT_COUNT) { + return arguments[0]; + } + } else { + count = 0; + } + return func.apply(undefined2, arguments); + }; + } + function shuffleSelf(array, size2) { + var index = -1, length = array.length, lastIndex = length - 1; + size2 = size2 === undefined2 ? length : size2; + while (++index < size2) { + var rand = baseRandom(index, lastIndex), value = array[rand]; + array[rand] = array[index]; + array[index] = value; + } + array.length = size2; + return array; + } + var stringToPath = memoizeCapped(function(string) { + var result2 = []; + if (string.charCodeAt(0) === 46) { + result2.push(""); + } + string.replace(rePropName, function(match, number, quote, subString) { + result2.push(quote ? subString.replace(reEscapeChar, "$1") : number || match); + }); + return result2; + }); + function toKey(value) { + if (typeof value == "string" || isSymbol(value)) { + return value; + } + var result2 = value + ""; + return result2 == "0" && 1 / value == -INFINITY ? "-0" : result2; + } + function toSource(func) { + if (func != null) { + try { + return funcToString.call(func); + } catch (e) { + } + try { + return func + ""; + } catch (e) { + } + } + return ""; + } + function updateWrapDetails(details, bitmask) { + arrayEach(wrapFlags, function(pair) { + var value = "_." + pair[0]; + if (bitmask & pair[1] && !arrayIncludes(details, value)) { + details.push(value); + } + }); + return details.sort(); + } + function wrapperClone(wrapper) { + if (wrapper instanceof LazyWrapper) { + return wrapper.clone(); + } + var result2 = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__); + result2.__actions__ = copyArray(wrapper.__actions__); + result2.__index__ = wrapper.__index__; + result2.__values__ = wrapper.__values__; + return result2; + } + function chunk(array, size2, guard) { + if (guard ? isIterateeCall(array, size2, guard) : size2 === undefined2) { + size2 = 1; + } else { + size2 = nativeMax(toInteger(size2), 0); + } + var length = array == null ? 0 : array.length; + if (!length || size2 < 1) { + return []; + } + var index = 0, resIndex = 0, result2 = Array2(nativeCeil(length / size2)); + while (index < length) { + result2[resIndex++] = baseSlice(array, index, index += size2); + } + return result2; + } + function compact(array) { + var index = -1, length = array == null ? 0 : array.length, resIndex = 0, result2 = []; + while (++index < length) { + var value = array[index]; + if (value) { + result2[resIndex++] = value; + } + } + return result2; + } + function concat() { + var length = arguments.length; + if (!length) { + return []; + } + var args = Array2(length - 1), array = arguments[0], index = length; + while (index--) { + args[index - 1] = arguments[index]; + } + return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1)); + } + var difference = baseRest(function(array, values2) { + return isArrayLikeObject(array) ? baseDifference(array, baseFlatten(values2, 1, isArrayLikeObject, true)) : []; + }); + var differenceBy = baseRest(function(array, values2) { + var iteratee2 = last(values2); + if (isArrayLikeObject(iteratee2)) { + iteratee2 = undefined2; + } + return isArrayLikeObject(array) ? baseDifference(array, baseFlatten(values2, 1, isArrayLikeObject, true), getIteratee(iteratee2, 2)) : []; + }); + var differenceWith = baseRest(function(array, values2) { + var comparator = last(values2); + if (isArrayLikeObject(comparator)) { + comparator = undefined2; + } + return isArrayLikeObject(array) ? baseDifference(array, baseFlatten(values2, 1, isArrayLikeObject, true), undefined2, comparator) : []; + }); + function drop(array, n, guard) { + var length = array == null ? 0 : array.length; + if (!length) { + return []; + } + n = guard || n === undefined2 ? 1 : toInteger(n); + return baseSlice(array, n < 0 ? 0 : n, length); + } + function dropRight(array, n, guard) { + var length = array == null ? 0 : array.length; + if (!length) { + return []; + } + n = guard || n === undefined2 ? 1 : toInteger(n); + n = length - n; + return baseSlice(array, 0, n < 0 ? 0 : n); + } + function dropRightWhile(array, predicate) { + return array && array.length ? baseWhile(array, getIteratee(predicate, 3), true, true) : []; + } + function dropWhile(array, predicate) { + return array && array.length ? baseWhile(array, getIteratee(predicate, 3), true) : []; + } + function fill(array, value, start, end) { + var length = array == null ? 0 : array.length; + if (!length) { + return []; + } + if (start && typeof start != "number" && isIterateeCall(array, value, start)) { + start = 0; + end = length; + } + return baseFill(array, value, start, end); + } + function findIndex(array, predicate, fromIndex) { + var length = array == null ? 0 : array.length; + if (!length) { + return -1; + } + var index = fromIndex == null ? 0 : toInteger(fromIndex); + if (index < 0) { + index = nativeMax(length + index, 0); + } + return baseFindIndex(array, getIteratee(predicate, 3), index); + } + function findLastIndex(array, predicate, fromIndex) { + var length = array == null ? 0 : array.length; + if (!length) { + return -1; + } + var index = length - 1; + if (fromIndex !== undefined2) { + index = toInteger(fromIndex); + index = fromIndex < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1); + } + return baseFindIndex(array, getIteratee(predicate, 3), index, true); + } + function flatten(array) { + var length = array == null ? 0 : array.length; + return length ? baseFlatten(array, 1) : []; + } + function flattenDeep(array) { + var length = array == null ? 0 : array.length; + return length ? baseFlatten(array, INFINITY) : []; + } + function flattenDepth(array, depth) { + var length = array == null ? 0 : array.length; + if (!length) { + return []; + } + depth = depth === undefined2 ? 1 : toInteger(depth); + return baseFlatten(array, depth); + } + function fromPairs(pairs) { + var index = -1, length = pairs == null ? 0 : pairs.length, result2 = {}; + while (++index < length) { + var pair = pairs[index]; + result2[pair[0]] = pair[1]; + } + return result2; + } + function head(array) { + return array && array.length ? array[0] : undefined2; + } + function indexOf(array, value, fromIndex) { + var length = array == null ? 0 : array.length; + if (!length) { + return -1; + } + var index = fromIndex == null ? 0 : toInteger(fromIndex); + if (index < 0) { + index = nativeMax(length + index, 0); + } + return baseIndexOf(array, value, index); + } + function initial(array) { + var length = array == null ? 0 : array.length; + return length ? baseSlice(array, 0, -1) : []; + } + var intersection = baseRest(function(arrays) { + var mapped = arrayMap(arrays, castArrayLikeObject); + return mapped.length && mapped[0] === arrays[0] ? baseIntersection(mapped) : []; + }); + var intersectionBy = baseRest(function(arrays) { + var iteratee2 = last(arrays), mapped = arrayMap(arrays, castArrayLikeObject); + if (iteratee2 === last(mapped)) { + iteratee2 = undefined2; + } else { + mapped.pop(); + } + return mapped.length && mapped[0] === arrays[0] ? baseIntersection(mapped, getIteratee(iteratee2, 2)) : []; + }); + var intersectionWith = baseRest(function(arrays) { + var comparator = last(arrays), mapped = arrayMap(arrays, castArrayLikeObject); + comparator = typeof comparator == "function" ? comparator : undefined2; + if (comparator) { + mapped.pop(); + } + return mapped.length && mapped[0] === arrays[0] ? baseIntersection(mapped, undefined2, comparator) : []; + }); + function join(array, separator) { + return array == null ? "" : nativeJoin.call(array, separator); + } + function last(array) { + var length = array == null ? 0 : array.length; + return length ? array[length - 1] : undefined2; + } + function lastIndexOf(array, value, fromIndex) { + var length = array == null ? 0 : array.length; + if (!length) { + return -1; + } + var index = length; + if (fromIndex !== undefined2) { + index = toInteger(fromIndex); + index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1); + } + return value === value ? strictLastIndexOf(array, value, index) : baseFindIndex(array, baseIsNaN, index, true); + } + function nth(array, n) { + return array && array.length ? baseNth(array, toInteger(n)) : undefined2; + } + var pull = baseRest(pullAll); + function pullAll(array, values2) { + return array && array.length && values2 && values2.length ? basePullAll(array, values2) : array; + } + function pullAllBy(array, values2, iteratee2) { + return array && array.length && values2 && values2.length ? basePullAll(array, values2, getIteratee(iteratee2, 2)) : array; + } + function pullAllWith(array, values2, comparator) { + return array && array.length && values2 && values2.length ? basePullAll(array, values2, undefined2, comparator) : array; + } + var pullAt = flatRest(function(array, indexes) { + var length = array == null ? 0 : array.length, result2 = baseAt(array, indexes); + basePullAt(array, arrayMap(indexes, function(index) { + return isIndex(index, length) ? +index : index; + }).sort(compareAscending)); + return result2; + }); + function remove(array, predicate) { + var result2 = []; + if (!(array && array.length)) { + return result2; + } + var index = -1, indexes = [], length = array.length; + predicate = getIteratee(predicate, 3); + while (++index < length) { + var value = array[index]; + if (predicate(value, index, array)) { + result2.push(value); + indexes.push(index); + } + } + basePullAt(array, indexes); + return result2; + } + function reverse(array) { + return array == null ? array : nativeReverse.call(array); + } + function slice(array, start, end) { + var length = array == null ? 0 : array.length; + if (!length) { + return []; + } + if (end && typeof end != "number" && isIterateeCall(array, start, end)) { + start = 0; + end = length; + } else { + start = start == null ? 0 : toInteger(start); + end = end === undefined2 ? length : toInteger(end); + } + return baseSlice(array, start, end); + } + function sortedIndex(array, value) { + return baseSortedIndex(array, value); + } + function sortedIndexBy(array, value, iteratee2) { + return baseSortedIndexBy(array, value, getIteratee(iteratee2, 2)); + } + function sortedIndexOf(array, value) { + var length = array == null ? 0 : array.length; + if (length) { + var index = baseSortedIndex(array, value); + if (index < length && eq(array[index], value)) { + return index; + } + } + return -1; + } + function sortedLastIndex(array, value) { + return baseSortedIndex(array, value, true); + } + function sortedLastIndexBy(array, value, iteratee2) { + return baseSortedIndexBy(array, value, getIteratee(iteratee2, 2), true); + } + function sortedLastIndexOf(array, value) { + var length = array == null ? 0 : array.length; + if (length) { + var index = baseSortedIndex(array, value, true) - 1; + if (eq(array[index], value)) { + return index; + } + } + return -1; + } + function sortedUniq(array) { + return array && array.length ? baseSortedUniq(array) : []; + } + function sortedUniqBy(array, iteratee2) { + return array && array.length ? baseSortedUniq(array, getIteratee(iteratee2, 2)) : []; + } + function tail(array) { + var length = array == null ? 0 : array.length; + return length ? baseSlice(array, 1, length) : []; + } + function take(array, n, guard) { + if (!(array && array.length)) { + return []; + } + n = guard || n === undefined2 ? 1 : toInteger(n); + return baseSlice(array, 0, n < 0 ? 0 : n); + } + function takeRight(array, n, guard) { + var length = array == null ? 0 : array.length; + if (!length) { + return []; + } + n = guard || n === undefined2 ? 1 : toInteger(n); + n = length - n; + return baseSlice(array, n < 0 ? 0 : n, length); + } + function takeRightWhile(array, predicate) { + return array && array.length ? baseWhile(array, getIteratee(predicate, 3), false, true) : []; + } + function takeWhile(array, predicate) { + return array && array.length ? baseWhile(array, getIteratee(predicate, 3)) : []; + } + var union = baseRest(function(arrays) { + return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true)); + }); + var unionBy = baseRest(function(arrays) { + var iteratee2 = last(arrays); + if (isArrayLikeObject(iteratee2)) { + iteratee2 = undefined2; + } + return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), getIteratee(iteratee2, 2)); + }); + var unionWith = baseRest(function(arrays) { + var comparator = last(arrays); + comparator = typeof comparator == "function" ? comparator : undefined2; + return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), undefined2, comparator); + }); + function uniq(array) { + return array && array.length ? baseUniq(array) : []; + } + function uniqBy(array, iteratee2) { + return array && array.length ? baseUniq(array, getIteratee(iteratee2, 2)) : []; + } + function uniqWith(array, comparator) { + comparator = typeof comparator == "function" ? comparator : undefined2; + return array && array.length ? baseUniq(array, undefined2, comparator) : []; + } + function unzip(array) { + if (!(array && array.length)) { + return []; + } + var length = 0; + array = arrayFilter(array, function(group) { + if (isArrayLikeObject(group)) { + length = nativeMax(group.length, length); + return true; + } + }); + return baseTimes(length, function(index) { + return arrayMap(array, baseProperty(index)); + }); + } + function unzipWith(array, iteratee2) { + if (!(array && array.length)) { + return []; + } + var result2 = unzip(array); + if (iteratee2 == null) { + return result2; + } + return arrayMap(result2, function(group) { + return apply(iteratee2, undefined2, group); + }); + } + var without = baseRest(function(array, values2) { + return isArrayLikeObject(array) ? baseDifference(array, values2) : []; + }); + var xor = baseRest(function(arrays) { + return baseXor(arrayFilter(arrays, isArrayLikeObject)); + }); + var xorBy = baseRest(function(arrays) { + var iteratee2 = last(arrays); + if (isArrayLikeObject(iteratee2)) { + iteratee2 = undefined2; + } + return baseXor(arrayFilter(arrays, isArrayLikeObject), getIteratee(iteratee2, 2)); + }); + var xorWith = baseRest(function(arrays) { + var comparator = last(arrays); + comparator = typeof comparator == "function" ? comparator : undefined2; + return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined2, comparator); + }); + var zip = baseRest(unzip); + function zipObject(props, values2) { + return baseZipObject(props || [], values2 || [], assignValue); + } + function zipObjectDeep(props, values2) { + return baseZipObject(props || [], values2 || [], baseSet); + } + var zipWith = baseRest(function(arrays) { + var length = arrays.length, iteratee2 = length > 1 ? arrays[length - 1] : undefined2; + iteratee2 = typeof iteratee2 == "function" ? (arrays.pop(), iteratee2) : undefined2; + return unzipWith(arrays, iteratee2); + }); + function chain(value) { + var result2 = lodash(value); + result2.__chain__ = true; + return result2; + } + function tap(value, interceptor) { + interceptor(value); + return value; + } + function thru(value, interceptor) { + return interceptor(value); + } + var wrapperAt = flatRest(function(paths) { + var length = paths.length, start = length ? paths[0] : 0, value = this.__wrapped__, interceptor = function(object) { + return baseAt(object, paths); + }; + if (length > 1 || this.__actions__.length || !(value instanceof LazyWrapper) || !isIndex(start)) { + return this.thru(interceptor); + } + value = value.slice(start, +start + (length ? 1 : 0)); + value.__actions__.push({ + func: thru, + args: [interceptor], + thisArg: undefined2 + }); + return new LodashWrapper(value, this.__chain__).thru(function(array) { + if (length && !array.length) { + array.push(undefined2); + } + return array; + }); + }); + function wrapperChain() { + return chain(this); + } + function wrapperCommit() { + return new LodashWrapper(this.value(), this.__chain__); + } + function wrapperNext() { + if (this.__values__ === undefined2) { + this.__values__ = toArray(this.value()); + } + var done = this.__index__ >= this.__values__.length, value = done ? undefined2 : this.__values__[this.__index__++]; + return { done, value }; + } + function wrapperToIterator() { + return this; + } + function wrapperPlant(value) { + var result2, parent2 = this; + while (parent2 instanceof baseLodash) { + var clone2 = wrapperClone(parent2); + clone2.__index__ = 0; + clone2.__values__ = undefined2; + if (result2) { + previous.__wrapped__ = clone2; + } else { + result2 = clone2; + } + var previous = clone2; + parent2 = parent2.__wrapped__; + } + previous.__wrapped__ = value; + return result2; + } + function wrapperReverse() { + var value = this.__wrapped__; + if (value instanceof LazyWrapper) { + var wrapped = value; + if (this.__actions__.length) { + wrapped = new LazyWrapper(this); + } + wrapped = wrapped.reverse(); + wrapped.__actions__.push({ + func: thru, + args: [reverse], + thisArg: undefined2 + }); + return new LodashWrapper(wrapped, this.__chain__); + } + return this.thru(reverse); + } + function wrapperValue() { + return baseWrapperValue(this.__wrapped__, this.__actions__); + } + var countBy = createAggregator(function(result2, value, key) { + if (hasOwnProperty.call(result2, key)) { + ++result2[key]; + } else { + baseAssignValue(result2, key, 1); + } + }); + function every(collection, predicate, guard) { + var func = isArray(collection) ? arrayEvery : baseEvery; + if (guard && isIterateeCall(collection, predicate, guard)) { + predicate = undefined2; + } + return func(collection, getIteratee(predicate, 3)); + } + function filter(collection, predicate) { + var func = isArray(collection) ? arrayFilter : baseFilter; + return func(collection, getIteratee(predicate, 3)); + } + var find = createFind(findIndex); + var findLast = createFind(findLastIndex); + function flatMap(collection, iteratee2) { + return baseFlatten(map(collection, iteratee2), 1); + } + function flatMapDeep(collection, iteratee2) { + return baseFlatten(map(collection, iteratee2), INFINITY); + } + function flatMapDepth(collection, iteratee2, depth) { + depth = depth === undefined2 ? 1 : toInteger(depth); + return baseFlatten(map(collection, iteratee2), depth); + } + function forEach(collection, iteratee2) { + var func = isArray(collection) ? arrayEach : baseEach; + return func(collection, getIteratee(iteratee2, 3)); + } + function forEachRight(collection, iteratee2) { + var func = isArray(collection) ? arrayEachRight : baseEachRight; + return func(collection, getIteratee(iteratee2, 3)); + } + var groupBy = createAggregator(function(result2, value, key) { + if (hasOwnProperty.call(result2, key)) { + result2[key].push(value); + } else { + baseAssignValue(result2, key, [value]); + } + }); + function includes(collection, value, fromIndex, guard) { + collection = isArrayLike(collection) ? collection : values(collection); + fromIndex = fromIndex && !guard ? toInteger(fromIndex) : 0; + var length = collection.length; + if (fromIndex < 0) { + fromIndex = nativeMax(length + fromIndex, 0); + } + return isString(collection) ? fromIndex <= length && collection.indexOf(value, fromIndex) > -1 : !!length && baseIndexOf(collection, value, fromIndex) > -1; + } + var invokeMap = baseRest(function(collection, path, args) { + var index = -1, isFunc = typeof path == "function", result2 = isArrayLike(collection) ? Array2(collection.length) : []; + baseEach(collection, function(value) { + result2[++index] = isFunc ? apply(path, value, args) : baseInvoke(value, path, args); + }); + return result2; + }); + var keyBy = createAggregator(function(result2, value, key) { + baseAssignValue(result2, key, value); + }); + function map(collection, iteratee2) { + var func = isArray(collection) ? arrayMap : baseMap; + return func(collection, getIteratee(iteratee2, 3)); + } + function orderBy(collection, iteratees, orders, guard) { + if (collection == null) { + return []; + } + if (!isArray(iteratees)) { + iteratees = iteratees == null ? [] : [iteratees]; + } + orders = guard ? undefined2 : orders; + if (!isArray(orders)) { + orders = orders == null ? [] : [orders]; + } + return baseOrderBy(collection, iteratees, orders); + } + var partition = createAggregator(function(result2, value, key) { + result2[key ? 0 : 1].push(value); + }, function() { + return [[], []]; + }); + function reduce(collection, iteratee2, accumulator) { + var func = isArray(collection) ? arrayReduce : baseReduce, initAccum = arguments.length < 3; + return func(collection, getIteratee(iteratee2, 4), accumulator, initAccum, baseEach); + } + function reduceRight(collection, iteratee2, accumulator) { + var func = isArray(collection) ? arrayReduceRight : baseReduce, initAccum = arguments.length < 3; + return func(collection, getIteratee(iteratee2, 4), accumulator, initAccum, baseEachRight); + } + function reject(collection, predicate) { + var func = isArray(collection) ? arrayFilter : baseFilter; + return func(collection, negate(getIteratee(predicate, 3))); + } + function sample(collection) { + var func = isArray(collection) ? arraySample : baseSample; + return func(collection); + } + function sampleSize(collection, n, guard) { + if (guard ? isIterateeCall(collection, n, guard) : n === undefined2) { + n = 1; + } else { + n = toInteger(n); + } + var func = isArray(collection) ? arraySampleSize : baseSampleSize; + return func(collection, n); + } + function shuffle(collection) { + var func = isArray(collection) ? arrayShuffle : baseShuffle; + return func(collection); + } + function size(collection) { + if (collection == null) { + return 0; + } + if (isArrayLike(collection)) { + return isString(collection) ? stringSize(collection) : collection.length; + } + var tag = getTag(collection); + if (tag == mapTag || tag == setTag) { + return collection.size; + } + return baseKeys(collection).length; + } + function some(collection, predicate, guard) { + var func = isArray(collection) ? arraySome : baseSome; + if (guard && isIterateeCall(collection, predicate, guard)) { + predicate = undefined2; + } + return func(collection, getIteratee(predicate, 3)); + } + var sortBy = baseRest(function(collection, iteratees) { + if (collection == null) { + return []; + } + var length = iteratees.length; + if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) { + iteratees = []; + } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) { + iteratees = [iteratees[0]]; + } + return baseOrderBy(collection, baseFlatten(iteratees, 1), []); + }); + var now = ctxNow || function() { + return root.Date.now(); + }; + function after(n, func) { + if (typeof func != "function") { + throw new TypeError2(FUNC_ERROR_TEXT); + } + n = toInteger(n); + return function() { + if (--n < 1) { + return func.apply(this, arguments); + } + }; + } + function ary(func, n, guard) { + n = guard ? undefined2 : n; + n = func && n == null ? func.length : n; + return createWrap(func, WRAP_ARY_FLAG, undefined2, undefined2, undefined2, undefined2, n); + } + function before(n, func) { + var result2; + if (typeof func != "function") { + throw new TypeError2(FUNC_ERROR_TEXT); + } + n = toInteger(n); + return function() { + if (--n > 0) { + result2 = func.apply(this, arguments); + } + if (n <= 1) { + func = undefined2; + } + return result2; + }; + } + var bind = baseRest(function(func, thisArg, partials) { + var bitmask = WRAP_BIND_FLAG; + if (partials.length) { + var holders = replaceHolders(partials, getHolder(bind)); + bitmask |= WRAP_PARTIAL_FLAG; + } + return createWrap(func, bitmask, thisArg, partials, holders); + }); + var bindKey = baseRest(function(object, key, partials) { + var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG; + if (partials.length) { + var holders = replaceHolders(partials, getHolder(bindKey)); + bitmask |= WRAP_PARTIAL_FLAG; + } + return createWrap(key, bitmask, object, partials, holders); + }); + function curry(func, arity, guard) { + arity = guard ? undefined2 : arity; + var result2 = createWrap(func, WRAP_CURRY_FLAG, undefined2, undefined2, undefined2, undefined2, undefined2, arity); + result2.placeholder = curry.placeholder; + return result2; + } + function curryRight(func, arity, guard) { + arity = guard ? undefined2 : arity; + var result2 = createWrap(func, WRAP_CURRY_RIGHT_FLAG, undefined2, undefined2, undefined2, undefined2, undefined2, arity); + result2.placeholder = curryRight.placeholder; + return result2; + } + function debounce(func, wait, options) { + var lastArgs, lastThis, maxWait, result2, timerId, lastCallTime, lastInvokeTime = 0, leading = false, maxing = false, trailing = true; + if (typeof func != "function") { + throw new TypeError2(FUNC_ERROR_TEXT); + } + wait = toNumber(wait) || 0; + if (isObject(options)) { + leading = !!options.leading; + maxing = "maxWait" in options; + maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait; + trailing = "trailing" in options ? !!options.trailing : trailing; + } + function invokeFunc(time) { + var args = lastArgs, thisArg = lastThis; + lastArgs = lastThis = undefined2; + lastInvokeTime = time; + result2 = func.apply(thisArg, args); + return result2; + } + function leadingEdge(time) { + lastInvokeTime = time; + timerId = setTimeout2(timerExpired, wait); + return leading ? invokeFunc(time) : result2; + } + function remainingWait(time) { + var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime, timeWaiting = wait - timeSinceLastCall; + return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting; + } + function shouldInvoke(time) { + var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime; + return lastCallTime === undefined2 || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait; + } + function timerExpired() { + var time = now(); + if (shouldInvoke(time)) { + return trailingEdge(time); + } + timerId = setTimeout2(timerExpired, remainingWait(time)); + } + function trailingEdge(time) { + timerId = undefined2; + if (trailing && lastArgs) { + return invokeFunc(time); + } + lastArgs = lastThis = undefined2; + return result2; + } + function cancel() { + if (timerId !== undefined2) { + clearTimeout2(timerId); + } + lastInvokeTime = 0; + lastArgs = lastCallTime = lastThis = timerId = undefined2; + } + function flush() { + return timerId === undefined2 ? result2 : trailingEdge(now()); + } + function debounced() { + var time = now(), isInvoking = shouldInvoke(time); + lastArgs = arguments; + lastThis = this; + lastCallTime = time; + if (isInvoking) { + if (timerId === undefined2) { + return leadingEdge(lastCallTime); + } + if (maxing) { + clearTimeout2(timerId); + timerId = setTimeout2(timerExpired, wait); + return invokeFunc(lastCallTime); + } + } + if (timerId === undefined2) { + timerId = setTimeout2(timerExpired, wait); + } + return result2; + } + debounced.cancel = cancel; + debounced.flush = flush; + return debounced; + } + var defer = baseRest(function(func, args) { + return baseDelay(func, 1, args); + }); + var delay = baseRest(function(func, wait, args) { + return baseDelay(func, toNumber(wait) || 0, args); + }); + function flip(func) { + return createWrap(func, WRAP_FLIP_FLAG); + } + function memoize(func, resolver) { + if (typeof func != "function" || resolver != null && typeof resolver != "function") { + throw new TypeError2(FUNC_ERROR_TEXT); + } + var memoized = function() { + var args = arguments, key = resolver ? resolver.apply(this, args) : args[0], cache = memoized.cache; + if (cache.has(key)) { + return cache.get(key); + } + var result2 = func.apply(this, args); + memoized.cache = cache.set(key, result2) || cache; + return result2; + }; + memoized.cache = new (memoize.Cache || MapCache); + return memoized; + } + memoize.Cache = MapCache; + function negate(predicate) { + if (typeof predicate != "function") { + throw new TypeError2(FUNC_ERROR_TEXT); + } + return function() { + var args = arguments; + switch (args.length) { + case 0: + return !predicate.call(this); + case 1: + return !predicate.call(this, args[0]); + case 2: + return !predicate.call(this, args[0], args[1]); + case 3: + return !predicate.call(this, args[0], args[1], args[2]); + } + return !predicate.apply(this, args); + }; + } + function once(func) { + return before(2, func); + } + var overArgs = castRest(function(func, transforms) { + transforms = transforms.length == 1 && isArray(transforms[0]) ? arrayMap(transforms[0], baseUnary(getIteratee())) : arrayMap(baseFlatten(transforms, 1), baseUnary(getIteratee())); + var funcsLength = transforms.length; + return baseRest(function(args) { + var index = -1, length = nativeMin(args.length, funcsLength); + while (++index < length) { + args[index] = transforms[index].call(this, args[index]); + } + return apply(func, this, args); + }); + }); + var partial = baseRest(function(func, partials) { + var holders = replaceHolders(partials, getHolder(partial)); + return createWrap(func, WRAP_PARTIAL_FLAG, undefined2, partials, holders); + }); + var partialRight = baseRest(function(func, partials) { + var holders = replaceHolders(partials, getHolder(partialRight)); + return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined2, partials, holders); + }); + var rearg = flatRest(function(func, indexes) { + return createWrap(func, WRAP_REARG_FLAG, undefined2, undefined2, undefined2, indexes); + }); + function rest(func, start) { + if (typeof func != "function") { + throw new TypeError2(FUNC_ERROR_TEXT); + } + start = start === undefined2 ? start : toInteger(start); + return baseRest(func, start); + } + function spread(func, start) { + if (typeof func != "function") { + throw new TypeError2(FUNC_ERROR_TEXT); + } + start = start == null ? 0 : nativeMax(toInteger(start), 0); + return baseRest(function(args) { + var array = args[start], otherArgs = castSlice(args, 0, start); + if (array) { + arrayPush(otherArgs, array); + } + return apply(func, this, otherArgs); + }); + } + function throttle(func, wait, options) { + var leading = true, trailing = true; + if (typeof func != "function") { + throw new TypeError2(FUNC_ERROR_TEXT); + } + if (isObject(options)) { + leading = "leading" in options ? !!options.leading : leading; + trailing = "trailing" in options ? !!options.trailing : trailing; + } + return debounce(func, wait, { + leading, + maxWait: wait, + trailing + }); + } + function unary(func) { + return ary(func, 1); + } + function wrap(value, wrapper) { + return partial(castFunction(wrapper), value); + } + function castArray() { + if (!arguments.length) { + return []; + } + var value = arguments[0]; + return isArray(value) ? value : [value]; + } + function clone(value) { + return baseClone(value, CLONE_SYMBOLS_FLAG); + } + function cloneWith(value, customizer) { + customizer = typeof customizer == "function" ? customizer : undefined2; + return baseClone(value, CLONE_SYMBOLS_FLAG, customizer); + } + function cloneDeep(value) { + return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG); + } + function cloneDeepWith(value, customizer) { + customizer = typeof customizer == "function" ? customizer : undefined2; + return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer); + } + function conformsTo(object, source) { + return source == null || baseConformsTo(object, source, keys(source)); + } + function eq(value, other) { + return value === other || value !== value && other !== other; + } + var gt = createRelationalOperation(baseGt); + var gte = createRelationalOperation(function(value, other) { + return value >= other; + }); + var isArguments = baseIsArguments(function() { + return arguments; + }()) ? baseIsArguments : function(value) { + return isObjectLike(value) && hasOwnProperty.call(value, "callee") && !propertyIsEnumerable.call(value, "callee"); + }; + var isArray = Array2.isArray; + var isArrayBuffer = nodeIsArrayBuffer ? baseUnary(nodeIsArrayBuffer) : baseIsArrayBuffer; + function isArrayLike(value) { + return value != null && isLength(value.length) && !isFunction(value); + } + function isArrayLikeObject(value) { + return isObjectLike(value) && isArrayLike(value); + } + function isBoolean(value) { + return value === true || value === false || isObjectLike(value) && baseGetTag(value) == boolTag; + } + var isBuffer = nativeIsBuffer || stubFalse; + var isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate; + function isElement(value) { + return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value); + } + function isEmpty(value) { + if (value == null) { + return true; + } + if (isArrayLike(value) && (isArray(value) || typeof value == "string" || typeof value.splice == "function" || isBuffer(value) || isTypedArray(value) || isArguments(value))) { + return !value.length; + } + var tag = getTag(value); + if (tag == mapTag || tag == setTag) { + return !value.size; + } + if (isPrototype(value)) { + return !baseKeys(value).length; + } + for (var key in value) { + if (hasOwnProperty.call(value, key)) { + return false; + } + } + return true; + } + function isEqual(value, other) { + return baseIsEqual(value, other); + } + function isEqualWith(value, other, customizer) { + customizer = typeof customizer == "function" ? customizer : undefined2; + var result2 = customizer ? customizer(value, other) : undefined2; + return result2 === undefined2 ? baseIsEqual(value, other, undefined2, customizer) : !!result2; + } + function isError(value) { + if (!isObjectLike(value)) { + return false; + } + var tag = baseGetTag(value); + return tag == errorTag || tag == domExcTag || typeof value.message == "string" && typeof value.name == "string" && !isPlainObject(value); + } + function isFinite2(value) { + return typeof value == "number" && nativeIsFinite(value); + } + function isFunction(value) { + if (!isObject(value)) { + return false; + } + var tag = baseGetTag(value); + return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; + } + function isInteger(value) { + return typeof value == "number" && value == toInteger(value); + } + function isLength(value) { + return typeof value == "number" && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; + } + function isObject(value) { + var type = typeof value; + return value != null && (type == "object" || type == "function"); + } + function isObjectLike(value) { + return value != null && typeof value == "object"; + } + var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap; + function isMatch(object, source) { + return object === source || baseIsMatch(object, source, getMatchData(source)); + } + function isMatchWith(object, source, customizer) { + customizer = typeof customizer == "function" ? customizer : undefined2; + return baseIsMatch(object, source, getMatchData(source), customizer); + } + function isNaN2(value) { + return isNumber(value) && value != +value; + } + function isNative(value) { + if (isMaskable(value)) { + throw new Error2(CORE_ERROR_TEXT); + } + return baseIsNative(value); + } + function isNull(value) { + return value === null; + } + function isNil(value) { + return value == null; + } + function isNumber(value) { + return typeof value == "number" || isObjectLike(value) && baseGetTag(value) == numberTag; + } + function isPlainObject(value) { + if (!isObjectLike(value) || baseGetTag(value) != objectTag) { + return false; + } + var proto = getPrototype(value); + if (proto === null) { + return true; + } + var Ctor = hasOwnProperty.call(proto, "constructor") && proto.constructor; + return typeof Ctor == "function" && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString; + } + var isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp; + function isSafeInteger(value) { + return isInteger(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER; + } + var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet; + function isString(value) { + return typeof value == "string" || !isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag; + } + function isSymbol(value) { + return typeof value == "symbol" || isObjectLike(value) && baseGetTag(value) == symbolTag; + } + var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray; + function isUndefined(value) { + return value === undefined2; + } + function isWeakMap(value) { + return isObjectLike(value) && getTag(value) == weakMapTag; + } + function isWeakSet(value) { + return isObjectLike(value) && baseGetTag(value) == weakSetTag; + } + var lt = createRelationalOperation(baseLt); + var lte = createRelationalOperation(function(value, other) { + return value <= other; + }); + function toArray(value) { + if (!value) { + return []; + } + if (isArrayLike(value)) { + return isString(value) ? stringToArray(value) : copyArray(value); + } + if (symIterator && value[symIterator]) { + return iteratorToArray(value[symIterator]()); + } + var tag = getTag(value), func = tag == mapTag ? mapToArray : tag == setTag ? setToArray : values; + return func(value); + } + function toFinite(value) { + if (!value) { + return value === 0 ? value : 0; + } + value = toNumber(value); + if (value === INFINITY || value === -INFINITY) { + var sign = value < 0 ? -1 : 1; + return sign * MAX_INTEGER; + } + return value === value ? value : 0; + } + function toInteger(value) { + var result2 = toFinite(value), remainder = result2 % 1; + return result2 === result2 ? remainder ? result2 - remainder : result2 : 0; + } + function toLength(value) { + return value ? baseClamp(toInteger(value), 0, MAX_ARRAY_LENGTH) : 0; + } + function toNumber(value) { + if (typeof value == "number") { + return value; + } + if (isSymbol(value)) { + return NAN; + } + if (isObject(value)) { + var other = typeof value.valueOf == "function" ? value.valueOf() : value; + value = isObject(other) ? other + "" : other; + } + if (typeof value != "string") { + return value === 0 ? value : +value; + } + value = baseTrim(value); + var isBinary = reIsBinary.test(value); + return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value; + } + function toPlainObject(value) { + return copyObject(value, keysIn(value)); + } + function toSafeInteger(value) { + return value ? baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER) : value === 0 ? value : 0; + } + function toString(value) { + return value == null ? "" : baseToString(value); + } + var assign = createAssigner(function(object, source) { + if (isPrototype(source) || isArrayLike(source)) { + copyObject(source, keys(source), object); + return; + } + for (var key in source) { + if (hasOwnProperty.call(source, key)) { + assignValue(object, key, source[key]); + } + } + }); + var assignIn = createAssigner(function(object, source) { + copyObject(source, keysIn(source), object); + }); + var assignInWith = createAssigner(function(object, source, srcIndex, customizer) { + copyObject(source, keysIn(source), object, customizer); + }); + var assignWith = createAssigner(function(object, source, srcIndex, customizer) { + copyObject(source, keys(source), object, customizer); + }); + var at = flatRest(baseAt); + function create(prototype, properties) { + var result2 = baseCreate(prototype); + return properties == null ? result2 : baseAssign(result2, properties); + } + var defaults = baseRest(function(object, sources) { + object = Object2(object); + var index = -1; + var length = sources.length; + var guard = length > 2 ? sources[2] : undefined2; + if (guard && isIterateeCall(sources[0], sources[1], guard)) { + length = 1; + } + while (++index < length) { + var source = sources[index]; + var props = keysIn(source); + var propsIndex = -1; + var propsLength = props.length; + while (++propsIndex < propsLength) { + var key = props[propsIndex]; + var value = object[key]; + if (value === undefined2 || eq(value, objectProto[key]) && !hasOwnProperty.call(object, key)) { + object[key] = source[key]; + } + } + } + return object; + }); + var defaultsDeep = baseRest(function(args) { + args.push(undefined2, customDefaultsMerge); + return apply(mergeWith, undefined2, args); + }); + function findKey(object, predicate) { + return baseFindKey(object, getIteratee(predicate, 3), baseForOwn); + } + function findLastKey(object, predicate) { + return baseFindKey(object, getIteratee(predicate, 3), baseForOwnRight); + } + function forIn(object, iteratee2) { + return object == null ? object : baseFor(object, getIteratee(iteratee2, 3), keysIn); + } + function forInRight(object, iteratee2) { + return object == null ? object : baseForRight(object, getIteratee(iteratee2, 3), keysIn); + } + function forOwn(object, iteratee2) { + return object && baseForOwn(object, getIteratee(iteratee2, 3)); + } + function forOwnRight(object, iteratee2) { + return object && baseForOwnRight(object, getIteratee(iteratee2, 3)); + } + function functions(object) { + return object == null ? [] : baseFunctions(object, keys(object)); + } + function functionsIn(object) { + return object == null ? [] : baseFunctions(object, keysIn(object)); + } + function get(object, path, defaultValue) { + var result2 = object == null ? undefined2 : baseGet(object, path); + return result2 === undefined2 ? defaultValue : result2; + } + function has(object, path) { + return object != null && hasPath(object, path, baseHas); + } + function hasIn(object, path) { + return object != null && hasPath(object, path, baseHasIn); + } + var invert = createInverter(function(result2, value, key) { + if (value != null && typeof value.toString != "function") { + value = nativeObjectToString.call(value); + } + result2[value] = key; + }, constant(identity)); + var invertBy = createInverter(function(result2, value, key) { + if (value != null && typeof value.toString != "function") { + value = nativeObjectToString.call(value); + } + if (hasOwnProperty.call(result2, value)) { + result2[value].push(key); + } else { + result2[value] = [key]; + } + }, getIteratee); + var invoke = baseRest(baseInvoke); + function keys(object) { + return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object); + } + function keysIn(object) { + return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object); + } + function mapKeys(object, iteratee2) { + var result2 = {}; + iteratee2 = getIteratee(iteratee2, 3); + baseForOwn(object, function(value, key, object2) { + baseAssignValue(result2, iteratee2(value, key, object2), value); + }); + return result2; + } + function mapValues(object, iteratee2) { + var result2 = {}; + iteratee2 = getIteratee(iteratee2, 3); + baseForOwn(object, function(value, key, object2) { + baseAssignValue(result2, key, iteratee2(value, key, object2)); + }); + return result2; + } + var merge = createAssigner(function(object, source, srcIndex) { + baseMerge(object, source, srcIndex); + }); + var mergeWith = createAssigner(function(object, source, srcIndex, customizer) { + baseMerge(object, source, srcIndex, customizer); + }); + var omit = flatRest(function(object, paths) { + var result2 = {}; + if (object == null) { + return result2; + } + var isDeep = false; + paths = arrayMap(paths, function(path) { + path = castPath(path, object); + isDeep || (isDeep = path.length > 1); + return path; + }); + copyObject(object, getAllKeysIn(object), result2); + if (isDeep) { + result2 = baseClone(result2, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone); + } + var length = paths.length; + while (length--) { + baseUnset(result2, paths[length]); + } + return result2; + }); + function omitBy(object, predicate) { + return pickBy(object, negate(getIteratee(predicate))); + } + var pick = flatRest(function(object, paths) { + return object == null ? {} : basePick(object, paths); + }); + function pickBy(object, predicate) { + if (object == null) { + return {}; + } + var props = arrayMap(getAllKeysIn(object), function(prop) { + return [prop]; + }); + predicate = getIteratee(predicate); + return basePickBy(object, props, function(value, path) { + return predicate(value, path[0]); + }); + } + function result(object, path, defaultValue) { + path = castPath(path, object); + var index = -1, length = path.length; + if (!length) { + length = 1; + object = undefined2; + } + while (++index < length) { + var value = object == null ? undefined2 : object[toKey(path[index])]; + if (value === undefined2) { + index = length; + value = defaultValue; + } + object = isFunction(value) ? value.call(object) : value; + } + return object; + } + function set(object, path, value) { + return object == null ? object : baseSet(object, path, value); + } + function setWith(object, path, value, customizer) { + customizer = typeof customizer == "function" ? customizer : undefined2; + return object == null ? object : baseSet(object, path, value, customizer); + } + var toPairs = createToPairs(keys); + var toPairsIn = createToPairs(keysIn); + function transform(object, iteratee2, accumulator) { + var isArr = isArray(object), isArrLike = isArr || isBuffer(object) || isTypedArray(object); + iteratee2 = getIteratee(iteratee2, 4); + if (accumulator == null) { + var Ctor = object && object.constructor; + if (isArrLike) { + accumulator = isArr ? new Ctor : []; + } else if (isObject(object)) { + accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {}; + } else { + accumulator = {}; + } + } + (isArrLike ? arrayEach : baseForOwn)(object, function(value, index, object2) { + return iteratee2(accumulator, value, index, object2); + }); + return accumulator; + } + function unset(object, path) { + return object == null ? true : baseUnset(object, path); + } + function update(object, path, updater) { + return object == null ? object : baseUpdate(object, path, castFunction(updater)); + } + function updateWith(object, path, updater, customizer) { + customizer = typeof customizer == "function" ? customizer : undefined2; + return object == null ? object : baseUpdate(object, path, castFunction(updater), customizer); + } + function values(object) { + return object == null ? [] : baseValues(object, keys(object)); + } + function valuesIn(object) { + return object == null ? [] : baseValues(object, keysIn(object)); + } + function clamp(number, lower, upper) { + if (upper === undefined2) { + upper = lower; + lower = undefined2; + } + if (upper !== undefined2) { + upper = toNumber(upper); + upper = upper === upper ? upper : 0; + } + if (lower !== undefined2) { + lower = toNumber(lower); + lower = lower === lower ? lower : 0; + } + return baseClamp(toNumber(number), lower, upper); + } + function inRange(number, start, end) { + start = toFinite(start); + if (end === undefined2) { + end = start; + start = 0; + } else { + end = toFinite(end); + } + number = toNumber(number); + return baseInRange(number, start, end); + } + function random(lower, upper, floating) { + if (floating && typeof floating != "boolean" && isIterateeCall(lower, upper, floating)) { + upper = floating = undefined2; + } + if (floating === undefined2) { + if (typeof upper == "boolean") { + floating = upper; + upper = undefined2; + } else if (typeof lower == "boolean") { + floating = lower; + lower = undefined2; + } + } + if (lower === undefined2 && upper === undefined2) { + lower = 0; + upper = 1; + } else { + lower = toFinite(lower); + if (upper === undefined2) { + upper = lower; + lower = 0; + } else { + upper = toFinite(upper); + } + } + if (lower > upper) { + var temp = lower; + lower = upper; + upper = temp; + } + if (floating || lower % 1 || upper % 1) { + var rand = nativeRandom(); + return nativeMin(lower + rand * (upper - lower + freeParseFloat("1e-" + ((rand + "").length - 1))), upper); + } + return baseRandom(lower, upper); + } + var camelCase = createCompounder(function(result2, word, index) { + word = word.toLowerCase(); + return result2 + (index ? capitalize(word) : word); + }); + function capitalize(string) { + return upperFirst(toString(string).toLowerCase()); + } + function deburr(string) { + string = toString(string); + return string && string.replace(reLatin, deburrLetter).replace(reComboMark, ""); + } + function endsWith(string, target, position) { + string = toString(string); + target = baseToString(target); + var length = string.length; + position = position === undefined2 ? length : baseClamp(toInteger(position), 0, length); + var end = position; + position -= target.length; + return position >= 0 && string.slice(position, end) == target; + } + function escape(string) { + string = toString(string); + return string && reHasUnescapedHtml.test(string) ? string.replace(reUnescapedHtml, escapeHtmlChar) : string; + } + function escapeRegExp(string) { + string = toString(string); + return string && reHasRegExpChar.test(string) ? string.replace(reRegExpChar, "\\$&") : string; + } + var kebabCase = createCompounder(function(result2, word, index) { + return result2 + (index ? "-" : "") + word.toLowerCase(); + }); + var lowerCase = createCompounder(function(result2, word, index) { + return result2 + (index ? " " : "") + word.toLowerCase(); + }); + var lowerFirst = createCaseFirst("toLowerCase"); + function pad(string, length, chars) { + string = toString(string); + length = toInteger(length); + var strLength = length ? stringSize(string) : 0; + if (!length || strLength >= length) { + return string; + } + var mid = (length - strLength) / 2; + return createPadding(nativeFloor(mid), chars) + string + createPadding(nativeCeil(mid), chars); + } + function padEnd(string, length, chars) { + string = toString(string); + length = toInteger(length); + var strLength = length ? stringSize(string) : 0; + return length && strLength < length ? string + createPadding(length - strLength, chars) : string; + } + function padStart(string, length, chars) { + string = toString(string); + length = toInteger(length); + var strLength = length ? stringSize(string) : 0; + return length && strLength < length ? createPadding(length - strLength, chars) + string : string; + } + function parseInt2(string, radix, guard) { + if (guard || radix == null) { + radix = 0; + } else if (radix) { + radix = +radix; + } + return nativeParseInt(toString(string).replace(reTrimStart, ""), radix || 0); + } + function repeat(string, n, guard) { + if (guard ? isIterateeCall(string, n, guard) : n === undefined2) { + n = 1; + } else { + n = toInteger(n); + } + return baseRepeat(toString(string), n); + } + function replace() { + var args = arguments, string = toString(args[0]); + return args.length < 3 ? string : string.replace(args[1], args[2]); + } + var snakeCase = createCompounder(function(result2, word, index) { + return result2 + (index ? "_" : "") + word.toLowerCase(); + }); + function split(string, separator, limit) { + if (limit && typeof limit != "number" && isIterateeCall(string, separator, limit)) { + separator = limit = undefined2; + } + limit = limit === undefined2 ? MAX_ARRAY_LENGTH : limit >>> 0; + if (!limit) { + return []; + } + string = toString(string); + if (string && (typeof separator == "string" || separator != null && !isRegExp(separator))) { + separator = baseToString(separator); + if (!separator && hasUnicode(string)) { + return castSlice(stringToArray(string), 0, limit); + } + } + return string.split(separator, limit); + } + var startCase = createCompounder(function(result2, word, index) { + return result2 + (index ? " " : "") + upperFirst(word); + }); + function startsWith(string, target, position) { + string = toString(string); + position = position == null ? 0 : baseClamp(toInteger(position), 0, string.length); + target = baseToString(target); + return string.slice(position, position + target.length) == target; + } + function template(string, options, guard) { + var settings = lodash.templateSettings; + if (guard && isIterateeCall(string, options, guard)) { + options = undefined2; + } + string = toString(string); + options = assignInWith({}, options, settings, customDefaultsAssignIn); + var imports = assignInWith({}, options.imports, settings.imports, customDefaultsAssignIn), importsKeys = keys(imports), importsValues = baseValues(imports, importsKeys); + var isEscaping, isEvaluating, index = 0, interpolate = options.interpolate || reNoMatch, source = "__p += '"; + var reDelimiters = RegExp2((options.escape || reNoMatch).source + "|" + interpolate.source + "|" + (interpolate === reInterpolate ? reEsTemplate : reNoMatch).source + "|" + (options.evaluate || reNoMatch).source + "|$", "g"); + var sourceURL = "//# sourceURL=" + (hasOwnProperty.call(options, "sourceURL") ? (options.sourceURL + "").replace(/\s/g, " ") : "lodash.templateSources[" + ++templateCounter + "]") + "\n"; + string.replace(reDelimiters, function(match, escapeValue, interpolateValue, esTemplateValue, evaluateValue, offset) { + interpolateValue || (interpolateValue = esTemplateValue); + source += string.slice(index, offset).replace(reUnescapedString, escapeStringChar); + if (escapeValue) { + isEscaping = true; + source += "' +\n__e(" + escapeValue + ") +\n'"; + } + if (evaluateValue) { + isEvaluating = true; + source += "';\n" + evaluateValue + ";\n__p += '"; + } + if (interpolateValue) { + source += "' +\n((__t = (" + interpolateValue + ")) == null ? '' : __t) +\n'"; + } + index = offset + match.length; + return match; + }); + source += "';\n"; + var variable = hasOwnProperty.call(options, "variable") && options.variable; + if (!variable) { + source = "with (obj) {\n" + source + "\n}\n"; + } else if (reForbiddenIdentifierChars.test(variable)) { + throw new Error2(INVALID_TEMPL_VAR_ERROR_TEXT); + } + source = (isEvaluating ? source.replace(reEmptyStringLeading, "") : source).replace(reEmptyStringMiddle, "$1").replace(reEmptyStringTrailing, "$1;"); + source = "function(" + (variable || "obj") + ") {\n" + (variable ? "" : "obj || (obj = {});\n") + "var __t, __p = ''" + (isEscaping ? ", __e = _.escape" : "") + (isEvaluating ? ", __j = Array.prototype.join;\n" + "function print() { __p += __j.call(arguments, '') }\n" : ";\n") + source + "return __p\n}"; + var result2 = attempt(function() { + return Function2(importsKeys, sourceURL + "return " + source).apply(undefined2, importsValues); + }); + result2.source = source; + if (isError(result2)) { + throw result2; + } + return result2; + } + function toLower(value) { + return toString(value).toLowerCase(); + } + function toUpper(value) { + return toString(value).toUpperCase(); + } + function trim(string, chars, guard) { + string = toString(string); + if (string && (guard || chars === undefined2)) { + return baseTrim(string); + } + if (!string || !(chars = baseToString(chars))) { + return string; + } + var strSymbols = stringToArray(string), chrSymbols = stringToArray(chars), start = charsStartIndex(strSymbols, chrSymbols), end = charsEndIndex(strSymbols, chrSymbols) + 1; + return castSlice(strSymbols, start, end).join(""); + } + function trimEnd(string, chars, guard) { + string = toString(string); + if (string && (guard || chars === undefined2)) { + return string.slice(0, trimmedEndIndex(string) + 1); + } + if (!string || !(chars = baseToString(chars))) { + return string; + } + var strSymbols = stringToArray(string), end = charsEndIndex(strSymbols, stringToArray(chars)) + 1; + return castSlice(strSymbols, 0, end).join(""); + } + function trimStart(string, chars, guard) { + string = toString(string); + if (string && (guard || chars === undefined2)) { + return string.replace(reTrimStart, ""); + } + if (!string || !(chars = baseToString(chars))) { + return string; + } + var strSymbols = stringToArray(string), start = charsStartIndex(strSymbols, stringToArray(chars)); + return castSlice(strSymbols, start).join(""); + } + function truncate(string, options) { + var length = DEFAULT_TRUNC_LENGTH, omission = DEFAULT_TRUNC_OMISSION; + if (isObject(options)) { + var separator = "separator" in options ? options.separator : separator; + length = "length" in options ? toInteger(options.length) : length; + omission = "omission" in options ? baseToString(options.omission) : omission; + } + string = toString(string); + var strLength = string.length; + if (hasUnicode(string)) { + var strSymbols = stringToArray(string); + strLength = strSymbols.length; + } + if (length >= strLength) { + return string; + } + var end = length - stringSize(omission); + if (end < 1) { + return omission; + } + var result2 = strSymbols ? castSlice(strSymbols, 0, end).join("") : string.slice(0, end); + if (separator === undefined2) { + return result2 + omission; + } + if (strSymbols) { + end += result2.length - end; + } + if (isRegExp(separator)) { + if (string.slice(end).search(separator)) { + var match, substring = result2; + if (!separator.global) { + separator = RegExp2(separator.source, toString(reFlags.exec(separator)) + "g"); + } + separator.lastIndex = 0; + while (match = separator.exec(substring)) { + var newEnd = match.index; + } + result2 = result2.slice(0, newEnd === undefined2 ? end : newEnd); + } + } else if (string.indexOf(baseToString(separator), end) != end) { + var index = result2.lastIndexOf(separator); + if (index > -1) { + result2 = result2.slice(0, index); + } + } + return result2 + omission; + } + function unescape2(string) { + string = toString(string); + return string && reHasEscapedHtml.test(string) ? string.replace(reEscapedHtml, unescapeHtmlChar) : string; + } + var upperCase = createCompounder(function(result2, word, index) { + return result2 + (index ? " " : "") + word.toUpperCase(); + }); + var upperFirst = createCaseFirst("toUpperCase"); + function words(string, pattern, guard) { + string = toString(string); + pattern = guard ? undefined2 : pattern; + if (pattern === undefined2) { + return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string); + } + return string.match(pattern) || []; + } + var attempt = baseRest(function(func, args) { + try { + return apply(func, undefined2, args); + } catch (e) { + return isError(e) ? e : new Error2(e); + } + }); + var bindAll = flatRest(function(object, methodNames) { + arrayEach(methodNames, function(key) { + key = toKey(key); + baseAssignValue(object, key, bind(object[key], object)); + }); + return object; + }); + function cond(pairs) { + var length = pairs == null ? 0 : pairs.length, toIteratee = getIteratee(); + pairs = !length ? [] : arrayMap(pairs, function(pair) { + if (typeof pair[1] != "function") { + throw new TypeError2(FUNC_ERROR_TEXT); + } + return [toIteratee(pair[0]), pair[1]]; + }); + return baseRest(function(args) { + var index = -1; + while (++index < length) { + var pair = pairs[index]; + if (apply(pair[0], this, args)) { + return apply(pair[1], this, args); + } + } + }); + } + function conforms(source) { + return baseConforms(baseClone(source, CLONE_DEEP_FLAG)); + } + function constant(value) { + return function() { + return value; + }; + } + function defaultTo(value, defaultValue) { + return value == null || value !== value ? defaultValue : value; + } + var flow = createFlow(); + var flowRight = createFlow(true); + function identity(value) { + return value; + } + function iteratee(func) { + return baseIteratee(typeof func == "function" ? func : baseClone(func, CLONE_DEEP_FLAG)); + } + function matches(source) { + return baseMatches(baseClone(source, CLONE_DEEP_FLAG)); + } + function matchesProperty(path, srcValue) { + return baseMatchesProperty(path, baseClone(srcValue, CLONE_DEEP_FLAG)); + } + var method = baseRest(function(path, args) { + return function(object) { + return baseInvoke(object, path, args); + }; + }); + var methodOf = baseRest(function(object, args) { + return function(path) { + return baseInvoke(object, path, args); + }; + }); + function mixin(object, source, options) { + var props = keys(source), methodNames = baseFunctions(source, props); + if (options == null && !(isObject(source) && (methodNames.length || !props.length))) { + options = source; + source = object; + object = this; + methodNames = baseFunctions(source, keys(source)); + } + var chain2 = !(isObject(options) && ("chain" in options)) || !!options.chain, isFunc = isFunction(object); + arrayEach(methodNames, function(methodName) { + var func = source[methodName]; + object[methodName] = func; + if (isFunc) { + object.prototype[methodName] = function() { + var chainAll = this.__chain__; + if (chain2 || chainAll) { + var result2 = object(this.__wrapped__), actions = result2.__actions__ = copyArray(this.__actions__); + actions.push({ func, args: arguments, thisArg: object }); + result2.__chain__ = chainAll; + return result2; + } + return func.apply(object, arrayPush([this.value()], arguments)); + }; + } + }); + return object; + } + function noConflict() { + if (root._ === this) { + root._ = oldDash; + } + return this; + } + function noop() { + } + function nthArg(n) { + n = toInteger(n); + return baseRest(function(args) { + return baseNth(args, n); + }); + } + var over = createOver(arrayMap); + var overEvery = createOver(arrayEvery); + var overSome = createOver(arraySome); + function property(path) { + return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path); + } + function propertyOf(object) { + return function(path) { + return object == null ? undefined2 : baseGet(object, path); + }; + } + var range = createRange(); + var rangeRight = createRange(true); + function stubArray() { + return []; + } + function stubFalse() { + return false; + } + function stubObject() { + return {}; + } + function stubString() { + return ""; + } + function stubTrue() { + return true; + } + function times(n, iteratee2) { + n = toInteger(n); + if (n < 1 || n > MAX_SAFE_INTEGER) { + return []; + } + var index = MAX_ARRAY_LENGTH, length = nativeMin(n, MAX_ARRAY_LENGTH); + iteratee2 = getIteratee(iteratee2); + n -= MAX_ARRAY_LENGTH; + var result2 = baseTimes(length, iteratee2); + while (++index < n) { + iteratee2(index); + } + return result2; + } + function toPath(value) { + if (isArray(value)) { + return arrayMap(value, toKey); + } + return isSymbol(value) ? [value] : copyArray(stringToPath(toString(value))); + } + function uniqueId(prefix) { + var id = ++idCounter; + return toString(prefix) + id; + } + var add = createMathOperation(function(augend, addend) { + return augend + addend; + }, 0); + var ceil = createRound("ceil"); + var divide = createMathOperation(function(dividend, divisor) { + return dividend / divisor; + }, 1); + var floor = createRound("floor"); + function max(array) { + return array && array.length ? baseExtremum(array, identity, baseGt) : undefined2; + } + function maxBy(array, iteratee2) { + return array && array.length ? baseExtremum(array, getIteratee(iteratee2, 2), baseGt) : undefined2; + } + function mean(array) { + return baseMean(array, identity); + } + function meanBy(array, iteratee2) { + return baseMean(array, getIteratee(iteratee2, 2)); + } + function min(array) { + return array && array.length ? baseExtremum(array, identity, baseLt) : undefined2; + } + function minBy(array, iteratee2) { + return array && array.length ? baseExtremum(array, getIteratee(iteratee2, 2), baseLt) : undefined2; + } + var multiply = createMathOperation(function(multiplier, multiplicand) { + return multiplier * multiplicand; + }, 1); + var round = createRound("round"); + var subtract = createMathOperation(function(minuend, subtrahend) { + return minuend - subtrahend; + }, 0); + function sum(array) { + return array && array.length ? baseSum(array, identity) : 0; + } + function sumBy(array, iteratee2) { + return array && array.length ? baseSum(array, getIteratee(iteratee2, 2)) : 0; + } + lodash.after = after; + lodash.ary = ary; + lodash.assign = assign; + lodash.assignIn = assignIn; + lodash.assignInWith = assignInWith; + lodash.assignWith = assignWith; + lodash.at = at; + lodash.before = before; + lodash.bind = bind; + lodash.bindAll = bindAll; + lodash.bindKey = bindKey; + lodash.castArray = castArray; + lodash.chain = chain; + lodash.chunk = chunk; + lodash.compact = compact; + lodash.concat = concat; + lodash.cond = cond; + lodash.conforms = conforms; + lodash.constant = constant; + lodash.countBy = countBy; + lodash.create = create; + lodash.curry = curry; + lodash.curryRight = curryRight; + lodash.debounce = debounce; + lodash.defaults = defaults; + lodash.defaultsDeep = defaultsDeep; + lodash.defer = defer; + lodash.delay = delay; + lodash.difference = difference; + lodash.differenceBy = differenceBy; + lodash.differenceWith = differenceWith; + lodash.drop = drop; + lodash.dropRight = dropRight; + lodash.dropRightWhile = dropRightWhile; + lodash.dropWhile = dropWhile; + lodash.fill = fill; + lodash.filter = filter; + lodash.flatMap = flatMap; + lodash.flatMapDeep = flatMapDeep; + lodash.flatMapDepth = flatMapDepth; + lodash.flatten = flatten; + lodash.flattenDeep = flattenDeep; + lodash.flattenDepth = flattenDepth; + lodash.flip = flip; + lodash.flow = flow; + lodash.flowRight = flowRight; + lodash.fromPairs = fromPairs; + lodash.functions = functions; + lodash.functionsIn = functionsIn; + lodash.groupBy = groupBy; + lodash.initial = initial; + lodash.intersection = intersection; + lodash.intersectionBy = intersectionBy; + lodash.intersectionWith = intersectionWith; + lodash.invert = invert; + lodash.invertBy = invertBy; + lodash.invokeMap = invokeMap; + lodash.iteratee = iteratee; + lodash.keyBy = keyBy; + lodash.keys = keys; + lodash.keysIn = keysIn; + lodash.map = map; + lodash.mapKeys = mapKeys; + lodash.mapValues = mapValues; + lodash.matches = matches; + lodash.matchesProperty = matchesProperty; + lodash.memoize = memoize; + lodash.merge = merge; + lodash.mergeWith = mergeWith; + lodash.method = method; + lodash.methodOf = methodOf; + lodash.mixin = mixin; + lodash.negate = negate; + lodash.nthArg = nthArg; + lodash.omit = omit; + lodash.omitBy = omitBy; + lodash.once = once; + lodash.orderBy = orderBy; + lodash.over = over; + lodash.overArgs = overArgs; + lodash.overEvery = overEvery; + lodash.overSome = overSome; + lodash.partial = partial; + lodash.partialRight = partialRight; + lodash.partition = partition; + lodash.pick = pick; + lodash.pickBy = pickBy; + lodash.property = property; + lodash.propertyOf = propertyOf; + lodash.pull = pull; + lodash.pullAll = pullAll; + lodash.pullAllBy = pullAllBy; + lodash.pullAllWith = pullAllWith; + lodash.pullAt = pullAt; + lodash.range = range; + lodash.rangeRight = rangeRight; + lodash.rearg = rearg; + lodash.reject = reject; + lodash.remove = remove; + lodash.rest = rest; + lodash.reverse = reverse; + lodash.sampleSize = sampleSize; + lodash.set = set; + lodash.setWith = setWith; + lodash.shuffle = shuffle; + lodash.slice = slice; + lodash.sortBy = sortBy; + lodash.sortedUniq = sortedUniq; + lodash.sortedUniqBy = sortedUniqBy; + lodash.split = split; + lodash.spread = spread; + lodash.tail = tail; + lodash.take = take; + lodash.takeRight = takeRight; + lodash.takeRightWhile = takeRightWhile; + lodash.takeWhile = takeWhile; + lodash.tap = tap; + lodash.throttle = throttle; + lodash.thru = thru; + lodash.toArray = toArray; + lodash.toPairs = toPairs; + lodash.toPairsIn = toPairsIn; + lodash.toPath = toPath; + lodash.toPlainObject = toPlainObject; + lodash.transform = transform; + lodash.unary = unary; + lodash.union = union; + lodash.unionBy = unionBy; + lodash.unionWith = unionWith; + lodash.uniq = uniq; + lodash.uniqBy = uniqBy; + lodash.uniqWith = uniqWith; + lodash.unset = unset; + lodash.unzip = unzip; + lodash.unzipWith = unzipWith; + lodash.update = update; + lodash.updateWith = updateWith; + lodash.values = values; + lodash.valuesIn = valuesIn; + lodash.without = without; + lodash.words = words; + lodash.wrap = wrap; + lodash.xor = xor; + lodash.xorBy = xorBy; + lodash.xorWith = xorWith; + lodash.zip = zip; + lodash.zipObject = zipObject; + lodash.zipObjectDeep = zipObjectDeep; + lodash.zipWith = zipWith; + lodash.entries = toPairs; + lodash.entriesIn = toPairsIn; + lodash.extend = assignIn; + lodash.extendWith = assignInWith; + mixin(lodash, lodash); + lodash.add = add; + lodash.attempt = attempt; + lodash.camelCase = camelCase; + lodash.capitalize = capitalize; + lodash.ceil = ceil; + lodash.clamp = clamp; + lodash.clone = clone; + lodash.cloneDeep = cloneDeep; + lodash.cloneDeepWith = cloneDeepWith; + lodash.cloneWith = cloneWith; + lodash.conformsTo = conformsTo; + lodash.deburr = deburr; + lodash.defaultTo = defaultTo; + lodash.divide = divide; + lodash.endsWith = endsWith; + lodash.eq = eq; + lodash.escape = escape; + lodash.escapeRegExp = escapeRegExp; + lodash.every = every; + lodash.find = find; + lodash.findIndex = findIndex; + lodash.findKey = findKey; + lodash.findLast = findLast; + lodash.findLastIndex = findLastIndex; + lodash.findLastKey = findLastKey; + lodash.floor = floor; + lodash.forEach = forEach; + lodash.forEachRight = forEachRight; + lodash.forIn = forIn; + lodash.forInRight = forInRight; + lodash.forOwn = forOwn; + lodash.forOwnRight = forOwnRight; + lodash.get = get; + lodash.gt = gt; + lodash.gte = gte; + lodash.has = has; + lodash.hasIn = hasIn; + lodash.head = head; + lodash.identity = identity; + lodash.includes = includes; + lodash.indexOf = indexOf; + lodash.inRange = inRange; + lodash.invoke = invoke; + lodash.isArguments = isArguments; + lodash.isArray = isArray; + lodash.isArrayBuffer = isArrayBuffer; + lodash.isArrayLike = isArrayLike; + lodash.isArrayLikeObject = isArrayLikeObject; + lodash.isBoolean = isBoolean; + lodash.isBuffer = isBuffer; + lodash.isDate = isDate; + lodash.isElement = isElement; + lodash.isEmpty = isEmpty; + lodash.isEqual = isEqual; + lodash.isEqualWith = isEqualWith; + lodash.isError = isError; + lodash.isFinite = isFinite2; + lodash.isFunction = isFunction; + lodash.isInteger = isInteger; + lodash.isLength = isLength; + lodash.isMap = isMap; + lodash.isMatch = isMatch; + lodash.isMatchWith = isMatchWith; + lodash.isNaN = isNaN2; + lodash.isNative = isNative; + lodash.isNil = isNil; + lodash.isNull = isNull; + lodash.isNumber = isNumber; + lodash.isObject = isObject; + lodash.isObjectLike = isObjectLike; + lodash.isPlainObject = isPlainObject; + lodash.isRegExp = isRegExp; + lodash.isSafeInteger = isSafeInteger; + lodash.isSet = isSet; + lodash.isString = isString; + lodash.isSymbol = isSymbol; + lodash.isTypedArray = isTypedArray; + lodash.isUndefined = isUndefined; + lodash.isWeakMap = isWeakMap; + lodash.isWeakSet = isWeakSet; + lodash.join = join; + lodash.kebabCase = kebabCase; + lodash.last = last; + lodash.lastIndexOf = lastIndexOf; + lodash.lowerCase = lowerCase; + lodash.lowerFirst = lowerFirst; + lodash.lt = lt; + lodash.lte = lte; + lodash.max = max; + lodash.maxBy = maxBy; + lodash.mean = mean; + lodash.meanBy = meanBy; + lodash.min = min; + lodash.minBy = minBy; + lodash.stubArray = stubArray; + lodash.stubFalse = stubFalse; + lodash.stubObject = stubObject; + lodash.stubString = stubString; + lodash.stubTrue = stubTrue; + lodash.multiply = multiply; + lodash.nth = nth; + lodash.noConflict = noConflict; + lodash.noop = noop; + lodash.now = now; + lodash.pad = pad; + lodash.padEnd = padEnd; + lodash.padStart = padStart; + lodash.parseInt = parseInt2; + lodash.random = random; + lodash.reduce = reduce; + lodash.reduceRight = reduceRight; + lodash.repeat = repeat; + lodash.replace = replace; + lodash.result = result; + lodash.round = round; + lodash.runInContext = runInContext; + lodash.sample = sample; + lodash.size = size; + lodash.snakeCase = snakeCase; + lodash.some = some; + lodash.sortedIndex = sortedIndex; + lodash.sortedIndexBy = sortedIndexBy; + lodash.sortedIndexOf = sortedIndexOf; + lodash.sortedLastIndex = sortedLastIndex; + lodash.sortedLastIndexBy = sortedLastIndexBy; + lodash.sortedLastIndexOf = sortedLastIndexOf; + lodash.startCase = startCase; + lodash.startsWith = startsWith; + lodash.subtract = subtract; + lodash.sum = sum; + lodash.sumBy = sumBy; + lodash.template = template; + lodash.times = times; + lodash.toFinite = toFinite; + lodash.toInteger = toInteger; + lodash.toLength = toLength; + lodash.toLower = toLower; + lodash.toNumber = toNumber; + lodash.toSafeInteger = toSafeInteger; + lodash.toString = toString; + lodash.toUpper = toUpper; + lodash.trim = trim; + lodash.trimEnd = trimEnd; + lodash.trimStart = trimStart; + lodash.truncate = truncate; + lodash.unescape = unescape2; + lodash.uniqueId = uniqueId; + lodash.upperCase = upperCase; + lodash.upperFirst = upperFirst; + lodash.each = forEach; + lodash.eachRight = forEachRight; + lodash.first = head; + mixin(lodash, function() { + var source = {}; + baseForOwn(lodash, function(func, methodName) { + if (!hasOwnProperty.call(lodash.prototype, methodName)) { + source[methodName] = func; + } + }); + return source; + }(), { chain: false }); + lodash.VERSION = VERSION; + arrayEach(["bind", "bindKey", "curry", "curryRight", "partial", "partialRight"], function(methodName) { + lodash[methodName].placeholder = lodash; + }); + arrayEach(["drop", "take"], function(methodName, index) { + LazyWrapper.prototype[methodName] = function(n) { + n = n === undefined2 ? 1 : nativeMax(toInteger(n), 0); + var result2 = this.__filtered__ && !index ? new LazyWrapper(this) : this.clone(); + if (result2.__filtered__) { + result2.__takeCount__ = nativeMin(n, result2.__takeCount__); + } else { + result2.__views__.push({ + size: nativeMin(n, MAX_ARRAY_LENGTH), + type: methodName + (result2.__dir__ < 0 ? "Right" : "") + }); + } + return result2; + }; + LazyWrapper.prototype[methodName + "Right"] = function(n) { + return this.reverse()[methodName](n).reverse(); + }; + }); + arrayEach(["filter", "map", "takeWhile"], function(methodName, index) { + var type = index + 1, isFilter = type == LAZY_FILTER_FLAG || type == LAZY_WHILE_FLAG; + LazyWrapper.prototype[methodName] = function(iteratee2) { + var result2 = this.clone(); + result2.__iteratees__.push({ + iteratee: getIteratee(iteratee2, 3), + type + }); + result2.__filtered__ = result2.__filtered__ || isFilter; + return result2; + }; + }); + arrayEach(["head", "last"], function(methodName, index) { + var takeName = "take" + (index ? "Right" : ""); + LazyWrapper.prototype[methodName] = function() { + return this[takeName](1).value()[0]; + }; + }); + arrayEach(["initial", "tail"], function(methodName, index) { + var dropName = "drop" + (index ? "" : "Right"); + LazyWrapper.prototype[methodName] = function() { + return this.__filtered__ ? new LazyWrapper(this) : this[dropName](1); + }; + }); + LazyWrapper.prototype.compact = function() { + return this.filter(identity); + }; + LazyWrapper.prototype.find = function(predicate) { + return this.filter(predicate).head(); + }; + LazyWrapper.prototype.findLast = function(predicate) { + return this.reverse().find(predicate); + }; + LazyWrapper.prototype.invokeMap = baseRest(function(path, args) { + if (typeof path == "function") { + return new LazyWrapper(this); + } + return this.map(function(value) { + return baseInvoke(value, path, args); + }); + }); + LazyWrapper.prototype.reject = function(predicate) { + return this.filter(negate(getIteratee(predicate))); + }; + LazyWrapper.prototype.slice = function(start, end) { + start = toInteger(start); + var result2 = this; + if (result2.__filtered__ && (start > 0 || end < 0)) { + return new LazyWrapper(result2); + } + if (start < 0) { + result2 = result2.takeRight(-start); + } else if (start) { + result2 = result2.drop(start); + } + if (end !== undefined2) { + end = toInteger(end); + result2 = end < 0 ? result2.dropRight(-end) : result2.take(end - start); + } + return result2; + }; + LazyWrapper.prototype.takeRightWhile = function(predicate) { + return this.reverse().takeWhile(predicate).reverse(); + }; + LazyWrapper.prototype.toArray = function() { + return this.take(MAX_ARRAY_LENGTH); + }; + baseForOwn(LazyWrapper.prototype, function(func, methodName) { + var checkIteratee = /^(?:filter|find|map|reject)|While$/.test(methodName), isTaker = /^(?:head|last)$/.test(methodName), lodashFunc = lodash[isTaker ? "take" + (methodName == "last" ? "Right" : "") : methodName], retUnwrapped = isTaker || /^find/.test(methodName); + if (!lodashFunc) { + return; + } + lodash.prototype[methodName] = function() { + var value = this.__wrapped__, args = isTaker ? [1] : arguments, isLazy = value instanceof LazyWrapper, iteratee2 = args[0], useLazy = isLazy || isArray(value); + var interceptor = function(value2) { + var result3 = lodashFunc.apply(lodash, arrayPush([value2], args)); + return isTaker && chainAll ? result3[0] : result3; + }; + if (useLazy && checkIteratee && typeof iteratee2 == "function" && iteratee2.length != 1) { + isLazy = useLazy = false; + } + var chainAll = this.__chain__, isHybrid = !!this.__actions__.length, isUnwrapped = retUnwrapped && !chainAll, onlyLazy = isLazy && !isHybrid; + if (!retUnwrapped && useLazy) { + value = onlyLazy ? value : new LazyWrapper(this); + var result2 = func.apply(value, args); + result2.__actions__.push({ func: thru, args: [interceptor], thisArg: undefined2 }); + return new LodashWrapper(result2, chainAll); + } + if (isUnwrapped && onlyLazy) { + return func.apply(this, args); + } + result2 = this.thru(interceptor); + return isUnwrapped ? isTaker ? result2.value()[0] : result2.value() : result2; + }; + }); + arrayEach(["pop", "push", "shift", "sort", "splice", "unshift"], function(methodName) { + var func = arrayProto[methodName], chainName = /^(?:push|sort|unshift)$/.test(methodName) ? "tap" : "thru", retUnwrapped = /^(?:pop|shift)$/.test(methodName); + lodash.prototype[methodName] = function() { + var args = arguments; + if (retUnwrapped && !this.__chain__) { + var value = this.value(); + return func.apply(isArray(value) ? value : [], args); + } + return this[chainName](function(value2) { + return func.apply(isArray(value2) ? value2 : [], args); + }); + }; + }); + baseForOwn(LazyWrapper.prototype, function(func, methodName) { + var lodashFunc = lodash[methodName]; + if (lodashFunc) { + var key = lodashFunc.name + ""; + if (!hasOwnProperty.call(realNames, key)) { + realNames[key] = []; + } + realNames[key].push({ name: methodName, func: lodashFunc }); + } + }); + realNames[createHybrid(undefined2, WRAP_BIND_KEY_FLAG).name] = [{ + name: "wrapper", + func: undefined2 + }]; + LazyWrapper.prototype.clone = lazyClone; + LazyWrapper.prototype.reverse = lazyReverse; + LazyWrapper.prototype.value = lazyValue; + lodash.prototype.at = wrapperAt; + lodash.prototype.chain = wrapperChain; + lodash.prototype.commit = wrapperCommit; + lodash.prototype.next = wrapperNext; + lodash.prototype.plant = wrapperPlant; + lodash.prototype.reverse = wrapperReverse; + lodash.prototype.toJSON = lodash.prototype.valueOf = lodash.prototype.value = wrapperValue; + lodash.prototype.first = lodash.prototype.head; + if (symIterator) { + lodash.prototype[symIterator] = wrapperToIterator; + } + return lodash; + }; + var _ = runInContext(); + if (typeof define == "function" && typeof define.amd == "object" && define.amd) { + root._ = _; + define(function() { + return _; + }); + } else if (freeModule) { + (freeModule.exports = _)._ = _; + freeExports._ = _; + } else { + root._ = _; + } + }).call(exports); +}); + +// package-shared/functions/backend/serverError.ts +import fs from "fs"; +async function serverError({ + user, + message, + component, + noMail, + req +}) { + const date = new Date; + const reqIp = (() => { + if (!req) + return null; + try { + const forwarded = req.headers["x-forwarded-for"]; + const realIp = req.headers["x-real-ip"]; + const cloudflareIp = req.headers["cf-connecting-ip"]; + const forwardedIp = Array.isArray(forwarded) ? forwarded[0] : forwarded?.split(",")[0]; + const clientIp = cloudflareIp || forwardedIp || realIp || req.socket.remoteAddress; + if (!clientIp) + return null; + return String(clientIp); + } catch (error) { + return null; + } + })(); + try { + let log = `\uD83D\uDE80 SERVER ERROR =========================== +Error Message: ${message}\nComponent: ${component}`; + if (user?.id && user?.first_name && user?.last_name && user?.email) { + log += `\nUser Id: ${user?.id}\nUser Name: ${user?.first_name} ${user?.last_name}\nUser Email: ${user?.email}`; + } + if (req?.url) { + log += `\nURL: ${req.url}`; + } + if (req?.body) { + log += `\nRequest Body: ${JSON.stringify(req.body, null, 4)}`; + } + if (reqIp) { + log += `\nIP: ${reqIp}`; + } + log += `\nDate: ${date.toDateString()}`; + log += "\n========================================"; + if (!fs.existsSync(`./.tmp/error.log`)) { + fs.writeFileSync(`./.tmp/error.log`, "", "utf-8"); + } + const initialText = fs.readFileSync(`./.tmp/error.log`, "utf-8"); + fs.writeFileSync(`./.tmp/error.log`, log); + fs.appendFileSync(`./.tmp/error.log`, `\n\n\n\n\n${initialText}`); + } catch (error) { + console.log("Server Error Reporting Error:", error.message); + } +} +var init_serverError = () => { +}; + +// node_modules/mysql/lib/protocol/constants/client.js +var require_client = __commonJS((exports) => { + exports.CLIENT_LONG_PASSWORD = 1; + exports.CLIENT_FOUND_ROWS = 2; + exports.CLIENT_LONG_FLAG = 4; + exports.CLIENT_CONNECT_WITH_DB = 8; + exports.CLIENT_NO_SCHEMA = 16; + exports.CLIENT_COMPRESS = 32; + exports.CLIENT_ODBC = 64; + exports.CLIENT_LOCAL_FILES = 128; + exports.CLIENT_IGNORE_SPACE = 256; + exports.CLIENT_PROTOCOL_41 = 512; + exports.CLIENT_INTERACTIVE = 1024; + exports.CLIENT_SSL = 2048; + exports.CLIENT_IGNORE_SIGPIPE = 4096; + exports.CLIENT_TRANSACTIONS = 8192; + exports.CLIENT_RESERVED = 16384; + exports.CLIENT_SECURE_CONNECTION = 32768; + exports.CLIENT_MULTI_STATEMENTS = 65536; + exports.CLIENT_MULTI_RESULTS = 131072; + exports.CLIENT_PS_MULTI_RESULTS = 262144; + exports.CLIENT_PLUGIN_AUTH = 524288; + exports.CLIENT_SSL_VERIFY_SERVER_CERT = 1073741824; + exports.CLIENT_REMEMBER_OPTIONS = 2147483648; +}); + +// node_modules/mysql/lib/protocol/constants/charsets.js +var require_charsets = __commonJS((exports) => { + exports.BIG5_CHINESE_CI = 1; + exports.LATIN2_CZECH_CS = 2; + exports.DEC8_SWEDISH_CI = 3; + exports.CP850_GENERAL_CI = 4; + exports.LATIN1_GERMAN1_CI = 5; + exports.HP8_ENGLISH_CI = 6; + exports.KOI8R_GENERAL_CI = 7; + exports.LATIN1_SWEDISH_CI = 8; + exports.LATIN2_GENERAL_CI = 9; + exports.SWE7_SWEDISH_CI = 10; + exports.ASCII_GENERAL_CI = 11; + exports.UJIS_JAPANESE_CI = 12; + exports.SJIS_JAPANESE_CI = 13; + exports.CP1251_BULGARIAN_CI = 14; + exports.LATIN1_DANISH_CI = 15; + exports.HEBREW_GENERAL_CI = 16; + exports.TIS620_THAI_CI = 18; + exports.EUCKR_KOREAN_CI = 19; + exports.LATIN7_ESTONIAN_CS = 20; + exports.LATIN2_HUNGARIAN_CI = 21; + exports.KOI8U_GENERAL_CI = 22; + exports.CP1251_UKRAINIAN_CI = 23; + exports.GB2312_CHINESE_CI = 24; + exports.GREEK_GENERAL_CI = 25; + exports.CP1250_GENERAL_CI = 26; + exports.LATIN2_CROATIAN_CI = 27; + exports.GBK_CHINESE_CI = 28; + exports.CP1257_LITHUANIAN_CI = 29; + exports.LATIN5_TURKISH_CI = 30; + exports.LATIN1_GERMAN2_CI = 31; + exports.ARMSCII8_GENERAL_CI = 32; + exports.UTF8_GENERAL_CI = 33; + exports.CP1250_CZECH_CS = 34; + exports.UCS2_GENERAL_CI = 35; + exports.CP866_GENERAL_CI = 36; + exports.KEYBCS2_GENERAL_CI = 37; + exports.MACCE_GENERAL_CI = 38; + exports.MACROMAN_GENERAL_CI = 39; + exports.CP852_GENERAL_CI = 40; + exports.LATIN7_GENERAL_CI = 41; + exports.LATIN7_GENERAL_CS = 42; + exports.MACCE_BIN = 43; + exports.CP1250_CROATIAN_CI = 44; + exports.UTF8MB4_GENERAL_CI = 45; + exports.UTF8MB4_BIN = 46; + exports.LATIN1_BIN = 47; + exports.LATIN1_GENERAL_CI = 48; + exports.LATIN1_GENERAL_CS = 49; + exports.CP1251_BIN = 50; + exports.CP1251_GENERAL_CI = 51; + exports.CP1251_GENERAL_CS = 52; + exports.MACROMAN_BIN = 53; + exports.UTF16_GENERAL_CI = 54; + exports.UTF16_BIN = 55; + exports.UTF16LE_GENERAL_CI = 56; + exports.CP1256_GENERAL_CI = 57; + exports.CP1257_BIN = 58; + exports.CP1257_GENERAL_CI = 59; + exports.UTF32_GENERAL_CI = 60; + exports.UTF32_BIN = 61; + exports.UTF16LE_BIN = 62; + exports.BINARY = 63; + exports.ARMSCII8_BIN = 64; + exports.ASCII_BIN = 65; + exports.CP1250_BIN = 66; + exports.CP1256_BIN = 67; + exports.CP866_BIN = 68; + exports.DEC8_BIN = 69; + exports.GREEK_BIN = 70; + exports.HEBREW_BIN = 71; + exports.HP8_BIN = 72; + exports.KEYBCS2_BIN = 73; + exports.KOI8R_BIN = 74; + exports.KOI8U_BIN = 75; + exports.LATIN2_BIN = 77; + exports.LATIN5_BIN = 78; + exports.LATIN7_BIN = 79; + exports.CP850_BIN = 80; + exports.CP852_BIN = 81; + exports.SWE7_BIN = 82; + exports.UTF8_BIN = 83; + exports.BIG5_BIN = 84; + exports.EUCKR_BIN = 85; + exports.GB2312_BIN = 86; + exports.GBK_BIN = 87; + exports.SJIS_BIN = 88; + exports.TIS620_BIN = 89; + exports.UCS2_BIN = 90; + exports.UJIS_BIN = 91; + exports.GEOSTD8_GENERAL_CI = 92; + exports.GEOSTD8_BIN = 93; + exports.LATIN1_SPANISH_CI = 94; + exports.CP932_JAPANESE_CI = 95; + exports.CP932_BIN = 96; + exports.EUCJPMS_JAPANESE_CI = 97; + exports.EUCJPMS_BIN = 98; + exports.CP1250_POLISH_CI = 99; + exports.UTF16_UNICODE_CI = 101; + exports.UTF16_ICELANDIC_CI = 102; + exports.UTF16_LATVIAN_CI = 103; + exports.UTF16_ROMANIAN_CI = 104; + exports.UTF16_SLOVENIAN_CI = 105; + exports.UTF16_POLISH_CI = 106; + exports.UTF16_ESTONIAN_CI = 107; + exports.UTF16_SPANISH_CI = 108; + exports.UTF16_SWEDISH_CI = 109; + exports.UTF16_TURKISH_CI = 110; + exports.UTF16_CZECH_CI = 111; + exports.UTF16_DANISH_CI = 112; + exports.UTF16_LITHUANIAN_CI = 113; + exports.UTF16_SLOVAK_CI = 114; + exports.UTF16_SPANISH2_CI = 115; + exports.UTF16_ROMAN_CI = 116; + exports.UTF16_PERSIAN_CI = 117; + exports.UTF16_ESPERANTO_CI = 118; + exports.UTF16_HUNGARIAN_CI = 119; + exports.UTF16_SINHALA_CI = 120; + exports.UTF16_GERMAN2_CI = 121; + exports.UTF16_CROATIAN_MYSQL561_CI = 122; + exports.UTF16_UNICODE_520_CI = 123; + exports.UTF16_VIETNAMESE_CI = 124; + exports.UCS2_UNICODE_CI = 128; + exports.UCS2_ICELANDIC_CI = 129; + exports.UCS2_LATVIAN_CI = 130; + exports.UCS2_ROMANIAN_CI = 131; + exports.UCS2_SLOVENIAN_CI = 132; + exports.UCS2_POLISH_CI = 133; + exports.UCS2_ESTONIAN_CI = 134; + exports.UCS2_SPANISH_CI = 135; + exports.UCS2_SWEDISH_CI = 136; + exports.UCS2_TURKISH_CI = 137; + exports.UCS2_CZECH_CI = 138; + exports.UCS2_DANISH_CI = 139; + exports.UCS2_LITHUANIAN_CI = 140; + exports.UCS2_SLOVAK_CI = 141; + exports.UCS2_SPANISH2_CI = 142; + exports.UCS2_ROMAN_CI = 143; + exports.UCS2_PERSIAN_CI = 144; + exports.UCS2_ESPERANTO_CI = 145; + exports.UCS2_HUNGARIAN_CI = 146; + exports.UCS2_SINHALA_CI = 147; + exports.UCS2_GERMAN2_CI = 148; + exports.UCS2_CROATIAN_MYSQL561_CI = 149; + exports.UCS2_UNICODE_520_CI = 150; + exports.UCS2_VIETNAMESE_CI = 151; + exports.UCS2_GENERAL_MYSQL500_CI = 159; + exports.UTF32_UNICODE_CI = 160; + exports.UTF32_ICELANDIC_CI = 161; + exports.UTF32_LATVIAN_CI = 162; + exports.UTF32_ROMANIAN_CI = 163; + exports.UTF32_SLOVENIAN_CI = 164; + exports.UTF32_POLISH_CI = 165; + exports.UTF32_ESTONIAN_CI = 166; + exports.UTF32_SPANISH_CI = 167; + exports.UTF32_SWEDISH_CI = 168; + exports.UTF32_TURKISH_CI = 169; + exports.UTF32_CZECH_CI = 170; + exports.UTF32_DANISH_CI = 171; + exports.UTF32_LITHUANIAN_CI = 172; + exports.UTF32_SLOVAK_CI = 173; + exports.UTF32_SPANISH2_CI = 174; + exports.UTF32_ROMAN_CI = 175; + exports.UTF32_PERSIAN_CI = 176; + exports.UTF32_ESPERANTO_CI = 177; + exports.UTF32_HUNGARIAN_CI = 178; + exports.UTF32_SINHALA_CI = 179; + exports.UTF32_GERMAN2_CI = 180; + exports.UTF32_CROATIAN_MYSQL561_CI = 181; + exports.UTF32_UNICODE_520_CI = 182; + exports.UTF32_VIETNAMESE_CI = 183; + exports.UTF8_UNICODE_CI = 192; + exports.UTF8_ICELANDIC_CI = 193; + exports.UTF8_LATVIAN_CI = 194; + exports.UTF8_ROMANIAN_CI = 195; + exports.UTF8_SLOVENIAN_CI = 196; + exports.UTF8_POLISH_CI = 197; + exports.UTF8_ESTONIAN_CI = 198; + exports.UTF8_SPANISH_CI = 199; + exports.UTF8_SWEDISH_CI = 200; + exports.UTF8_TURKISH_CI = 201; + exports.UTF8_CZECH_CI = 202; + exports.UTF8_DANISH_CI = 203; + exports.UTF8_LITHUANIAN_CI = 204; + exports.UTF8_SLOVAK_CI = 205; + exports.UTF8_SPANISH2_CI = 206; + exports.UTF8_ROMAN_CI = 207; + exports.UTF8_PERSIAN_CI = 208; + exports.UTF8_ESPERANTO_CI = 209; + exports.UTF8_HUNGARIAN_CI = 210; + exports.UTF8_SINHALA_CI = 211; + exports.UTF8_GERMAN2_CI = 212; + exports.UTF8_CROATIAN_MYSQL561_CI = 213; + exports.UTF8_UNICODE_520_CI = 214; + exports.UTF8_VIETNAMESE_CI = 215; + exports.UTF8_GENERAL_MYSQL500_CI = 223; + exports.UTF8MB4_UNICODE_CI = 224; + exports.UTF8MB4_ICELANDIC_CI = 225; + exports.UTF8MB4_LATVIAN_CI = 226; + exports.UTF8MB4_ROMANIAN_CI = 227; + exports.UTF8MB4_SLOVENIAN_CI = 228; + exports.UTF8MB4_POLISH_CI = 229; + exports.UTF8MB4_ESTONIAN_CI = 230; + exports.UTF8MB4_SPANISH_CI = 231; + exports.UTF8MB4_SWEDISH_CI = 232; + exports.UTF8MB4_TURKISH_CI = 233; + exports.UTF8MB4_CZECH_CI = 234; + exports.UTF8MB4_DANISH_CI = 235; + exports.UTF8MB4_LITHUANIAN_CI = 236; + exports.UTF8MB4_SLOVAK_CI = 237; + exports.UTF8MB4_SPANISH2_CI = 238; + exports.UTF8MB4_ROMAN_CI = 239; + exports.UTF8MB4_PERSIAN_CI = 240; + exports.UTF8MB4_ESPERANTO_CI = 241; + exports.UTF8MB4_HUNGARIAN_CI = 242; + exports.UTF8MB4_SINHALA_CI = 243; + exports.UTF8MB4_GERMAN2_CI = 244; + exports.UTF8MB4_CROATIAN_MYSQL561_CI = 245; + exports.UTF8MB4_UNICODE_520_CI = 246; + exports.UTF8MB4_VIETNAMESE_CI = 247; + exports.UTF8_GENERAL50_CI = 253; + exports.ARMSCII8 = exports.ARMSCII8_GENERAL_CI; + exports.ASCII = exports.ASCII_GENERAL_CI; + exports.BIG5 = exports.BIG5_CHINESE_CI; + exports.BINARY = exports.BINARY; + exports.CP1250 = exports.CP1250_GENERAL_CI; + exports.CP1251 = exports.CP1251_GENERAL_CI; + exports.CP1256 = exports.CP1256_GENERAL_CI; + exports.CP1257 = exports.CP1257_GENERAL_CI; + exports.CP866 = exports.CP866_GENERAL_CI; + exports.CP850 = exports.CP850_GENERAL_CI; + exports.CP852 = exports.CP852_GENERAL_CI; + exports.CP932 = exports.CP932_JAPANESE_CI; + exports.DEC8 = exports.DEC8_SWEDISH_CI; + exports.EUCJPMS = exports.EUCJPMS_JAPANESE_CI; + exports.EUCKR = exports.EUCKR_KOREAN_CI; + exports.GB2312 = exports.GB2312_CHINESE_CI; + exports.GBK = exports.GBK_CHINESE_CI; + exports.GEOSTD8 = exports.GEOSTD8_GENERAL_CI; + exports.GREEK = exports.GREEK_GENERAL_CI; + exports.HEBREW = exports.HEBREW_GENERAL_CI; + exports.HP8 = exports.HP8_ENGLISH_CI; + exports.KEYBCS2 = exports.KEYBCS2_GENERAL_CI; + exports.KOI8R = exports.KOI8R_GENERAL_CI; + exports.KOI8U = exports.KOI8U_GENERAL_CI; + exports.LATIN1 = exports.LATIN1_SWEDISH_CI; + exports.LATIN2 = exports.LATIN2_GENERAL_CI; + exports.LATIN5 = exports.LATIN5_TURKISH_CI; + exports.LATIN7 = exports.LATIN7_GENERAL_CI; + exports.MACCE = exports.MACCE_GENERAL_CI; + exports.MACROMAN = exports.MACROMAN_GENERAL_CI; + exports.SJIS = exports.SJIS_JAPANESE_CI; + exports.SWE7 = exports.SWE7_SWEDISH_CI; + exports.TIS620 = exports.TIS620_THAI_CI; + exports.UCS2 = exports.UCS2_GENERAL_CI; + exports.UJIS = exports.UJIS_JAPANESE_CI; + exports.UTF16 = exports.UTF16_GENERAL_CI; + exports.UTF16LE = exports.UTF16LE_GENERAL_CI; + exports.UTF8 = exports.UTF8_GENERAL_CI; + exports.UTF8MB4 = exports.UTF8MB4_GENERAL_CI; + exports.UTF32 = exports.UTF32_GENERAL_CI; +}); + +// node_modules/mysql/lib/protocol/constants/ssl_profiles.js +var require_ssl_profiles = __commonJS((exports) => { + exports["Amazon RDS"] = { + ca: [ + "-----BEGIN CERTIFICATE-----\n" + "MIIDQzCCAqygAwIBAgIJAOd1tlfiGoEoMA0GCSqGSIb3DQEBBQUAMHUxCzAJBgNV\n" + "BAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdTZWF0dGxlMRMw\n" + "EQYDVQQKEwpBbWF6b24uY29tMQwwCgYDVQQLEwNSRFMxHDAaBgNVBAMTE2F3cy5h\n" + "bWF6b24uY29tL3Jkcy8wHhcNMTAwNDA1MjI0NDMxWhcNMTUwNDA0MjI0NDMxWjB1\n" + "MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHU2Vh\n" + "dHRsZTETMBEGA1UEChMKQW1hem9uLmNvbTEMMAoGA1UECxMDUkRTMRwwGgYDVQQD\n" + "ExNhd3MuYW1hem9uLmNvbS9yZHMvMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB\n" + "gQDKhXGU7tizxUR5WaFoMTFcxNxa05PEjZaIOEN5ctkWrqYSRov0/nOMoZjqk8bC\n" + "med9vPFoQGD0OTakPs0jVe3wwmR735hyVwmKIPPsGlaBYj1O6llIpZeQVyupNx56\n" + "UzqtiLaDzh1KcmfqP3qP2dInzBfJQKjiRudo1FWnpPt33QIDAQABo4HaMIHXMB0G\n" + "A1UdDgQWBBT/H3x+cqSkR/ePSIinPtc4yWKe3DCBpwYDVR0jBIGfMIGcgBT/H3x+\n" + "cqSkR/ePSIinPtc4yWKe3KF5pHcwdTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh\n" + "c2hpbmd0b24xEDAOBgNVBAcTB1NlYXR0bGUxEzARBgNVBAoTCkFtYXpvbi5jb20x\n" + "DDAKBgNVBAsTA1JEUzEcMBoGA1UEAxMTYXdzLmFtYXpvbi5jb20vcmRzL4IJAOd1\n" + "tlfiGoEoMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAvguZy/BDT66x\n" + "GfgnJlyQwnFSeVLQm9u/FIvz4huGjbq9dqnD6h/Gm56QPFdyMEyDiZWaqY6V08lY\n" + "LTBNb4kcIc9/6pc0/ojKciP5QJRm6OiZ4vgG05nF4fYjhU7WClUx7cxq1fKjNc2J\n" + "UCmmYqgiVkAGWRETVo+byOSDZ4swb10=\n" + "-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\n" + "MIID9DCCAtygAwIBAgIBQjANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMCVVMx\n" + "EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoM\n" + "GUFtYXpvbiBXZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMx\n" + "GzAZBgNVBAMMEkFtYXpvbiBSRFMgUm9vdCBDQTAeFw0xNTAyMDUwOTExMzFaFw0y\n" + "MDAzMDUwOTExMzFaMIGKMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3Rv\n" + "bjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNl\n" + "cywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEbMBkGA1UEAwwSQW1hem9uIFJE\n" + "UyBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuD8nrZ8V\n" + "u+VA8yVlUipCZIKPTDcOILYpUe8Tct0YeQQr0uyl018StdBsa3CjBgvwpDRq1HgF\n" + "Ji2N3+39+shCNspQeE6aYU+BHXhKhIIStt3r7gl/4NqYiDDMWKHxHq0nsGDFfArf\n" + "AOcjZdJagOMqb3fF46flc8k2E7THTm9Sz4L7RY1WdABMuurpICLFE3oHcGdapOb9\n" + "T53pQR+xpHW9atkcf3pf7gbO0rlKVSIoUenBlZipUlp1VZl/OD/E+TtRhDDNdI2J\n" + "P/DSMM3aEsq6ZQkfbz/Ilml+Lx3tJYXUDmp+ZjzMPLk/+3beT8EhrwtcG3VPpvwp\n" + "BIOqsqVVTvw/CwIDAQABo2MwYTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUw\n" + "AwEB/zAdBgNVHQ4EFgQUTgLurD72FchM7Sz1BcGPnIQISYMwHwYDVR0jBBgwFoAU\n" + "TgLurD72FchM7Sz1BcGPnIQISYMwDQYJKoZIhvcNAQEFBQADggEBAHZcgIio8pAm\n" + "MjHD5cl6wKjXxScXKtXygWH2BoDMYBJF9yfyKO2jEFxYKbHePpnXB1R04zJSWAw5\n" + "2EUuDI1pSBh9BA82/5PkuNlNeSTB3dXDD2PEPdzVWbSKvUB8ZdooV+2vngL0Zm4r\n" + "47QPyd18yPHrRIbtBtHR/6CwKevLZ394zgExqhnekYKIqqEX41xsUV0Gm6x4vpjf\n" + "2u6O/+YE2U+qyyxHE5Wd5oqde0oo9UUpFETJPVb6Q2cEeQib8PBAyi0i6KnF+kIV\n" + "A9dY7IHSubtCK/i8wxMVqfd5GtbA8mmpeJFwnDvm9rBEsHybl08qlax9syEwsUYr\n" + "/40NawZfTUU=\n" + "-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\n" + "MIIEBjCCAu6gAwIBAgIJAMc0ZzaSUK51MA0GCSqGSIb3DQEBCwUAMIGPMQswCQYD\n" + "VQQGEwJVUzEQMA4GA1UEBwwHU2VhdHRsZTETMBEGA1UECAwKV2FzaGluZ3RvbjEi\n" + "MCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNlcywgSW5jLjETMBEGA1UECwwKQW1h\n" + "em9uIFJEUzEgMB4GA1UEAwwXQW1hem9uIFJEUyBSb290IDIwMTkgQ0EwHhcNMTkw\n" + "ODIyMTcwODUwWhcNMjQwODIyMTcwODUwWjCBjzELMAkGA1UEBhMCVVMxEDAOBgNV\n" + "BAcMB1NlYXR0bGUxEzARBgNVBAgMCldhc2hpbmd0b24xIjAgBgNVBAoMGUFtYXpv\n" + "biBXZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMxIDAeBgNV\n" + "BAMMF0FtYXpvbiBSRFMgUm9vdCAyMDE5IENBMIIBIjANBgkqhkiG9w0BAQEFAAOC\n" + "AQ8AMIIBCgKCAQEArXnF/E6/Qh+ku3hQTSKPMhQQlCpoWvnIthzX6MK3p5a0eXKZ\n" + "oWIjYcNNG6UwJjp4fUXl6glp53Jobn+tWNX88dNH2n8DVbppSwScVE2LpuL+94vY\n" + "0EYE/XxN7svKea8YvlrqkUBKyxLxTjh+U/KrGOaHxz9v0l6ZNlDbuaZw3qIWdD/I\n" + "6aNbGeRUVtpM6P+bWIoxVl/caQylQS6CEYUk+CpVyJSkopwJlzXT07tMoDL5WgX9\n" + "O08KVgDNz9qP/IGtAcRduRcNioH3E9v981QO1zt/Gpb2f8NqAjUUCUZzOnij6mx9\n" + "McZ+9cWX88CRzR0vQODWuZscgI08NvM69Fn2SQIDAQABo2MwYTAOBgNVHQ8BAf8E\n" + "BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUc19g2LzLA5j0Kxc0LjZa\n" + "pmD/vB8wHwYDVR0jBBgwFoAUc19g2LzLA5j0Kxc0LjZapmD/vB8wDQYJKoZIhvcN\n" + "AQELBQADggEBAHAG7WTmyjzPRIM85rVj+fWHsLIvqpw6DObIjMWokpliCeMINZFV\n" + "ynfgBKsf1ExwbvJNzYFXW6dihnguDG9VMPpi2up/ctQTN8tm9nDKOy08uNZoofMc\n" + "NUZxKCEkVKZv+IL4oHoeayt8egtv3ujJM6V14AstMQ6SwvwvA93EP/Ug2e4WAXHu\n" + "cbI1NAbUgVDqp+DRdfvZkgYKryjTWd/0+1fS8X1bBZVWzl7eirNVnHbSH2ZDpNuY\n" + "0SBd8dj5F6ld3t58ydZbrTHze7JJOd8ijySAp4/kiu9UfZWuTPABzDa/DSdz9Dk/\n" + "zPW4CXXvhLmE02TA9/HeCw3KEHIwicNuEfw=\n" + "-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\n" + "MIIEATCCAumgAwIBAgIBRDANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMCVVMx\n" + "EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoM\n" + "GUFtYXpvbiBXZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMx\n" + "GzAZBgNVBAMMEkFtYXpvbiBSRFMgUm9vdCBDQTAeFw0xNTAyMDUyMjAzMDZaFw0y\n" + "MDAzMDUyMjAzMDZaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3Rv\n" + "bjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNl\n" + "cywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzElMCMGA1UEAwwcQW1hem9uIFJE\n" + "UyBhcC1ub3J0aGVhc3QtMSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC\n" + "ggEBAMmM2B4PfTXCZjbZMWiDPyxvk/eeNwIRJAhfzesiGUiLozX6CRy3rwC1ZOPV\n" + "AcQf0LB+O8wY88C/cV+d4Q2nBDmnk+Vx7o2MyMh343r5rR3Na+4izd89tkQVt0WW\n" + "vO21KRH5i8EuBjinboOwAwu6IJ+HyiQiM0VjgjrmEr/YzFPL8MgHD/YUHehqjACn\n" + "C0+B7/gu7W4qJzBL2DOf7ub2qszGtwPE+qQzkCRDwE1A4AJmVE++/FLH2Zx78Egg\n" + "fV1sUxPtYgjGH76VyyO6GNKM6rAUMD/q5mnPASQVIXgKbupr618bnH+SWHFjBqZq\n" + "HvDGPMtiiWII41EmGUypyt5AbysCAwEAAaNmMGQwDgYDVR0PAQH/BAQDAgEGMBIG\n" + "A1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFIiKM0Q6n1K4EmLxs3ZXxINbwEwR\n" + "MB8GA1UdIwQYMBaAFE4C7qw+9hXITO0s9QXBj5yECEmDMA0GCSqGSIb3DQEBBQUA\n" + "A4IBAQBezGbE9Rw/k2e25iGjj5n8r+M3dlye8ORfCE/dijHtxqAKasXHgKX8I9Tw\n" + "JkBiGWiuzqn7gO5MJ0nMMro1+gq29qjZnYX1pDHPgsRjUX8R+juRhgJ3JSHijRbf\n" + "4qNJrnwga7pj94MhcLq9u0f6dxH6dXbyMv21T4TZMTmcFduf1KgaiVx1PEyJjC6r\n" + "M+Ru+A0eM+jJ7uCjUoZKcpX8xkj4nmSnz9NMPog3wdOSB9cAW7XIc5mHa656wr7I\n" + "WJxVcYNHTXIjCcng2zMKd1aCcl2KSFfy56sRfT7J5Wp69QSr+jq8KM55gw8uqAwi\n" + "VPrXn2899T1rcTtFYFP16WXjGuc0\n" + "-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\n" + "MIIEATCCAumgAwIBAgIBTDANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMCVVMx\n" + "EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoM\n" + "GUFtYXpvbiBXZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMx\n" + "GzAZBgNVBAMMEkFtYXpvbiBSRFMgUm9vdCBDQTAeFw0xNTExMDYwMDA1NDZaFw0y\n" + "MDAzMDUwMDA1NDZaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3Rv\n" + "bjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNl\n" + "cywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzElMCMGA1UEAwwcQW1hem9uIFJE\n" + "UyBhcC1ub3J0aGVhc3QtMiBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC\n" + "ggEBAKSwd+RVUzTRH0FgnbwoTK8TMm/zMT4+2BvALpAUe6YXbkisg2goycWuuWLg\n" + "jOpFBB3GtyvXZnkqi7MkDWUmj1a2kf8l2oLyoaZ+Hm9x/sV+IJzOqPvj1XVUGjP6\n" + "yYYnPJmUYqvZeI7fEkIGdFkP2m4/sgsSGsFvpD9FK1bL1Kx2UDpYX0kHTtr18Zm/\n" + "1oN6irqWALSmXMDydb8hE0FB2A1VFyeKE6PnoDj/Y5cPHwPPdEi6/3gkDkSaOG30\n" + "rWeQfL3pOcKqzbHaWTxMphd0DSL/quZ64Nr+Ly65Q5PRcTrtr55ekOUziuqXwk+o\n" + "9QpACMwcJ7ROqOznZTqTzSFVXFECAwEAAaNmMGQwDgYDVR0PAQH/BAQDAgEGMBIG\n" + "A1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFM6Nox/QWbhzWVvzoJ/y0kGpNPK+\n" + "MB8GA1UdIwQYMBaAFE4C7qw+9hXITO0s9QXBj5yECEmDMA0GCSqGSIb3DQEBBQUA\n" + "A4IBAQCTkWBqNvyRf3Y/W21DwFx3oT/AIWrHt0BdGZO34tavummXemTH9LZ/mqv9\n" + "aljt6ZuDtf5DEQjdsAwXMsyo03ffnP7doWm8iaF1+Mui77ot0TmTsP/deyGwukvJ\n" + "tkxX8bZjDh+EaNauWKr+CYnniNxCQLfFtXYJsfOdVBzK3xNL+Z3ucOQRhr2helWc\n" + "CDQgwfhP1+3pRVKqHvWCPC4R3fT7RZHuRmZ38kndv476GxRntejh+ePffif78bFI\n" + "3rIZCPBGobrrUMycafSbyXteoGca/kA+/IqrAPlk0pWQ4aEL0yTWN2h2dnjoD7oX\n" + "byIuL/g9AGRh97+ssn7D6bDRPTbW\n" + "-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\n" + "MIIEATCCAumgAwIBAgIBRTANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMCVVMx\n" + "EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoM\n" + "GUFtYXpvbiBXZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMx\n" + "GzAZBgNVBAMMEkFtYXpvbiBSRFMgUm9vdCBDQTAeFw0xNTAyMDUyMjAzMTlaFw0y\n" + "MDAzMDUyMjAzMTlaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3Rv\n" + "bjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNl\n" + "cywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzElMCMGA1UEAwwcQW1hem9uIFJE\n" + "UyBhcC1zb3V0aGVhc3QtMSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC\n" + "ggEBANaXElmSEYt/UtxHFsARFhSUahTf1KNJzR0Dmay6hqOXQuRVbKRwPd19u5vx\n" + "DdF1sLT7D69IK3VDnUiQScaCv2Dpu9foZt+rLx+cpx1qiQd1UHrvqq8xPzQOqCdC\n" + "RFStq6yVYZ69yfpfoI67AjclMOjl2Vph3ftVnqP0IgVKZdzeC7fd+umGgR9xY0Qr\n" + "Ubhd/lWdsbNvzK3f1TPWcfIKQnpvSt85PIEDJir6/nuJUKMtmJRwTymJf0i+JZ4x\n" + "7dJa341p2kHKcHMgOPW7nJQklGBA70ytjUV6/qebS3yIugr/28mwReflg3TJzVDl\n" + "EOvi6pqbqNbkMuEwGDCmEQIVqgkCAwEAAaNmMGQwDgYDVR0PAQH/BAQDAgEGMBIG\n" + "A1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFAu93/4k5xbWOsgdCdn+/KdiRuit\n" + "MB8GA1UdIwQYMBaAFE4C7qw+9hXITO0s9QXBj5yECEmDMA0GCSqGSIb3DQEBBQUA\n" + "A4IBAQBlcjSyscpPjf5+MgzMuAsCxByqUt+WFspwcMCpwdaBeHOPSQrXNqX2Sk6P\n" + "kth6oCivA64trWo8tFMvPYlUA1FYVD5WpN0kCK+P5pD4KHlaDsXhuhClJzp/OP8t\n" + "pOyUr5109RHLxqoKB5J5m1XA7rgcFjnMxwBSWFe3/4uMk/+4T53YfCVXuc6QV3i7\n" + "I/2LAJwFf//pTtt6fZenYfCsahnr2nvrNRNyAxcfvGZ/4Opn/mJtR6R/AjvQZHiR\n" + "bkRNKF2GW0ueK5W4FkZVZVhhX9xh1Aj2Ollb+lbOqADaVj+AT3PoJPZ3MPQHKCXm\n" + "xwG0LOLlRr/TfD6li1AfOVTAJXv9\n" + "-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\n" + "MIIEATCCAumgAwIBAgIBRjANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMCVVMx\n" + "EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoM\n" + "GUFtYXpvbiBXZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMx\n" + "GzAZBgNVBAMMEkFtYXpvbiBSRFMgUm9vdCBDQTAeFw0xNTAyMDUyMjAzMjRaFw0y\n" + "MDAzMDUyMjAzMjRaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3Rv\n" + "bjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNl\n" + "cywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzElMCMGA1UEAwwcQW1hem9uIFJE\n" + "UyBhcC1zb3V0aGVhc3QtMiBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC\n" + "ggEBAJqBAJutz69hFOh3BtLHZTbwE8eejGGKayn9hu98YMDPzWzGXWCmW+ZYWELA\n" + "cY3cNWNF8K4FqKXFr2ssorBYim1UtYFX8yhydT2hMD5zgQ2sCGUpuidijuPA6zaq\n" + "Z3tdhVR94f0q8mpwpv2zqR9PcqaGDx2VR1x773FupRPRo7mEW1vC3IptHCQlP/zE\n" + "7jQiLl28bDIH2567xg7e7E9WnZToRnhlYdTaDaJsHTzi5mwILi4cihSok7Shv/ME\n" + "hnukvxeSPUpaVtFaBhfBqq055ePq9I+Ns4KGreTKMhU0O9fkkaBaBmPaFgmeX/XO\n" + "n2AX7gMouo3mtv34iDTZ0h6YCGkCAwEAAaNmMGQwDgYDVR0PAQH/BAQDAgEGMBIG\n" + "A1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFIlQnY0KHYWn1jYumSdJYfwj/Nfw\n" + "MB8GA1UdIwQYMBaAFE4C7qw+9hXITO0s9QXBj5yECEmDMA0GCSqGSIb3DQEBBQUA\n" + "A4IBAQA0wVU6/l41cTzHc4azc4CDYY2Wd90DFWiH9C/mw0SgToYfCJ/5Cfi0NT/Y\n" + "PRnk3GchychCJgoPA/k9d0//IhYEAIiIDjyFVgjbTkKV3sh4RbdldKVOUB9kumz/\n" + "ZpShplsGt3z4QQiVnKfrAgqxWDjR0I0pQKkxXa6Sjkicos9LQxVtJ0XA4ieG1E7z\n" + "zJr+6t80wmzxvkInSaWP3xNJK9azVRTrgQZQlvkbpDbExl4mNTG66VD3bAp6t3Wa\n" + "B49//uDdfZmPkqqbX+hsxp160OH0rxJppwO3Bh869PkDnaPEd/Pxw7PawC+li0gi\n" + "NRV8iCEx85aFxcyOhqn0WZOasxee\n" + "-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\n" + "MIID/zCCAuegAwIBAgIBRzANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMCVVMx\n" + "EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoM\n" + "GUFtYXpvbiBXZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMx\n" + "GzAZBgNVBAMMEkFtYXpvbiBSRFMgUm9vdCBDQTAeFw0xNTAyMDUyMjAzMzFaFw0y\n" + "MDAzMDUyMjAzMzFaMIGSMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3Rv\n" + "bjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNl\n" + "cywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEjMCEGA1UEAwwaQW1hem9uIFJE\n" + "UyBldS1jZW50cmFsLTEgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB\n" + "AQDFtP2dhSLuaPOI4ZrrPWsK4OY9ocQBp3yApH1KJYmI9wpQKZG/KCH2E6Oo7JAw\n" + "QORU519r033T+FO2Z7pFPlmz1yrxGXyHpJs8ySx3Yo5S8ncDCdZJCLmtPiq/hahg\n" + "5/0ffexMFUCQaYicFZsrJ/cStdxUV+tSw2JQLD7UxS9J97LQWUPyyG+ZrjYVTVq+\n" + "zudnFmNSe4QoecXMhAFTGJFQXxP7nhSL9Ao5FGgdXy7/JWeWdQIAj8ku6cBDKPa6\n" + "Y6kP+ak+In+Lye8z9qsCD/afUozfWjPR2aA4JoIZVF8dNRShIMo8l0XfgfM2q0+n\n" + "ApZWZ+BjhIO5XuoUgHS3D2YFAgMBAAGjZjBkMA4GA1UdDwEB/wQEAwIBBjASBgNV\n" + "HRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBRm4GsWIA/M6q+tK8WGHWDGh2gcyTAf\n" + "BgNVHSMEGDAWgBROAu6sPvYVyEztLPUFwY+chAhJgzANBgkqhkiG9w0BAQUFAAOC\n" + "AQEAHpMmeVQNqcxgfQdbDIi5UIy+E7zZykmtAygN1XQrvga9nXTis4kOTN6g5/+g\n" + "HCx7jIXeNJzAbvg8XFqBN84Quqgpl/tQkbpco9Jh1HDs558D5NnZQxNqH5qXQ3Mm\n" + "uPgCw0pYcPOa7bhs07i+MdVwPBsX27CFDtsgAIru8HvKxY1oTZrWnyIRo93tt/pk\n" + "WuItVMVHjaQZVfTCow0aDUbte6Vlw82KjUFq+n2NMSCJDiDKsDDHT6BJc4AJHIq3\n" + "/4Z52MSC9KMr0yAaaoWfW/yMEj9LliQauAgwVjArF4q78rxpfKTG9Rfd8U1BZANP\n" + "7FrFMN0ThjfA1IvmOYcgskY5bQ==\n" + "-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\n" + "MIID/DCCAuSgAwIBAgIBSDANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMCVVMx\n" + "EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoM\n" + "GUFtYXpvbiBXZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMx\n" + "GzAZBgNVBAMMEkFtYXpvbiBSRFMgUm9vdCBDQTAeFw0xNTAyMDUyMjAzMzVaFw0y\n" + "MDAzMDUyMjAzMzVaMIGPMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3Rv\n" + "bjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNl\n" + "cywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEgMB4GA1UEAwwXQW1hem9uIFJE\n" + "UyBldS13ZXN0LTEgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCx\n" + "PdbqQ0HKRj79Pmocxvjc+P6i4Ux24kgFIl+ckiir1vzkmesc3a58gjrMlCksEObt\n" + "Yihs5IhzEq1ePT0gbfS9GYFp34Uj/MtPwlrfCBWG4d2TcrsKRHr1/EXUYhWqmdrb\n" + "RhX8XqoRhVkbF/auzFSBhTzcGGvZpQ2KIaxRcQfcXlMVhj/pxxAjh8U4F350Fb0h\n" + "nX1jw4/KvEreBL0Xb2lnlGTkwVxaKGSgXEnOgIyOFdOQc61vdome0+eeZsP4jqeR\n" + "TGYJA9izJsRbe2YJxHuazD+548hsPlM3vFzKKEVURCha466rAaYAHy3rKur3HYQx\n" + "Yt+SoKcEz9PXuSGj96ejAgMBAAGjZjBkMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMB\n" + "Af8ECDAGAQH/AgEAMB0GA1UdDgQWBBTebg//h2oeXbZjQ4uuoiuLYzuiPDAfBgNV\n" + "HSMEGDAWgBROAu6sPvYVyEztLPUFwY+chAhJgzANBgkqhkiG9w0BAQUFAAOCAQEA\n" + "TikPaGeZasTPw+4RBemlsyPAjtFFQLo7ddaFdORLgdEysVf8aBqndvbA6MT/v4lj\n" + "GtEtUdF59ZcbWOrVm+fBZ2h/jYJ59dYF/xzb09nyRbdMSzB9+mkSsnOMqluq5y8o\n" + "DY/PfP2vGhEg/2ZncRC7nlQU1Dm8F4lFWEiQ2fi7O1cW852Vmbq61RIfcYsH/9Ma\n" + "kpgk10VZ75b8m3UhmpZ/2uRY+JEHImH5WpcTJ7wNiPNJsciZMznGtrgOnPzYco8L\n" + "cDleOASIZifNMQi9PKOJKvi0ITz0B/imr8KBsW0YjZVJ54HMa7W1lwugSM7aMAs+\n" + "E3Sd5lS+SHwWaOCHwhOEVA==\n" + "-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\n" + "MIID/DCCAuSgAwIBAgIBSTANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMCVVMx\n" + "EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoM\n" + "GUFtYXpvbiBXZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMx\n" + "GzAZBgNVBAMMEkFtYXpvbiBSRFMgUm9vdCBDQTAeFw0xNTAyMDUyMjAzNDBaFw0y\n" + "MDAzMDUyMjAzNDBaMIGPMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3Rv\n" + "bjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNl\n" + "cywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEgMB4GA1UEAwwXQW1hem9uIFJE\n" + "UyBzYS1lYXN0LTEgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCU\n" + "X4OBnQ5xA6TLJAiFEI6l7bUWjoVJBa/VbMdCCSs2i2dOKmqUaXu2ix2zcPILj3lZ\n" + "GMk3d/2zvTK/cKhcFrewHUBamTeVHdEmynhMQamqNmkM4ptYzFcvEUw1TGxHT4pV\n" + "Q6gSN7+/AJewQvyHexHo8D0+LDN0/Wa9mRm4ixCYH2CyYYJNKaZt9+EZfNu+PPS4\n" + "8iB0TWH0DgQkbWMBfCRgolLLitAZklZ4dvdlEBS7evN1/7ttBxUK6SvkeeSx3zBl\n" + "ww3BlXqc3bvTQL0A+RRysaVyFbvtp9domFaDKZCpMmDFAN/ntx215xmQdrSt+K3F\n" + "cXdGQYHx5q410CAclGnbAgMBAAGjZjBkMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMB\n" + "Af8ECDAGAQH/AgEAMB0GA1UdDgQWBBT6iVWnm/uakS+tEX2mzIfw+8JL0zAfBgNV\n" + "HSMEGDAWgBROAu6sPvYVyEztLPUFwY+chAhJgzANBgkqhkiG9w0BAQUFAAOCAQEA\n" + "FmDD+QuDklXn2EgShwQxV13+txPRuVdOSrutHhoCgMwFWCMtPPtBAKs6KPY7Guvw\n" + "DpJoZSehDiOfsgMirjOWjvfkeWSNvKfjWTVneX7pZD9W5WPnsDBvTbCGezm+v87z\n" + "b+ZM2ZMo98m/wkMcIEAgdSKilR2fuw8rLkAjhYFfs0A7tDgZ9noKwgHvoE4dsrI0\n" + "KZYco6DlP/brASfHTPa2puBLN9McK3v+h0JaSqqm5Ro2Bh56tZkQh8AWy/miuDuK\n" + "3+hNEVdxosxlkM1TPa1DGj0EzzK0yoeerXuH2HX7LlCrrxf6/wdKnjR12PMrLQ4A\n" + "pCqkcWw894z6bV9MAvKe6A==\n" + "-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\n" + "MIID/DCCAuSgAwIBAgIBQzANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMCVVMx\n" + "EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoM\n" + "GUFtYXpvbiBXZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMx\n" + "GzAZBgNVBAMMEkFtYXpvbiBSRFMgUm9vdCBDQTAeFw0xNTAyMDUyMTU0MDRaFw0y\n" + "MDAzMDUyMTU0MDRaMIGPMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3Rv\n" + "bjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNl\n" + "cywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEgMB4GA1UEAwwXQW1hem9uIFJE\n" + "UyB1cy1lYXN0LTEgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDI\n" + "UIuwh8NusKHk1SqPXcP7OqxY3S/M2ZyQWD3w7Bfihpyyy/fc1w0/suIpX3kbMhAV\n" + "2ESwged2/2zSx4pVnjp/493r4luhSqQYzru78TuPt9bhJIJ51WXunZW2SWkisSaf\n" + "USYUzVN9ezR/bjXTumSUQaLIouJt3OHLX49s+3NAbUyOI8EdvgBQWD68H1epsC0n\n" + "CI5s+pIktyOZ59c4DCDLQcXErQ+tNbDC++oct1ANd/q8p9URonYwGCGOBy7sbCYq\n" + "9eVHh1Iy2M+SNXddVOGw5EuruvHoCIQyOz5Lz4zSuZA9dRbrfztNOpezCNYu6NKM\n" + "n+hzcvdiyxv77uNm8EaxAgMBAAGjZjBkMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMB\n" + "Af8ECDAGAQH/AgEAMB0GA1UdDgQWBBQSQG3TmMe6Sa3KufaPBa72v4QFDzAfBgNV\n" + "HSMEGDAWgBROAu6sPvYVyEztLPUFwY+chAhJgzANBgkqhkiG9w0BAQUFAAOCAQEA\n" + "L/mOZfB3187xTmjOHMqN2G2oSKHBKiQLM9uv8+97qT+XR+TVsBT6b3yoPpMAGhHA\n" + "Pc7nxAF5gPpuzatx0OTLPcmYucFmfqT/1qA5WlgCnMNtczyNMH97lKFTNV7Njtek\n" + "jWEzAEQSyEWrkNpNlC4j6kMYyPzVXQeXUeZTgJ9FNnVZqmvfjip2N22tawMjrCn5\n" + "7KN/zN65EwY2oO9XsaTwwWmBu3NrDdMbzJnbxoWcFWj4RBwanR1XjQOVNhDwmCOl\n" + "/1Et13b8CPyj69PC8BOVU6cfTSx8WUVy0qvYOKHNY9Bqa5BDnIL3IVmUkeTlM1mt\n" + "enRpyBj+Bk9rh/ICdiRKmA==\n" + "-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\n" + "MIID/DCCAuSgAwIBAgIBSjANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMCVVMx\n" + "EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoM\n" + "GUFtYXpvbiBXZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMx\n" + "GzAZBgNVBAMMEkFtYXpvbiBSRFMgUm9vdCBDQTAeFw0xNTAyMDUyMjAzNDVaFw0y\n" + "MDAzMDUyMjAzNDVaMIGPMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3Rv\n" + "bjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNl\n" + "cywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEgMB4GA1UEAwwXQW1hem9uIFJE\n" + "UyB1cy13ZXN0LTEgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDE\n" + "Dhw+uw/ycaiIhhyu2pXFRimq0DlB8cNtIe8hdqndH8TV/TFrljNgR8QdzOgZtZ9C\n" + "zzQ2GRpInN/qJF6slEd6wO+6TaDBQkPY+07TXNt52POFUhdVkhJXHpE2BS7Xn6J7\n" + "7RFAOeG1IZmc2DDt+sR1BgXzUqHslQGfFYNS0/MBO4P+ya6W7IhruB1qfa4HiYQS\n" + "dbe4MvGWnv0UzwAqdR7OF8+8/5c58YXZIXCO9riYF2ql6KNSL5cyDPcYK5VK0+Q9\n" + "VI6vuJHSMYcF7wLePw8jtBktqAFE/wbdZiIHhZvNyiNWPPNTGUmQbaJ+TzQEHDs5\n" + "8en+/W7JKnPyBOkxxENbAgMBAAGjZjBkMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMB\n" + "Af8ECDAGAQH/AgEAMB0GA1UdDgQWBBS0nw/tFR9bCjgqWTPJkyy4oOD8bzAfBgNV\n" + "HSMEGDAWgBROAu6sPvYVyEztLPUFwY+chAhJgzANBgkqhkiG9w0BAQUFAAOCAQEA\n" + "CXGAY3feAak6lHdqj6+YWjy6yyUnLK37bRxZDsyDVXrPRQaXRzPTzx79jvDwEb/H\n" + "Q/bdQ7zQRWqJcbivQlwhuPJ4kWPUZgSt3JUUuqkMsDzsvj/bwIjlrEFDOdHGh0mi\n" + "eVIngFEjUXjMh+5aHPEF9BlQnB8LfVtKj18e15UDTXFa+xJPFxUR7wDzCfo4WI1m\n" + "sUMG4q1FkGAZgsoyFPZfF8IVvgCuGdR8z30VWKklFxttlK0eGLlPAyIO0CQxPQlo\n" + "saNJrHf4tLOgZIWk+LpDhNd9Et5EzvJ3aURUsKY4pISPPF5WdvM9OE59bERwUErd\n" + "nuOuQWQeeadMceZnauRzJQ==\n" + "-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\n" + "MIID/DCCAuSgAwIBAgIBSzANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMCVVMx\n" + "EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoM\n" + "GUFtYXpvbiBXZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMx\n" + "GzAZBgNVBAMMEkFtYXpvbiBSRFMgUm9vdCBDQTAeFw0xNTAyMDUyMjAzNTBaFw0y\n" + "MDAzMDUyMjAzNTBaMIGPMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3Rv\n" + "bjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNl\n" + "cywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEgMB4GA1UEAwwXQW1hem9uIFJE\n" + "UyB1cy13ZXN0LTIgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDM\n" + "H58SR48U6jyERC1vYTnub34smf5EQVXyzaTmspWGWGzT31NLNZGSDFaa7yef9kdO\n" + "mzJsgebR5tXq6LdwlIoWkKYQ7ycUaadtVKVYdI40QcI3cHn0qLFlg2iBXmWp/B+i\n" + "Z34VuVlCh31Uj5WmhaBoz8t/GRqh1V/aCsf3Wc6jCezH3QfuCjBpzxdOOHN6Ie2v\n" + "xX09O5qmZTvMoRBAvPkxdaPg/Mi7fxueWTbEVk78kuFbF1jHYw8U1BLILIAhcqlq\n" + "x4u8nl73t3O3l/soNUcIwUDK0/S+Kfqhwn9yQyPlhb4Wy3pfnZLJdkyHldktnQav\n" + "9TB9u7KH5Lk0aAYslMLxAgMBAAGjZjBkMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMB\n" + "Af8ECDAGAQH/AgEAMB0GA1UdDgQWBBT8roM4lRnlFHWMPWRz0zkwFZog1jAfBgNV\n" + "HSMEGDAWgBROAu6sPvYVyEztLPUFwY+chAhJgzANBgkqhkiG9w0BAQUFAAOCAQEA\n" + "JwrxwgwmPtcdaU7O7WDdYa4hprpOMamI49NDzmE0s10oGrqmLwZygcWU0jT+fJ+Y\n" + "pJe1w0CVfKaeLYNsOBVW3X4ZPmffYfWBheZiaiEflq/P6t7/Eg81gaKYnZ/x1Dfa\n" + "sUYkzPvCkXe9wEz5zdUTOCptDt89rBR9CstL9vE7WYUgiVVmBJffWbHQLtfjv6OF\n" + "NMb0QME981kGRzc2WhgP71YS2hHd1kXtsoYP1yTu4vThSKsoN4bkiHsaC1cRkLoy\n" + "0fFA4wpB3WloMEvCDaUvvH1LZlBXTNlwi9KtcwD4tDxkkBt4tQczKLGpQ/nF/W9n\n" + "8YDWk3IIc1sd0bkZqoau2Q==\n" + "-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\n" + "MIID/TCCAuWgAwIBAgIBTTANBgkqhkiG9w0BAQsFADCBijELMAkGA1UEBhMCVVMx\n" + "EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoM\n" + "GUFtYXpvbiBXZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMx\n" + "GzAZBgNVBAMMEkFtYXpvbiBSRFMgUm9vdCBDQTAeFw0xNjA1MDMyMTI5MjJaFw0y\n" + "MDAzMDUyMTI5MjJaMIGQMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3Rv\n" + "bjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNl\n" + "cywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEhMB8GA1UEAwwYQW1hem9uIFJE\n" + "UyBhcC1zb3V0aC0xIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA\n" + "06eWGLE0TeqL9kyWOLkS8q0fXO97z+xyBV3DKSB2lg2GkgBz3B98MkmkeB0SZy3G\n" + "Ce4uCpCPbFKiFEdiUclOlhZsrBuCeaimxLM3Ig2wuenElO/7TqgaYHYUbT3d+VQW\n" + "GUbLn5GRZJZe1OAClYdOWm7A1CKpuo+cVV1vxbY2nGUQSJPpVn2sT9gnwvjdE60U\n" + "JGYU/RLCTm8zmZBvlWaNIeKDnreIc4rKn6gUnJ2cQn1ryCVleEeyc3xjYDSrjgdn\n" + "FLYGcp9mphqVT0byeQMOk0c7RHpxrCSA0V5V6/CreFV2LteK50qcDQzDSM18vWP/\n" + "p09FoN8O7QrtOeZJzH/lmwIDAQABo2YwZDAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0T\n" + "AQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQU2i83QHuEl/d0keXF+69HNJph7cMwHwYD\n" + "VR0jBBgwFoAUTgLurD72FchM7Sz1BcGPnIQISYMwDQYJKoZIhvcNAQELBQADggEB\n" + "ACqnH2VjApoDqoSQOky52QBwsGaj+xWYHW5Gm7EvCqvQuhWMkeBuD6YJmMvNyA9G\n" + "I2lh6/o+sUk/RIsbYbxPRdhNPTOgDR9zsNRw6qxaHztq/CEC+mxDCLa3O1hHBaDV\n" + "BmB3nCZb93BvO0EQSEk7aytKq/f+sjyxqOcs385gintdHGU9uM7gTZHnU9vByJsm\n" + "/TL07Miq67X0NlhIoo3jAk+xHaeKJdxdKATQp0448P5cY20q4b8aMk1twcNaMvCP\n" + "dG4M5doaoUA8OQ/0ukLLae/LBxLeTw04q1/a2SyFaVUX2Twbb1S3xVWwLA8vsyGr\n" + "igXx7B5GgP+IHb6DTjPJAi0=\n" + "-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\n" + "MIID/DCCAuSgAwIBAgIBTjANBgkqhkiG9w0BAQsFADCBijELMAkGA1UEBhMCVVMx\n" + "EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoM\n" + "GUFtYXpvbiBXZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMx\n" + "GzAZBgNVBAMMEkFtYXpvbiBSRFMgUm9vdCBDQTAeFw0xNjA4MTExOTU4NDVaFw0y\n" + "MDAzMDUxOTU4NDVaMIGPMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3Rv\n" + "bjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNl\n" + "cywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEgMB4GA1UEAwwXQW1hem9uIFJE\n" + "UyB1cy1lYXN0LTIgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCp\n" + "WnnUX7wM0zzstccX+4iXKJa9GR0a2PpvB1paEX4QRCgfhEdQWDaSqyrWNgdVCKkt\n" + "1aQkWu5j6VAC2XIG7kKoonm1ZdBVyBLqW5lXNywlaiU9yhJkwo8BR+/OqgE+PLt/\n" + "EO1mlN0PQudja/XkExCXTO29TG2j7F/O7hox6vTyHNHc0H88zS21uPuBE+jivViS\n" + "yzj/BkyoQ85hnkues3f9R6gCGdc+J51JbZnmgzUkvXjAEuKhAm9JksVOxcOKUYe5\n" + "ERhn0U9zjzpfbAITIkul97VVa5IxskFFTHIPJbvRKHJkiF6wTJww/tc9wm+fSCJ1\n" + "+DbQTGZgkQ3bJrqRN29/AgMBAAGjZjBkMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMB\n" + "Af8ECDAGAQH/AgEAMB0GA1UdDgQWBBSAHQzUYYZbepwKEMvGdHp8wzHnfDAfBgNV\n" + "HSMEGDAWgBROAu6sPvYVyEztLPUFwY+chAhJgzANBgkqhkiG9w0BAQsFAAOCAQEA\n" + "MbaEzSYZ+aZeTBxf8yi0ta8K4RdwEJsEmP6IhFFQHYUtva2Cynl4Q9tZg3RMsybT\n" + "9mlnSQQlbN/wqIIXbkrcgFcHoXG9Odm/bDtUwwwDaiEhXVfeQom3G77QHOWMTCGK\n" + "qadwuh5msrb17JdXZoXr4PYHDKP7j0ONfAyFNER2+uecblHfRSpVq5UeF3L6ZJb8\n" + "fSw/GtAV6an+/0r+Qm+PiI2H5XuZ4GmRJYnGMhqWhBYrY7p3jtVnKcsh39wgfUnW\n" + "AvZEZG/yhFyAZW0Essa39LiL5VSq14Y1DOj0wgnhSY/9WHxaAo1HB1T9OeZknYbD\n" + "fl/EGSZ0TEvZkENrXcPlVA==\n" + "-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\n" + "MIID/zCCAuegAwIBAgIBTzANBgkqhkiG9w0BAQsFADCBijELMAkGA1UEBhMCVVMx\n" + "EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoM\n" + "GUFtYXpvbiBXZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMx\n" + "GzAZBgNVBAMMEkFtYXpvbiBSRFMgUm9vdCBDQTAeFw0xNjA5MTUwMDEwMTFaFw0y\n" + "MDAzMDUwMDEwMTFaMIGSMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3Rv\n" + "bjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNl\n" + "cywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEjMCEGA1UEAwwaQW1hem9uIFJE\n" + "UyBjYS1jZW50cmFsLTEgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB\n" + "AQCZYI/iQ6DrS3ny3t1EwX1wAD+3LMgh7Fd01EW5LIuaK2kYIIQpsVKhxLCit/V5\n" + "AGc/1qiJS1Qz9ODLTh0Na6bZW6EakRzuHJLe32KJtoFYPC7Z09UqzXrpA/XL+1hM\n" + "P0ZmCWsU7Nn/EmvfBp9zX3dZp6P6ATrvDuYaVFr+SA7aT3FXpBroqBS1fyzUPs+W\n" + "c6zTR6+yc4zkHX0XQxC5RH6xjgpeRkoOajA/sNo7AQF7KlWmKHbdVF44cvvAhRKZ\n" + "XaoVs/C4GjkaAEPTCbopYdhzg+KLx9eB2BQnYLRrIOQZtRfbQI2Nbj7p3VsRuOW1\n" + "tlcks2w1Gb0YC6w6SuIMFkl1AgMBAAGjZjBkMA4GA1UdDwEB/wQEAwIBBjASBgNV\n" + "HRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBToYWxE1lawl6Ks6NsvpbHQ3GKEtzAf\n" + "BgNVHSMEGDAWgBROAu6sPvYVyEztLPUFwY+chAhJgzANBgkqhkiG9w0BAQsFAAOC\n" + "AQEAG/8tQ0ooi3hoQpa5EJz0/E5VYBsAz3YxA2HoIonn0jJyG16bzB4yZt4vNQMA\n" + "KsNlQ1uwDWYL1nz63axieUUFIxqxl1KmwfhsmLgZ0Hd2mnTPIl2Hw3uj5+wdgGBg\n" + "agnAZ0bajsBYgD2VGQbqjdk2Qn7Fjy3LEWIvGZx4KyZ99OJ2QxB7JOPdauURAtWA\n" + "DKYkP4LLJxtj07DSzG8kuRWb9B47uqUD+eKDIyjfjbnzGtd9HqqzYFau7EX3HVD9\n" + "9Qhnjl7bTZ6YfAEZ3nH2t3Vc0z76XfGh47rd0pNRhMV+xpok75asKf/lNh5mcUrr\n" + "VKwflyMkQpSbDCmcdJ90N2xEXQ==\n" + "-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\n" + "MIID/DCCAuSgAwIBAgIBUDANBgkqhkiG9w0BAQsFADCBijELMAkGA1UEBhMCVVMx\n" + "EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoM\n" + "GUFtYXpvbiBXZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMx\n" + "GzAZBgNVBAMMEkFtYXpvbiBSRFMgUm9vdCBDQTAeFw0xNjEwMTAxNzQ0NDJaFw0y\n" + "MDAzMDUxNzQ0NDJaMIGPMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3Rv\n" + "bjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNl\n" + "cywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEgMB4GA1UEAwwXQW1hem9uIFJE\n" + "UyBldS13ZXN0LTIgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDO\n" + "cttLJfubB4XMMIGWNfJISkIdCMGJyOzLiMJaiWB5GYoXKhEl7YGotpy0qklwW3BQ\n" + "a0fmVdcCLX+dIuVQ9iFK+ZcK7zwm7HtdDTCHOCKeOh2IcnU4c/VIokFi6Gn8udM6\n" + "N/Zi5M5OGpVwLVALQU7Yctsn3c95el6MdVx6mJiIPVu7tCVZn88Z2koBQ2gq9P4O\n" + "Sb249SHFqOb03lYDsaqy1NDsznEOhaRBw7DPJFpvmw1lA3/Y6qrExRI06H2VYR2i\n" + "7qxwDV50N58fs10n7Ye1IOxTVJsgEA7X6EkRRXqYaM39Z76R894548WHfwXWjUsi\n" + "MEX0RS0/t1GmnUQjvevDAgMBAAGjZjBkMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMB\n" + "Af8ECDAGAQH/AgEAMB0GA1UdDgQWBBQBxmcuRSxERYCtNnSr5xNfySokHjAfBgNV\n" + "HSMEGDAWgBROAu6sPvYVyEztLPUFwY+chAhJgzANBgkqhkiG9w0BAQsFAAOCAQEA\n" + "UyCUQjsF3nUAABjfEZmpksTuUo07aT3KGYt+EMMFdejnBQ0+2lJJFGtT+CDAk1SD\n" + "RSgfEBon5vvKEtlnTf9a3pv8WXOAkhfxnryr9FH6NiB8obISHNQNPHn0ljT2/T+I\n" + "Y6ytfRvKHa0cu3V0NXbJm2B4KEOt4QCDiFxUIX9z6eB4Kditwu05OgQh6KcogOiP\n" + "JesWxBMXXGoDC1rIYTFO7szwDyOHlCcVXJDNsTJhc32oDWYdeIbW7o/5I+aQsrXZ\n" + "C96HykZcgWzz6sElrQxUaT3IoMw/5nmw4uWKKnZnxgI9bY4fpQwMeBZ96iHfFxvH\n" + "mqfEEuC7uUoPofXdBp2ObQ==\n" + "-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\n" + "MIIECjCCAvKgAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwgZMxCzAJBgNVBAYTAlVT\n" + "MRAwDgYDVQQHDAdTZWF0dGxlMRMwEQYDVQQIDApXYXNoaW5ndG9uMSIwIAYDVQQK\n" + "DBlBbWF6b24gV2ViIFNlcnZpY2VzLCBJbmMuMRMwEQYDVQQLDApBbWF6b24gUkRT\n" + "MSQwIgYDVQQDDBtBbWF6b24gUkRTIEdvdkNsb3VkIFJvb3QgQ0EwHhcNMTcwNTE5\n" + "MjIzMTE5WhcNMjIwNTE4MTIwMDAwWjCBkzELMAkGA1UEBhMCVVMxEzARBgNVBAgM\n" + "Cldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoMGUFtYXpvbiBX\n" + "ZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMxJDAiBgNVBAMM\n" + "G0FtYXpvbiBSRFMgdXMtZ292LXdlc3QtMSBDQTCCASIwDQYJKoZIhvcNAQEBBQAD\n" + "ggEPADCCAQoCggEBAM8YZLKAzzOdNnoi7Klih26Zkj+OCpDfwx4ZYB6f8L8UoQi5\n" + "8z9ZtIwMjiJ/kO08P1yl4gfc7YZcNFvhGruQZNat3YNpxwUpQcr4mszjuffbL4uz\n" + "+/8FBxALdqCVOJ5Q0EVSfz3d9Bd1pUPL7ARtSpy7bn/tUPyQeI+lODYO906C0TQ3\n" + "b9bjOsgAdBKkHfjLdsknsOZYYIzYWOJyFJJa0B11XjDUNBy/3IuC0KvDl6At0V5b\n" + "8M6cWcKhte2hgjwTYepV+/GTadeube1z5z6mWsN5arOAQUtYDLH6Aztq9mCJzLHm\n" + "RccBugnGl3fRLJ2VjioN8PoGoN9l9hFBy5fnFgsCAwEAAaNmMGQwDgYDVR0PAQH/\n" + "BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFEG7+br8KkvwPd5g\n" + "71Rvh2stclJbMB8GA1UdIwQYMBaAFEkQz6S4NS5lOYKcDjBSuCcVpdzjMA0GCSqG\n" + "SIb3DQEBCwUAA4IBAQBMA327u5ABmhX+aPxljoIbxnydmAFWxW6wNp5+rZrvPig8\n" + "zDRqGQWWr7wWOIjfcWugSElYtf/m9KZHG/Z6+NG7nAoUrdcd1h/IQhb+lFQ2b5g9\n" + "sVzQv/H2JNkfZA8fL/Ko/Tm/f9tcqe0zrGCtT+5u0Nvz35Wl8CEUKLloS5xEb3k5\n" + "7D9IhG3fsE3vHWlWrGCk1cKry3j12wdPG5cUsug0vt34u6rdhP+FsM0tHI15Kjch\n" + "RuUCvyQecy2ZFNAa3jmd5ycNdL63RWe8oayRBpQBxPPCbHfILxGZEdJbCH9aJ2D/\n" + "l8oHIDnvOLdv7/cBjyYuvmprgPtu3QEkbre5Hln/\n" + "-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\n" + "MIID/DCCAuSgAwIBAgIBUTANBgkqhkiG9w0BAQsFADCBijELMAkGA1UEBhMCVVMx\n" + "EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoM\n" + "GUFtYXpvbiBXZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMx\n" + "GzAZBgNVBAMMEkFtYXpvbiBSRFMgUm9vdCBDQTAeFw0xNzA4MjUyMTM5MjZaFw0y\n" + "MDAzMDUyMTM5MjZaMIGPMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3Rv\n" + "bjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNl\n" + "cywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEgMB4GA1UEAwwXQW1hem9uIFJE\n" + "UyBldS13ZXN0LTMgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC+\n" + "xmlEC/3a4cJH+UPwXCE02lC7Zq5NHd0dn6peMeLN8agb6jW4VfSY0NydjRj2DJZ8\n" + "K7wV6sub5NUGT1NuFmvSmdbNR2T59KX0p2dVvxmXHHtIpQ9Y8Aq3ZfhmC5q5Bqgw\n" + "tMA1xayDi7HmoPX3R8kk9ktAZQf6lDeksCvok8idjTu9tiSpDiMwds5BjMsWfyjZ\n" + "d13PTGGNHYVdP692BSyXzSP1Vj84nJKnciW8tAqwIiadreJt5oXyrCXi8ekUMs80\n" + "cUTuGm3aA3Q7PB5ljJMPqz0eVddaiIvmTJ9O3Ez3Du/HpImyMzXjkFaf+oNXf/Hx\n" + "/EW5jCRR6vEiXJcDRDS7AgMBAAGjZjBkMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMB\n" + "Af8ECDAGAQH/AgEAMB0GA1UdDgQWBBRZ9mRtS5fHk3ZKhG20Oack4cAqMTAfBgNV\n" + "HSMEGDAWgBROAu6sPvYVyEztLPUFwY+chAhJgzANBgkqhkiG9w0BAQsFAAOCAQEA\n" + "F/u/9L6ExQwD73F/bhCw7PWcwwqsK1mypIdrjdIsu0JSgwWwGCXmrIspA3n3Dqxq\n" + "sMhAJD88s9Em7337t+naar2VyLO63MGwjj+vA4mtvQRKq8ScIpiEc7xN6g8HUMsd\n" + "gPG9lBGfNjuAZsrGJflrko4HyuSM7zHExMjXLH+CXcv/m3lWOZwnIvlVMa4x0Tz0\n" + "A4fklaawryngzeEjuW6zOiYCzjZtPlP8Fw0SpzppJ8VpQfrZ751RDo4yudmPqoPK\n" + "5EUe36L8U+oYBXnC5TlYs9bpVv9o5wJQI5qA9oQE2eFWxF1E0AyZ4V5sgGUBStaX\n" + "BjDDWul0wSo7rt1Tq7XpnA==\n" + "-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\n" + "MIIEATCCAumgAwIBAgIBTjANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMCVVMx\n" + "EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoM\n" + "GUFtYXpvbiBXZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMx\n" + "GzAZBgNVBAMMEkFtYXpvbiBSRFMgUm9vdCBDQTAeFw0xNzEyMDEwMDU1NDJaFw0y\n" + "MDAzMDUwMDU1NDJaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3Rv\n" + "bjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNl\n" + "cywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzElMCMGA1UEAwwcQW1hem9uIFJE\n" + "UyBhcC1ub3J0aGVhc3QtMyBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC\n" + "ggEBAMZtQNnm/XT19mTa10ftHLzg5UhajoI65JHv4TQNdGXdsv+CQdGYU49BJ9Eu\n" + "3bYgiEtTzR2lQe9zGMvtuJobLhOWuavzp7IixoIQcHkFHN6wJ1CvqrxgvJfBq6Hy\n" + "EuCDCiU+PPDLUNA6XM6Qx3IpHd1wrJkjRB80dhmMSpxmRmx849uFafhN+P1QybsM\n" + "TI0o48VON2+vj+mNuQTyLMMP8D4odSQHjaoG+zyJfJGZeAyqQyoOUOFEyQaHC3TT\n" + "3IDSNCQlpxb9LerbCoKu79WFBBq3CS5cYpg8/fsnV2CniRBFFUumBt5z4dhw9RJU\n" + "qlUXXO1ZyzpGd+c5v6FtrfXtnIUCAwEAAaNmMGQwDgYDVR0PAQH/BAQDAgEGMBIG\n" + "A1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFETv7ELNplYy/xTeIOInl6nzeiHg\n" + "MB8GA1UdIwQYMBaAFE4C7qw+9hXITO0s9QXBj5yECEmDMA0GCSqGSIb3DQEBBQUA\n" + "A4IBAQCpKxOQcd0tEKb3OtsOY8q/MPwTyustGk2Rt7t9G68idADp8IytB7M0SDRo\n" + "wWZqynEq7orQVKdVOanhEWksNDzGp0+FPAf/KpVvdYCd7ru3+iI+V4ZEp2JFdjuZ\n" + "Zz0PIjS6AgsZqE5Ri1J+NmfmjGZCPhsHnGZiBaenX6K5VRwwwmLN6xtoqrrfR5zL\n" + "QfBeeZNJG6KiM3R/DxJ5rAa6Fz+acrhJ60L7HprhB7SFtj1RCijau3+ZwiGmUOMr\n" + "yKlMv+VgmzSw7o4Hbxy1WVrA6zQsTHHSGf+vkQn2PHvnFMUEu/ZLbTDYFNmTLK91\n" + "K6o4nMsEvhBKgo4z7H1EqqxXhvN2\n" + "-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\n" + "MIIEDjCCAvagAwIBAgIJAMM61RQn3/kdMA0GCSqGSIb3DQEBCwUAMIGTMQswCQYD\n" + "VQQGEwJVUzEQMA4GA1UEBwwHU2VhdHRsZTETMBEGA1UECAwKV2FzaGluZ3RvbjEi\n" + "MCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNlcywgSW5jLjETMBEGA1UECwwKQW1h\n" + "em9uIFJEUzEkMCIGA1UEAwwbQW1hem9uIFJEUyBHb3ZDbG91ZCBSb290IENBMB4X\n" + "DTE3MDUxOTIyMjkxMVoXDTIyMDUxODIyMjkxMVowgZMxCzAJBgNVBAYTAlVTMRAw\n" + "DgYDVQQHDAdTZWF0dGxlMRMwEQYDVQQIDApXYXNoaW5ndG9uMSIwIAYDVQQKDBlB\n" + "bWF6b24gV2ViIFNlcnZpY2VzLCBJbmMuMRMwEQYDVQQLDApBbWF6b24gUkRTMSQw\n" + "IgYDVQQDDBtBbWF6b24gUkRTIEdvdkNsb3VkIFJvb3QgQ0EwggEiMA0GCSqGSIb3\n" + "DQEBAQUAA4IBDwAwggEKAoIBAQDGS9bh1FGiJPT+GRb3C5aKypJVDC1H2gbh6n3u\n" + "j8cUiyMXfmm+ak402zdLpSYMaxiQ7oL/B3wEmumIpRDAsQrSp3B/qEeY7ipQGOfh\n" + "q2TXjXGIUjiJ/FaoGqkymHRLG+XkNNBtb7MRItsjlMVNELXECwSiMa3nJL2/YyHW\n" + "nTr1+11/weeZEKgVbCUrOugFkMXnfZIBSn40j6EnRlO2u/NFU5ksK5ak2+j8raZ7\n" + "xW7VXp9S1Tgf1IsWHjGZZZguwCkkh1tHOlHC9gVA3p63WecjrIzcrR/V27atul4m\n" + "tn56s5NwFvYPUIx1dbC8IajLUrepVm6XOwdQCfd02DmOyjWJAgMBAAGjYzBhMA4G\n" + "A1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRJEM+kuDUu\n" + "ZTmCnA4wUrgnFaXc4zAfBgNVHSMEGDAWgBRJEM+kuDUuZTmCnA4wUrgnFaXc4zAN\n" + "BgkqhkiG9w0BAQsFAAOCAQEAcfA7uirXsNZyI2j4AJFVtOTKOZlQwqbyNducnmlg\n" + "/5nug9fAkwM4AgvF5bBOD1Hw6khdsccMwIj+1S7wpL+EYb/nSc8G0qe1p/9lZ/mZ\n" + "ff5g4JOa26lLuCrZDqAk4TzYnt6sQKfa5ZXVUUn0BK3okhiXS0i+NloMyaBCL7vk\n" + "kDwkHwEqflRKfZ9/oFTcCfoiHPA7AdBtaPVr0/Kj9L7k+ouz122huqG5KqX0Zpo8\n" + "S0IGvcd2FZjNSNPttNAK7YuBVsZ0m2nIH1SLp//00v7yAHIgytQwwB17PBcp4NXD\n" + "pCfTa27ng9mMMC2YLqWQpW4TkqjDin2ZC+5X/mbrjzTvVg==\n" + "-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\n" + "MIIEBzCCAu+gAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwgZQxCzAJBgNVBAYTAlVT\n" + "MRAwDgYDVQQHDAdTZWF0dGxlMRMwEQYDVQQIDApXYXNoaW5ndG9uMSIwIAYDVQQK\n" + "DBlBbWF6b24gV2ViIFNlcnZpY2VzLCBJbmMuMRMwEQYDVQQLDApBbWF6b24gUkRT\n" + "MSUwIwYDVQQDDBxBbWF6b24gUkRTIGFwLWVhc3QtMSBSb290IENBMB4XDTE5MDIx\n" + "NzAyNDcwMFoXDTIyMDYwMTEyMDAwMFowgY8xCzAJBgNVBAYTAlVTMRMwEQYDVQQI\n" + "DApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMSIwIAYDVQQKDBlBbWF6b24g\n" + "V2ViIFNlcnZpY2VzLCBJbmMuMRMwEQYDVQQLDApBbWF6b24gUkRTMSAwHgYDVQQD\n" + "DBdBbWF6b24gUkRTIGFwLWVhc3QtMSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP\n" + "ADCCAQoCggEBAOcJAUofyJuBuPr5ISHi/Ha5ed8h3eGdzn4MBp6rytPOg9NVGRQs\n" + "O93fNGCIKsUT6gPuk+1f1ncMTV8Y0Fdf4aqGWme+Khm3ZOP3V1IiGnVq0U2xiOmn\n" + "SQ4Q7LoeQC4lC6zpoCHVJyDjZ4pAknQQfsXb77Togdt/tK5ahev0D+Q3gCwAoBoO\n" + "DHKJ6t820qPi63AeGbJrsfNjLKiXlFPDUj4BGir4dUzjEeH7/hx37na1XG/3EcxP\n" + "399cT5k7sY/CR9kctMlUyEEUNQOmhi/ly1Lgtihm3QfjL6K9aGLFNwX35Bkh9aL2\n" + "F058u+n8DP/dPeKUAcJKiQZUmzuen5n57x8CAwEAAaNmMGQwDgYDVR0PAQH/BAQD\n" + "AgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFFlqgF4FQlb9yP6c+Q3E\n" + "O3tXv+zOMB8GA1UdIwQYMBaAFK9T6sY/PBZVbnHcNcQXf58P4OuPMA0GCSqGSIb3\n" + "DQEBCwUAA4IBAQDeXiS3v1z4jWAo1UvVyKDeHjtrtEH1Rida1eOXauFuEQa5tuOk\n" + "E53Os4haZCW4mOlKjigWs4LN+uLIAe1aFXGo92nGIqyJISHJ1L+bopx/JmIbHMCZ\n" + "0lTNJfR12yBma5VQy7vzeFku/SisKwX0Lov1oHD4MVhJoHbUJYkmAjxorcIHORvh\n" + "I3Vj5XrgDWtLDPL8/Id/roul/L+WX5ir+PGScKBfQIIN2lWdZoqdsx8YWqhm/ikL\n" + "C6qNieSwcvWL7C03ri0DefTQMY54r5wP33QU5hJ71JoaZI3YTeT0Nf+NRL4hM++w\n" + "Q0veeNzBQXg1f/JxfeA39IDIX1kiCf71tGlT\n" + "-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\n" + "MIIEDDCCAvSgAwIBAgICcEUwDQYJKoZIhvcNAQELBQAwgY8xCzAJBgNVBAYTAlVT\n" + "MRAwDgYDVQQHDAdTZWF0dGxlMRMwEQYDVQQIDApXYXNoaW5ndG9uMSIwIAYDVQQK\n" + "DBlBbWF6b24gV2ViIFNlcnZpY2VzLCBJbmMuMRMwEQYDVQQLDApBbWF6b24gUkRT\n" + "MSAwHgYDVQQDDBdBbWF6b24gUkRTIFJvb3QgMjAxOSBDQTAeFw0xOTA5MTgxNjU2\n" + "MjBaFw0yNDA4MjIxNzA4NTBaMIGZMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2Fz\n" + "aGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBT\n" + "ZXJ2aWNlcywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEqMCgGA1UEAwwhQW1h\n" + "em9uIFJEUyBhcC1ub3J0aGVhc3QtMSAyMDE5IENBMIIBIjANBgkqhkiG9w0BAQEF\n" + "AAOCAQ8AMIIBCgKCAQEAndtkldmHtk4TVQAyqhAvtEHSMb6pLhyKrIFved1WO3S7\n" + "+I+bWwv9b2W/ljJxLq9kdT43bhvzonNtI4a1LAohS6bqyirmk8sFfsWT3akb+4Sx\n" + "1sjc8Ovc9eqIWJCrUiSvv7+cS7ZTA9AgM1PxvHcsqrcUXiK3Jd/Dax9jdZE1e15s\n" + "BEhb2OEPE+tClFZ+soj8h8Pl2Clo5OAppEzYI4LmFKtp1X/BOf62k4jviXuCSst3\n" + "UnRJzE/CXtjmN6oZySVWSe0rQYuyqRl6//9nK40cfGKyxVnimB8XrrcxUN743Vud\n" + "QQVU0Esm8OVTX013mXWQXJHP2c0aKkog8LOga0vobQIDAQABo2YwZDAOBgNVHQ8B\n" + "Af8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQULmoOS1mFSjj+\n" + "snUPx4DgS3SkLFYwHwYDVR0jBBgwFoAUc19g2LzLA5j0Kxc0LjZapmD/vB8wDQYJ\n" + "KoZIhvcNAQELBQADggEBAAkVL2P1M2/G9GM3DANVAqYOwmX0Xk58YBHQu6iiQg4j\n" + "b4Ky/qsZIsgT7YBsZA4AOcPKQFgGTWhe9pvhmXqoN3RYltN8Vn7TbUm/ZVDoMsrM\n" + "gwv0+TKxW1/u7s8cXYfHPiTzVSJuOogHx99kBW6b2f99GbP7O1Sv3sLq4j6lVvBX\n" + "Fiacf5LAWC925nvlTzLlBgIc3O9xDtFeAGtZcEtxZJ4fnGXiqEnN4539+nqzIyYq\n" + "nvlgCzyvcfRAxwltrJHuuRu6Maw5AGcd2Y0saMhqOVq9KYKFKuD/927BTrbd2JVf\n" + "2sGWyuPZPCk3gq+5pCjbD0c6DkhcMGI6WwxvM5V/zSM=\n" + "-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\n" + "MIIEDDCCAvSgAwIBAgICOFAwDQYJKoZIhvcNAQELBQAwgY8xCzAJBgNVBAYTAlVT\n" + "MRAwDgYDVQQHDAdTZWF0dGxlMRMwEQYDVQQIDApXYXNoaW5ndG9uMSIwIAYDVQQK\n" + "DBlBbWF6b24gV2ViIFNlcnZpY2VzLCBJbmMuMRMwEQYDVQQLDApBbWF6b24gUkRT\n" + "MSAwHgYDVQQDDBdBbWF6b24gUkRTIFJvb3QgMjAxOSBDQTAeFw0xOTA5MTAxNzQ2\n" + "MjFaFw0yNDA4MjIxNzA4NTBaMIGZMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2Fz\n" + "aGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBT\n" + "ZXJ2aWNlcywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEqMCgGA1UEAwwhQW1h\n" + "em9uIFJEUyBhcC1ub3J0aGVhc3QtMiAyMDE5IENBMIIBIjANBgkqhkiG9w0BAQEF\n" + "AAOCAQ8AMIIBCgKCAQEAzU72e6XbaJbi4HjJoRNjKxzUEuChKQIt7k3CWzNnmjc5\n" + "8I1MjCpa2W1iw1BYVysXSNSsLOtUsfvBZxi/1uyMn5ZCaf9aeoA9UsSkFSZBjOCN\n" + "DpKPCmfV1zcEOvJz26+1m8WDg+8Oa60QV0ou2AU1tYcw98fOQjcAES0JXXB80P2s\n" + "3UfkNcnDz+l4k7j4SllhFPhH6BQ4lD2NiFAP4HwoG6FeJUn45EPjzrydxjq6v5Fc\n" + "cQ8rGuHADVXotDbEhaYhNjIrsPL+puhjWfhJjheEw8c4whRZNp6gJ/b6WEes/ZhZ\n" + "h32DwsDsZw0BfRDUMgUn8TdecNexHUw8vQWeC181hwIDAQABo2YwZDAOBgNVHQ8B\n" + "Af8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUwW9bWgkWkr0U\n" + "lrOsq2kvIdrECDgwHwYDVR0jBBgwFoAUc19g2LzLA5j0Kxc0LjZapmD/vB8wDQYJ\n" + "KoZIhvcNAQELBQADggEBAEugF0Gj7HVhX0ehPZoGRYRt3PBuI2YjfrrJRTZ9X5wc\n" + "9T8oHmw07mHmNy1qqWvooNJg09bDGfB0k5goC2emDiIiGfc/kvMLI7u+eQOoMKj6\n" + "mkfCncyRN3ty08Po45vTLBFZGUvtQmjM6yKewc4sXiASSBmQUpsMbiHRCL72M5qV\n" + "obcJOjGcIdDTmV1BHdWT+XcjynsGjUqOvQWWhhLPrn4jWe6Xuxll75qlrpn3IrIx\n" + "CRBv/5r7qbcQJPOgwQsyK4kv9Ly8g7YT1/vYBlR3cRsYQjccw5ceWUj2DrMVWhJ4\n" + "prf+E3Aa4vYmLLOUUvKnDQ1k3RGNu56V0tonsQbfsaM=\n" + "-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\n" + "MIIEDDCCAvSgAwIBAgICOYIwDQYJKoZIhvcNAQELBQAwgY8xCzAJBgNVBAYTAlVT\n" + "MRAwDgYDVQQHDAdTZWF0dGxlMRMwEQYDVQQIDApXYXNoaW5ndG9uMSIwIAYDVQQK\n" + "DBlBbWF6b24gV2ViIFNlcnZpY2VzLCBJbmMuMRMwEQYDVQQLDApBbWF6b24gUkRT\n" + "MSAwHgYDVQQDDBdBbWF6b24gUkRTIFJvb3QgMjAxOSBDQTAeFw0xOTA5MTcyMDA1\n" + "MjlaFw0yNDA4MjIxNzA4NTBaMIGZMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2Fz\n" + "aGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBT\n" + "ZXJ2aWNlcywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEqMCgGA1UEAwwhQW1h\n" + "em9uIFJEUyBhcC1ub3J0aGVhc3QtMyAyMDE5IENBMIIBIjANBgkqhkiG9w0BAQEF\n" + "AAOCAQ8AMIIBCgKCAQEA4dMak8W+XW8y/2F6nRiytFiA4XLwePadqWebGtlIgyCS\n" + "kbug8Jv5w7nlMkuxOxoUeD4WhI6A9EkAn3r0REM/2f0aYnd2KPxeqS2MrtdxxHw1\n" + "xoOxk2x0piNSlOz6yog1idsKR5Wurf94fvM9FdTrMYPPrDabbGqiBMsZZmoHLvA3\n" + "Z+57HEV2tU0Ei3vWeGIqnNjIekS+E06KhASxrkNU5vi611UsnYZlSi0VtJsH4UGV\n" + "LhnHl53aZL0YFO5mn/fzuNG/51qgk/6EFMMhaWInXX49Dia9FnnuWXwVwi6uX1Wn\n" + "7kjoHi5VtmC8ZlGEHroxX2DxEr6bhJTEpcLMnoQMqwIDAQABo2YwZDAOBgNVHQ8B\n" + "Af8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUsUI5Cb3SWB8+\n" + "gv1YLN/ABPMdxSAwHwYDVR0jBBgwFoAUc19g2LzLA5j0Kxc0LjZapmD/vB8wDQYJ\n" + "KoZIhvcNAQELBQADggEBAJAF3E9PM1uzVL8YNdzb6fwJrxxqI2shvaMVmC1mXS+w\n" + "G0zh4v2hBZOf91l1EO0rwFD7+fxoI6hzQfMxIczh875T6vUXePKVOCOKI5wCrDad\n" + "zQbVqbFbdhsBjF4aUilOdtw2qjjs9JwPuB0VXN4/jY7m21oKEOcnpe36+7OiSPjN\n" + "xngYewCXKrSRqoj3mw+0w/+exYj3Wsush7uFssX18av78G+ehKPIVDXptOCP/N7W\n" + "8iKVNeQ2QGTnu2fzWsGUSvMGyM7yqT+h1ILaT//yQS8er511aHMLc142bD4D9VSy\n" + "DgactwPDTShK/PXqhvNey9v/sKXm4XatZvwcc8KYlW4=\n" + "-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\n" + "MIIECDCCAvCgAwIBAgICVIYwDQYJKoZIhvcNAQELBQAwgY8xCzAJBgNVBAYTAlVT\n" + "MRAwDgYDVQQHDAdTZWF0dGxlMRMwEQYDVQQIDApXYXNoaW5ndG9uMSIwIAYDVQQK\n" + "DBlBbWF6b24gV2ViIFNlcnZpY2VzLCBJbmMuMRMwEQYDVQQLDApBbWF6b24gUkRT\n" + "MSAwHgYDVQQDDBdBbWF6b24gUkRTIFJvb3QgMjAxOSBDQTAeFw0xOTA5MDQxNzEz\n" + "MDRaFw0yNDA4MjIxNzA4NTBaMIGVMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2Fz\n" + "aGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBT\n" + "ZXJ2aWNlcywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEmMCQGA1UEAwwdQW1h\n" + "em9uIFJEUyBhcC1zb3V0aC0xIDIwMTkgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IB\n" + "DwAwggEKAoIBAQDUYOz1hGL42yUCrcsMSOoU8AeD/3KgZ4q7gP+vAz1WnY9K/kim\n" + "eWN/2Qqzlo3+mxSFQFyD4MyV3+CnCPnBl9Sh1G/F6kThNiJ7dEWSWBQGAB6HMDbC\n" + "BaAsmUc1UIz8sLTL3fO+S9wYhA63Wun0Fbm/Rn2yk/4WnJAaMZcEtYf6e0KNa0LM\n" + "p/kN/70/8cD3iz3dDR8zOZFpHoCtf0ek80QqTich0A9n3JLxR6g6tpwoYviVg89e\n" + "qCjQ4axxOkWWeusLeTJCcY6CkVyFvDAKvcUl1ytM5AiaUkXblE7zDFXRM4qMMRdt\n" + "lPm8d3pFxh0fRYk8bIKnpmtOpz3RIctDrZZxAgMBAAGjZjBkMA4GA1UdDwEB/wQE\n" + "AwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBT99wKJftD3jb4sHoHG\n" + "i3uGlH6W6TAfBgNVHSMEGDAWgBRzX2DYvMsDmPQrFzQuNlqmYP+8HzANBgkqhkiG\n" + "9w0BAQsFAAOCAQEAZ17hhr3dII3hUfuHQ1hPWGrpJOX/G9dLzkprEIcCidkmRYl+\n" + "hu1Pe3caRMh/17+qsoEErmnVq5jNY9X1GZL04IZH8YbHc7iRHw3HcWAdhN8633+K\n" + "jYEB2LbJ3vluCGnCejq9djDb6alOugdLMJzxOkHDhMZ6/gYbECOot+ph1tQuZXzD\n" + "tZ7prRsrcuPBChHlPjmGy8M9z8u+kF196iNSUGC4lM8vLkHM7ycc1/ZOwRq9aaTe\n" + "iOghbQQyAEe03MWCyDGtSmDfr0qEk+CHN+6hPiaL8qKt4s+V9P7DeK4iW08ny8Ox\n" + "AVS7u0OK/5+jKMAMrKwpYrBydOjTUTHScocyNw==\n" + "-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\n" + "MIIEDDCCAvSgAwIBAgICY4kwDQYJKoZIhvcNAQELBQAwgY8xCzAJBgNVBAYTAlVT\n" + "MRAwDgYDVQQHDAdTZWF0dGxlMRMwEQYDVQQIDApXYXNoaW5ndG9uMSIwIAYDVQQK\n" + "DBlBbWF6b24gV2ViIFNlcnZpY2VzLCBJbmMuMRMwEQYDVQQLDApBbWF6b24gUkRT\n" + "MSAwHgYDVQQDDBdBbWF6b24gUkRTIFJvb3QgMjAxOSBDQTAeFw0xOTA5MTMyMDEx\n" + "NDJaFw0yNDA4MjIxNzA4NTBaMIGZMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2Fz\n" + "aGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBT\n" + "ZXJ2aWNlcywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEqMCgGA1UEAwwhQW1h\n" + "em9uIFJEUyBhcC1zb3V0aGVhc3QtMSAyMDE5IENBMIIBIjANBgkqhkiG9w0BAQEF\n" + "AAOCAQ8AMIIBCgKCAQEAr5u9OuLL/OF/fBNUX2kINJLzFl4DnmrhnLuSeSnBPgbb\n" + "qddjf5EFFJBfv7IYiIWEFPDbDG5hoBwgMup5bZDbas+ZTJTotnnxVJTQ6wlhTmns\n" + "eHECcg2pqGIKGrxZfbQhlj08/4nNAPvyYCTS0bEcmQ1emuDPyvJBYDDLDU6AbCB5\n" + "6Z7YKFQPTiCBblvvNzchjLWF9IpkqiTsPHiEt21sAdABxj9ityStV3ja/W9BfgxH\n" + "wzABSTAQT6FbDwmQMo7dcFOPRX+hewQSic2Rn1XYjmNYzgEHisdUsH7eeXREAcTw\n" + "61TRvaLH8AiOWBnTEJXPAe6wYfrcSd1pD0MXpoB62wIDAQABo2YwZDAOBgNVHQ8B\n" + "Af8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUytwMiomQOgX5\n" + "Ichd+2lDWRUhkikwHwYDVR0jBBgwFoAUc19g2LzLA5j0Kxc0LjZapmD/vB8wDQYJ\n" + "KoZIhvcNAQELBQADggEBACf6lRDpfCD7BFRqiWM45hqIzffIaysmVfr+Jr+fBTjP\n" + "uYe/ba1omSrNGG23bOcT9LJ8hkQJ9d+FxUwYyICQNWOy6ejicm4z0C3VhphbTPqj\n" + "yjpt9nG56IAcV8BcRJh4o/2IfLNzC/dVuYJV8wj7XzwlvjysenwdrJCoLadkTr1h\n" + "eIdG6Le07sB9IxrGJL9e04afk37h7c8ESGSE4E+oS4JQEi3ATq8ne1B9DQ9SasXi\n" + "IRmhNAaISDzOPdyLXi9N9V9Lwe/DHcja7hgLGYx3UqfjhLhOKwp8HtoZORixAmOI\n" + "HfILgNmwyugAbuZoCazSKKBhQ0wgO0WZ66ZKTMG8Oho=\n" + "-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\n" + "MIIEDDCCAvSgAwIBAgICEkYwDQYJKoZIhvcNAQELBQAwgY8xCzAJBgNVBAYTAlVT\n" + "MRAwDgYDVQQHDAdTZWF0dGxlMRMwEQYDVQQIDApXYXNoaW5ndG9uMSIwIAYDVQQK\n" + "DBlBbWF6b24gV2ViIFNlcnZpY2VzLCBJbmMuMRMwEQYDVQQLDApBbWF6b24gUkRT\n" + "MSAwHgYDVQQDDBdBbWF6b24gUkRTIFJvb3QgMjAxOSBDQTAeFw0xOTA5MTYxOTUz\n" + "NDdaFw0yNDA4MjIxNzA4NTBaMIGZMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2Fz\n" + "aGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBT\n" + "ZXJ2aWNlcywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEqMCgGA1UEAwwhQW1h\n" + "em9uIFJEUyBhcC1zb3V0aGVhc3QtMiAyMDE5IENBMIIBIjANBgkqhkiG9w0BAQEF\n" + "AAOCAQ8AMIIBCgKCAQEAufodI2Flker8q7PXZG0P0vmFSlhQDw907A6eJuF/WeMo\n" + "GHnll3b4S6nC3oRS3nGeRMHbyU2KKXDwXNb3Mheu+ox+n5eb/BJ17eoj9HbQR1cd\n" + "gEkIciiAltf8gpMMQH4anP7TD+HNFlZnP7ii3geEJB2GGXSxgSWvUzH4etL67Zmn\n" + "TpGDWQMB0T8lK2ziLCMF4XAC/8xDELN/buHCNuhDpxpPebhct0T+f6Arzsiswt2j\n" + "7OeNeLLZwIZvVwAKF7zUFjC6m7/VmTQC8nidVY559D6l0UhhU0Co/txgq3HVsMOH\n" + "PbxmQUwJEKAzQXoIi+4uZzHFZrvov/nDTNJUhC6DqwIDAQABo2YwZDAOBgNVHQ8B\n" + "Af8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUwaZpaCme+EiV\n" + "M5gcjeHZSTgOn4owHwYDVR0jBBgwFoAUc19g2LzLA5j0Kxc0LjZapmD/vB8wDQYJ\n" + "KoZIhvcNAQELBQADggEBAAR6a2meCZuXO2TF9bGqKGtZmaah4pH2ETcEVUjkvXVz\n" + "sl+ZKbYjrun+VkcMGGKLUjS812e7eDF726ptoku9/PZZIxlJB0isC/0OyixI8N4M\n" + "NsEyvp52XN9QundTjkl362bomPnHAApeU0mRbMDRR2JdT70u6yAzGLGsUwMkoNnw\n" + "1VR4XKhXHYGWo7KMvFrZ1KcjWhubxLHxZWXRulPVtGmyWg/MvE6KF+2XMLhojhUL\n" + "+9jB3Fpn53s6KMx5tVq1x8PukHmowcZuAF8k+W4gk8Y68wIwynrdZrKRyRv6CVtR\n" + "FZ8DeJgoNZT3y/GT254VqMxxfuy2Ccb/RInd16tEvVk=\n" + "-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\n" + "MIIECjCCAvKgAwIBAgICEzUwDQYJKoZIhvcNAQELBQAwgY8xCzAJBgNVBAYTAlVT\n" + "MRAwDgYDVQQHDAdTZWF0dGxlMRMwEQYDVQQIDApXYXNoaW5ndG9uMSIwIAYDVQQK\n" + "DBlBbWF6b24gV2ViIFNlcnZpY2VzLCBJbmMuMRMwEQYDVQQLDApBbWF6b24gUkRT\n" + "MSAwHgYDVQQDDBdBbWF6b24gUkRTIFJvb3QgMjAxOSBDQTAeFw0xOTA5MTAyMDUy\n" + "MjVaFw0yNDA4MjIxNzA4NTBaMIGXMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2Fz\n" + "aGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBT\n" + "ZXJ2aWNlcywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEoMCYGA1UEAwwfQW1h\n" + "em9uIFJEUyBjYS1jZW50cmFsLTEgMjAxOSBDQTCCASIwDQYJKoZIhvcNAQEBBQAD\n" + "ggEPADCCAQoCggEBAOxHqdcPSA2uBjsCP4DLSlqSoPuQ/X1kkJLusVRKiQE2zayB\n" + "viuCBt4VB9Qsh2rW3iYGM+usDjltGnI1iUWA5KHcvHszSMkWAOYWLiMNKTlg6LCp\n" + "XnE89tvj5dIH6U8WlDvXLdjB/h30gW9JEX7S8supsBSci2GxEzb5mRdKaDuuF/0O\n" + "qvz4YE04pua3iZ9QwmMFuTAOYzD1M72aOpj+7Ac+YLMM61qOtU+AU6MndnQkKoQi\n" + "qmUN2A9IFaqHFzRlSdXwKCKUA4otzmz+/N3vFwjb5F4DSsbsrMfjeHMo6o/nb6Nh\n" + "YDb0VJxxPee6TxSuN7CQJ2FxMlFUezcoXqwqXD0CAwEAAaNmMGQwDgYDVR0PAQH/\n" + "BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFDGGpon9WfIpsggE\n" + "CxHq8hZ7E2ESMB8GA1UdIwQYMBaAFHNfYNi8ywOY9CsXNC42WqZg/7wfMA0GCSqG\n" + "SIb3DQEBCwUAA4IBAQAvpeQYEGZvoTVLgV9rd2+StPYykMsmFjWQcyn3dBTZRXC2\n" + "lKq7QhQczMAOhEaaN29ZprjQzsA2X/UauKzLR2Uyqc2qOeO9/YOl0H3qauo8C/W9\n" + "r8xqPbOCDLEXlOQ19fidXyyEPHEq5WFp8j+fTh+s8WOx2M7IuC0ANEetIZURYhSp\n" + "xl9XOPRCJxOhj7JdelhpweX0BJDNHeUFi0ClnFOws8oKQ7sQEv66d5ddxqqZ3NVv\n" + "RbCvCtEutQMOUMIuaygDlMn1anSM8N7Wndx8G6+Uy67AnhjGx7jw/0YPPxopEj6x\n" + "JXP8j0sJbcT9K/9/fPVLNT25RvQ/93T2+IQL4Ca2\n" + "-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\n" + "MIIECjCCAvKgAwIBAgICV2YwDQYJKoZIhvcNAQELBQAwgY8xCzAJBgNVBAYTAlVT\n" + "MRAwDgYDVQQHDAdTZWF0dGxlMRMwEQYDVQQIDApXYXNoaW5ndG9uMSIwIAYDVQQK\n" + "DBlBbWF6b24gV2ViIFNlcnZpY2VzLCBJbmMuMRMwEQYDVQQLDApBbWF6b24gUkRT\n" + "MSAwHgYDVQQDDBdBbWF6b24gUkRTIFJvb3QgMjAxOSBDQTAeFw0xOTA5MTExOTM2\n" + "MjBaFw0yNDA4MjIxNzA4NTBaMIGXMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2Fz\n" + "aGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBT\n" + "ZXJ2aWNlcywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEoMCYGA1UEAwwfQW1h\n" + "em9uIFJEUyBldS1jZW50cmFsLTEgMjAxOSBDQTCCASIwDQYJKoZIhvcNAQEBBQAD\n" + "ggEPADCCAQoCggEBAMEx54X2pHVv86APA0RWqxxRNmdkhAyp2R1cFWumKQRofoFv\n" + "n+SPXdkpIINpMuEIGJANozdiEz7SPsrAf8WHyD93j/ZxrdQftRcIGH41xasetKGl\n" + "I67uans8d+pgJgBKGb/Z+B5m+UsIuEVekpvgpwKtmmaLFC/NCGuSsJoFsRqoa6Gh\n" + "m34W6yJoY87UatddCqLY4IIXaBFsgK9Q/wYzYLbnWM6ZZvhJ52VMtdhcdzeTHNW0\n" + "5LGuXJOF7Ahb4JkEhoo6TS2c0NxB4l4MBfBPgti+O7WjR3FfZHpt18A6Zkq6A2u6\n" + "D/oTSL6c9/3sAaFTFgMyL3wHb2YlW0BPiljZIqECAwEAAaNmMGQwDgYDVR0PAQH/\n" + "BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFOcAToAc6skWffJa\n" + "TnreaswAfrbcMB8GA1UdIwQYMBaAFHNfYNi8ywOY9CsXNC42WqZg/7wfMA0GCSqG\n" + "SIb3DQEBCwUAA4IBAQA1d0Whc1QtspK496mFWfFEQNegLh0a9GWYlJm+Htcj5Nxt\n" + "DAIGXb+8xrtOZFHmYP7VLCT5Zd2C+XytqseK/+s07iAr0/EPF+O2qcyQWMN5KhgE\n" + "cXw2SwuP9FPV3i+YAm11PBVeenrmzuk9NrdHQ7TxU4v7VGhcsd2C++0EisrmquWH\n" + "mgIfmVDGxphwoES52cY6t3fbnXmTkvENvR+h3rj+fUiSz0aSo+XZUGHPgvuEKM/W\n" + "CBD9Smc9CBoBgvy7BgHRgRUmwtABZHFUIEjHI5rIr7ZvYn+6A0O6sogRfvVYtWFc\n" + "qpyrW1YX8mD0VlJ8fGKM3G+aCOsiiPKDV/Uafrm+\n" + "-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\n" + "MIIECDCCAvCgAwIBAgICGAcwDQYJKoZIhvcNAQELBQAwgY8xCzAJBgNVBAYTAlVT\n" + "MRAwDgYDVQQHDAdTZWF0dGxlMRMwEQYDVQQIDApXYXNoaW5ndG9uMSIwIAYDVQQK\n" + "DBlBbWF6b24gV2ViIFNlcnZpY2VzLCBJbmMuMRMwEQYDVQQLDApBbWF6b24gUkRT\n" + "MSAwHgYDVQQDDBdBbWF6b24gUkRTIFJvb3QgMjAxOSBDQTAeFw0xOTA5MTIxODE5\n" + "NDRaFw0yNDA4MjIxNzA4NTBaMIGVMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2Fz\n" + "aGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBT\n" + "ZXJ2aWNlcywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzEmMCQGA1UEAwwdQW1h\n" + "em9uIFJEUyBldS1ub3J0aC0xIDIwMTkgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IB\n" + "DwAwggEKAoIBAQCiIYnhe4UNBbdBb/nQxl5giM0XoVHWNrYV5nB0YukA98+TPn9v\n" + "Aoj1RGYmtryjhrf01Kuv8SWO+Eom95L3zquoTFcE2gmxCfk7bp6qJJ3eHOJB+QUO\n" + "XsNRh76fwDzEF1yTeZWH49oeL2xO13EAx4PbZuZpZBttBM5zAxgZkqu4uWQczFEs\n" + "JXfla7z2fvWmGcTagX10O5C18XaFroV0ubvSyIi75ue9ykg/nlFAeB7O0Wxae88e\n" + "uhiBEFAuLYdqWnsg3459NfV8Yi1GnaitTym6VI3tHKIFiUvkSiy0DAlAGV2iiyJE\n" + "q+DsVEO4/hSINJEtII4TMtysOsYPpINqeEzRAgMBAAGjZjBkMA4GA1UdDwEB/wQE\n" + "AwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBRR0UpnbQyjnHChgmOc\n" + "hnlc0PogzTAfBgNVHSMEGDAWgBRzX2DYvMsDmPQrFzQuNlqmYP+8HzANBgkqhkiG\n" + "9w0BAQsFAAOCAQEAKJD4xVzSf4zSGTBJrmamo86jl1NHQxXUApAZuBZEc8tqC6TI\n" + "T5CeoSr9CMuVC8grYyBjXblC4OsM5NMvmsrXl/u5C9dEwtBFjo8mm53rOOIm1fxl\n" + "I1oYB/9mtO9ANWjkykuLzWeBlqDT/i7ckaKwalhLODsRDO73vRhYNjsIUGloNsKe\n" + "pxw3dzHwAZx4upSdEVG4RGCZ1D0LJ4Gw40OfD69hfkDfRVVxKGrbEzqxXRvovmDc\n" + "tKLdYZO/6REoca36v4BlgIs1CbUXJGLSXUwtg7YXGLSVBJ/U0+22iGJmBSNcoyUN\n" + "cjPFD9JQEhDDIYYKSGzIYpvslvGc4T5ISXFiuQ==\n" + "-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\n" + "MIIEBzCCAu+gAwIBAgICYpgwDQYJKoZIhvcNAQELBQAwgY8xCzAJBgNVBAYTAlVT\n" + "MRAwDgYDVQQHDAdTZWF0dGxlMRMwEQYDVQQIDApXYXNoaW5ndG9uMSIwIAYDVQQK\n" + "DBlBbWF6b24gV2ViIFNlcnZpY2VzLCBJbmMuMRMwEQYDVQQLDApBbWF6b24gUkRT\n" + "MSAwHgYDVQQDDBdBbWF6b24gUkRTIFJvb3QgMjAxOSBDQTAeFw0xOTA5MTExNzMx\n" + "NDhaFw0yNDA4MjIxNzA4NTBaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2Fz\n" + "aGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBT\n" + "ZXJ2aWNlcywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzElMCMGA1UEAwwcQW1h\n" + "em9uIFJEUyBldS13ZXN0LTEgMjAxOSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP\n" + "ADCCAQoCggEBAMk3YdSZ64iAYp6MyyKtYJtNzv7zFSnnNf6vv0FB4VnfITTMmOyZ\n" + "LXqKAT2ahZ00hXi34ewqJElgU6eUZT/QlzdIu359TEZyLVPwURflL6SWgdG01Q5X\n" + "O++7fSGcBRyIeuQWs9FJNIIqK8daF6qw0Rl5TXfu7P9dBc3zkgDXZm2DHmxGDD69\n" + "7liQUiXzoE1q2Z9cA8+jirDioJxN9av8hQt12pskLQumhlArsMIhjhHRgF03HOh5\n" + "tvi+RCfihVOxELyIRTRpTNiIwAqfZxxTWFTgfn+gijTmd0/1DseAe82aYic8JbuS\n" + "EMbrDduAWsqrnJ4GPzxHKLXX0JasCUcWyMECAwEAAaNmMGQwDgYDVR0PAQH/BAQD\n" + "AgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFPLtsq1NrwJXO13C9eHt\n" + "sLY11AGwMB8GA1UdIwQYMBaAFHNfYNi8ywOY9CsXNC42WqZg/7wfMA0GCSqGSIb3\n" + "DQEBCwUAA4IBAQAnWBKj5xV1A1mYd0kIgDdkjCwQkiKF5bjIbGkT3YEFFbXoJlSP\n" + "0lZZ/hDaOHI8wbLT44SzOvPEEmWF9EE7SJzkvSdQrUAWR9FwDLaU427ALI3ngNHy\n" + "lGJ2hse1fvSRNbmg8Sc9GBv8oqNIBPVuw+AJzHTacZ1OkyLZrz1c1QvwvwN2a+Jd\n" + "vH0V0YIhv66llKcYDMUQJAQi4+8nbRxXWv6Gq3pvrFoorzsnkr42V3JpbhnYiK+9\n" + "nRKd4uWl62KRZjGkfMbmsqZpj2fdSWMY1UGyN1k+kDmCSWYdrTRDP0xjtIocwg+A\n" + "J116n4hV/5mbA0BaPiS2krtv17YAeHABZcvz\n" + "-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\n" + "MIIEBzCCAu+gAwIBAgICZIEwDQYJKoZIhvcNAQELBQAwgY8xCzAJBgNVBAYTAlVT\n" + "MRAwDgYDVQQHDAdTZWF0dGxlMRMwEQYDVQQIDApXYXNoaW5ndG9uMSIwIAYDVQQK\n" + "DBlBbWF6b24gV2ViIFNlcnZpY2VzLCBJbmMuMRMwEQYDVQQLDApBbWF6b24gUkRT\n" + "MSAwHgYDVQQDDBdBbWF6b24gUkRTIFJvb3QgMjAxOSBDQTAeFw0xOTA5MTIyMTMy\n" + "MzJaFw0yNDA4MjIxNzA4NTBaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2Fz\n" + "aGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBT\n" + "ZXJ2aWNlcywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzElMCMGA1UEAwwcQW1h\n" + "em9uIFJEUyBldS13ZXN0LTIgMjAxOSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP\n" + "ADCCAQoCggEBALGiwqjiF7xIjT0Sx7zB3764K2T2a1DHnAxEOr+/EIftWKxWzT3u\n" + "PFwS2eEZcnKqSdRQ+vRzonLBeNLO4z8aLjQnNbkizZMBuXGm4BqRm1Kgq3nlLDQn\n" + "7YqdijOq54SpShvR/8zsO4sgMDMmHIYAJJOJqBdaus2smRt0NobIKc0liy7759KB\n" + "6kmQ47Gg+kfIwxrQA5zlvPLeQImxSoPi9LdbRoKvu7Iot7SOa+jGhVBh3VdqndJX\n" + "7tm/saj4NE375csmMETFLAOXjat7zViMRwVorX4V6AzEg1vkzxXpA9N7qywWIT5Y\n" + "fYaq5M8i6vvLg0CzrH9fHORtnkdjdu1y+0MCAwEAAaNmMGQwDgYDVR0PAQH/BAQD\n" + "AgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFFOhOx1yt3Z7mvGB9jBv\n" + "2ymdZwiOMB8GA1UdIwQYMBaAFHNfYNi8ywOY9CsXNC42WqZg/7wfMA0GCSqGSIb3\n" + "DQEBCwUAA4IBAQBehqY36UGDvPVU9+vtaYGr38dBbp+LzkjZzHwKT1XJSSUc2wqM\n" + "hnCIQKilonrTIvP1vmkQi8qHPvDRtBZKqvz/AErW/ZwQdZzqYNFd+BmOXaeZWV0Q\n" + "oHtDzXmcwtP8aUQpxN0e1xkWb1E80qoy+0uuRqb/50b/R4Q5qqSfJhkn6z8nwB10\n" + "7RjLtJPrK8igxdpr3tGUzfAOyiPrIDncY7UJaL84GFp7WWAkH0WG3H8Y8DRcRXOU\n" + "mqDxDLUP3rNuow3jnGxiUY+gGX5OqaZg4f4P6QzOSmeQYs6nLpH0PiN00+oS1BbD\n" + "bpWdZEttILPI+vAYkU4QuBKKDjJL6HbSd+cn\n" + "-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\n" + "MIIEBzCCAu+gAwIBAgICJDQwDQYJKoZIhvcNAQELBQAwgY8xCzAJBgNVBAYTAlVT\n" + "MRAwDgYDVQQHDAdTZWF0dGxlMRMwEQYDVQQIDApXYXNoaW5ndG9uMSIwIAYDVQQK\n" + "DBlBbWF6b24gV2ViIFNlcnZpY2VzLCBJbmMuMRMwEQYDVQQLDApBbWF6b24gUkRT\n" + "MSAwHgYDVQQDDBdBbWF6b24gUkRTIFJvb3QgMjAxOSBDQTAeFw0xOTA5MTgxNzAz\n" + "MTVaFw0yNDA4MjIxNzA4NTBaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2Fz\n" + "aGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBT\n" + "ZXJ2aWNlcywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzElMCMGA1UEAwwcQW1h\n" + "em9uIFJEUyBldS13ZXN0LTMgMjAxOSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP\n" + "ADCCAQoCggEBAL9bL7KE0n02DLVtlZ2PL+g/BuHpMYFq2JnE2RgompGurDIZdjmh\n" + "1pxfL3nT+QIVMubuAOy8InRfkRxfpxyjKYdfLJTPJG+jDVL+wDcPpACFVqoV7Prg\n" + "pVYEV0lc5aoYw4bSeYFhdzgim6F8iyjoPnObjll9mo4XsHzSoqJLCd0QC+VG9Fw2\n" + "q+GDRZrLRmVM2oNGDRbGpGIFg77aRxRapFZa8SnUgs2AqzuzKiprVH5i0S0M6dWr\n" + "i+kk5epmTtkiDHceX+dP/0R1NcnkCPoQ9TglyXyPdUdTPPRfKCq12dftqll+u4mV\n" + "ARdN6WFjovxax8EAP2OAUTi1afY+1JFMj+sCAwEAAaNmMGQwDgYDVR0PAQH/BAQD\n" + "AgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFLfhrbrO5exkCVgxW0x3\n" + "Y2mAi8lNMB8GA1UdIwQYMBaAFHNfYNi8ywOY9CsXNC42WqZg/7wfMA0GCSqGSIb3\n" + "DQEBCwUAA4IBAQAigQ5VBNGyw+OZFXwxeJEAUYaXVoP/qrhTOJ6mCE2DXUVEoJeV\n" + "SxScy/TlFA9tJXqmit8JH8VQ/xDL4ubBfeMFAIAo4WzNWDVoeVMqphVEcDWBHsI1\n" + "AETWzfsapRS9yQekOMmxg63d/nV8xewIl8aNVTHdHYXMqhhik47VrmaVEok1UQb3\n" + "O971RadLXIEbVd9tjY5bMEHm89JsZDnDEw1hQXBb67Elu64OOxoKaHBgUH8AZn/2\n" + "zFsL1ynNUjOhCSAA15pgd1vjwc0YsBbAEBPcHBWYBEyME6NLNarjOzBl4FMtATSF\n" + "wWCKRGkvqN8oxYhwR2jf2rR5Mu4DWkK5Q8Ep\n" + "-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\n" + "MIIEEjCCAvqgAwIBAgIJANew34ehz5l8MA0GCSqGSIb3DQEBCwUAMIGVMQswCQYD\n" + "VQQGEwJVUzEQMA4GA1UEBwwHU2VhdHRsZTETMBEGA1UECAwKV2FzaGluZ3RvbjEi\n" + "MCAGA1UECgwZQW1hem9uIFdlYiBTZXJ2aWNlcywgSW5jLjETMBEGA1UECwwKQW1h\n" + "em9uIFJEUzEmMCQGA1UEAwwdQW1hem9uIFJEUyBtZS1zb3V0aC0xIFJvb3QgQ0Ew\n" + "HhcNMTkwNTEwMjE0ODI3WhcNMjQwNTA4MjE0ODI3WjCBlTELMAkGA1UEBhMCVVMx\n" + "EDAOBgNVBAcMB1NlYXR0bGUxEzARBgNVBAgMCldhc2hpbmd0b24xIjAgBgNVBAoM\n" + "GUFtYXpvbiBXZWIgU2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMx\n" + "JjAkBgNVBAMMHUFtYXpvbiBSRFMgbWUtc291dGgtMSBSb290IENBMIIBIjANBgkq\n" + "hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAp7BYV88MukcY+rq0r79+C8UzkT30fEfT\n" + "aPXbx1d6M7uheGN4FMaoYmL+JE1NZPaMRIPTHhFtLSdPccInvenRDIatcXX+jgOk\n" + "UA6lnHQ98pwN0pfDUyz/Vph4jBR9LcVkBbe0zdoKKp+HGbMPRU0N2yNrog9gM5O8\n" + "gkU/3O2csJ/OFQNnj4c2NQloGMUpEmedwJMOyQQfcUyt9CvZDfIPNnheUS29jGSw\n" + "ERpJe/AENu8Pxyc72jaXQuD+FEi2Ck6lBkSlWYQFhTottAeGvVFNCzKszCntrtqd\n" + "rdYUwurYsLTXDHv9nW2hfDUQa0mhXf9gNDOBIVAZugR9NqNRNyYLHQIDAQABo2Mw\n" + "YTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU54cf\n" + "DjgwBx4ycBH8+/r8WXdaiqYwHwYDVR0jBBgwFoAU54cfDjgwBx4ycBH8+/r8WXda\n" + "iqYwDQYJKoZIhvcNAQELBQADggEBAIIMTSPx/dR7jlcxggr+O6OyY49Rlap2laKA\n" + "eC/XI4ySP3vQkIFlP822U9Kh8a9s46eR0uiwV4AGLabcu0iKYfXjPkIprVCqeXV7\n" + "ny9oDtrbflyj7NcGdZLvuzSwgl9SYTJp7PVCZtZutsPYlbJrBPHwFABvAkMvRtDB\n" + "hitIg4AESDGPoCl94sYHpfDfjpUDMSrAMDUyO6DyBdZH5ryRMAs3lGtsmkkNUrso\n" + "aTW6R05681Z0mvkRdb+cdXtKOSuDZPoe2wJJIaz3IlNQNSrB5TImMYgmt6iAsFhv\n" + "3vfTSTKrZDNTJn4ybG6pq1zWExoXsktZPylJly6R3RBwV6nwqBM=\n" + "-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\n" + "MIIEBzCCAu+gAwIBAgICQ2QwDQYJKoZIhvcNAQELBQAwgY8xCzAJBgNVBAYTAlVT\n" + "MRAwDgYDVQQHDAdTZWF0dGxlMRMwEQYDVQQIDApXYXNoaW5ndG9uMSIwIAYDVQQK\n" + "DBlBbWF6b24gV2ViIFNlcnZpY2VzLCBJbmMuMRMwEQYDVQQLDApBbWF6b24gUkRT\n" + "MSAwHgYDVQQDDBdBbWF6b24gUkRTIFJvb3QgMjAxOSBDQTAeFw0xOTA5MDUxODQ2\n" + "MjlaFw0yNDA4MjIxNzA4NTBaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2Fz\n" + "aGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBT\n" + "ZXJ2aWNlcywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzElMCMGA1UEAwwcQW1h\n" + "em9uIFJEUyBzYS1lYXN0LTEgMjAxOSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP\n" + "ADCCAQoCggEBAMMvR+ReRnOzqJzoaPipNTt1Z2VA968jlN1+SYKUrYM3No+Vpz0H\n" + "M6Tn0oYB66ByVsXiGc28ulsqX1HbHsxqDPwvQTKvO7SrmDokoAkjJgLocOLUAeld\n" + "5AwvUjxGRP6yY90NV7X786MpnYb2Il9DIIaV9HjCmPt+rjy2CZjS0UjPjCKNfB8J\n" + "bFjgW6GGscjeyGb/zFwcom5p4j0rLydbNaOr9wOyQrtt3ZQWLYGY9Zees/b8pmcc\n" + "Jt+7jstZ2UMV32OO/kIsJ4rMUn2r/uxccPwAc1IDeRSSxOrnFKhW3Cu69iB3bHp7\n" + "JbawY12g7zshE4I14sHjv3QoXASoXjx4xgMCAwEAAaNmMGQwDgYDVR0PAQH/BAQD\n" + "AgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFI1Fc/Ql2jx+oJPgBVYq\n" + "ccgP0pQ8MB8GA1UdIwQYMBaAFHNfYNi8ywOY9CsXNC42WqZg/7wfMA0GCSqGSIb3\n" + "DQEBCwUAA4IBAQB4VVVabVp70myuYuZ3vltQIWqSUMhkaTzehMgGcHjMf9iLoZ/I\n" + "93KiFUSGnek5cRePyS9wcpp0fcBT3FvkjpUdCjVtdttJgZFhBxgTd8y26ImdDDMR\n" + "4+BUuhI5msvjL08f+Vkkpu1GQcGmyFVPFOy/UY8iefu+QyUuiBUnUuEDd49Hw0Fn\n" + "/kIPII6Vj82a2mWV/Q8e+rgN8dIRksRjKI03DEoP8lhPlsOkhdwU6Uz9Vu6NOB2Q\n" + "Ls1kbcxAc7cFSyRVJEhh12Sz9d0q/CQSTFsVJKOjSNQBQfVnLz1GwO/IieUEAr4C\n" + "jkTntH0r1LX5b/GwN4R887LvjAEdTbg1his7\n" + "-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\n" + "MIIEBzCCAu+gAwIBAgICJVUwDQYJKoZIhvcNAQELBQAwgY8xCzAJBgNVBAYTAlVT\n" + "MRAwDgYDVQQHDAdTZWF0dGxlMRMwEQYDVQQIDApXYXNoaW5ndG9uMSIwIAYDVQQK\n" + "DBlBbWF6b24gV2ViIFNlcnZpY2VzLCBJbmMuMRMwEQYDVQQLDApBbWF6b24gUkRT\n" + "MSAwHgYDVQQDDBdBbWF6b24gUkRTIFJvb3QgMjAxOSBDQTAeFw0xOTA5MTkxODE2\n" + "NTNaFw0yNDA4MjIxNzA4NTBaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2Fz\n" + "aGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBT\n" + "ZXJ2aWNlcywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzElMCMGA1UEAwwcQW1h\n" + "em9uIFJEUyB1cy1lYXN0LTEgMjAxOSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP\n" + "ADCCAQoCggEBAM3i/k2u6cqbMdcISGRvh+m+L0yaSIoOXjtpNEoIftAipTUYoMhL\n" + "InXGlQBVA4shkekxp1N7HXe1Y/iMaPEyb3n+16pf3vdjKl7kaSkIhjdUz3oVUEYt\n" + "i8Z/XeJJ9H2aEGuiZh3kHixQcZczn8cg3dA9aeeyLSEnTkl/npzLf//669Ammyhs\n" + "XcAo58yvT0D4E0D/EEHf2N7HRX7j/TlyWvw/39SW0usiCrHPKDLxByLojxLdHzso\n" + "QIp/S04m+eWn6rmD+uUiRteN1hI5ncQiA3wo4G37mHnUEKo6TtTUh+sd/ku6a8HK\n" + "glMBcgqudDI90s1OpuIAWmuWpY//8xEG2YECAwEAAaNmMGQwDgYDVR0PAQH/BAQD\n" + "AgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFPqhoWZcrVY9mU7tuemR\n" + "RBnQIj1jMB8GA1UdIwQYMBaAFHNfYNi8ywOY9CsXNC42WqZg/7wfMA0GCSqGSIb3\n" + "DQEBCwUAA4IBAQB6zOLZ+YINEs72heHIWlPZ8c6WY8MDU+Be5w1M+BK2kpcVhCUK\n" + "PJO4nMXpgamEX8DIiaO7emsunwJzMSvavSPRnxXXTKIc0i/g1EbiDjnYX9d85DkC\n" + "E1LaAUCmCZBVi9fIe0H2r9whIh4uLWZA41oMnJx/MOmo3XyMfQoWcqaSFlMqfZM4\n" + "0rNoB/tdHLNuV4eIdaw2mlHxdWDtF4oH+HFm+2cVBUVC1jXKrFv/euRVtsTT+A6i\n" + "h2XBHKxQ1Y4HgAn0jACP2QSPEmuoQEIa57bEKEcZsBR8SDY6ZdTd2HLRIApcCOSF\n" + "MRM8CKLeF658I0XgF8D5EsYoKPsA+74Z+jDH\n" + "-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\n" + "MIIECDCCAvCgAwIBAgIDAIVCMA0GCSqGSIb3DQEBCwUAMIGPMQswCQYDVQQGEwJV\n" + "UzEQMA4GA1UEBwwHU2VhdHRsZTETMBEGA1UECAwKV2FzaGluZ3RvbjEiMCAGA1UE\n" + "CgwZQW1hem9uIFdlYiBTZXJ2aWNlcywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJE\n" + "UzEgMB4GA1UEAwwXQW1hem9uIFJEUyBSb290IDIwMTkgQ0EwHhcNMTkwOTEzMTcw\n" + "NjQxWhcNMjQwODIyMTcwODUwWjCBlDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCldh\n" + "c2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoMGUFtYXpvbiBXZWIg\n" + "U2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMxJTAjBgNVBAMMHEFt\n" + "YXpvbiBSRFMgdXMtZWFzdC0yIDIwMTkgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IB\n" + "DwAwggEKAoIBAQDE+T2xYjUbxOp+pv+gRA3FO24+1zCWgXTDF1DHrh1lsPg5k7ht\n" + "2KPYzNc+Vg4E+jgPiW0BQnA6jStX5EqVh8BU60zELlxMNvpg4KumniMCZ3krtMUC\n" + "au1NF9rM7HBh+O+DYMBLK5eSIVt6lZosOb7bCi3V6wMLA8YqWSWqabkxwN4w0vXI\n" + "8lu5uXXFRemHnlNf+yA/4YtN4uaAyd0ami9+klwdkZfkrDOaiy59haOeBGL8EB/c\n" + "dbJJlguHH5CpCscs3RKtOOjEonXnKXldxarFdkMzi+aIIjQ8GyUOSAXHtQHb3gZ4\n" + "nS6Ey0CMlwkB8vUObZU9fnjKJcL5QCQqOfwvAgMBAAGjZjBkMA4GA1UdDwEB/wQE\n" + "AwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBQUPuRHohPxx4VjykmH\n" + "6usGrLL1ETAfBgNVHSMEGDAWgBRzX2DYvMsDmPQrFzQuNlqmYP+8HzANBgkqhkiG\n" + "9w0BAQsFAAOCAQEAUdR9Vb3y33Yj6X6KGtuthZ08SwjImVQPtknzpajNE5jOJAh8\n" + "quvQnU9nlnMO85fVDU1Dz3lLHGJ/YG1pt1Cqq2QQ200JcWCvBRgdvH6MjHoDQpqZ\n" + "HvQ3vLgOGqCLNQKFuet9BdpsHzsctKvCVaeBqbGpeCtt3Hh/26tgx0rorPLw90A2\n" + "V8QSkZJjlcKkLa58N5CMM8Xz8KLWg3MZeT4DmlUXVCukqK2RGuP2L+aME8dOxqNv\n" + "OnOz1zrL5mR2iJoDpk8+VE/eBDmJX40IJk6jBjWoxAO/RXq+vBozuF5YHN1ujE92\n" + "tO8HItgTp37XT8bJBAiAnt5mxw+NLSqtxk2QdQ==\n" + "-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\n" + "MIIECDCCAvCgAwIBAgIDAIkHMA0GCSqGSIb3DQEBCwUAMIGPMQswCQYDVQQGEwJV\n" + "UzEQMA4GA1UEBwwHU2VhdHRsZTETMBEGA1UECAwKV2FzaGluZ3RvbjEiMCAGA1UE\n" + "CgwZQW1hem9uIFdlYiBTZXJ2aWNlcywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJE\n" + "UzEgMB4GA1UEAwwXQW1hem9uIFJEUyBSb290IDIwMTkgQ0EwHhcNMTkwOTA2MTc0\n" + "MDIxWhcNMjQwODIyMTcwODUwWjCBlDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCldh\n" + "c2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxIjAgBgNVBAoMGUFtYXpvbiBXZWIg\n" + "U2VydmljZXMsIEluYy4xEzARBgNVBAsMCkFtYXpvbiBSRFMxJTAjBgNVBAMMHEFt\n" + "YXpvbiBSRFMgdXMtd2VzdC0xIDIwMTkgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IB\n" + "DwAwggEKAoIBAQDD2yzbbAl77OofTghDMEf624OvU0eS9O+lsdO0QlbfUfWa1Kd6\n" + "0WkgjkLZGfSRxEHMCnrv4UPBSK/Qwn6FTjkDLgemhqBtAnplN4VsoDL+BkRX4Wwq\n" + "/dSQJE2b+0hm9w9UMVGFDEq1TMotGGTD2B71eh9HEKzKhGzqiNeGsiX4VV+LJzdH\n" + "uM23eGisNqmd4iJV0zcAZ+Gbh2zK6fqTOCvXtm7Idccv8vZZnyk1FiWl3NR4WAgK\n" + "AkvWTIoFU3Mt7dIXKKClVmvssG8WHCkd3Xcb4FHy/G756UZcq67gMMTX/9fOFM/v\n" + "l5C0+CHl33Yig1vIDZd+fXV1KZD84dEJfEvHAgMBAAGjZjBkMA4GA1UdDwEB/wQE\n" + "AwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBR+ap20kO/6A7pPxo3+\n" + "T3CfqZpQWjAfBgNVHSMEGDAWgBRzX2DYvMsDmPQrFzQuNlqmYP+8HzANBgkqhkiG\n" + "9w0BAQsFAAOCAQEAHCJky2tPjPttlDM/RIqExupBkNrnSYnOK4kr9xJ3sl8UF2DA\n" + "PAnYsjXp3rfcjN/k/FVOhxwzi3cXJF/2Tjj39Bm/OEfYTOJDNYtBwB0VVH4ffa/6\n" + "tZl87jaIkrxJcreeeHqYMnIxeN0b/kliyA+a5L2Yb0VPjt9INq34QDc1v74FNZ17\n" + "4z8nr1nzg4xsOWu0Dbjo966lm4nOYIGBRGOKEkHZRZ4mEiMgr3YLkv8gSmeitx57\n" + "Z6dVemNtUic/LVo5Iqw4n3TBS0iF2C1Q1xT/s3h+0SXZlfOWttzSluDvoMv5PvCd\n" + "pFjNn+aXLAALoihL1MJSsxydtsLjOBro5eK0Vw==\n" + "-----END CERTIFICATE-----\n", + "-----BEGIN CERTIFICATE-----\n" + "MIIEBzCCAu+gAwIBAgICUYkwDQYJKoZIhvcNAQELBQAwgY8xCzAJBgNVBAYTAlVT\n" + "MRAwDgYDVQQHDAdTZWF0dGxlMRMwEQYDVQQIDApXYXNoaW5ndG9uMSIwIAYDVQQK\n" + "DBlBbWF6b24gV2ViIFNlcnZpY2VzLCBJbmMuMRMwEQYDVQQLDApBbWF6b24gUkRT\n" + "MSAwHgYDVQQDDBdBbWF6b24gUkRTIFJvb3QgMjAxOSBDQTAeFw0xOTA5MTYxODIx\n" + "MTVaFw0yNDA4MjIxNzA4NTBaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2Fz\n" + "aGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEiMCAGA1UECgwZQW1hem9uIFdlYiBT\n" + "ZXJ2aWNlcywgSW5jLjETMBEGA1UECwwKQW1hem9uIFJEUzElMCMGA1UEAwwcQW1h\n" + "em9uIFJEUyB1cy13ZXN0LTIgMjAxOSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP\n" + "ADCCAQoCggEBANCEZBZyu6yJQFZBJmSUZfSZd3Ui2gitczMKC4FLr0QzkbxY+cLa\n" + "uVONIOrPt4Rwi+3h/UdnUg917xao3S53XDf1TDMFEYp4U8EFPXqCn/GXBIWlU86P\n" + "PvBN+gzw3nS+aco7WXb+woTouvFVkk8FGU7J532llW8o/9ydQyDIMtdIkKTuMfho\n" + "OiNHSaNc+QXQ32TgvM9A/6q7ksUoNXGCP8hDOkSZ/YOLiI5TcdLh/aWj00ziL5bj\n" + "pvytiMZkilnc9dLY9QhRNr0vGqL0xjmWdoEXz9/OwjmCihHqJq+20MJPsvFm7D6a\n" + "2NKybR9U+ddrjb8/iyLOjURUZnj5O+2+OPcCAwEAAaNmMGQwDgYDVR0PAQH/BAQD\n" + "AgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFEBxMBdv81xuzqcK5TVu\n" + "pHj+Aor8MB8GA1UdIwQYMBaAFHNfYNi8ywOY9CsXNC42WqZg/7wfMA0GCSqGSIb3\n" + "DQEBCwUAA4IBAQBZkfiVqGoJjBI37aTlLOSjLcjI75L5wBrwO39q+B4cwcmpj58P\n" + "3sivv+jhYfAGEbQnGRzjuFoyPzWnZ1DesRExX+wrmHsLLQbF2kVjLZhEJMHF9eB7\n" + "GZlTPdTzHErcnuXkwA/OqyXMpj9aghcQFuhCNguEfnROY9sAoK2PTfnTz9NJHL+Q\n" + "UpDLEJEUfc0GZMVWYhahc0x38ZnSY2SKacIPECQrTI0KpqZv/P+ijCEcMD9xmYEb\n" + "jL4en+XKS1uJpw5fIU5Sj0MxhdGstH6S84iAE5J3GM3XHklGSFwwqPYvuTXvANH6\n" + "uboynxRgSae59jIlAK6Jrr6GWMwQRbgcaAlW\n" + "-----END CERTIFICATE-----\n" + ] + }; +}); + +// node_modules/mysql/lib/ConnectionConfig.js +var require_ConnectionConfig = __commonJS((exports, module) => { + var urlParse = __require("url").parse; + var ClientConstants = require_client(); + var Charsets = require_charsets(); + var SSLProfiles = null; + module.exports = ConnectionConfig; + function ConnectionConfig(options) { + if (typeof options === "string") { + options = ConnectionConfig.parseUrl(options); + } + this.host = options.host || "localhost"; + this.port = options.port || 3306; + this.localAddress = options.localAddress; + this.socketPath = options.socketPath; + this.user = options.user || undefined; + this.password = options.password || undefined; + this.database = options.database; + this.connectTimeout = options.connectTimeout === undefined ? 10 * 1000 : options.connectTimeout; + this.insecureAuth = options.insecureAuth || false; + this.supportBigNumbers = options.supportBigNumbers || false; + this.bigNumberStrings = options.bigNumberStrings || false; + this.dateStrings = options.dateStrings || false; + this.debug = options.debug; + this.trace = options.trace !== false; + this.stringifyObjects = options.stringifyObjects || false; + this.timezone = options.timezone || "local"; + this.flags = options.flags || ""; + this.queryFormat = options.queryFormat; + this.pool = options.pool || undefined; + this.ssl = typeof options.ssl === "string" ? ConnectionConfig.getSSLProfile(options.ssl) : options.ssl || false; + this.localInfile = options.localInfile === undefined ? true : options.localInfile; + this.multipleStatements = options.multipleStatements || false; + this.typeCast = options.typeCast === undefined ? true : options.typeCast; + if (this.timezone[0] === " ") { + this.timezone = "+" + this.timezone.substr(1); + } + if (this.ssl) { + this.ssl.rejectUnauthorized = this.ssl.rejectUnauthorized !== false; + } + this.maxPacketSize = 0; + this.charsetNumber = options.charset ? ConnectionConfig.getCharsetNumber(options.charset) : options.charsetNumber || Charsets.UTF8_GENERAL_CI; + var defaultFlags = ConnectionConfig.getDefaultFlags(options); + this.clientFlags = ConnectionConfig.mergeFlags(defaultFlags, options.flags); + } + ConnectionConfig.mergeFlags = function mergeFlags(defaultFlags, userFlags) { + var allFlags = ConnectionConfig.parseFlagList(defaultFlags); + var newFlags = ConnectionConfig.parseFlagList(userFlags); + for (var flag in newFlags) { + if (allFlags[flag] !== false) { + allFlags[flag] = newFlags[flag]; + } + } + var flags = 0; + for (var flag in allFlags) { + if (allFlags[flag]) { + flags |= ClientConstants["CLIENT_" + flag] || 0; + } + } + return flags; + }; + ConnectionConfig.getCharsetNumber = function getCharsetNumber(charset) { + var num = Charsets[charset.toUpperCase()]; + if (num === undefined) { + throw new TypeError("Unknown charset \'" + charset + "\'"); + } + return num; + }; + ConnectionConfig.getDefaultFlags = function getDefaultFlags(options) { + var defaultFlags = [ + "-COMPRESS", + "-CONNECT_ATTRS", + "+CONNECT_WITH_DB", + "+FOUND_ROWS", + "+IGNORE_SIGPIPE", + "+IGNORE_SPACE", + "+LOCAL_FILES", + "+LONG_FLAG", + "+LONG_PASSWORD", + "+MULTI_RESULTS", + "+ODBC", + "-PLUGIN_AUTH", + "+PROTOCOL_41", + "+PS_MULTI_RESULTS", + "+RESERVED", + "+SECURE_CONNECTION", + "+TRANSACTIONS" + ]; + if (options && options.localInfile !== undefined && !options.localInfile) { + defaultFlags.push("-LOCAL_FILES"); + } + if (options && options.multipleStatements) { + defaultFlags.push("+MULTI_STATEMENTS"); + } + return defaultFlags; + }; + ConnectionConfig.getSSLProfile = function getSSLProfile(name) { + if (!SSLProfiles) { + SSLProfiles = require_ssl_profiles(); + } + var ssl = SSLProfiles[name]; + if (ssl === undefined) { + throw new TypeError("Unknown SSL profile \'" + name + "\'"); + } + return ssl; + }; + ConnectionConfig.parseFlagList = function parseFlagList(flagList) { + var allFlags = Object.create(null); + if (!flagList) { + return allFlags; + } + var flags = !Array.isArray(flagList) ? String(flagList || "").toUpperCase().split(/\s*,+\s*/) : flagList; + for (var i = 0;i < flags.length; i++) { + var flag = flags[i]; + var offset = 1; + var state = flag[0]; + if (state === undefined) { + continue; + } + if (state !== "-" && state !== "+") { + offset = 0; + state = "+"; + } + allFlags[flag.substr(offset)] = state === "+"; + } + return allFlags; + }; + ConnectionConfig.parseUrl = function(url) { + url = urlParse(url, true); + var options = { + host: url.hostname, + port: url.port, + database: url.pathname.substr(1) + }; + if (url.auth) { + var auth = url.auth.split(":"); + options.user = auth.shift(); + options.password = auth.join(":"); + } + if (url.query) { + for (var key in url.query) { + var value = url.query[key]; + try { + options[key] = JSON.parse(value); + } catch (err) { + options[key] = value; + } + } + } + return options; + }; +}); + +// node_modules/mysql/lib/protocol/PacketHeader.js +var require_PacketHeader = __commonJS((exports, module) => { + module.exports = PacketHeader; + function PacketHeader(length, number) { + this.length = length; + this.number = number; + } +}); + +// node_modules/bignumber.js/bignumber.js +var require_bignumber = __commonJS((exports, module) => { + (function(globalObject) { + var BigNumber, isNumeric = /^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i, mathceil = Math.ceil, mathfloor = Math.floor, bignumberError = "[BigNumber Error] ", tooManyDigits = bignumberError + "Number primitive has more than 15 significant digits: ", BASE = 100000000000000, LOG_BASE = 14, MAX_SAFE_INTEGER = 9007199254740991, POWS_TEN = [1, 10, 100, 1000, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 10000000000, 100000000000, 1000000000000, 10000000000000], SQRT_BASE = 1e7, MAX = 1e9; + function clone(configObject) { + var div, convertBase, parseNumeric, P = BigNumber2.prototype = { constructor: BigNumber2, toString: null, valueOf: null }, ONE = new BigNumber2(1), DECIMAL_PLACES = 20, ROUNDING_MODE = 4, TO_EXP_NEG = -7, TO_EXP_POS = 21, MIN_EXP = -1e7, MAX_EXP = 1e7, CRYPTO = false, MODULO_MODE = 1, POW_PRECISION = 0, FORMAT = { + prefix: "", + groupSize: 3, + secondaryGroupSize: 0, + groupSeparator: ",", + decimalSeparator: ".", + fractionGroupSize: 0, + fractionGroupSeparator: "\xA0", + suffix: "" + }, ALPHABET = "0123456789abcdefghijklmnopqrstuvwxyz"; + function BigNumber2(v, b) { + var alphabet, c, caseChanged, e, i, isNum, len, str, x = this; + if (!(x instanceof BigNumber2)) + return new BigNumber2(v, b); + if (b == null) { + if (v && v._isBigNumber === true) { + x.s = v.s; + if (!v.c || v.e > MAX_EXP) { + x.c = x.e = null; + } else if (v.e < MIN_EXP) { + x.c = [x.e = 0]; + } else { + x.e = v.e; + x.c = v.c.slice(); + } + return; + } + if ((isNum = typeof v == "number") && v * 0 == 0) { + x.s = 1 / v < 0 ? (v = -v, -1) : 1; + if (v === ~~v) { + for (e = 0, i = v;i >= 10; i /= 10, e++) + ; + if (e > MAX_EXP) { + x.c = x.e = null; + } else { + x.e = e; + x.c = [v]; + } + return; + } + str = String(v); + } else { + if (!isNumeric.test(str = String(v))) + return parseNumeric(x, str, isNum); + x.s = str.charCodeAt(0) == 45 ? (str = str.slice(1), -1) : 1; + } + if ((e = str.indexOf(".")) > -1) + str = str.replace(".", ""); + if ((i = str.search(/e/i)) > 0) { + if (e < 0) + e = i; + e += +str.slice(i + 1); + str = str.substring(0, i); + } else if (e < 0) { + e = str.length; + } + } else { + intCheck(b, 2, ALPHABET.length, "Base"); + if (b == 10) { + x = new BigNumber2(v); + return round(x, DECIMAL_PLACES + x.e + 1, ROUNDING_MODE); + } + str = String(v); + if (isNum = typeof v == "number") { + if (v * 0 != 0) + return parseNumeric(x, str, isNum, b); + x.s = 1 / v < 0 ? (str = str.slice(1), -1) : 1; + if (BigNumber2.DEBUG && str.replace(/^0\.0*|\./, "").length > 15) { + throw Error(tooManyDigits + v); + } + } else { + x.s = str.charCodeAt(0) === 45 ? (str = str.slice(1), -1) : 1; + } + alphabet = ALPHABET.slice(0, b); + e = i = 0; + for (len = str.length;i < len; i++) { + if (alphabet.indexOf(c = str.charAt(i)) < 0) { + if (c == ".") { + if (i > e) { + e = len; + continue; + } + } else if (!caseChanged) { + if (str == str.toUpperCase() && (str = str.toLowerCase()) || str == str.toLowerCase() && (str = str.toUpperCase())) { + caseChanged = true; + i = -1; + e = 0; + continue; + } + } + return parseNumeric(x, String(v), isNum, b); + } + } + isNum = false; + str = convertBase(str, b, 10, x.s); + if ((e = str.indexOf(".")) > -1) + str = str.replace(".", ""); + else + e = str.length; + } + for (i = 0;str.charCodeAt(i) === 48; i++) + ; + for (len = str.length;str.charCodeAt(--len) === 48; ) + ; + if (str = str.slice(i, ++len)) { + len -= i; + if (isNum && BigNumber2.DEBUG && len > 15 && (v > MAX_SAFE_INTEGER || v !== mathfloor(v))) { + throw Error(tooManyDigits + x.s * v); + } + if ((e = e - i - 1) > MAX_EXP) { + x.c = x.e = null; + } else if (e < MIN_EXP) { + x.c = [x.e = 0]; + } else { + x.e = e; + x.c = []; + i = (e + 1) % LOG_BASE; + if (e < 0) + i += LOG_BASE; + if (i < len) { + if (i) + x.c.push(+str.slice(0, i)); + for (len -= LOG_BASE;i < len; ) { + x.c.push(+str.slice(i, i += LOG_BASE)); + } + i = LOG_BASE - (str = str.slice(i)).length; + } else { + i -= len; + } + for (;i--; str += "0") + ; + x.c.push(+str); + } + } else { + x.c = [x.e = 0]; + } + } + BigNumber2.clone = clone; + BigNumber2.ROUND_UP = 0; + BigNumber2.ROUND_DOWN = 1; + BigNumber2.ROUND_CEIL = 2; + BigNumber2.ROUND_FLOOR = 3; + BigNumber2.ROUND_HALF_UP = 4; + BigNumber2.ROUND_HALF_DOWN = 5; + BigNumber2.ROUND_HALF_EVEN = 6; + BigNumber2.ROUND_HALF_CEIL = 7; + BigNumber2.ROUND_HALF_FLOOR = 8; + BigNumber2.EUCLID = 9; + BigNumber2.config = BigNumber2.set = function(obj) { + var p, v; + if (obj != null) { + if (typeof obj == "object") { + if (obj.hasOwnProperty(p = "DECIMAL_PLACES")) { + v = obj[p]; + intCheck(v, 0, MAX, p); + DECIMAL_PLACES = v; + } + if (obj.hasOwnProperty(p = "ROUNDING_MODE")) { + v = obj[p]; + intCheck(v, 0, 8, p); + ROUNDING_MODE = v; + } + if (obj.hasOwnProperty(p = "EXPONENTIAL_AT")) { + v = obj[p]; + if (v && v.pop) { + intCheck(v[0], -MAX, 0, p); + intCheck(v[1], 0, MAX, p); + TO_EXP_NEG = v[0]; + TO_EXP_POS = v[1]; + } else { + intCheck(v, -MAX, MAX, p); + TO_EXP_NEG = -(TO_EXP_POS = v < 0 ? -v : v); + } + } + if (obj.hasOwnProperty(p = "RANGE")) { + v = obj[p]; + if (v && v.pop) { + intCheck(v[0], -MAX, -1, p); + intCheck(v[1], 1, MAX, p); + MIN_EXP = v[0]; + MAX_EXP = v[1]; + } else { + intCheck(v, -MAX, MAX, p); + if (v) { + MIN_EXP = -(MAX_EXP = v < 0 ? -v : v); + } else { + throw Error(bignumberError + p + " cannot be zero: " + v); + } + } + } + if (obj.hasOwnProperty(p = "CRYPTO")) { + v = obj[p]; + if (v === !!v) { + if (v) { + if (typeof crypto != "undefined" && crypto && (crypto.getRandomValues || crypto.randomBytes)) { + CRYPTO = v; + } else { + CRYPTO = !v; + throw Error(bignumberError + "crypto unavailable"); + } + } else { + CRYPTO = v; + } + } else { + throw Error(bignumberError + p + " not true or false: " + v); + } + } + if (obj.hasOwnProperty(p = "MODULO_MODE")) { + v = obj[p]; + intCheck(v, 0, 9, p); + MODULO_MODE = v; + } + if (obj.hasOwnProperty(p = "POW_PRECISION")) { + v = obj[p]; + intCheck(v, 0, MAX, p); + POW_PRECISION = v; + } + if (obj.hasOwnProperty(p = "FORMAT")) { + v = obj[p]; + if (typeof v == "object") + FORMAT = v; + else + throw Error(bignumberError + p + " not an object: " + v); + } + if (obj.hasOwnProperty(p = "ALPHABET")) { + v = obj[p]; + if (typeof v == "string" && !/^.$|[+-.\s]|(.).*\1/.test(v)) { + ALPHABET = v; + } else { + throw Error(bignumberError + p + " invalid: " + v); + } + } + } else { + throw Error(bignumberError + "Object expected: " + obj); + } + } + return { + DECIMAL_PLACES, + ROUNDING_MODE, + EXPONENTIAL_AT: [TO_EXP_NEG, TO_EXP_POS], + RANGE: [MIN_EXP, MAX_EXP], + CRYPTO, + MODULO_MODE, + POW_PRECISION, + FORMAT, + ALPHABET + }; + }; + BigNumber2.isBigNumber = function(v) { + if (!v || v._isBigNumber !== true) + return false; + if (!BigNumber2.DEBUG) + return true; + var i, n, c = v.c, e = v.e, s = v.s; + out: + if ({}.toString.call(c) == "[object Array]") { + if ((s === 1 || s === -1) && e >= -MAX && e <= MAX && e === mathfloor(e)) { + if (c[0] === 0) { + if (e === 0 && c.length === 1) + return true; + break out; + } + i = (e + 1) % LOG_BASE; + if (i < 1) + i += LOG_BASE; + if (String(c[0]).length == i) { + for (i = 0;i < c.length; i++) { + n = c[i]; + if (n < 0 || n >= BASE || n !== mathfloor(n)) + break out; + } + if (n !== 0) + return true; + } + } + } else if (c === null && e === null && (s === null || s === 1 || s === -1)) { + return true; + } + throw Error(bignumberError + "Invalid BigNumber: " + v); + }; + BigNumber2.maximum = BigNumber2.max = function() { + return maxOrMin(arguments, P.lt); + }; + BigNumber2.minimum = BigNumber2.min = function() { + return maxOrMin(arguments, P.gt); + }; + BigNumber2.random = function() { + var pow2_53 = 9007199254740992; + var random53bitInt = Math.random() * pow2_53 & 2097151 ? function() { + return mathfloor(Math.random() * pow2_53); + } : function() { + return (Math.random() * 1073741824 | 0) * 8388608 + (Math.random() * 8388608 | 0); + }; + return function(dp) { + var a, b, e, k, v, i = 0, c = [], rand = new BigNumber2(ONE); + if (dp == null) + dp = DECIMAL_PLACES; + else + intCheck(dp, 0, MAX); + k = mathceil(dp / LOG_BASE); + if (CRYPTO) { + if (crypto.getRandomValues) { + a = crypto.getRandomValues(new Uint32Array(k *= 2)); + for (;i < k; ) { + v = a[i] * 131072 + (a[i + 1] >>> 11); + if (v >= 9000000000000000) { + b = crypto.getRandomValues(new Uint32Array(2)); + a[i] = b[0]; + a[i + 1] = b[1]; + } else { + c.push(v % 100000000000000); + i += 2; + } + } + i = k / 2; + } else if (crypto.randomBytes) { + a = crypto.randomBytes(k *= 7); + for (;i < k; ) { + v = (a[i] & 31) * 281474976710656 + a[i + 1] * 1099511627776 + a[i + 2] * 4294967296 + a[i + 3] * 16777216 + (a[i + 4] << 16) + (a[i + 5] << 8) + a[i + 6]; + if (v >= 9000000000000000) { + crypto.randomBytes(7).copy(a, i); + } else { + c.push(v % 100000000000000); + i += 7; + } + } + i = k / 7; + } else { + CRYPTO = false; + throw Error(bignumberError + "crypto unavailable"); + } + } + if (!CRYPTO) { + for (;i < k; ) { + v = random53bitInt(); + if (v < 9000000000000000) + c[i++] = v % 100000000000000; + } + } + k = c[--i]; + dp %= LOG_BASE; + if (k && dp) { + v = POWS_TEN[LOG_BASE - dp]; + c[i] = mathfloor(k / v) * v; + } + for (;c[i] === 0; c.pop(), i--) + ; + if (i < 0) { + c = [e = 0]; + } else { + for (e = -1;c[0] === 0; c.splice(0, 1), e -= LOG_BASE) + ; + for (i = 1, v = c[0];v >= 10; v /= 10, i++) + ; + if (i < LOG_BASE) + e -= LOG_BASE - i; + } + rand.e = e; + rand.c = c; + return rand; + }; + }(); + BigNumber2.sum = function() { + var i = 1, args = arguments, sum = new BigNumber2(args[0]); + for (;i < args.length; ) + sum = sum.plus(args[i++]); + return sum; + }; + convertBase = function() { + var decimal = "0123456789"; + function toBaseOut(str, baseIn, baseOut, alphabet) { + var j, arr = [0], arrL, i = 0, len = str.length; + for (;i < len; ) { + for (arrL = arr.length;arrL--; arr[arrL] *= baseIn) + ; + arr[0] += alphabet.indexOf(str.charAt(i++)); + for (j = 0;j < arr.length; j++) { + if (arr[j] > baseOut - 1) { + if (arr[j + 1] == null) + arr[j + 1] = 0; + arr[j + 1] += arr[j] / baseOut | 0; + arr[j] %= baseOut; + } + } + } + return arr.reverse(); + } + return function(str, baseIn, baseOut, sign, callerIsToString) { + var alphabet, d, e, k, r, x, xc, y, i = str.indexOf("."), dp = DECIMAL_PLACES, rm = ROUNDING_MODE; + if (i >= 0) { + k = POW_PRECISION; + POW_PRECISION = 0; + str = str.replace(".", ""); + y = new BigNumber2(baseIn); + x = y.pow(str.length - i); + POW_PRECISION = k; + y.c = toBaseOut(toFixedPoint(coeffToString(x.c), x.e, "0"), 10, baseOut, decimal); + y.e = y.c.length; + } + xc = toBaseOut(str, baseIn, baseOut, callerIsToString ? (alphabet = ALPHABET, decimal) : (alphabet = decimal, ALPHABET)); + e = k = xc.length; + for (;xc[--k] == 0; xc.pop()) + ; + if (!xc[0]) + return alphabet.charAt(0); + if (i < 0) { + --e; + } else { + x.c = xc; + x.e = e; + x.s = sign; + x = div(x, y, dp, rm, baseOut); + xc = x.c; + r = x.r; + e = x.e; + } + d = e + dp + 1; + i = xc[d]; + k = baseOut / 2; + r = r || d < 0 || xc[d + 1] != null; + r = rm < 4 ? (i != null || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2)) : i > k || i == k && (rm == 4 || r || rm == 6 && xc[d - 1] & 1 || rm == (x.s < 0 ? 8 : 7)); + if (d < 1 || !xc[0]) { + str = r ? toFixedPoint(alphabet.charAt(1), -dp, alphabet.charAt(0)) : alphabet.charAt(0); + } else { + xc.length = d; + if (r) { + for (--baseOut;++xc[--d] > baseOut; ) { + xc[d] = 0; + if (!d) { + ++e; + xc = [1].concat(xc); + } + } + } + for (k = xc.length;!xc[--k]; ) + ; + for (i = 0, str = "";i <= k; str += alphabet.charAt(xc[i++])) + ; + str = toFixedPoint(str, e, alphabet.charAt(0)); + } + return str; + }; + }(); + div = function() { + function multiply(x, k, base) { + var m, temp, xlo, xhi, carry = 0, i = x.length, klo = k % SQRT_BASE, khi = k / SQRT_BASE | 0; + for (x = x.slice();i--; ) { + xlo = x[i] % SQRT_BASE; + xhi = x[i] / SQRT_BASE | 0; + m = khi * xlo + xhi * klo; + temp = klo * xlo + m % SQRT_BASE * SQRT_BASE + carry; + carry = (temp / base | 0) + (m / SQRT_BASE | 0) + khi * xhi; + x[i] = temp % base; + } + if (carry) + x = [carry].concat(x); + return x; + } + function compare2(a, b, aL, bL) { + var i, cmp; + if (aL != bL) { + cmp = aL > bL ? 1 : -1; + } else { + for (i = cmp = 0;i < aL; i++) { + if (a[i] != b[i]) { + cmp = a[i] > b[i] ? 1 : -1; + break; + } + } + } + return cmp; + } + function subtract(a, b, aL, base) { + var i = 0; + for (;aL--; ) { + a[aL] -= i; + i = a[aL] < b[aL] ? 1 : 0; + a[aL] = i * base + a[aL] - b[aL]; + } + for (;!a[0] && a.length > 1; a.splice(0, 1)) + ; + } + return function(x, y, dp, rm, base) { + var cmp, e, i, more, n, prod, prodL, q, qc, rem, remL, rem0, xi, xL, yc0, yL, yz, s = x.s == y.s ? 1 : -1, xc = x.c, yc = y.c; + if (!xc || !xc[0] || !yc || !yc[0]) { + return new BigNumber2(!x.s || !y.s || (xc ? yc && xc[0] == yc[0] : !yc) ? NaN : xc && xc[0] == 0 || !yc ? s * 0 : s / 0); + } + q = new BigNumber2(s); + qc = q.c = []; + e = x.e - y.e; + s = dp + e + 1; + if (!base) { + base = BASE; + e = bitFloor(x.e / LOG_BASE) - bitFloor(y.e / LOG_BASE); + s = s / LOG_BASE | 0; + } + for (i = 0;yc[i] == (xc[i] || 0); i++) + ; + if (yc[i] > (xc[i] || 0)) + e--; + if (s < 0) { + qc.push(1); + more = true; + } else { + xL = xc.length; + yL = yc.length; + i = 0; + s += 2; + n = mathfloor(base / (yc[0] + 1)); + if (n > 1) { + yc = multiply(yc, n, base); + xc = multiply(xc, n, base); + yL = yc.length; + xL = xc.length; + } + xi = yL; + rem = xc.slice(0, yL); + remL = rem.length; + for (;remL < yL; rem[remL++] = 0) + ; + yz = yc.slice(); + yz = [0].concat(yz); + yc0 = yc[0]; + if (yc[1] >= base / 2) + yc0++; + do { + n = 0; + cmp = compare2(yc, rem, yL, remL); + if (cmp < 0) { + rem0 = rem[0]; + if (yL != remL) + rem0 = rem0 * base + (rem[1] || 0); + n = mathfloor(rem0 / yc0); + if (n > 1) { + if (n >= base) + n = base - 1; + prod = multiply(yc, n, base); + prodL = prod.length; + remL = rem.length; + while (compare2(prod, rem, prodL, remL) == 1) { + n--; + subtract(prod, yL < prodL ? yz : yc, prodL, base); + prodL = prod.length; + cmp = 1; + } + } else { + if (n == 0) { + cmp = n = 1; + } + prod = yc.slice(); + prodL = prod.length; + } + if (prodL < remL) + prod = [0].concat(prod); + subtract(rem, prod, remL, base); + remL = rem.length; + if (cmp == -1) { + while (compare2(yc, rem, yL, remL) < 1) { + n++; + subtract(rem, yL < remL ? yz : yc, remL, base); + remL = rem.length; + } + } + } else if (cmp === 0) { + n++; + rem = [0]; + } + qc[i++] = n; + if (rem[0]) { + rem[remL++] = xc[xi] || 0; + } else { + rem = [xc[xi]]; + remL = 1; + } + } while ((xi++ < xL || rem[0] != null) && s--); + more = rem[0] != null; + if (!qc[0]) + qc.splice(0, 1); + } + if (base == BASE) { + for (i = 1, s = qc[0];s >= 10; s /= 10, i++) + ; + round(q, dp + (q.e = i + e * LOG_BASE - 1) + 1, rm, more); + } else { + q.e = e; + q.r = +more; + } + return q; + }; + }(); + function format(n, i, rm, id) { + var c0, e, ne, len, str; + if (rm == null) + rm = ROUNDING_MODE; + else + intCheck(rm, 0, 8); + if (!n.c) + return n.toString(); + c0 = n.c[0]; + ne = n.e; + if (i == null) { + str = coeffToString(n.c); + str = id == 1 || id == 2 && (ne <= TO_EXP_NEG || ne >= TO_EXP_POS) ? toExponential(str, ne) : toFixedPoint(str, ne, "0"); + } else { + n = round(new BigNumber2(n), i, rm); + e = n.e; + str = coeffToString(n.c); + len = str.length; + if (id == 1 || id == 2 && (i <= e || e <= TO_EXP_NEG)) { + for (;len < i; str += "0", len++) + ; + str = toExponential(str, e); + } else { + i -= ne; + str = toFixedPoint(str, e, "0"); + if (e + 1 > len) { + if (--i > 0) + for (str += ".";i--; str += "0") + ; + } else { + i += e - len; + if (i > 0) { + if (e + 1 == len) + str += "."; + for (;i--; str += "0") + ; + } + } + } + } + return n.s < 0 && c0 ? "-" + str : str; + } + function maxOrMin(args, method) { + var n, i = 1, m = new BigNumber2(args[0]); + for (;i < args.length; i++) { + n = new BigNumber2(args[i]); + if (!n.s) { + m = n; + break; + } else if (method.call(m, n)) { + m = n; + } + } + return m; + } + function normalise(n, c, e) { + var i = 1, j = c.length; + for (;!c[--j]; c.pop()) + ; + for (j = c[0];j >= 10; j /= 10, i++) + ; + if ((e = i + e * LOG_BASE - 1) > MAX_EXP) { + n.c = n.e = null; + } else if (e < MIN_EXP) { + n.c = [n.e = 0]; + } else { + n.e = e; + n.c = c; + } + return n; + } + parseNumeric = function() { + var basePrefix = /^(-?)0([xbo])(?=\w[\w.]*$)/i, dotAfter = /^([^.]+)\.$/, dotBefore = /^\.([^.]+)$/, isInfinityOrNaN = /^-?(Infinity|NaN)$/, whitespaceOrPlus = /^\s*\+(?=[\w.])|^\s+|\s+$/g; + return function(x, str, isNum, b) { + var base, s = isNum ? str : str.replace(whitespaceOrPlus, ""); + if (isInfinityOrNaN.test(s)) { + x.s = isNaN(s) ? null : s < 0 ? -1 : 1; + } else { + if (!isNum) { + s = s.replace(basePrefix, function(m, p1, p2) { + base = (p2 = p2.toLowerCase()) == "x" ? 16 : p2 == "b" ? 2 : 8; + return !b || b == base ? p1 : m; + }); + if (b) { + base = b; + s = s.replace(dotAfter, "$1").replace(dotBefore, "0.$1"); + } + if (str != s) + return new BigNumber2(s, base); + } + if (BigNumber2.DEBUG) { + throw Error(bignumberError + "Not a" + (b ? " base " + b : "") + " number: " + str); + } + x.s = null; + } + x.c = x.e = null; + }; + }(); + function round(x, sd, rm, r) { + var d, i, j, k, n, ni, rd, xc = x.c, pows10 = POWS_TEN; + if (xc) { + out: { + for (d = 1, k = xc[0];k >= 10; k /= 10, d++) + ; + i = sd - d; + if (i < 0) { + i += LOG_BASE; + j = sd; + n = xc[ni = 0]; + rd = n / pows10[d - j - 1] % 10 | 0; + } else { + ni = mathceil((i + 1) / LOG_BASE); + if (ni >= xc.length) { + if (r) { + for (;xc.length <= ni; xc.push(0)) + ; + n = rd = 0; + d = 1; + i %= LOG_BASE; + j = i - LOG_BASE + 1; + } else { + break out; + } + } else { + n = k = xc[ni]; + for (d = 1;k >= 10; k /= 10, d++) + ; + i %= LOG_BASE; + j = i - LOG_BASE + d; + rd = j < 0 ? 0 : n / pows10[d - j - 1] % 10 | 0; + } + } + r = r || sd < 0 || xc[ni + 1] != null || (j < 0 ? n : n % pows10[d - j - 1]); + r = rm < 4 ? (rd || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2)) : rd > 5 || rd == 5 && (rm == 4 || r || rm == 6 && (i > 0 ? j > 0 ? n / pows10[d - j] : 0 : xc[ni - 1]) % 10 & 1 || rm == (x.s < 0 ? 8 : 7)); + if (sd < 1 || !xc[0]) { + xc.length = 0; + if (r) { + sd -= x.e + 1; + xc[0] = pows10[(LOG_BASE - sd % LOG_BASE) % LOG_BASE]; + x.e = -sd || 0; + } else { + xc[0] = x.e = 0; + } + return x; + } + if (i == 0) { + xc.length = ni; + k = 1; + ni--; + } else { + xc.length = ni + 1; + k = pows10[LOG_BASE - i]; + xc[ni] = j > 0 ? mathfloor(n / pows10[d - j] % pows10[j]) * k : 0; + } + if (r) { + for (;; ) { + if (ni == 0) { + for (i = 1, j = xc[0];j >= 10; j /= 10, i++) + ; + j = xc[0] += k; + for (k = 1;j >= 10; j /= 10, k++) + ; + if (i != k) { + x.e++; + if (xc[0] == BASE) + xc[0] = 1; + } + break; + } else { + xc[ni] += k; + if (xc[ni] != BASE) + break; + xc[ni--] = 0; + k = 1; + } + } + } + for (i = xc.length;xc[--i] === 0; xc.pop()) + ; + } + if (x.e > MAX_EXP) { + x.c = x.e = null; + } else if (x.e < MIN_EXP) { + x.c = [x.e = 0]; + } + } + return x; + } + function valueOf(n) { + var str, e = n.e; + if (e === null) + return n.toString(); + str = coeffToString(n.c); + str = e <= TO_EXP_NEG || e >= TO_EXP_POS ? toExponential(str, e) : toFixedPoint(str, e, "0"); + return n.s < 0 ? "-" + str : str; + } + P.absoluteValue = P.abs = function() { + var x = new BigNumber2(this); + if (x.s < 0) + x.s = 1; + return x; + }; + P.comparedTo = function(y, b) { + return compare(this, new BigNumber2(y, b)); + }; + P.decimalPlaces = P.dp = function(dp, rm) { + var c, n, v, x = this; + if (dp != null) { + intCheck(dp, 0, MAX); + if (rm == null) + rm = ROUNDING_MODE; + else + intCheck(rm, 0, 8); + return round(new BigNumber2(x), dp + x.e + 1, rm); + } + if (!(c = x.c)) + return null; + n = ((v = c.length - 1) - bitFloor(this.e / LOG_BASE)) * LOG_BASE; + if (v = c[v]) + for (;v % 10 == 0; v /= 10, n--) + ; + if (n < 0) + n = 0; + return n; + }; + P.dividedBy = P.div = function(y, b) { + return div(this, new BigNumber2(y, b), DECIMAL_PLACES, ROUNDING_MODE); + }; + P.dividedToIntegerBy = P.idiv = function(y, b) { + return div(this, new BigNumber2(y, b), 0, 1); + }; + P.exponentiatedBy = P.pow = function(n, m) { + var half, isModExp, i, k, more, nIsBig, nIsNeg, nIsOdd, y, x = this; + n = new BigNumber2(n); + if (n.c && !n.isInteger()) { + throw Error(bignumberError + "Exponent not an integer: " + valueOf(n)); + } + if (m != null) + m = new BigNumber2(m); + nIsBig = n.e > 14; + if (!x.c || !x.c[0] || x.c[0] == 1 && !x.e && x.c.length == 1 || !n.c || !n.c[0]) { + y = new BigNumber2(Math.pow(+valueOf(x), nIsBig ? 2 - isOdd(n) : +valueOf(n))); + return m ? y.mod(m) : y; + } + nIsNeg = n.s < 0; + if (m) { + if (m.c ? !m.c[0] : !m.s) + return new BigNumber2(NaN); + isModExp = !nIsNeg && x.isInteger() && m.isInteger(); + if (isModExp) + x = x.mod(m); + } else if (n.e > 9 && (x.e > 0 || x.e < -1 || (x.e == 0 ? x.c[0] > 1 || nIsBig && x.c[1] >= 240000000 : x.c[0] < 80000000000000 || nIsBig && x.c[0] <= 99999750000000))) { + k = x.s < 0 && isOdd(n) ? -0 : 0; + if (x.e > -1) + k = 1 / k; + return new BigNumber2(nIsNeg ? 1 / k : k); + } else if (POW_PRECISION) { + k = mathceil(POW_PRECISION / LOG_BASE + 2); + } + if (nIsBig) { + half = new BigNumber2(0.5); + if (nIsNeg) + n.s = 1; + nIsOdd = isOdd(n); + } else { + i = Math.abs(+valueOf(n)); + nIsOdd = i % 2; + } + y = new BigNumber2(ONE); + for (;; ) { + if (nIsOdd) { + y = y.times(x); + if (!y.c) + break; + if (k) { + if (y.c.length > k) + y.c.length = k; + } else if (isModExp) { + y = y.mod(m); + } + } + if (i) { + i = mathfloor(i / 2); + if (i === 0) + break; + nIsOdd = i % 2; + } else { + n = n.times(half); + round(n, n.e + 1, 1); + if (n.e > 14) { + nIsOdd = isOdd(n); + } else { + i = +valueOf(n); + if (i === 0) + break; + nIsOdd = i % 2; + } + } + x = x.times(x); + if (k) { + if (x.c && x.c.length > k) + x.c.length = k; + } else if (isModExp) { + x = x.mod(m); + } + } + if (isModExp) + return y; + if (nIsNeg) + y = ONE.div(y); + return m ? y.mod(m) : k ? round(y, POW_PRECISION, ROUNDING_MODE, more) : y; + }; + P.integerValue = function(rm) { + var n = new BigNumber2(this); + if (rm == null) + rm = ROUNDING_MODE; + else + intCheck(rm, 0, 8); + return round(n, n.e + 1, rm); + }; + P.isEqualTo = P.eq = function(y, b) { + return compare(this, new BigNumber2(y, b)) === 0; + }; + P.isFinite = function() { + return !!this.c; + }; + P.isGreaterThan = P.gt = function(y, b) { + return compare(this, new BigNumber2(y, b)) > 0; + }; + P.isGreaterThanOrEqualTo = P.gte = function(y, b) { + return (b = compare(this, new BigNumber2(y, b))) === 1 || b === 0; + }; + P.isInteger = function() { + return !!this.c && bitFloor(this.e / LOG_BASE) > this.c.length - 2; + }; + P.isLessThan = P.lt = function(y, b) { + return compare(this, new BigNumber2(y, b)) < 0; + }; + P.isLessThanOrEqualTo = P.lte = function(y, b) { + return (b = compare(this, new BigNumber2(y, b))) === -1 || b === 0; + }; + P.isNaN = function() { + return !this.s; + }; + P.isNegative = function() { + return this.s < 0; + }; + P.isPositive = function() { + return this.s > 0; + }; + P.isZero = function() { + return !!this.c && this.c[0] == 0; + }; + P.minus = function(y, b) { + var i, j, t, xLTy, x = this, a = x.s; + y = new BigNumber2(y, b); + b = y.s; + if (!a || !b) + return new BigNumber2(NaN); + if (a != b) { + y.s = -b; + return x.plus(y); + } + var xe = x.e / LOG_BASE, ye = y.e / LOG_BASE, xc = x.c, yc = y.c; + if (!xe || !ye) { + if (!xc || !yc) + return xc ? (y.s = -b, y) : new BigNumber2(yc ? x : NaN); + if (!xc[0] || !yc[0]) { + return yc[0] ? (y.s = -b, y) : new BigNumber2(xc[0] ? x : ROUNDING_MODE == 3 ? -0 : 0); + } + } + xe = bitFloor(xe); + ye = bitFloor(ye); + xc = xc.slice(); + if (a = xe - ye) { + if (xLTy = a < 0) { + a = -a; + t = xc; + } else { + ye = xe; + t = yc; + } + t.reverse(); + for (b = a;b--; t.push(0)) + ; + t.reverse(); + } else { + j = (xLTy = (a = xc.length) < (b = yc.length)) ? a : b; + for (a = b = 0;b < j; b++) { + if (xc[b] != yc[b]) { + xLTy = xc[b] < yc[b]; + break; + } + } + } + if (xLTy) + t = xc, xc = yc, yc = t, y.s = -y.s; + b = (j = yc.length) - (i = xc.length); + if (b > 0) + for (;b--; xc[i++] = 0) + ; + b = BASE - 1; + for (;j > a; ) { + if (xc[--j] < yc[j]) { + for (i = j;i && !xc[--i]; xc[i] = b) + ; + --xc[i]; + xc[j] += BASE; + } + xc[j] -= yc[j]; + } + for (;xc[0] == 0; xc.splice(0, 1), --ye) + ; + if (!xc[0]) { + y.s = ROUNDING_MODE == 3 ? -1 : 1; + y.c = [y.e = 0]; + return y; + } + return normalise(y, xc, ye); + }; + P.modulo = P.mod = function(y, b) { + var q, s, x = this; + y = new BigNumber2(y, b); + if (!x.c || !y.s || y.c && !y.c[0]) { + return new BigNumber2(NaN); + } else if (!y.c || x.c && !x.c[0]) { + return new BigNumber2(x); + } + if (MODULO_MODE == 9) { + s = y.s; + y.s = 1; + q = div(x, y, 0, 3); + y.s = s; + q.s *= s; + } else { + q = div(x, y, 0, MODULO_MODE); + } + y = x.minus(q.times(y)); + if (!y.c[0] && MODULO_MODE == 1) + y.s = x.s; + return y; + }; + P.multipliedBy = P.times = function(y, b) { + var c, e, i, j, k, m, xcL, xlo, xhi, ycL, ylo, yhi, zc, base, sqrtBase, x = this, xc = x.c, yc = (y = new BigNumber2(y, b)).c; + if (!xc || !yc || !xc[0] || !yc[0]) { + if (!x.s || !y.s || xc && !xc[0] && !yc || yc && !yc[0] && !xc) { + y.c = y.e = y.s = null; + } else { + y.s *= x.s; + if (!xc || !yc) { + y.c = y.e = null; + } else { + y.c = [0]; + y.e = 0; + } + } + return y; + } + e = bitFloor(x.e / LOG_BASE) + bitFloor(y.e / LOG_BASE); + y.s *= x.s; + xcL = xc.length; + ycL = yc.length; + if (xcL < ycL) + zc = xc, xc = yc, yc = zc, i = xcL, xcL = ycL, ycL = i; + for (i = xcL + ycL, zc = [];i--; zc.push(0)) + ; + base = BASE; + sqrtBase = SQRT_BASE; + for (i = ycL;--i >= 0; ) { + c = 0; + ylo = yc[i] % sqrtBase; + yhi = yc[i] / sqrtBase | 0; + for (k = xcL, j = i + k;j > i; ) { + xlo = xc[--k] % sqrtBase; + xhi = xc[k] / sqrtBase | 0; + m = yhi * xlo + xhi * ylo; + xlo = ylo * xlo + m % sqrtBase * sqrtBase + zc[j] + c; + c = (xlo / base | 0) + (m / sqrtBase | 0) + yhi * xhi; + zc[j--] = xlo % base; + } + zc[j] = c; + } + if (c) { + ++e; + } else { + zc.splice(0, 1); + } + return normalise(y, zc, e); + }; + P.negated = function() { + var x = new BigNumber2(this); + x.s = -x.s || null; + return x; + }; + P.plus = function(y, b) { + var t, x = this, a = x.s; + y = new BigNumber2(y, b); + b = y.s; + if (!a || !b) + return new BigNumber2(NaN); + if (a != b) { + y.s = -b; + return x.minus(y); + } + var xe = x.e / LOG_BASE, ye = y.e / LOG_BASE, xc = x.c, yc = y.c; + if (!xe || !ye) { + if (!xc || !yc) + return new BigNumber2(a / 0); + if (!xc[0] || !yc[0]) + return yc[0] ? y : new BigNumber2(xc[0] ? x : a * 0); + } + xe = bitFloor(xe); + ye = bitFloor(ye); + xc = xc.slice(); + if (a = xe - ye) { + if (a > 0) { + ye = xe; + t = yc; + } else { + a = -a; + t = xc; + } + t.reverse(); + for (;a--; t.push(0)) + ; + t.reverse(); + } + a = xc.length; + b = yc.length; + if (a - b < 0) + t = yc, yc = xc, xc = t, b = a; + for (a = 0;b; ) { + a = (xc[--b] = xc[b] + yc[b] + a) / BASE | 0; + xc[b] = BASE === xc[b] ? 0 : xc[b] % BASE; + } + if (a) { + xc = [a].concat(xc); + ++ye; + } + return normalise(y, xc, ye); + }; + P.precision = P.sd = function(sd, rm) { + var c, n, v, x = this; + if (sd != null && sd !== !!sd) { + intCheck(sd, 1, MAX); + if (rm == null) + rm = ROUNDING_MODE; + else + intCheck(rm, 0, 8); + return round(new BigNumber2(x), sd, rm); + } + if (!(c = x.c)) + return null; + v = c.length - 1; + n = v * LOG_BASE + 1; + if (v = c[v]) { + for (;v % 10 == 0; v /= 10, n--) + ; + for (v = c[0];v >= 10; v /= 10, n++) + ; + } + if (sd && x.e + 1 > n) + n = x.e + 1; + return n; + }; + P.shiftedBy = function(k) { + intCheck(k, -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER); + return this.times("1e" + k); + }; + P.squareRoot = P.sqrt = function() { + var m, n, r, rep, t, x = this, c = x.c, s = x.s, e = x.e, dp = DECIMAL_PLACES + 4, half = new BigNumber2("0.5"); + if (s !== 1 || !c || !c[0]) { + return new BigNumber2(!s || s < 0 && (!c || c[0]) ? NaN : c ? x : 1 / 0); + } + s = Math.sqrt(+valueOf(x)); + if (s == 0 || s == 1 / 0) { + n = coeffToString(c); + if ((n.length + e) % 2 == 0) + n += "0"; + s = Math.sqrt(+n); + e = bitFloor((e + 1) / 2) - (e < 0 || e % 2); + if (s == 1 / 0) { + n = "1e" + e; + } else { + n = s.toExponential(); + n = n.slice(0, n.indexOf("e") + 1) + e; + } + r = new BigNumber2(n); + } else { + r = new BigNumber2(s + ""); + } + if (r.c[0]) { + e = r.e; + s = e + dp; + if (s < 3) + s = 0; + for (;; ) { + t = r; + r = half.times(t.plus(div(x, t, dp, 1))); + if (coeffToString(t.c).slice(0, s) === (n = coeffToString(r.c)).slice(0, s)) { + if (r.e < e) + --s; + n = n.slice(s - 3, s + 1); + if (n == "9999" || !rep && n == "4999") { + if (!rep) { + round(t, t.e + DECIMAL_PLACES + 2, 0); + if (t.times(t).eq(x)) { + r = t; + break; + } + } + dp += 4; + s += 4; + rep = 1; + } else { + if (!+n || !+n.slice(1) && n.charAt(0) == "5") { + round(r, r.e + DECIMAL_PLACES + 2, 1); + m = !r.times(r).eq(x); + } + break; + } + } + } + } + return round(r, r.e + DECIMAL_PLACES + 1, ROUNDING_MODE, m); + }; + P.toExponential = function(dp, rm) { + if (dp != null) { + intCheck(dp, 0, MAX); + dp++; + } + return format(this, dp, rm, 1); + }; + P.toFixed = function(dp, rm) { + if (dp != null) { + intCheck(dp, 0, MAX); + dp = dp + this.e + 1; + } + return format(this, dp, rm); + }; + P.toFormat = function(dp, rm, format2) { + var str, x = this; + if (format2 == null) { + if (dp != null && rm && typeof rm == "object") { + format2 = rm; + rm = null; + } else if (dp && typeof dp == "object") { + format2 = dp; + dp = rm = null; + } else { + format2 = FORMAT; + } + } else if (typeof format2 != "object") { + throw Error(bignumberError + "Argument not an object: " + format2); + } + str = x.toFixed(dp, rm); + if (x.c) { + var i, arr = str.split("."), g1 = +format2.groupSize, g2 = +format2.secondaryGroupSize, groupSeparator = format2.groupSeparator || "", intPart = arr[0], fractionPart = arr[1], isNeg = x.s < 0, intDigits = isNeg ? intPart.slice(1) : intPart, len = intDigits.length; + if (g2) + i = g1, g1 = g2, g2 = i, len -= i; + if (g1 > 0 && len > 0) { + i = len % g1 || g1; + intPart = intDigits.substr(0, i); + for (;i < len; i += g1) + intPart += groupSeparator + intDigits.substr(i, g1); + if (g2 > 0) + intPart += groupSeparator + intDigits.slice(i); + if (isNeg) + intPart = "-" + intPart; + } + str = fractionPart ? intPart + (format2.decimalSeparator || "") + ((g2 = +format2.fractionGroupSize) ? fractionPart.replace(new RegExp("\\d{" + g2 + "}\\B", "g"), "$&" + (format2.fractionGroupSeparator || "")) : fractionPart) : intPart; + } + return (format2.prefix || "") + str + (format2.suffix || ""); + }; + P.toFraction = function(md) { + var d, d0, d1, d2, e, exp, n, n0, n1, q, r, s, x = this, xc = x.c; + if (md != null) { + n = new BigNumber2(md); + if (!n.isInteger() && (n.c || n.s !== 1) || n.lt(ONE)) { + throw Error(bignumberError + "Argument " + (n.isInteger() ? "out of range: " : "not an integer: ") + valueOf(n)); + } + } + if (!xc) + return new BigNumber2(x); + d = new BigNumber2(ONE); + n1 = d0 = new BigNumber2(ONE); + d1 = n0 = new BigNumber2(ONE); + s = coeffToString(xc); + e = d.e = s.length - x.e - 1; + d.c[0] = POWS_TEN[(exp = e % LOG_BASE) < 0 ? LOG_BASE + exp : exp]; + md = !md || n.comparedTo(d) > 0 ? e > 0 ? d : n1 : n; + exp = MAX_EXP; + MAX_EXP = 1 / 0; + n = new BigNumber2(s); + n0.c[0] = 0; + for (;; ) { + q = div(n, d, 0, 1); + d2 = d0.plus(q.times(d1)); + if (d2.comparedTo(md) == 1) + break; + d0 = d1; + d1 = d2; + n1 = n0.plus(q.times(d2 = n1)); + n0 = d2; + d = n.minus(q.times(d2 = d)); + n = d2; + } + d2 = div(md.minus(d0), d1, 0, 1); + n0 = n0.plus(d2.times(n1)); + d0 = d0.plus(d2.times(d1)); + n0.s = n1.s = x.s; + e = e * 2; + r = div(n1, d1, e, ROUNDING_MODE).minus(x).abs().comparedTo(div(n0, d0, e, ROUNDING_MODE).minus(x).abs()) < 1 ? [n1, d1] : [n0, d0]; + MAX_EXP = exp; + return r; + }; + P.toNumber = function() { + return +valueOf(this); + }; + P.toPrecision = function(sd, rm) { + if (sd != null) + intCheck(sd, 1, MAX); + return format(this, sd, rm, 2); + }; + P.toString = function(b) { + var str, n = this, s = n.s, e = n.e; + if (e === null) { + if (s) { + str = "Infinity"; + if (s < 0) + str = "-" + str; + } else { + str = "NaN"; + } + } else { + if (b == null) { + str = e <= TO_EXP_NEG || e >= TO_EXP_POS ? toExponential(coeffToString(n.c), e) : toFixedPoint(coeffToString(n.c), e, "0"); + } else if (b === 10) { + n = round(new BigNumber2(n), DECIMAL_PLACES + e + 1, ROUNDING_MODE); + str = toFixedPoint(coeffToString(n.c), n.e, "0"); + } else { + intCheck(b, 2, ALPHABET.length, "Base"); + str = convertBase(toFixedPoint(coeffToString(n.c), e, "0"), 10, b, s, true); + } + if (s < 0 && n.c[0]) + str = "-" + str; + } + return str; + }; + P.valueOf = P.toJSON = function() { + return valueOf(this); + }; + P._isBigNumber = true; + if (configObject != null) + BigNumber2.set(configObject); + return BigNumber2; + } + function bitFloor(n) { + var i = n | 0; + return n > 0 || n === i ? i : i - 1; + } + function coeffToString(a) { + var s, z, i = 1, j = a.length, r = a[0] + ""; + for (;i < j; ) { + s = a[i++] + ""; + z = LOG_BASE - s.length; + for (;z--; s = "0" + s) + ; + r += s; + } + for (j = r.length;r.charCodeAt(--j) === 48; ) + ; + return r.slice(0, j + 1 || 1); + } + function compare(x, y) { + var a, b, xc = x.c, yc = y.c, i = x.s, j = y.s, k = x.e, l = y.e; + if (!i || !j) + return null; + a = xc && !xc[0]; + b = yc && !yc[0]; + if (a || b) + return a ? b ? 0 : -j : i; + if (i != j) + return i; + a = i < 0; + b = k == l; + if (!xc || !yc) + return b ? 0 : !xc ^ a ? 1 : -1; + if (!b) + return k > l ^ a ? 1 : -1; + j = (k = xc.length) < (l = yc.length) ? k : l; + for (i = 0;i < j; i++) + if (xc[i] != yc[i]) + return xc[i] > yc[i] ^ a ? 1 : -1; + return k == l ? 0 : k > l ^ a ? 1 : -1; + } + function intCheck(n, min, max, name) { + if (n < min || n > max || n !== mathfloor(n)) { + throw Error(bignumberError + (name || "Argument") + (typeof n == "number" ? n < min || n > max ? " out of range: " : " not an integer: " : " not a primitive number: ") + String(n)); + } + } + function isOdd(n) { + var k = n.c.length - 1; + return bitFloor(n.e / LOG_BASE) == k && n.c[k] % 2 != 0; + } + function toExponential(str, e) { + return (str.length > 1 ? str.charAt(0) + "." + str.slice(1) : str) + (e < 0 ? "e" : "e+") + e; + } + function toFixedPoint(str, e, z) { + var len, zs; + if (e < 0) { + for (zs = z + ".";++e; zs += z) + ; + str = zs + str; + } else { + len = str.length; + if (++e > len) { + for (zs = z, e -= len;--e; zs += z) + ; + str += zs; + } else if (e < len) { + str = str.slice(0, e) + "." + str.slice(e); + } + } + return str; + } + BigNumber = clone(); + BigNumber["default"] = BigNumber.BigNumber = BigNumber; + if (typeof define == "function" && define.amd) { + define(function() { + return BigNumber; + }); + } else if (typeof module != "undefined" && module.exports) { + module.exports = BigNumber; + } else { + if (!globalObject) { + globalObject = typeof self != "undefined" && self ? self : window; + } + globalObject.BigNumber = BigNumber; + } + })(exports); +}); + +// node_modules/safe-buffer/index.js +var require_safe_buffer = __commonJS((exports, module) => { + var buffer = __require("buffer"); + var Buffer2 = buffer.Buffer; + function copyProps(src, dst) { + for (var key in src) { + dst[key] = src[key]; + } + } + if (Buffer2.from && Buffer2.alloc && Buffer2.allocUnsafe && Buffer2.allocUnsafeSlow) { + module.exports = buffer; + } else { + copyProps(buffer, exports); + exports.Buffer = SafeBuffer; + } + function SafeBuffer(arg, encodingOrOffset, length) { + return Buffer2(arg, encodingOrOffset, length); + } + copyProps(Buffer2, SafeBuffer); + SafeBuffer.from = function(arg, encodingOrOffset, length) { + if (typeof arg === "number") { + throw new TypeError("Argument must not be a number"); + } + return Buffer2(arg, encodingOrOffset, length); + }; + SafeBuffer.alloc = function(size, fill, encoding) { + if (typeof size !== "number") { + throw new TypeError("Argument must be a number"); + } + var buf = Buffer2(size); + if (fill !== undefined) { + if (typeof encoding === "string") { + buf.fill(fill, encoding); + } else { + buf.fill(fill); + } + } else { + buf.fill(0); + } + return buf; + }; + SafeBuffer.allocUnsafe = function(size) { + if (typeof size !== "number") { + throw new TypeError("Argument must be a number"); + } + return Buffer2(size); + }; + SafeBuffer.allocUnsafeSlow = function(size) { + if (typeof size !== "number") { + throw new TypeError("Argument must be a number"); + } + return buffer.SlowBuffer(size); + }; +}); + +// node_modules/mysql/lib/protocol/BufferList.js +var require_BufferList = __commonJS((exports, module) => { + module.exports = BufferList; + function BufferList() { + this.bufs = []; + this.size = 0; + } + BufferList.prototype.shift = function shift() { + var buf = this.bufs.shift(); + if (buf) { + this.size -= buf.length; + } + return buf; + }; + BufferList.prototype.push = function push(buf) { + if (!buf || !buf.length) { + return; + } + this.bufs.push(buf); + this.size += buf.length; + }; +}); + +// node_modules/mysql/lib/protocol/Parser.js +var require_Parser = __commonJS((exports, module) => { + var PacketHeader = require_PacketHeader(); + var BigNumber = require_bignumber(); + var Buffer2 = require_safe_buffer().Buffer; + var BufferList = require_BufferList(); + var MAX_PACKET_LENGTH = Math.pow(2, 24) - 1; + var MUL_32BIT = Math.pow(2, 32); + var PACKET_HEADER_LENGTH = 4; + module.exports = Parser; + function Parser(options) { + options = options || {}; + this._supportBigNumbers = options.config && options.config.supportBigNumbers; + this._buffer = Buffer2.alloc(0); + this._nextBuffers = new BufferList; + this._longPacketBuffers = new BufferList; + this._offset = 0; + this._packetEnd = null; + this._packetHeader = null; + this._packetOffset = null; + this._onError = options.onError || function(err) { + throw err; + }; + this._onPacket = options.onPacket || function() { + }; + this._nextPacketNumber = 0; + this._encoding = "utf-8"; + this._paused = false; + } + Parser.prototype.write = function write(chunk) { + this._nextBuffers.push(chunk); + while (!this._paused) { + var packetHeader = this._tryReadPacketHeader(); + if (!packetHeader) { + break; + } + if (!this._combineNextBuffers(packetHeader.length)) { + break; + } + this._parsePacket(packetHeader); + } + }; + Parser.prototype.append = function append(chunk) { + if (!chunk || chunk.length === 0) { + return; + } + var sliceEnd = this._buffer.length; + var sliceStart = this._packetOffset === null ? this._offset : this._packetOffset; + var sliceLength = sliceEnd - sliceStart; + var buffer = null; + var chunks = !(chunk instanceof Array || Array.isArray(chunk)) ? [chunk] : chunk; + var length = 0; + var offset = 0; + for (var i = 0;i < chunks.length; i++) { + length += chunks[i].length; + } + if (sliceLength !== 0) { + buffer = Buffer2.allocUnsafe(sliceLength + length); + offset = 0; + offset += this._buffer.copy(buffer, 0, sliceStart, sliceEnd); + for (var i = 0;i < chunks.length; i++) { + offset += chunks[i].copy(buffer, offset); + } + } else if (chunks.length > 1) { + buffer = Buffer2.allocUnsafe(length); + offset = 0; + for (var i = 0;i < chunks.length; i++) { + offset += chunks[i].copy(buffer, offset); + } + } else { + buffer = chunks[0]; + } + this._buffer = buffer; + this._offset = this._offset - sliceStart; + this._packetEnd = this._packetEnd !== null ? this._packetEnd - sliceStart : null; + this._packetOffset = this._packetOffset !== null ? this._packetOffset - sliceStart : null; + }; + Parser.prototype.pause = function() { + this._paused = true; + }; + Parser.prototype.resume = function() { + this._paused = false; + process.nextTick(this.write.bind(this)); + }; + Parser.prototype.peak = function peak(offset) { + return this._buffer[this._offset + (offset >>> 0)]; + }; + Parser.prototype.parseUnsignedNumber = function parseUnsignedNumber(bytes) { + if (bytes === 1) { + return this._buffer[this._offset++]; + } + var buffer = this._buffer; + var offset = this._offset + bytes - 1; + var value = 0; + if (bytes > 4) { + var err = new Error("parseUnsignedNumber: Supports only up to 4 bytes"); + err.offset = this._offset - this._packetOffset - 1; + err.code = "PARSER_UNSIGNED_TOO_LONG"; + throw err; + } + while (offset >= this._offset) { + value = (value << 8 | buffer[offset]) >>> 0; + offset--; + } + this._offset += bytes; + return value; + }; + Parser.prototype.parseLengthCodedString = function() { + var length = this.parseLengthCodedNumber(); + if (length === null) { + return null; + } + return this.parseString(length); + }; + Parser.prototype.parseLengthCodedBuffer = function() { + var length = this.parseLengthCodedNumber(); + if (length === null) { + return null; + } + return this.parseBuffer(length); + }; + Parser.prototype.parseLengthCodedNumber = function parseLengthCodedNumber() { + if (this._offset >= this._buffer.length) { + var err = new Error("Parser: read past end"); + err.offset = this._offset - this._packetOffset; + err.code = "PARSER_READ_PAST_END"; + throw err; + } + var bits = this._buffer[this._offset++]; + if (bits <= 250) { + return bits; + } + switch (bits) { + case 251: + return null; + case 252: + return this.parseUnsignedNumber(2); + case 253: + return this.parseUnsignedNumber(3); + case 254: + break; + default: + var err = new Error("Unexpected first byte" + (bits ? ": 0x" + bits.toString(16) : "")); + err.offset = this._offset - this._packetOffset - 1; + err.code = "PARSER_BAD_LENGTH_BYTE"; + throw err; + } + var low = this.parseUnsignedNumber(4); + var high = this.parseUnsignedNumber(4); + var value; + if (high >>> 21) { + value = BigNumber(MUL_32BIT).times(high).plus(low).toString(); + if (this._supportBigNumbers) { + return value; + } + var err = new Error("parseLengthCodedNumber: JS precision range exceeded, " + 'number is >= 53 bit: "' + value + '"'); + err.offset = this._offset - this._packetOffset - 8; + err.code = "PARSER_JS_PRECISION_RANGE_EXCEEDED"; + throw err; + } + value = low + MUL_32BIT * high; + return value; + }; + Parser.prototype.parseFiller = function(length) { + return this.parseBuffer(length); + }; + Parser.prototype.parseNullTerminatedBuffer = function() { + var end = this._nullByteOffset(); + var value = this._buffer.slice(this._offset, end); + this._offset = end + 1; + return value; + }; + Parser.prototype.parseNullTerminatedString = function() { + var end = this._nullByteOffset(); + var value = this._buffer.toString(this._encoding, this._offset, end); + this._offset = end + 1; + return value; + }; + Parser.prototype._nullByteOffset = function() { + var offset = this._offset; + while (this._buffer[offset] !== 0) { + offset++; + if (offset >= this._buffer.length) { + var err = new Error("Offset of null terminated string not found."); + err.offset = this._offset - this._packetOffset; + err.code = "PARSER_MISSING_NULL_BYTE"; + throw err; + } + } + return offset; + }; + Parser.prototype.parsePacketTerminatedBuffer = function parsePacketTerminatedBuffer() { + var length = this._packetEnd - this._offset; + return this.parseBuffer(length); + }; + Parser.prototype.parsePacketTerminatedString = function() { + var length = this._packetEnd - this._offset; + return this.parseString(length); + }; + Parser.prototype.parseBuffer = function(length) { + var response = Buffer2.alloc(length); + this._buffer.copy(response, 0, this._offset, this._offset + length); + this._offset += length; + return response; + }; + Parser.prototype.parseString = function(length) { + var offset = this._offset; + var end = offset + length; + var value = this._buffer.toString(this._encoding, offset, end); + this._offset = end; + return value; + }; + Parser.prototype.parseGeometryValue = function() { + var buffer = this.parseLengthCodedBuffer(); + var offset = 4; + if (buffer === null || !buffer.length) { + return null; + } + function parseGeometry() { + var result = null; + var byteOrder = buffer.readUInt8(offset); + offset += 1; + var wkbType = byteOrder ? buffer.readUInt32LE(offset) : buffer.readUInt32BE(offset); + offset += 4; + switch (wkbType) { + case 1: + var x = byteOrder ? buffer.readDoubleLE(offset) : buffer.readDoubleBE(offset); + offset += 8; + var y = byteOrder ? buffer.readDoubleLE(offset) : buffer.readDoubleBE(offset); + offset += 8; + result = { x, y }; + break; + case 2: + var numPoints = byteOrder ? buffer.readUInt32LE(offset) : buffer.readUInt32BE(offset); + offset += 4; + result = []; + for (var i = numPoints;i > 0; i--) { + var x = byteOrder ? buffer.readDoubleLE(offset) : buffer.readDoubleBE(offset); + offset += 8; + var y = byteOrder ? buffer.readDoubleLE(offset) : buffer.readDoubleBE(offset); + offset += 8; + result.push({ x, y }); + } + break; + case 3: + var numRings = byteOrder ? buffer.readUInt32LE(offset) : buffer.readUInt32BE(offset); + offset += 4; + result = []; + for (var i = numRings;i > 0; i--) { + var numPoints = byteOrder ? buffer.readUInt32LE(offset) : buffer.readUInt32BE(offset); + offset += 4; + var line = []; + for (var j = numPoints;j > 0; j--) { + var x = byteOrder ? buffer.readDoubleLE(offset) : buffer.readDoubleBE(offset); + offset += 8; + var y = byteOrder ? buffer.readDoubleLE(offset) : buffer.readDoubleBE(offset); + offset += 8; + line.push({ x, y }); + } + result.push(line); + } + break; + case 4: + case 5: + case 6: + case 7: + var num = byteOrder ? buffer.readUInt32LE(offset) : buffer.readUInt32BE(offset); + offset += 4; + var result = []; + for (var i = num;i > 0; i--) { + result.push(parseGeometry()); + } + break; + } + return result; + } + return parseGeometry(); + }; + Parser.prototype.reachedPacketEnd = function() { + return this._offset === this._packetEnd; + }; + Parser.prototype.incrementPacketNumber = function() { + var currentPacketNumber = this._nextPacketNumber; + this._nextPacketNumber = (this._nextPacketNumber + 1) % 256; + return currentPacketNumber; + }; + Parser.prototype.resetPacketNumber = function() { + this._nextPacketNumber = 0; + }; + Parser.prototype.packetLength = function packetLength() { + if (!this._packetHeader) { + return null; + } + return this._packetHeader.length + this._longPacketBuffers.size; + }; + Parser.prototype._combineNextBuffers = function _combineNextBuffers(bytes) { + var length = this._buffer.length - this._offset; + if (length >= bytes) { + return true; + } + if (length + this._nextBuffers.size < bytes) { + return false; + } + var buffers = []; + var bytesNeeded = bytes - length; + while (bytesNeeded > 0) { + var buffer = this._nextBuffers.shift(); + buffers.push(buffer); + bytesNeeded -= buffer.length; + } + this.append(buffers); + return true; + }; + Parser.prototype._combineLongPacketBuffers = function _combineLongPacketBuffers() { + if (!this._longPacketBuffers.size) { + return; + } + var remainingBytes = this._buffer.length - this._offset; + var trailingPacketBytes = this._buffer.length - this._packetEnd; + var buf = null; + var buffer = Buffer2.allocUnsafe(remainingBytes + this._longPacketBuffers.size); + var offset = 0; + while (buf = this._longPacketBuffers.shift()) { + offset += buf.copy(buffer, offset); + } + this._buffer.copy(buffer, offset, this._offset); + this._buffer = buffer; + this._offset = 0; + this._packetEnd = this._buffer.length - trailingPacketBytes; + this._packetOffset = 0; + }; + Parser.prototype._parsePacket = function _parsePacket(packetHeader) { + this._packetEnd = this._offset + packetHeader.length; + this._packetOffset = this._offset; + if (packetHeader.length === MAX_PACKET_LENGTH) { + this._longPacketBuffers.push(this._buffer.slice(this._packetOffset, this._packetEnd)); + this._advanceToNextPacket(); + return; + } + this._combineLongPacketBuffers(); + var hadException = true; + try { + this._onPacket(packetHeader); + hadException = false; + } catch (err) { + if (!err || typeof err.code !== "string" || err.code.substr(0, 7) !== "PARSER_") { + throw err; + } + this._onError(err); + hadException = false; + } finally { + this._advanceToNextPacket(); + if (hadException) { + process.nextTick(this.write.bind(this)); + } + } + }; + Parser.prototype._tryReadPacketHeader = function _tryReadPacketHeader() { + if (this._packetHeader) { + return this._packetHeader; + } + if (!this._combineNextBuffers(PACKET_HEADER_LENGTH)) { + return null; + } + this._packetHeader = new PacketHeader(this.parseUnsignedNumber(3), this.parseUnsignedNumber(1)); + if (this._packetHeader.number !== this._nextPacketNumber) { + var err = new Error("Packets out of order. Got: " + this._packetHeader.number + " " + "Expected: " + this._nextPacketNumber); + err.code = "PROTOCOL_PACKETS_OUT_OF_ORDER"; + err.fatal = true; + this._onError(err); + } + this.incrementPacketNumber(); + return this._packetHeader; + }; + Parser.prototype._advanceToNextPacket = function() { + this._offset = this._packetEnd; + this._packetHeader = null; + this._packetEnd = null; + this._packetOffset = null; + }; +}); + +// node_modules/mysql/lib/protocol/packets/AuthSwitchRequestPacket.js +var require_AuthSwitchRequestPacket = __commonJS((exports, module) => { + module.exports = AuthSwitchRequestPacket; + function AuthSwitchRequestPacket(options) { + options = options || {}; + this.status = 254; + this.authMethodName = options.authMethodName; + this.authMethodData = options.authMethodData; + } + AuthSwitchRequestPacket.prototype.parse = function parse(parser) { + this.status = parser.parseUnsignedNumber(1); + this.authMethodName = parser.parseNullTerminatedString(); + this.authMethodData = parser.parsePacketTerminatedBuffer(); + }; + AuthSwitchRequestPacket.prototype.write = function write(writer) { + writer.writeUnsignedNumber(1, this.status); + writer.writeNullTerminatedString(this.authMethodName); + writer.writeBuffer(this.authMethodData); + }; +}); + +// node_modules/mysql/lib/protocol/packets/AuthSwitchResponsePacket.js +var require_AuthSwitchResponsePacket = __commonJS((exports, module) => { + module.exports = AuthSwitchResponsePacket; + function AuthSwitchResponsePacket(options) { + options = options || {}; + this.data = options.data; + } + AuthSwitchResponsePacket.prototype.parse = function parse(parser) { + this.data = parser.parsePacketTerminatedBuffer(); + }; + AuthSwitchResponsePacket.prototype.write = function write(writer) { + writer.writeBuffer(this.data); + }; +}); + +// node_modules/mysql/lib/protocol/packets/ClientAuthenticationPacket.js +var require_ClientAuthenticationPacket = __commonJS((exports, module) => { + var Buffer2 = require_safe_buffer().Buffer; + module.exports = ClientAuthenticationPacket; + function ClientAuthenticationPacket(options) { + options = options || {}; + this.clientFlags = options.clientFlags; + this.maxPacketSize = options.maxPacketSize; + this.charsetNumber = options.charsetNumber; + this.filler = undefined; + this.user = options.user; + this.scrambleBuff = options.scrambleBuff; + this.database = options.database; + this.protocol41 = options.protocol41; + } + ClientAuthenticationPacket.prototype.parse = function(parser) { + if (this.protocol41) { + this.clientFlags = parser.parseUnsignedNumber(4); + this.maxPacketSize = parser.parseUnsignedNumber(4); + this.charsetNumber = parser.parseUnsignedNumber(1); + this.filler = parser.parseFiller(23); + this.user = parser.parseNullTerminatedString(); + this.scrambleBuff = parser.parseLengthCodedBuffer(); + this.database = parser.parseNullTerminatedString(); + } else { + this.clientFlags = parser.parseUnsignedNumber(2); + this.maxPacketSize = parser.parseUnsignedNumber(3); + this.user = parser.parseNullTerminatedString(); + this.scrambleBuff = parser.parseBuffer(8); + this.database = parser.parseLengthCodedBuffer(); + } + }; + ClientAuthenticationPacket.prototype.write = function(writer) { + if (this.protocol41) { + writer.writeUnsignedNumber(4, this.clientFlags); + writer.writeUnsignedNumber(4, this.maxPacketSize); + writer.writeUnsignedNumber(1, this.charsetNumber); + writer.writeFiller(23); + writer.writeNullTerminatedString(this.user); + writer.writeLengthCodedBuffer(this.scrambleBuff); + writer.writeNullTerminatedString(this.database); + } else { + writer.writeUnsignedNumber(2, this.clientFlags); + writer.writeUnsignedNumber(3, this.maxPacketSize); + writer.writeNullTerminatedString(this.user); + writer.writeBuffer(this.scrambleBuff); + if (this.database && this.database.length) { + writer.writeFiller(1); + writer.writeBuffer(Buffer2.from(this.database)); + } + } + }; +}); + +// node_modules/mysql/lib/protocol/packets/ComChangeUserPacket.js +var require_ComChangeUserPacket = __commonJS((exports, module) => { + module.exports = ComChangeUserPacket; + function ComChangeUserPacket(options) { + options = options || {}; + this.command = 17; + this.user = options.user; + this.scrambleBuff = options.scrambleBuff; + this.database = options.database; + this.charsetNumber = options.charsetNumber; + } + ComChangeUserPacket.prototype.parse = function(parser) { + this.command = parser.parseUnsignedNumber(1); + this.user = parser.parseNullTerminatedString(); + this.scrambleBuff = parser.parseLengthCodedBuffer(); + this.database = parser.parseNullTerminatedString(); + this.charsetNumber = parser.parseUnsignedNumber(1); + }; + ComChangeUserPacket.prototype.write = function(writer) { + writer.writeUnsignedNumber(1, this.command); + writer.writeNullTerminatedString(this.user); + writer.writeLengthCodedBuffer(this.scrambleBuff); + writer.writeNullTerminatedString(this.database); + writer.writeUnsignedNumber(2, this.charsetNumber); + }; +}); + +// node_modules/mysql/lib/protocol/packets/ComPingPacket.js +var require_ComPingPacket = __commonJS((exports, module) => { + module.exports = ComPingPacket; + function ComPingPacket() { + this.command = 14; + } + ComPingPacket.prototype.write = function(writer) { + writer.writeUnsignedNumber(1, this.command); + }; + ComPingPacket.prototype.parse = function(parser) { + this.command = parser.parseUnsignedNumber(1); + }; +}); + +// node_modules/mysql/lib/protocol/packets/ComQueryPacket.js +var require_ComQueryPacket = __commonJS((exports, module) => { + module.exports = ComQueryPacket; + function ComQueryPacket(sql) { + this.command = 3; + this.sql = sql; + } + ComQueryPacket.prototype.write = function(writer) { + writer.writeUnsignedNumber(1, this.command); + writer.writeString(this.sql); + }; + ComQueryPacket.prototype.parse = function(parser) { + this.command = parser.parseUnsignedNumber(1); + this.sql = parser.parsePacketTerminatedString(); + }; +}); + +// node_modules/mysql/lib/protocol/packets/ComQuitPacket.js +var require_ComQuitPacket = __commonJS((exports, module) => { + module.exports = ComQuitPacket; + function ComQuitPacket() { + this.command = 1; + } + ComQuitPacket.prototype.parse = function parse(parser) { + this.command = parser.parseUnsignedNumber(1); + }; + ComQuitPacket.prototype.write = function write(writer) { + writer.writeUnsignedNumber(1, this.command); + }; +}); + +// node_modules/mysql/lib/protocol/packets/ComStatisticsPacket.js +var require_ComStatisticsPacket = __commonJS((exports, module) => { + module.exports = ComStatisticsPacket; + function ComStatisticsPacket() { + this.command = 9; + } + ComStatisticsPacket.prototype.write = function(writer) { + writer.writeUnsignedNumber(1, this.command); + }; + ComStatisticsPacket.prototype.parse = function(parser) { + this.command = parser.parseUnsignedNumber(1); + }; +}); + +// node_modules/mysql/lib/protocol/packets/EmptyPacket.js +var require_EmptyPacket = __commonJS((exports, module) => { + module.exports = EmptyPacket; + function EmptyPacket() { + } + EmptyPacket.prototype.parse = function parse() { + }; + EmptyPacket.prototype.write = function write() { + }; +}); + +// node_modules/mysql/lib/protocol/packets/EofPacket.js +var require_EofPacket = __commonJS((exports, module) => { + module.exports = EofPacket; + function EofPacket(options) { + options = options || {}; + this.fieldCount = undefined; + this.warningCount = options.warningCount; + this.serverStatus = options.serverStatus; + this.protocol41 = options.protocol41; + } + EofPacket.prototype.parse = function(parser) { + this.fieldCount = parser.parseUnsignedNumber(1); + if (this.protocol41) { + this.warningCount = parser.parseUnsignedNumber(2); + this.serverStatus = parser.parseUnsignedNumber(2); + } + }; + EofPacket.prototype.write = function(writer) { + writer.writeUnsignedNumber(1, 254); + if (this.protocol41) { + writer.writeUnsignedNumber(2, this.warningCount); + writer.writeUnsignedNumber(2, this.serverStatus); + } + }; +}); + +// node_modules/mysql/lib/protocol/packets/ErrorPacket.js +var require_ErrorPacket = __commonJS((exports, module) => { + module.exports = ErrorPacket; + function ErrorPacket(options) { + options = options || {}; + this.fieldCount = options.fieldCount; + this.errno = options.errno; + this.sqlStateMarker = options.sqlStateMarker; + this.sqlState = options.sqlState; + this.message = options.message; + } + ErrorPacket.prototype.parse = function(parser) { + this.fieldCount = parser.parseUnsignedNumber(1); + this.errno = parser.parseUnsignedNumber(2); + if (parser.peak() === 35) { + this.sqlStateMarker = parser.parseString(1); + this.sqlState = parser.parseString(5); + } + this.message = parser.parsePacketTerminatedString(); + }; + ErrorPacket.prototype.write = function(writer) { + writer.writeUnsignedNumber(1, 255); + writer.writeUnsignedNumber(2, this.errno); + if (this.sqlStateMarker) { + writer.writeString(this.sqlStateMarker); + writer.writeString(this.sqlState); + } + writer.writeString(this.message); + }; +}); + +// node_modules/mysql/lib/protocol/constants/types.js +var require_types = __commonJS((exports) => { + exports.DECIMAL = 0; + exports.TINY = 1; + exports.SHORT = 2; + exports.LONG = 3; + exports.FLOAT = 4; + exports.DOUBLE = 5; + exports.NULL = 6; + exports.TIMESTAMP = 7; + exports.LONGLONG = 8; + exports.INT24 = 9; + exports.DATE = 10; + exports.TIME = 11; + exports.DATETIME = 12; + exports.YEAR = 13; + exports.NEWDATE = 14; + exports.VARCHAR = 15; + exports.BIT = 16; + exports.TIMESTAMP2 = 17; + exports.DATETIME2 = 18; + exports.TIME2 = 19; + exports.JSON = 245; + exports.NEWDECIMAL = 246; + exports.ENUM = 247; + exports.SET = 248; + exports.TINY_BLOB = 249; + exports.MEDIUM_BLOB = 250; + exports.LONG_BLOB = 251; + exports.BLOB = 252; + exports.VAR_STRING = 253; + exports.STRING = 254; + exports.GEOMETRY = 255; + exports[0] = "DECIMAL"; + exports[1] = "TINY"; + exports[2] = "SHORT"; + exports[3] = "LONG"; + exports[4] = "FLOAT"; + exports[5] = "DOUBLE"; + exports[6] = "NULL"; + exports[7] = "TIMESTAMP"; + exports[8] = "LONGLONG"; + exports[9] = "INT24"; + exports[10] = "DATE"; + exports[11] = "TIME"; + exports[12] = "DATETIME"; + exports[13] = "YEAR"; + exports[14] = "NEWDATE"; + exports[15] = "VARCHAR"; + exports[16] = "BIT"; + exports[17] = "TIMESTAMP2"; + exports[18] = "DATETIME2"; + exports[19] = "TIME2"; + exports[245] = "JSON"; + exports[246] = "NEWDECIMAL"; + exports[247] = "ENUM"; + exports[248] = "SET"; + exports[249] = "TINY_BLOB"; + exports[250] = "MEDIUM_BLOB"; + exports[251] = "LONG_BLOB"; + exports[252] = "BLOB"; + exports[253] = "VAR_STRING"; + exports[254] = "STRING"; + exports[255] = "GEOMETRY"; +}); + +// node_modules/mysql/lib/protocol/packets/Field.js +var require_Field = __commonJS((exports, module) => { + var Types = require_types(); + module.exports = Field; + function Field(options) { + options = options || {}; + this.parser = options.parser; + this.packet = options.packet; + this.db = options.packet.db; + this.table = options.packet.table; + this.name = options.packet.name; + this.type = Types[options.packet.type]; + this.length = options.packet.length; + } + Field.prototype.string = function() { + return this.parser.parseLengthCodedString(); + }; + Field.prototype.buffer = function() { + return this.parser.parseLengthCodedBuffer(); + }; + Field.prototype.geometry = function() { + return this.parser.parseGeometryValue(); + }; +}); + +// node_modules/mysql/lib/protocol/packets/FieldPacket.js +var require_FieldPacket = __commonJS((exports, module) => { + module.exports = FieldPacket; + function FieldPacket(options) { + options = options || {}; + this.catalog = options.catalog; + this.db = options.db; + this.table = options.table; + this.orgTable = options.orgTable; + this.name = options.name; + this.orgName = options.orgName; + this.charsetNr = options.charsetNr; + this.length = options.length; + this.type = options.type; + this.flags = options.flags; + this.decimals = options.decimals; + this.default = options.default; + this.zeroFill = options.zeroFill; + this.protocol41 = options.protocol41; + } + FieldPacket.prototype.parse = function(parser) { + if (this.protocol41) { + this.catalog = parser.parseLengthCodedString(); + this.db = parser.parseLengthCodedString(); + this.table = parser.parseLengthCodedString(); + this.orgTable = parser.parseLengthCodedString(); + this.name = parser.parseLengthCodedString(); + this.orgName = parser.parseLengthCodedString(); + if (parser.parseLengthCodedNumber() !== 12) { + var err = new TypeError("Received invalid field length"); + err.code = "PARSER_INVALID_FIELD_LENGTH"; + throw err; + } + this.charsetNr = parser.parseUnsignedNumber(2); + this.length = parser.parseUnsignedNumber(4); + this.type = parser.parseUnsignedNumber(1); + this.flags = parser.parseUnsignedNumber(2); + this.decimals = parser.parseUnsignedNumber(1); + var filler = parser.parseBuffer(2); + if (filler[0] !== 0 || filler[1] !== 0) { + var err = new TypeError("Received invalid filler"); + err.code = "PARSER_INVALID_FILLER"; + throw err; + } + this.zeroFill = this.flags & 64 ? true : false; + if (parser.reachedPacketEnd()) { + return; + } + this.default = parser.parseLengthCodedString(); + } else { + this.table = parser.parseLengthCodedString(); + this.name = parser.parseLengthCodedString(); + this.length = parser.parseUnsignedNumber(parser.parseUnsignedNumber(1)); + this.type = parser.parseUnsignedNumber(parser.parseUnsignedNumber(1)); + } + }; + FieldPacket.prototype.write = function(writer) { + if (this.protocol41) { + writer.writeLengthCodedString(this.catalog); + writer.writeLengthCodedString(this.db); + writer.writeLengthCodedString(this.table); + writer.writeLengthCodedString(this.orgTable); + writer.writeLengthCodedString(this.name); + writer.writeLengthCodedString(this.orgName); + writer.writeLengthCodedNumber(12); + writer.writeUnsignedNumber(2, this.charsetNr || 0); + writer.writeUnsignedNumber(4, this.length || 0); + writer.writeUnsignedNumber(1, this.type || 0); + writer.writeUnsignedNumber(2, this.flags || 0); + writer.writeUnsignedNumber(1, this.decimals || 0); + writer.writeFiller(2); + if (this.default !== undefined) { + writer.writeLengthCodedString(this.default); + } + } else { + writer.writeLengthCodedString(this.table); + writer.writeLengthCodedString(this.name); + writer.writeUnsignedNumber(1, 1); + writer.writeUnsignedNumber(1, this.length); + writer.writeUnsignedNumber(1, 1); + writer.writeUnsignedNumber(1, this.type); + } + }; +}); + +// node_modules/mysql/lib/protocol/packets/HandshakeInitializationPacket.js +var require_HandshakeInitializationPacket = __commonJS((exports, module) => { + var Buffer2 = require_safe_buffer().Buffer; + var Client = require_client(); + module.exports = HandshakeInitializationPacket; + function HandshakeInitializationPacket(options) { + options = options || {}; + this.protocolVersion = options.protocolVersion; + this.serverVersion = options.serverVersion; + this.threadId = options.threadId; + this.scrambleBuff1 = options.scrambleBuff1; + this.filler1 = options.filler1; + this.serverCapabilities1 = options.serverCapabilities1; + this.serverLanguage = options.serverLanguage; + this.serverStatus = options.serverStatus; + this.serverCapabilities2 = options.serverCapabilities2; + this.scrambleLength = options.scrambleLength; + this.filler2 = options.filler2; + this.scrambleBuff2 = options.scrambleBuff2; + this.filler3 = options.filler3; + this.pluginData = options.pluginData; + this.protocol41 = options.protocol41; + if (this.protocol41) { + this.serverCapabilities1 |= Client.CLIENT_PROTOCOL_41; + } + } + HandshakeInitializationPacket.prototype.parse = function(parser) { + this.protocolVersion = parser.parseUnsignedNumber(1); + this.serverVersion = parser.parseNullTerminatedString(); + this.threadId = parser.parseUnsignedNumber(4); + this.scrambleBuff1 = parser.parseBuffer(8); + this.filler1 = parser.parseFiller(1); + this.serverCapabilities1 = parser.parseUnsignedNumber(2); + this.serverLanguage = parser.parseUnsignedNumber(1); + this.serverStatus = parser.parseUnsignedNumber(2); + this.protocol41 = (this.serverCapabilities1 & 1 << 9) > 0; + if (this.protocol41) { + this.serverCapabilities2 = parser.parseUnsignedNumber(2); + this.scrambleLength = parser.parseUnsignedNumber(1); + this.filler2 = parser.parseFiller(10); + this.scrambleBuff2 = parser.parseBuffer(12); + this.filler3 = parser.parseFiller(1); + } else { + this.filler2 = parser.parseFiller(13); + } + if (parser.reachedPacketEnd()) { + return; + } + this.pluginData = parser.parsePacketTerminatedString(); + var lastChar = this.pluginData.length - 1; + if (this.pluginData[lastChar] === "\0") { + this.pluginData = this.pluginData.substr(0, lastChar); + } + }; + HandshakeInitializationPacket.prototype.write = function(writer) { + writer.writeUnsignedNumber(1, this.protocolVersion); + writer.writeNullTerminatedString(this.serverVersion); + writer.writeUnsignedNumber(4, this.threadId); + writer.writeBuffer(this.scrambleBuff1); + writer.writeFiller(1); + writer.writeUnsignedNumber(2, this.serverCapabilities1); + writer.writeUnsignedNumber(1, this.serverLanguage); + writer.writeUnsignedNumber(2, this.serverStatus); + if (this.protocol41) { + writer.writeUnsignedNumber(2, this.serverCapabilities2); + writer.writeUnsignedNumber(1, this.scrambleLength); + writer.writeFiller(10); + } + writer.writeNullTerminatedBuffer(this.scrambleBuff2); + if (this.pluginData !== undefined) { + writer.writeNullTerminatedString(this.pluginData); + } + }; + HandshakeInitializationPacket.prototype.scrambleBuff = function() { + var buffer = null; + if (typeof this.scrambleBuff2 === "undefined") { + buffer = Buffer2.from(this.scrambleBuff1); + } else { + buffer = Buffer2.allocUnsafe(this.scrambleBuff1.length + this.scrambleBuff2.length); + this.scrambleBuff1.copy(buffer, 0); + this.scrambleBuff2.copy(buffer, this.scrambleBuff1.length); + } + return buffer; + }; +}); + +// node_modules/mysql/lib/protocol/packets/LocalDataFilePacket.js +var require_LocalDataFilePacket = __commonJS((exports, module) => { + module.exports = LocalDataFilePacket; + function LocalDataFilePacket(data) { + this.data = data; + } + LocalDataFilePacket.prototype.write = function(writer) { + writer.writeBuffer(this.data); + }; +}); + +// node_modules/mysql/lib/protocol/packets/LocalInfileRequestPacket.js +var require_LocalInfileRequestPacket = __commonJS((exports, module) => { + module.exports = LocalInfileRequestPacket; + function LocalInfileRequestPacket(options) { + options = options || {}; + this.filename = options.filename; + } + LocalInfileRequestPacket.prototype.parse = function parse(parser) { + if (parser.parseLengthCodedNumber() !== null) { + var err = new TypeError("Received invalid field length"); + err.code = "PARSER_INVALID_FIELD_LENGTH"; + throw err; + } + this.filename = parser.parsePacketTerminatedString(); + }; + LocalInfileRequestPacket.prototype.write = function write(writer) { + writer.writeLengthCodedNumber(null); + writer.writeString(this.filename); + }; +}); + +// node_modules/mysql/lib/protocol/packets/OkPacket.js +var require_OkPacket = __commonJS((exports, module) => { + var ER_UPDATE_INFO_REGEXP = /^[^:0-9]+: [0-9]+[^:0-9]+: ([0-9]+)[^:0-9]+: [0-9]+[^:0-9]*$/; + module.exports = OkPacket; + function OkPacket(options) { + options = options || {}; + this.fieldCount = undefined; + this.affectedRows = undefined; + this.insertId = undefined; + this.serverStatus = undefined; + this.warningCount = undefined; + this.message = undefined; + this.protocol41 = options.protocol41; + } + OkPacket.prototype.parse = function(parser) { + this.fieldCount = parser.parseUnsignedNumber(1); + this.affectedRows = parser.parseLengthCodedNumber(); + this.insertId = parser.parseLengthCodedNumber(); + if (this.protocol41) { + this.serverStatus = parser.parseUnsignedNumber(2); + this.warningCount = parser.parseUnsignedNumber(2); + } + this.message = parser.parsePacketTerminatedString(); + this.changedRows = 0; + var m = ER_UPDATE_INFO_REGEXP.exec(this.message); + if (m !== null) { + this.changedRows = parseInt(m[1], 10); + } + }; + OkPacket.prototype.write = function(writer) { + writer.writeUnsignedNumber(1, 0); + writer.writeLengthCodedNumber(this.affectedRows || 0); + writer.writeLengthCodedNumber(this.insertId || 0); + if (this.protocol41) { + writer.writeUnsignedNumber(2, this.serverStatus || 0); + writer.writeUnsignedNumber(2, this.warningCount || 0); + } + writer.writeString(this.message); + }; +}); + +// node_modules/mysql/lib/protocol/packets/OldPasswordPacket.js +var require_OldPasswordPacket = __commonJS((exports, module) => { + module.exports = OldPasswordPacket; + function OldPasswordPacket(options) { + options = options || {}; + this.scrambleBuff = options.scrambleBuff; + } + OldPasswordPacket.prototype.parse = function(parser) { + this.scrambleBuff = parser.parsePacketTerminatedBuffer(); + }; + OldPasswordPacket.prototype.write = function(writer) { + writer.writeBuffer(this.scrambleBuff); + }; +}); + +// node_modules/mysql/lib/protocol/packets/ResultSetHeaderPacket.js +var require_ResultSetHeaderPacket = __commonJS((exports, module) => { + module.exports = ResultSetHeaderPacket; + function ResultSetHeaderPacket(options) { + options = options || {}; + this.fieldCount = options.fieldCount; + } + ResultSetHeaderPacket.prototype.parse = function(parser) { + this.fieldCount = parser.parseLengthCodedNumber(); + }; + ResultSetHeaderPacket.prototype.write = function(writer) { + writer.writeLengthCodedNumber(this.fieldCount); + }; +}); + +// node_modules/mysql/lib/protocol/packets/RowDataPacket.js +var require_RowDataPacket = __commonJS((exports, module) => { + var Types = require_types(); + var Charsets = require_charsets(); + var Field = require_Field(); + var IEEE_754_BINARY_64_PRECISION = Math.pow(2, 53); + module.exports = RowDataPacket; + function RowDataPacket() { + } + Object.defineProperty(RowDataPacket.prototype, "parse", { + configurable: true, + enumerable: false, + value: parse + }); + Object.defineProperty(RowDataPacket.prototype, "_typeCast", { + configurable: true, + enumerable: false, + value: typeCast + }); + function parse(parser, fieldPackets, typeCast2, nestTables, connection) { + var self2 = this; + var next = function() { + return self2._typeCast(fieldPacket, parser, connection.config.timezone, connection.config.supportBigNumbers, connection.config.bigNumberStrings, connection.config.dateStrings); + }; + for (var i = 0;i < fieldPackets.length; i++) { + var fieldPacket = fieldPackets[i]; + var value; + if (typeof typeCast2 === "function") { + value = typeCast2.apply(connection, [new Field({ packet: fieldPacket, parser }), next]); + } else { + value = typeCast2 ? this._typeCast(fieldPacket, parser, connection.config.timezone, connection.config.supportBigNumbers, connection.config.bigNumberStrings, connection.config.dateStrings) : fieldPacket.charsetNr === Charsets.BINARY ? parser.parseLengthCodedBuffer() : parser.parseLengthCodedString(); + } + if (typeof nestTables === "string" && nestTables.length) { + this[fieldPacket.table + nestTables + fieldPacket.name] = value; + } else if (nestTables) { + this[fieldPacket.table] = this[fieldPacket.table] || {}; + this[fieldPacket.table][fieldPacket.name] = value; + } else { + this[fieldPacket.name] = value; + } + } + } + function typeCast(field, parser, timeZone, supportBigNumbers, bigNumberStrings, dateStrings) { + var numberString; + switch (field.type) { + case Types.TIMESTAMP: + case Types.TIMESTAMP2: + case Types.DATE: + case Types.DATETIME: + case Types.DATETIME2: + case Types.NEWDATE: + var dateString = parser.parseLengthCodedString(); + if (typeMatch(field.type, dateStrings)) { + return dateString; + } + if (dateString === null) { + return null; + } + var originalString = dateString; + if (field.type === Types.DATE) { + dateString += " 00:00:00"; + } + if (timeZone !== "local") { + dateString += " " + timeZone; + } + var dt = new Date(dateString); + if (isNaN(dt.getTime())) { + return originalString; + } + return dt; + case Types.TINY: + case Types.SHORT: + case Types.LONG: + case Types.INT24: + case Types.YEAR: + case Types.FLOAT: + case Types.DOUBLE: + numberString = parser.parseLengthCodedString(); + return numberString === null || field.zeroFill && numberString[0] === "0" ? numberString : Number(numberString); + case Types.NEWDECIMAL: + case Types.LONGLONG: + numberString = parser.parseLengthCodedString(); + return numberString === null || field.zeroFill && numberString[0] === "0" ? numberString : supportBigNumbers && (bigNumberStrings || Number(numberString) >= IEEE_754_BINARY_64_PRECISION || Number(numberString) <= -IEEE_754_BINARY_64_PRECISION) ? numberString : Number(numberString); + case Types.BIT: + return parser.parseLengthCodedBuffer(); + case Types.STRING: + case Types.VAR_STRING: + case Types.TINY_BLOB: + case Types.MEDIUM_BLOB: + case Types.LONG_BLOB: + case Types.BLOB: + return field.charsetNr === Charsets.BINARY ? parser.parseLengthCodedBuffer() : parser.parseLengthCodedString(); + case Types.GEOMETRY: + return parser.parseGeometryValue(); + default: + return parser.parseLengthCodedString(); + } + } + function typeMatch(type, list) { + if (Array.isArray(list)) { + return list.indexOf(Types[type]) !== -1; + } else { + return Boolean(list); + } + } +}); + +// node_modules/mysql/lib/protocol/packets/SSLRequestPacket.js +var require_SSLRequestPacket = __commonJS((exports, module) => { + var ClientConstants = require_client(); + module.exports = SSLRequestPacket; + function SSLRequestPacket(options) { + options = options || {}; + this.clientFlags = options.clientFlags | ClientConstants.CLIENT_SSL; + this.maxPacketSize = options.maxPacketSize; + this.charsetNumber = options.charsetNumber; + } + SSLRequestPacket.prototype.parse = function(parser) { + this.clientFlags = parser.parseUnsignedNumber(4); + this.maxPacketSize = parser.parseUnsignedNumber(4); + this.charsetNumber = parser.parseUnsignedNumber(1); + }; + SSLRequestPacket.prototype.write = function(writer) { + writer.writeUnsignedNumber(4, this.clientFlags); + writer.writeUnsignedNumber(4, this.maxPacketSize); + writer.writeUnsignedNumber(1, this.charsetNumber); + writer.writeFiller(23); + }; +}); + +// node_modules/mysql/lib/protocol/packets/StatisticsPacket.js +var require_StatisticsPacket = __commonJS((exports, module) => { + module.exports = StatisticsPacket; + function StatisticsPacket() { + this.message = undefined; + } + StatisticsPacket.prototype.parse = function(parser) { + this.message = parser.parsePacketTerminatedString(); + var items = this.message.split(/\s\s/); + for (var i = 0;i < items.length; i++) { + var m = items[i].match(/^(.+)\:\s+(.+)$/); + if (m !== null) { + this[m[1].toLowerCase().replace(/\s/g, "_")] = Number(m[2]); + } + } + }; + StatisticsPacket.prototype.write = function(writer) { + writer.writeString(this.message); + }; +}); + +// node_modules/mysql/lib/protocol/packets/UseOldPasswordPacket.js +var require_UseOldPasswordPacket = __commonJS((exports, module) => { + module.exports = UseOldPasswordPacket; + function UseOldPasswordPacket(options) { + options = options || {}; + this.firstByte = options.firstByte || 254; + } + UseOldPasswordPacket.prototype.parse = function(parser) { + this.firstByte = parser.parseUnsignedNumber(1); + }; + UseOldPasswordPacket.prototype.write = function(writer) { + writer.writeUnsignedNumber(1, this.firstByte); + }; +}); + +// node_modules/mysql/lib/protocol/packets/index.js +var require_packets = __commonJS((exports) => { + exports.AuthSwitchRequestPacket = require_AuthSwitchRequestPacket(); + exports.AuthSwitchResponsePacket = require_AuthSwitchResponsePacket(); + exports.ClientAuthenticationPacket = require_ClientAuthenticationPacket(); + exports.ComChangeUserPacket = require_ComChangeUserPacket(); + exports.ComPingPacket = require_ComPingPacket(); + exports.ComQueryPacket = require_ComQueryPacket(); + exports.ComQuitPacket = require_ComQuitPacket(); + exports.ComStatisticsPacket = require_ComStatisticsPacket(); + exports.EmptyPacket = require_EmptyPacket(); + exports.EofPacket = require_EofPacket(); + exports.ErrorPacket = require_ErrorPacket(); + exports.Field = require_Field(); + exports.FieldPacket = require_FieldPacket(); + exports.HandshakeInitializationPacket = require_HandshakeInitializationPacket(); + exports.LocalDataFilePacket = require_LocalDataFilePacket(); + exports.LocalInfileRequestPacket = require_LocalInfileRequestPacket(); + exports.OkPacket = require_OkPacket(); + exports.OldPasswordPacket = require_OldPasswordPacket(); + exports.ResultSetHeaderPacket = require_ResultSetHeaderPacket(); + exports.RowDataPacket = require_RowDataPacket(); + exports.SSLRequestPacket = require_SSLRequestPacket(); + exports.StatisticsPacket = require_StatisticsPacket(); + exports.UseOldPasswordPacket = require_UseOldPasswordPacket(); +}); + +// node_modules/mysql/lib/protocol/constants/errors.js +var require_errors = __commonJS((exports) => { + exports.EE_CANTCREATEFILE = 1; + exports.EE_READ = 2; + exports.EE_WRITE = 3; + exports.EE_BADCLOSE = 4; + exports.EE_OUTOFMEMORY = 5; + exports.EE_DELETE = 6; + exports.EE_LINK = 7; + exports.EE_EOFERR = 9; + exports.EE_CANTLOCK = 10; + exports.EE_CANTUNLOCK = 11; + exports.EE_DIR = 12; + exports.EE_STAT = 13; + exports.EE_CANT_CHSIZE = 14; + exports.EE_CANT_OPEN_STREAM = 15; + exports.EE_GETWD = 16; + exports.EE_SETWD = 17; + exports.EE_LINK_WARNING = 18; + exports.EE_OPEN_WARNING = 19; + exports.EE_DISK_FULL = 20; + exports.EE_CANT_MKDIR = 21; + exports.EE_UNKNOWN_CHARSET = 22; + exports.EE_OUT_OF_FILERESOURCES = 23; + exports.EE_CANT_READLINK = 24; + exports.EE_CANT_SYMLINK = 25; + exports.EE_REALPATH = 26; + exports.EE_SYNC = 27; + exports.EE_UNKNOWN_COLLATION = 28; + exports.EE_FILENOTFOUND = 29; + exports.EE_FILE_NOT_CLOSED = 30; + exports.EE_CHANGE_OWNERSHIP = 31; + exports.EE_CHANGE_PERMISSIONS = 32; + exports.EE_CANT_SEEK = 33; + exports.EE_CAPACITY_EXCEEDED = 34; + exports.HA_ERR_KEY_NOT_FOUND = 120; + exports.HA_ERR_FOUND_DUPP_KEY = 121; + exports.HA_ERR_INTERNAL_ERROR = 122; + exports.HA_ERR_RECORD_CHANGED = 123; + exports.HA_ERR_WRONG_INDEX = 124; + exports.HA_ERR_CRASHED = 126; + exports.HA_ERR_WRONG_IN_RECORD = 127; + exports.HA_ERR_OUT_OF_MEM = 128; + exports.HA_ERR_NOT_A_TABLE = 130; + exports.HA_ERR_WRONG_COMMAND = 131; + exports.HA_ERR_OLD_FILE = 132; + exports.HA_ERR_NO_ACTIVE_RECORD = 133; + exports.HA_ERR_RECORD_DELETED = 134; + exports.HA_ERR_RECORD_FILE_FULL = 135; + exports.HA_ERR_INDEX_FILE_FULL = 136; + exports.HA_ERR_END_OF_FILE = 137; + exports.HA_ERR_UNSUPPORTED = 138; + exports.HA_ERR_TOO_BIG_ROW = 139; + exports.HA_WRONG_CREATE_OPTION = 140; + exports.HA_ERR_FOUND_DUPP_UNIQUE = 141; + exports.HA_ERR_UNKNOWN_CHARSET = 142; + exports.HA_ERR_WRONG_MRG_TABLE_DEF = 143; + exports.HA_ERR_CRASHED_ON_REPAIR = 144; + exports.HA_ERR_CRASHED_ON_USAGE = 145; + exports.HA_ERR_LOCK_WAIT_TIMEOUT = 146; + exports.HA_ERR_LOCK_TABLE_FULL = 147; + exports.HA_ERR_READ_ONLY_TRANSACTION = 148; + exports.HA_ERR_LOCK_DEADLOCK = 149; + exports.HA_ERR_CANNOT_ADD_FOREIGN = 150; + exports.HA_ERR_NO_REFERENCED_ROW = 151; + exports.HA_ERR_ROW_IS_REFERENCED = 152; + exports.HA_ERR_NO_SAVEPOINT = 153; + exports.HA_ERR_NON_UNIQUE_BLOCK_SIZE = 154; + exports.HA_ERR_NO_SUCH_TABLE = 155; + exports.HA_ERR_TABLE_EXIST = 156; + exports.HA_ERR_NO_CONNECTION = 157; + exports.HA_ERR_NULL_IN_SPATIAL = 158; + exports.HA_ERR_TABLE_DEF_CHANGED = 159; + exports.HA_ERR_NO_PARTITION_FOUND = 160; + exports.HA_ERR_RBR_LOGGING_FAILED = 161; + exports.HA_ERR_DROP_INDEX_FK = 162; + exports.HA_ERR_FOREIGN_DUPLICATE_KEY = 163; + exports.HA_ERR_TABLE_NEEDS_UPGRADE = 164; + exports.HA_ERR_TABLE_READONLY = 165; + exports.HA_ERR_AUTOINC_READ_FAILED = 166; + exports.HA_ERR_AUTOINC_ERANGE = 167; + exports.HA_ERR_GENERIC = 168; + exports.HA_ERR_RECORD_IS_THE_SAME = 169; + exports.HA_ERR_LOGGING_IMPOSSIBLE = 170; + exports.HA_ERR_CORRUPT_EVENT = 171; + exports.HA_ERR_NEW_FILE = 172; + exports.HA_ERR_ROWS_EVENT_APPLY = 173; + exports.HA_ERR_INITIALIZATION = 174; + exports.HA_ERR_FILE_TOO_SHORT = 175; + exports.HA_ERR_WRONG_CRC = 176; + exports.HA_ERR_TOO_MANY_CONCURRENT_TRXS = 177; + exports.HA_ERR_NOT_IN_LOCK_PARTITIONS = 178; + exports.HA_ERR_INDEX_COL_TOO_LONG = 179; + exports.HA_ERR_INDEX_CORRUPT = 180; + exports.HA_ERR_UNDO_REC_TOO_BIG = 181; + exports.HA_FTS_INVALID_DOCID = 182; + exports.HA_ERR_TABLE_IN_FK_CHECK = 183; + exports.HA_ERR_TABLESPACE_EXISTS = 184; + exports.HA_ERR_TOO_MANY_FIELDS = 185; + exports.HA_ERR_ROW_IN_WRONG_PARTITION = 186; + exports.HA_ERR_INNODB_READ_ONLY = 187; + exports.HA_ERR_FTS_EXCEED_RESULT_CACHE_LIMIT = 188; + exports.HA_ERR_TEMP_FILE_WRITE_FAILURE = 189; + exports.HA_ERR_INNODB_FORCED_RECOVERY = 190; + exports.HA_ERR_FTS_TOO_MANY_WORDS_IN_PHRASE = 191; + exports.HA_ERR_FK_DEPTH_EXCEEDED = 192; + exports.HA_MISSING_CREATE_OPTION = 193; + exports.HA_ERR_SE_OUT_OF_MEMORY = 194; + exports.HA_ERR_TABLE_CORRUPT = 195; + exports.HA_ERR_QUERY_INTERRUPTED = 196; + exports.HA_ERR_TABLESPACE_MISSING = 197; + exports.HA_ERR_TABLESPACE_IS_NOT_EMPTY = 198; + exports.HA_ERR_WRONG_FILE_NAME = 199; + exports.HA_ERR_NOT_ALLOWED_COMMAND = 200; + exports.HA_ERR_COMPUTE_FAILED = 201; + exports.ER_HASHCHK = 1000; + exports.ER_NISAMCHK = 1001; + exports.ER_NO = 1002; + exports.ER_YES = 1003; + exports.ER_CANT_CREATE_FILE = 1004; + exports.ER_CANT_CREATE_TABLE = 1005; + exports.ER_CANT_CREATE_DB = 1006; + exports.ER_DB_CREATE_EXISTS = 1007; + exports.ER_DB_DROP_EXISTS = 1008; + exports.ER_DB_DROP_DELETE = 1009; + exports.ER_DB_DROP_RMDIR = 1010; + exports.ER_CANT_DELETE_FILE = 1011; + exports.ER_CANT_FIND_SYSTEM_REC = 1012; + exports.ER_CANT_GET_STAT = 1013; + exports.ER_CANT_GET_WD = 1014; + exports.ER_CANT_LOCK = 1015; + exports.ER_CANT_OPEN_FILE = 1016; + exports.ER_FILE_NOT_FOUND = 1017; + exports.ER_CANT_READ_DIR = 1018; + exports.ER_CANT_SET_WD = 1019; + exports.ER_CHECKREAD = 1020; + exports.ER_DISK_FULL = 1021; + exports.ER_DUP_KEY = 1022; + exports.ER_ERROR_ON_CLOSE = 1023; + exports.ER_ERROR_ON_READ = 1024; + exports.ER_ERROR_ON_RENAME = 1025; + exports.ER_ERROR_ON_WRITE = 1026; + exports.ER_FILE_USED = 1027; + exports.ER_FILSORT_ABORT = 1028; + exports.ER_FORM_NOT_FOUND = 1029; + exports.ER_GET_ERRNO = 1030; + exports.ER_ILLEGAL_HA = 1031; + exports.ER_KEY_NOT_FOUND = 1032; + exports.ER_NOT_FORM_FILE = 1033; + exports.ER_NOT_KEYFILE = 1034; + exports.ER_OLD_KEYFILE = 1035; + exports.ER_OPEN_AS_READONLY = 1036; + exports.ER_OUTOFMEMORY = 1037; + exports.ER_OUT_OF_SORTMEMORY = 1038; + exports.ER_UNEXPECTED_EOF = 1039; + exports.ER_CON_COUNT_ERROR = 1040; + exports.ER_OUT_OF_RESOURCES = 1041; + exports.ER_BAD_HOST_ERROR = 1042; + exports.ER_HANDSHAKE_ERROR = 1043; + exports.ER_DBACCESS_DENIED_ERROR = 1044; + exports.ER_ACCESS_DENIED_ERROR = 1045; + exports.ER_NO_DB_ERROR = 1046; + exports.ER_UNKNOWN_COM_ERROR = 1047; + exports.ER_BAD_NULL_ERROR = 1048; + exports.ER_BAD_DB_ERROR = 1049; + exports.ER_TABLE_EXISTS_ERROR = 1050; + exports.ER_BAD_TABLE_ERROR = 1051; + exports.ER_NON_UNIQ_ERROR = 1052; + exports.ER_SERVER_SHUTDOWN = 1053; + exports.ER_BAD_FIELD_ERROR = 1054; + exports.ER_WRONG_FIELD_WITH_GROUP = 1055; + exports.ER_WRONG_GROUP_FIELD = 1056; + exports.ER_WRONG_SUM_SELECT = 1057; + exports.ER_WRONG_VALUE_COUNT = 1058; + exports.ER_TOO_LONG_IDENT = 1059; + exports.ER_DUP_FIELDNAME = 1060; + exports.ER_DUP_KEYNAME = 1061; + exports.ER_DUP_ENTRY = 1062; + exports.ER_WRONG_FIELD_SPEC = 1063; + exports.ER_PARSE_ERROR = 1064; + exports.ER_EMPTY_QUERY = 1065; + exports.ER_NONUNIQ_TABLE = 1066; + exports.ER_INVALID_DEFAULT = 1067; + exports.ER_MULTIPLE_PRI_KEY = 1068; + exports.ER_TOO_MANY_KEYS = 1069; + exports.ER_TOO_MANY_KEY_PARTS = 1070; + exports.ER_TOO_LONG_KEY = 1071; + exports.ER_KEY_COLUMN_DOES_NOT_EXITS = 1072; + exports.ER_BLOB_USED_AS_KEY = 1073; + exports.ER_TOO_BIG_FIELDLENGTH = 1074; + exports.ER_WRONG_AUTO_KEY = 1075; + exports.ER_READY = 1076; + exports.ER_NORMAL_SHUTDOWN = 1077; + exports.ER_GOT_SIGNAL = 1078; + exports.ER_SHUTDOWN_COMPLETE = 1079; + exports.ER_FORCING_CLOSE = 1080; + exports.ER_IPSOCK_ERROR = 1081; + exports.ER_NO_SUCH_INDEX = 1082; + exports.ER_WRONG_FIELD_TERMINATORS = 1083; + exports.ER_BLOBS_AND_NO_TERMINATED = 1084; + exports.ER_TEXTFILE_NOT_READABLE = 1085; + exports.ER_FILE_EXISTS_ERROR = 1086; + exports.ER_LOAD_INFO = 1087; + exports.ER_ALTER_INFO = 1088; + exports.ER_WRONG_SUB_KEY = 1089; + exports.ER_CANT_REMOVE_ALL_FIELDS = 1090; + exports.ER_CANT_DROP_FIELD_OR_KEY = 1091; + exports.ER_INSERT_INFO = 1092; + exports.ER_UPDATE_TABLE_USED = 1093; + exports.ER_NO_SUCH_THREAD = 1094; + exports.ER_KILL_DENIED_ERROR = 1095; + exports.ER_NO_TABLES_USED = 1096; + exports.ER_TOO_BIG_SET = 1097; + exports.ER_NO_UNIQUE_LOGFILE = 1098; + exports.ER_TABLE_NOT_LOCKED_FOR_WRITE = 1099; + exports.ER_TABLE_NOT_LOCKED = 1100; + exports.ER_BLOB_CANT_HAVE_DEFAULT = 1101; + exports.ER_WRONG_DB_NAME = 1102; + exports.ER_WRONG_TABLE_NAME = 1103; + exports.ER_TOO_BIG_SELECT = 1104; + exports.ER_UNKNOWN_ERROR = 1105; + exports.ER_UNKNOWN_PROCEDURE = 1106; + exports.ER_WRONG_PARAMCOUNT_TO_PROCEDURE = 1107; + exports.ER_WRONG_PARAMETERS_TO_PROCEDURE = 1108; + exports.ER_UNKNOWN_TABLE = 1109; + exports.ER_FIELD_SPECIFIED_TWICE = 1110; + exports.ER_INVALID_GROUP_FUNC_USE = 1111; + exports.ER_UNSUPPORTED_EXTENSION = 1112; + exports.ER_TABLE_MUST_HAVE_COLUMNS = 1113; + exports.ER_RECORD_FILE_FULL = 1114; + exports.ER_UNKNOWN_CHARACTER_SET = 1115; + exports.ER_TOO_MANY_TABLES = 1116; + exports.ER_TOO_MANY_FIELDS = 1117; + exports.ER_TOO_BIG_ROWSIZE = 1118; + exports.ER_STACK_OVERRUN = 1119; + exports.ER_WRONG_OUTER_JOIN = 1120; + exports.ER_NULL_COLUMN_IN_INDEX = 1121; + exports.ER_CANT_FIND_UDF = 1122; + exports.ER_CANT_INITIALIZE_UDF = 1123; + exports.ER_UDF_NO_PATHS = 1124; + exports.ER_UDF_EXISTS = 1125; + exports.ER_CANT_OPEN_LIBRARY = 1126; + exports.ER_CANT_FIND_DL_ENTRY = 1127; + exports.ER_FUNCTION_NOT_DEFINED = 1128; + exports.ER_HOST_IS_BLOCKED = 1129; + exports.ER_HOST_NOT_PRIVILEGED = 1130; + exports.ER_PASSWORD_ANONYMOUS_USER = 1131; + exports.ER_PASSWORD_NOT_ALLOWED = 1132; + exports.ER_PASSWORD_NO_MATCH = 1133; + exports.ER_UPDATE_INFO = 1134; + exports.ER_CANT_CREATE_THREAD = 1135; + exports.ER_WRONG_VALUE_COUNT_ON_ROW = 1136; + exports.ER_CANT_REOPEN_TABLE = 1137; + exports.ER_INVALID_USE_OF_NULL = 1138; + exports.ER_REGEXP_ERROR = 1139; + exports.ER_MIX_OF_GROUP_FUNC_AND_FIELDS = 1140; + exports.ER_NONEXISTING_GRANT = 1141; + exports.ER_TABLEACCESS_DENIED_ERROR = 1142; + exports.ER_COLUMNACCESS_DENIED_ERROR = 1143; + exports.ER_ILLEGAL_GRANT_FOR_TABLE = 1144; + exports.ER_GRANT_WRONG_HOST_OR_USER = 1145; + exports.ER_NO_SUCH_TABLE = 1146; + exports.ER_NONEXISTING_TABLE_GRANT = 1147; + exports.ER_NOT_ALLOWED_COMMAND = 1148; + exports.ER_SYNTAX_ERROR = 1149; + exports.ER_DELAYED_CANT_CHANGE_LOCK = 1150; + exports.ER_TOO_MANY_DELAYED_THREADS = 1151; + exports.ER_ABORTING_CONNECTION = 1152; + exports.ER_NET_PACKET_TOO_LARGE = 1153; + exports.ER_NET_READ_ERROR_FROM_PIPE = 1154; + exports.ER_NET_FCNTL_ERROR = 1155; + exports.ER_NET_PACKETS_OUT_OF_ORDER = 1156; + exports.ER_NET_UNCOMPRESS_ERROR = 1157; + exports.ER_NET_READ_ERROR = 1158; + exports.ER_NET_READ_INTERRUPTED = 1159; + exports.ER_NET_ERROR_ON_WRITE = 1160; + exports.ER_NET_WRITE_INTERRUPTED = 1161; + exports.ER_TOO_LONG_STRING = 1162; + exports.ER_TABLE_CANT_HANDLE_BLOB = 1163; + exports.ER_TABLE_CANT_HANDLE_AUTO_INCREMENT = 1164; + exports.ER_DELAYED_INSERT_TABLE_LOCKED = 1165; + exports.ER_WRONG_COLUMN_NAME = 1166; + exports.ER_WRONG_KEY_COLUMN = 1167; + exports.ER_WRONG_MRG_TABLE = 1168; + exports.ER_DUP_UNIQUE = 1169; + exports.ER_BLOB_KEY_WITHOUT_LENGTH = 1170; + exports.ER_PRIMARY_CANT_HAVE_NULL = 1171; + exports.ER_TOO_MANY_ROWS = 1172; + exports.ER_REQUIRES_PRIMARY_KEY = 1173; + exports.ER_NO_RAID_COMPILED = 1174; + exports.ER_UPDATE_WITHOUT_KEY_IN_SAFE_MODE = 1175; + exports.ER_KEY_DOES_NOT_EXITS = 1176; + exports.ER_CHECK_NO_SUCH_TABLE = 1177; + exports.ER_CHECK_NOT_IMPLEMENTED = 1178; + exports.ER_CANT_DO_THIS_DURING_AN_TRANSACTION = 1179; + exports.ER_ERROR_DURING_COMMIT = 1180; + exports.ER_ERROR_DURING_ROLLBACK = 1181; + exports.ER_ERROR_DURING_FLUSH_LOGS = 1182; + exports.ER_ERROR_DURING_CHECKPOINT = 1183; + exports.ER_NEW_ABORTING_CONNECTION = 1184; + exports.ER_DUMP_NOT_IMPLEMENTED = 1185; + exports.ER_FLUSH_MASTER_BINLOG_CLOSED = 1186; + exports.ER_INDEX_REBUILD = 1187; + exports.ER_MASTER = 1188; + exports.ER_MASTER_NET_READ = 1189; + exports.ER_MASTER_NET_WRITE = 1190; + exports.ER_FT_MATCHING_KEY_NOT_FOUND = 1191; + exports.ER_LOCK_OR_ACTIVE_TRANSACTION = 1192; + exports.ER_UNKNOWN_SYSTEM_VARIABLE = 1193; + exports.ER_CRASHED_ON_USAGE = 1194; + exports.ER_CRASHED_ON_REPAIR = 1195; + exports.ER_WARNING_NOT_COMPLETE_ROLLBACK = 1196; + exports.ER_TRANS_CACHE_FULL = 1197; + exports.ER_SLAVE_MUST_STOP = 1198; + exports.ER_SLAVE_NOT_RUNNING = 1199; + exports.ER_BAD_SLAVE = 1200; + exports.ER_MASTER_INFO = 1201; + exports.ER_SLAVE_THREAD = 1202; + exports.ER_TOO_MANY_USER_CONNECTIONS = 1203; + exports.ER_SET_CONSTANTS_ONLY = 1204; + exports.ER_LOCK_WAIT_TIMEOUT = 1205; + exports.ER_LOCK_TABLE_FULL = 1206; + exports.ER_READ_ONLY_TRANSACTION = 1207; + exports.ER_DROP_DB_WITH_READ_LOCK = 1208; + exports.ER_CREATE_DB_WITH_READ_LOCK = 1209; + exports.ER_WRONG_ARGUMENTS = 1210; + exports.ER_NO_PERMISSION_TO_CREATE_USER = 1211; + exports.ER_UNION_TABLES_IN_DIFFERENT_DIR = 1212; + exports.ER_LOCK_DEADLOCK = 1213; + exports.ER_TABLE_CANT_HANDLE_FT = 1214; + exports.ER_CANNOT_ADD_FOREIGN = 1215; + exports.ER_NO_REFERENCED_ROW = 1216; + exports.ER_ROW_IS_REFERENCED = 1217; + exports.ER_CONNECT_TO_MASTER = 1218; + exports.ER_QUERY_ON_MASTER = 1219; + exports.ER_ERROR_WHEN_EXECUTING_COMMAND = 1220; + exports.ER_WRONG_USAGE = 1221; + exports.ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT = 1222; + exports.ER_CANT_UPDATE_WITH_READLOCK = 1223; + exports.ER_MIXING_NOT_ALLOWED = 1224; + exports.ER_DUP_ARGUMENT = 1225; + exports.ER_USER_LIMIT_REACHED = 1226; + exports.ER_SPECIFIC_ACCESS_DENIED_ERROR = 1227; + exports.ER_LOCAL_VARIABLE = 1228; + exports.ER_GLOBAL_VARIABLE = 1229; + exports.ER_NO_DEFAULT = 1230; + exports.ER_WRONG_VALUE_FOR_VAR = 1231; + exports.ER_WRONG_TYPE_FOR_VAR = 1232; + exports.ER_VAR_CANT_BE_READ = 1233; + exports.ER_CANT_USE_OPTION_HERE = 1234; + exports.ER_NOT_SUPPORTED_YET = 1235; + exports.ER_MASTER_FATAL_ERROR_READING_BINLOG = 1236; + exports.ER_SLAVE_IGNORED_TABLE = 1237; + exports.ER_INCORRECT_GLOBAL_LOCAL_VAR = 1238; + exports.ER_WRONG_FK_DEF = 1239; + exports.ER_KEY_REF_DO_NOT_MATCH_TABLE_REF = 1240; + exports.ER_OPERAND_COLUMNS = 1241; + exports.ER_SUBQUERY_NO_1_ROW = 1242; + exports.ER_UNKNOWN_STMT_HANDLER = 1243; + exports.ER_CORRUPT_HELP_DB = 1244; + exports.ER_CYCLIC_REFERENCE = 1245; + exports.ER_AUTO_CONVERT = 1246; + exports.ER_ILLEGAL_REFERENCE = 1247; + exports.ER_DERIVED_MUST_HAVE_ALIAS = 1248; + exports.ER_SELECT_REDUCED = 1249; + exports.ER_TABLENAME_NOT_ALLOWED_HERE = 1250; + exports.ER_NOT_SUPPORTED_AUTH_MODE = 1251; + exports.ER_SPATIAL_CANT_HAVE_NULL = 1252; + exports.ER_COLLATION_CHARSET_MISMATCH = 1253; + exports.ER_SLAVE_WAS_RUNNING = 1254; + exports.ER_SLAVE_WAS_NOT_RUNNING = 1255; + exports.ER_TOO_BIG_FOR_UNCOMPRESS = 1256; + exports.ER_ZLIB_Z_MEM_ERROR = 1257; + exports.ER_ZLIB_Z_BUF_ERROR = 1258; + exports.ER_ZLIB_Z_DATA_ERROR = 1259; + exports.ER_CUT_VALUE_GROUP_CONCAT = 1260; + exports.ER_WARN_TOO_FEW_RECORDS = 1261; + exports.ER_WARN_TOO_MANY_RECORDS = 1262; + exports.ER_WARN_NULL_TO_NOTNULL = 1263; + exports.ER_WARN_DATA_OUT_OF_RANGE = 1264; + exports.WARN_DATA_TRUNCATED = 1265; + exports.ER_WARN_USING_OTHER_HANDLER = 1266; + exports.ER_CANT_AGGREGATE_2COLLATIONS = 1267; + exports.ER_DROP_USER = 1268; + exports.ER_REVOKE_GRANTS = 1269; + exports.ER_CANT_AGGREGATE_3COLLATIONS = 1270; + exports.ER_CANT_AGGREGATE_NCOLLATIONS = 1271; + exports.ER_VARIABLE_IS_NOT_STRUCT = 1272; + exports.ER_UNKNOWN_COLLATION = 1273; + exports.ER_SLAVE_IGNORED_SSL_PARAMS = 1274; + exports.ER_SERVER_IS_IN_SECURE_AUTH_MODE = 1275; + exports.ER_WARN_FIELD_RESOLVED = 1276; + exports.ER_BAD_SLAVE_UNTIL_COND = 1277; + exports.ER_MISSING_SKIP_SLAVE = 1278; + exports.ER_UNTIL_COND_IGNORED = 1279; + exports.ER_WRONG_NAME_FOR_INDEX = 1280; + exports.ER_WRONG_NAME_FOR_CATALOG = 1281; + exports.ER_WARN_QC_RESIZE = 1282; + exports.ER_BAD_FT_COLUMN = 1283; + exports.ER_UNKNOWN_KEY_CACHE = 1284; + exports.ER_WARN_HOSTNAME_WONT_WORK = 1285; + exports.ER_UNKNOWN_STORAGE_ENGINE = 1286; + exports.ER_WARN_DEPRECATED_SYNTAX = 1287; + exports.ER_NON_UPDATABLE_TABLE = 1288; + exports.ER_FEATURE_DISABLED = 1289; + exports.ER_OPTION_PREVENTS_STATEMENT = 1290; + exports.ER_DUPLICATED_VALUE_IN_TYPE = 1291; + exports.ER_TRUNCATED_WRONG_VALUE = 1292; + exports.ER_TOO_MUCH_AUTO_TIMESTAMP_COLS = 1293; + exports.ER_INVALID_ON_UPDATE = 1294; + exports.ER_UNSUPPORTED_PS = 1295; + exports.ER_GET_ERRMSG = 1296; + exports.ER_GET_TEMPORARY_ERRMSG = 1297; + exports.ER_UNKNOWN_TIME_ZONE = 1298; + exports.ER_WARN_INVALID_TIMESTAMP = 1299; + exports.ER_INVALID_CHARACTER_STRING = 1300; + exports.ER_WARN_ALLOWED_PACKET_OVERFLOWED = 1301; + exports.ER_CONFLICTING_DECLARATIONS = 1302; + exports.ER_SP_NO_RECURSIVE_CREATE = 1303; + exports.ER_SP_ALREADY_EXISTS = 1304; + exports.ER_SP_DOES_NOT_EXIST = 1305; + exports.ER_SP_DROP_FAILED = 1306; + exports.ER_SP_STORE_FAILED = 1307; + exports.ER_SP_LILABEL_MISMATCH = 1308; + exports.ER_SP_LABEL_REDEFINE = 1309; + exports.ER_SP_LABEL_MISMATCH = 1310; + exports.ER_SP_UNINIT_VAR = 1311; + exports.ER_SP_BADSELECT = 1312; + exports.ER_SP_BADRETURN = 1313; + exports.ER_SP_BADSTATEMENT = 1314; + exports.ER_UPDATE_LOG_DEPRECATED_IGNORED = 1315; + exports.ER_UPDATE_LOG_DEPRECATED_TRANSLATED = 1316; + exports.ER_QUERY_INTERRUPTED = 1317; + exports.ER_SP_WRONG_NO_OF_ARGS = 1318; + exports.ER_SP_COND_MISMATCH = 1319; + exports.ER_SP_NORETURN = 1320; + exports.ER_SP_NORETURNEND = 1321; + exports.ER_SP_BAD_CURSOR_QUERY = 1322; + exports.ER_SP_BAD_CURSOR_SELECT = 1323; + exports.ER_SP_CURSOR_MISMATCH = 1324; + exports.ER_SP_CURSOR_ALREADY_OPEN = 1325; + exports.ER_SP_CURSOR_NOT_OPEN = 1326; + exports.ER_SP_UNDECLARED_VAR = 1327; + exports.ER_SP_WRONG_NO_OF_FETCH_ARGS = 1328; + exports.ER_SP_FETCH_NO_DATA = 1329; + exports.ER_SP_DUP_PARAM = 1330; + exports.ER_SP_DUP_VAR = 1331; + exports.ER_SP_DUP_COND = 1332; + exports.ER_SP_DUP_CURS = 1333; + exports.ER_SP_CANT_ALTER = 1334; + exports.ER_SP_SUBSELECT_NYI = 1335; + exports.ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG = 1336; + exports.ER_SP_VARCOND_AFTER_CURSHNDLR = 1337; + exports.ER_SP_CURSOR_AFTER_HANDLER = 1338; + exports.ER_SP_CASE_NOT_FOUND = 1339; + exports.ER_FPARSER_TOO_BIG_FILE = 1340; + exports.ER_FPARSER_BAD_HEADER = 1341; + exports.ER_FPARSER_EOF_IN_COMMENT = 1342; + exports.ER_FPARSER_ERROR_IN_PARAMETER = 1343; + exports.ER_FPARSER_EOF_IN_UNKNOWN_PARAMETER = 1344; + exports.ER_VIEW_NO_EXPLAIN = 1345; + exports.ER_FRM_UNKNOWN_TYPE = 1346; + exports.ER_WRONG_OBJECT = 1347; + exports.ER_NONUPDATEABLE_COLUMN = 1348; + exports.ER_VIEW_SELECT_DERIVED = 1349; + exports.ER_VIEW_SELECT_CLAUSE = 1350; + exports.ER_VIEW_SELECT_VARIABLE = 1351; + exports.ER_VIEW_SELECT_TMPTABLE = 1352; + exports.ER_VIEW_WRONG_LIST = 1353; + exports.ER_WARN_VIEW_MERGE = 1354; + exports.ER_WARN_VIEW_WITHOUT_KEY = 1355; + exports.ER_VIEW_INVALID = 1356; + exports.ER_SP_NO_DROP_SP = 1357; + exports.ER_SP_GOTO_IN_HNDLR = 1358; + exports.ER_TRG_ALREADY_EXISTS = 1359; + exports.ER_TRG_DOES_NOT_EXIST = 1360; + exports.ER_TRG_ON_VIEW_OR_TEMP_TABLE = 1361; + exports.ER_TRG_CANT_CHANGE_ROW = 1362; + exports.ER_TRG_NO_SUCH_ROW_IN_TRG = 1363; + exports.ER_NO_DEFAULT_FOR_FIELD = 1364; + exports.ER_DIVISION_BY_ZERO = 1365; + exports.ER_TRUNCATED_WRONG_VALUE_FOR_FIELD = 1366; + exports.ER_ILLEGAL_VALUE_FOR_TYPE = 1367; + exports.ER_VIEW_NONUPD_CHECK = 1368; + exports.ER_VIEW_CHECK_FAILED = 1369; + exports.ER_PROCACCESS_DENIED_ERROR = 1370; + exports.ER_RELAY_LOG_FAIL = 1371; + exports.ER_PASSWD_LENGTH = 1372; + exports.ER_UNKNOWN_TARGET_BINLOG = 1373; + exports.ER_IO_ERR_LOG_INDEX_READ = 1374; + exports.ER_BINLOG_PURGE_PROHIBITED = 1375; + exports.ER_FSEEK_FAIL = 1376; + exports.ER_BINLOG_PURGE_FATAL_ERR = 1377; + exports.ER_LOG_IN_USE = 1378; + exports.ER_LOG_PURGE_UNKNOWN_ERR = 1379; + exports.ER_RELAY_LOG_INIT = 1380; + exports.ER_NO_BINARY_LOGGING = 1381; + exports.ER_RESERVED_SYNTAX = 1382; + exports.ER_WSAS_FAILED = 1383; + exports.ER_DIFF_GROUPS_PROC = 1384; + exports.ER_NO_GROUP_FOR_PROC = 1385; + exports.ER_ORDER_WITH_PROC = 1386; + exports.ER_LOGGING_PROHIBIT_CHANGING_OF = 1387; + exports.ER_NO_FILE_MAPPING = 1388; + exports.ER_WRONG_MAGIC = 1389; + exports.ER_PS_MANY_PARAM = 1390; + exports.ER_KEY_PART_0 = 1391; + exports.ER_VIEW_CHECKSUM = 1392; + exports.ER_VIEW_MULTIUPDATE = 1393; + exports.ER_VIEW_NO_INSERT_FIELD_LIST = 1394; + exports.ER_VIEW_DELETE_MERGE_VIEW = 1395; + exports.ER_CANNOT_USER = 1396; + exports.ER_XAER_NOTA = 1397; + exports.ER_XAER_INVAL = 1398; + exports.ER_XAER_RMFAIL = 1399; + exports.ER_XAER_OUTSIDE = 1400; + exports.ER_XAER_RMERR = 1401; + exports.ER_XA_RBROLLBACK = 1402; + exports.ER_NONEXISTING_PROC_GRANT = 1403; + exports.ER_PROC_AUTO_GRANT_FAIL = 1404; + exports.ER_PROC_AUTO_REVOKE_FAIL = 1405; + exports.ER_DATA_TOO_LONG = 1406; + exports.ER_SP_BAD_SQLSTATE = 1407; + exports.ER_STARTUP = 1408; + exports.ER_LOAD_FROM_FIXED_SIZE_ROWS_TO_VAR = 1409; + exports.ER_CANT_CREATE_USER_WITH_GRANT = 1410; + exports.ER_WRONG_VALUE_FOR_TYPE = 1411; + exports.ER_TABLE_DEF_CHANGED = 1412; + exports.ER_SP_DUP_HANDLER = 1413; + exports.ER_SP_NOT_VAR_ARG = 1414; + exports.ER_SP_NO_RETSET = 1415; + exports.ER_CANT_CREATE_GEOMETRY_OBJECT = 1416; + exports.ER_FAILED_ROUTINE_BREAK_BINLOG = 1417; + exports.ER_BINLOG_UNSAFE_ROUTINE = 1418; + exports.ER_BINLOG_CREATE_ROUTINE_NEED_SUPER = 1419; + exports.ER_EXEC_STMT_WITH_OPEN_CURSOR = 1420; + exports.ER_STMT_HAS_NO_OPEN_CURSOR = 1421; + exports.ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG = 1422; + exports.ER_NO_DEFAULT_FOR_VIEW_FIELD = 1423; + exports.ER_SP_NO_RECURSION = 1424; + exports.ER_TOO_BIG_SCALE = 1425; + exports.ER_TOO_BIG_PRECISION = 1426; + exports.ER_M_BIGGER_THAN_D = 1427; + exports.ER_WRONG_LOCK_OF_SYSTEM_TABLE = 1428; + exports.ER_CONNECT_TO_FOREIGN_DATA_SOURCE = 1429; + exports.ER_QUERY_ON_FOREIGN_DATA_SOURCE = 1430; + exports.ER_FOREIGN_DATA_SOURCE_DOESNT_EXIST = 1431; + exports.ER_FOREIGN_DATA_STRING_INVALID_CANT_CREATE = 1432; + exports.ER_FOREIGN_DATA_STRING_INVALID = 1433; + exports.ER_CANT_CREATE_FEDERATED_TABLE = 1434; + exports.ER_TRG_IN_WRONG_SCHEMA = 1435; + exports.ER_STACK_OVERRUN_NEED_MORE = 1436; + exports.ER_TOO_LONG_BODY = 1437; + exports.ER_WARN_CANT_DROP_DEFAULT_KEYCACHE = 1438; + exports.ER_TOO_BIG_DISPLAYWIDTH = 1439; + exports.ER_XAER_DUPID = 1440; + exports.ER_DATETIME_FUNCTION_OVERFLOW = 1441; + exports.ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG = 1442; + exports.ER_VIEW_PREVENT_UPDATE = 1443; + exports.ER_PS_NO_RECURSION = 1444; + exports.ER_SP_CANT_SET_AUTOCOMMIT = 1445; + exports.ER_MALFORMED_DEFINER = 1446; + exports.ER_VIEW_FRM_NO_USER = 1447; + exports.ER_VIEW_OTHER_USER = 1448; + exports.ER_NO_SUCH_USER = 1449; + exports.ER_FORBID_SCHEMA_CHANGE = 1450; + exports.ER_ROW_IS_REFERENCED_2 = 1451; + exports.ER_NO_REFERENCED_ROW_2 = 1452; + exports.ER_SP_BAD_VAR_SHADOW = 1453; + exports.ER_TRG_NO_DEFINER = 1454; + exports.ER_OLD_FILE_FORMAT = 1455; + exports.ER_SP_RECURSION_LIMIT = 1456; + exports.ER_SP_PROC_TABLE_CORRUPT = 1457; + exports.ER_SP_WRONG_NAME = 1458; + exports.ER_TABLE_NEEDS_UPGRADE = 1459; + exports.ER_SP_NO_AGGREGATE = 1460; + exports.ER_MAX_PREPARED_STMT_COUNT_REACHED = 1461; + exports.ER_VIEW_RECURSIVE = 1462; + exports.ER_NON_GROUPING_FIELD_USED = 1463; + exports.ER_TABLE_CANT_HANDLE_SPKEYS = 1464; + exports.ER_NO_TRIGGERS_ON_SYSTEM_SCHEMA = 1465; + exports.ER_REMOVED_SPACES = 1466; + exports.ER_AUTOINC_READ_FAILED = 1467; + exports.ER_USERNAME = 1468; + exports.ER_HOSTNAME = 1469; + exports.ER_WRONG_STRING_LENGTH = 1470; + exports.ER_NON_INSERTABLE_TABLE = 1471; + exports.ER_ADMIN_WRONG_MRG_TABLE = 1472; + exports.ER_TOO_HIGH_LEVEL_OF_NESTING_FOR_SELECT = 1473; + exports.ER_NAME_BECOMES_EMPTY = 1474; + exports.ER_AMBIGUOUS_FIELD_TERM = 1475; + exports.ER_FOREIGN_SERVER_EXISTS = 1476; + exports.ER_FOREIGN_SERVER_DOESNT_EXIST = 1477; + exports.ER_ILLEGAL_HA_CREATE_OPTION = 1478; + exports.ER_PARTITION_REQUIRES_VALUES_ERROR = 1479; + exports.ER_PARTITION_WRONG_VALUES_ERROR = 1480; + exports.ER_PARTITION_MAXVALUE_ERROR = 1481; + exports.ER_PARTITION_SUBPARTITION_ERROR = 1482; + exports.ER_PARTITION_SUBPART_MIX_ERROR = 1483; + exports.ER_PARTITION_WRONG_NO_PART_ERROR = 1484; + exports.ER_PARTITION_WRONG_NO_SUBPART_ERROR = 1485; + exports.ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR = 1486; + exports.ER_NO_CONST_EXPR_IN_RANGE_OR_LIST_ERROR = 1487; + exports.ER_FIELD_NOT_FOUND_PART_ERROR = 1488; + exports.ER_LIST_OF_FIELDS_ONLY_IN_HASH_ERROR = 1489; + exports.ER_INCONSISTENT_PARTITION_INFO_ERROR = 1490; + exports.ER_PARTITION_FUNC_NOT_ALLOWED_ERROR = 1491; + exports.ER_PARTITIONS_MUST_BE_DEFINED_ERROR = 1492; + exports.ER_RANGE_NOT_INCREASING_ERROR = 1493; + exports.ER_INCONSISTENT_TYPE_OF_FUNCTIONS_ERROR = 1494; + exports.ER_MULTIPLE_DEF_CONST_IN_LIST_PART_ERROR = 1495; + exports.ER_PARTITION_ENTRY_ERROR = 1496; + exports.ER_MIX_HANDLER_ERROR = 1497; + exports.ER_PARTITION_NOT_DEFINED_ERROR = 1498; + exports.ER_TOO_MANY_PARTITIONS_ERROR = 1499; + exports.ER_SUBPARTITION_ERROR = 1500; + exports.ER_CANT_CREATE_HANDLER_FILE = 1501; + exports.ER_BLOB_FIELD_IN_PART_FUNC_ERROR = 1502; + exports.ER_UNIQUE_KEY_NEED_ALL_FIELDS_IN_PF = 1503; + exports.ER_NO_PARTS_ERROR = 1504; + exports.ER_PARTITION_MGMT_ON_NONPARTITIONED = 1505; + exports.ER_FOREIGN_KEY_ON_PARTITIONED = 1506; + exports.ER_DROP_PARTITION_NON_EXISTENT = 1507; + exports.ER_DROP_LAST_PARTITION = 1508; + exports.ER_COALESCE_ONLY_ON_HASH_PARTITION = 1509; + exports.ER_REORG_HASH_ONLY_ON_SAME_NO = 1510; + exports.ER_REORG_NO_PARAM_ERROR = 1511; + exports.ER_ONLY_ON_RANGE_LIST_PARTITION = 1512; + exports.ER_ADD_PARTITION_SUBPART_ERROR = 1513; + exports.ER_ADD_PARTITION_NO_NEW_PARTITION = 1514; + exports.ER_COALESCE_PARTITION_NO_PARTITION = 1515; + exports.ER_REORG_PARTITION_NOT_EXIST = 1516; + exports.ER_SAME_NAME_PARTITION = 1517; + exports.ER_NO_BINLOG_ERROR = 1518; + exports.ER_CONSECUTIVE_REORG_PARTITIONS = 1519; + exports.ER_REORG_OUTSIDE_RANGE = 1520; + exports.ER_PARTITION_FUNCTION_FAILURE = 1521; + exports.ER_PART_STATE_ERROR = 1522; + exports.ER_LIMITED_PART_RANGE = 1523; + exports.ER_PLUGIN_IS_NOT_LOADED = 1524; + exports.ER_WRONG_VALUE = 1525; + exports.ER_NO_PARTITION_FOR_GIVEN_VALUE = 1526; + exports.ER_FILEGROUP_OPTION_ONLY_ONCE = 1527; + exports.ER_CREATE_FILEGROUP_FAILED = 1528; + exports.ER_DROP_FILEGROUP_FAILED = 1529; + exports.ER_TABLESPACE_AUTO_EXTEND_ERROR = 1530; + exports.ER_WRONG_SIZE_NUMBER = 1531; + exports.ER_SIZE_OVERFLOW_ERROR = 1532; + exports.ER_ALTER_FILEGROUP_FAILED = 1533; + exports.ER_BINLOG_ROW_LOGGING_FAILED = 1534; + exports.ER_BINLOG_ROW_WRONG_TABLE_DEF = 1535; + exports.ER_BINLOG_ROW_RBR_TO_SBR = 1536; + exports.ER_EVENT_ALREADY_EXISTS = 1537; + exports.ER_EVENT_STORE_FAILED = 1538; + exports.ER_EVENT_DOES_NOT_EXIST = 1539; + exports.ER_EVENT_CANT_ALTER = 1540; + exports.ER_EVENT_DROP_FAILED = 1541; + exports.ER_EVENT_INTERVAL_NOT_POSITIVE_OR_TOO_BIG = 1542; + exports.ER_EVENT_ENDS_BEFORE_STARTS = 1543; + exports.ER_EVENT_EXEC_TIME_IN_THE_PAST = 1544; + exports.ER_EVENT_OPEN_TABLE_FAILED = 1545; + exports.ER_EVENT_NEITHER_M_EXPR_NOR_M_AT = 1546; + exports.ER_COL_COUNT_DOESNT_MATCH_CORRUPTED = 1547; + exports.ER_CANNOT_LOAD_FROM_TABLE = 1548; + exports.ER_EVENT_CANNOT_DELETE = 1549; + exports.ER_EVENT_COMPILE_ERROR = 1550; + exports.ER_EVENT_SAME_NAME = 1551; + exports.ER_EVENT_DATA_TOO_LONG = 1552; + exports.ER_DROP_INDEX_FK = 1553; + exports.ER_WARN_DEPRECATED_SYNTAX_WITH_VER = 1554; + exports.ER_CANT_WRITE_LOCK_LOG_TABLE = 1555; + exports.ER_CANT_LOCK_LOG_TABLE = 1556; + exports.ER_FOREIGN_DUPLICATE_KEY = 1557; + exports.ER_COL_COUNT_DOESNT_MATCH_PLEASE_UPDATE = 1558; + exports.ER_TEMP_TABLE_PREVENTS_SWITCH_OUT_OF_RBR = 1559; + exports.ER_STORED_FUNCTION_PREVENTS_SWITCH_BINLOG_FORMAT = 1560; + exports.ER_NDB_CANT_SWITCH_BINLOG_FORMAT = 1561; + exports.ER_PARTITION_NO_TEMPORARY = 1562; + exports.ER_PARTITION_CONST_DOMAIN_ERROR = 1563; + exports.ER_PARTITION_FUNCTION_IS_NOT_ALLOWED = 1564; + exports.ER_DDL_LOG_ERROR = 1565; + exports.ER_NULL_IN_VALUES_LESS_THAN = 1566; + exports.ER_WRONG_PARTITION_NAME = 1567; + exports.ER_CANT_CHANGE_TX_CHARACTERISTICS = 1568; + exports.ER_DUP_ENTRY_AUTOINCREMENT_CASE = 1569; + exports.ER_EVENT_MODIFY_QUEUE_ERROR = 1570; + exports.ER_EVENT_SET_VAR_ERROR = 1571; + exports.ER_PARTITION_MERGE_ERROR = 1572; + exports.ER_CANT_ACTIVATE_LOG = 1573; + exports.ER_RBR_NOT_AVAILABLE = 1574; + exports.ER_BASE64_DECODE_ERROR = 1575; + exports.ER_EVENT_RECURSION_FORBIDDEN = 1576; + exports.ER_EVENTS_DB_ERROR = 1577; + exports.ER_ONLY_INTEGERS_ALLOWED = 1578; + exports.ER_UNSUPORTED_LOG_ENGINE = 1579; + exports.ER_BAD_LOG_STATEMENT = 1580; + exports.ER_CANT_RENAME_LOG_TABLE = 1581; + exports.ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT = 1582; + exports.ER_WRONG_PARAMETERS_TO_NATIVE_FCT = 1583; + exports.ER_WRONG_PARAMETERS_TO_STORED_FCT = 1584; + exports.ER_NATIVE_FCT_NAME_COLLISION = 1585; + exports.ER_DUP_ENTRY_WITH_KEY_NAME = 1586; + exports.ER_BINLOG_PURGE_EMFILE = 1587; + exports.ER_EVENT_CANNOT_CREATE_IN_THE_PAST = 1588; + exports.ER_EVENT_CANNOT_ALTER_IN_THE_PAST = 1589; + exports.ER_SLAVE_INCIDENT = 1590; + exports.ER_NO_PARTITION_FOR_GIVEN_VALUE_SILENT = 1591; + exports.ER_BINLOG_UNSAFE_STATEMENT = 1592; + exports.ER_SLAVE_FATAL_ERROR = 1593; + exports.ER_SLAVE_RELAY_LOG_READ_FAILURE = 1594; + exports.ER_SLAVE_RELAY_LOG_WRITE_FAILURE = 1595; + exports.ER_SLAVE_CREATE_EVENT_FAILURE = 1596; + exports.ER_SLAVE_MASTER_COM_FAILURE = 1597; + exports.ER_BINLOG_LOGGING_IMPOSSIBLE = 1598; + exports.ER_VIEW_NO_CREATION_CTX = 1599; + exports.ER_VIEW_INVALID_CREATION_CTX = 1600; + exports.ER_SR_INVALID_CREATION_CTX = 1601; + exports.ER_TRG_CORRUPTED_FILE = 1602; + exports.ER_TRG_NO_CREATION_CTX = 1603; + exports.ER_TRG_INVALID_CREATION_CTX = 1604; + exports.ER_EVENT_INVALID_CREATION_CTX = 1605; + exports.ER_TRG_CANT_OPEN_TABLE = 1606; + exports.ER_CANT_CREATE_SROUTINE = 1607; + exports.ER_NEVER_USED = 1608; + exports.ER_NO_FORMAT_DESCRIPTION_EVENT_BEFORE_BINLOG_STATEMENT = 1609; + exports.ER_SLAVE_CORRUPT_EVENT = 1610; + exports.ER_LOAD_DATA_INVALID_COLUMN = 1611; + exports.ER_LOG_PURGE_NO_FILE = 1612; + exports.ER_XA_RBTIMEOUT = 1613; + exports.ER_XA_RBDEADLOCK = 1614; + exports.ER_NEED_REPREPARE = 1615; + exports.ER_DELAYED_NOT_SUPPORTED = 1616; + exports.WARN_NO_MASTER_INFO = 1617; + exports.WARN_OPTION_IGNORED = 1618; + exports.ER_PLUGIN_DELETE_BUILTIN = 1619; + exports.WARN_PLUGIN_BUSY = 1620; + exports.ER_VARIABLE_IS_READONLY = 1621; + exports.ER_WARN_ENGINE_TRANSACTION_ROLLBACK = 1622; + exports.ER_SLAVE_HEARTBEAT_FAILURE = 1623; + exports.ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE = 1624; + exports.ER_NDB_REPLICATION_SCHEMA_ERROR = 1625; + exports.ER_CONFLICT_FN_PARSE_ERROR = 1626; + exports.ER_EXCEPTIONS_WRITE_ERROR = 1627; + exports.ER_TOO_LONG_TABLE_COMMENT = 1628; + exports.ER_TOO_LONG_FIELD_COMMENT = 1629; + exports.ER_FUNC_INEXISTENT_NAME_COLLISION = 1630; + exports.ER_DATABASE_NAME = 1631; + exports.ER_TABLE_NAME = 1632; + exports.ER_PARTITION_NAME = 1633; + exports.ER_SUBPARTITION_NAME = 1634; + exports.ER_TEMPORARY_NAME = 1635; + exports.ER_RENAMED_NAME = 1636; + exports.ER_TOO_MANY_CONCURRENT_TRXS = 1637; + exports.WARN_NON_ASCII_SEPARATOR_NOT_IMPLEMENTED = 1638; + exports.ER_DEBUG_SYNC_TIMEOUT = 1639; + exports.ER_DEBUG_SYNC_HIT_LIMIT = 1640; + exports.ER_DUP_SIGNAL_SET = 1641; + exports.ER_SIGNAL_WARN = 1642; + exports.ER_SIGNAL_NOT_FOUND = 1643; + exports.ER_SIGNAL_EXCEPTION = 1644; + exports.ER_RESIGNAL_WITHOUT_ACTIVE_HANDLER = 1645; + exports.ER_SIGNAL_BAD_CONDITION_TYPE = 1646; + exports.WARN_COND_ITEM_TRUNCATED = 1647; + exports.ER_COND_ITEM_TOO_LONG = 1648; + exports.ER_UNKNOWN_LOCALE = 1649; + exports.ER_SLAVE_IGNORE_SERVER_IDS = 1650; + exports.ER_QUERY_CACHE_DISABLED = 1651; + exports.ER_SAME_NAME_PARTITION_FIELD = 1652; + exports.ER_PARTITION_COLUMN_LIST_ERROR = 1653; + exports.ER_WRONG_TYPE_COLUMN_VALUE_ERROR = 1654; + exports.ER_TOO_MANY_PARTITION_FUNC_FIELDS_ERROR = 1655; + exports.ER_MAXVALUE_IN_VALUES_IN = 1656; + exports.ER_TOO_MANY_VALUES_ERROR = 1657; + exports.ER_ROW_SINGLE_PARTITION_FIELD_ERROR = 1658; + exports.ER_FIELD_TYPE_NOT_ALLOWED_AS_PARTITION_FIELD = 1659; + exports.ER_PARTITION_FIELDS_TOO_LONG = 1660; + exports.ER_BINLOG_ROW_ENGINE_AND_STMT_ENGINE = 1661; + exports.ER_BINLOG_ROW_MODE_AND_STMT_ENGINE = 1662; + exports.ER_BINLOG_UNSAFE_AND_STMT_ENGINE = 1663; + exports.ER_BINLOG_ROW_INJECTION_AND_STMT_ENGINE = 1664; + exports.ER_BINLOG_STMT_MODE_AND_ROW_ENGINE = 1665; + exports.ER_BINLOG_ROW_INJECTION_AND_STMT_MODE = 1666; + exports.ER_BINLOG_MULTIPLE_ENGINES_AND_SELF_LOGGING_ENGINE = 1667; + exports.ER_BINLOG_UNSAFE_LIMIT = 1668; + exports.ER_BINLOG_UNSAFE_INSERT_DELAYED = 1669; + exports.ER_BINLOG_UNSAFE_SYSTEM_TABLE = 1670; + exports.ER_BINLOG_UNSAFE_AUTOINC_COLUMNS = 1671; + exports.ER_BINLOG_UNSAFE_UDF = 1672; + exports.ER_BINLOG_UNSAFE_SYSTEM_VARIABLE = 1673; + exports.ER_BINLOG_UNSAFE_SYSTEM_FUNCTION = 1674; + exports.ER_BINLOG_UNSAFE_NONTRANS_AFTER_TRANS = 1675; + exports.ER_MESSAGE_AND_STATEMENT = 1676; + exports.ER_SLAVE_CONVERSION_FAILED = 1677; + exports.ER_SLAVE_CANT_CREATE_CONVERSION = 1678; + exports.ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_BINLOG_FORMAT = 1679; + exports.ER_PATH_LENGTH = 1680; + exports.ER_WARN_DEPRECATED_SYNTAX_NO_REPLACEMENT = 1681; + exports.ER_WRONG_NATIVE_TABLE_STRUCTURE = 1682; + exports.ER_WRONG_PERFSCHEMA_USAGE = 1683; + exports.ER_WARN_I_S_SKIPPED_TABLE = 1684; + exports.ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_BINLOG_DIRECT = 1685; + exports.ER_STORED_FUNCTION_PREVENTS_SWITCH_BINLOG_DIRECT = 1686; + exports.ER_SPATIAL_MUST_HAVE_GEOM_COL = 1687; + exports.ER_TOO_LONG_INDEX_COMMENT = 1688; + exports.ER_LOCK_ABORTED = 1689; + exports.ER_DATA_OUT_OF_RANGE = 1690; + exports.ER_WRONG_SPVAR_TYPE_IN_LIMIT = 1691; + exports.ER_BINLOG_UNSAFE_MULTIPLE_ENGINES_AND_SELF_LOGGING_ENGINE = 1692; + exports.ER_BINLOG_UNSAFE_MIXED_STATEMENT = 1693; + exports.ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_SQL_LOG_BIN = 1694; + exports.ER_STORED_FUNCTION_PREVENTS_SWITCH_SQL_LOG_BIN = 1695; + exports.ER_FAILED_READ_FROM_PAR_FILE = 1696; + exports.ER_VALUES_IS_NOT_INT_TYPE_ERROR = 1697; + exports.ER_ACCESS_DENIED_NO_PASSWORD_ERROR = 1698; + exports.ER_SET_PASSWORD_AUTH_PLUGIN = 1699; + exports.ER_GRANT_PLUGIN_USER_EXISTS = 1700; + exports.ER_TRUNCATE_ILLEGAL_FK = 1701; + exports.ER_PLUGIN_IS_PERMANENT = 1702; + exports.ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MIN = 1703; + exports.ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MAX = 1704; + exports.ER_STMT_CACHE_FULL = 1705; + exports.ER_MULTI_UPDATE_KEY_CONFLICT = 1706; + exports.ER_TABLE_NEEDS_REBUILD = 1707; + exports.WARN_OPTION_BELOW_LIMIT = 1708; + exports.ER_INDEX_COLUMN_TOO_LONG = 1709; + exports.ER_ERROR_IN_TRIGGER_BODY = 1710; + exports.ER_ERROR_IN_UNKNOWN_TRIGGER_BODY = 1711; + exports.ER_INDEX_CORRUPT = 1712; + exports.ER_UNDO_RECORD_TOO_BIG = 1713; + exports.ER_BINLOG_UNSAFE_INSERT_IGNORE_SELECT = 1714; + exports.ER_BINLOG_UNSAFE_INSERT_SELECT_UPDATE = 1715; + exports.ER_BINLOG_UNSAFE_REPLACE_SELECT = 1716; + exports.ER_BINLOG_UNSAFE_CREATE_IGNORE_SELECT = 1717; + exports.ER_BINLOG_UNSAFE_CREATE_REPLACE_SELECT = 1718; + exports.ER_BINLOG_UNSAFE_UPDATE_IGNORE = 1719; + exports.ER_PLUGIN_NO_UNINSTALL = 1720; + exports.ER_PLUGIN_NO_INSTALL = 1721; + exports.ER_BINLOG_UNSAFE_WRITE_AUTOINC_SELECT = 1722; + exports.ER_BINLOG_UNSAFE_CREATE_SELECT_AUTOINC = 1723; + exports.ER_BINLOG_UNSAFE_INSERT_TWO_KEYS = 1724; + exports.ER_TABLE_IN_FK_CHECK = 1725; + exports.ER_UNSUPPORTED_ENGINE = 1726; + exports.ER_BINLOG_UNSAFE_AUTOINC_NOT_FIRST = 1727; + exports.ER_CANNOT_LOAD_FROM_TABLE_V2 = 1728; + exports.ER_MASTER_DELAY_VALUE_OUT_OF_RANGE = 1729; + exports.ER_ONLY_FD_AND_RBR_EVENTS_ALLOWED_IN_BINLOG_STATEMENT = 1730; + exports.ER_PARTITION_EXCHANGE_DIFFERENT_OPTION = 1731; + exports.ER_PARTITION_EXCHANGE_PART_TABLE = 1732; + exports.ER_PARTITION_EXCHANGE_TEMP_TABLE = 1733; + exports.ER_PARTITION_INSTEAD_OF_SUBPARTITION = 1734; + exports.ER_UNKNOWN_PARTITION = 1735; + exports.ER_TABLES_DIFFERENT_METADATA = 1736; + exports.ER_ROW_DOES_NOT_MATCH_PARTITION = 1737; + exports.ER_BINLOG_CACHE_SIZE_GREATER_THAN_MAX = 1738; + exports.ER_WARN_INDEX_NOT_APPLICABLE = 1739; + exports.ER_PARTITION_EXCHANGE_FOREIGN_KEY = 1740; + exports.ER_NO_SUCH_KEY_VALUE = 1741; + exports.ER_RPL_INFO_DATA_TOO_LONG = 1742; + exports.ER_NETWORK_READ_EVENT_CHECKSUM_FAILURE = 1743; + exports.ER_BINLOG_READ_EVENT_CHECKSUM_FAILURE = 1744; + exports.ER_BINLOG_STMT_CACHE_SIZE_GREATER_THAN_MAX = 1745; + exports.ER_CANT_UPDATE_TABLE_IN_CREATE_TABLE_SELECT = 1746; + exports.ER_PARTITION_CLAUSE_ON_NONPARTITIONED = 1747; + exports.ER_ROW_DOES_NOT_MATCH_GIVEN_PARTITION_SET = 1748; + exports.ER_NO_SUCH_PARTITION = 1749; + exports.ER_CHANGE_RPL_INFO_REPOSITORY_FAILURE = 1750; + exports.ER_WARNING_NOT_COMPLETE_ROLLBACK_WITH_CREATED_TEMP_TABLE = 1751; + exports.ER_WARNING_NOT_COMPLETE_ROLLBACK_WITH_DROPPED_TEMP_TABLE = 1752; + exports.ER_MTS_FEATURE_IS_NOT_SUPPORTED = 1753; + exports.ER_MTS_UPDATED_DBS_GREATER_MAX = 1754; + exports.ER_MTS_CANT_PARALLEL = 1755; + exports.ER_MTS_INCONSISTENT_DATA = 1756; + exports.ER_FULLTEXT_NOT_SUPPORTED_WITH_PARTITIONING = 1757; + exports.ER_DA_INVALID_CONDITION_NUMBER = 1758; + exports.ER_INSECURE_PLAIN_TEXT = 1759; + exports.ER_INSECURE_CHANGE_MASTER = 1760; + exports.ER_FOREIGN_DUPLICATE_KEY_WITH_CHILD_INFO = 1761; + exports.ER_FOREIGN_DUPLICATE_KEY_WITHOUT_CHILD_INFO = 1762; + exports.ER_SQLTHREAD_WITH_SECURE_SLAVE = 1763; + exports.ER_TABLE_HAS_NO_FT = 1764; + exports.ER_VARIABLE_NOT_SETTABLE_IN_SF_OR_TRIGGER = 1765; + exports.ER_VARIABLE_NOT_SETTABLE_IN_TRANSACTION = 1766; + exports.ER_GTID_NEXT_IS_NOT_IN_GTID_NEXT_LIST = 1767; + exports.ER_CANT_CHANGE_GTID_NEXT_IN_TRANSACTION = 1768; + exports.ER_SET_STATEMENT_CANNOT_INVOKE_FUNCTION = 1769; + exports.ER_GTID_NEXT_CANT_BE_AUTOMATIC_IF_GTID_NEXT_LIST_IS_NON_NULL = 1770; + exports.ER_SKIPPING_LOGGED_TRANSACTION = 1771; + exports.ER_MALFORMED_GTID_SET_SPECIFICATION = 1772; + exports.ER_MALFORMED_GTID_SET_ENCODING = 1773; + exports.ER_MALFORMED_GTID_SPECIFICATION = 1774; + exports.ER_GNO_EXHAUSTED = 1775; + exports.ER_BAD_SLAVE_AUTO_POSITION = 1776; + exports.ER_AUTO_POSITION_REQUIRES_GTID_MODE_NOT_OFF = 1777; + exports.ER_CANT_DO_IMPLICIT_COMMIT_IN_TRX_WHEN_GTID_NEXT_IS_SET = 1778; + exports.ER_GTID_MODE_ON_REQUIRES_ENFORCE_GTID_CONSISTENCY_ON = 1779; + exports.ER_GTID_MODE_REQUIRES_BINLOG = 1780; + exports.ER_CANT_SET_GTID_NEXT_TO_GTID_WHEN_GTID_MODE_IS_OFF = 1781; + exports.ER_CANT_SET_GTID_NEXT_TO_ANONYMOUS_WHEN_GTID_MODE_IS_ON = 1782; + exports.ER_CANT_SET_GTID_NEXT_LIST_TO_NON_NULL_WHEN_GTID_MODE_IS_OFF = 1783; + exports.ER_FOUND_GTID_EVENT_WHEN_GTID_MODE_IS_OFF = 1784; + exports.ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE = 1785; + exports.ER_GTID_UNSAFE_CREATE_SELECT = 1786; + exports.ER_GTID_UNSAFE_CREATE_DROP_TEMPORARY_TABLE_IN_TRANSACTION = 1787; + exports.ER_GTID_MODE_CAN_ONLY_CHANGE_ONE_STEP_AT_A_TIME = 1788; + exports.ER_MASTER_HAS_PURGED_REQUIRED_GTIDS = 1789; + exports.ER_CANT_SET_GTID_NEXT_WHEN_OWNING_GTID = 1790; + exports.ER_UNKNOWN_EXPLAIN_FORMAT = 1791; + exports.ER_CANT_EXECUTE_IN_READ_ONLY_TRANSACTION = 1792; + exports.ER_TOO_LONG_TABLE_PARTITION_COMMENT = 1793; + exports.ER_SLAVE_CONFIGURATION = 1794; + exports.ER_INNODB_FT_LIMIT = 1795; + exports.ER_INNODB_NO_FT_TEMP_TABLE = 1796; + exports.ER_INNODB_FT_WRONG_DOCID_COLUMN = 1797; + exports.ER_INNODB_FT_WRONG_DOCID_INDEX = 1798; + exports.ER_INNODB_ONLINE_LOG_TOO_BIG = 1799; + exports.ER_UNKNOWN_ALTER_ALGORITHM = 1800; + exports.ER_UNKNOWN_ALTER_LOCK = 1801; + exports.ER_MTS_CHANGE_MASTER_CANT_RUN_WITH_GAPS = 1802; + exports.ER_MTS_RECOVERY_FAILURE = 1803; + exports.ER_MTS_RESET_WORKERS = 1804; + exports.ER_COL_COUNT_DOESNT_MATCH_CORRUPTED_V2 = 1805; + exports.ER_SLAVE_SILENT_RETRY_TRANSACTION = 1806; + exports.ER_DISCARD_FK_CHECKS_RUNNING = 1807; + exports.ER_TABLE_SCHEMA_MISMATCH = 1808; + exports.ER_TABLE_IN_SYSTEM_TABLESPACE = 1809; + exports.ER_IO_READ_ERROR = 1810; + exports.ER_IO_WRITE_ERROR = 1811; + exports.ER_TABLESPACE_MISSING = 1812; + exports.ER_TABLESPACE_EXISTS = 1813; + exports.ER_TABLESPACE_DISCARDED = 1814; + exports.ER_INTERNAL_ERROR = 1815; + exports.ER_INNODB_IMPORT_ERROR = 1816; + exports.ER_INNODB_INDEX_CORRUPT = 1817; + exports.ER_INVALID_YEAR_COLUMN_LENGTH = 1818; + exports.ER_NOT_VALID_PASSWORD = 1819; + exports.ER_MUST_CHANGE_PASSWORD = 1820; + exports.ER_FK_NO_INDEX_CHILD = 1821; + exports.ER_FK_NO_INDEX_PARENT = 1822; + exports.ER_FK_FAIL_ADD_SYSTEM = 1823; + exports.ER_FK_CANNOT_OPEN_PARENT = 1824; + exports.ER_FK_INCORRECT_OPTION = 1825; + exports.ER_FK_DUP_NAME = 1826; + exports.ER_PASSWORD_FORMAT = 1827; + exports.ER_FK_COLUMN_CANNOT_DROP = 1828; + exports.ER_FK_COLUMN_CANNOT_DROP_CHILD = 1829; + exports.ER_FK_COLUMN_NOT_NULL = 1830; + exports.ER_DUP_INDEX = 1831; + exports.ER_FK_COLUMN_CANNOT_CHANGE = 1832; + exports.ER_FK_COLUMN_CANNOT_CHANGE_CHILD = 1833; + exports.ER_FK_CANNOT_DELETE_PARENT = 1834; + exports.ER_MALFORMED_PACKET = 1835; + exports.ER_READ_ONLY_MODE = 1836; + exports.ER_GTID_NEXT_TYPE_UNDEFINED_GROUP = 1837; + exports.ER_VARIABLE_NOT_SETTABLE_IN_SP = 1838; + exports.ER_CANT_SET_GTID_PURGED_WHEN_GTID_MODE_IS_OFF = 1839; + exports.ER_CANT_SET_GTID_PURGED_WHEN_GTID_EXECUTED_IS_NOT_EMPTY = 1840; + exports.ER_CANT_SET_GTID_PURGED_WHEN_OWNED_GTIDS_IS_NOT_EMPTY = 1841; + exports.ER_GTID_PURGED_WAS_CHANGED = 1842; + exports.ER_GTID_EXECUTED_WAS_CHANGED = 1843; + exports.ER_BINLOG_STMT_MODE_AND_NO_REPL_TABLES = 1844; + exports.ER_ALTER_OPERATION_NOT_SUPPORTED = 1845; + exports.ER_ALTER_OPERATION_NOT_SUPPORTED_REASON = 1846; + exports.ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_COPY = 1847; + exports.ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_PARTITION = 1848; + exports.ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_FK_RENAME = 1849; + exports.ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_COLUMN_TYPE = 1850; + exports.ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_FK_CHECK = 1851; + exports.ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_IGNORE = 1852; + exports.ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_NOPK = 1853; + exports.ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_AUTOINC = 1854; + exports.ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_HIDDEN_FTS = 1855; + exports.ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_CHANGE_FTS = 1856; + exports.ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_FTS = 1857; + exports.ER_SQL_SLAVE_SKIP_COUNTER_NOT_SETTABLE_IN_GTID_MODE = 1858; + exports.ER_DUP_UNKNOWN_IN_INDEX = 1859; + exports.ER_IDENT_CAUSES_TOO_LONG_PATH = 1860; + exports.ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_NOT_NULL = 1861; + exports.ER_MUST_CHANGE_PASSWORD_LOGIN = 1862; + exports.ER_ROW_IN_WRONG_PARTITION = 1863; + exports.ER_MTS_EVENT_BIGGER_PENDING_JOBS_SIZE_MAX = 1864; + exports.ER_INNODB_NO_FT_USES_PARSER = 1865; + exports.ER_BINLOG_LOGICAL_CORRUPTION = 1866; + exports.ER_WARN_PURGE_LOG_IN_USE = 1867; + exports.ER_WARN_PURGE_LOG_IS_ACTIVE = 1868; + exports.ER_AUTO_INCREMENT_CONFLICT = 1869; + exports.WARN_ON_BLOCKHOLE_IN_RBR = 1870; + exports.ER_SLAVE_MI_INIT_REPOSITORY = 1871; + exports.ER_SLAVE_RLI_INIT_REPOSITORY = 1872; + exports.ER_ACCESS_DENIED_CHANGE_USER_ERROR = 1873; + exports.ER_INNODB_READ_ONLY = 1874; + exports.ER_STOP_SLAVE_SQL_THREAD_TIMEOUT = 1875; + exports.ER_STOP_SLAVE_IO_THREAD_TIMEOUT = 1876; + exports.ER_TABLE_CORRUPT = 1877; + exports.ER_TEMP_FILE_WRITE_FAILURE = 1878; + exports.ER_INNODB_FT_AUX_NOT_HEX_ID = 1879; + exports.ER_OLD_TEMPORALS_UPGRADED = 1880; + exports.ER_INNODB_FORCED_RECOVERY = 1881; + exports.ER_AES_INVALID_IV = 1882; + exports.ER_PLUGIN_CANNOT_BE_UNINSTALLED = 1883; + exports.ER_GTID_UNSAFE_BINLOG_SPLITTABLE_STATEMENT_AND_GTID_GROUP = 1884; + exports.ER_SLAVE_HAS_MORE_GTIDS_THAN_MASTER = 1885; + exports.ER_MISSING_KEY = 1886; + exports.WARN_NAMED_PIPE_ACCESS_EVERYONE = 1887; + exports.ER_FOUND_MISSING_GTIDS = 1888; + exports.ER_FILE_CORRUPT = 3000; + exports.ER_ERROR_ON_MASTER = 3001; + exports.ER_INCONSISTENT_ERROR = 3002; + exports.ER_STORAGE_ENGINE_NOT_LOADED = 3003; + exports.ER_GET_STACKED_DA_WITHOUT_ACTIVE_HANDLER = 3004; + exports.ER_WARN_LEGACY_SYNTAX_CONVERTED = 3005; + exports.ER_BINLOG_UNSAFE_FULLTEXT_PLUGIN = 3006; + exports.ER_CANNOT_DISCARD_TEMPORARY_TABLE = 3007; + exports.ER_FK_DEPTH_EXCEEDED = 3008; + exports.ER_COL_COUNT_DOESNT_MATCH_PLEASE_UPDATE_V2 = 3009; + exports.ER_WARN_TRIGGER_DOESNT_HAVE_CREATED = 3010; + exports.ER_REFERENCED_TRG_DOES_NOT_EXIST = 3011; + exports.ER_EXPLAIN_NOT_SUPPORTED = 3012; + exports.ER_INVALID_FIELD_SIZE = 3013; + exports.ER_MISSING_HA_CREATE_OPTION = 3014; + exports.ER_ENGINE_OUT_OF_MEMORY = 3015; + exports.ER_PASSWORD_EXPIRE_ANONYMOUS_USER = 3016; + exports.ER_SLAVE_SQL_THREAD_MUST_STOP = 3017; + exports.ER_NO_FT_MATERIALIZED_SUBQUERY = 3018; + exports.ER_INNODB_UNDO_LOG_FULL = 3019; + exports.ER_INVALID_ARGUMENT_FOR_LOGARITHM = 3020; + exports.ER_SLAVE_CHANNEL_IO_THREAD_MUST_STOP = 3021; + exports.ER_WARN_OPEN_TEMP_TABLES_MUST_BE_ZERO = 3022; + exports.ER_WARN_ONLY_MASTER_LOG_FILE_NO_POS = 3023; + exports.ER_QUERY_TIMEOUT = 3024; + exports.ER_NON_RO_SELECT_DISABLE_TIMER = 3025; + exports.ER_DUP_LIST_ENTRY = 3026; + exports.ER_SQL_MODE_NO_EFFECT = 3027; + exports.ER_AGGREGATE_ORDER_FOR_UNION = 3028; + exports.ER_AGGREGATE_ORDER_NON_AGG_QUERY = 3029; + exports.ER_SLAVE_WORKER_STOPPED_PREVIOUS_THD_ERROR = 3030; + exports.ER_DONT_SUPPORT_SLAVE_PRESERVE_COMMIT_ORDER = 3031; + exports.ER_SERVER_OFFLINE_MODE = 3032; + exports.ER_GIS_DIFFERENT_SRIDS = 3033; + exports.ER_GIS_UNSUPPORTED_ARGUMENT = 3034; + exports.ER_GIS_UNKNOWN_ERROR = 3035; + exports.ER_GIS_UNKNOWN_EXCEPTION = 3036; + exports.ER_GIS_INVALID_DATA = 3037; + exports.ER_BOOST_GEOMETRY_EMPTY_INPUT_EXCEPTION = 3038; + exports.ER_BOOST_GEOMETRY_CENTROID_EXCEPTION = 3039; + exports.ER_BOOST_GEOMETRY_OVERLAY_INVALID_INPUT_EXCEPTION = 3040; + exports.ER_BOOST_GEOMETRY_TURN_INFO_EXCEPTION = 3041; + exports.ER_BOOST_GEOMETRY_SELF_INTERSECTION_POINT_EXCEPTION = 3042; + exports.ER_BOOST_GEOMETRY_UNKNOWN_EXCEPTION = 3043; + exports.ER_STD_BAD_ALLOC_ERROR = 3044; + exports.ER_STD_DOMAIN_ERROR = 3045; + exports.ER_STD_LENGTH_ERROR = 3046; + exports.ER_STD_INVALID_ARGUMENT = 3047; + exports.ER_STD_OUT_OF_RANGE_ERROR = 3048; + exports.ER_STD_OVERFLOW_ERROR = 3049; + exports.ER_STD_RANGE_ERROR = 3050; + exports.ER_STD_UNDERFLOW_ERROR = 3051; + exports.ER_STD_LOGIC_ERROR = 3052; + exports.ER_STD_RUNTIME_ERROR = 3053; + exports.ER_STD_UNKNOWN_EXCEPTION = 3054; + exports.ER_GIS_DATA_WRONG_ENDIANESS = 3055; + exports.ER_CHANGE_MASTER_PASSWORD_LENGTH = 3056; + exports.ER_USER_LOCK_WRONG_NAME = 3057; + exports.ER_USER_LOCK_DEADLOCK = 3058; + exports.ER_REPLACE_INACCESSIBLE_ROWS = 3059; + exports.ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_GIS = 3060; + exports.ER_ILLEGAL_USER_VAR = 3061; + exports.ER_GTID_MODE_OFF = 3062; + exports.ER_UNSUPPORTED_BY_REPLICATION_THREAD = 3063; + exports.ER_INCORRECT_TYPE = 3064; + exports.ER_FIELD_IN_ORDER_NOT_SELECT = 3065; + exports.ER_AGGREGATE_IN_ORDER_NOT_SELECT = 3066; + exports.ER_INVALID_RPL_WILD_TABLE_FILTER_PATTERN = 3067; + exports.ER_NET_OK_PACKET_TOO_LARGE = 3068; + exports.ER_INVALID_JSON_DATA = 3069; + exports.ER_INVALID_GEOJSON_MISSING_MEMBER = 3070; + exports.ER_INVALID_GEOJSON_WRONG_TYPE = 3071; + exports.ER_INVALID_GEOJSON_UNSPECIFIED = 3072; + exports.ER_DIMENSION_UNSUPPORTED = 3073; + exports.ER_SLAVE_CHANNEL_DOES_NOT_EXIST = 3074; + exports.ER_SLAVE_MULTIPLE_CHANNELS_HOST_PORT = 3075; + exports.ER_SLAVE_CHANNEL_NAME_INVALID_OR_TOO_LONG = 3076; + exports.ER_SLAVE_NEW_CHANNEL_WRONG_REPOSITORY = 3077; + exports.ER_SLAVE_CHANNEL_DELETE = 3078; + exports.ER_SLAVE_MULTIPLE_CHANNELS_CMD = 3079; + exports.ER_SLAVE_MAX_CHANNELS_EXCEEDED = 3080; + exports.ER_SLAVE_CHANNEL_MUST_STOP = 3081; + exports.ER_SLAVE_CHANNEL_NOT_RUNNING = 3082; + exports.ER_SLAVE_CHANNEL_WAS_RUNNING = 3083; + exports.ER_SLAVE_CHANNEL_WAS_NOT_RUNNING = 3084; + exports.ER_SLAVE_CHANNEL_SQL_THREAD_MUST_STOP = 3085; + exports.ER_SLAVE_CHANNEL_SQL_SKIP_COUNTER = 3086; + exports.ER_WRONG_FIELD_WITH_GROUP_V2 = 3087; + exports.ER_MIX_OF_GROUP_FUNC_AND_FIELDS_V2 = 3088; + exports.ER_WARN_DEPRECATED_SYSVAR_UPDATE = 3089; + exports.ER_WARN_DEPRECATED_SQLMODE = 3090; + exports.ER_CANNOT_LOG_PARTIAL_DROP_DATABASE_WITH_GTID = 3091; + exports.ER_GROUP_REPLICATION_CONFIGURATION = 3092; + exports.ER_GROUP_REPLICATION_RUNNING = 3093; + exports.ER_GROUP_REPLICATION_APPLIER_INIT_ERROR = 3094; + exports.ER_GROUP_REPLICATION_STOP_APPLIER_THREAD_TIMEOUT = 3095; + exports.ER_GROUP_REPLICATION_COMMUNICATION_LAYER_SESSION_ERROR = 3096; + exports.ER_GROUP_REPLICATION_COMMUNICATION_LAYER_JOIN_ERROR = 3097; + exports.ER_BEFORE_DML_VALIDATION_ERROR = 3098; + exports.ER_PREVENTS_VARIABLE_WITHOUT_RBR = 3099; + exports.ER_RUN_HOOK_ERROR = 3100; + exports.ER_TRANSACTION_ROLLBACK_DURING_COMMIT = 3101; + exports.ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED = 3102; + exports.ER_UNSUPPORTED_ALTER_INPLACE_ON_VIRTUAL_COLUMN = 3103; + exports.ER_WRONG_FK_OPTION_FOR_GENERATED_COLUMN = 3104; + exports.ER_NON_DEFAULT_VALUE_FOR_GENERATED_COLUMN = 3105; + exports.ER_UNSUPPORTED_ACTION_ON_GENERATED_COLUMN = 3106; + exports.ER_GENERATED_COLUMN_NON_PRIOR = 3107; + exports.ER_DEPENDENT_BY_GENERATED_COLUMN = 3108; + exports.ER_GENERATED_COLUMN_REF_AUTO_INC = 3109; + exports.ER_FEATURE_NOT_AVAILABLE = 3110; + exports.ER_CANT_SET_GTID_MODE = 3111; + exports.ER_CANT_USE_AUTO_POSITION_WITH_GTID_MODE_OFF = 3112; + exports.ER_CANT_REPLICATE_ANONYMOUS_WITH_AUTO_POSITION = 3113; + exports.ER_CANT_REPLICATE_ANONYMOUS_WITH_GTID_MODE_ON = 3114; + exports.ER_CANT_REPLICATE_GTID_WITH_GTID_MODE_OFF = 3115; + exports.ER_CANT_SET_ENFORCE_GTID_CONSISTENCY_ON_WITH_ONGOING_GTID_VIOLATING_TRANSACTIONS = 3116; + exports.ER_SET_ENFORCE_GTID_CONSISTENCY_WARN_WITH_ONGOING_GTID_VIOLATING_TRANSACTIONS = 3117; + exports.ER_ACCOUNT_HAS_BEEN_LOCKED = 3118; + exports.ER_WRONG_TABLESPACE_NAME = 3119; + exports.ER_TABLESPACE_IS_NOT_EMPTY = 3120; + exports.ER_WRONG_FILE_NAME = 3121; + exports.ER_BOOST_GEOMETRY_INCONSISTENT_TURNS_EXCEPTION = 3122; + exports.ER_WARN_OPTIMIZER_HINT_SYNTAX_ERROR = 3123; + exports.ER_WARN_BAD_MAX_EXECUTION_TIME = 3124; + exports.ER_WARN_UNSUPPORTED_MAX_EXECUTION_TIME = 3125; + exports.ER_WARN_CONFLICTING_HINT = 3126; + exports.ER_WARN_UNKNOWN_QB_NAME = 3127; + exports.ER_UNRESOLVED_HINT_NAME = 3128; + exports.ER_WARN_ON_MODIFYING_GTID_EXECUTED_TABLE = 3129; + exports.ER_PLUGGABLE_PROTOCOL_COMMAND_NOT_SUPPORTED = 3130; + exports.ER_LOCKING_SERVICE_WRONG_NAME = 3131; + exports.ER_LOCKING_SERVICE_DEADLOCK = 3132; + exports.ER_LOCKING_SERVICE_TIMEOUT = 3133; + exports.ER_GIS_MAX_POINTS_IN_GEOMETRY_OVERFLOWED = 3134; + exports.ER_SQL_MODE_MERGED = 3135; + exports.ER_VTOKEN_PLUGIN_TOKEN_MISMATCH = 3136; + exports.ER_VTOKEN_PLUGIN_TOKEN_NOT_FOUND = 3137; + exports.ER_CANT_SET_VARIABLE_WHEN_OWNING_GTID = 3138; + exports.ER_SLAVE_CHANNEL_OPERATION_NOT_ALLOWED = 3139; + exports.ER_INVALID_JSON_TEXT = 3140; + exports.ER_INVALID_JSON_TEXT_IN_PARAM = 3141; + exports.ER_INVALID_JSON_BINARY_DATA = 3142; + exports.ER_INVALID_JSON_PATH = 3143; + exports.ER_INVALID_JSON_CHARSET = 3144; + exports.ER_INVALID_JSON_CHARSET_IN_FUNCTION = 3145; + exports.ER_INVALID_TYPE_FOR_JSON = 3146; + exports.ER_INVALID_CAST_TO_JSON = 3147; + exports.ER_INVALID_JSON_PATH_CHARSET = 3148; + exports.ER_INVALID_JSON_PATH_WILDCARD = 3149; + exports.ER_JSON_VALUE_TOO_BIG = 3150; + exports.ER_JSON_KEY_TOO_BIG = 3151; + exports.ER_JSON_USED_AS_KEY = 3152; + exports.ER_JSON_VACUOUS_PATH = 3153; + exports.ER_JSON_BAD_ONE_OR_ALL_ARG = 3154; + exports.ER_NUMERIC_JSON_VALUE_OUT_OF_RANGE = 3155; + exports.ER_INVALID_JSON_VALUE_FOR_CAST = 3156; + exports.ER_JSON_DOCUMENT_TOO_DEEP = 3157; + exports.ER_JSON_DOCUMENT_NULL_KEY = 3158; + exports.ER_SECURE_TRANSPORT_REQUIRED = 3159; + exports.ER_NO_SECURE_TRANSPORTS_CONFIGURED = 3160; + exports.ER_DISABLED_STORAGE_ENGINE = 3161; + exports.ER_USER_DOES_NOT_EXIST = 3162; + exports.ER_USER_ALREADY_EXISTS = 3163; + exports.ER_AUDIT_API_ABORT = 3164; + exports.ER_INVALID_JSON_PATH_ARRAY_CELL = 3165; + exports.ER_BUFPOOL_RESIZE_INPROGRESS = 3166; + exports.ER_FEATURE_DISABLED_SEE_DOC = 3167; + exports.ER_SERVER_ISNT_AVAILABLE = 3168; + exports.ER_SESSION_WAS_KILLED = 3169; + exports.ER_CAPACITY_EXCEEDED = 3170; + exports.ER_CAPACITY_EXCEEDED_IN_RANGE_OPTIMIZER = 3171; + exports.ER_TABLE_NEEDS_UPG_PART = 3172; + exports.ER_CANT_WAIT_FOR_EXECUTED_GTID_SET_WHILE_OWNING_A_GTID = 3173; + exports.ER_CANNOT_ADD_FOREIGN_BASE_COL_VIRTUAL = 3174; + exports.ER_CANNOT_CREATE_VIRTUAL_INDEX_CONSTRAINT = 3175; + exports.ER_ERROR_ON_MODIFYING_GTID_EXECUTED_TABLE = 3176; + exports.ER_LOCK_REFUSED_BY_ENGINE = 3177; + exports.ER_UNSUPPORTED_ALTER_ONLINE_ON_VIRTUAL_COLUMN = 3178; + exports.ER_MASTER_KEY_ROTATION_NOT_SUPPORTED_BY_SE = 3179; + exports.ER_MASTER_KEY_ROTATION_ERROR_BY_SE = 3180; + exports.ER_MASTER_KEY_ROTATION_BINLOG_FAILED = 3181; + exports.ER_MASTER_KEY_ROTATION_SE_UNAVAILABLE = 3182; + exports.ER_TABLESPACE_CANNOT_ENCRYPT = 3183; + exports.ER_INVALID_ENCRYPTION_OPTION = 3184; + exports.ER_CANNOT_FIND_KEY_IN_KEYRING = 3185; + exports.ER_CAPACITY_EXCEEDED_IN_PARSER = 3186; + exports.ER_UNSUPPORTED_ALTER_ENCRYPTION_INPLACE = 3187; + exports.ER_KEYRING_UDF_KEYRING_SERVICE_ERROR = 3188; + exports.ER_USER_COLUMN_OLD_LENGTH = 3189; + exports.ER_CANT_RESET_MASTER = 3190; + exports.ER_GROUP_REPLICATION_MAX_GROUP_SIZE = 3191; + exports.ER_CANNOT_ADD_FOREIGN_BASE_COL_STORED = 3192; + exports.ER_TABLE_REFERENCED = 3193; + exports.ER_PARTITION_ENGINE_DEPRECATED_FOR_TABLE = 3194; + exports.ER_WARN_USING_GEOMFROMWKB_TO_SET_SRID_ZERO = 3195; + exports.ER_WARN_USING_GEOMFROMWKB_TO_SET_SRID = 3196; + exports.ER_XA_RETRY = 3197; + exports.ER_KEYRING_AWS_UDF_AWS_KMS_ERROR = 3198; + exports.ER_BINLOG_UNSAFE_XA = 3199; + exports.ER_UDF_ERROR = 3200; + exports.ER_KEYRING_MIGRATION_FAILURE = 3201; + exports.ER_KEYRING_ACCESS_DENIED_ERROR = 3202; + exports.ER_KEYRING_MIGRATION_STATUS = 3203; + exports.ER_PLUGIN_FAILED_TO_OPEN_TABLES = 3204; + exports.ER_PLUGIN_FAILED_TO_OPEN_TABLE = 3205; + exports.ER_AUDIT_LOG_NO_KEYRING_PLUGIN_INSTALLED = 3206; + exports.ER_AUDIT_LOG_ENCRYPTION_PASSWORD_HAS_NOT_BEEN_SET = 3207; + exports.ER_AUDIT_LOG_COULD_NOT_CREATE_AES_KEY = 3208; + exports.ER_AUDIT_LOG_ENCRYPTION_PASSWORD_CANNOT_BE_FETCHED = 3209; + exports.ER_AUDIT_LOG_JSON_FILTERING_NOT_ENABLED = 3210; + exports.ER_AUDIT_LOG_UDF_INSUFFICIENT_PRIVILEGE = 3211; + exports.ER_AUDIT_LOG_SUPER_PRIVILEGE_REQUIRED = 3212; + exports.ER_COULD_NOT_REINITIALIZE_AUDIT_LOG_FILTERS = 3213; + exports.ER_AUDIT_LOG_UDF_INVALID_ARGUMENT_TYPE = 3214; + exports.ER_AUDIT_LOG_UDF_INVALID_ARGUMENT_COUNT = 3215; + exports.ER_AUDIT_LOG_HAS_NOT_BEEN_INSTALLED = 3216; + exports.ER_AUDIT_LOG_UDF_READ_INVALID_MAX_ARRAY_LENGTH_ARG_TYPE = 3217; + exports.ER_AUDIT_LOG_UDF_READ_INVALID_MAX_ARRAY_LENGTH_ARG_VALUE = 3218; + exports.ER_AUDIT_LOG_JSON_FILTER_PARSING_ERROR = 3219; + exports.ER_AUDIT_LOG_JSON_FILTER_NAME_CANNOT_BE_EMPTY = 3220; + exports.ER_AUDIT_LOG_JSON_USER_NAME_CANNOT_BE_EMPTY = 3221; + exports.ER_AUDIT_LOG_JSON_FILTER_DOES_NOT_EXISTS = 3222; + exports.ER_AUDIT_LOG_USER_FIRST_CHARACTER_MUST_BE_ALPHANUMERIC = 3223; + exports.ER_AUDIT_LOG_USER_NAME_INVALID_CHARACTER = 3224; + exports.ER_AUDIT_LOG_HOST_NAME_INVALID_CHARACTER = 3225; + exports.WARN_DEPRECATED_MAXDB_SQL_MODE_FOR_TIMESTAMP = 3226; + exports.ER_XA_REPLICATION_FILTERS = 3227; + exports.ER_CANT_OPEN_ERROR_LOG = 3228; + exports.ER_GROUPING_ON_TIMESTAMP_IN_DST = 3229; + exports.ER_CANT_START_SERVER_NAMED_PIPE = 3230; + exports[1] = "EE_CANTCREATEFILE"; + exports[2] = "EE_READ"; + exports[3] = "EE_WRITE"; + exports[4] = "EE_BADCLOSE"; + exports[5] = "EE_OUTOFMEMORY"; + exports[6] = "EE_DELETE"; + exports[7] = "EE_LINK"; + exports[9] = "EE_EOFERR"; + exports[10] = "EE_CANTLOCK"; + exports[11] = "EE_CANTUNLOCK"; + exports[12] = "EE_DIR"; + exports[13] = "EE_STAT"; + exports[14] = "EE_CANT_CHSIZE"; + exports[15] = "EE_CANT_OPEN_STREAM"; + exports[16] = "EE_GETWD"; + exports[17] = "EE_SETWD"; + exports[18] = "EE_LINK_WARNING"; + exports[19] = "EE_OPEN_WARNING"; + exports[20] = "EE_DISK_FULL"; + exports[21] = "EE_CANT_MKDIR"; + exports[22] = "EE_UNKNOWN_CHARSET"; + exports[23] = "EE_OUT_OF_FILERESOURCES"; + exports[24] = "EE_CANT_READLINK"; + exports[25] = "EE_CANT_SYMLINK"; + exports[26] = "EE_REALPATH"; + exports[27] = "EE_SYNC"; + exports[28] = "EE_UNKNOWN_COLLATION"; + exports[29] = "EE_FILENOTFOUND"; + exports[30] = "EE_FILE_NOT_CLOSED"; + exports[31] = "EE_CHANGE_OWNERSHIP"; + exports[32] = "EE_CHANGE_PERMISSIONS"; + exports[33] = "EE_CANT_SEEK"; + exports[34] = "EE_CAPACITY_EXCEEDED"; + exports[120] = "HA_ERR_KEY_NOT_FOUND"; + exports[121] = "HA_ERR_FOUND_DUPP_KEY"; + exports[122] = "HA_ERR_INTERNAL_ERROR"; + exports[123] = "HA_ERR_RECORD_CHANGED"; + exports[124] = "HA_ERR_WRONG_INDEX"; + exports[126] = "HA_ERR_CRASHED"; + exports[127] = "HA_ERR_WRONG_IN_RECORD"; + exports[128] = "HA_ERR_OUT_OF_MEM"; + exports[130] = "HA_ERR_NOT_A_TABLE"; + exports[131] = "HA_ERR_WRONG_COMMAND"; + exports[132] = "HA_ERR_OLD_FILE"; + exports[133] = "HA_ERR_NO_ACTIVE_RECORD"; + exports[134] = "HA_ERR_RECORD_DELETED"; + exports[135] = "HA_ERR_RECORD_FILE_FULL"; + exports[136] = "HA_ERR_INDEX_FILE_FULL"; + exports[137] = "HA_ERR_END_OF_FILE"; + exports[138] = "HA_ERR_UNSUPPORTED"; + exports[139] = "HA_ERR_TOO_BIG_ROW"; + exports[140] = "HA_WRONG_CREATE_OPTION"; + exports[141] = "HA_ERR_FOUND_DUPP_UNIQUE"; + exports[142] = "HA_ERR_UNKNOWN_CHARSET"; + exports[143] = "HA_ERR_WRONG_MRG_TABLE_DEF"; + exports[144] = "HA_ERR_CRASHED_ON_REPAIR"; + exports[145] = "HA_ERR_CRASHED_ON_USAGE"; + exports[146] = "HA_ERR_LOCK_WAIT_TIMEOUT"; + exports[147] = "HA_ERR_LOCK_TABLE_FULL"; + exports[148] = "HA_ERR_READ_ONLY_TRANSACTION"; + exports[149] = "HA_ERR_LOCK_DEADLOCK"; + exports[150] = "HA_ERR_CANNOT_ADD_FOREIGN"; + exports[151] = "HA_ERR_NO_REFERENCED_ROW"; + exports[152] = "HA_ERR_ROW_IS_REFERENCED"; + exports[153] = "HA_ERR_NO_SAVEPOINT"; + exports[154] = "HA_ERR_NON_UNIQUE_BLOCK_SIZE"; + exports[155] = "HA_ERR_NO_SUCH_TABLE"; + exports[156] = "HA_ERR_TABLE_EXIST"; + exports[157] = "HA_ERR_NO_CONNECTION"; + exports[158] = "HA_ERR_NULL_IN_SPATIAL"; + exports[159] = "HA_ERR_TABLE_DEF_CHANGED"; + exports[160] = "HA_ERR_NO_PARTITION_FOUND"; + exports[161] = "HA_ERR_RBR_LOGGING_FAILED"; + exports[162] = "HA_ERR_DROP_INDEX_FK"; + exports[163] = "HA_ERR_FOREIGN_DUPLICATE_KEY"; + exports[164] = "HA_ERR_TABLE_NEEDS_UPGRADE"; + exports[165] = "HA_ERR_TABLE_READONLY"; + exports[166] = "HA_ERR_AUTOINC_READ_FAILED"; + exports[167] = "HA_ERR_AUTOINC_ERANGE"; + exports[168] = "HA_ERR_GENERIC"; + exports[169] = "HA_ERR_RECORD_IS_THE_SAME"; + exports[170] = "HA_ERR_LOGGING_IMPOSSIBLE"; + exports[171] = "HA_ERR_CORRUPT_EVENT"; + exports[172] = "HA_ERR_NEW_FILE"; + exports[173] = "HA_ERR_ROWS_EVENT_APPLY"; + exports[174] = "HA_ERR_INITIALIZATION"; + exports[175] = "HA_ERR_FILE_TOO_SHORT"; + exports[176] = "HA_ERR_WRONG_CRC"; + exports[177] = "HA_ERR_TOO_MANY_CONCURRENT_TRXS"; + exports[178] = "HA_ERR_NOT_IN_LOCK_PARTITIONS"; + exports[179] = "HA_ERR_INDEX_COL_TOO_LONG"; + exports[180] = "HA_ERR_INDEX_CORRUPT"; + exports[181] = "HA_ERR_UNDO_REC_TOO_BIG"; + exports[182] = "HA_FTS_INVALID_DOCID"; + exports[183] = "HA_ERR_TABLE_IN_FK_CHECK"; + exports[184] = "HA_ERR_TABLESPACE_EXISTS"; + exports[185] = "HA_ERR_TOO_MANY_FIELDS"; + exports[186] = "HA_ERR_ROW_IN_WRONG_PARTITION"; + exports[187] = "HA_ERR_INNODB_READ_ONLY"; + exports[188] = "HA_ERR_FTS_EXCEED_RESULT_CACHE_LIMIT"; + exports[189] = "HA_ERR_TEMP_FILE_WRITE_FAILURE"; + exports[190] = "HA_ERR_INNODB_FORCED_RECOVERY"; + exports[191] = "HA_ERR_FTS_TOO_MANY_WORDS_IN_PHRASE"; + exports[192] = "HA_ERR_FK_DEPTH_EXCEEDED"; + exports[193] = "HA_MISSING_CREATE_OPTION"; + exports[194] = "HA_ERR_SE_OUT_OF_MEMORY"; + exports[195] = "HA_ERR_TABLE_CORRUPT"; + exports[196] = "HA_ERR_QUERY_INTERRUPTED"; + exports[197] = "HA_ERR_TABLESPACE_MISSING"; + exports[198] = "HA_ERR_TABLESPACE_IS_NOT_EMPTY"; + exports[199] = "HA_ERR_WRONG_FILE_NAME"; + exports[200] = "HA_ERR_NOT_ALLOWED_COMMAND"; + exports[201] = "HA_ERR_COMPUTE_FAILED"; + exports[1000] = "ER_HASHCHK"; + exports[1001] = "ER_NISAMCHK"; + exports[1002] = "ER_NO"; + exports[1003] = "ER_YES"; + exports[1004] = "ER_CANT_CREATE_FILE"; + exports[1005] = "ER_CANT_CREATE_TABLE"; + exports[1006] = "ER_CANT_CREATE_DB"; + exports[1007] = "ER_DB_CREATE_EXISTS"; + exports[1008] = "ER_DB_DROP_EXISTS"; + exports[1009] = "ER_DB_DROP_DELETE"; + exports[1010] = "ER_DB_DROP_RMDIR"; + exports[1011] = "ER_CANT_DELETE_FILE"; + exports[1012] = "ER_CANT_FIND_SYSTEM_REC"; + exports[1013] = "ER_CANT_GET_STAT"; + exports[1014] = "ER_CANT_GET_WD"; + exports[1015] = "ER_CANT_LOCK"; + exports[1016] = "ER_CANT_OPEN_FILE"; + exports[1017] = "ER_FILE_NOT_FOUND"; + exports[1018] = "ER_CANT_READ_DIR"; + exports[1019] = "ER_CANT_SET_WD"; + exports[1020] = "ER_CHECKREAD"; + exports[1021] = "ER_DISK_FULL"; + exports[1022] = "ER_DUP_KEY"; + exports[1023] = "ER_ERROR_ON_CLOSE"; + exports[1024] = "ER_ERROR_ON_READ"; + exports[1025] = "ER_ERROR_ON_RENAME"; + exports[1026] = "ER_ERROR_ON_WRITE"; + exports[1027] = "ER_FILE_USED"; + exports[1028] = "ER_FILSORT_ABORT"; + exports[1029] = "ER_FORM_NOT_FOUND"; + exports[1030] = "ER_GET_ERRNO"; + exports[1031] = "ER_ILLEGAL_HA"; + exports[1032] = "ER_KEY_NOT_FOUND"; + exports[1033] = "ER_NOT_FORM_FILE"; + exports[1034] = "ER_NOT_KEYFILE"; + exports[1035] = "ER_OLD_KEYFILE"; + exports[1036] = "ER_OPEN_AS_READONLY"; + exports[1037] = "ER_OUTOFMEMORY"; + exports[1038] = "ER_OUT_OF_SORTMEMORY"; + exports[1039] = "ER_UNEXPECTED_EOF"; + exports[1040] = "ER_CON_COUNT_ERROR"; + exports[1041] = "ER_OUT_OF_RESOURCES"; + exports[1042] = "ER_BAD_HOST_ERROR"; + exports[1043] = "ER_HANDSHAKE_ERROR"; + exports[1044] = "ER_DBACCESS_DENIED_ERROR"; + exports[1045] = "ER_ACCESS_DENIED_ERROR"; + exports[1046] = "ER_NO_DB_ERROR"; + exports[1047] = "ER_UNKNOWN_COM_ERROR"; + exports[1048] = "ER_BAD_NULL_ERROR"; + exports[1049] = "ER_BAD_DB_ERROR"; + exports[1050] = "ER_TABLE_EXISTS_ERROR"; + exports[1051] = "ER_BAD_TABLE_ERROR"; + exports[1052] = "ER_NON_UNIQ_ERROR"; + exports[1053] = "ER_SERVER_SHUTDOWN"; + exports[1054] = "ER_BAD_FIELD_ERROR"; + exports[1055] = "ER_WRONG_FIELD_WITH_GROUP"; + exports[1056] = "ER_WRONG_GROUP_FIELD"; + exports[1057] = "ER_WRONG_SUM_SELECT"; + exports[1058] = "ER_WRONG_VALUE_COUNT"; + exports[1059] = "ER_TOO_LONG_IDENT"; + exports[1060] = "ER_DUP_FIELDNAME"; + exports[1061] = "ER_DUP_KEYNAME"; + exports[1062] = "ER_DUP_ENTRY"; + exports[1063] = "ER_WRONG_FIELD_SPEC"; + exports[1064] = "ER_PARSE_ERROR"; + exports[1065] = "ER_EMPTY_QUERY"; + exports[1066] = "ER_NONUNIQ_TABLE"; + exports[1067] = "ER_INVALID_DEFAULT"; + exports[1068] = "ER_MULTIPLE_PRI_KEY"; + exports[1069] = "ER_TOO_MANY_KEYS"; + exports[1070] = "ER_TOO_MANY_KEY_PARTS"; + exports[1071] = "ER_TOO_LONG_KEY"; + exports[1072] = "ER_KEY_COLUMN_DOES_NOT_EXITS"; + exports[1073] = "ER_BLOB_USED_AS_KEY"; + exports[1074] = "ER_TOO_BIG_FIELDLENGTH"; + exports[1075] = "ER_WRONG_AUTO_KEY"; + exports[1076] = "ER_READY"; + exports[1077] = "ER_NORMAL_SHUTDOWN"; + exports[1078] = "ER_GOT_SIGNAL"; + exports[1079] = "ER_SHUTDOWN_COMPLETE"; + exports[1080] = "ER_FORCING_CLOSE"; + exports[1081] = "ER_IPSOCK_ERROR"; + exports[1082] = "ER_NO_SUCH_INDEX"; + exports[1083] = "ER_WRONG_FIELD_TERMINATORS"; + exports[1084] = "ER_BLOBS_AND_NO_TERMINATED"; + exports[1085] = "ER_TEXTFILE_NOT_READABLE"; + exports[1086] = "ER_FILE_EXISTS_ERROR"; + exports[1087] = "ER_LOAD_INFO"; + exports[1088] = "ER_ALTER_INFO"; + exports[1089] = "ER_WRONG_SUB_KEY"; + exports[1090] = "ER_CANT_REMOVE_ALL_FIELDS"; + exports[1091] = "ER_CANT_DROP_FIELD_OR_KEY"; + exports[1092] = "ER_INSERT_INFO"; + exports[1093] = "ER_UPDATE_TABLE_USED"; + exports[1094] = "ER_NO_SUCH_THREAD"; + exports[1095] = "ER_KILL_DENIED_ERROR"; + exports[1096] = "ER_NO_TABLES_USED"; + exports[1097] = "ER_TOO_BIG_SET"; + exports[1098] = "ER_NO_UNIQUE_LOGFILE"; + exports[1099] = "ER_TABLE_NOT_LOCKED_FOR_WRITE"; + exports[1100] = "ER_TABLE_NOT_LOCKED"; + exports[1101] = "ER_BLOB_CANT_HAVE_DEFAULT"; + exports[1102] = "ER_WRONG_DB_NAME"; + exports[1103] = "ER_WRONG_TABLE_NAME"; + exports[1104] = "ER_TOO_BIG_SELECT"; + exports[1105] = "ER_UNKNOWN_ERROR"; + exports[1106] = "ER_UNKNOWN_PROCEDURE"; + exports[1107] = "ER_WRONG_PARAMCOUNT_TO_PROCEDURE"; + exports[1108] = "ER_WRONG_PARAMETERS_TO_PROCEDURE"; + exports[1109] = "ER_UNKNOWN_TABLE"; + exports[1110] = "ER_FIELD_SPECIFIED_TWICE"; + exports[1111] = "ER_INVALID_GROUP_FUNC_USE"; + exports[1112] = "ER_UNSUPPORTED_EXTENSION"; + exports[1113] = "ER_TABLE_MUST_HAVE_COLUMNS"; + exports[1114] = "ER_RECORD_FILE_FULL"; + exports[1115] = "ER_UNKNOWN_CHARACTER_SET"; + exports[1116] = "ER_TOO_MANY_TABLES"; + exports[1117] = "ER_TOO_MANY_FIELDS"; + exports[1118] = "ER_TOO_BIG_ROWSIZE"; + exports[1119] = "ER_STACK_OVERRUN"; + exports[1120] = "ER_WRONG_OUTER_JOIN"; + exports[1121] = "ER_NULL_COLUMN_IN_INDEX"; + exports[1122] = "ER_CANT_FIND_UDF"; + exports[1123] = "ER_CANT_INITIALIZE_UDF"; + exports[1124] = "ER_UDF_NO_PATHS"; + exports[1125] = "ER_UDF_EXISTS"; + exports[1126] = "ER_CANT_OPEN_LIBRARY"; + exports[1127] = "ER_CANT_FIND_DL_ENTRY"; + exports[1128] = "ER_FUNCTION_NOT_DEFINED"; + exports[1129] = "ER_HOST_IS_BLOCKED"; + exports[1130] = "ER_HOST_NOT_PRIVILEGED"; + exports[1131] = "ER_PASSWORD_ANONYMOUS_USER"; + exports[1132] = "ER_PASSWORD_NOT_ALLOWED"; + exports[1133] = "ER_PASSWORD_NO_MATCH"; + exports[1134] = "ER_UPDATE_INFO"; + exports[1135] = "ER_CANT_CREATE_THREAD"; + exports[1136] = "ER_WRONG_VALUE_COUNT_ON_ROW"; + exports[1137] = "ER_CANT_REOPEN_TABLE"; + exports[1138] = "ER_INVALID_USE_OF_NULL"; + exports[1139] = "ER_REGEXP_ERROR"; + exports[1140] = "ER_MIX_OF_GROUP_FUNC_AND_FIELDS"; + exports[1141] = "ER_NONEXISTING_GRANT"; + exports[1142] = "ER_TABLEACCESS_DENIED_ERROR"; + exports[1143] = "ER_COLUMNACCESS_DENIED_ERROR"; + exports[1144] = "ER_ILLEGAL_GRANT_FOR_TABLE"; + exports[1145] = "ER_GRANT_WRONG_HOST_OR_USER"; + exports[1146] = "ER_NO_SUCH_TABLE"; + exports[1147] = "ER_NONEXISTING_TABLE_GRANT"; + exports[1148] = "ER_NOT_ALLOWED_COMMAND"; + exports[1149] = "ER_SYNTAX_ERROR"; + exports[1150] = "ER_DELAYED_CANT_CHANGE_LOCK"; + exports[1151] = "ER_TOO_MANY_DELAYED_THREADS"; + exports[1152] = "ER_ABORTING_CONNECTION"; + exports[1153] = "ER_NET_PACKET_TOO_LARGE"; + exports[1154] = "ER_NET_READ_ERROR_FROM_PIPE"; + exports[1155] = "ER_NET_FCNTL_ERROR"; + exports[1156] = "ER_NET_PACKETS_OUT_OF_ORDER"; + exports[1157] = "ER_NET_UNCOMPRESS_ERROR"; + exports[1158] = "ER_NET_READ_ERROR"; + exports[1159] = "ER_NET_READ_INTERRUPTED"; + exports[1160] = "ER_NET_ERROR_ON_WRITE"; + exports[1161] = "ER_NET_WRITE_INTERRUPTED"; + exports[1162] = "ER_TOO_LONG_STRING"; + exports[1163] = "ER_TABLE_CANT_HANDLE_BLOB"; + exports[1164] = "ER_TABLE_CANT_HANDLE_AUTO_INCREMENT"; + exports[1165] = "ER_DELAYED_INSERT_TABLE_LOCKED"; + exports[1166] = "ER_WRONG_COLUMN_NAME"; + exports[1167] = "ER_WRONG_KEY_COLUMN"; + exports[1168] = "ER_WRONG_MRG_TABLE"; + exports[1169] = "ER_DUP_UNIQUE"; + exports[1170] = "ER_BLOB_KEY_WITHOUT_LENGTH"; + exports[1171] = "ER_PRIMARY_CANT_HAVE_NULL"; + exports[1172] = "ER_TOO_MANY_ROWS"; + exports[1173] = "ER_REQUIRES_PRIMARY_KEY"; + exports[1174] = "ER_NO_RAID_COMPILED"; + exports[1175] = "ER_UPDATE_WITHOUT_KEY_IN_SAFE_MODE"; + exports[1176] = "ER_KEY_DOES_NOT_EXITS"; + exports[1177] = "ER_CHECK_NO_SUCH_TABLE"; + exports[1178] = "ER_CHECK_NOT_IMPLEMENTED"; + exports[1179] = "ER_CANT_DO_THIS_DURING_AN_TRANSACTION"; + exports[1180] = "ER_ERROR_DURING_COMMIT"; + exports[1181] = "ER_ERROR_DURING_ROLLBACK"; + exports[1182] = "ER_ERROR_DURING_FLUSH_LOGS"; + exports[1183] = "ER_ERROR_DURING_CHECKPOINT"; + exports[1184] = "ER_NEW_ABORTING_CONNECTION"; + exports[1185] = "ER_DUMP_NOT_IMPLEMENTED"; + exports[1186] = "ER_FLUSH_MASTER_BINLOG_CLOSED"; + exports[1187] = "ER_INDEX_REBUILD"; + exports[1188] = "ER_MASTER"; + exports[1189] = "ER_MASTER_NET_READ"; + exports[1190] = "ER_MASTER_NET_WRITE"; + exports[1191] = "ER_FT_MATCHING_KEY_NOT_FOUND"; + exports[1192] = "ER_LOCK_OR_ACTIVE_TRANSACTION"; + exports[1193] = "ER_UNKNOWN_SYSTEM_VARIABLE"; + exports[1194] = "ER_CRASHED_ON_USAGE"; + exports[1195] = "ER_CRASHED_ON_REPAIR"; + exports[1196] = "ER_WARNING_NOT_COMPLETE_ROLLBACK"; + exports[1197] = "ER_TRANS_CACHE_FULL"; + exports[1198] = "ER_SLAVE_MUST_STOP"; + exports[1199] = "ER_SLAVE_NOT_RUNNING"; + exports[1200] = "ER_BAD_SLAVE"; + exports[1201] = "ER_MASTER_INFO"; + exports[1202] = "ER_SLAVE_THREAD"; + exports[1203] = "ER_TOO_MANY_USER_CONNECTIONS"; + exports[1204] = "ER_SET_CONSTANTS_ONLY"; + exports[1205] = "ER_LOCK_WAIT_TIMEOUT"; + exports[1206] = "ER_LOCK_TABLE_FULL"; + exports[1207] = "ER_READ_ONLY_TRANSACTION"; + exports[1208] = "ER_DROP_DB_WITH_READ_LOCK"; + exports[1209] = "ER_CREATE_DB_WITH_READ_LOCK"; + exports[1210] = "ER_WRONG_ARGUMENTS"; + exports[1211] = "ER_NO_PERMISSION_TO_CREATE_USER"; + exports[1212] = "ER_UNION_TABLES_IN_DIFFERENT_DIR"; + exports[1213] = "ER_LOCK_DEADLOCK"; + exports[1214] = "ER_TABLE_CANT_HANDLE_FT"; + exports[1215] = "ER_CANNOT_ADD_FOREIGN"; + exports[1216] = "ER_NO_REFERENCED_ROW"; + exports[1217] = "ER_ROW_IS_REFERENCED"; + exports[1218] = "ER_CONNECT_TO_MASTER"; + exports[1219] = "ER_QUERY_ON_MASTER"; + exports[1220] = "ER_ERROR_WHEN_EXECUTING_COMMAND"; + exports[1221] = "ER_WRONG_USAGE"; + exports[1222] = "ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT"; + exports[1223] = "ER_CANT_UPDATE_WITH_READLOCK"; + exports[1224] = "ER_MIXING_NOT_ALLOWED"; + exports[1225] = "ER_DUP_ARGUMENT"; + exports[1226] = "ER_USER_LIMIT_REACHED"; + exports[1227] = "ER_SPECIFIC_ACCESS_DENIED_ERROR"; + exports[1228] = "ER_LOCAL_VARIABLE"; + exports[1229] = "ER_GLOBAL_VARIABLE"; + exports[1230] = "ER_NO_DEFAULT"; + exports[1231] = "ER_WRONG_VALUE_FOR_VAR"; + exports[1232] = "ER_WRONG_TYPE_FOR_VAR"; + exports[1233] = "ER_VAR_CANT_BE_READ"; + exports[1234] = "ER_CANT_USE_OPTION_HERE"; + exports[1235] = "ER_NOT_SUPPORTED_YET"; + exports[1236] = "ER_MASTER_FATAL_ERROR_READING_BINLOG"; + exports[1237] = "ER_SLAVE_IGNORED_TABLE"; + exports[1238] = "ER_INCORRECT_GLOBAL_LOCAL_VAR"; + exports[1239] = "ER_WRONG_FK_DEF"; + exports[1240] = "ER_KEY_REF_DO_NOT_MATCH_TABLE_REF"; + exports[1241] = "ER_OPERAND_COLUMNS"; + exports[1242] = "ER_SUBQUERY_NO_1_ROW"; + exports[1243] = "ER_UNKNOWN_STMT_HANDLER"; + exports[1244] = "ER_CORRUPT_HELP_DB"; + exports[1245] = "ER_CYCLIC_REFERENCE"; + exports[1246] = "ER_AUTO_CONVERT"; + exports[1247] = "ER_ILLEGAL_REFERENCE"; + exports[1248] = "ER_DERIVED_MUST_HAVE_ALIAS"; + exports[1249] = "ER_SELECT_REDUCED"; + exports[1250] = "ER_TABLENAME_NOT_ALLOWED_HERE"; + exports[1251] = "ER_NOT_SUPPORTED_AUTH_MODE"; + exports[1252] = "ER_SPATIAL_CANT_HAVE_NULL"; + exports[1253] = "ER_COLLATION_CHARSET_MISMATCH"; + exports[1254] = "ER_SLAVE_WAS_RUNNING"; + exports[1255] = "ER_SLAVE_WAS_NOT_RUNNING"; + exports[1256] = "ER_TOO_BIG_FOR_UNCOMPRESS"; + exports[1257] = "ER_ZLIB_Z_MEM_ERROR"; + exports[1258] = "ER_ZLIB_Z_BUF_ERROR"; + exports[1259] = "ER_ZLIB_Z_DATA_ERROR"; + exports[1260] = "ER_CUT_VALUE_GROUP_CONCAT"; + exports[1261] = "ER_WARN_TOO_FEW_RECORDS"; + exports[1262] = "ER_WARN_TOO_MANY_RECORDS"; + exports[1263] = "ER_WARN_NULL_TO_NOTNULL"; + exports[1264] = "ER_WARN_DATA_OUT_OF_RANGE"; + exports[1265] = "WARN_DATA_TRUNCATED"; + exports[1266] = "ER_WARN_USING_OTHER_HANDLER"; + exports[1267] = "ER_CANT_AGGREGATE_2COLLATIONS"; + exports[1268] = "ER_DROP_USER"; + exports[1269] = "ER_REVOKE_GRANTS"; + exports[1270] = "ER_CANT_AGGREGATE_3COLLATIONS"; + exports[1271] = "ER_CANT_AGGREGATE_NCOLLATIONS"; + exports[1272] = "ER_VARIABLE_IS_NOT_STRUCT"; + exports[1273] = "ER_UNKNOWN_COLLATION"; + exports[1274] = "ER_SLAVE_IGNORED_SSL_PARAMS"; + exports[1275] = "ER_SERVER_IS_IN_SECURE_AUTH_MODE"; + exports[1276] = "ER_WARN_FIELD_RESOLVED"; + exports[1277] = "ER_BAD_SLAVE_UNTIL_COND"; + exports[1278] = "ER_MISSING_SKIP_SLAVE"; + exports[1279] = "ER_UNTIL_COND_IGNORED"; + exports[1280] = "ER_WRONG_NAME_FOR_INDEX"; + exports[1281] = "ER_WRONG_NAME_FOR_CATALOG"; + exports[1282] = "ER_WARN_QC_RESIZE"; + exports[1283] = "ER_BAD_FT_COLUMN"; + exports[1284] = "ER_UNKNOWN_KEY_CACHE"; + exports[1285] = "ER_WARN_HOSTNAME_WONT_WORK"; + exports[1286] = "ER_UNKNOWN_STORAGE_ENGINE"; + exports[1287] = "ER_WARN_DEPRECATED_SYNTAX"; + exports[1288] = "ER_NON_UPDATABLE_TABLE"; + exports[1289] = "ER_FEATURE_DISABLED"; + exports[1290] = "ER_OPTION_PREVENTS_STATEMENT"; + exports[1291] = "ER_DUPLICATED_VALUE_IN_TYPE"; + exports[1292] = "ER_TRUNCATED_WRONG_VALUE"; + exports[1293] = "ER_TOO_MUCH_AUTO_TIMESTAMP_COLS"; + exports[1294] = "ER_INVALID_ON_UPDATE"; + exports[1295] = "ER_UNSUPPORTED_PS"; + exports[1296] = "ER_GET_ERRMSG"; + exports[1297] = "ER_GET_TEMPORARY_ERRMSG"; + exports[1298] = "ER_UNKNOWN_TIME_ZONE"; + exports[1299] = "ER_WARN_INVALID_TIMESTAMP"; + exports[1300] = "ER_INVALID_CHARACTER_STRING"; + exports[1301] = "ER_WARN_ALLOWED_PACKET_OVERFLOWED"; + exports[1302] = "ER_CONFLICTING_DECLARATIONS"; + exports[1303] = "ER_SP_NO_RECURSIVE_CREATE"; + exports[1304] = "ER_SP_ALREADY_EXISTS"; + exports[1305] = "ER_SP_DOES_NOT_EXIST"; + exports[1306] = "ER_SP_DROP_FAILED"; + exports[1307] = "ER_SP_STORE_FAILED"; + exports[1308] = "ER_SP_LILABEL_MISMATCH"; + exports[1309] = "ER_SP_LABEL_REDEFINE"; + exports[1310] = "ER_SP_LABEL_MISMATCH"; + exports[1311] = "ER_SP_UNINIT_VAR"; + exports[1312] = "ER_SP_BADSELECT"; + exports[1313] = "ER_SP_BADRETURN"; + exports[1314] = "ER_SP_BADSTATEMENT"; + exports[1315] = "ER_UPDATE_LOG_DEPRECATED_IGNORED"; + exports[1316] = "ER_UPDATE_LOG_DEPRECATED_TRANSLATED"; + exports[1317] = "ER_QUERY_INTERRUPTED"; + exports[1318] = "ER_SP_WRONG_NO_OF_ARGS"; + exports[1319] = "ER_SP_COND_MISMATCH"; + exports[1320] = "ER_SP_NORETURN"; + exports[1321] = "ER_SP_NORETURNEND"; + exports[1322] = "ER_SP_BAD_CURSOR_QUERY"; + exports[1323] = "ER_SP_BAD_CURSOR_SELECT"; + exports[1324] = "ER_SP_CURSOR_MISMATCH"; + exports[1325] = "ER_SP_CURSOR_ALREADY_OPEN"; + exports[1326] = "ER_SP_CURSOR_NOT_OPEN"; + exports[1327] = "ER_SP_UNDECLARED_VAR"; + exports[1328] = "ER_SP_WRONG_NO_OF_FETCH_ARGS"; + exports[1329] = "ER_SP_FETCH_NO_DATA"; + exports[1330] = "ER_SP_DUP_PARAM"; + exports[1331] = "ER_SP_DUP_VAR"; + exports[1332] = "ER_SP_DUP_COND"; + exports[1333] = "ER_SP_DUP_CURS"; + exports[1334] = "ER_SP_CANT_ALTER"; + exports[1335] = "ER_SP_SUBSELECT_NYI"; + exports[1336] = "ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG"; + exports[1337] = "ER_SP_VARCOND_AFTER_CURSHNDLR"; + exports[1338] = "ER_SP_CURSOR_AFTER_HANDLER"; + exports[1339] = "ER_SP_CASE_NOT_FOUND"; + exports[1340] = "ER_FPARSER_TOO_BIG_FILE"; + exports[1341] = "ER_FPARSER_BAD_HEADER"; + exports[1342] = "ER_FPARSER_EOF_IN_COMMENT"; + exports[1343] = "ER_FPARSER_ERROR_IN_PARAMETER"; + exports[1344] = "ER_FPARSER_EOF_IN_UNKNOWN_PARAMETER"; + exports[1345] = "ER_VIEW_NO_EXPLAIN"; + exports[1346] = "ER_FRM_UNKNOWN_TYPE"; + exports[1347] = "ER_WRONG_OBJECT"; + exports[1348] = "ER_NONUPDATEABLE_COLUMN"; + exports[1349] = "ER_VIEW_SELECT_DERIVED"; + exports[1350] = "ER_VIEW_SELECT_CLAUSE"; + exports[1351] = "ER_VIEW_SELECT_VARIABLE"; + exports[1352] = "ER_VIEW_SELECT_TMPTABLE"; + exports[1353] = "ER_VIEW_WRONG_LIST"; + exports[1354] = "ER_WARN_VIEW_MERGE"; + exports[1355] = "ER_WARN_VIEW_WITHOUT_KEY"; + exports[1356] = "ER_VIEW_INVALID"; + exports[1357] = "ER_SP_NO_DROP_SP"; + exports[1358] = "ER_SP_GOTO_IN_HNDLR"; + exports[1359] = "ER_TRG_ALREADY_EXISTS"; + exports[1360] = "ER_TRG_DOES_NOT_EXIST"; + exports[1361] = "ER_TRG_ON_VIEW_OR_TEMP_TABLE"; + exports[1362] = "ER_TRG_CANT_CHANGE_ROW"; + exports[1363] = "ER_TRG_NO_SUCH_ROW_IN_TRG"; + exports[1364] = "ER_NO_DEFAULT_FOR_FIELD"; + exports[1365] = "ER_DIVISION_BY_ZERO"; + exports[1366] = "ER_TRUNCATED_WRONG_VALUE_FOR_FIELD"; + exports[1367] = "ER_ILLEGAL_VALUE_FOR_TYPE"; + exports[1368] = "ER_VIEW_NONUPD_CHECK"; + exports[1369] = "ER_VIEW_CHECK_FAILED"; + exports[1370] = "ER_PROCACCESS_DENIED_ERROR"; + exports[1371] = "ER_RELAY_LOG_FAIL"; + exports[1372] = "ER_PASSWD_LENGTH"; + exports[1373] = "ER_UNKNOWN_TARGET_BINLOG"; + exports[1374] = "ER_IO_ERR_LOG_INDEX_READ"; + exports[1375] = "ER_BINLOG_PURGE_PROHIBITED"; + exports[1376] = "ER_FSEEK_FAIL"; + exports[1377] = "ER_BINLOG_PURGE_FATAL_ERR"; + exports[1378] = "ER_LOG_IN_USE"; + exports[1379] = "ER_LOG_PURGE_UNKNOWN_ERR"; + exports[1380] = "ER_RELAY_LOG_INIT"; + exports[1381] = "ER_NO_BINARY_LOGGING"; + exports[1382] = "ER_RESERVED_SYNTAX"; + exports[1383] = "ER_WSAS_FAILED"; + exports[1384] = "ER_DIFF_GROUPS_PROC"; + exports[1385] = "ER_NO_GROUP_FOR_PROC"; + exports[1386] = "ER_ORDER_WITH_PROC"; + exports[1387] = "ER_LOGGING_PROHIBIT_CHANGING_OF"; + exports[1388] = "ER_NO_FILE_MAPPING"; + exports[1389] = "ER_WRONG_MAGIC"; + exports[1390] = "ER_PS_MANY_PARAM"; + exports[1391] = "ER_KEY_PART_0"; + exports[1392] = "ER_VIEW_CHECKSUM"; + exports[1393] = "ER_VIEW_MULTIUPDATE"; + exports[1394] = "ER_VIEW_NO_INSERT_FIELD_LIST"; + exports[1395] = "ER_VIEW_DELETE_MERGE_VIEW"; + exports[1396] = "ER_CANNOT_USER"; + exports[1397] = "ER_XAER_NOTA"; + exports[1398] = "ER_XAER_INVAL"; + exports[1399] = "ER_XAER_RMFAIL"; + exports[1400] = "ER_XAER_OUTSIDE"; + exports[1401] = "ER_XAER_RMERR"; + exports[1402] = "ER_XA_RBROLLBACK"; + exports[1403] = "ER_NONEXISTING_PROC_GRANT"; + exports[1404] = "ER_PROC_AUTO_GRANT_FAIL"; + exports[1405] = "ER_PROC_AUTO_REVOKE_FAIL"; + exports[1406] = "ER_DATA_TOO_LONG"; + exports[1407] = "ER_SP_BAD_SQLSTATE"; + exports[1408] = "ER_STARTUP"; + exports[1409] = "ER_LOAD_FROM_FIXED_SIZE_ROWS_TO_VAR"; + exports[1410] = "ER_CANT_CREATE_USER_WITH_GRANT"; + exports[1411] = "ER_WRONG_VALUE_FOR_TYPE"; + exports[1412] = "ER_TABLE_DEF_CHANGED"; + exports[1413] = "ER_SP_DUP_HANDLER"; + exports[1414] = "ER_SP_NOT_VAR_ARG"; + exports[1415] = "ER_SP_NO_RETSET"; + exports[1416] = "ER_CANT_CREATE_GEOMETRY_OBJECT"; + exports[1417] = "ER_FAILED_ROUTINE_BREAK_BINLOG"; + exports[1418] = "ER_BINLOG_UNSAFE_ROUTINE"; + exports[1419] = "ER_BINLOG_CREATE_ROUTINE_NEED_SUPER"; + exports[1420] = "ER_EXEC_STMT_WITH_OPEN_CURSOR"; + exports[1421] = "ER_STMT_HAS_NO_OPEN_CURSOR"; + exports[1422] = "ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG"; + exports[1423] = "ER_NO_DEFAULT_FOR_VIEW_FIELD"; + exports[1424] = "ER_SP_NO_RECURSION"; + exports[1425] = "ER_TOO_BIG_SCALE"; + exports[1426] = "ER_TOO_BIG_PRECISION"; + exports[1427] = "ER_M_BIGGER_THAN_D"; + exports[1428] = "ER_WRONG_LOCK_OF_SYSTEM_TABLE"; + exports[1429] = "ER_CONNECT_TO_FOREIGN_DATA_SOURCE"; + exports[1430] = "ER_QUERY_ON_FOREIGN_DATA_SOURCE"; + exports[1431] = "ER_FOREIGN_DATA_SOURCE_DOESNT_EXIST"; + exports[1432] = "ER_FOREIGN_DATA_STRING_INVALID_CANT_CREATE"; + exports[1433] = "ER_FOREIGN_DATA_STRING_INVALID"; + exports[1434] = "ER_CANT_CREATE_FEDERATED_TABLE"; + exports[1435] = "ER_TRG_IN_WRONG_SCHEMA"; + exports[1436] = "ER_STACK_OVERRUN_NEED_MORE"; + exports[1437] = "ER_TOO_LONG_BODY"; + exports[1438] = "ER_WARN_CANT_DROP_DEFAULT_KEYCACHE"; + exports[1439] = "ER_TOO_BIG_DISPLAYWIDTH"; + exports[1440] = "ER_XAER_DUPID"; + exports[1441] = "ER_DATETIME_FUNCTION_OVERFLOW"; + exports[1442] = "ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG"; + exports[1443] = "ER_VIEW_PREVENT_UPDATE"; + exports[1444] = "ER_PS_NO_RECURSION"; + exports[1445] = "ER_SP_CANT_SET_AUTOCOMMIT"; + exports[1446] = "ER_MALFORMED_DEFINER"; + exports[1447] = "ER_VIEW_FRM_NO_USER"; + exports[1448] = "ER_VIEW_OTHER_USER"; + exports[1449] = "ER_NO_SUCH_USER"; + exports[1450] = "ER_FORBID_SCHEMA_CHANGE"; + exports[1451] = "ER_ROW_IS_REFERENCED_2"; + exports[1452] = "ER_NO_REFERENCED_ROW_2"; + exports[1453] = "ER_SP_BAD_VAR_SHADOW"; + exports[1454] = "ER_TRG_NO_DEFINER"; + exports[1455] = "ER_OLD_FILE_FORMAT"; + exports[1456] = "ER_SP_RECURSION_LIMIT"; + exports[1457] = "ER_SP_PROC_TABLE_CORRUPT"; + exports[1458] = "ER_SP_WRONG_NAME"; + exports[1459] = "ER_TABLE_NEEDS_UPGRADE"; + exports[1460] = "ER_SP_NO_AGGREGATE"; + exports[1461] = "ER_MAX_PREPARED_STMT_COUNT_REACHED"; + exports[1462] = "ER_VIEW_RECURSIVE"; + exports[1463] = "ER_NON_GROUPING_FIELD_USED"; + exports[1464] = "ER_TABLE_CANT_HANDLE_SPKEYS"; + exports[1465] = "ER_NO_TRIGGERS_ON_SYSTEM_SCHEMA"; + exports[1466] = "ER_REMOVED_SPACES"; + exports[1467] = "ER_AUTOINC_READ_FAILED"; + exports[1468] = "ER_USERNAME"; + exports[1469] = "ER_HOSTNAME"; + exports[1470] = "ER_WRONG_STRING_LENGTH"; + exports[1471] = "ER_NON_INSERTABLE_TABLE"; + exports[1472] = "ER_ADMIN_WRONG_MRG_TABLE"; + exports[1473] = "ER_TOO_HIGH_LEVEL_OF_NESTING_FOR_SELECT"; + exports[1474] = "ER_NAME_BECOMES_EMPTY"; + exports[1475] = "ER_AMBIGUOUS_FIELD_TERM"; + exports[1476] = "ER_FOREIGN_SERVER_EXISTS"; + exports[1477] = "ER_FOREIGN_SERVER_DOESNT_EXIST"; + exports[1478] = "ER_ILLEGAL_HA_CREATE_OPTION"; + exports[1479] = "ER_PARTITION_REQUIRES_VALUES_ERROR"; + exports[1480] = "ER_PARTITION_WRONG_VALUES_ERROR"; + exports[1481] = "ER_PARTITION_MAXVALUE_ERROR"; + exports[1482] = "ER_PARTITION_SUBPARTITION_ERROR"; + exports[1483] = "ER_PARTITION_SUBPART_MIX_ERROR"; + exports[1484] = "ER_PARTITION_WRONG_NO_PART_ERROR"; + exports[1485] = "ER_PARTITION_WRONG_NO_SUBPART_ERROR"; + exports[1486] = "ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR"; + exports[1487] = "ER_NO_CONST_EXPR_IN_RANGE_OR_LIST_ERROR"; + exports[1488] = "ER_FIELD_NOT_FOUND_PART_ERROR"; + exports[1489] = "ER_LIST_OF_FIELDS_ONLY_IN_HASH_ERROR"; + exports[1490] = "ER_INCONSISTENT_PARTITION_INFO_ERROR"; + exports[1491] = "ER_PARTITION_FUNC_NOT_ALLOWED_ERROR"; + exports[1492] = "ER_PARTITIONS_MUST_BE_DEFINED_ERROR"; + exports[1493] = "ER_RANGE_NOT_INCREASING_ERROR"; + exports[1494] = "ER_INCONSISTENT_TYPE_OF_FUNCTIONS_ERROR"; + exports[1495] = "ER_MULTIPLE_DEF_CONST_IN_LIST_PART_ERROR"; + exports[1496] = "ER_PARTITION_ENTRY_ERROR"; + exports[1497] = "ER_MIX_HANDLER_ERROR"; + exports[1498] = "ER_PARTITION_NOT_DEFINED_ERROR"; + exports[1499] = "ER_TOO_MANY_PARTITIONS_ERROR"; + exports[1500] = "ER_SUBPARTITION_ERROR"; + exports[1501] = "ER_CANT_CREATE_HANDLER_FILE"; + exports[1502] = "ER_BLOB_FIELD_IN_PART_FUNC_ERROR"; + exports[1503] = "ER_UNIQUE_KEY_NEED_ALL_FIELDS_IN_PF"; + exports[1504] = "ER_NO_PARTS_ERROR"; + exports[1505] = "ER_PARTITION_MGMT_ON_NONPARTITIONED"; + exports[1506] = "ER_FOREIGN_KEY_ON_PARTITIONED"; + exports[1507] = "ER_DROP_PARTITION_NON_EXISTENT"; + exports[1508] = "ER_DROP_LAST_PARTITION"; + exports[1509] = "ER_COALESCE_ONLY_ON_HASH_PARTITION"; + exports[1510] = "ER_REORG_HASH_ONLY_ON_SAME_NO"; + exports[1511] = "ER_REORG_NO_PARAM_ERROR"; + exports[1512] = "ER_ONLY_ON_RANGE_LIST_PARTITION"; + exports[1513] = "ER_ADD_PARTITION_SUBPART_ERROR"; + exports[1514] = "ER_ADD_PARTITION_NO_NEW_PARTITION"; + exports[1515] = "ER_COALESCE_PARTITION_NO_PARTITION"; + exports[1516] = "ER_REORG_PARTITION_NOT_EXIST"; + exports[1517] = "ER_SAME_NAME_PARTITION"; + exports[1518] = "ER_NO_BINLOG_ERROR"; + exports[1519] = "ER_CONSECUTIVE_REORG_PARTITIONS"; + exports[1520] = "ER_REORG_OUTSIDE_RANGE"; + exports[1521] = "ER_PARTITION_FUNCTION_FAILURE"; + exports[1522] = "ER_PART_STATE_ERROR"; + exports[1523] = "ER_LIMITED_PART_RANGE"; + exports[1524] = "ER_PLUGIN_IS_NOT_LOADED"; + exports[1525] = "ER_WRONG_VALUE"; + exports[1526] = "ER_NO_PARTITION_FOR_GIVEN_VALUE"; + exports[1527] = "ER_FILEGROUP_OPTION_ONLY_ONCE"; + exports[1528] = "ER_CREATE_FILEGROUP_FAILED"; + exports[1529] = "ER_DROP_FILEGROUP_FAILED"; + exports[1530] = "ER_TABLESPACE_AUTO_EXTEND_ERROR"; + exports[1531] = "ER_WRONG_SIZE_NUMBER"; + exports[1532] = "ER_SIZE_OVERFLOW_ERROR"; + exports[1533] = "ER_ALTER_FILEGROUP_FAILED"; + exports[1534] = "ER_BINLOG_ROW_LOGGING_FAILED"; + exports[1535] = "ER_BINLOG_ROW_WRONG_TABLE_DEF"; + exports[1536] = "ER_BINLOG_ROW_RBR_TO_SBR"; + exports[1537] = "ER_EVENT_ALREADY_EXISTS"; + exports[1538] = "ER_EVENT_STORE_FAILED"; + exports[1539] = "ER_EVENT_DOES_NOT_EXIST"; + exports[1540] = "ER_EVENT_CANT_ALTER"; + exports[1541] = "ER_EVENT_DROP_FAILED"; + exports[1542] = "ER_EVENT_INTERVAL_NOT_POSITIVE_OR_TOO_BIG"; + exports[1543] = "ER_EVENT_ENDS_BEFORE_STARTS"; + exports[1544] = "ER_EVENT_EXEC_TIME_IN_THE_PAST"; + exports[1545] = "ER_EVENT_OPEN_TABLE_FAILED"; + exports[1546] = "ER_EVENT_NEITHER_M_EXPR_NOR_M_AT"; + exports[1547] = "ER_COL_COUNT_DOESNT_MATCH_CORRUPTED"; + exports[1548] = "ER_CANNOT_LOAD_FROM_TABLE"; + exports[1549] = "ER_EVENT_CANNOT_DELETE"; + exports[1550] = "ER_EVENT_COMPILE_ERROR"; + exports[1551] = "ER_EVENT_SAME_NAME"; + exports[1552] = "ER_EVENT_DATA_TOO_LONG"; + exports[1553] = "ER_DROP_INDEX_FK"; + exports[1554] = "ER_WARN_DEPRECATED_SYNTAX_WITH_VER"; + exports[1555] = "ER_CANT_WRITE_LOCK_LOG_TABLE"; + exports[1556] = "ER_CANT_LOCK_LOG_TABLE"; + exports[1557] = "ER_FOREIGN_DUPLICATE_KEY"; + exports[1558] = "ER_COL_COUNT_DOESNT_MATCH_PLEASE_UPDATE"; + exports[1559] = "ER_TEMP_TABLE_PREVENTS_SWITCH_OUT_OF_RBR"; + exports[1560] = "ER_STORED_FUNCTION_PREVENTS_SWITCH_BINLOG_FORMAT"; + exports[1561] = "ER_NDB_CANT_SWITCH_BINLOG_FORMAT"; + exports[1562] = "ER_PARTITION_NO_TEMPORARY"; + exports[1563] = "ER_PARTITION_CONST_DOMAIN_ERROR"; + exports[1564] = "ER_PARTITION_FUNCTION_IS_NOT_ALLOWED"; + exports[1565] = "ER_DDL_LOG_ERROR"; + exports[1566] = "ER_NULL_IN_VALUES_LESS_THAN"; + exports[1567] = "ER_WRONG_PARTITION_NAME"; + exports[1568] = "ER_CANT_CHANGE_TX_CHARACTERISTICS"; + exports[1569] = "ER_DUP_ENTRY_AUTOINCREMENT_CASE"; + exports[1570] = "ER_EVENT_MODIFY_QUEUE_ERROR"; + exports[1571] = "ER_EVENT_SET_VAR_ERROR"; + exports[1572] = "ER_PARTITION_MERGE_ERROR"; + exports[1573] = "ER_CANT_ACTIVATE_LOG"; + exports[1574] = "ER_RBR_NOT_AVAILABLE"; + exports[1575] = "ER_BASE64_DECODE_ERROR"; + exports[1576] = "ER_EVENT_RECURSION_FORBIDDEN"; + exports[1577] = "ER_EVENTS_DB_ERROR"; + exports[1578] = "ER_ONLY_INTEGERS_ALLOWED"; + exports[1579] = "ER_UNSUPORTED_LOG_ENGINE"; + exports[1580] = "ER_BAD_LOG_STATEMENT"; + exports[1581] = "ER_CANT_RENAME_LOG_TABLE"; + exports[1582] = "ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT"; + exports[1583] = "ER_WRONG_PARAMETERS_TO_NATIVE_FCT"; + exports[1584] = "ER_WRONG_PARAMETERS_TO_STORED_FCT"; + exports[1585] = "ER_NATIVE_FCT_NAME_COLLISION"; + exports[1586] = "ER_DUP_ENTRY_WITH_KEY_NAME"; + exports[1587] = "ER_BINLOG_PURGE_EMFILE"; + exports[1588] = "ER_EVENT_CANNOT_CREATE_IN_THE_PAST"; + exports[1589] = "ER_EVENT_CANNOT_ALTER_IN_THE_PAST"; + exports[1590] = "ER_SLAVE_INCIDENT"; + exports[1591] = "ER_NO_PARTITION_FOR_GIVEN_VALUE_SILENT"; + exports[1592] = "ER_BINLOG_UNSAFE_STATEMENT"; + exports[1593] = "ER_SLAVE_FATAL_ERROR"; + exports[1594] = "ER_SLAVE_RELAY_LOG_READ_FAILURE"; + exports[1595] = "ER_SLAVE_RELAY_LOG_WRITE_FAILURE"; + exports[1596] = "ER_SLAVE_CREATE_EVENT_FAILURE"; + exports[1597] = "ER_SLAVE_MASTER_COM_FAILURE"; + exports[1598] = "ER_BINLOG_LOGGING_IMPOSSIBLE"; + exports[1599] = "ER_VIEW_NO_CREATION_CTX"; + exports[1600] = "ER_VIEW_INVALID_CREATION_CTX"; + exports[1601] = "ER_SR_INVALID_CREATION_CTX"; + exports[1602] = "ER_TRG_CORRUPTED_FILE"; + exports[1603] = "ER_TRG_NO_CREATION_CTX"; + exports[1604] = "ER_TRG_INVALID_CREATION_CTX"; + exports[1605] = "ER_EVENT_INVALID_CREATION_CTX"; + exports[1606] = "ER_TRG_CANT_OPEN_TABLE"; + exports[1607] = "ER_CANT_CREATE_SROUTINE"; + exports[1608] = "ER_NEVER_USED"; + exports[1609] = "ER_NO_FORMAT_DESCRIPTION_EVENT_BEFORE_BINLOG_STATEMENT"; + exports[1610] = "ER_SLAVE_CORRUPT_EVENT"; + exports[1611] = "ER_LOAD_DATA_INVALID_COLUMN"; + exports[1612] = "ER_LOG_PURGE_NO_FILE"; + exports[1613] = "ER_XA_RBTIMEOUT"; + exports[1614] = "ER_XA_RBDEADLOCK"; + exports[1615] = "ER_NEED_REPREPARE"; + exports[1616] = "ER_DELAYED_NOT_SUPPORTED"; + exports[1617] = "WARN_NO_MASTER_INFO"; + exports[1618] = "WARN_OPTION_IGNORED"; + exports[1619] = "ER_PLUGIN_DELETE_BUILTIN"; + exports[1620] = "WARN_PLUGIN_BUSY"; + exports[1621] = "ER_VARIABLE_IS_READONLY"; + exports[1622] = "ER_WARN_ENGINE_TRANSACTION_ROLLBACK"; + exports[1623] = "ER_SLAVE_HEARTBEAT_FAILURE"; + exports[1624] = "ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE"; + exports[1625] = "ER_NDB_REPLICATION_SCHEMA_ERROR"; + exports[1626] = "ER_CONFLICT_FN_PARSE_ERROR"; + exports[1627] = "ER_EXCEPTIONS_WRITE_ERROR"; + exports[1628] = "ER_TOO_LONG_TABLE_COMMENT"; + exports[1629] = "ER_TOO_LONG_FIELD_COMMENT"; + exports[1630] = "ER_FUNC_INEXISTENT_NAME_COLLISION"; + exports[1631] = "ER_DATABASE_NAME"; + exports[1632] = "ER_TABLE_NAME"; + exports[1633] = "ER_PARTITION_NAME"; + exports[1634] = "ER_SUBPARTITION_NAME"; + exports[1635] = "ER_TEMPORARY_NAME"; + exports[1636] = "ER_RENAMED_NAME"; + exports[1637] = "ER_TOO_MANY_CONCURRENT_TRXS"; + exports[1638] = "WARN_NON_ASCII_SEPARATOR_NOT_IMPLEMENTED"; + exports[1639] = "ER_DEBUG_SYNC_TIMEOUT"; + exports[1640] = "ER_DEBUG_SYNC_HIT_LIMIT"; + exports[1641] = "ER_DUP_SIGNAL_SET"; + exports[1642] = "ER_SIGNAL_WARN"; + exports[1643] = "ER_SIGNAL_NOT_FOUND"; + exports[1644] = "ER_SIGNAL_EXCEPTION"; + exports[1645] = "ER_RESIGNAL_WITHOUT_ACTIVE_HANDLER"; + exports[1646] = "ER_SIGNAL_BAD_CONDITION_TYPE"; + exports[1647] = "WARN_COND_ITEM_TRUNCATED"; + exports[1648] = "ER_COND_ITEM_TOO_LONG"; + exports[1649] = "ER_UNKNOWN_LOCALE"; + exports[1650] = "ER_SLAVE_IGNORE_SERVER_IDS"; + exports[1651] = "ER_QUERY_CACHE_DISABLED"; + exports[1652] = "ER_SAME_NAME_PARTITION_FIELD"; + exports[1653] = "ER_PARTITION_COLUMN_LIST_ERROR"; + exports[1654] = "ER_WRONG_TYPE_COLUMN_VALUE_ERROR"; + exports[1655] = "ER_TOO_MANY_PARTITION_FUNC_FIELDS_ERROR"; + exports[1656] = "ER_MAXVALUE_IN_VALUES_IN"; + exports[1657] = "ER_TOO_MANY_VALUES_ERROR"; + exports[1658] = "ER_ROW_SINGLE_PARTITION_FIELD_ERROR"; + exports[1659] = "ER_FIELD_TYPE_NOT_ALLOWED_AS_PARTITION_FIELD"; + exports[1660] = "ER_PARTITION_FIELDS_TOO_LONG"; + exports[1661] = "ER_BINLOG_ROW_ENGINE_AND_STMT_ENGINE"; + exports[1662] = "ER_BINLOG_ROW_MODE_AND_STMT_ENGINE"; + exports[1663] = "ER_BINLOG_UNSAFE_AND_STMT_ENGINE"; + exports[1664] = "ER_BINLOG_ROW_INJECTION_AND_STMT_ENGINE"; + exports[1665] = "ER_BINLOG_STMT_MODE_AND_ROW_ENGINE"; + exports[1666] = "ER_BINLOG_ROW_INJECTION_AND_STMT_MODE"; + exports[1667] = "ER_BINLOG_MULTIPLE_ENGINES_AND_SELF_LOGGING_ENGINE"; + exports[1668] = "ER_BINLOG_UNSAFE_LIMIT"; + exports[1669] = "ER_BINLOG_UNSAFE_INSERT_DELAYED"; + exports[1670] = "ER_BINLOG_UNSAFE_SYSTEM_TABLE"; + exports[1671] = "ER_BINLOG_UNSAFE_AUTOINC_COLUMNS"; + exports[1672] = "ER_BINLOG_UNSAFE_UDF"; + exports[1673] = "ER_BINLOG_UNSAFE_SYSTEM_VARIABLE"; + exports[1674] = "ER_BINLOG_UNSAFE_SYSTEM_FUNCTION"; + exports[1675] = "ER_BINLOG_UNSAFE_NONTRANS_AFTER_TRANS"; + exports[1676] = "ER_MESSAGE_AND_STATEMENT"; + exports[1677] = "ER_SLAVE_CONVERSION_FAILED"; + exports[1678] = "ER_SLAVE_CANT_CREATE_CONVERSION"; + exports[1679] = "ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_BINLOG_FORMAT"; + exports[1680] = "ER_PATH_LENGTH"; + exports[1681] = "ER_WARN_DEPRECATED_SYNTAX_NO_REPLACEMENT"; + exports[1682] = "ER_WRONG_NATIVE_TABLE_STRUCTURE"; + exports[1683] = "ER_WRONG_PERFSCHEMA_USAGE"; + exports[1684] = "ER_WARN_I_S_SKIPPED_TABLE"; + exports[1685] = "ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_BINLOG_DIRECT"; + exports[1686] = "ER_STORED_FUNCTION_PREVENTS_SWITCH_BINLOG_DIRECT"; + exports[1687] = "ER_SPATIAL_MUST_HAVE_GEOM_COL"; + exports[1688] = "ER_TOO_LONG_INDEX_COMMENT"; + exports[1689] = "ER_LOCK_ABORTED"; + exports[1690] = "ER_DATA_OUT_OF_RANGE"; + exports[1691] = "ER_WRONG_SPVAR_TYPE_IN_LIMIT"; + exports[1692] = "ER_BINLOG_UNSAFE_MULTIPLE_ENGINES_AND_SELF_LOGGING_ENGINE"; + exports[1693] = "ER_BINLOG_UNSAFE_MIXED_STATEMENT"; + exports[1694] = "ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_SQL_LOG_BIN"; + exports[1695] = "ER_STORED_FUNCTION_PREVENTS_SWITCH_SQL_LOG_BIN"; + exports[1696] = "ER_FAILED_READ_FROM_PAR_FILE"; + exports[1697] = "ER_VALUES_IS_NOT_INT_TYPE_ERROR"; + exports[1698] = "ER_ACCESS_DENIED_NO_PASSWORD_ERROR"; + exports[1699] = "ER_SET_PASSWORD_AUTH_PLUGIN"; + exports[1700] = "ER_GRANT_PLUGIN_USER_EXISTS"; + exports[1701] = "ER_TRUNCATE_ILLEGAL_FK"; + exports[1702] = "ER_PLUGIN_IS_PERMANENT"; + exports[1703] = "ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MIN"; + exports[1704] = "ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MAX"; + exports[1705] = "ER_STMT_CACHE_FULL"; + exports[1706] = "ER_MULTI_UPDATE_KEY_CONFLICT"; + exports[1707] = "ER_TABLE_NEEDS_REBUILD"; + exports[1708] = "WARN_OPTION_BELOW_LIMIT"; + exports[1709] = "ER_INDEX_COLUMN_TOO_LONG"; + exports[1710] = "ER_ERROR_IN_TRIGGER_BODY"; + exports[1711] = "ER_ERROR_IN_UNKNOWN_TRIGGER_BODY"; + exports[1712] = "ER_INDEX_CORRUPT"; + exports[1713] = "ER_UNDO_RECORD_TOO_BIG"; + exports[1714] = "ER_BINLOG_UNSAFE_INSERT_IGNORE_SELECT"; + exports[1715] = "ER_BINLOG_UNSAFE_INSERT_SELECT_UPDATE"; + exports[1716] = "ER_BINLOG_UNSAFE_REPLACE_SELECT"; + exports[1717] = "ER_BINLOG_UNSAFE_CREATE_IGNORE_SELECT"; + exports[1718] = "ER_BINLOG_UNSAFE_CREATE_REPLACE_SELECT"; + exports[1719] = "ER_BINLOG_UNSAFE_UPDATE_IGNORE"; + exports[1720] = "ER_PLUGIN_NO_UNINSTALL"; + exports[1721] = "ER_PLUGIN_NO_INSTALL"; + exports[1722] = "ER_BINLOG_UNSAFE_WRITE_AUTOINC_SELECT"; + exports[1723] = "ER_BINLOG_UNSAFE_CREATE_SELECT_AUTOINC"; + exports[1724] = "ER_BINLOG_UNSAFE_INSERT_TWO_KEYS"; + exports[1725] = "ER_TABLE_IN_FK_CHECK"; + exports[1726] = "ER_UNSUPPORTED_ENGINE"; + exports[1727] = "ER_BINLOG_UNSAFE_AUTOINC_NOT_FIRST"; + exports[1728] = "ER_CANNOT_LOAD_FROM_TABLE_V2"; + exports[1729] = "ER_MASTER_DELAY_VALUE_OUT_OF_RANGE"; + exports[1730] = "ER_ONLY_FD_AND_RBR_EVENTS_ALLOWED_IN_BINLOG_STATEMENT"; + exports[1731] = "ER_PARTITION_EXCHANGE_DIFFERENT_OPTION"; + exports[1732] = "ER_PARTITION_EXCHANGE_PART_TABLE"; + exports[1733] = "ER_PARTITION_EXCHANGE_TEMP_TABLE"; + exports[1734] = "ER_PARTITION_INSTEAD_OF_SUBPARTITION"; + exports[1735] = "ER_UNKNOWN_PARTITION"; + exports[1736] = "ER_TABLES_DIFFERENT_METADATA"; + exports[1737] = "ER_ROW_DOES_NOT_MATCH_PARTITION"; + exports[1738] = "ER_BINLOG_CACHE_SIZE_GREATER_THAN_MAX"; + exports[1739] = "ER_WARN_INDEX_NOT_APPLICABLE"; + exports[1740] = "ER_PARTITION_EXCHANGE_FOREIGN_KEY"; + exports[1741] = "ER_NO_SUCH_KEY_VALUE"; + exports[1742] = "ER_RPL_INFO_DATA_TOO_LONG"; + exports[1743] = "ER_NETWORK_READ_EVENT_CHECKSUM_FAILURE"; + exports[1744] = "ER_BINLOG_READ_EVENT_CHECKSUM_FAILURE"; + exports[1745] = "ER_BINLOG_STMT_CACHE_SIZE_GREATER_THAN_MAX"; + exports[1746] = "ER_CANT_UPDATE_TABLE_IN_CREATE_TABLE_SELECT"; + exports[1747] = "ER_PARTITION_CLAUSE_ON_NONPARTITIONED"; + exports[1748] = "ER_ROW_DOES_NOT_MATCH_GIVEN_PARTITION_SET"; + exports[1749] = "ER_NO_SUCH_PARTITION"; + exports[1750] = "ER_CHANGE_RPL_INFO_REPOSITORY_FAILURE"; + exports[1751] = "ER_WARNING_NOT_COMPLETE_ROLLBACK_WITH_CREATED_TEMP_TABLE"; + exports[1752] = "ER_WARNING_NOT_COMPLETE_ROLLBACK_WITH_DROPPED_TEMP_TABLE"; + exports[1753] = "ER_MTS_FEATURE_IS_NOT_SUPPORTED"; + exports[1754] = "ER_MTS_UPDATED_DBS_GREATER_MAX"; + exports[1755] = "ER_MTS_CANT_PARALLEL"; + exports[1756] = "ER_MTS_INCONSISTENT_DATA"; + exports[1757] = "ER_FULLTEXT_NOT_SUPPORTED_WITH_PARTITIONING"; + exports[1758] = "ER_DA_INVALID_CONDITION_NUMBER"; + exports[1759] = "ER_INSECURE_PLAIN_TEXT"; + exports[1760] = "ER_INSECURE_CHANGE_MASTER"; + exports[1761] = "ER_FOREIGN_DUPLICATE_KEY_WITH_CHILD_INFO"; + exports[1762] = "ER_FOREIGN_DUPLICATE_KEY_WITHOUT_CHILD_INFO"; + exports[1763] = "ER_SQLTHREAD_WITH_SECURE_SLAVE"; + exports[1764] = "ER_TABLE_HAS_NO_FT"; + exports[1765] = "ER_VARIABLE_NOT_SETTABLE_IN_SF_OR_TRIGGER"; + exports[1766] = "ER_VARIABLE_NOT_SETTABLE_IN_TRANSACTION"; + exports[1767] = "ER_GTID_NEXT_IS_NOT_IN_GTID_NEXT_LIST"; + exports[1768] = "ER_CANT_CHANGE_GTID_NEXT_IN_TRANSACTION"; + exports[1769] = "ER_SET_STATEMENT_CANNOT_INVOKE_FUNCTION"; + exports[1770] = "ER_GTID_NEXT_CANT_BE_AUTOMATIC_IF_GTID_NEXT_LIST_IS_NON_NULL"; + exports[1771] = "ER_SKIPPING_LOGGED_TRANSACTION"; + exports[1772] = "ER_MALFORMED_GTID_SET_SPECIFICATION"; + exports[1773] = "ER_MALFORMED_GTID_SET_ENCODING"; + exports[1774] = "ER_MALFORMED_GTID_SPECIFICATION"; + exports[1775] = "ER_GNO_EXHAUSTED"; + exports[1776] = "ER_BAD_SLAVE_AUTO_POSITION"; + exports[1777] = "ER_AUTO_POSITION_REQUIRES_GTID_MODE_NOT_OFF"; + exports[1778] = "ER_CANT_DO_IMPLICIT_COMMIT_IN_TRX_WHEN_GTID_NEXT_IS_SET"; + exports[1779] = "ER_GTID_MODE_ON_REQUIRES_ENFORCE_GTID_CONSISTENCY_ON"; + exports[1780] = "ER_GTID_MODE_REQUIRES_BINLOG"; + exports[1781] = "ER_CANT_SET_GTID_NEXT_TO_GTID_WHEN_GTID_MODE_IS_OFF"; + exports[1782] = "ER_CANT_SET_GTID_NEXT_TO_ANONYMOUS_WHEN_GTID_MODE_IS_ON"; + exports[1783] = "ER_CANT_SET_GTID_NEXT_LIST_TO_NON_NULL_WHEN_GTID_MODE_IS_OFF"; + exports[1784] = "ER_FOUND_GTID_EVENT_WHEN_GTID_MODE_IS_OFF"; + exports[1785] = "ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE"; + exports[1786] = "ER_GTID_UNSAFE_CREATE_SELECT"; + exports[1787] = "ER_GTID_UNSAFE_CREATE_DROP_TEMPORARY_TABLE_IN_TRANSACTION"; + exports[1788] = "ER_GTID_MODE_CAN_ONLY_CHANGE_ONE_STEP_AT_A_TIME"; + exports[1789] = "ER_MASTER_HAS_PURGED_REQUIRED_GTIDS"; + exports[1790] = "ER_CANT_SET_GTID_NEXT_WHEN_OWNING_GTID"; + exports[1791] = "ER_UNKNOWN_EXPLAIN_FORMAT"; + exports[1792] = "ER_CANT_EXECUTE_IN_READ_ONLY_TRANSACTION"; + exports[1793] = "ER_TOO_LONG_TABLE_PARTITION_COMMENT"; + exports[1794] = "ER_SLAVE_CONFIGURATION"; + exports[1795] = "ER_INNODB_FT_LIMIT"; + exports[1796] = "ER_INNODB_NO_FT_TEMP_TABLE"; + exports[1797] = "ER_INNODB_FT_WRONG_DOCID_COLUMN"; + exports[1798] = "ER_INNODB_FT_WRONG_DOCID_INDEX"; + exports[1799] = "ER_INNODB_ONLINE_LOG_TOO_BIG"; + exports[1800] = "ER_UNKNOWN_ALTER_ALGORITHM"; + exports[1801] = "ER_UNKNOWN_ALTER_LOCK"; + exports[1802] = "ER_MTS_CHANGE_MASTER_CANT_RUN_WITH_GAPS"; + exports[1803] = "ER_MTS_RECOVERY_FAILURE"; + exports[1804] = "ER_MTS_RESET_WORKERS"; + exports[1805] = "ER_COL_COUNT_DOESNT_MATCH_CORRUPTED_V2"; + exports[1806] = "ER_SLAVE_SILENT_RETRY_TRANSACTION"; + exports[1807] = "ER_DISCARD_FK_CHECKS_RUNNING"; + exports[1808] = "ER_TABLE_SCHEMA_MISMATCH"; + exports[1809] = "ER_TABLE_IN_SYSTEM_TABLESPACE"; + exports[1810] = "ER_IO_READ_ERROR"; + exports[1811] = "ER_IO_WRITE_ERROR"; + exports[1812] = "ER_TABLESPACE_MISSING"; + exports[1813] = "ER_TABLESPACE_EXISTS"; + exports[1814] = "ER_TABLESPACE_DISCARDED"; + exports[1815] = "ER_INTERNAL_ERROR"; + exports[1816] = "ER_INNODB_IMPORT_ERROR"; + exports[1817] = "ER_INNODB_INDEX_CORRUPT"; + exports[1818] = "ER_INVALID_YEAR_COLUMN_LENGTH"; + exports[1819] = "ER_NOT_VALID_PASSWORD"; + exports[1820] = "ER_MUST_CHANGE_PASSWORD"; + exports[1821] = "ER_FK_NO_INDEX_CHILD"; + exports[1822] = "ER_FK_NO_INDEX_PARENT"; + exports[1823] = "ER_FK_FAIL_ADD_SYSTEM"; + exports[1824] = "ER_FK_CANNOT_OPEN_PARENT"; + exports[1825] = "ER_FK_INCORRECT_OPTION"; + exports[1826] = "ER_FK_DUP_NAME"; + exports[1827] = "ER_PASSWORD_FORMAT"; + exports[1828] = "ER_FK_COLUMN_CANNOT_DROP"; + exports[1829] = "ER_FK_COLUMN_CANNOT_DROP_CHILD"; + exports[1830] = "ER_FK_COLUMN_NOT_NULL"; + exports[1831] = "ER_DUP_INDEX"; + exports[1832] = "ER_FK_COLUMN_CANNOT_CHANGE"; + exports[1833] = "ER_FK_COLUMN_CANNOT_CHANGE_CHILD"; + exports[1834] = "ER_FK_CANNOT_DELETE_PARENT"; + exports[1835] = "ER_MALFORMED_PACKET"; + exports[1836] = "ER_READ_ONLY_MODE"; + exports[1837] = "ER_GTID_NEXT_TYPE_UNDEFINED_GROUP"; + exports[1838] = "ER_VARIABLE_NOT_SETTABLE_IN_SP"; + exports[1839] = "ER_CANT_SET_GTID_PURGED_WHEN_GTID_MODE_IS_OFF"; + exports[1840] = "ER_CANT_SET_GTID_PURGED_WHEN_GTID_EXECUTED_IS_NOT_EMPTY"; + exports[1841] = "ER_CANT_SET_GTID_PURGED_WHEN_OWNED_GTIDS_IS_NOT_EMPTY"; + exports[1842] = "ER_GTID_PURGED_WAS_CHANGED"; + exports[1843] = "ER_GTID_EXECUTED_WAS_CHANGED"; + exports[1844] = "ER_BINLOG_STMT_MODE_AND_NO_REPL_TABLES"; + exports[1845] = "ER_ALTER_OPERATION_NOT_SUPPORTED"; + exports[1846] = "ER_ALTER_OPERATION_NOT_SUPPORTED_REASON"; + exports[1847] = "ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_COPY"; + exports[1848] = "ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_PARTITION"; + exports[1849] = "ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_FK_RENAME"; + exports[1850] = "ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_COLUMN_TYPE"; + exports[1851] = "ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_FK_CHECK"; + exports[1852] = "ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_IGNORE"; + exports[1853] = "ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_NOPK"; + exports[1854] = "ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_AUTOINC"; + exports[1855] = "ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_HIDDEN_FTS"; + exports[1856] = "ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_CHANGE_FTS"; + exports[1857] = "ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_FTS"; + exports[1858] = "ER_SQL_SLAVE_SKIP_COUNTER_NOT_SETTABLE_IN_GTID_MODE"; + exports[1859] = "ER_DUP_UNKNOWN_IN_INDEX"; + exports[1860] = "ER_IDENT_CAUSES_TOO_LONG_PATH"; + exports[1861] = "ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_NOT_NULL"; + exports[1862] = "ER_MUST_CHANGE_PASSWORD_LOGIN"; + exports[1863] = "ER_ROW_IN_WRONG_PARTITION"; + exports[1864] = "ER_MTS_EVENT_BIGGER_PENDING_JOBS_SIZE_MAX"; + exports[1865] = "ER_INNODB_NO_FT_USES_PARSER"; + exports[1866] = "ER_BINLOG_LOGICAL_CORRUPTION"; + exports[1867] = "ER_WARN_PURGE_LOG_IN_USE"; + exports[1868] = "ER_WARN_PURGE_LOG_IS_ACTIVE"; + exports[1869] = "ER_AUTO_INCREMENT_CONFLICT"; + exports[1870] = "WARN_ON_BLOCKHOLE_IN_RBR"; + exports[1871] = "ER_SLAVE_MI_INIT_REPOSITORY"; + exports[1872] = "ER_SLAVE_RLI_INIT_REPOSITORY"; + exports[1873] = "ER_ACCESS_DENIED_CHANGE_USER_ERROR"; + exports[1874] = "ER_INNODB_READ_ONLY"; + exports[1875] = "ER_STOP_SLAVE_SQL_THREAD_TIMEOUT"; + exports[1876] = "ER_STOP_SLAVE_IO_THREAD_TIMEOUT"; + exports[1877] = "ER_TABLE_CORRUPT"; + exports[1878] = "ER_TEMP_FILE_WRITE_FAILURE"; + exports[1879] = "ER_INNODB_FT_AUX_NOT_HEX_ID"; + exports[1880] = "ER_OLD_TEMPORALS_UPGRADED"; + exports[1881] = "ER_INNODB_FORCED_RECOVERY"; + exports[1882] = "ER_AES_INVALID_IV"; + exports[1883] = "ER_PLUGIN_CANNOT_BE_UNINSTALLED"; + exports[1884] = "ER_GTID_UNSAFE_BINLOG_SPLITTABLE_STATEMENT_AND_GTID_GROUP"; + exports[1885] = "ER_SLAVE_HAS_MORE_GTIDS_THAN_MASTER"; + exports[1886] = "ER_MISSING_KEY"; + exports[1887] = "WARN_NAMED_PIPE_ACCESS_EVERYONE"; + exports[1888] = "ER_FOUND_MISSING_GTIDS"; + exports[3000] = "ER_FILE_CORRUPT"; + exports[3001] = "ER_ERROR_ON_MASTER"; + exports[3002] = "ER_INCONSISTENT_ERROR"; + exports[3003] = "ER_STORAGE_ENGINE_NOT_LOADED"; + exports[3004] = "ER_GET_STACKED_DA_WITHOUT_ACTIVE_HANDLER"; + exports[3005] = "ER_WARN_LEGACY_SYNTAX_CONVERTED"; + exports[3006] = "ER_BINLOG_UNSAFE_FULLTEXT_PLUGIN"; + exports[3007] = "ER_CANNOT_DISCARD_TEMPORARY_TABLE"; + exports[3008] = "ER_FK_DEPTH_EXCEEDED"; + exports[3009] = "ER_COL_COUNT_DOESNT_MATCH_PLEASE_UPDATE_V2"; + exports[3010] = "ER_WARN_TRIGGER_DOESNT_HAVE_CREATED"; + exports[3011] = "ER_REFERENCED_TRG_DOES_NOT_EXIST"; + exports[3012] = "ER_EXPLAIN_NOT_SUPPORTED"; + exports[3013] = "ER_INVALID_FIELD_SIZE"; + exports[3014] = "ER_MISSING_HA_CREATE_OPTION"; + exports[3015] = "ER_ENGINE_OUT_OF_MEMORY"; + exports[3016] = "ER_PASSWORD_EXPIRE_ANONYMOUS_USER"; + exports[3017] = "ER_SLAVE_SQL_THREAD_MUST_STOP"; + exports[3018] = "ER_NO_FT_MATERIALIZED_SUBQUERY"; + exports[3019] = "ER_INNODB_UNDO_LOG_FULL"; + exports[3020] = "ER_INVALID_ARGUMENT_FOR_LOGARITHM"; + exports[3021] = "ER_SLAVE_CHANNEL_IO_THREAD_MUST_STOP"; + exports[3022] = "ER_WARN_OPEN_TEMP_TABLES_MUST_BE_ZERO"; + exports[3023] = "ER_WARN_ONLY_MASTER_LOG_FILE_NO_POS"; + exports[3024] = "ER_QUERY_TIMEOUT"; + exports[3025] = "ER_NON_RO_SELECT_DISABLE_TIMER"; + exports[3026] = "ER_DUP_LIST_ENTRY"; + exports[3027] = "ER_SQL_MODE_NO_EFFECT"; + exports[3028] = "ER_AGGREGATE_ORDER_FOR_UNION"; + exports[3029] = "ER_AGGREGATE_ORDER_NON_AGG_QUERY"; + exports[3030] = "ER_SLAVE_WORKER_STOPPED_PREVIOUS_THD_ERROR"; + exports[3031] = "ER_DONT_SUPPORT_SLAVE_PRESERVE_COMMIT_ORDER"; + exports[3032] = "ER_SERVER_OFFLINE_MODE"; + exports[3033] = "ER_GIS_DIFFERENT_SRIDS"; + exports[3034] = "ER_GIS_UNSUPPORTED_ARGUMENT"; + exports[3035] = "ER_GIS_UNKNOWN_ERROR"; + exports[3036] = "ER_GIS_UNKNOWN_EXCEPTION"; + exports[3037] = "ER_GIS_INVALID_DATA"; + exports[3038] = "ER_BOOST_GEOMETRY_EMPTY_INPUT_EXCEPTION"; + exports[3039] = "ER_BOOST_GEOMETRY_CENTROID_EXCEPTION"; + exports[3040] = "ER_BOOST_GEOMETRY_OVERLAY_INVALID_INPUT_EXCEPTION"; + exports[3041] = "ER_BOOST_GEOMETRY_TURN_INFO_EXCEPTION"; + exports[3042] = "ER_BOOST_GEOMETRY_SELF_INTERSECTION_POINT_EXCEPTION"; + exports[3043] = "ER_BOOST_GEOMETRY_UNKNOWN_EXCEPTION"; + exports[3044] = "ER_STD_BAD_ALLOC_ERROR"; + exports[3045] = "ER_STD_DOMAIN_ERROR"; + exports[3046] = "ER_STD_LENGTH_ERROR"; + exports[3047] = "ER_STD_INVALID_ARGUMENT"; + exports[3048] = "ER_STD_OUT_OF_RANGE_ERROR"; + exports[3049] = "ER_STD_OVERFLOW_ERROR"; + exports[3050] = "ER_STD_RANGE_ERROR"; + exports[3051] = "ER_STD_UNDERFLOW_ERROR"; + exports[3052] = "ER_STD_LOGIC_ERROR"; + exports[3053] = "ER_STD_RUNTIME_ERROR"; + exports[3054] = "ER_STD_UNKNOWN_EXCEPTION"; + exports[3055] = "ER_GIS_DATA_WRONG_ENDIANESS"; + exports[3056] = "ER_CHANGE_MASTER_PASSWORD_LENGTH"; + exports[3057] = "ER_USER_LOCK_WRONG_NAME"; + exports[3058] = "ER_USER_LOCK_DEADLOCK"; + exports[3059] = "ER_REPLACE_INACCESSIBLE_ROWS"; + exports[3060] = "ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_GIS"; + exports[3061] = "ER_ILLEGAL_USER_VAR"; + exports[3062] = "ER_GTID_MODE_OFF"; + exports[3063] = "ER_UNSUPPORTED_BY_REPLICATION_THREAD"; + exports[3064] = "ER_INCORRECT_TYPE"; + exports[3065] = "ER_FIELD_IN_ORDER_NOT_SELECT"; + exports[3066] = "ER_AGGREGATE_IN_ORDER_NOT_SELECT"; + exports[3067] = "ER_INVALID_RPL_WILD_TABLE_FILTER_PATTERN"; + exports[3068] = "ER_NET_OK_PACKET_TOO_LARGE"; + exports[3069] = "ER_INVALID_JSON_DATA"; + exports[3070] = "ER_INVALID_GEOJSON_MISSING_MEMBER"; + exports[3071] = "ER_INVALID_GEOJSON_WRONG_TYPE"; + exports[3072] = "ER_INVALID_GEOJSON_UNSPECIFIED"; + exports[3073] = "ER_DIMENSION_UNSUPPORTED"; + exports[3074] = "ER_SLAVE_CHANNEL_DOES_NOT_EXIST"; + exports[3075] = "ER_SLAVE_MULTIPLE_CHANNELS_HOST_PORT"; + exports[3076] = "ER_SLAVE_CHANNEL_NAME_INVALID_OR_TOO_LONG"; + exports[3077] = "ER_SLAVE_NEW_CHANNEL_WRONG_REPOSITORY"; + exports[3078] = "ER_SLAVE_CHANNEL_DELETE"; + exports[3079] = "ER_SLAVE_MULTIPLE_CHANNELS_CMD"; + exports[3080] = "ER_SLAVE_MAX_CHANNELS_EXCEEDED"; + exports[3081] = "ER_SLAVE_CHANNEL_MUST_STOP"; + exports[3082] = "ER_SLAVE_CHANNEL_NOT_RUNNING"; + exports[3083] = "ER_SLAVE_CHANNEL_WAS_RUNNING"; + exports[3084] = "ER_SLAVE_CHANNEL_WAS_NOT_RUNNING"; + exports[3085] = "ER_SLAVE_CHANNEL_SQL_THREAD_MUST_STOP"; + exports[3086] = "ER_SLAVE_CHANNEL_SQL_SKIP_COUNTER"; + exports[3087] = "ER_WRONG_FIELD_WITH_GROUP_V2"; + exports[3088] = "ER_MIX_OF_GROUP_FUNC_AND_FIELDS_V2"; + exports[3089] = "ER_WARN_DEPRECATED_SYSVAR_UPDATE"; + exports[3090] = "ER_WARN_DEPRECATED_SQLMODE"; + exports[3091] = "ER_CANNOT_LOG_PARTIAL_DROP_DATABASE_WITH_GTID"; + exports[3092] = "ER_GROUP_REPLICATION_CONFIGURATION"; + exports[3093] = "ER_GROUP_REPLICATION_RUNNING"; + exports[3094] = "ER_GROUP_REPLICATION_APPLIER_INIT_ERROR"; + exports[3095] = "ER_GROUP_REPLICATION_STOP_APPLIER_THREAD_TIMEOUT"; + exports[3096] = "ER_GROUP_REPLICATION_COMMUNICATION_LAYER_SESSION_ERROR"; + exports[3097] = "ER_GROUP_REPLICATION_COMMUNICATION_LAYER_JOIN_ERROR"; + exports[3098] = "ER_BEFORE_DML_VALIDATION_ERROR"; + exports[3099] = "ER_PREVENTS_VARIABLE_WITHOUT_RBR"; + exports[3100] = "ER_RUN_HOOK_ERROR"; + exports[3101] = "ER_TRANSACTION_ROLLBACK_DURING_COMMIT"; + exports[3102] = "ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED"; + exports[3103] = "ER_UNSUPPORTED_ALTER_INPLACE_ON_VIRTUAL_COLUMN"; + exports[3104] = "ER_WRONG_FK_OPTION_FOR_GENERATED_COLUMN"; + exports[3105] = "ER_NON_DEFAULT_VALUE_FOR_GENERATED_COLUMN"; + exports[3106] = "ER_UNSUPPORTED_ACTION_ON_GENERATED_COLUMN"; + exports[3107] = "ER_GENERATED_COLUMN_NON_PRIOR"; + exports[3108] = "ER_DEPENDENT_BY_GENERATED_COLUMN"; + exports[3109] = "ER_GENERATED_COLUMN_REF_AUTO_INC"; + exports[3110] = "ER_FEATURE_NOT_AVAILABLE"; + exports[3111] = "ER_CANT_SET_GTID_MODE"; + exports[3112] = "ER_CANT_USE_AUTO_POSITION_WITH_GTID_MODE_OFF"; + exports[3113] = "ER_CANT_REPLICATE_ANONYMOUS_WITH_AUTO_POSITION"; + exports[3114] = "ER_CANT_REPLICATE_ANONYMOUS_WITH_GTID_MODE_ON"; + exports[3115] = "ER_CANT_REPLICATE_GTID_WITH_GTID_MODE_OFF"; + exports[3116] = "ER_CANT_SET_ENFORCE_GTID_CONSISTENCY_ON_WITH_ONGOING_GTID_VIOLATING_TRANSACTIONS"; + exports[3117] = "ER_SET_ENFORCE_GTID_CONSISTENCY_WARN_WITH_ONGOING_GTID_VIOLATING_TRANSACTIONS"; + exports[3118] = "ER_ACCOUNT_HAS_BEEN_LOCKED"; + exports[3119] = "ER_WRONG_TABLESPACE_NAME"; + exports[3120] = "ER_TABLESPACE_IS_NOT_EMPTY"; + exports[3121] = "ER_WRONG_FILE_NAME"; + exports[3122] = "ER_BOOST_GEOMETRY_INCONSISTENT_TURNS_EXCEPTION"; + exports[3123] = "ER_WARN_OPTIMIZER_HINT_SYNTAX_ERROR"; + exports[3124] = "ER_WARN_BAD_MAX_EXECUTION_TIME"; + exports[3125] = "ER_WARN_UNSUPPORTED_MAX_EXECUTION_TIME"; + exports[3126] = "ER_WARN_CONFLICTING_HINT"; + exports[3127] = "ER_WARN_UNKNOWN_QB_NAME"; + exports[3128] = "ER_UNRESOLVED_HINT_NAME"; + exports[3129] = "ER_WARN_ON_MODIFYING_GTID_EXECUTED_TABLE"; + exports[3130] = "ER_PLUGGABLE_PROTOCOL_COMMAND_NOT_SUPPORTED"; + exports[3131] = "ER_LOCKING_SERVICE_WRONG_NAME"; + exports[3132] = "ER_LOCKING_SERVICE_DEADLOCK"; + exports[3133] = "ER_LOCKING_SERVICE_TIMEOUT"; + exports[3134] = "ER_GIS_MAX_POINTS_IN_GEOMETRY_OVERFLOWED"; + exports[3135] = "ER_SQL_MODE_MERGED"; + exports[3136] = "ER_VTOKEN_PLUGIN_TOKEN_MISMATCH"; + exports[3137] = "ER_VTOKEN_PLUGIN_TOKEN_NOT_FOUND"; + exports[3138] = "ER_CANT_SET_VARIABLE_WHEN_OWNING_GTID"; + exports[3139] = "ER_SLAVE_CHANNEL_OPERATION_NOT_ALLOWED"; + exports[3140] = "ER_INVALID_JSON_TEXT"; + exports[3141] = "ER_INVALID_JSON_TEXT_IN_PARAM"; + exports[3142] = "ER_INVALID_JSON_BINARY_DATA"; + exports[3143] = "ER_INVALID_JSON_PATH"; + exports[3144] = "ER_INVALID_JSON_CHARSET"; + exports[3145] = "ER_INVALID_JSON_CHARSET_IN_FUNCTION"; + exports[3146] = "ER_INVALID_TYPE_FOR_JSON"; + exports[3147] = "ER_INVALID_CAST_TO_JSON"; + exports[3148] = "ER_INVALID_JSON_PATH_CHARSET"; + exports[3149] = "ER_INVALID_JSON_PATH_WILDCARD"; + exports[3150] = "ER_JSON_VALUE_TOO_BIG"; + exports[3151] = "ER_JSON_KEY_TOO_BIG"; + exports[3152] = "ER_JSON_USED_AS_KEY"; + exports[3153] = "ER_JSON_VACUOUS_PATH"; + exports[3154] = "ER_JSON_BAD_ONE_OR_ALL_ARG"; + exports[3155] = "ER_NUMERIC_JSON_VALUE_OUT_OF_RANGE"; + exports[3156] = "ER_INVALID_JSON_VALUE_FOR_CAST"; + exports[3157] = "ER_JSON_DOCUMENT_TOO_DEEP"; + exports[3158] = "ER_JSON_DOCUMENT_NULL_KEY"; + exports[3159] = "ER_SECURE_TRANSPORT_REQUIRED"; + exports[3160] = "ER_NO_SECURE_TRANSPORTS_CONFIGURED"; + exports[3161] = "ER_DISABLED_STORAGE_ENGINE"; + exports[3162] = "ER_USER_DOES_NOT_EXIST"; + exports[3163] = "ER_USER_ALREADY_EXISTS"; + exports[3164] = "ER_AUDIT_API_ABORT"; + exports[3165] = "ER_INVALID_JSON_PATH_ARRAY_CELL"; + exports[3166] = "ER_BUFPOOL_RESIZE_INPROGRESS"; + exports[3167] = "ER_FEATURE_DISABLED_SEE_DOC"; + exports[3168] = "ER_SERVER_ISNT_AVAILABLE"; + exports[3169] = "ER_SESSION_WAS_KILLED"; + exports[3170] = "ER_CAPACITY_EXCEEDED"; + exports[3171] = "ER_CAPACITY_EXCEEDED_IN_RANGE_OPTIMIZER"; + exports[3172] = "ER_TABLE_NEEDS_UPG_PART"; + exports[3173] = "ER_CANT_WAIT_FOR_EXECUTED_GTID_SET_WHILE_OWNING_A_GTID"; + exports[3174] = "ER_CANNOT_ADD_FOREIGN_BASE_COL_VIRTUAL"; + exports[3175] = "ER_CANNOT_CREATE_VIRTUAL_INDEX_CONSTRAINT"; + exports[3176] = "ER_ERROR_ON_MODIFYING_GTID_EXECUTED_TABLE"; + exports[3177] = "ER_LOCK_REFUSED_BY_ENGINE"; + exports[3178] = "ER_UNSUPPORTED_ALTER_ONLINE_ON_VIRTUAL_COLUMN"; + exports[3179] = "ER_MASTER_KEY_ROTATION_NOT_SUPPORTED_BY_SE"; + exports[3180] = "ER_MASTER_KEY_ROTATION_ERROR_BY_SE"; + exports[3181] = "ER_MASTER_KEY_ROTATION_BINLOG_FAILED"; + exports[3182] = "ER_MASTER_KEY_ROTATION_SE_UNAVAILABLE"; + exports[3183] = "ER_TABLESPACE_CANNOT_ENCRYPT"; + exports[3184] = "ER_INVALID_ENCRYPTION_OPTION"; + exports[3185] = "ER_CANNOT_FIND_KEY_IN_KEYRING"; + exports[3186] = "ER_CAPACITY_EXCEEDED_IN_PARSER"; + exports[3187] = "ER_UNSUPPORTED_ALTER_ENCRYPTION_INPLACE"; + exports[3188] = "ER_KEYRING_UDF_KEYRING_SERVICE_ERROR"; + exports[3189] = "ER_USER_COLUMN_OLD_LENGTH"; + exports[3190] = "ER_CANT_RESET_MASTER"; + exports[3191] = "ER_GROUP_REPLICATION_MAX_GROUP_SIZE"; + exports[3192] = "ER_CANNOT_ADD_FOREIGN_BASE_COL_STORED"; + exports[3193] = "ER_TABLE_REFERENCED"; + exports[3194] = "ER_PARTITION_ENGINE_DEPRECATED_FOR_TABLE"; + exports[3195] = "ER_WARN_USING_GEOMFROMWKB_TO_SET_SRID_ZERO"; + exports[3196] = "ER_WARN_USING_GEOMFROMWKB_TO_SET_SRID"; + exports[3197] = "ER_XA_RETRY"; + exports[3198] = "ER_KEYRING_AWS_UDF_AWS_KMS_ERROR"; + exports[3199] = "ER_BINLOG_UNSAFE_XA"; + exports[3200] = "ER_UDF_ERROR"; + exports[3201] = "ER_KEYRING_MIGRATION_FAILURE"; + exports[3202] = "ER_KEYRING_ACCESS_DENIED_ERROR"; + exports[3203] = "ER_KEYRING_MIGRATION_STATUS"; + exports[3204] = "ER_PLUGIN_FAILED_TO_OPEN_TABLES"; + exports[3205] = "ER_PLUGIN_FAILED_TO_OPEN_TABLE"; + exports[3206] = "ER_AUDIT_LOG_NO_KEYRING_PLUGIN_INSTALLED"; + exports[3207] = "ER_AUDIT_LOG_ENCRYPTION_PASSWORD_HAS_NOT_BEEN_SET"; + exports[3208] = "ER_AUDIT_LOG_COULD_NOT_CREATE_AES_KEY"; + exports[3209] = "ER_AUDIT_LOG_ENCRYPTION_PASSWORD_CANNOT_BE_FETCHED"; + exports[3210] = "ER_AUDIT_LOG_JSON_FILTERING_NOT_ENABLED"; + exports[3211] = "ER_AUDIT_LOG_UDF_INSUFFICIENT_PRIVILEGE"; + exports[3212] = "ER_AUDIT_LOG_SUPER_PRIVILEGE_REQUIRED"; + exports[3213] = "ER_COULD_NOT_REINITIALIZE_AUDIT_LOG_FILTERS"; + exports[3214] = "ER_AUDIT_LOG_UDF_INVALID_ARGUMENT_TYPE"; + exports[3215] = "ER_AUDIT_LOG_UDF_INVALID_ARGUMENT_COUNT"; + exports[3216] = "ER_AUDIT_LOG_HAS_NOT_BEEN_INSTALLED"; + exports[3217] = "ER_AUDIT_LOG_UDF_READ_INVALID_MAX_ARRAY_LENGTH_ARG_TYPE"; + exports[3218] = "ER_AUDIT_LOG_UDF_READ_INVALID_MAX_ARRAY_LENGTH_ARG_VALUE"; + exports[3219] = "ER_AUDIT_LOG_JSON_FILTER_PARSING_ERROR"; + exports[3220] = "ER_AUDIT_LOG_JSON_FILTER_NAME_CANNOT_BE_EMPTY"; + exports[3221] = "ER_AUDIT_LOG_JSON_USER_NAME_CANNOT_BE_EMPTY"; + exports[3222] = "ER_AUDIT_LOG_JSON_FILTER_DOES_NOT_EXISTS"; + exports[3223] = "ER_AUDIT_LOG_USER_FIRST_CHARACTER_MUST_BE_ALPHANUMERIC"; + exports[3224] = "ER_AUDIT_LOG_USER_NAME_INVALID_CHARACTER"; + exports[3225] = "ER_AUDIT_LOG_HOST_NAME_INVALID_CHARACTER"; + exports[3226] = "WARN_DEPRECATED_MAXDB_SQL_MODE_FOR_TIMESTAMP"; + exports[3227] = "ER_XA_REPLICATION_FILTERS"; + exports[3228] = "ER_CANT_OPEN_ERROR_LOG"; + exports[3229] = "ER_GROUPING_ON_TIMESTAMP_IN_DST"; + exports[3230] = "ER_CANT_START_SERVER_NAMED_PIPE"; +}); + +// node_modules/mysql/lib/protocol/Timer.js +var require_Timer = __commonJS((exports, module) => { + var Timers = __require("timers"); + module.exports = Timer; + function Timer(object) { + this._object = object; + this._timeout = null; + } + Timer.prototype.active = function active() { + if (this._timeout) { + if (this._timeout.refresh) { + this._timeout.refresh(); + } else { + Timers.active(this._timeout); + } + } + }; + Timer.prototype.start = function start(msecs) { + this.stop(); + this._timeout = Timers.setTimeout(this._onTimeout.bind(this), msecs); + }; + Timer.prototype.stop = function stop() { + if (this._timeout) { + Timers.clearTimeout(this._timeout); + this._timeout = null; + } + }; + Timer.prototype._onTimeout = function _onTimeout() { + return this._object._onTimeout(); + }; +}); + +// node_modules/mysql/lib/protocol/sequences/Sequence.js +var require_Sequence = __commonJS((exports, module) => { + var Util = __require("util"); + var EventEmitter = __require("events").EventEmitter; + var Packets = require_packets(); + var ErrorConstants = require_errors(); + var Timer = require_Timer(); + var listenerCount = EventEmitter.listenerCount || function(emitter, type) { + return emitter.listeners(type).length; + }; + var LONG_STACK_DELIMITER = "\n --------------------\n"; + module.exports = Sequence; + Util.inherits(Sequence, EventEmitter); + function Sequence(options, callback) { + if (typeof options === "function") { + callback = options; + options = {}; + } + EventEmitter.call(this); + options = options || {}; + this._callback = callback; + this._callSite = null; + this._ended = false; + this._timeout = options.timeout; + this._timer = new Timer(this); + } + Sequence.determinePacket = function(byte) { + switch (byte) { + case 0: + return Packets.OkPacket; + case 254: + return Packets.EofPacket; + case 255: + return Packets.ErrorPacket; + default: + return; + } + }; + Sequence.prototype.hasErrorHandler = function() { + return Boolean(this._callback) || listenerCount(this, "error") > 1; + }; + Sequence.prototype._packetToError = function(packet) { + var code = ErrorConstants[packet.errno] || "UNKNOWN_CODE_PLEASE_REPORT"; + var err = new Error(code + ": " + packet.message); + err.code = code; + err.errno = packet.errno; + err.sqlMessage = packet.message; + err.sqlState = packet.sqlState; + return err; + }; + Sequence.prototype.end = function(err) { + if (this._ended) { + return; + } + this._ended = true; + if (err) { + this._addLongStackTrace(err); + } + this._callSite = null; + try { + if (err) { + this.emit("error", err); + } + } finally { + try { + if (this._callback) { + this._callback.apply(this, arguments); + } + } finally { + this.emit("end"); + } + } + }; + Sequence.prototype["OkPacket"] = function(packet) { + this.end(null, packet); + }; + Sequence.prototype["ErrorPacket"] = function(packet) { + this.end(this._packetToError(packet)); + }; + Sequence.prototype.start = function() { + }; + Sequence.prototype._addLongStackTrace = function _addLongStackTrace(err) { + var callSiteStack = this._callSite && this._callSite.stack; + if (!callSiteStack || typeof callSiteStack !== "string") { + return; + } + if (err.stack.indexOf(LONG_STACK_DELIMITER) !== -1) { + return; + } + var index = callSiteStack.indexOf("\n"); + if (index !== -1) { + err.stack += LONG_STACK_DELIMITER + callSiteStack.substr(index + 1); + } + }; + Sequence.prototype._onTimeout = function _onTimeout() { + this.emit("timeout"); + }; +}); + +// node_modules/mysql/lib/protocol/Auth.js +var require_Auth = __commonJS((exports) => { + var Buffer2 = require_safe_buffer().Buffer; + var Crypto = __require("crypto"); + var Auth = exports; + function auth(name, data, options) { + options = options || {}; + switch (name) { + case "mysql_native_password": + return Auth.token(options.password, data.slice(0, 20)); + default: + return; + } + } + Auth.auth = auth; + function sha1(msg) { + var hash = Crypto.createHash("sha1"); + hash.update(msg, "binary"); + return hash.digest("binary"); + } + Auth.sha1 = sha1; + function xor(a, b) { + a = Buffer2.from(a, "binary"); + b = Buffer2.from(b, "binary"); + var result = Buffer2.allocUnsafe(a.length); + for (var i = 0;i < a.length; i++) { + result[i] = a[i] ^ b[i]; + } + return result; + } + Auth.xor = xor; + Auth.token = function(password, scramble) { + if (!password) { + return Buffer2.alloc(0); + } + var stage1 = sha1(Buffer2.from(password, "utf8").toString("binary")); + var stage2 = sha1(stage1); + var stage3 = sha1(scramble.toString("binary") + stage2); + return xor(stage3, stage1); + }; + Auth.hashPassword = function(password) { + var nr = [20528, 22325]; + var add = 7; + var nr2 = [4660, 22129]; + var result = Buffer2.alloc(8); + if (typeof password === "string") { + password = Buffer2.from(password); + } + for (var i = 0;i < password.length; i++) { + var c = password[i]; + if (c === 32 || c === 9) { + continue; + } + nr = this.xor32(nr, this.add32(this.mul32(this.add32(this.and32(nr, [0, 63]), [0, add]), [0, c]), this.shl32(nr, 8))); + nr2 = this.add32(nr2, this.xor32(this.shl32(nr2, 8), nr)); + add += c; + } + this.int31Write(result, nr, 0); + this.int31Write(result, nr2, 4); + return result; + }; + Auth.randomInit = function(seed1, seed2) { + return { + max_value: 1073741823, + max_value_dbl: 1073741823, + seed1: seed1 % 1073741823, + seed2: seed2 % 1073741823 + }; + }; + Auth.myRnd = function(r) { + r.seed1 = (r.seed1 * 3 + r.seed2) % r.max_value; + r.seed2 = (r.seed1 + r.seed2 + 33) % r.max_value; + return r.seed1 / r.max_value_dbl; + }; + Auth.scramble323 = function(message, password) { + if (!password) { + return Buffer2.alloc(0); + } + var to = Buffer2.allocUnsafe(8); + var hashPass = this.hashPassword(password); + var hashMessage = this.hashPassword(message.slice(0, 8)); + var seed1 = this.int32Read(hashPass, 0) ^ this.int32Read(hashMessage, 0); + var seed2 = this.int32Read(hashPass, 4) ^ this.int32Read(hashMessage, 4); + var r = this.randomInit(seed1, seed2); + for (var i = 0;i < 8; i++) { + to[i] = Math.floor(this.myRnd(r) * 31) + 64; + } + var extra = Math.floor(this.myRnd(r) * 31); + for (var i = 0;i < 8; i++) { + to[i] ^= extra; + } + return to; + }; + Auth.xor32 = function(a, b) { + return [a[0] ^ b[0], a[1] ^ b[1]]; + }; + Auth.add32 = function(a, b) { + var w1 = a[1] + b[1]; + var w2 = a[0] + b[0] + ((w1 & 4294901760) >> 16); + return [w2 & 65535, w1 & 65535]; + }; + Auth.mul32 = function(a, b) { + var w1 = a[1] * b[1]; + var w2 = (a[1] * b[1] >> 16 & 65535) + (a[0] * b[1] & 65535) + (a[1] * b[0] & 65535); + return [w2 & 65535, w1 & 65535]; + }; + Auth.and32 = function(a, b) { + return [a[0] & b[0], a[1] & b[1]]; + }; + Auth.shl32 = function(a, b) { + var w1 = a[1] << b; + var w2 = a[0] << b | (w1 & 4294901760) >> 16; + return [w2 & 65535, w1 & 65535]; + }; + Auth.int31Write = function(buffer, number, offset) { + buffer[offset] = number[0] >> 8 & 127; + buffer[offset + 1] = number[0] & 255; + buffer[offset + 2] = number[1] >> 8 & 255; + buffer[offset + 3] = number[1] & 255; + }; + Auth.int32Read = function(buffer, offset) { + return (buffer[offset] << 24) + (buffer[offset + 1] << 16) + (buffer[offset + 2] << 8) + buffer[offset + 3]; + }; +}); + +// node_modules/mysql/lib/protocol/sequences/ChangeUser.js +var require_ChangeUser = __commonJS((exports, module) => { + var Sequence = require_Sequence(); + var Util = __require("util"); + var Packets = require_packets(); + var Auth = require_Auth(); + module.exports = ChangeUser; + Util.inherits(ChangeUser, Sequence); + function ChangeUser(options, callback) { + Sequence.call(this, options, callback); + this._user = options.user; + this._password = options.password; + this._database = options.database; + this._charsetNumber = options.charsetNumber; + this._currentConfig = options.currentConfig; + } + ChangeUser.prototype.determinePacket = function determinePacket(firstByte) { + switch (firstByte) { + case 254: + return Packets.AuthSwitchRequestPacket; + case 255: + return Packets.ErrorPacket; + default: + return; + } + }; + ChangeUser.prototype.start = function(handshakeInitializationPacket) { + var scrambleBuff = handshakeInitializationPacket.scrambleBuff(); + scrambleBuff = Auth.token(this._password, scrambleBuff); + var packet = new Packets.ComChangeUserPacket({ + user: this._user, + scrambleBuff, + database: this._database, + charsetNumber: this._charsetNumber + }); + this._currentConfig.user = this._user; + this._currentConfig.password = this._password; + this._currentConfig.database = this._database; + this._currentConfig.charsetNumber = this._charsetNumber; + this.emit("packet", packet); + }; + ChangeUser.prototype["AuthSwitchRequestPacket"] = function(packet) { + var name = packet.authMethodName; + var data = Auth.auth(name, packet.authMethodData, { + password: this._password + }); + if (data !== undefined) { + this.emit("packet", new Packets.AuthSwitchResponsePacket({ + data + })); + } else { + var err = new Error("MySQL is requesting the " + name + " authentication method, which is not supported."); + err.code = "UNSUPPORTED_AUTH_METHOD"; + err.fatal = true; + this.end(err); + } + }; + ChangeUser.prototype["ErrorPacket"] = function(packet) { + var err = this._packetToError(packet); + err.fatal = true; + this.end(err); + }; +}); + +// node_modules/mysql/lib/protocol/sequences/Handshake.js +var require_Handshake = __commonJS((exports, module) => { + var Sequence = require_Sequence(); + var Util = __require("util"); + var Packets = require_packets(); + var Auth = require_Auth(); + var ClientConstants = require_client(); + module.exports = Handshake; + Util.inherits(Handshake, Sequence); + function Handshake(options, callback) { + Sequence.call(this, options, callback); + options = options || {}; + this._config = options.config; + this._handshakeInitializationPacket = null; + } + Handshake.prototype.determinePacket = function determinePacket(firstByte, parser) { + if (firstByte === 255) { + return Packets.ErrorPacket; + } + if (!this._handshakeInitializationPacket) { + return Packets.HandshakeInitializationPacket; + } + if (firstByte === 254) { + return parser.packetLength() === 1 ? Packets.UseOldPasswordPacket : Packets.AuthSwitchRequestPacket; + } + return; + }; + Handshake.prototype["AuthSwitchRequestPacket"] = function(packet) { + var name = packet.authMethodName; + var data = Auth.auth(name, packet.authMethodData, { + password: this._config.password + }); + if (data !== undefined) { + this.emit("packet", new Packets.AuthSwitchResponsePacket({ + data + })); + } else { + var err = new Error("MySQL is requesting the " + name + " authentication method, which is not supported."); + err.code = "UNSUPPORTED_AUTH_METHOD"; + err.fatal = true; + this.end(err); + } + }; + Handshake.prototype["HandshakeInitializationPacket"] = function(packet) { + this._handshakeInitializationPacket = packet; + this._config.protocol41 = packet.protocol41; + var serverSSLSupport = packet.serverCapabilities1 & ClientConstants.CLIENT_SSL; + if (this._config.ssl) { + if (!serverSSLSupport) { + var err = new Error("Server does not support secure connection"); + err.code = "HANDSHAKE_NO_SSL_SUPPORT"; + err.fatal = true; + this.end(err); + return; + } + this._config.clientFlags |= ClientConstants.CLIENT_SSL; + this.emit("packet", new Packets.SSLRequestPacket({ + clientFlags: this._config.clientFlags, + maxPacketSize: this._config.maxPacketSize, + charsetNumber: this._config.charsetNumber + })); + this.emit("start-tls"); + } else { + this._sendCredentials(); + } + }; + Handshake.prototype._tlsUpgradeCompleteHandler = function() { + this._sendCredentials(); + }; + Handshake.prototype._sendCredentials = function() { + var packet = this._handshakeInitializationPacket; + this.emit("packet", new Packets.ClientAuthenticationPacket({ + clientFlags: this._config.clientFlags, + maxPacketSize: this._config.maxPacketSize, + charsetNumber: this._config.charsetNumber, + user: this._config.user, + database: this._config.database, + protocol41: packet.protocol41, + scrambleBuff: packet.protocol41 ? Auth.token(this._config.password, packet.scrambleBuff()) : Auth.scramble323(packet.scrambleBuff(), this._config.password) + })); + }; + Handshake.prototype["UseOldPasswordPacket"] = function() { + if (!this._config.insecureAuth) { + var err = new Error("MySQL server is requesting the old and insecure pre-4.1 auth mechanism. " + "Upgrade the user password or use the {insecureAuth: true} option."); + err.code = "HANDSHAKE_INSECURE_AUTH"; + err.fatal = true; + this.end(err); + return; + } + this.emit("packet", new Packets.OldPasswordPacket({ + scrambleBuff: Auth.scramble323(this._handshakeInitializationPacket.scrambleBuff(), this._config.password) + })); + }; + Handshake.prototype["ErrorPacket"] = function(packet) { + var err = this._packetToError(packet, true); + err.fatal = true; + this.end(err); + }; +}); + +// node_modules/mysql/lib/protocol/sequences/Ping.js +var require_Ping = __commonJS((exports, module) => { + var Sequence = require_Sequence(); + var Util = __require("util"); + var Packets = require_packets(); + module.exports = Ping; + Util.inherits(Ping, Sequence); + function Ping(options, callback) { + if (!callback && typeof options === "function") { + callback = options; + options = {}; + } + Sequence.call(this, options, callback); + } + Ping.prototype.start = function() { + this.emit("packet", new Packets.ComPingPacket); + }; +}); + +// node_modules/mysql/lib/protocol/ResultSet.js +var require_ResultSet = __commonJS((exports, module) => { + module.exports = ResultSet; + function ResultSet(resultSetHeaderPacket) { + this.resultSetHeaderPacket = resultSetHeaderPacket; + this.fieldPackets = []; + this.eofPackets = []; + this.rows = []; + } +}); + +// node_modules/mysql/lib/protocol/constants/server_status.js +var require_server_status = __commonJS((exports) => { + exports.SERVER_STATUS_IN_TRANS = 1; + exports.SERVER_STATUS_AUTOCOMMIT = 2; + exports.SERVER_MORE_RESULTS_EXISTS = 8; + exports.SERVER_QUERY_NO_GOOD_INDEX_USED = 16; + exports.SERVER_QUERY_NO_INDEX_USED = 32; + exports.SERVER_STATUS_CURSOR_EXISTS = 64; + exports.SERVER_STATUS_LAST_ROW_SENT = 128; + exports.SERVER_STATUS_DB_DROPPED = 256; + exports.SERVER_STATUS_NO_BACKSLASH_ESCAPES = 512; + exports.SERVER_STATUS_METADATA_CHANGED = 1024; + exports.SERVER_QUERY_WAS_SLOW = 2048; + exports.SERVER_PS_OUT_PARAMS = 4096; +}); + +// node_modules/process-nextick-args/index.js +var require_process_nextick_args = __commonJS((exports, module) => { + if (typeof process === "undefined" || !process.version || process.version.indexOf("v0.") === 0 || process.version.indexOf("v1.") === 0 && process.version.indexOf("v1.8.") !== 0) { + module.exports = { nextTick }; + } else { + module.exports = process; + } + function nextTick(fn, arg1, arg2, arg3) { + if (typeof fn !== "function") { + throw new TypeError('"callback" argument must be a function'); + } + var len = arguments.length; + var args, i; + switch (len) { + case 0: + case 1: + return process.nextTick(fn); + case 2: + return process.nextTick(function afterTickOne() { + fn.call(null, arg1); + }); + case 3: + return process.nextTick(function afterTickTwo() { + fn.call(null, arg1, arg2); + }); + case 4: + return process.nextTick(function afterTickThree() { + fn.call(null, arg1, arg2, arg3); + }); + default: + args = new Array(len - 1); + i = 0; + while (i < args.length) { + args[i++] = arguments[i]; + } + return process.nextTick(function afterTick() { + fn.apply(null, args); + }); + } + } +}); + +// node_modules/isarray/index.js +var require_isarray = __commonJS((exports, module) => { + var toString = {}.toString; + module.exports = Array.isArray || function(arr) { + return toString.call(arr) == "[object Array]"; + }; +}); + +// node_modules/core-util-is/lib/util.js +var require_util = __commonJS((exports) => { + function isArray(arg) { + if (Array.isArray) { + return Array.isArray(arg); + } + return objectToString(arg) === "[object Array]"; + } + exports.isArray = isArray; + function isBoolean(arg) { + return typeof arg === "boolean"; + } + exports.isBoolean = isBoolean; + function isNull(arg) { + return arg === null; + } + exports.isNull = isNull; + function isNullOrUndefined(arg) { + return arg == null; + } + exports.isNullOrUndefined = isNullOrUndefined; + function isNumber(arg) { + return typeof arg === "number"; + } + exports.isNumber = isNumber; + function isString(arg) { + return typeof arg === "string"; + } + exports.isString = isString; + function isSymbol(arg) { + return typeof arg === "symbol"; + } + exports.isSymbol = isSymbol; + function isUndefined(arg) { + return arg === undefined; + } + exports.isUndefined = isUndefined; + function isRegExp(re) { + return objectToString(re) === "[object RegExp]"; + } + exports.isRegExp = isRegExp; + function isObject(arg) { + return typeof arg === "object" && arg !== null; + } + exports.isObject = isObject; + function isDate(d) { + return objectToString(d) === "[object Date]"; + } + exports.isDate = isDate; + function isError(e) { + return objectToString(e) === "[object Error]" || e instanceof Error; + } + exports.isError = isError; + function isFunction(arg) { + return typeof arg === "function"; + } + exports.isFunction = isFunction; + function isPrimitive(arg) { + return arg === null || typeof arg === "boolean" || typeof arg === "number" || typeof arg === "string" || typeof arg === "symbol" || typeof arg === "undefined"; + } + exports.isPrimitive = isPrimitive; + exports.isBuffer = __require("buffer").Buffer.isBuffer; + function objectToString(o) { + return Object.prototype.toString.call(o); + } +}); + +// node_modules/inherits/inherits_browser.js +var require_inherits_browser = __commonJS((exports, module) => { + if (typeof Object.create === "function") { + module.exports = function inherits(ctor, superCtor) { + if (superCtor) { + ctor.super_ = superCtor; + ctor.prototype = Object.create(superCtor.prototype, { + constructor: { + value: ctor, + enumerable: false, + writable: true, + configurable: true + } + }); + } + }; + } else { + module.exports = function inherits(ctor, superCtor) { + if (superCtor) { + ctor.super_ = superCtor; + var TempCtor = function() { + }; + TempCtor.prototype = superCtor.prototype; + ctor.prototype = new TempCtor; + ctor.prototype.constructor = ctor; + } + }; + } +}); + +// node_modules/inherits/inherits.js +var require_inherits = __commonJS((exports, module) => { + try { + util = __require("util"); + if (typeof util.inherits !== "function") + throw ""; + module.exports = util.inherits; + } catch (e) { + module.exports = require_inherits_browser(); + } + var util; +}); + +// node_modules/readable-stream/lib/internal/streams/BufferList.js +var require_BufferList2 = __commonJS((exports, module) => { + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + var Buffer2 = require_safe_buffer().Buffer; + var util = __require("util"); + function copyBuffer(src, target, offset) { + src.copy(target, offset); + } + module.exports = function() { + function BufferList() { + _classCallCheck(this, BufferList); + this.head = null; + this.tail = null; + this.length = 0; + } + BufferList.prototype.push = function push(v) { + var entry = { data: v, next: null }; + if (this.length > 0) + this.tail.next = entry; + else + this.head = entry; + this.tail = entry; + ++this.length; + }; + BufferList.prototype.unshift = function unshift(v) { + var entry = { data: v, next: this.head }; + if (this.length === 0) + this.tail = entry; + this.head = entry; + ++this.length; + }; + BufferList.prototype.shift = function shift() { + if (this.length === 0) + return; + var ret = this.head.data; + if (this.length === 1) + this.head = this.tail = null; + else + this.head = this.head.next; + --this.length; + return ret; + }; + BufferList.prototype.clear = function clear() { + this.head = this.tail = null; + this.length = 0; + }; + BufferList.prototype.join = function join(s) { + if (this.length === 0) + return ""; + var p = this.head; + var ret = "" + p.data; + while (p = p.next) { + ret += s + p.data; + } + return ret; + }; + BufferList.prototype.concat = function concat(n) { + if (this.length === 0) + return Buffer2.alloc(0); + if (this.length === 1) + return this.head.data; + var ret = Buffer2.allocUnsafe(n >>> 0); + var p = this.head; + var i = 0; + while (p) { + copyBuffer(p.data, ret, i); + i += p.data.length; + p = p.next; + } + return ret; + }; + return BufferList; + }(); + if (util && util.inspect && util.inspect.custom) { + module.exports.prototype[util.inspect.custom] = function() { + var obj = util.inspect({ length: this.length }); + return this.constructor.name + " " + obj; + }; + } +}); + +// node_modules/readable-stream/lib/internal/streams/destroy.js +var require_destroy = __commonJS((exports, module) => { + var pna = require_process_nextick_args(); + function destroy(err, cb) { + var _this = this; + var readableDestroyed = this._readableState && this._readableState.destroyed; + var writableDestroyed = this._writableState && this._writableState.destroyed; + if (readableDestroyed || writableDestroyed) { + if (cb) { + cb(err); + } else if (err && (!this._writableState || !this._writableState.errorEmitted)) { + pna.nextTick(emitErrorNT, this, err); + } + return this; + } + if (this._readableState) { + this._readableState.destroyed = true; + } + if (this._writableState) { + this._writableState.destroyed = true; + } + this._destroy(err || null, function(err2) { + if (!cb && err2) { + pna.nextTick(emitErrorNT, _this, err2); + if (_this._writableState) { + _this._writableState.errorEmitted = true; + } + } else if (cb) { + cb(err2); + } + }); + return this; + } + function undestroy() { + if (this._readableState) { + this._readableState.destroyed = false; + this._readableState.reading = false; + this._readableState.ended = false; + this._readableState.endEmitted = false; + } + if (this._writableState) { + this._writableState.destroyed = false; + this._writableState.ended = false; + this._writableState.ending = false; + this._writableState.finished = false; + this._writableState.errorEmitted = false; + } + } + function emitErrorNT(self2, err) { + self2.emit("error", err); + } + module.exports = { + destroy, + undestroy + }; +}); + +// node_modules/util-deprecate/node.js +var require_node = __commonJS((exports, module) => { + module.exports = __require("util").deprecate; +}); + +// node_modules/readable-stream/lib/_stream_writable.js +var require__stream_writable = __commonJS((exports, module) => { + var pna = require_process_nextick_args(); + module.exports = Writable; + function CorkedRequest(state) { + var _this = this; + this.next = null; + this.entry = null; + this.finish = function() { + onCorkedFinish(_this, state); + }; + } + var asyncWrite = ["v0.10", "v0.9."].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick; + var Duplex; + Writable.WritableState = WritableState; + var util = Object.create(require_util()); + util.inherits = require_inherits(); + var internalUtil = { + deprecate: require_node() + }; + var Stream = __require("stream"); + var Buffer2 = require_safe_buffer().Buffer; + var OurUint8Array = global.Uint8Array || function() { + }; + function _uint8ArrayToBuffer(chunk) { + return Buffer2.from(chunk); + } + function _isUint8Array(obj) { + return Buffer2.isBuffer(obj) || obj instanceof OurUint8Array; + } + var destroyImpl = require_destroy(); + util.inherits(Writable, Stream); + function nop() { + } + function WritableState(options, stream) { + Duplex = Duplex || require__stream_duplex(); + options = options || {}; + var isDuplex = stream instanceof Duplex; + this.objectMode = !!options.objectMode; + if (isDuplex) + this.objectMode = this.objectMode || !!options.writableObjectMode; + var hwm = options.highWaterMark; + var writableHwm = options.writableHighWaterMark; + var defaultHwm = this.objectMode ? 16 : 16 * 1024; + if (hwm || hwm === 0) + this.highWaterMark = hwm; + else if (isDuplex && (writableHwm || writableHwm === 0)) + this.highWaterMark = writableHwm; + else + this.highWaterMark = defaultHwm; + this.highWaterMark = Math.floor(this.highWaterMark); + this.finalCalled = false; + this.needDrain = false; + this.ending = false; + this.ended = false; + this.finished = false; + this.destroyed = false; + var noDecode = options.decodeStrings === false; + this.decodeStrings = !noDecode; + this.defaultEncoding = options.defaultEncoding || "utf8"; + this.length = 0; + this.writing = false; + this.corked = 0; + this.sync = true; + this.bufferProcessing = false; + this.onwrite = function(er) { + onwrite(stream, er); + }; + this.writecb = null; + this.writelen = 0; + this.bufferedRequest = null; + this.lastBufferedRequest = null; + this.pendingcb = 0; + this.prefinished = false; + this.errorEmitted = false; + this.bufferedRequestCount = 0; + this.corkedRequestsFree = new CorkedRequest(this); + } + WritableState.prototype.getBuffer = function getBuffer() { + var current = this.bufferedRequest; + var out = []; + while (current) { + out.push(current); + current = current.next; + } + return out; + }; + (function() { + try { + Object.defineProperty(WritableState.prototype, "buffer", { + get: internalUtil.deprecate(function() { + return this.getBuffer(); + }, "_writableState.buffer is deprecated. Use _writableState.getBuffer " + "instead.", "DEP0003") + }); + } catch (_) { + } + })(); + var realHasInstance; + if (typeof Symbol === "function" && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === "function") { + realHasInstance = Function.prototype[Symbol.hasInstance]; + Object.defineProperty(Writable, Symbol.hasInstance, { + value: function(object) { + if (realHasInstance.call(this, object)) + return true; + if (this !== Writable) + return false; + return object && object._writableState instanceof WritableState; + } + }); + } else { + realHasInstance = function(object) { + return object instanceof this; + }; + } + function Writable(options) { + Duplex = Duplex || require__stream_duplex(); + if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) { + return new Writable(options); + } + this._writableState = new WritableState(options, this); + this.writable = true; + if (options) { + if (typeof options.write === "function") + this._write = options.write; + if (typeof options.writev === "function") + this._writev = options.writev; + if (typeof options.destroy === "function") + this._destroy = options.destroy; + if (typeof options.final === "function") + this._final = options.final; + } + Stream.call(this); + } + Writable.prototype.pipe = function() { + this.emit("error", new Error("Cannot pipe, not readable")); + }; + function writeAfterEnd(stream, cb) { + var er = new Error("write after end"); + stream.emit("error", er); + pna.nextTick(cb, er); + } + function validChunk(stream, state, chunk, cb) { + var valid = true; + var er = false; + if (chunk === null) { + er = new TypeError("May not write null values to stream"); + } else if (typeof chunk !== "string" && chunk !== undefined && !state.objectMode) { + er = new TypeError("Invalid non-string/buffer chunk"); + } + if (er) { + stream.emit("error", er); + pna.nextTick(cb, er); + valid = false; + } + return valid; + } + Writable.prototype.write = function(chunk, encoding, cb) { + var state = this._writableState; + var ret = false; + var isBuf = !state.objectMode && _isUint8Array(chunk); + if (isBuf && !Buffer2.isBuffer(chunk)) { + chunk = _uint8ArrayToBuffer(chunk); + } + if (typeof encoding === "function") { + cb = encoding; + encoding = null; + } + if (isBuf) + encoding = "buffer"; + else if (!encoding) + encoding = state.defaultEncoding; + if (typeof cb !== "function") + cb = nop; + if (state.ended) + writeAfterEnd(this, cb); + else if (isBuf || validChunk(this, state, chunk, cb)) { + state.pendingcb++; + ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb); + } + return ret; + }; + Writable.prototype.cork = function() { + var state = this._writableState; + state.corked++; + }; + Writable.prototype.uncork = function() { + var state = this._writableState; + if (state.corked) { + state.corked--; + if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) + clearBuffer(this, state); + } + }; + Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) { + if (typeof encoding === "string") + encoding = encoding.toLowerCase(); + if (!(["hex", "utf8", "utf-8", "ascii", "binary", "base64", "ucs2", "ucs-2", "utf16le", "utf-16le", "raw"].indexOf((encoding + "").toLowerCase()) > -1)) + throw new TypeError("Unknown encoding: " + encoding); + this._writableState.defaultEncoding = encoding; + return this; + }; + function decodeChunk(state, chunk, encoding) { + if (!state.objectMode && state.decodeStrings !== false && typeof chunk === "string") { + chunk = Buffer2.from(chunk, encoding); + } + return chunk; + } + Object.defineProperty(Writable.prototype, "writableHighWaterMark", { + enumerable: false, + get: function() { + return this._writableState.highWaterMark; + } + }); + function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) { + if (!isBuf) { + var newChunk = decodeChunk(state, chunk, encoding); + if (chunk !== newChunk) { + isBuf = true; + encoding = "buffer"; + chunk = newChunk; + } + } + var len = state.objectMode ? 1 : chunk.length; + state.length += len; + var ret = state.length < state.highWaterMark; + if (!ret) + state.needDrain = true; + if (state.writing || state.corked) { + var last = state.lastBufferedRequest; + state.lastBufferedRequest = { + chunk, + encoding, + isBuf, + callback: cb, + next: null + }; + if (last) { + last.next = state.lastBufferedRequest; + } else { + state.bufferedRequest = state.lastBufferedRequest; + } + state.bufferedRequestCount += 1; + } else { + doWrite(stream, state, false, len, chunk, encoding, cb); + } + return ret; + } + function doWrite(stream, state, writev, len, chunk, encoding, cb) { + state.writelen = len; + state.writecb = cb; + state.writing = true; + state.sync = true; + if (writev) + stream._writev(chunk, state.onwrite); + else + stream._write(chunk, encoding, state.onwrite); + state.sync = false; + } + function onwriteError(stream, state, sync, er, cb) { + --state.pendingcb; + if (sync) { + pna.nextTick(cb, er); + pna.nextTick(finishMaybe, stream, state); + stream._writableState.errorEmitted = true; + stream.emit("error", er); + } else { + cb(er); + stream._writableState.errorEmitted = true; + stream.emit("error", er); + finishMaybe(stream, state); + } + } + function onwriteStateUpdate(state) { + state.writing = false; + state.writecb = null; + state.length -= state.writelen; + state.writelen = 0; + } + function onwrite(stream, er) { + var state = stream._writableState; + var sync = state.sync; + var cb = state.writecb; + onwriteStateUpdate(state); + if (er) + onwriteError(stream, state, sync, er, cb); + else { + var finished = needFinish(state); + if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) { + clearBuffer(stream, state); + } + if (sync) { + asyncWrite(afterWrite, stream, state, finished, cb); + } else { + afterWrite(stream, state, finished, cb); + } + } + } + function afterWrite(stream, state, finished, cb) { + if (!finished) + onwriteDrain(stream, state); + state.pendingcb--; + cb(); + finishMaybe(stream, state); + } + function onwriteDrain(stream, state) { + if (state.length === 0 && state.needDrain) { + state.needDrain = false; + stream.emit("drain"); + } + } + function clearBuffer(stream, state) { + state.bufferProcessing = true; + var entry = state.bufferedRequest; + if (stream._writev && entry && entry.next) { + var l = state.bufferedRequestCount; + var buffer = new Array(l); + var holder = state.corkedRequestsFree; + holder.entry = entry; + var count = 0; + var allBuffers = true; + while (entry) { + buffer[count] = entry; + if (!entry.isBuf) + allBuffers = false; + entry = entry.next; + count += 1; + } + buffer.allBuffers = allBuffers; + doWrite(stream, state, true, state.length, buffer, "", holder.finish); + state.pendingcb++; + state.lastBufferedRequest = null; + if (holder.next) { + state.corkedRequestsFree = holder.next; + holder.next = null; + } else { + state.corkedRequestsFree = new CorkedRequest(state); + } + state.bufferedRequestCount = 0; + } else { + while (entry) { + var chunk = entry.chunk; + var encoding = entry.encoding; + var cb = entry.callback; + var len = state.objectMode ? 1 : chunk.length; + doWrite(stream, state, false, len, chunk, encoding, cb); + entry = entry.next; + state.bufferedRequestCount--; + if (state.writing) { + break; + } + } + if (entry === null) + state.lastBufferedRequest = null; + } + state.bufferedRequest = entry; + state.bufferProcessing = false; + } + Writable.prototype._write = function(chunk, encoding, cb) { + cb(new Error("_write() is not implemented")); + }; + Writable.prototype._writev = null; + Writable.prototype.end = function(chunk, encoding, cb) { + var state = this._writableState; + if (typeof chunk === "function") { + cb = chunk; + chunk = null; + encoding = null; + } else if (typeof encoding === "function") { + cb = encoding; + encoding = null; + } + if (chunk !== null && chunk !== undefined) + this.write(chunk, encoding); + if (state.corked) { + state.corked = 1; + this.uncork(); + } + if (!state.ending && !state.finished) + endWritable(this, state, cb); + }; + function needFinish(state) { + return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing; + } + function callFinal(stream, state) { + stream._final(function(err) { + state.pendingcb--; + if (err) { + stream.emit("error", err); + } + state.prefinished = true; + stream.emit("prefinish"); + finishMaybe(stream, state); + }); + } + function prefinish(stream, state) { + if (!state.prefinished && !state.finalCalled) { + if (typeof stream._final === "function") { + state.pendingcb++; + state.finalCalled = true; + pna.nextTick(callFinal, stream, state); + } else { + state.prefinished = true; + stream.emit("prefinish"); + } + } + } + function finishMaybe(stream, state) { + var need = needFinish(state); + if (need) { + prefinish(stream, state); + if (state.pendingcb === 0) { + state.finished = true; + stream.emit("finish"); + } + } + return need; + } + function endWritable(stream, state, cb) { + state.ending = true; + finishMaybe(stream, state); + if (cb) { + if (state.finished) + pna.nextTick(cb); + else + stream.once("finish", cb); + } + state.ended = true; + stream.writable = false; + } + function onCorkedFinish(corkReq, state, err) { + var entry = corkReq.entry; + corkReq.entry = null; + while (entry) { + var cb = entry.callback; + state.pendingcb--; + cb(err); + entry = entry.next; + } + if (state.corkedRequestsFree) { + state.corkedRequestsFree.next = corkReq; + } else { + state.corkedRequestsFree = corkReq; + } + } + Object.defineProperty(Writable.prototype, "destroyed", { + get: function() { + if (this._writableState === undefined) { + return false; + } + return this._writableState.destroyed; + }, + set: function(value) { + if (!this._writableState) { + return; + } + this._writableState.destroyed = value; + } + }); + Writable.prototype.destroy = destroyImpl.destroy; + Writable.prototype._undestroy = destroyImpl.undestroy; + Writable.prototype._destroy = function(err, cb) { + this.end(); + cb(err); + }; +}); + +// node_modules/readable-stream/lib/_stream_duplex.js +var require__stream_duplex = __commonJS((exports, module) => { + var pna = require_process_nextick_args(); + var objectKeys = Object.keys || function(obj) { + var keys2 = []; + for (var key in obj) { + keys2.push(key); + } + return keys2; + }; + module.exports = Duplex; + var util = Object.create(require_util()); + util.inherits = require_inherits(); + var Readable = require__stream_readable(); + var Writable = require__stream_writable(); + util.inherits(Duplex, Readable); + { + keys = objectKeys(Writable.prototype); + for (v = 0;v < keys.length; v++) { + method = keys[v]; + if (!Duplex.prototype[method]) + Duplex.prototype[method] = Writable.prototype[method]; + } + } + var keys; + var method; + var v; + function Duplex(options) { + if (!(this instanceof Duplex)) + return new Duplex(options); + Readable.call(this, options); + Writable.call(this, options); + if (options && options.readable === false) + this.readable = false; + if (options && options.writable === false) + this.writable = false; + this.allowHalfOpen = true; + if (options && options.allowHalfOpen === false) + this.allowHalfOpen = false; + this.once("end", onend); + } + Object.defineProperty(Duplex.prototype, "writableHighWaterMark", { + enumerable: false, + get: function() { + return this._writableState.highWaterMark; + } + }); + function onend() { + if (this.allowHalfOpen || this._writableState.ended) + return; + pna.nextTick(onEndNT, this); + } + function onEndNT(self2) { + self2.end(); + } + Object.defineProperty(Duplex.prototype, "destroyed", { + get: function() { + if (this._readableState === undefined || this._writableState === undefined) { + return false; + } + return this._readableState.destroyed && this._writableState.destroyed; + }, + set: function(value) { + if (this._readableState === undefined || this._writableState === undefined) { + return; + } + this._readableState.destroyed = value; + this._writableState.destroyed = value; + } + }); + Duplex.prototype._destroy = function(err, cb) { + this.push(null); + this.end(); + pna.nextTick(cb, err); + }; +}); + +// node_modules/string_decoder/lib/string_decoder.js +var require_string_decoder = __commonJS((exports) => { + var Buffer2 = require_safe_buffer().Buffer; + var isEncoding = Buffer2.isEncoding || function(encoding) { + encoding = "" + encoding; + switch (encoding && encoding.toLowerCase()) { + case "hex": + case "utf8": + case "utf-8": + case "ascii": + case "binary": + case "base64": + case "ucs2": + case "ucs-2": + case "utf16le": + case "utf-16le": + case "raw": + return true; + default: + return false; + } + }; + function _normalizeEncoding(enc) { + if (!enc) + return "utf8"; + var retried; + while (true) { + switch (enc) { + case "utf8": + case "utf-8": + return "utf8"; + case "ucs2": + case "ucs-2": + case "utf16le": + case "utf-16le": + return "utf16le"; + case "latin1": + case "binary": + return "latin1"; + case "base64": + case "ascii": + case "hex": + return enc; + default: + if (retried) + return; + enc = ("" + enc).toLowerCase(); + retried = true; + } + } + } + function normalizeEncoding(enc) { + var nenc = _normalizeEncoding(enc); + if (typeof nenc !== "string" && (Buffer2.isEncoding === isEncoding || !isEncoding(enc))) + throw new Error("Unknown encoding: " + enc); + return nenc || enc; + } + exports.StringDecoder = StringDecoder; + function StringDecoder(encoding) { + this.encoding = normalizeEncoding(encoding); + var nb; + switch (this.encoding) { + case "utf16le": + this.text = utf16Text; + this.end = utf16End; + nb = 4; + break; + case "utf8": + this.fillLast = utf8FillLast; + nb = 4; + break; + case "base64": + this.text = base64Text; + this.end = base64End; + nb = 3; + break; + default: + this.write = simpleWrite; + this.end = simpleEnd; + return; + } + this.lastNeed = 0; + this.lastTotal = 0; + this.lastChar = Buffer2.allocUnsafe(nb); + } + StringDecoder.prototype.write = function(buf) { + if (buf.length === 0) + return ""; + var r; + var i; + if (this.lastNeed) { + r = this.fillLast(buf); + if (r === undefined) + return ""; + i = this.lastNeed; + this.lastNeed = 0; + } else { + i = 0; + } + if (i < buf.length) + return r ? r + this.text(buf, i) : this.text(buf, i); + return r || ""; + }; + StringDecoder.prototype.end = utf8End; + StringDecoder.prototype.text = utf8Text; + StringDecoder.prototype.fillLast = function(buf) { + if (this.lastNeed <= buf.length) { + buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed); + return this.lastChar.toString(this.encoding, 0, this.lastTotal); + } + buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length); + this.lastNeed -= buf.length; + }; + function utf8CheckByte(byte) { + if (byte <= 127) + return 0; + else if (byte >> 5 === 6) + return 2; + else if (byte >> 4 === 14) + return 3; + else if (byte >> 3 === 30) + return 4; + return byte >> 6 === 2 ? -1 : -2; + } + function utf8CheckIncomplete(self2, buf, i) { + var j = buf.length - 1; + if (j < i) + return 0; + var nb = utf8CheckByte(buf[j]); + if (nb >= 0) { + if (nb > 0) + self2.lastNeed = nb - 1; + return nb; + } + if (--j < i || nb === -2) + return 0; + nb = utf8CheckByte(buf[j]); + if (nb >= 0) { + if (nb > 0) + self2.lastNeed = nb - 2; + return nb; + } + if (--j < i || nb === -2) + return 0; + nb = utf8CheckByte(buf[j]); + if (nb >= 0) { + if (nb > 0) { + if (nb === 2) + nb = 0; + else + self2.lastNeed = nb - 3; + } + return nb; + } + return 0; + } + function utf8CheckExtraBytes(self2, buf, p) { + if ((buf[0] & 192) !== 128) { + self2.lastNeed = 0; + return "\uFFFD"; + } + if (self2.lastNeed > 1 && buf.length > 1) { + if ((buf[1] & 192) !== 128) { + self2.lastNeed = 1; + return "\uFFFD"; + } + if (self2.lastNeed > 2 && buf.length > 2) { + if ((buf[2] & 192) !== 128) { + self2.lastNeed = 2; + return "\uFFFD"; + } + } + } + } + function utf8FillLast(buf) { + var p = this.lastTotal - this.lastNeed; + var r = utf8CheckExtraBytes(this, buf, p); + if (r !== undefined) + return r; + if (this.lastNeed <= buf.length) { + buf.copy(this.lastChar, p, 0, this.lastNeed); + return this.lastChar.toString(this.encoding, 0, this.lastTotal); + } + buf.copy(this.lastChar, p, 0, buf.length); + this.lastNeed -= buf.length; + } + function utf8Text(buf, i) { + var total = utf8CheckIncomplete(this, buf, i); + if (!this.lastNeed) + return buf.toString("utf8", i); + this.lastTotal = total; + var end = buf.length - (total - this.lastNeed); + buf.copy(this.lastChar, 0, end); + return buf.toString("utf8", i, end); + } + function utf8End(buf) { + var r = buf && buf.length ? this.write(buf) : ""; + if (this.lastNeed) + return r + "\uFFFD"; + return r; + } + function utf16Text(buf, i) { + if ((buf.length - i) % 2 === 0) { + var r = buf.toString("utf16le", i); + if (r) { + var c = r.charCodeAt(r.length - 1); + if (c >= 55296 && c <= 56319) { + this.lastNeed = 2; + this.lastTotal = 4; + this.lastChar[0] = buf[buf.length - 2]; + this.lastChar[1] = buf[buf.length - 1]; + return r.slice(0, -1); + } + } + return r; + } + this.lastNeed = 1; + this.lastTotal = 2; + this.lastChar[0] = buf[buf.length - 1]; + return buf.toString("utf16le", i, buf.length - 1); + } + function utf16End(buf) { + var r = buf && buf.length ? this.write(buf) : ""; + if (this.lastNeed) { + var end = this.lastTotal - this.lastNeed; + return r + this.lastChar.toString("utf16le", 0, end); + } + return r; + } + function base64Text(buf, i) { + var n = (buf.length - i) % 3; + if (n === 0) + return buf.toString("base64", i); + this.lastNeed = 3 - n; + this.lastTotal = 3; + if (n === 1) { + this.lastChar[0] = buf[buf.length - 1]; + } else { + this.lastChar[0] = buf[buf.length - 2]; + this.lastChar[1] = buf[buf.length - 1]; + } + return buf.toString("base64", i, buf.length - n); + } + function base64End(buf) { + var r = buf && buf.length ? this.write(buf) : ""; + if (this.lastNeed) + return r + this.lastChar.toString("base64", 0, 3 - this.lastNeed); + return r; + } + function simpleWrite(buf) { + return buf.toString(this.encoding); + } + function simpleEnd(buf) { + return buf && buf.length ? this.write(buf) : ""; + } +}); + +// node_modules/readable-stream/lib/_stream_readable.js +var require__stream_readable = __commonJS((exports, module) => { + var pna = require_process_nextick_args(); + module.exports = Readable; + var isArray = require_isarray(); + var Duplex; + Readable.ReadableState = ReadableState; + var EE = __require("events").EventEmitter; + var EElistenerCount = function(emitter, type) { + return emitter.listeners(type).length; + }; + var Stream = __require("stream"); + var Buffer2 = require_safe_buffer().Buffer; + var OurUint8Array = global.Uint8Array || function() { + }; + function _uint8ArrayToBuffer(chunk) { + return Buffer2.from(chunk); + } + function _isUint8Array(obj) { + return Buffer2.isBuffer(obj) || obj instanceof OurUint8Array; + } + var util = Object.create(require_util()); + util.inherits = require_inherits(); + var debugUtil = __require("util"); + var debug = undefined; + if (debugUtil && debugUtil.debuglog) { + debug = debugUtil.debuglog("stream"); + } else { + debug = function() { + }; + } + var BufferList = require_BufferList2(); + var destroyImpl = require_destroy(); + var StringDecoder; + util.inherits(Readable, Stream); + var kProxyEvents = ["error", "close", "destroy", "pause", "resume"]; + function prependListener(emitter, event, fn) { + if (typeof emitter.prependListener === "function") + return emitter.prependListener(event, fn); + if (!emitter._events || !emitter._events[event]) + emitter.on(event, fn); + else if (isArray(emitter._events[event])) + emitter._events[event].unshift(fn); + else + emitter._events[event] = [fn, emitter._events[event]]; + } + function ReadableState(options, stream) { + Duplex = Duplex || require__stream_duplex(); + options = options || {}; + var isDuplex = stream instanceof Duplex; + this.objectMode = !!options.objectMode; + if (isDuplex) + this.objectMode = this.objectMode || !!options.readableObjectMode; + var hwm = options.highWaterMark; + var readableHwm = options.readableHighWaterMark; + var defaultHwm = this.objectMode ? 16 : 16 * 1024; + if (hwm || hwm === 0) + this.highWaterMark = hwm; + else if (isDuplex && (readableHwm || readableHwm === 0)) + this.highWaterMark = readableHwm; + else + this.highWaterMark = defaultHwm; + this.highWaterMark = Math.floor(this.highWaterMark); + this.buffer = new BufferList; + this.length = 0; + this.pipes = null; + this.pipesCount = 0; + this.flowing = null; + this.ended = false; + this.endEmitted = false; + this.reading = false; + this.sync = true; + this.needReadable = false; + this.emittedReadable = false; + this.readableListening = false; + this.resumeScheduled = false; + this.destroyed = false; + this.defaultEncoding = options.defaultEncoding || "utf8"; + this.awaitDrain = 0; + this.readingMore = false; + this.decoder = null; + this.encoding = null; + if (options.encoding) { + if (!StringDecoder) + StringDecoder = require_string_decoder().StringDecoder; + this.decoder = new StringDecoder(options.encoding); + this.encoding = options.encoding; + } + } + function Readable(options) { + Duplex = Duplex || require__stream_duplex(); + if (!(this instanceof Readable)) + return new Readable(options); + this._readableState = new ReadableState(options, this); + this.readable = true; + if (options) { + if (typeof options.read === "function") + this._read = options.read; + if (typeof options.destroy === "function") + this._destroy = options.destroy; + } + Stream.call(this); + } + Object.defineProperty(Readable.prototype, "destroyed", { + get: function() { + if (this._readableState === undefined) { + return false; + } + return this._readableState.destroyed; + }, + set: function(value) { + if (!this._readableState) { + return; + } + this._readableState.destroyed = value; + } + }); + Readable.prototype.destroy = destroyImpl.destroy; + Readable.prototype._undestroy = destroyImpl.undestroy; + Readable.prototype._destroy = function(err, cb) { + this.push(null); + cb(err); + }; + Readable.prototype.push = function(chunk, encoding) { + var state = this._readableState; + var skipChunkCheck; + if (!state.objectMode) { + if (typeof chunk === "string") { + encoding = encoding || state.defaultEncoding; + if (encoding !== state.encoding) { + chunk = Buffer2.from(chunk, encoding); + encoding = ""; + } + skipChunkCheck = true; + } + } else { + skipChunkCheck = true; + } + return readableAddChunk(this, chunk, encoding, false, skipChunkCheck); + }; + Readable.prototype.unshift = function(chunk) { + return readableAddChunk(this, chunk, null, true, false); + }; + function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) { + var state = stream._readableState; + if (chunk === null) { + state.reading = false; + onEofChunk(stream, state); + } else { + var er; + if (!skipChunkCheck) + er = chunkInvalid(state, chunk); + if (er) { + stream.emit("error", er); + } else if (state.objectMode || chunk && chunk.length > 0) { + if (typeof chunk !== "string" && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer2.prototype) { + chunk = _uint8ArrayToBuffer(chunk); + } + if (addToFront) { + if (state.endEmitted) + stream.emit("error", new Error("stream.unshift() after end event")); + else + addChunk(stream, state, chunk, true); + } else if (state.ended) { + stream.emit("error", new Error("stream.push() after EOF")); + } else { + state.reading = false; + if (state.decoder && !encoding) { + chunk = state.decoder.write(chunk); + if (state.objectMode || chunk.length !== 0) + addChunk(stream, state, chunk, false); + else + maybeReadMore(stream, state); + } else { + addChunk(stream, state, chunk, false); + } + } + } else if (!addToFront) { + state.reading = false; + } + } + return needMoreData(state); + } + function addChunk(stream, state, chunk, addToFront) { + if (state.flowing && state.length === 0 && !state.sync) { + stream.emit("data", chunk); + stream.read(0); + } else { + state.length += state.objectMode ? 1 : chunk.length; + if (addToFront) + state.buffer.unshift(chunk); + else + state.buffer.push(chunk); + if (state.needReadable) + emitReadable(stream); + } + maybeReadMore(stream, state); + } + function chunkInvalid(state, chunk) { + var er; + if (!_isUint8Array(chunk) && typeof chunk !== "string" && chunk !== undefined && !state.objectMode) { + er = new TypeError("Invalid non-string/buffer chunk"); + } + return er; + } + function needMoreData(state) { + return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0); + } + Readable.prototype.isPaused = function() { + return this._readableState.flowing === false; + }; + Readable.prototype.setEncoding = function(enc) { + if (!StringDecoder) + StringDecoder = require_string_decoder().StringDecoder; + this._readableState.decoder = new StringDecoder(enc); + this._readableState.encoding = enc; + return this; + }; + var MAX_HWM = 8388608; + function computeNewHighWaterMark(n) { + if (n >= MAX_HWM) { + n = MAX_HWM; + } else { + n--; + n |= n >>> 1; + n |= n >>> 2; + n |= n >>> 4; + n |= n >>> 8; + n |= n >>> 16; + n++; + } + return n; + } + function howMuchToRead(n, state) { + if (n <= 0 || state.length === 0 && state.ended) + return 0; + if (state.objectMode) + return 1; + if (n !== n) { + if (state.flowing && state.length) + return state.buffer.head.data.length; + else + return state.length; + } + if (n > state.highWaterMark) + state.highWaterMark = computeNewHighWaterMark(n); + if (n <= state.length) + return n; + if (!state.ended) { + state.needReadable = true; + return 0; + } + return state.length; + } + Readable.prototype.read = function(n) { + debug("read", n); + n = parseInt(n, 10); + var state = this._readableState; + var nOrig = n; + if (n !== 0) + state.emittedReadable = false; + if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) { + debug("read: emitReadable", state.length, state.ended); + if (state.length === 0 && state.ended) + endReadable(this); + else + emitReadable(this); + return null; + } + n = howMuchToRead(n, state); + if (n === 0 && state.ended) { + if (state.length === 0) + endReadable(this); + return null; + } + var doRead = state.needReadable; + debug("need readable", doRead); + if (state.length === 0 || state.length - n < state.highWaterMark) { + doRead = true; + debug("length less than watermark", doRead); + } + if (state.ended || state.reading) { + doRead = false; + debug("reading or ended", doRead); + } else if (doRead) { + debug("do read"); + state.reading = true; + state.sync = true; + if (state.length === 0) + state.needReadable = true; + this._read(state.highWaterMark); + state.sync = false; + if (!state.reading) + n = howMuchToRead(nOrig, state); + } + var ret; + if (n > 0) + ret = fromList(n, state); + else + ret = null; + if (ret === null) { + state.needReadable = true; + n = 0; + } else { + state.length -= n; + } + if (state.length === 0) { + if (!state.ended) + state.needReadable = true; + if (nOrig !== n && state.ended) + endReadable(this); + } + if (ret !== null) + this.emit("data", ret); + return ret; + }; + function onEofChunk(stream, state) { + if (state.ended) + return; + if (state.decoder) { + var chunk = state.decoder.end(); + if (chunk && chunk.length) { + state.buffer.push(chunk); + state.length += state.objectMode ? 1 : chunk.length; + } + } + state.ended = true; + emitReadable(stream); + } + function emitReadable(stream) { + var state = stream._readableState; + state.needReadable = false; + if (!state.emittedReadable) { + debug("emitReadable", state.flowing); + state.emittedReadable = true; + if (state.sync) + pna.nextTick(emitReadable_, stream); + else + emitReadable_(stream); + } + } + function emitReadable_(stream) { + debug("emit readable"); + stream.emit("readable"); + flow(stream); + } + function maybeReadMore(stream, state) { + if (!state.readingMore) { + state.readingMore = true; + pna.nextTick(maybeReadMore_, stream, state); + } + } + function maybeReadMore_(stream, state) { + var len = state.length; + while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) { + debug("maybeReadMore read 0"); + stream.read(0); + if (len === state.length) + break; + else + len = state.length; + } + state.readingMore = false; + } + Readable.prototype._read = function(n) { + this.emit("error", new Error("_read() is not implemented")); + }; + Readable.prototype.pipe = function(dest, pipeOpts) { + var src = this; + var state = this._readableState; + switch (state.pipesCount) { + case 0: + state.pipes = dest; + break; + case 1: + state.pipes = [state.pipes, dest]; + break; + default: + state.pipes.push(dest); + break; + } + state.pipesCount += 1; + debug("pipe count=%d opts=%j", state.pipesCount, pipeOpts); + var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr; + var endFn = doEnd ? onend : unpipe; + if (state.endEmitted) + pna.nextTick(endFn); + else + src.once("end", endFn); + dest.on("unpipe", onunpipe); + function onunpipe(readable, unpipeInfo) { + debug("onunpipe"); + if (readable === src) { + if (unpipeInfo && unpipeInfo.hasUnpiped === false) { + unpipeInfo.hasUnpiped = true; + cleanup(); + } + } + } + function onend() { + debug("onend"); + dest.end(); + } + var ondrain = pipeOnDrain(src); + dest.on("drain", ondrain); + var cleanedUp = false; + function cleanup() { + debug("cleanup"); + dest.removeListener("close", onclose); + dest.removeListener("finish", onfinish); + dest.removeListener("drain", ondrain); + dest.removeListener("error", onerror); + dest.removeListener("unpipe", onunpipe); + src.removeListener("end", onend); + src.removeListener("end", unpipe); + src.removeListener("data", ondata); + cleanedUp = true; + if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) + ondrain(); + } + var increasedAwaitDrain = false; + src.on("data", ondata); + function ondata(chunk) { + debug("ondata"); + increasedAwaitDrain = false; + var ret = dest.write(chunk); + if (ret === false && !increasedAwaitDrain) { + if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) { + debug("false write response, pause", src._readableState.awaitDrain); + src._readableState.awaitDrain++; + increasedAwaitDrain = true; + } + src.pause(); + } + } + function onerror(er) { + debug("onerror", er); + unpipe(); + dest.removeListener("error", onerror); + if (EElistenerCount(dest, "error") === 0) + dest.emit("error", er); + } + prependListener(dest, "error", onerror); + function onclose() { + dest.removeListener("finish", onfinish); + unpipe(); + } + dest.once("close", onclose); + function onfinish() { + debug("onfinish"); + dest.removeListener("close", onclose); + unpipe(); + } + dest.once("finish", onfinish); + function unpipe() { + debug("unpipe"); + src.unpipe(dest); + } + dest.emit("pipe", src); + if (!state.flowing) { + debug("pipe resume"); + src.resume(); + } + return dest; + }; + function pipeOnDrain(src) { + return function() { + var state = src._readableState; + debug("pipeOnDrain", state.awaitDrain); + if (state.awaitDrain) + state.awaitDrain--; + if (state.awaitDrain === 0 && EElistenerCount(src, "data")) { + state.flowing = true; + flow(src); + } + }; + } + Readable.prototype.unpipe = function(dest) { + var state = this._readableState; + var unpipeInfo = { hasUnpiped: false }; + if (state.pipesCount === 0) + return this; + if (state.pipesCount === 1) { + if (dest && dest !== state.pipes) + return this; + if (!dest) + dest = state.pipes; + state.pipes = null; + state.pipesCount = 0; + state.flowing = false; + if (dest) + dest.emit("unpipe", this, unpipeInfo); + return this; + } + if (!dest) { + var dests = state.pipes; + var len = state.pipesCount; + state.pipes = null; + state.pipesCount = 0; + state.flowing = false; + for (var i = 0;i < len; i++) { + dests[i].emit("unpipe", this, unpipeInfo); + } + return this; + } + var index = indexOf(state.pipes, dest); + if (index === -1) + return this; + state.pipes.splice(index, 1); + state.pipesCount -= 1; + if (state.pipesCount === 1) + state.pipes = state.pipes[0]; + dest.emit("unpipe", this, unpipeInfo); + return this; + }; + Readable.prototype.on = function(ev, fn) { + var res = Stream.prototype.on.call(this, ev, fn); + if (ev === "data") { + if (this._readableState.flowing !== false) + this.resume(); + } else if (ev === "readable") { + var state = this._readableState; + if (!state.endEmitted && !state.readableListening) { + state.readableListening = state.needReadable = true; + state.emittedReadable = false; + if (!state.reading) { + pna.nextTick(nReadingNextTick, this); + } else if (state.length) { + emitReadable(this); + } + } + } + return res; + }; + Readable.prototype.addListener = Readable.prototype.on; + function nReadingNextTick(self2) { + debug("readable nexttick read 0"); + self2.read(0); + } + Readable.prototype.resume = function() { + var state = this._readableState; + if (!state.flowing) { + debug("resume"); + state.flowing = true; + resume(this, state); + } + return this; + }; + function resume(stream, state) { + if (!state.resumeScheduled) { + state.resumeScheduled = true; + pna.nextTick(resume_, stream, state); + } + } + function resume_(stream, state) { + if (!state.reading) { + debug("resume read 0"); + stream.read(0); + } + state.resumeScheduled = false; + state.awaitDrain = 0; + stream.emit("resume"); + flow(stream); + if (state.flowing && !state.reading) + stream.read(0); + } + Readable.prototype.pause = function() { + debug("call pause flowing=%j", this._readableState.flowing); + if (this._readableState.flowing !== false) { + debug("pause"); + this._readableState.flowing = false; + this.emit("pause"); + } + return this; + }; + function flow(stream) { + var state = stream._readableState; + debug("flow", state.flowing); + while (state.flowing && stream.read() !== null) { + } + } + Readable.prototype.wrap = function(stream) { + var _this = this; + var state = this._readableState; + var paused = false; + stream.on("end", function() { + debug("wrapped end"); + if (state.decoder && !state.ended) { + var chunk = state.decoder.end(); + if (chunk && chunk.length) + _this.push(chunk); + } + _this.push(null); + }); + stream.on("data", function(chunk) { + debug("wrapped data"); + if (state.decoder) + chunk = state.decoder.write(chunk); + if (state.objectMode && (chunk === null || chunk === undefined)) + return; + else if (!state.objectMode && (!chunk || !chunk.length)) + return; + var ret = _this.push(chunk); + if (!ret) { + paused = true; + stream.pause(); + } + }); + for (var i in stream) { + if (this[i] === undefined && typeof stream[i] === "function") { + this[i] = function(method) { + return function() { + return stream[method].apply(stream, arguments); + }; + }(i); + } + } + for (var n = 0;n < kProxyEvents.length; n++) { + stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n])); + } + this._read = function(n2) { + debug("wrapped _read", n2); + if (paused) { + paused = false; + stream.resume(); + } + }; + return this; + }; + Object.defineProperty(Readable.prototype, "readableHighWaterMark", { + enumerable: false, + get: function() { + return this._readableState.highWaterMark; + } + }); + Readable._fromList = fromList; + function fromList(n, state) { + if (state.length === 0) + return null; + var ret; + if (state.objectMode) + ret = state.buffer.shift(); + else if (!n || n >= state.length) { + if (state.decoder) + ret = state.buffer.join(""); + else if (state.buffer.length === 1) + ret = state.buffer.head.data; + else + ret = state.buffer.concat(state.length); + state.buffer.clear(); + } else { + ret = fromListPartial(n, state.buffer, state.decoder); + } + return ret; + } + function fromListPartial(n, list, hasStrings) { + var ret; + if (n < list.head.data.length) { + ret = list.head.data.slice(0, n); + list.head.data = list.head.data.slice(n); + } else if (n === list.head.data.length) { + ret = list.shift(); + } else { + ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list); + } + return ret; + } + function copyFromBufferString(n, list) { + var p = list.head; + var c = 1; + var ret = p.data; + n -= ret.length; + while (p = p.next) { + var str = p.data; + var nb = n > str.length ? str.length : n; + if (nb === str.length) + ret += str; + else + ret += str.slice(0, n); + n -= nb; + if (n === 0) { + if (nb === str.length) { + ++c; + if (p.next) + list.head = p.next; + else + list.head = list.tail = null; + } else { + list.head = p; + p.data = str.slice(nb); + } + break; + } + ++c; + } + list.length -= c; + return ret; + } + function copyFromBuffer(n, list) { + var ret = Buffer2.allocUnsafe(n); + var p = list.head; + var c = 1; + p.data.copy(ret); + n -= p.data.length; + while (p = p.next) { + var buf = p.data; + var nb = n > buf.length ? buf.length : n; + buf.copy(ret, ret.length - n, 0, nb); + n -= nb; + if (n === 0) { + if (nb === buf.length) { + ++c; + if (p.next) + list.head = p.next; + else + list.head = list.tail = null; + } else { + list.head = p; + p.data = buf.slice(nb); + } + break; + } + ++c; + } + list.length -= c; + return ret; + } + function endReadable(stream) { + var state = stream._readableState; + if (state.length > 0) + throw new Error('"endReadable()" called on non-empty stream'); + if (!state.endEmitted) { + state.ended = true; + pna.nextTick(endReadableNT, state, stream); + } + } + function endReadableNT(state, stream) { + if (!state.endEmitted && state.length === 0) { + state.endEmitted = true; + stream.readable = false; + stream.emit("end"); + } + } + function indexOf(xs, x) { + for (var i = 0, l = xs.length;i < l; i++) { + if (xs[i] === x) + return i; + } + return -1; + } +}); + +// node_modules/readable-stream/lib/_stream_transform.js +var require__stream_transform = __commonJS((exports, module) => { + module.exports = Transform; + var Duplex = require__stream_duplex(); + var util = Object.create(require_util()); + util.inherits = require_inherits(); + util.inherits(Transform, Duplex); + function afterTransform(er, data) { + var ts = this._transformState; + ts.transforming = false; + var cb = ts.writecb; + if (!cb) { + return this.emit("error", new Error("write callback called multiple times")); + } + ts.writechunk = null; + ts.writecb = null; + if (data != null) + this.push(data); + cb(er); + var rs = this._readableState; + rs.reading = false; + if (rs.needReadable || rs.length < rs.highWaterMark) { + this._read(rs.highWaterMark); + } + } + function Transform(options) { + if (!(this instanceof Transform)) + return new Transform(options); + Duplex.call(this, options); + this._transformState = { + afterTransform: afterTransform.bind(this), + needTransform: false, + transforming: false, + writecb: null, + writechunk: null, + writeencoding: null + }; + this._readableState.needReadable = true; + this._readableState.sync = false; + if (options) { + if (typeof options.transform === "function") + this._transform = options.transform; + if (typeof options.flush === "function") + this._flush = options.flush; + } + this.on("prefinish", prefinish); + } + function prefinish() { + var _this = this; + if (typeof this._flush === "function") { + this._flush(function(er, data) { + done(_this, er, data); + }); + } else { + done(this, null, null); + } + } + Transform.prototype.push = function(chunk, encoding) { + this._transformState.needTransform = false; + return Duplex.prototype.push.call(this, chunk, encoding); + }; + Transform.prototype._transform = function(chunk, encoding, cb) { + throw new Error("_transform() is not implemented"); + }; + Transform.prototype._write = function(chunk, encoding, cb) { + var ts = this._transformState; + ts.writecb = cb; + ts.writechunk = chunk; + ts.writeencoding = encoding; + if (!ts.transforming) { + var rs = this._readableState; + if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) + this._read(rs.highWaterMark); + } + }; + Transform.prototype._read = function(n) { + var ts = this._transformState; + if (ts.writechunk !== null && ts.writecb && !ts.transforming) { + ts.transforming = true; + this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform); + } else { + ts.needTransform = true; + } + }; + Transform.prototype._destroy = function(err, cb) { + var _this2 = this; + Duplex.prototype._destroy.call(this, err, function(err2) { + cb(err2); + _this2.emit("close"); + }); + }; + function done(stream, er, data) { + if (er) + return stream.emit("error", er); + if (data != null) + stream.push(data); + if (stream._writableState.length) + throw new Error("Calling transform done when ws.length != 0"); + if (stream._transformState.transforming) + throw new Error("Calling transform done when still transforming"); + return stream.push(null); + } +}); + +// node_modules/readable-stream/lib/_stream_passthrough.js +var require__stream_passthrough = __commonJS((exports, module) => { + module.exports = PassThrough; + var Transform = require__stream_transform(); + var util = Object.create(require_util()); + util.inherits = require_inherits(); + util.inherits(PassThrough, Transform); + function PassThrough(options) { + if (!(this instanceof PassThrough)) + return new PassThrough(options); + Transform.call(this, options); + } + PassThrough.prototype._transform = function(chunk, encoding, cb) { + cb(null, chunk); + }; +}); + +// node_modules/readable-stream/readable.js +var require_readable = __commonJS((exports, module) => { + var Stream = __require("stream"); + if (process.env.READABLE_STREAM === "disable" && Stream) { + module.exports = Stream; + exports = module.exports = Stream.Readable; + exports.Readable = Stream.Readable; + exports.Writable = Stream.Writable; + exports.Duplex = Stream.Duplex; + exports.Transform = Stream.Transform; + exports.PassThrough = Stream.PassThrough; + exports.Stream = Stream; + } else { + exports = module.exports = require__stream_readable(); + exports.Stream = Stream || exports; + exports.Readable = exports; + exports.Writable = require__stream_writable(); + exports.Duplex = require__stream_duplex(); + exports.Transform = require__stream_transform(); + exports.PassThrough = require__stream_passthrough(); + } +}); + +// node_modules/mysql/lib/protocol/sequences/Query.js +var require_Query = __commonJS((exports, module) => { + var ClientConstants = require_client(); + var fs2 = __require("fs"); + var Packets = require_packets(); + var ResultSet = require_ResultSet(); + var Sequence = require_Sequence(); + var ServerStatus = require_server_status(); + var Readable = require_readable(); + var Util = __require("util"); + module.exports = Query; + Util.inherits(Query, Sequence); + function Query(options, callback) { + Sequence.call(this, options, callback); + this.sql = options.sql; + this.values = options.values; + this.typeCast = options.typeCast === undefined ? true : options.typeCast; + this.nestTables = options.nestTables || false; + this._resultSet = null; + this._results = []; + this._fields = []; + this._index = 0; + this._loadError = null; + } + Query.prototype.start = function() { + this.emit("packet", new Packets.ComQueryPacket(this.sql)); + }; + Query.prototype.determinePacket = function determinePacket(byte, parser) { + var resultSet = this._resultSet; + if (!resultSet) { + switch (byte) { + case 0: + return Packets.OkPacket; + case 251: + return Packets.LocalInfileRequestPacket; + case 255: + return Packets.ErrorPacket; + default: + return Packets.ResultSetHeaderPacket; + } + } + if (resultSet.eofPackets.length === 0) { + return resultSet.fieldPackets.length < resultSet.resultSetHeaderPacket.fieldCount ? Packets.FieldPacket : Packets.EofPacket; + } + if (byte === 255) { + return Packets.ErrorPacket; + } + if (byte === 254 && parser.packetLength() < 9) { + return Packets.EofPacket; + } + return Packets.RowDataPacket; + }; + Query.prototype["OkPacket"] = function(packet) { + try { + if (!this._callback) { + this.emit("result", packet, this._index); + } else { + this._results.push(packet); + this._fields.push(undefined); + } + } finally { + this._index++; + this._resultSet = null; + this._handleFinalResultPacket(packet); + } + }; + Query.prototype["ErrorPacket"] = function(packet) { + var err = this._packetToError(packet); + var results = this._results.length > 0 ? this._results : undefined; + var fields = this._fields.length > 0 ? this._fields : undefined; + err.index = this._index; + err.sql = this.sql; + this.end(err, results, fields); + }; + Query.prototype["LocalInfileRequestPacket"] = function(packet) { + if (this._connection.config.clientFlags & ClientConstants.CLIENT_LOCAL_FILES) { + this._sendLocalDataFile(packet.filename); + } else { + this._loadError = new Error("Load local files command is disabled"); + this._loadError.code = "LOCAL_FILES_DISABLED"; + this._loadError.fatal = false; + this.emit("packet", new Packets.EmptyPacket); + } + }; + Query.prototype["ResultSetHeaderPacket"] = function(packet) { + this._resultSet = new ResultSet(packet); + }; + Query.prototype["FieldPacket"] = function(packet) { + this._resultSet.fieldPackets.push(packet); + }; + Query.prototype["EofPacket"] = function(packet) { + this._resultSet.eofPackets.push(packet); + if (this._resultSet.eofPackets.length === 1 && !this._callback) { + this.emit("fields", this._resultSet.fieldPackets, this._index); + } + if (this._resultSet.eofPackets.length !== 2) { + return; + } + if (this._callback) { + this._results.push(this._resultSet.rows); + this._fields.push(this._resultSet.fieldPackets); + } + this._index++; + this._resultSet = null; + this._handleFinalResultPacket(packet); + }; + Query.prototype._handleFinalResultPacket = function(packet) { + if (packet.serverStatus & ServerStatus.SERVER_MORE_RESULTS_EXISTS) { + return; + } + var results = this._results.length > 1 ? this._results : this._results[0]; + var fields = this._fields.length > 1 ? this._fields : this._fields[0]; + this.end(this._loadError, results, fields); + }; + Query.prototype["RowDataPacket"] = function(packet, parser, connection) { + packet.parse(parser, this._resultSet.fieldPackets, this.typeCast, this.nestTables, connection); + if (this._callback) { + this._resultSet.rows.push(packet); + } else { + this.emit("result", packet, this._index); + } + }; + Query.prototype._sendLocalDataFile = function(path) { + var self2 = this; + var localStream = fs2.createReadStream(path, { + flag: "r", + encoding: null, + autoClose: true + }); + this.on("pause", function() { + localStream.pause(); + }); + this.on("resume", function() { + localStream.resume(); + }); + localStream.on("data", function(data) { + self2.emit("packet", new Packets.LocalDataFilePacket(data)); + }); + localStream.on("error", function(err) { + self2._loadError = err; + localStream.emit("end"); + }); + localStream.on("end", function() { + self2.emit("packet", new Packets.EmptyPacket); + }); + }; + Query.prototype.stream = function(options) { + var self2 = this; + options = options || {}; + options.objectMode = true; + var stream = new Readable(options); + stream._read = function() { + self2._connection && self2._connection.resume(); + }; + stream.once("end", function() { + process.nextTick(function() { + stream.emit("close"); + }); + }); + this.on("result", function(row, i) { + if (!stream.push(row)) + self2._connection.pause(); + stream.emit("result", row, i); + }); + this.on("error", function(err) { + stream.emit("error", err); + }); + this.on("end", function() { + stream.push(null); + }); + this.on("fields", function(fields, i) { + stream.emit("fields", fields, i); + }); + return stream; + }; +}); + +// node_modules/mysql/lib/protocol/sequences/Quit.js +var require_Quit = __commonJS((exports, module) => { + var Sequence = require_Sequence(); + var Util = __require("util"); + var Packets = require_packets(); + module.exports = Quit; + Util.inherits(Quit, Sequence); + function Quit(options, callback) { + if (!callback && typeof options === "function") { + callback = options; + options = {}; + } + Sequence.call(this, options, callback); + this._started = false; + } + Quit.prototype.end = function end(err) { + if (this._ended) { + return; + } + if (!this._started) { + Sequence.prototype.end.call(this, err); + return; + } + if (err && err.code === "ECONNRESET" && err.syscall === "read") { + Sequence.prototype.end.call(this); + return; + } + Sequence.prototype.end.call(this, err); + }; + Quit.prototype.start = function() { + this._started = true; + this.emit("packet", new Packets.ComQuitPacket); + }; +}); + +// node_modules/mysql/lib/protocol/sequences/Statistics.js +var require_Statistics = __commonJS((exports, module) => { + var Sequence = require_Sequence(); + var Util = __require("util"); + var Packets = require_packets(); + module.exports = Statistics; + Util.inherits(Statistics, Sequence); + function Statistics(options, callback) { + if (!callback && typeof options === "function") { + callback = options; + options = {}; + } + Sequence.call(this, options, callback); + } + Statistics.prototype.start = function() { + this.emit("packet", new Packets.ComStatisticsPacket); + }; + Statistics.prototype["StatisticsPacket"] = function(packet) { + this.end(null, packet); + }; + Statistics.prototype.determinePacket = function determinePacket(firstByte) { + if (firstByte === 85) { + return Packets.StatisticsPacket; + } + return; + }; +}); + +// node_modules/mysql/lib/protocol/sequences/index.js +var require_sequences = __commonJS((exports) => { + exports.ChangeUser = require_ChangeUser(); + exports.Handshake = require_Handshake(); + exports.Ping = require_Ping(); + exports.Query = require_Query(); + exports.Quit = require_Quit(); + exports.Sequence = require_Sequence(); + exports.Statistics = require_Statistics(); +}); + +// node_modules/mysql/lib/protocol/PacketWriter.js +var require_PacketWriter = __commonJS((exports, module) => { + var BIT_16 = Math.pow(2, 16); + var BIT_24 = Math.pow(2, 24); + var BUFFER_ALLOC_SIZE = Math.pow(2, 8); + var IEEE_754_BINARY_64_PRECISION = Math.pow(2, 53); + var MAX_PACKET_LENGTH = Math.pow(2, 24) - 1; + var Buffer2 = require_safe_buffer().Buffer; + module.exports = PacketWriter; + function PacketWriter() { + this._buffer = null; + this._offset = 0; + } + PacketWriter.prototype.toBuffer = function toBuffer(parser) { + if (!this._buffer) { + this._buffer = Buffer2.alloc(0); + this._offset = 0; + } + var buffer = this._buffer; + var length = this._offset; + var packets = Math.floor(length / MAX_PACKET_LENGTH) + 1; + this._buffer = Buffer2.allocUnsafe(length + packets * 4); + this._offset = 0; + for (var packet = 0;packet < packets; packet++) { + var isLast = packet + 1 === packets; + var packetLength = isLast ? length % MAX_PACKET_LENGTH : MAX_PACKET_LENGTH; + var packetNumber = parser.incrementPacketNumber(); + this.writeUnsignedNumber(3, packetLength); + this.writeUnsignedNumber(1, packetNumber); + var start = packet * MAX_PACKET_LENGTH; + var end = start + packetLength; + this.writeBuffer(buffer.slice(start, end)); + } + return this._buffer; + }; + PacketWriter.prototype.writeUnsignedNumber = function(bytes, value) { + this._allocate(bytes); + for (var i = 0;i < bytes; i++) { + this._buffer[this._offset++] = value >> i * 8 & 255; + } + }; + PacketWriter.prototype.writeFiller = function(bytes) { + this._allocate(bytes); + for (var i = 0;i < bytes; i++) { + this._buffer[this._offset++] = 0; + } + }; + PacketWriter.prototype.writeNullTerminatedString = function(value, encoding) { + value = value || ""; + value = value + ""; + var bytes = Buffer2.byteLength(value, encoding || "utf-8") + 1; + this._allocate(bytes); + this._buffer.write(value, this._offset, encoding); + this._buffer[this._offset + bytes - 1] = 0; + this._offset += bytes; + }; + PacketWriter.prototype.writeString = function(value) { + value = value || ""; + value = value + ""; + var bytes = Buffer2.byteLength(value, "utf-8"); + this._allocate(bytes); + this._buffer.write(value, this._offset, "utf-8"); + this._offset += bytes; + }; + PacketWriter.prototype.writeBuffer = function(value) { + var bytes = value.length; + this._allocate(bytes); + value.copy(this._buffer, this._offset); + this._offset += bytes; + }; + PacketWriter.prototype.writeLengthCodedNumber = function(value) { + if (value === null) { + this._allocate(1); + this._buffer[this._offset++] = 251; + return; + } + if (value <= 250) { + this._allocate(1); + this._buffer[this._offset++] = value; + return; + } + if (value > IEEE_754_BINARY_64_PRECISION) { + throw new Error("writeLengthCodedNumber: JS precision range exceeded, your " + 'number is > 53 bit: "' + value + '"'); + } + if (value < BIT_16) { + this._allocate(3); + this._buffer[this._offset++] = 252; + } else if (value < BIT_24) { + this._allocate(4); + this._buffer[this._offset++] = 253; + } else { + this._allocate(9); + this._buffer[this._offset++] = 254; + } + this._buffer[this._offset++] = value & 255; + this._buffer[this._offset++] = value >> 8 & 255; + if (value < BIT_16) { + return; + } + this._buffer[this._offset++] = value >> 16 & 255; + if (value < BIT_24) { + return; + } + this._buffer[this._offset++] = value >> 24 & 255; + value = value.toString(2); + value = value.substr(0, value.length - 32); + value = parseInt(value, 2); + this._buffer[this._offset++] = value & 255; + this._buffer[this._offset++] = value >> 8 & 255; + this._buffer[this._offset++] = value >> 16 & 255; + this._buffer[this._offset++] = 0; + }; + PacketWriter.prototype.writeLengthCodedBuffer = function(value) { + var bytes = value.length; + this.writeLengthCodedNumber(bytes); + this.writeBuffer(value); + }; + PacketWriter.prototype.writeNullTerminatedBuffer = function(value) { + this.writeBuffer(value); + this.writeFiller(1); + }; + PacketWriter.prototype.writeLengthCodedString = function(value) { + if (value === null) { + this.writeLengthCodedNumber(null); + return; + } + value = value === undefined ? "" : String(value); + var bytes = Buffer2.byteLength(value, "utf-8"); + this.writeLengthCodedNumber(bytes); + if (!bytes) { + return; + } + this._allocate(bytes); + this._buffer.write(value, this._offset, "utf-8"); + this._offset += bytes; + }; + PacketWriter.prototype._allocate = function _allocate(bytes) { + if (!this._buffer) { + this._buffer = Buffer2.alloc(Math.max(BUFFER_ALLOC_SIZE, bytes)); + this._offset = 0; + return; + } + var bytesRemaining = this._buffer.length - this._offset; + if (bytesRemaining >= bytes) { + return; + } + var newSize = this._buffer.length + Math.max(BUFFER_ALLOC_SIZE, bytes); + var oldBuffer = this._buffer; + this._buffer = Buffer2.alloc(newSize); + oldBuffer.copy(this._buffer); + }; +}); + +// node_modules/mysql/lib/protocol/Protocol.js +var require_Protocol = __commonJS((exports, module) => { + var Parser = require_Parser(); + var Sequences = require_sequences(); + var Packets = require_packets(); + var Stream = __require("stream").Stream; + var Util = __require("util"); + var PacketWriter = require_PacketWriter(); + module.exports = Protocol; + Util.inherits(Protocol, Stream); + function Protocol(options) { + Stream.call(this); + options = options || {}; + this.readable = true; + this.writable = true; + this._config = options.config || {}; + this._connection = options.connection; + this._callback = null; + this._fatalError = null; + this._quitSequence = null; + this._handshake = false; + this._handshaked = false; + this._ended = false; + this._destroyed = false; + this._queue = []; + this._handshakeInitializationPacket = null; + this._parser = new Parser({ + onError: this.handleParserError.bind(this), + onPacket: this._parsePacket.bind(this), + config: this._config + }); + } + Protocol.prototype.write = function(buffer) { + this._parser.write(buffer); + return true; + }; + Protocol.prototype.handshake = function handshake(options, callback) { + if (typeof options === "function") { + callback = options; + options = {}; + } + options = options || {}; + options.config = this._config; + var sequence = this._enqueue(new Sequences.Handshake(options, callback)); + this._handshake = true; + return sequence; + }; + Protocol.prototype.query = function query(options, callback) { + return this._enqueue(new Sequences.Query(options, callback)); + }; + Protocol.prototype.changeUser = function changeUser(options, callback) { + return this._enqueue(new Sequences.ChangeUser(options, callback)); + }; + Protocol.prototype.ping = function ping(options, callback) { + if (typeof options === "function") { + callback = options; + options = {}; + } + return this._enqueue(new Sequences.Ping(options, callback)); + }; + Protocol.prototype.stats = function stats(options, callback) { + if (typeof options === "function") { + callback = options; + options = {}; + } + return this._enqueue(new Sequences.Statistics(options, callback)); + }; + Protocol.prototype.quit = function quit(options, callback) { + if (typeof options === "function") { + callback = options; + options = {}; + } + var self2 = this; + var sequence = this._enqueue(new Sequences.Quit(options, callback)); + sequence.on("end", function() { + self2.end(); + }); + return this._quitSequence = sequence; + }; + Protocol.prototype.end = function() { + if (this._ended) { + return; + } + this._ended = true; + if (this._quitSequence && (this._quitSequence._ended || this._queue[0] === this._quitSequence)) { + this._quitSequence.end(); + this.emit("end"); + return; + } + var err = new Error("Connection lost: The server closed the connection."); + err.fatal = true; + err.code = "PROTOCOL_CONNECTION_LOST"; + this._delegateError(err); + }; + Protocol.prototype.pause = function() { + this._parser.pause(); + var seq = this._queue[0]; + if (seq && seq.emit) { + seq.emit("pause"); + } + }; + Protocol.prototype.resume = function() { + this._parser.resume(); + var seq = this._queue[0]; + if (seq && seq.emit) { + seq.emit("resume"); + } + }; + Protocol.prototype._enqueue = function(sequence) { + if (!this._validateEnqueue(sequence)) { + return sequence; + } + if (this._config.trace) { + sequence._callSite = sequence._callSite || new Error; + } + this._queue.push(sequence); + this.emit("enqueue", sequence); + var self2 = this; + sequence.on("error", function(err) { + self2._delegateError(err, sequence); + }).on("packet", function(packet) { + sequence._timer.active(); + self2._emitPacket(packet); + }).on("timeout", function() { + var err = new Error(sequence.constructor.name + " inactivity timeout"); + err.code = "PROTOCOL_SEQUENCE_TIMEOUT"; + err.fatal = true; + err.timeout = sequence._timeout; + self2._delegateError(err, sequence); + }); + if (sequence.constructor === Sequences.Handshake) { + sequence.on("start-tls", function() { + sequence._timer.active(); + self2._connection._startTLS(function(err) { + if (err) { + err.code = "HANDSHAKE_SSL_ERROR"; + err.fatal = true; + sequence.end(err); + return; + } + sequence._timer.active(); + sequence._tlsUpgradeCompleteHandler(); + }); + }); + sequence.on("end", function() { + self2._handshaked = true; + if (!self2._fatalError) { + self2.emit("handshake", self2._handshakeInitializationPacket); + } + }); + } + sequence.on("end", function() { + self2._dequeue(sequence); + }); + if (this._queue.length === 1) { + this._parser.resetPacketNumber(); + this._startSequence(sequence); + } + return sequence; + }; + Protocol.prototype._validateEnqueue = function _validateEnqueue(sequence) { + var err; + var prefix = "Cannot enqueue " + sequence.constructor.name; + if (this._fatalError) { + err = new Error(prefix + " after fatal error."); + err.code = "PROTOCOL_ENQUEUE_AFTER_FATAL_ERROR"; + } else if (this._quitSequence) { + err = new Error(prefix + " after invoking quit."); + err.code = "PROTOCOL_ENQUEUE_AFTER_QUIT"; + } else if (this._destroyed) { + err = new Error(prefix + " after being destroyed."); + err.code = "PROTOCOL_ENQUEUE_AFTER_DESTROY"; + } else if ((this._handshake || this._handshaked) && sequence.constructor === Sequences.Handshake) { + err = new Error(prefix + " after already enqueuing a Handshake."); + err.code = "PROTOCOL_ENQUEUE_HANDSHAKE_TWICE"; + } else { + return true; + } + var self2 = this; + err.fatal = false; + sequence.on("error", function(err2) { + self2._delegateError(err2, sequence); + }); + process.nextTick(function() { + sequence.end(err); + }); + return false; + }; + Protocol.prototype._parsePacket = function() { + var sequence = this._queue[0]; + if (!sequence) { + var err = new Error("Received packet with no active sequence."); + err.code = "PROTOCOL_STRAY_PACKET"; + err.fatal = true; + this._delegateError(err); + return; + } + var Packet = this._determinePacket(sequence); + var packet = new Packet({ protocol41: this._config.protocol41 }); + var packetName = Packet.name; + if (Packet === Packets.RowDataPacket) { + sequence.RowDataPacket(packet, this._parser, this._connection); + if (this._config.debug) { + this._debugPacket(true, packet); + } + return; + } + if (this._config.debug) { + this._parsePacketDebug(packet); + } else { + packet.parse(this._parser); + } + if (Packet === Packets.HandshakeInitializationPacket) { + this._handshakeInitializationPacket = packet; + this.emit("initialize", packet); + } + sequence._timer.active(); + if (!sequence[packetName]) { + var err = new Error("Received packet in the wrong sequence."); + err.code = "PROTOCOL_INCORRECT_PACKET_SEQUENCE"; + err.fatal = true; + this._delegateError(err); + return; + } + sequence[packetName](packet); + }; + Protocol.prototype._parsePacketDebug = function _parsePacketDebug(packet) { + try { + packet.parse(this._parser); + } finally { + this._debugPacket(true, packet); + } + }; + Protocol.prototype._emitPacket = function(packet) { + var packetWriter = new PacketWriter; + packet.write(packetWriter); + this.emit("data", packetWriter.toBuffer(this._parser)); + if (this._config.debug) { + this._debugPacket(false, packet); + } + }; + Protocol.prototype._determinePacket = function(sequence) { + var firstByte = this._parser.peak(); + if (sequence.determinePacket) { + var Packet = sequence.determinePacket(firstByte, this._parser); + if (Packet) { + return Packet; + } + } + switch (firstByte) { + case 0: + return Packets.OkPacket; + case 254: + return Packets.EofPacket; + case 255: + return Packets.ErrorPacket; + } + throw new Error("Could not determine packet, firstByte = " + firstByte); + }; + Protocol.prototype._dequeue = function(sequence) { + sequence._timer.stop(); + if (this._fatalError) { + return; + } + this._queue.shift(); + var sequence = this._queue[0]; + if (!sequence) { + this.emit("drain"); + return; + } + this._parser.resetPacketNumber(); + this._startSequence(sequence); + }; + Protocol.prototype._startSequence = function(sequence) { + if (sequence._timeout > 0 && isFinite(sequence._timeout)) { + sequence._timer.start(sequence._timeout); + } + if (sequence.constructor === Sequences.ChangeUser) { + sequence.start(this._handshakeInitializationPacket); + } else { + sequence.start(); + } + }; + Protocol.prototype.handleNetworkError = function(err) { + err.fatal = true; + var sequence = this._queue[0]; + if (sequence) { + sequence.end(err); + } else { + this._delegateError(err); + } + }; + Protocol.prototype.handleParserError = function handleParserError(err) { + var sequence = this._queue[0]; + if (sequence) { + sequence.end(err); + } else { + this._delegateError(err); + } + }; + Protocol.prototype._delegateError = function(err, sequence) { + if (this._fatalError) { + return; + } + if (err.fatal) { + this._fatalError = err; + } + if (this._shouldErrorBubbleUp(err, sequence)) { + this.emit("unhandledError", err); + } else if (err.fatal) { + var queue = this._queue; + process.nextTick(function() { + queue.forEach(function(sequence2) { + sequence2.end(err); + }); + queue.length = 0; + }); + } + if (err.fatal) { + this.emit("end", err); + } + }; + Protocol.prototype._shouldErrorBubbleUp = function(err, sequence) { + if (sequence) { + if (sequence.hasErrorHandler()) { + return false; + } else if (!err.fatal) { + return true; + } + } + return err.fatal && !this._hasPendingErrorHandlers(); + }; + Protocol.prototype._hasPendingErrorHandlers = function() { + return this._queue.some(function(sequence) { + return sequence.hasErrorHandler(); + }); + }; + Protocol.prototype.destroy = function() { + this._destroyed = true; + this._parser.pause(); + if (this._connection.state !== "disconnected") { + if (!this._ended) { + this.end(); + } + } + }; + Protocol.prototype._debugPacket = function(incoming, packet) { + var connection = this._connection; + var direction = incoming ? "<--" : "-->"; + var packetName = packet.constructor.name; + var threadId = connection && connection.threadId !== null ? " (" + connection.threadId + ")" : ""; + if (Array.isArray(this._config.debug) && this._config.debug.indexOf(packetName) === -1) { + return; + } + var packetPayload = Util.inspect(packet).replace(/^[^{]+/, ""); + console.log("%s%s %s %s\n", direction, threadId, packetName, packetPayload); + }; +}); + +// node_modules/sqlstring/lib/SqlString.js +var require_SqlString = __commonJS((exports) => { + var SqlString = exports; + var ID_GLOBAL_REGEXP = /`/g; + var QUAL_GLOBAL_REGEXP = /\./g; + var CHARS_GLOBAL_REGEXP = /[\0\b\t\n\r\x1a\"\'\\]/g; + var CHARS_ESCAPE_MAP = { + "\0": "\\0", + "\b": "\\b", + "\t": "\\t", + "\n": "\\n", + "\r": "\\r", + "\x1A": "\\Z", + '"': '\\"', + "\'": "\\\'", + "\\": "\\\\" + }; + SqlString.escapeId = function escapeId(val, forbidQualified) { + if (Array.isArray(val)) { + var sql = ""; + for (var i = 0;i < val.length; i++) { + sql += (i === 0 ? "" : ", ") + SqlString.escapeId(val[i], forbidQualified); + } + return sql; + } else if (forbidQualified) { + return "`" + String(val).replace(ID_GLOBAL_REGEXP, "``") + "`"; + } else { + return "`" + String(val).replace(ID_GLOBAL_REGEXP, "``").replace(QUAL_GLOBAL_REGEXP, "`.`") + "`"; + } + }; + SqlString.escape = function escape(val, stringifyObjects, timeZone) { + if (val === undefined || val === null) { + return "NULL"; + } + switch (typeof val) { + case "boolean": + return val ? "true" : "false"; + case "number": + return val + ""; + case "object": + if (val instanceof Date) { + return SqlString.dateToString(val, timeZone || "local"); + } else if (Array.isArray(val)) { + return SqlString.arrayToList(val, timeZone); + } else if (Buffer.isBuffer(val)) { + return SqlString.bufferToString(val); + } else if (typeof val.toSqlString === "function") { + return String(val.toSqlString()); + } else if (stringifyObjects) { + return escapeString(val.toString()); + } else { + return SqlString.objectToValues(val, timeZone); + } + default: + return escapeString(val); + } + }; + SqlString.arrayToList = function arrayToList(array, timeZone) { + var sql = ""; + for (var i = 0;i < array.length; i++) { + var val = array[i]; + if (Array.isArray(val)) { + sql += (i === 0 ? "" : ", ") + "(" + SqlString.arrayToList(val, timeZone) + ")"; + } else { + sql += (i === 0 ? "" : ", ") + SqlString.escape(val, true, timeZone); + } + } + return sql; + }; + SqlString.format = function format(sql, values, stringifyObjects, timeZone) { + if (values == null) { + return sql; + } + if (!(values instanceof Array || Array.isArray(values))) { + values = [values]; + } + var chunkIndex = 0; + var placeholdersRegex = /\?+/g; + var result = ""; + var valuesIndex = 0; + var match; + while (valuesIndex < values.length && (match = placeholdersRegex.exec(sql))) { + var len = match[0].length; + if (len > 2) { + continue; + } + var value = len === 2 ? SqlString.escapeId(values[valuesIndex]) : SqlString.escape(values[valuesIndex], stringifyObjects, timeZone); + result += sql.slice(chunkIndex, match.index) + value; + chunkIndex = placeholdersRegex.lastIndex; + valuesIndex++; + } + if (chunkIndex === 0) { + return sql; + } + if (chunkIndex < sql.length) { + return result + sql.slice(chunkIndex); + } + return result; + }; + SqlString.dateToString = function dateToString(date, timeZone) { + var dt = new Date(date); + if (isNaN(dt.getTime())) { + return "NULL"; + } + var year; + var month; + var day; + var hour; + var minute; + var second; + var millisecond; + if (timeZone === "local") { + year = dt.getFullYear(); + month = dt.getMonth() + 1; + day = dt.getDate(); + hour = dt.getHours(); + minute = dt.getMinutes(); + second = dt.getSeconds(); + millisecond = dt.getMilliseconds(); + } else { + var tz = convertTimezone(timeZone); + if (tz !== false && tz !== 0) { + dt.setTime(dt.getTime() + tz * 60000); + } + year = dt.getUTCFullYear(); + month = dt.getUTCMonth() + 1; + day = dt.getUTCDate(); + hour = dt.getUTCHours(); + minute = dt.getUTCMinutes(); + second = dt.getUTCSeconds(); + millisecond = dt.getUTCMilliseconds(); + } + var str = zeroPad(year, 4) + "-" + zeroPad(month, 2) + "-" + zeroPad(day, 2) + " " + zeroPad(hour, 2) + ":" + zeroPad(minute, 2) + ":" + zeroPad(second, 2) + "." + zeroPad(millisecond, 3); + return escapeString(str); + }; + SqlString.bufferToString = function bufferToString(buffer) { + return "X" + escapeString(buffer.toString("hex")); + }; + SqlString.objectToValues = function objectToValues(object, timeZone) { + var sql = ""; + for (var key in object) { + var val = object[key]; + if (typeof val === "function") { + continue; + } + sql += (sql.length === 0 ? "" : ", ") + SqlString.escapeId(key) + " = " + SqlString.escape(val, true, timeZone); + } + return sql; + }; + SqlString.raw = function raw(sql) { + if (typeof sql !== "string") { + throw new TypeError("argument sql must be a string"); + } + return { + toSqlString: function toSqlString() { + return sql; + } + }; + }; + function escapeString(val) { + var chunkIndex = CHARS_GLOBAL_REGEXP.lastIndex = 0; + var escapedVal = ""; + var match; + while (match = CHARS_GLOBAL_REGEXP.exec(val)) { + escapedVal += val.slice(chunkIndex, match.index) + CHARS_ESCAPE_MAP[match[0]]; + chunkIndex = CHARS_GLOBAL_REGEXP.lastIndex; + } + if (chunkIndex === 0) { + return "'" + val + "'"; + } + if (chunkIndex < val.length) { + return "'" + escapedVal + val.slice(chunkIndex) + "'"; + } + return "'" + escapedVal + "'"; + } + function zeroPad(number, length) { + number = number.toString(); + while (number.length < length) { + number = "0" + number; + } + return number; + } + function convertTimezone(tz) { + if (tz === "Z") { + return 0; + } + var m = tz.match(/([\+\-\s])(\d\d):?(\d\d)?/); + if (m) { + return (m[1] === "-" ? -1 : 1) * (parseInt(m[2], 10) + (m[3] ? parseInt(m[3], 10) : 0) / 60) * 60; + } + return false; + } +}); + +// node_modules/mysql/lib/Connection.js +var require_Connection = __commonJS((exports, module) => { + var Crypto = __require("crypto"); + var Events = __require("events"); + var Net = __require("net"); + var tls = __require("tls"); + var ConnectionConfig = require_ConnectionConfig(); + var Protocol = require_Protocol(); + var SqlString = require_SqlString(); + var Query = require_Query(); + var Util = __require("util"); + module.exports = Connection; + Util.inherits(Connection, Events.EventEmitter); + function Connection(options) { + Events.EventEmitter.call(this); + this.config = options.config; + this._socket = options.socket; + this._protocol = new Protocol({ config: this.config, connection: this }); + this._connectCalled = false; + this.state = "disconnected"; + this.threadId = null; + } + Connection.createQuery = function createQuery(sql, values, callback) { + if (sql instanceof Query) { + return sql; + } + var cb = callback; + var options = {}; + if (typeof sql === "function") { + cb = sql; + } else if (typeof sql === "object") { + options = Object.create(sql); + if (typeof values === "function") { + cb = values; + } else if (values !== undefined) { + Object.defineProperty(options, "values", { value: values }); + } + } else { + options.sql = sql; + if (typeof values === "function") { + cb = values; + } else if (values !== undefined) { + options.values = values; + } + } + if (cb !== undefined) { + cb = wrapCallbackInDomain(null, cb); + if (cb === undefined) { + throw new TypeError("argument callback must be a function when provided"); + } + } + return new Query(options, cb); + }; + Connection.prototype.connect = function connect(options, callback) { + if (!callback && typeof options === "function") { + callback = options; + options = {}; + } + if (!this._connectCalled) { + this._connectCalled = true; + this._socket = this.config.socketPath ? Net.createConnection(this.config.socketPath) : Net.createConnection(this.config.port, this.config.host); + if (Events.usingDomains) { + this._socket.domain = this.domain; + } + var connection = this; + this._protocol.on("data", function(data) { + connection._socket.write(data); + }); + this._socket.on("data", wrapToDomain(connection, function(data) { + connection._protocol.write(data); + })); + this._protocol.on("end", function() { + connection._socket.end(); + }); + this._socket.on("end", wrapToDomain(connection, function() { + connection._protocol.end(); + })); + this._socket.on("error", this._handleNetworkError.bind(this)); + this._socket.on("connect", this._handleProtocolConnect.bind(this)); + this._protocol.on("handshake", this._handleProtocolHandshake.bind(this)); + this._protocol.on("initialize", this._handleProtocolInitialize.bind(this)); + this._protocol.on("unhandledError", this._handleProtocolError.bind(this)); + this._protocol.on("drain", this._handleProtocolDrain.bind(this)); + this._protocol.on("end", this._handleProtocolEnd.bind(this)); + this._protocol.on("enqueue", this._handleProtocolEnqueue.bind(this)); + if (this.config.connectTimeout) { + var handleConnectTimeout = this._handleConnectTimeout.bind(this); + this._socket.setTimeout(this.config.connectTimeout, handleConnectTimeout); + this._socket.once("connect", function() { + this.setTimeout(0, handleConnectTimeout); + }); + } + } + this._protocol.handshake(options, wrapCallbackInDomain(this, callback)); + }; + Connection.prototype.changeUser = function changeUser(options, callback) { + if (!callback && typeof options === "function") { + callback = options; + options = {}; + } + this._implyConnect(); + var charsetNumber = options.charset ? ConnectionConfig.getCharsetNumber(options.charset) : this.config.charsetNumber; + return this._protocol.changeUser({ + user: options.user || this.config.user, + password: options.password || this.config.password, + database: options.database || this.config.database, + timeout: options.timeout, + charsetNumber, + currentConfig: this.config + }, wrapCallbackInDomain(this, callback)); + }; + Connection.prototype.beginTransaction = function beginTransaction(options, callback) { + if (!callback && typeof options === "function") { + callback = options; + options = {}; + } + options = options || {}; + options.sql = "START TRANSACTION"; + options.values = null; + return this.query(options, callback); + }; + Connection.prototype.commit = function commit(options, callback) { + if (!callback && typeof options === "function") { + callback = options; + options = {}; + } + options = options || {}; + options.sql = "COMMIT"; + options.values = null; + return this.query(options, callback); + }; + Connection.prototype.rollback = function rollback(options, callback) { + if (!callback && typeof options === "function") { + callback = options; + options = {}; + } + options = options || {}; + options.sql = "ROLLBACK"; + options.values = null; + return this.query(options, callback); + }; + Connection.prototype.query = function query(sql, values, cb) { + var query = Connection.createQuery(sql, values, cb); + query._connection = this; + if (!(typeof sql === "object" && ("typeCast" in sql))) { + query.typeCast = this.config.typeCast; + } + if (query.sql) { + query.sql = this.format(query.sql, query.values); + } + if (query._callback) { + query._callback = wrapCallbackInDomain(this, query._callback); + } + this._implyConnect(); + return this._protocol._enqueue(query); + }; + Connection.prototype.ping = function ping(options, callback) { + if (!callback && typeof options === "function") { + callback = options; + options = {}; + } + this._implyConnect(); + this._protocol.ping(options, wrapCallbackInDomain(this, callback)); + }; + Connection.prototype.statistics = function statistics(options, callback) { + if (!callback && typeof options === "function") { + callback = options; + options = {}; + } + this._implyConnect(); + this._protocol.stats(options, wrapCallbackInDomain(this, callback)); + }; + Connection.prototype.end = function end(options, callback) { + var cb = callback; + var opts = options; + if (!callback && typeof options === "function") { + cb = options; + opts = null; + } + opts = Object.create(opts || null); + if (opts.timeout === undefined) { + opts.timeout = 30000; + } + this._implyConnect(); + this._protocol.quit(opts, wrapCallbackInDomain(this, cb)); + }; + Connection.prototype.destroy = function() { + this.state = "disconnected"; + this._implyConnect(); + this._socket.destroy(); + this._protocol.destroy(); + }; + Connection.prototype.pause = function() { + this._socket.pause(); + this._protocol.pause(); + }; + Connection.prototype.resume = function() { + this._socket.resume(); + this._protocol.resume(); + }; + Connection.prototype.escape = function(value) { + return SqlString.escape(value, false, this.config.timezone); + }; + Connection.prototype.escapeId = function escapeId(value) { + return SqlString.escapeId(value, false); + }; + Connection.prototype.format = function(sql, values) { + if (typeof this.config.queryFormat === "function") { + return this.config.queryFormat.call(this, sql, values, this.config.timezone); + } + return SqlString.format(sql, values, this.config.stringifyObjects, this.config.timezone); + }; + if (tls.TLSSocket) { + Connection.prototype._startTLS = function _startTLS(onSecure) { + var connection = this; + createSecureContext(this.config, function(err, secureContext) { + if (err) { + onSecure(err); + return; + } + connection._socket.removeAllListeners("data"); + connection._protocol.removeAllListeners("data"); + var rejectUnauthorized = connection.config.ssl.rejectUnauthorized; + var secureEstablished = false; + var secureSocket = new tls.TLSSocket(connection._socket, { + rejectUnauthorized, + requestCert: true, + secureContext, + isServer: false + }); + secureSocket.on("_tlsError", function(err2) { + if (secureEstablished) { + connection._handleNetworkError(err2); + } else { + onSecure(err2); + } + }); + secureSocket.pipe(connection._protocol); + connection._protocol.on("data", function(data) { + secureSocket.write(data); + }); + secureSocket.on("secure", function() { + secureEstablished = true; + onSecure(rejectUnauthorized ? this.ssl.verifyError() : null); + }); + secureSocket._start(); + }); + }; + } else { + Connection.prototype._startTLS = function _startTLS(onSecure) { + var connection = this; + var credentials = Crypto.createCredentials({ + ca: this.config.ssl.ca, + cert: this.config.ssl.cert, + ciphers: this.config.ssl.ciphers, + key: this.config.ssl.key, + passphrase: this.config.ssl.passphrase + }); + var rejectUnauthorized = this.config.ssl.rejectUnauthorized; + var secureEstablished = false; + var securePair = tls.createSecurePair(credentials, false, true, rejectUnauthorized); + securePair.on("error", function(err) { + if (secureEstablished) { + connection._handleNetworkError(err); + } else { + onSecure(err); + } + }); + this._socket.removeAllListeners("data"); + this._protocol.removeAllListeners("data"); + securePair.encrypted.pipe(this._socket); + this._socket.on("data", function(data) { + securePair.encrypted.write(data); + }); + securePair.cleartext.pipe(this._protocol); + this._protocol.on("data", function(data) { + securePair.cleartext.write(data); + }); + securePair.on("secure", function() { + secureEstablished = true; + if (!rejectUnauthorized) { + onSecure(); + return; + } + var verifyError = this.ssl.verifyError(); + var err = verifyError; + if (typeof err === "string") { + err = new Error(verifyError); + err.code = verifyError; + } + onSecure(err); + }); + securePair._cycle = securePair.cycle; + securePair.cycle = function cycle() { + if (this.ssl && this.ssl.error) { + this.error(); + } + return this._cycle.apply(this, arguments); + }; + }; + } + Connection.prototype._handleConnectTimeout = function() { + if (this._socket) { + this._socket.setTimeout(0); + this._socket.destroy(); + } + var err = new Error("connect ETIMEDOUT"); + err.errorno = "ETIMEDOUT"; + err.code = "ETIMEDOUT"; + err.syscall = "connect"; + this._handleNetworkError(err); + }; + Connection.prototype._handleNetworkError = function(err) { + this._protocol.handleNetworkError(err); + }; + Connection.prototype._handleProtocolError = function(err) { + this.state = "protocol_error"; + this.emit("error", err); + }; + Connection.prototype._handleProtocolDrain = function() { + this.emit("drain"); + }; + Connection.prototype._handleProtocolConnect = function() { + this.state = "connected"; + this.emit("connect"); + }; + Connection.prototype._handleProtocolHandshake = function _handleProtocolHandshake() { + this.state = "authenticated"; + }; + Connection.prototype._handleProtocolInitialize = function _handleProtocolInitialize(packet) { + this.threadId = packet.threadId; + }; + Connection.prototype._handleProtocolEnd = function(err) { + this.state = "disconnected"; + this.emit("end", err); + }; + Connection.prototype._handleProtocolEnqueue = function _handleProtocolEnqueue(sequence) { + this.emit("enqueue", sequence); + }; + Connection.prototype._implyConnect = function() { + if (!this._connectCalled) { + this.connect(); + } + }; + function createSecureContext(config, cb) { + var context = null; + var error = null; + try { + context = tls.createSecureContext({ + ca: config.ssl.ca, + cert: config.ssl.cert, + ciphers: config.ssl.ciphers, + key: config.ssl.key, + passphrase: config.ssl.passphrase + }); + } catch (err) { + error = err; + } + cb(error, context); + } + function unwrapFromDomain(fn) { + return function() { + var domains = []; + var ret; + while (process.domain) { + domains.shift(process.domain); + process.domain.exit(); + } + try { + ret = fn.apply(this, arguments); + } finally { + for (var i = 0;i < domains.length; i++) { + domains[i].enter(); + } + } + return ret; + }; + } + function wrapCallbackInDomain(ee, fn) { + if (typeof fn !== "function") { + return; + } + if (fn.domain) { + return fn; + } + var domain = process.domain; + if (domain) { + return domain.bind(fn); + } else if (ee) { + return unwrapFromDomain(wrapToDomain(ee, fn)); + } else { + return fn; + } + } + function wrapToDomain(ee, fn) { + return function() { + if (Events.usingDomains && ee.domain) { + ee.domain.enter(); + fn.apply(this, arguments); + ee.domain.exit(); + } else { + fn.apply(this, arguments); + } + }; + } +}); + +// node_modules/mysql/lib/PoolConnection.js +var require_PoolConnection = __commonJS((exports, module) => { + var inherits = __require("util").inherits; + var Connection = require_Connection(); + var Events = __require("events"); + module.exports = PoolConnection; + inherits(PoolConnection, Connection); + function PoolConnection(pool, options) { + Connection.call(this, options); + this._pool = pool; + if (Events.usingDomains) { + this.domain = pool.domain; + } + this.on("end", this._removeFromPool); + this.on("error", function(err) { + if (err.fatal) { + this._removeFromPool(); + } + }); + } + PoolConnection.prototype.release = function release() { + var pool = this._pool; + if (!pool || pool._closed) { + return; + } + return pool.releaseConnection(this); + }; + PoolConnection.prototype._realEnd = Connection.prototype.end; + PoolConnection.prototype.end = function() { + console.warn("Calling conn.end() to release a pooled connection is " + "deprecated. In next version calling conn.end() will be " + "restored to default conn.end() behavior. Use " + "conn.release() instead."); + this.release(); + }; + PoolConnection.prototype.destroy = function() { + Connection.prototype.destroy.apply(this, arguments); + this._removeFromPool(this); + }; + PoolConnection.prototype._removeFromPool = function _removeFromPool() { + if (!this._pool || this._pool._closed) { + return; + } + var pool = this._pool; + this._pool = null; + pool._purgeConnection(this); + }; +}); + +// node_modules/mysql/lib/Pool.js +var require_Pool = __commonJS((exports, module) => { + var mysql = require_mysql(); + var Connection = require_Connection(); + var EventEmitter = __require("events").EventEmitter; + var Util = __require("util"); + var PoolConnection = require_PoolConnection(); + module.exports = Pool; + Util.inherits(Pool, EventEmitter); + function Pool(options) { + EventEmitter.call(this); + this.config = options.config; + this.config.connectionConfig.pool = this; + this._acquiringConnections = []; + this._allConnections = []; + this._freeConnections = []; + this._connectionQueue = []; + this._closed = false; + } + Pool.prototype.getConnection = function(cb) { + if (this._closed) { + var err = new Error("Pool is closed."); + err.code = "POOL_CLOSED"; + process.nextTick(function() { + cb(err); + }); + return; + } + var connection; + var pool = this; + if (this._freeConnections.length > 0) { + connection = this._freeConnections.shift(); + this.acquireConnection(connection, cb); + return; + } + if (this.config.connectionLimit === 0 || this._allConnections.length < this.config.connectionLimit) { + connection = new PoolConnection(this, { config: this.config.newConnectionConfig() }); + this._acquiringConnections.push(connection); + this._allConnections.push(connection); + connection.connect({ timeout: this.config.acquireTimeout }, function onConnect(err2) { + spliceConnection(pool._acquiringConnections, connection); + if (pool._closed) { + err2 = new Error("Pool is closed."); + err2.code = "POOL_CLOSED"; + } + if (err2) { + pool._purgeConnection(connection); + cb(err2); + return; + } + pool.emit("connection", connection); + pool.emit("acquire", connection); + cb(null, connection); + }); + return; + } + if (!this.config.waitForConnections) { + process.nextTick(function() { + var err2 = new Error("No connections available."); + err2.code = "POOL_CONNLIMIT"; + cb(err2); + }); + return; + } + this._enqueueCallback(cb); + }; + Pool.prototype.acquireConnection = function acquireConnection(connection, cb) { + if (connection._pool !== this) { + throw new Error("Connection acquired from wrong pool."); + } + var changeUser = this._needsChangeUser(connection); + var pool = this; + this._acquiringConnections.push(connection); + function onOperationComplete(err) { + spliceConnection(pool._acquiringConnections, connection); + if (pool._closed) { + err = new Error("Pool is closed."); + err.code = "POOL_CLOSED"; + } + if (err) { + pool._connectionQueue.unshift(cb); + pool._purgeConnection(connection); + return; + } + if (changeUser) { + pool.emit("connection", connection); + } + pool.emit("acquire", connection); + cb(null, connection); + } + if (changeUser) { + connection.config = this.config.newConnectionConfig(); + connection.changeUser({ timeout: this.config.acquireTimeout }, onOperationComplete); + } else { + connection.ping({ timeout: this.config.acquireTimeout }, onOperationComplete); + } + }; + Pool.prototype.releaseConnection = function releaseConnection(connection) { + if (this._acquiringConnections.indexOf(connection) !== -1) { + return; + } + if (connection._pool) { + if (connection._pool !== this) { + throw new Error("Connection released to wrong pool"); + } + if (this._freeConnections.indexOf(connection) !== -1) { + throw new Error("Connection already released"); + } else { + this._freeConnections.push(connection); + this.emit("release", connection); + } + } + if (this._closed) { + this._connectionQueue.splice(0).forEach(function(cb) { + var err = new Error("Pool is closed."); + err.code = "POOL_CLOSED"; + process.nextTick(function() { + cb(err); + }); + }); + } else if (this._connectionQueue.length) { + this.getConnection(this._connectionQueue.shift()); + } + }; + Pool.prototype.end = function(cb) { + this._closed = true; + if (typeof cb !== "function") { + cb = function(err) { + if (err) + throw err; + }; + } + var calledBack = false; + var waitingClose = 0; + function onEnd(err) { + if (!calledBack && (err || --waitingClose <= 0)) { + calledBack = true; + cb(err); + } + } + while (this._allConnections.length !== 0) { + waitingClose++; + this._purgeConnection(this._allConnections[0], onEnd); + } + if (waitingClose === 0) { + process.nextTick(onEnd); + } + }; + Pool.prototype.query = function(sql, values, cb) { + var query = Connection.createQuery(sql, values, cb); + if (!(typeof sql === "object" && ("typeCast" in sql))) { + query.typeCast = this.config.connectionConfig.typeCast; + } + if (this.config.connectionConfig.trace) { + query._callSite = new Error; + } + this.getConnection(function(err, conn) { + if (err) { + query.on("error", function() { + }); + query.end(err); + return; + } + query.once("end", function() { + conn.release(); + }); + conn.query(query); + }); + return query; + }; + Pool.prototype._enqueueCallback = function _enqueueCallback(callback) { + if (this.config.queueLimit && this._connectionQueue.length >= this.config.queueLimit) { + process.nextTick(function() { + var err = new Error("Queue limit reached."); + err.code = "POOL_ENQUEUELIMIT"; + callback(err); + }); + return; + } + var cb = process.domain ? process.domain.bind(callback) : callback; + this._connectionQueue.push(cb); + this.emit("enqueue"); + }; + Pool.prototype._needsChangeUser = function _needsChangeUser(connection) { + var connConfig = connection.config; + var poolConfig = this.config.connectionConfig; + return connConfig.user !== poolConfig.user || connConfig.database !== poolConfig.database || connConfig.password !== poolConfig.password || connConfig.charsetNumber !== poolConfig.charsetNumber; + }; + Pool.prototype._purgeConnection = function _purgeConnection(connection, callback) { + var cb = callback || function() { + }; + if (connection.state === "disconnected") { + connection.destroy(); + } + this._removeConnection(connection); + if (connection.state !== "disconnected" && !connection._protocol._quitSequence) { + connection._realEnd(cb); + return; + } + process.nextTick(cb); + }; + Pool.prototype._removeConnection = function(connection) { + connection._pool = null; + spliceConnection(this._allConnections, connection); + spliceConnection(this._freeConnections, connection); + this.releaseConnection(connection); + }; + Pool.prototype.escape = function(value) { + return mysql.escape(value, this.config.connectionConfig.stringifyObjects, this.config.connectionConfig.timezone); + }; + Pool.prototype.escapeId = function escapeId(value) { + return mysql.escapeId(value, false); + }; + function spliceConnection(array, connection) { + var index; + if ((index = array.indexOf(connection)) !== -1) { + array.splice(index, 1); + } + } +}); + +// node_modules/mysql/lib/PoolConfig.js +var require_PoolConfig = __commonJS((exports, module) => { + var ConnectionConfig = require_ConnectionConfig(); + module.exports = PoolConfig; + function PoolConfig(options) { + if (typeof options === "string") { + options = ConnectionConfig.parseUrl(options); + } + this.acquireTimeout = options.acquireTimeout === undefined ? 10 * 1000 : Number(options.acquireTimeout); + this.connectionConfig = new ConnectionConfig(options); + this.waitForConnections = options.waitForConnections === undefined ? true : Boolean(options.waitForConnections); + this.connectionLimit = options.connectionLimit === undefined ? 10 : Number(options.connectionLimit); + this.queueLimit = options.queueLimit === undefined ? 0 : Number(options.queueLimit); + } + PoolConfig.prototype.newConnectionConfig = function newConnectionConfig() { + var connectionConfig = new ConnectionConfig(this.connectionConfig); + connectionConfig.clientFlags = this.connectionConfig.clientFlags; + connectionConfig.maxPacketSize = this.connectionConfig.maxPacketSize; + return connectionConfig; + }; +}); + +// node_modules/mysql/lib/PoolSelector.js +var require_PoolSelector = __commonJS((exports, module) => { + var PoolSelector = module.exports = {}; + PoolSelector.RR = function PoolSelectorRoundRobin() { + var index = 0; + return function(clusterIds) { + if (index >= clusterIds.length) { + index = 0; + } + var clusterId = clusterIds[index++]; + return clusterId; + }; + }; + PoolSelector.RANDOM = function PoolSelectorRandom() { + return function(clusterIds) { + return clusterIds[Math.floor(Math.random() * clusterIds.length)]; + }; + }; + PoolSelector.ORDER = function PoolSelectorOrder() { + return function(clusterIds) { + return clusterIds[0]; + }; + }; +}); + +// node_modules/mysql/lib/PoolNamespace.js +var require_PoolNamespace = __commonJS((exports, module) => { + var Connection = require_Connection(); + var PoolSelector = require_PoolSelector(); + module.exports = PoolNamespace; + function PoolNamespace(cluster, pattern, selector) { + this._cluster = cluster; + this._pattern = pattern; + this._selector = new PoolSelector[selector]; + } + PoolNamespace.prototype.getConnection = function(cb) { + var clusterNode = this._getClusterNode(); + var cluster = this._cluster; + var namespace = this; + if (clusterNode === null) { + var err = null; + if (this._cluster._findNodeIds(this._pattern, true).length !== 0) { + err = new Error("Pool does not have online node."); + err.code = "POOL_NONEONLINE"; + } else { + err = new Error("Pool does not exist."); + err.code = "POOL_NOEXIST"; + } + cb(err); + return; + } + cluster._getConnection(clusterNode, function(err2, connection) { + var retry = err2 && cluster._canRetry && cluster._findNodeIds(namespace._pattern).length !== 0; + if (retry) { + namespace.getConnection(cb); + return; + } + if (err2) { + cb(err2); + return; + } + cb(null, connection); + }); + }; + PoolNamespace.prototype.query = function(sql, values, cb) { + var cluster = this._cluster; + var clusterNode = this._getClusterNode(); + var query = Connection.createQuery(sql, values, cb); + var namespace = this; + if (clusterNode === null) { + var err = null; + if (this._cluster._findNodeIds(this._pattern, true).length !== 0) { + err = new Error("Pool does not have online node."); + err.code = "POOL_NONEONLINE"; + } else { + err = new Error("Pool does not exist."); + err.code = "POOL_NOEXIST"; + } + process.nextTick(function() { + query.on("error", function() { + }); + query.end(err); + }); + return query; + } + if (!(typeof sql === "object" && ("typeCast" in sql))) { + query.typeCast = clusterNode.pool.config.connectionConfig.typeCast; + } + if (clusterNode.pool.config.connectionConfig.trace) { + query._callSite = new Error; + } + cluster._getConnection(clusterNode, function(err2, conn) { + var retry = err2 && cluster._canRetry && cluster._findNodeIds(namespace._pattern).length !== 0; + if (retry) { + namespace.query(query); + return; + } + if (err2) { + query.on("error", function() { + }); + query.end(err2); + return; + } + query.once("end", function() { + conn.release(); + }); + conn.query(query); + }); + return query; + }; + PoolNamespace.prototype._getClusterNode = function _getClusterNode() { + var foundNodeIds = this._cluster._findNodeIds(this._pattern); + var nodeId; + switch (foundNodeIds.length) { + case 0: + nodeId = null; + break; + case 1: + nodeId = foundNodeIds[0]; + break; + default: + nodeId = this._selector(foundNodeIds); + break; + } + return nodeId !== null ? this._cluster._getNode(nodeId) : null; + }; +}); + +// node_modules/mysql/lib/PoolCluster.js +var require_PoolCluster = __commonJS((exports, module) => { + var Pool = require_Pool(); + var PoolConfig = require_PoolConfig(); + var PoolNamespace = require_PoolNamespace(); + var PoolSelector = require_PoolSelector(); + var Util = __require("util"); + var EventEmitter = __require("events").EventEmitter; + module.exports = PoolCluster; + function PoolCluster(config) { + EventEmitter.call(this); + config = config || {}; + this._canRetry = typeof config.canRetry === "undefined" ? true : config.canRetry; + this._defaultSelector = config.defaultSelector || "RR"; + this._removeNodeErrorCount = config.removeNodeErrorCount || 5; + this._restoreNodeTimeout = config.restoreNodeTimeout || 0; + this._closed = false; + this._findCaches = Object.create(null); + this._lastId = 0; + this._namespaces = Object.create(null); + this._nodes = Object.create(null); + } + Util.inherits(PoolCluster, EventEmitter); + PoolCluster.prototype.add = function add(id, config) { + if (this._closed) { + throw new Error("PoolCluster is closed."); + } + var nodeId = typeof id === "object" ? "CLUSTER::" + ++this._lastId : String(id); + if (this._nodes[nodeId] !== undefined) { + throw new Error('Node ID "' + nodeId + '" is already defined in PoolCluster.'); + } + var poolConfig = typeof id !== "object" ? new PoolConfig(config) : new PoolConfig(id); + this._nodes[nodeId] = { + id: nodeId, + errorCount: 0, + pool: new Pool({ config: poolConfig }), + _offlineUntil: 0 + }; + this._clearFindCaches(); + }; + PoolCluster.prototype.end = function end(callback) { + var cb = callback !== undefined ? callback : _cb; + if (typeof cb !== "function") { + throw TypeError("callback argument must be a function"); + } + if (this._closed) { + process.nextTick(cb); + return; + } + this._closed = true; + var calledBack = false; + var nodeIds = Object.keys(this._nodes); + var waitingClose = 0; + function onEnd(err) { + if (!calledBack && (err || --waitingClose <= 0)) { + calledBack = true; + cb(err); + } + } + for (var i = 0;i < nodeIds.length; i++) { + var nodeId = nodeIds[i]; + var node = this._nodes[nodeId]; + waitingClose++; + node.pool.end(onEnd); + } + if (waitingClose === 0) { + process.nextTick(onEnd); + } + }; + PoolCluster.prototype.of = function(pattern, selector) { + pattern = pattern || "*"; + selector = selector || this._defaultSelector; + selector = selector.toUpperCase(); + if (typeof PoolSelector[selector] === "undefined") { + selector = this._defaultSelector; + } + var key = pattern + selector; + if (typeof this._namespaces[key] === "undefined") { + this._namespaces[key] = new PoolNamespace(this, pattern, selector); + } + return this._namespaces[key]; + }; + PoolCluster.prototype.remove = function remove(pattern) { + var foundNodeIds = this._findNodeIds(pattern, true); + for (var i = 0;i < foundNodeIds.length; i++) { + var node = this._getNode(foundNodeIds[i]); + if (node) { + this._removeNode(node); + } + } + }; + PoolCluster.prototype.getConnection = function(pattern, selector, cb) { + var namespace; + if (typeof pattern === "function") { + cb = pattern; + namespace = this.of(); + } else { + if (typeof selector === "function") { + cb = selector; + selector = this._defaultSelector; + } + namespace = this.of(pattern, selector); + } + namespace.getConnection(cb); + }; + PoolCluster.prototype._clearFindCaches = function _clearFindCaches() { + this._findCaches = Object.create(null); + }; + PoolCluster.prototype._decreaseErrorCount = function _decreaseErrorCount(node) { + var errorCount = node.errorCount; + if (errorCount > this._removeNodeErrorCount) { + errorCount = this._removeNodeErrorCount; + } + if (errorCount < 1) { + errorCount = 1; + } + node.errorCount = errorCount - 1; + if (node._offlineUntil) { + node._offlineUntil = 0; + this.emit("online", node.id); + } + }; + PoolCluster.prototype._findNodeIds = function _findNodeIds(pattern, includeOffline) { + var currentTime = 0; + var foundNodeIds = this._findCaches[pattern]; + if (foundNodeIds === undefined) { + var expression = patternRegExp(pattern); + var nodeIds = Object.keys(this._nodes); + foundNodeIds = nodeIds.filter(function(id) { + return id.match(expression); + }); + this._findCaches[pattern] = foundNodeIds; + } + if (includeOffline) { + return foundNodeIds; + } + return foundNodeIds.filter(function(nodeId) { + var node = this._getNode(nodeId); + if (!node._offlineUntil) { + return true; + } + if (!currentTime) { + currentTime = getMonotonicMilliseconds(); + } + return node._offlineUntil <= currentTime; + }, this); + }; + PoolCluster.prototype._getNode = function _getNode(id) { + return this._nodes[id] || null; + }; + PoolCluster.prototype._increaseErrorCount = function _increaseErrorCount(node) { + var errorCount = ++node.errorCount; + if (this._removeNodeErrorCount > errorCount) { + return; + } + if (this._restoreNodeTimeout > 0) { + node._offlineUntil = getMonotonicMilliseconds() + this._restoreNodeTimeout; + this.emit("offline", node.id); + return; + } + this._removeNode(node); + this.emit("remove", node.id); + }; + PoolCluster.prototype._getConnection = function(node, cb) { + var self2 = this; + node.pool.getConnection(function(err, connection) { + if (err) { + self2._increaseErrorCount(node); + cb(err); + return; + } else { + self2._decreaseErrorCount(node); + } + connection._clusterId = node.id; + cb(null, connection); + }); + }; + PoolCluster.prototype._removeNode = function _removeNode(node) { + delete this._nodes[node.id]; + this._clearFindCaches(); + node.pool.end(_noop); + }; + function getMonotonicMilliseconds() { + var ms; + if (typeof process.hrtime === "function") { + ms = process.hrtime(); + ms = ms[0] * 1000 + ms[1] * 0.000001; + } else { + ms = process.uptime() * 1000; + } + return Math.floor(ms); + } + function isRegExp(val) { + return typeof val === "object" && Object.prototype.toString.call(val) === "[object RegExp]"; + } + function patternRegExp(pattern) { + if (isRegExp(pattern)) { + return pattern; + } + var source = pattern.replace(/([.+?^=!:${}()|\[\]\/\\])/g, "\\$1").replace(/\*/g, ".*"); + return new RegExp("^" + source + "$"); + } + function _cb(err) { + if (err) { + throw err; + } + } + function _noop() { + } +}); + +// node_modules/mysql/index.js +var require_mysql = __commonJS((exports) => { + var Classes = Object.create(null); + exports.createConnection = function createConnection(config) { + var Connection = loadClass("Connection"); + var ConnectionConfig = loadClass("ConnectionConfig"); + return new Connection({ config: new ConnectionConfig(config) }); + }; + exports.createPool = function createPool(config) { + var Pool = loadClass("Pool"); + var PoolConfig = loadClass("PoolConfig"); + return new Pool({ config: new PoolConfig(config) }); + }; + exports.createPoolCluster = function createPoolCluster(config) { + var PoolCluster = loadClass("PoolCluster"); + return new PoolCluster(config); + }; + exports.createQuery = function createQuery(sql, values, callback) { + var Connection = loadClass("Connection"); + return Connection.createQuery(sql, values, callback); + }; + exports.escape = function escape(value, stringifyObjects, timeZone) { + var SqlString = loadClass("SqlString"); + return SqlString.escape(value, stringifyObjects, timeZone); + }; + exports.escapeId = function escapeId(value, forbidQualified) { + var SqlString = loadClass("SqlString"); + return SqlString.escapeId(value, forbidQualified); + }; + exports.format = function format(sql, values, stringifyObjects, timeZone) { + var SqlString = loadClass("SqlString"); + return SqlString.format(sql, values, stringifyObjects, timeZone); + }; + exports.raw = function raw(sql) { + var SqlString = loadClass("SqlString"); + return SqlString.raw(sql); + }; + Object.defineProperty(exports, "Types", { + get: loadClass.bind(null, "Types") + }); + function loadClass(className) { + var Class = Classes[className]; + if (Class !== undefined) { + return Class; + } + switch (className) { + case "Connection": + Class = require_Connection(); + break; + case "ConnectionConfig": + Class = require_ConnectionConfig(); + break; + case "Pool": + Class = require_Pool(); + break; + case "PoolCluster": + Class = require_PoolCluster(); + break; + case "PoolConfig": + Class = require_PoolConfig(); + break; + case "SqlString": + Class = require_SqlString(); + break; + case "Types": + Class = require_types(); + break; + default: + throw new Error("Cannot find class \'" + className + "\'"); + } + Classes[className] = Class; + return Class; + } +}); + +// node_modules/serverless-mysql/index.js +var require_serverless_mysql = __commonJS((exports, module) => { + var NodeURL = __require("url"); + module.exports = (params) => { + let client = null; + let counter = 0; + let errors = 0; + let retries = 0; + let _cfg = {}; + let _maxConns = { updated: 0 }; + let _usedConns = { updated: 0 }; + const tooManyConnsErrors = [ + "ER_TOO_MANY_USER_CONNECTIONS", + "ER_CON_COUNT_ERROR", + "ER_USER_LIMIT_REACHED", + "ER_OUT_OF_RESOURCES", + "PROTOCOL_CONNECTION_LOST", + "PROTOCOL_SEQUENCE_TIMEOUT", + "ETIMEDOUT" + ]; + let MYSQL, manageConns, cap, base, maxRetries, connUtilization, backoff, zombieMinTimeout, zombieMaxTimeout, maxConnsFreq, usedConnsFreq, onConnect, onConnectError, onRetry, onClose, onError, onKill, onKillError, PromiseLibrary; + const getCounter = () => counter; + const incCounter = () => counter++; + const resetCounter = () => counter = 0; + const getClient = () => client; + const resetClient = () => client = null; + const resetRetries = () => retries = 0; + const getErrorCount = () => errors; + const getConfig = () => _cfg; + const config = (args) => { + if (typeof args === "string") { + return Object.assign(_cfg, uriToConnectionConfig(args)); + } + return Object.assign(_cfg, args); + }; + const delay = (ms) => new PromiseLibrary((res) => setTimeout(res, ms)); + const randRange = (min, max) => Math.floor(Math.random() * (max - min + 1)) + min; + const fullJitter = () => randRange(0, Math.min(cap, base * 2 ** retries)); + const decorrelatedJitter = (sleep = 0) => Math.min(cap, randRange(base, sleep * 3)); + const uriToConnectionConfig = (connectionString) => { + let uri = undefined; + try { + uri = new NodeURL.URL(connectionString); + } catch (error) { + throw new Error("Invalid data source URL provided"); + } + const extraFields = {}; + for (const [name, value] of uri.searchParams) { + extraFields[name] = value; + } + const database = uri.pathname && uri.pathname.startsWith("/") ? uri.pathname.slice(1) : undefined; + const connectionFields = { + host: uri.hostname ? uri.hostname : undefined, + user: uri.username ? uri.username : undefined, + port: uri.port ? Number(uri.port) : undefined, + password: uri.password ? uri.password : undefined, + database + }; + return Object.assign(connectionFields, extraFields); + }; + const connect = async (wait) => { + try { + await _connect(); + } catch (e) { + if (tooManyConnsErrors.includes(e.code) && retries < maxRetries) { + retries++; + wait = Number.isInteger(wait) ? wait : 0; + let sleep = backoff === "decorrelated" ? decorrelatedJitter(wait) : typeof backoff === "function" ? backoff(wait, retries) : fullJitter(); + onRetry(e, retries, sleep, typeof backoff === "function" ? "custom" : backoff); + await delay(sleep).then(() => connect(sleep)); + } else { + onConnectError(e); + throw new Error(e); + } + } + }; + const _connect = () => { + if (client === null) { + resetCounter(); + return new PromiseLibrary((resolve, reject) => { + client = MYSQL.createConnection(_cfg); + client.connect(function(err) { + if (err) { + resetClient(); + reject(err); + } else { + resetRetries(); + onConnect(client); + return resolve(true); + } + }); + client.on("error", async (err) => { + errors++; + resetClient(); + resetCounter(); + onError(err); + }); + }); + } else { + return PromiseLibrary.resolve(); + } + }; + const end = async () => { + if (client !== null && manageConns) { + incCounter(); + let maxConns = await getMaxConnections(); + let usedConns = await getTotalConnections(); + if (usedConns.total / maxConns.total > connUtilization) { + let timeout = Math.min(Math.max(usedConns.maxAge, zombieMinTimeout), zombieMaxTimeout); + let killedZombies = timeout <= usedConns.maxAge ? await killZombieConnections(timeout) : 0; + if (killedZombies === 0) { + quit(); + } + } else if (usedConns.maxAge > zombieMaxTimeout) { + await killZombieConnections(zombieMaxTimeout); + } + } + }; + const quit = () => { + if (client !== null) { + client.end(); + resetClient(); + resetCounter(); + onClose(); + } + }; + const query = async function(...args) { + await connect(); + return new PromiseLibrary((resolve, reject) => { + if (client !== null) { + if (this && this.rollback && args.length === 0) { + return resolve([]); + } + client.query(...args, async (err, results) => { + if (err && err.code === "PROTOCOL_SEQUENCE_TIMEOUT") { + client.destroy(); + resetClient(); + reject(err); + } else if (err && (/^PROTOCOL_ENQUEUE_AFTER_/.test(err.code) || err.code === "PROTOCOL_CONNECTION_LOST" || err.code === "EPIPE" || err.code === "ECONNRESET")) { + resetClient(); + return resolve(query(...args)); + } else if (err) { + if (this && this.rollback) { + await query("ROLLBACK"); + this.rollback(err); + } + reject(err); + } + return resolve(results); + }); + } + }); + }; + const getMaxConnections = async () => { + if (Date.now() - _maxConns.updated > maxConnsFreq) { + let results = await query(`SELECT IF(@@max_user_connections > 0, + LEAST(@@max_user_connections,@@max_connections), + @@max_connections) AS total, + IF(@@max_user_connections > 0,true,false) AS userLimit`); + _maxConns = { + total: results[0].total || 0, + userLimit: results[0].userLimit === 1 ? true : false, + updated: Date.now() + }; + } + return _maxConns; + }; + const getTotalConnections = async () => { + if (Date.now() - _usedConns.updated > usedConnsFreq) { + let results = await query(`SELECT COUNT(ID) as total, MAX(time) as max_age + FROM information_schema.processlist + WHERE (user = ? AND @@max_user_connections > 0) OR true`, [_cfg.user]); + _usedConns = { + total: results[0].total || 0, + maxAge: results[0].max_age || 0, + updated: Date.now() + }; + } + return _usedConns; + }; + const killZombieConnections = async (timeout) => { + let killedZombies = 0; + let zombies = await query(`SELECT ID,time FROM information_schema.processlist + WHERE command = 'Sleep' AND time >= ? AND user = ? + ORDER BY time DESC`, [!isNaN(timeout) ? timeout : 60 * 15, _cfg.user]); + for (let i = 0;i < zombies.length; i++) { + try { + await query("KILL ?", zombies[i].ID); + onKill(zombies[i]); + killedZombies++; + } catch (e) { + onKillError(e); + } + } + return killedZombies; + }; + const transaction = () => { + let queries = []; + let rollback = () => { + }; + return { + query: function(...args) { + if (typeof args[0] === "function") { + queries.push(args[0]); + } else { + queries.push(() => [...args]); + } + return this; + }, + rollback: function(fn) { + if (typeof fn === "function") { + rollback = fn; + } + return this; + }, + commit: async function() { + return await commit(queries, rollback); + } + }; + }; + const commit = async (queries, rollback) => { + let results = []; + await query("START TRANSACTION"); + for (let i = 0;i < queries.length; i++) { + let result = await query.apply({ rollback }, queries[i](results[results.length - 1], results)); + results.push(result); + } + await query("COMMIT"); + return results; + }; + const cfg = typeof params === "object" && !Array.isArray(params) ? params : {}; + MYSQL = cfg.library || require_mysql(); + PromiseLibrary = cfg.promise || Promise; + manageConns = cfg.manageConns === false ? false : true; + cap = Number.isInteger(cfg.cap) ? cfg.cap : 100; + base = Number.isInteger(cfg.base) ? cfg.base : 2; + maxRetries = Number.isInteger(cfg.maxRetries) ? cfg.maxRetries : 50; + backoff = typeof cfg.backoff === "function" ? cfg.backoff : cfg.backoff && ["full", "decorrelated"].includes(cfg.backoff.toLowerCase()) ? cfg.backoff.toLowerCase() : "full"; + connUtilization = !isNaN(cfg.connUtilization) ? cfg.connUtilization : 0.8; + zombieMinTimeout = Number.isInteger(cfg.zombieMinTimeout) ? cfg.zombieMinTimeout : 3; + zombieMaxTimeout = Number.isInteger(cfg.zombieMaxTimeout) ? cfg.zombieMaxTimeout : 60 * 15; + maxConnsFreq = Number.isInteger(cfg.maxConnsFreq) ? cfg.maxConnsFreq : 15 * 1000; + usedConnsFreq = Number.isInteger(cfg.usedConnsFreq) ? cfg.usedConnsFreq : 0; + onConnect = typeof cfg.onConnect === "function" ? cfg.onConnect : () => { + }; + onConnectError = typeof cfg.onConnectError === "function" ? cfg.onConnectError : () => { + }; + onRetry = typeof cfg.onRetry === "function" ? cfg.onRetry : () => { + }; + onClose = typeof cfg.onClose === "function" ? cfg.onClose : () => { + }; + onError = typeof cfg.onError === "function" ? cfg.onError : () => { + }; + onKill = typeof cfg.onKill === "function" ? cfg.onKill : () => { + }; + onKillError = typeof cfg.onKillError === "function" ? cfg.onKillError : () => { + }; + let connCfg = {}; + if (typeof cfg.config === "object" && !Array.isArray(cfg.config)) { + connCfg = cfg.config; + } else if (typeof params === "string") { + connCfg = params; + } + let escape = MYSQL.escape; + let escapeId = MYSQL.escapeId; + let format = MYSQL.format; + config(connCfg); + return { + connect, + config, + query, + end, + escape, + escapeId, + format, + quit, + transaction, + getCounter, + getClient, + getConfig, + getErrorCount + }; + }; +}); + +// package-shared/utils/backend/grabDbSSL.ts +import fs2 from "fs"; +function grabDbSSL() { + const SSL_DIR = process.env.DSQL_SSL_DIR; + if (!SSL_DIR?.match(/./)) { + return; + } + const caFilePath = `${SSL_DIR}/ca-cert.pem`; + if (!fs2.existsSync(caFilePath)) { + console.log(`${caFilePath} does not exist`); + return; + } + return { + ca: fs2.readFileSync(`${SSL_DIR}/ca-cert.pem`) + }; +} +var init_grabDbSSL = () => { +}; + +// package-shared/utils/backend/global-db/DSQL_USER_DB_HANDLER.ts +import fs3 from "fs"; +function DSQL_USER_DB_HANDLER({ + paradigm, + database, + queryString, + queryValues +}) { + try { + return new Promise((resolve, reject) => { + const fullAccess = paradigm?.match(/full.access|^fa$/i) ? true : false; + try { + let runQuery = function(results) { + DSQL_USER.end(); + resolve(JSON.parse(JSON.stringify(results))); + }, queryError = function(err) { + DSQL_USER.end(); + resolve({ + error: err.message, + queryStringGenerated: queryString, + queryValuesGenerated: queryValues, + sql: err.sql + }); + }; + if (fullAccess) { + DSQL_USER = import_serverless_mysql.default({ + config: { + host: process.env.DSQL_DB_HOST, + user: process.env.DSQL_DB_FULL_ACCESS_USERNAME, + password: process.env.DSQL_DB_FULL_ACCESS_PASSWORD, + database, + ssl: grabDbSSL() + } + }); + } else { + DSQL_USER = import_serverless_mysql.default({ + config: { + host: process.env.DSQL_DB_HOST, + user: process.env.DSQL_DB_READ_ONLY_USERNAME, + password: process.env.DSQL_DB_READ_ONLY_PASSWORD, + database, + ssl: grabDbSSL() + } + }); + } + if (queryValues && Array.isArray(queryValues) && queryValues[0]) { + DSQL_USER.query(queryString, queryValues).then(runQuery).catch(queryError); + } else { + DSQL_USER.query(queryString).then(runQuery).catch(queryError); + } + } catch (error) { + fs3.appendFileSync("./.tmp/dbErrorLogs.txt", error.message + "\n" + Date() + "\n\n\n", "utf8"); + resolve({ + error: error.message + }); + } + }); + } catch (error) { + return { + success: false, + error: error.message + }; + } +} +var import_serverless_mysql, DSQL_USER; +var init_DSQL_USER_DB_HANDLER = __esm(() => { + import_serverless_mysql = __toESM(require_serverless_mysql(), 1); + init_grabDbSSL(); + DSQL_USER = import_serverless_mysql.default({ + config: { + host: process.env.DSQL_DB_HOST, + user: process.env.DSQL_DB_READ_ONLY_USERNAME, + password: process.env.DSQL_DB_READ_ONLY_PASSWORD, + charset: "utf8mb4", + ssl: grabDbSSL() + } + }); + module_DSQL_USER_DB_HANDLER.exports = DSQL_USER_DB_HANDLER; +}); + +// package-shared/utils/backend/global-db/LOCAL_DB_HANDLER.ts +async function LOCAL_DB_HANDLER(...args) { + const MASTER = import_serverless_mysql2.default({ + config: { + host: process.env.DSQL_DB_HOST, + user: process.env.DSQL_DB_USERNAME, + password: process.env.DSQL_DB_PASSWORD, + database: process.env.DSQL_DB_NAME, + port: process.env.DSQL_DB_PORT ? Number(process.env.DSQL_DB_PORT) : undefined, + charset: "utf8mb4", + ssl: grabDbSSL() + }, + onConnect: () => { + console.log("Connection Successful!"); + }, + onConnectError: (err) => { + console.log("Connection Error", err.message); + }, + onError: (err) => { + console.log("Client Error", err.message); + } + }); + console.log("Querying ..."); + try { + const results = await MASTER.query(...args); + await MASTER.end(); + return JSON.parse(JSON.stringify(results)); + } catch (error) { + console.log("DB Error =>", error.message); + return { + success: false, + error: error.message + }; + } +} +var import_serverless_mysql2; +var init_LOCAL_DB_HANDLER = __esm(() => { + import_serverless_mysql2 = __toESM(require_serverless_mysql(), 1); + init_grabDbSSL(); +}); + +// package-shared/functions/dsql/decrypt.ts +var exports_decrypt = {}; +__export(exports_decrypt, { + default: () => decrypt +}); +import { scryptSync, createDecipheriv } from "crypto"; +import { Buffer as Buffer2 } from "buffer"; +function decrypt({ + encryptedString, + encryptionKey, + encryptionSalt +}) { + if (!encryptedString?.match(/./)) { + console.log("Encrypted string is invalid"); + return encryptedString; + } + const finalEncryptionKey = encryptionKey || process.env.DSQL_ENCRYPTION_PASSWORD; + const finalEncryptionSalt = encryptionSalt || process.env.DSQL_ENCRYPTION_SALT; + const finalKeyLen = process.env.DSQL_ENCRYPTION_KEY_LENGTH ? Number(process.env.DSQL_ENCRYPTION_KEY_LENGTH) : 24; + if (!finalEncryptionKey?.match(/.{8,}/)) { + console.log("Decrption key is invalid"); + return encryptedString; + } + if (!finalEncryptionSalt?.match(/.{8,}/)) { + console.log("Decrption salt is invalid"); + return encryptedString; + } + const algorithm = "aes-192-cbc"; + let key = scryptSync(finalEncryptionKey, finalEncryptionSalt, finalKeyLen); + let iv = Buffer2.alloc(16, 0); + const decipher = createDecipheriv(algorithm, key, iv); + try { + let decrypted = decipher.update(encryptedString, "hex", "utf8"); + decrypted += decipher.final("utf8"); + return decrypted; + } catch (error) { + console.log("Error in decrypting =>", error.message); + return encryptedString; + } +} +var init_decrypt = () => { +}; + +// package-shared/functions/backend/defaultFieldsRegexp.ts +var defaultFieldsRegexp, defaultFieldsRegexp_default; +var init_defaultFieldsRegexp = __esm(() => { + defaultFieldsRegexp = /^id$|^uuid$|^date_created$|^date_created_code$|^date_created_timestamp$|^date_updated$|^date_updated_code$|^date_updated_timestamp$/; + defaultFieldsRegexp_default = defaultFieldsRegexp; +}); + +// package-shared/functions/backend/parseDbResults.ts +async function parseDbResults({ + unparsedResults, + tableSchema +}) { + let parsedResults = []; + try { + for (let pr = 0;pr < unparsedResults.length; pr++) { + let result = unparsedResults[pr]; + let resultFieldNames = Object.keys(result); + for (let i = 0;i < resultFieldNames.length; i++) { + const resultFieldName = resultFieldNames[i]; + let resultFieldSchema = tableSchema?.fields[i]; + if (resultFieldName?.match(defaultFieldsRegexp_default)) { + continue; + } + let value = result[resultFieldName]; + if (typeof value !== "number" && !value) { + continue; + } + if (resultFieldSchema?.encrypted) { + if (value?.match(/./)) { + result[resultFieldName] = decrypt({ + encryptedString: value + }); + } + } + } + parsedResults.push(result); + } + return parsedResults; + } catch (error) { + console.log("ERROR in parseDbResults Function =>", error.message); + return unparsedResults; + } +} +var init_parseDbResults = __esm(() => { + init_decrypt(); + init_defaultFieldsRegexp(); +}); + +// node_modules/entities/lib/generated/decode-data-html.js +var require_decode_data_html = __commonJS((exports) => { + Object.defineProperty(exports, "__esModule", { value: true }); + exports.default = new Uint16Array('\u1D41<\xD5\u0131\u028A\u049D\u057B\u05D0\u0675\u06DE\u07A2\u07D6\u080F\u0A4A\u0A91\u0DA1\u0E6D\u0F09\u0F26\u10CA\u1228\u12E1\u1415\u149D\u14C3\u14DF\u1525\0\0\0\0\0\0\u156B\u16CD\u198D\u1C12\u1DDD\u1F7E\u2060\u21B0\u228D\u23C0\u23FB\u2442\u2824\u2912\u2D08\u2E48\u2FCE\u3016\u32BA\u3639\u37AC\u38FE\u3A28\u3A71\u3AE0\u3B2E\u0800EMabcfglmnoprstu\\bfms\x7F\x84\x8B\x90\x95\x98\xA6\xB3\xB9\xC8\xCFlig\u803B\xC6\u40C6P\u803B&\u4026cute\u803B\xC1\u40C1reve;\u4102\u0100iyx}rc\u803B\xC2\u40C2;\u4410r;\uC000\uD835\uDD04rave\u803B\xC0\u40C0pha;\u4391acr;\u4100d;\u6A53\u0100gp\x9D\xA1on;\u4104f;\uC000\uD835\uDD38plyFunction;\u6061ing\u803B\xC5\u40C5\u0100cs\xBE\xC3r;\uC000\uD835\uDC9Cign;\u6254ilde\u803B\xC3\u40C3ml\u803B\xC4\u40C4\u0400aceforsu\xE5\xFB\xFE\u0117\u011C\u0122\u0127\u012A\u0100cr\xEA\xF2kslash;\u6216\u0176\xF6\xF8;\u6AE7ed;\u6306y;\u4411\u0180crt\u0105\u010B\u0114ause;\u6235noullis;\u612Ca;\u4392r;\uC000\uD835\uDD05pf;\uC000\uD835\uDD39eve;\u42D8c\xF2\u0113mpeq;\u624E\u0700HOacdefhilorsu\u014D\u0151\u0156\u0180\u019E\u01A2\u01B5\u01B7\u01BA\u01DC\u0215\u0273\u0278\u027Ecy;\u4427PY\u803B\xA9\u40A9\u0180cpy\u015D\u0162\u017Aute;\u4106\u0100;i\u0167\u0168\u62D2talDifferentialD;\u6145leys;\u612D\u0200aeio\u0189\u018E\u0194\u0198ron;\u410Cdil\u803B\xC7\u40C7rc;\u4108nint;\u6230ot;\u410A\u0100dn\u01A7\u01ADilla;\u40B8terDot;\u40B7\xF2\u017Fi;\u43A7rcle\u0200DMPT\u01C7\u01CB\u01D1\u01D6ot;\u6299inus;\u6296lus;\u6295imes;\u6297o\u0100cs\u01E2\u01F8kwiseContourIntegral;\u6232eCurly\u0100DQ\u0203\u020FoubleQuote;\u601Duote;\u6019\u0200lnpu\u021E\u0228\u0247\u0255on\u0100;e\u0225\u0226\u6237;\u6A74\u0180git\u022F\u0236\u023Aruent;\u6261nt;\u622FourIntegral;\u622E\u0100fr\u024C\u024E;\u6102oduct;\u6210nterClockwiseContourIntegral;\u6233oss;\u6A2Fcr;\uC000\uD835\uDC9Ep\u0100;C\u0284\u0285\u62D3ap;\u624D\u0580DJSZacefios\u02A0\u02AC\u02B0\u02B4\u02B8\u02CB\u02D7\u02E1\u02E6\u0333\u048D\u0100;o\u0179\u02A5trahd;\u6911cy;\u4402cy;\u4405cy;\u440F\u0180grs\u02BF\u02C4\u02C7ger;\u6021r;\u61A1hv;\u6AE4\u0100ay\u02D0\u02D5ron;\u410E;\u4414l\u0100;t\u02DD\u02DE\u6207a;\u4394r;\uC000\uD835\uDD07\u0100af\u02EB\u0327\u0100cm\u02F0\u0322ritical\u0200ADGT\u0300\u0306\u0316\u031Ccute;\u40B4o\u0174\u030B\u030D;\u42D9bleAcute;\u42DDrave;\u4060ilde;\u42DCond;\u62C4ferentialD;\u6146\u0470\u033D\0\0\0\u0342\u0354\0\u0405f;\uC000\uD835\uDD3B\u0180;DE\u0348\u0349\u034D\u40A8ot;\u60DCqual;\u6250ble\u0300CDLRUV\u0363\u0372\u0382\u03CF\u03E2\u03F8ontourIntegra\xEC\u0239o\u0274\u0379\0\0\u037B\xBB\u0349nArrow;\u61D3\u0100eo\u0387\u03A4ft\u0180ART\u0390\u0396\u03A1rrow;\u61D0ightArrow;\u61D4e\xE5\u02CAng\u0100LR\u03AB\u03C4eft\u0100AR\u03B3\u03B9rrow;\u67F8ightArrow;\u67FAightArrow;\u67F9ight\u0100AT\u03D8\u03DErrow;\u61D2ee;\u62A8p\u0241\u03E9\0\0\u03EFrrow;\u61D1ownArrow;\u61D5erticalBar;\u6225n\u0300ABLRTa\u0412\u042A\u0430\u045E\u047F\u037Crrow\u0180;BU\u041D\u041E\u0422\u6193ar;\u6913pArrow;\u61F5reve;\u4311eft\u02D2\u043A\0\u0446\0\u0450ightVector;\u6950eeVector;\u695Eector\u0100;B\u0459\u045A\u61BDar;\u6956ight\u01D4\u0467\0\u0471eeVector;\u695Fector\u0100;B\u047A\u047B\u61C1ar;\u6957ee\u0100;A\u0486\u0487\u62A4rrow;\u61A7\u0100ct\u0492\u0497r;\uC000\uD835\uDC9Frok;\u4110\u0800NTacdfglmopqstux\u04BD\u04C0\u04C4\u04CB\u04DE\u04E2\u04E7\u04EE\u04F5\u0521\u052F\u0536\u0552\u055D\u0560\u0565G;\u414AH\u803B\xD0\u40D0cute\u803B\xC9\u40C9\u0180aiy\u04D2\u04D7\u04DCron;\u411Arc\u803B\xCA\u40CA;\u442Dot;\u4116r;\uC000\uD835\uDD08rave\u803B\xC8\u40C8ement;\u6208\u0100ap\u04FA\u04FEcr;\u4112ty\u0253\u0506\0\0\u0512mallSquare;\u65FBerySmallSquare;\u65AB\u0100gp\u0526\u052Aon;\u4118f;\uC000\uD835\uDD3Csilon;\u4395u\u0100ai\u053C\u0549l\u0100;T\u0542\u0543\u6A75ilde;\u6242librium;\u61CC\u0100ci\u0557\u055Ar;\u6130m;\u6A73a;\u4397ml\u803B\xCB\u40CB\u0100ip\u056A\u056Fsts;\u6203onentialE;\u6147\u0280cfios\u0585\u0588\u058D\u05B2\u05CCy;\u4424r;\uC000\uD835\uDD09lled\u0253\u0597\0\0\u05A3mallSquare;\u65FCerySmallSquare;\u65AA\u0370\u05BA\0\u05BF\0\0\u05C4f;\uC000\uD835\uDD3DAll;\u6200riertrf;\u6131c\xF2\u05CB\u0600JTabcdfgorst\u05E8\u05EC\u05EF\u05FA\u0600\u0612\u0616\u061B\u061D\u0623\u066C\u0672cy;\u4403\u803B>\u403Emma\u0100;d\u05F7\u05F8\u4393;\u43DCreve;\u411E\u0180eiy\u0607\u060C\u0610dil;\u4122rc;\u411C;\u4413ot;\u4120r;\uC000\uD835\uDD0A;\u62D9pf;\uC000\uD835\uDD3Eeater\u0300EFGLST\u0635\u0644\u064E\u0656\u065B\u0666qual\u0100;L\u063E\u063F\u6265ess;\u62DBullEqual;\u6267reater;\u6AA2ess;\u6277lantEqual;\u6A7Eilde;\u6273cr;\uC000\uD835\uDCA2;\u626B\u0400Aacfiosu\u0685\u068B\u0696\u069B\u069E\u06AA\u06BE\u06CARDcy;\u442A\u0100ct\u0690\u0694ek;\u42C7;\u405Eirc;\u4124r;\u610ClbertSpace;\u610B\u01F0\u06AF\0\u06B2f;\u610DizontalLine;\u6500\u0100ct\u06C3\u06C5\xF2\u06A9rok;\u4126mp\u0144\u06D0\u06D8ownHum\xF0\u012Fqual;\u624F\u0700EJOacdfgmnostu\u06FA\u06FE\u0703\u0707\u070E\u071A\u071E\u0721\u0728\u0744\u0778\u078B\u078F\u0795cy;\u4415lig;\u4132cy;\u4401cute\u803B\xCD\u40CD\u0100iy\u0713\u0718rc\u803B\xCE\u40CE;\u4418ot;\u4130r;\u6111rave\u803B\xCC\u40CC\u0180;ap\u0720\u072F\u073F\u0100cg\u0734\u0737r;\u412AinaryI;\u6148lie\xF3\u03DD\u01F4\u0749\0\u0762\u0100;e\u074D\u074E\u622C\u0100gr\u0753\u0758ral;\u622Bsection;\u62C2isible\u0100CT\u076C\u0772omma;\u6063imes;\u6062\u0180gpt\u077F\u0783\u0788on;\u412Ef;\uC000\uD835\uDD40a;\u4399cr;\u6110ilde;\u4128\u01EB\u079A\0\u079Ecy;\u4406l\u803B\xCF\u40CF\u0280cfosu\u07AC\u07B7\u07BC\u07C2\u07D0\u0100iy\u07B1\u07B5rc;\u4134;\u4419r;\uC000\uD835\uDD0Dpf;\uC000\uD835\uDD41\u01E3\u07C7\0\u07CCr;\uC000\uD835\uDCA5rcy;\u4408kcy;\u4404\u0380HJacfos\u07E4\u07E8\u07EC\u07F1\u07FD\u0802\u0808cy;\u4425cy;\u440Cppa;\u439A\u0100ey\u07F6\u07FBdil;\u4136;\u441Ar;\uC000\uD835\uDD0Epf;\uC000\uD835\uDD42cr;\uC000\uD835\uDCA6\u0580JTaceflmost\u0825\u0829\u082C\u0850\u0863\u09B3\u09B8\u09C7\u09CD\u0A37\u0A47cy;\u4409\u803B<\u403C\u0280cmnpr\u0837\u083C\u0841\u0844\u084Dute;\u4139bda;\u439Bg;\u67EAlacetrf;\u6112r;\u619E\u0180aey\u0857\u085C\u0861ron;\u413Ddil;\u413B;\u441B\u0100fs\u0868\u0970t\u0500ACDFRTUVar\u087E\u08A9\u08B1\u08E0\u08E6\u08FC\u092F\u095B\u0390\u096A\u0100nr\u0883\u088FgleBracket;\u67E8row\u0180;BR\u0899\u089A\u089E\u6190ar;\u61E4ightArrow;\u61C6eiling;\u6308o\u01F5\u08B7\0\u08C3bleBracket;\u67E6n\u01D4\u08C8\0\u08D2eeVector;\u6961ector\u0100;B\u08DB\u08DC\u61C3ar;\u6959loor;\u630Aight\u0100AV\u08EF\u08F5rrow;\u6194ector;\u694E\u0100er\u0901\u0917e\u0180;AV\u0909\u090A\u0910\u62A3rrow;\u61A4ector;\u695Aiangle\u0180;BE\u0924\u0925\u0929\u62B2ar;\u69CFqual;\u62B4p\u0180DTV\u0937\u0942\u094CownVector;\u6951eeVector;\u6960ector\u0100;B\u0956\u0957\u61BFar;\u6958ector\u0100;B\u0965\u0966\u61BCar;\u6952ight\xE1\u039Cs\u0300EFGLST\u097E\u098B\u0995\u099D\u09A2\u09ADqualGreater;\u62DAullEqual;\u6266reater;\u6276ess;\u6AA1lantEqual;\u6A7Dilde;\u6272r;\uC000\uD835\uDD0F\u0100;e\u09BD\u09BE\u62D8ftarrow;\u61DAidot;\u413F\u0180npw\u09D4\u0A16\u0A1Bg\u0200LRlr\u09DE\u09F7\u0A02\u0A10eft\u0100AR\u09E6\u09ECrrow;\u67F5ightArrow;\u67F7ightArrow;\u67F6eft\u0100ar\u03B3\u0A0Aight\xE1\u03BFight\xE1\u03CAf;\uC000\uD835\uDD43er\u0100LR\u0A22\u0A2CeftArrow;\u6199ightArrow;\u6198\u0180cht\u0A3E\u0A40\u0A42\xF2\u084C;\u61B0rok;\u4141;\u626A\u0400acefiosu\u0A5A\u0A5D\u0A60\u0A77\u0A7C\u0A85\u0A8B\u0A8Ep;\u6905y;\u441C\u0100dl\u0A65\u0A6FiumSpace;\u605Flintrf;\u6133r;\uC000\uD835\uDD10nusPlus;\u6213pf;\uC000\uD835\uDD44c\xF2\u0A76;\u439C\u0480Jacefostu\u0AA3\u0AA7\u0AAD\u0AC0\u0B14\u0B19\u0D91\u0D97\u0D9Ecy;\u440Acute;\u4143\u0180aey\u0AB4\u0AB9\u0ABEron;\u4147dil;\u4145;\u441D\u0180gsw\u0AC7\u0AF0\u0B0Eative\u0180MTV\u0AD3\u0ADF\u0AE8ediumSpace;\u600Bhi\u0100cn\u0AE6\u0AD8\xEB\u0AD9eryThi\xEE\u0AD9ted\u0100GL\u0AF8\u0B06reaterGreate\xF2\u0673essLes\xF3\u0A48Line;\u400Ar;\uC000\uD835\uDD11\u0200Bnpt\u0B22\u0B28\u0B37\u0B3Areak;\u6060BreakingSpace;\u40A0f;\u6115\u0680;CDEGHLNPRSTV\u0B55\u0B56\u0B6A\u0B7C\u0BA1\u0BEB\u0C04\u0C5E\u0C84\u0CA6\u0CD8\u0D61\u0D85\u6AEC\u0100ou\u0B5B\u0B64ngruent;\u6262pCap;\u626DoubleVerticalBar;\u6226\u0180lqx\u0B83\u0B8A\u0B9Bement;\u6209ual\u0100;T\u0B92\u0B93\u6260ilde;\uC000\u2242\u0338ists;\u6204reater\u0380;EFGLST\u0BB6\u0BB7\u0BBD\u0BC9\u0BD3\u0BD8\u0BE5\u626Fqual;\u6271ullEqual;\uC000\u2267\u0338reater;\uC000\u226B\u0338ess;\u6279lantEqual;\uC000\u2A7E\u0338ilde;\u6275ump\u0144\u0BF2\u0BFDownHump;\uC000\u224E\u0338qual;\uC000\u224F\u0338e\u0100fs\u0C0A\u0C27tTriangle\u0180;BE\u0C1A\u0C1B\u0C21\u62EAar;\uC000\u29CF\u0338qual;\u62ECs\u0300;EGLST\u0C35\u0C36\u0C3C\u0C44\u0C4B\u0C58\u626Equal;\u6270reater;\u6278ess;\uC000\u226A\u0338lantEqual;\uC000\u2A7D\u0338ilde;\u6274ested\u0100GL\u0C68\u0C79reaterGreater;\uC000\u2AA2\u0338essLess;\uC000\u2AA1\u0338recedes\u0180;ES\u0C92\u0C93\u0C9B\u6280qual;\uC000\u2AAF\u0338lantEqual;\u62E0\u0100ei\u0CAB\u0CB9verseElement;\u620CghtTriangle\u0180;BE\u0CCB\u0CCC\u0CD2\u62EBar;\uC000\u29D0\u0338qual;\u62ED\u0100qu\u0CDD\u0D0CuareSu\u0100bp\u0CE8\u0CF9set\u0100;E\u0CF0\u0CF3\uC000\u228F\u0338qual;\u62E2erset\u0100;E\u0D03\u0D06\uC000\u2290\u0338qual;\u62E3\u0180bcp\u0D13\u0D24\u0D4Eset\u0100;E\u0D1B\u0D1E\uC000\u2282\u20D2qual;\u6288ceeds\u0200;EST\u0D32\u0D33\u0D3B\u0D46\u6281qual;\uC000\u2AB0\u0338lantEqual;\u62E1ilde;\uC000\u227F\u0338erset\u0100;E\u0D58\u0D5B\uC000\u2283\u20D2qual;\u6289ilde\u0200;EFT\u0D6E\u0D6F\u0D75\u0D7F\u6241qual;\u6244ullEqual;\u6247ilde;\u6249erticalBar;\u6224cr;\uC000\uD835\uDCA9ilde\u803B\xD1\u40D1;\u439D\u0700Eacdfgmoprstuv\u0DBD\u0DC2\u0DC9\u0DD5\u0DDB\u0DE0\u0DE7\u0DFC\u0E02\u0E20\u0E22\u0E32\u0E3F\u0E44lig;\u4152cute\u803B\xD3\u40D3\u0100iy\u0DCE\u0DD3rc\u803B\xD4\u40D4;\u441Eblac;\u4150r;\uC000\uD835\uDD12rave\u803B\xD2\u40D2\u0180aei\u0DEE\u0DF2\u0DF6cr;\u414Cga;\u43A9cron;\u439Fpf;\uC000\uD835\uDD46enCurly\u0100DQ\u0E0E\u0E1AoubleQuote;\u601Cuote;\u6018;\u6A54\u0100cl\u0E27\u0E2Cr;\uC000\uD835\uDCAAash\u803B\xD8\u40D8i\u016C\u0E37\u0E3Cde\u803B\xD5\u40D5es;\u6A37ml\u803B\xD6\u40D6er\u0100BP\u0E4B\u0E60\u0100ar\u0E50\u0E53r;\u603Eac\u0100ek\u0E5A\u0E5C;\u63DEet;\u63B4arenthesis;\u63DC\u0480acfhilors\u0E7F\u0E87\u0E8A\u0E8F\u0E92\u0E94\u0E9D\u0EB0\u0EFCrtialD;\u6202y;\u441Fr;\uC000\uD835\uDD13i;\u43A6;\u43A0usMinus;\u40B1\u0100ip\u0EA2\u0EADncareplan\xE5\u069Df;\u6119\u0200;eio\u0EB9\u0EBA\u0EE0\u0EE4\u6ABBcedes\u0200;EST\u0EC8\u0EC9\u0ECF\u0EDA\u627Aqual;\u6AAFlantEqual;\u627Cilde;\u627Eme;\u6033\u0100dp\u0EE9\u0EEEuct;\u620Fortion\u0100;a\u0225\u0EF9l;\u621D\u0100ci\u0F01\u0F06r;\uC000\uD835\uDCAB;\u43A8\u0200Ufos\u0F11\u0F16\u0F1B\u0F1FOT\u803B"\u4022r;\uC000\uD835\uDD14pf;\u611Acr;\uC000\uD835\uDCAC\u0600BEacefhiorsu\u0F3E\u0F43\u0F47\u0F60\u0F73\u0FA7\u0FAA\u0FAD\u1096\u10A9\u10B4\u10BEarr;\u6910G\u803B\xAE\u40AE\u0180cnr\u0F4E\u0F53\u0F56ute;\u4154g;\u67EBr\u0100;t\u0F5C\u0F5D\u61A0l;\u6916\u0180aey\u0F67\u0F6C\u0F71ron;\u4158dil;\u4156;\u4420\u0100;v\u0F78\u0F79\u611Cerse\u0100EU\u0F82\u0F99\u0100lq\u0F87\u0F8Eement;\u620Builibrium;\u61CBpEquilibrium;\u696Fr\xBB\u0F79o;\u43A1ght\u0400ACDFTUVa\u0FC1\u0FEB\u0FF3\u1022\u1028\u105B\u1087\u03D8\u0100nr\u0FC6\u0FD2gleBracket;\u67E9row\u0180;BL\u0FDC\u0FDD\u0FE1\u6192ar;\u61E5eftArrow;\u61C4eiling;\u6309o\u01F5\u0FF9\0\u1005bleBracket;\u67E7n\u01D4\u100A\0\u1014eeVector;\u695Dector\u0100;B\u101D\u101E\u61C2ar;\u6955loor;\u630B\u0100er\u102D\u1043e\u0180;AV\u1035\u1036\u103C\u62A2rrow;\u61A6ector;\u695Biangle\u0180;BE\u1050\u1051\u1055\u62B3ar;\u69D0qual;\u62B5p\u0180DTV\u1063\u106E\u1078ownVector;\u694FeeVector;\u695Cector\u0100;B\u1082\u1083\u61BEar;\u6954ector\u0100;B\u1091\u1092\u61C0ar;\u6953\u0100pu\u109B\u109Ef;\u611DndImplies;\u6970ightarrow;\u61DB\u0100ch\u10B9\u10BCr;\u611B;\u61B1leDelayed;\u69F4\u0680HOacfhimoqstu\u10E4\u10F1\u10F7\u10FD\u1119\u111E\u1151\u1156\u1161\u1167\u11B5\u11BB\u11BF\u0100Cc\u10E9\u10EEHcy;\u4429y;\u4428FTcy;\u442Ccute;\u415A\u0280;aeiy\u1108\u1109\u110E\u1113\u1117\u6ABCron;\u4160dil;\u415Erc;\u415C;\u4421r;\uC000\uD835\uDD16ort\u0200DLRU\u112A\u1134\u113E\u1149ownArrow\xBB\u041EeftArrow\xBB\u089AightArrow\xBB\u0FDDpArrow;\u6191gma;\u43A3allCircle;\u6218pf;\uC000\uD835\uDD4A\u0272\u116D\0\0\u1170t;\u621Aare\u0200;ISU\u117B\u117C\u1189\u11AF\u65A1ntersection;\u6293u\u0100bp\u118F\u119Eset\u0100;E\u1197\u1198\u628Fqual;\u6291erset\u0100;E\u11A8\u11A9\u6290qual;\u6292nion;\u6294cr;\uC000\uD835\uDCAEar;\u62C6\u0200bcmp\u11C8\u11DB\u1209\u120B\u0100;s\u11CD\u11CE\u62D0et\u0100;E\u11CD\u11D5qual;\u6286\u0100ch\u11E0\u1205eeds\u0200;EST\u11ED\u11EE\u11F4\u11FF\u627Bqual;\u6AB0lantEqual;\u627Dilde;\u627FTh\xE1\u0F8C;\u6211\u0180;es\u1212\u1213\u1223\u62D1rset\u0100;E\u121C\u121D\u6283qual;\u6287et\xBB\u1213\u0580HRSacfhiors\u123E\u1244\u1249\u1255\u125E\u1271\u1276\u129F\u12C2\u12C8\u12D1ORN\u803B\xDE\u40DEADE;\u6122\u0100Hc\u124E\u1252cy;\u440By;\u4426\u0100bu\u125A\u125C;\u4009;\u43A4\u0180aey\u1265\u126A\u126Fron;\u4164dil;\u4162;\u4422r;\uC000\uD835\uDD17\u0100ei\u127B\u1289\u01F2\u1280\0\u1287efore;\u6234a;\u4398\u0100cn\u128E\u1298kSpace;\uC000\u205F\u200ASpace;\u6009lde\u0200;EFT\u12AB\u12AC\u12B2\u12BC\u623Cqual;\u6243ullEqual;\u6245ilde;\u6248pf;\uC000\uD835\uDD4BipleDot;\u60DB\u0100ct\u12D6\u12DBr;\uC000\uD835\uDCAFrok;\u4166\u0AE1\u12F7\u130E\u131A\u1326\0\u132C\u1331\0\0\0\0\0\u1338\u133D\u1377\u1385\0\u13FF\u1404\u140A\u1410\u0100cr\u12FB\u1301ute\u803B\xDA\u40DAr\u0100;o\u1307\u1308\u619Fcir;\u6949r\u01E3\u1313\0\u1316y;\u440Eve;\u416C\u0100iy\u131E\u1323rc\u803B\xDB\u40DB;\u4423blac;\u4170r;\uC000\uD835\uDD18rave\u803B\xD9\u40D9acr;\u416A\u0100di\u1341\u1369er\u0100BP\u1348\u135D\u0100ar\u134D\u1350r;\u405Fac\u0100ek\u1357\u1359;\u63DFet;\u63B5arenthesis;\u63DDon\u0100;P\u1370\u1371\u62C3lus;\u628E\u0100gp\u137B\u137Fon;\u4172f;\uC000\uD835\uDD4C\u0400ADETadps\u1395\u13AE\u13B8\u13C4\u03E8\u13D2\u13D7\u13F3rrow\u0180;BD\u1150\u13A0\u13A4ar;\u6912ownArrow;\u61C5ownArrow;\u6195quilibrium;\u696Eee\u0100;A\u13CB\u13CC\u62A5rrow;\u61A5own\xE1\u03F3er\u0100LR\u13DE\u13E8eftArrow;\u6196ightArrow;\u6197i\u0100;l\u13F9\u13FA\u43D2on;\u43A5ing;\u416Ecr;\uC000\uD835\uDCB0ilde;\u4168ml\u803B\xDC\u40DC\u0480Dbcdefosv\u1427\u142C\u1430\u1433\u143E\u1485\u148A\u1490\u1496ash;\u62ABar;\u6AEBy;\u4412ash\u0100;l\u143B\u143C\u62A9;\u6AE6\u0100er\u1443\u1445;\u62C1\u0180bty\u144C\u1450\u147Aar;\u6016\u0100;i\u144F\u1455cal\u0200BLST\u1461\u1465\u146A\u1474ar;\u6223ine;\u407Ceparator;\u6758ilde;\u6240ThinSpace;\u600Ar;\uC000\uD835\uDD19pf;\uC000\uD835\uDD4Dcr;\uC000\uD835\uDCB1dash;\u62AA\u0280cefos\u14A7\u14AC\u14B1\u14B6\u14BCirc;\u4174dge;\u62C0r;\uC000\uD835\uDD1Apf;\uC000\uD835\uDD4Ecr;\uC000\uD835\uDCB2\u0200fios\u14CB\u14D0\u14D2\u14D8r;\uC000\uD835\uDD1B;\u439Epf;\uC000\uD835\uDD4Fcr;\uC000\uD835\uDCB3\u0480AIUacfosu\u14F1\u14F5\u14F9\u14FD\u1504\u150F\u1514\u151A\u1520cy;\u442Fcy;\u4407cy;\u442Ecute\u803B\xDD\u40DD\u0100iy\u1509\u150Drc;\u4176;\u442Br;\uC000\uD835\uDD1Cpf;\uC000\uD835\uDD50cr;\uC000\uD835\uDCB4ml;\u4178\u0400Hacdefos\u1535\u1539\u153F\u154B\u154F\u155D\u1560\u1564cy;\u4416cute;\u4179\u0100ay\u1544\u1549ron;\u417D;\u4417ot;\u417B\u01F2\u1554\0\u155BoWidt\xE8\u0AD9a;\u4396r;\u6128pf;\u6124cr;\uC000\uD835\uDCB5\u0BE1\u1583\u158A\u1590\0\u15B0\u15B6\u15BF\0\0\0\0\u15C6\u15DB\u15EB\u165F\u166D\0\u1695\u169B\u16B2\u16B9\0\u16BEcute\u803B\xE1\u40E1reve;\u4103\u0300;Ediuy\u159C\u159D\u15A1\u15A3\u15A8\u15AD\u623E;\uC000\u223E\u0333;\u623Frc\u803B\xE2\u40E2te\u80BB\xB4\u0306;\u4430lig\u803B\xE6\u40E6\u0100;r\xB2\u15BA;\uC000\uD835\uDD1Erave\u803B\xE0\u40E0\u0100ep\u15CA\u15D6\u0100fp\u15CF\u15D4sym;\u6135\xE8\u15D3ha;\u43B1\u0100ap\u15DFc\u0100cl\u15E4\u15E7r;\u4101g;\u6A3F\u0264\u15F0\0\0\u160A\u0280;adsv\u15FA\u15FB\u15FF\u1601\u1607\u6227nd;\u6A55;\u6A5Clope;\u6A58;\u6A5A\u0380;elmrsz\u1618\u1619\u161B\u161E\u163F\u164F\u1659\u6220;\u69A4e\xBB\u1619sd\u0100;a\u1625\u1626\u6221\u0461\u1630\u1632\u1634\u1636\u1638\u163A\u163C\u163E;\u69A8;\u69A9;\u69AA;\u69AB;\u69AC;\u69AD;\u69AE;\u69AFt\u0100;v\u1645\u1646\u621Fb\u0100;d\u164C\u164D\u62BE;\u699D\u0100pt\u1654\u1657h;\u6222\xBB\xB9arr;\u637C\u0100gp\u1663\u1667on;\u4105f;\uC000\uD835\uDD52\u0380;Eaeiop\u12C1\u167B\u167D\u1682\u1684\u1687\u168A;\u6A70cir;\u6A6F;\u624Ad;\u624Bs;\u4027rox\u0100;e\u12C1\u1692\xF1\u1683ing\u803B\xE5\u40E5\u0180cty\u16A1\u16A6\u16A8r;\uC000\uD835\uDCB6;\u402Amp\u0100;e\u12C1\u16AF\xF1\u0288ilde\u803B\xE3\u40E3ml\u803B\xE4\u40E4\u0100ci\u16C2\u16C8onin\xF4\u0272nt;\u6A11\u0800Nabcdefiklnoprsu\u16ED\u16F1\u1730\u173C\u1743\u1748\u1778\u177D\u17E0\u17E6\u1839\u1850\u170D\u193D\u1948\u1970ot;\u6AED\u0100cr\u16F6\u171Ek\u0200ceps\u1700\u1705\u170D\u1713ong;\u624Cpsilon;\u43F6rime;\u6035im\u0100;e\u171A\u171B\u623Dq;\u62CD\u0176\u1722\u1726ee;\u62BDed\u0100;g\u172C\u172D\u6305e\xBB\u172Drk\u0100;t\u135C\u1737brk;\u63B6\u0100oy\u1701\u1741;\u4431quo;\u601E\u0280cmprt\u1753\u175B\u1761\u1764\u1768aus\u0100;e\u010A\u0109ptyv;\u69B0s\xE9\u170Cno\xF5\u0113\u0180ahw\u176F\u1771\u1773;\u43B2;\u6136een;\u626Cr;\uC000\uD835\uDD1Fg\u0380costuvw\u178D\u179D\u17B3\u17C1\u17D5\u17DB\u17DE\u0180aiu\u1794\u1796\u179A\xF0\u0760rc;\u65EFp\xBB\u1371\u0180dpt\u17A4\u17A8\u17ADot;\u6A00lus;\u6A01imes;\u6A02\u0271\u17B9\0\0\u17BEcup;\u6A06ar;\u6605riangle\u0100du\u17CD\u17D2own;\u65BDp;\u65B3plus;\u6A04e\xE5\u1444\xE5\u14ADarow;\u690D\u0180ako\u17ED\u1826\u1835\u0100cn\u17F2\u1823k\u0180lst\u17FA\u05AB\u1802ozenge;\u69EBriangle\u0200;dlr\u1812\u1813\u1818\u181D\u65B4own;\u65BEeft;\u65C2ight;\u65B8k;\u6423\u01B1\u182B\0\u1833\u01B2\u182F\0\u1831;\u6592;\u65914;\u6593ck;\u6588\u0100eo\u183E\u184D\u0100;q\u1843\u1846\uC000=\u20E5uiv;\uC000\u2261\u20E5t;\u6310\u0200ptwx\u1859\u185E\u1867\u186Cf;\uC000\uD835\uDD53\u0100;t\u13CB\u1863om\xBB\u13CCtie;\u62C8\u0600DHUVbdhmptuv\u1885\u1896\u18AA\u18BB\u18D7\u18DB\u18EC\u18FF\u1905\u190A\u1910\u1921\u0200LRlr\u188E\u1890\u1892\u1894;\u6557;\u6554;\u6556;\u6553\u0280;DUdu\u18A1\u18A2\u18A4\u18A6\u18A8\u6550;\u6566;\u6569;\u6564;\u6567\u0200LRlr\u18B3\u18B5\u18B7\u18B9;\u655D;\u655A;\u655C;\u6559\u0380;HLRhlr\u18CA\u18CB\u18CD\u18CF\u18D1\u18D3\u18D5\u6551;\u656C;\u6563;\u6560;\u656B;\u6562;\u655Fox;\u69C9\u0200LRlr\u18E4\u18E6\u18E8\u18EA;\u6555;\u6552;\u6510;\u650C\u0280;DUdu\u06BD\u18F7\u18F9\u18FB\u18FD;\u6565;\u6568;\u652C;\u6534inus;\u629Flus;\u629Eimes;\u62A0\u0200LRlr\u1919\u191B\u191D\u191F;\u655B;\u6558;\u6518;\u6514\u0380;HLRhlr\u1930\u1931\u1933\u1935\u1937\u1939\u193B\u6502;\u656A;\u6561;\u655E;\u653C;\u6524;\u651C\u0100ev\u0123\u1942bar\u803B\xA6\u40A6\u0200ceio\u1951\u1956\u195A\u1960r;\uC000\uD835\uDCB7mi;\u604Fm\u0100;e\u171A\u171Cl\u0180;bh\u1968\u1969\u196B\u405C;\u69C5sub;\u67C8\u016C\u1974\u197El\u0100;e\u1979\u197A\u6022t\xBB\u197Ap\u0180;Ee\u012F\u1985\u1987;\u6AAE\u0100;q\u06DC\u06DB\u0CE1\u19A7\0\u19E8\u1A11\u1A15\u1A32\0\u1A37\u1A50\0\0\u1AB4\0\0\u1AC1\0\0\u1B21\u1B2E\u1B4D\u1B52\0\u1BFD\0\u1C0C\u0180cpr\u19AD\u19B2\u19DDute;\u4107\u0300;abcds\u19BF\u19C0\u19C4\u19CA\u19D5\u19D9\u6229nd;\u6A44rcup;\u6A49\u0100au\u19CF\u19D2p;\u6A4Bp;\u6A47ot;\u6A40;\uC000\u2229\uFE00\u0100eo\u19E2\u19E5t;\u6041\xEE\u0693\u0200aeiu\u19F0\u19FB\u1A01\u1A05\u01F0\u19F5\0\u19F8s;\u6A4Don;\u410Ddil\u803B\xE7\u40E7rc;\u4109ps\u0100;s\u1A0C\u1A0D\u6A4Cm;\u6A50ot;\u410B\u0180dmn\u1A1B\u1A20\u1A26il\u80BB\xB8\u01ADptyv;\u69B2t\u8100\xA2;e\u1A2D\u1A2E\u40A2r\xE4\u01B2r;\uC000\uD835\uDD20\u0180cei\u1A3D\u1A40\u1A4Dy;\u4447ck\u0100;m\u1A47\u1A48\u6713ark\xBB\u1A48;\u43C7r\u0380;Ecefms\u1A5F\u1A60\u1A62\u1A6B\u1AA4\u1AAA\u1AAE\u65CB;\u69C3\u0180;el\u1A69\u1A6A\u1A6D\u42C6q;\u6257e\u0261\u1A74\0\0\u1A88rrow\u0100lr\u1A7C\u1A81eft;\u61BAight;\u61BB\u0280RSacd\u1A92\u1A94\u1A96\u1A9A\u1A9F\xBB\u0F47;\u64C8st;\u629Birc;\u629Aash;\u629Dnint;\u6A10id;\u6AEFcir;\u69C2ubs\u0100;u\u1ABB\u1ABC\u6663it\xBB\u1ABC\u02EC\u1AC7\u1AD4\u1AFA\0\u1B0Aon\u0100;e\u1ACD\u1ACE\u403A\u0100;q\xC7\xC6\u026D\u1AD9\0\0\u1AE2a\u0100;t\u1ADE\u1ADF\u402C;\u4040\u0180;fl\u1AE8\u1AE9\u1AEB\u6201\xEE\u1160e\u0100mx\u1AF1\u1AF6ent\xBB\u1AE9e\xF3\u024D\u01E7\u1AFE\0\u1B07\u0100;d\u12BB\u1B02ot;\u6A6Dn\xF4\u0246\u0180fry\u1B10\u1B14\u1B17;\uC000\uD835\uDD54o\xE4\u0254\u8100\xA9;s\u0155\u1B1Dr;\u6117\u0100ao\u1B25\u1B29rr;\u61B5ss;\u6717\u0100cu\u1B32\u1B37r;\uC000\uD835\uDCB8\u0100bp\u1B3C\u1B44\u0100;e\u1B41\u1B42\u6ACF;\u6AD1\u0100;e\u1B49\u1B4A\u6AD0;\u6AD2dot;\u62EF\u0380delprvw\u1B60\u1B6C\u1B77\u1B82\u1BAC\u1BD4\u1BF9arr\u0100lr\u1B68\u1B6A;\u6938;\u6935\u0270\u1B72\0\0\u1B75r;\u62DEc;\u62DFarr\u0100;p\u1B7F\u1B80\u61B6;\u693D\u0300;bcdos\u1B8F\u1B90\u1B96\u1BA1\u1BA5\u1BA8\u622Arcap;\u6A48\u0100au\u1B9B\u1B9Ep;\u6A46p;\u6A4Aot;\u628Dr;\u6A45;\uC000\u222A\uFE00\u0200alrv\u1BB5\u1BBF\u1BDE\u1BE3rr\u0100;m\u1BBC\u1BBD\u61B7;\u693Cy\u0180evw\u1BC7\u1BD4\u1BD8q\u0270\u1BCE\0\0\u1BD2re\xE3\u1B73u\xE3\u1B75ee;\u62CEedge;\u62CFen\u803B\xA4\u40A4earrow\u0100lr\u1BEE\u1BF3eft\xBB\u1B80ight\xBB\u1BBDe\xE4\u1BDD\u0100ci\u1C01\u1C07onin\xF4\u01F7nt;\u6231lcty;\u632D\u0980AHabcdefhijlorstuwz\u1C38\u1C3B\u1C3F\u1C5D\u1C69\u1C75\u1C8A\u1C9E\u1CAC\u1CB7\u1CFB\u1CFF\u1D0D\u1D7B\u1D91\u1DAB\u1DBB\u1DC6\u1DCDr\xF2\u0381ar;\u6965\u0200glrs\u1C48\u1C4D\u1C52\u1C54ger;\u6020eth;\u6138\xF2\u1133h\u0100;v\u1C5A\u1C5B\u6010\xBB\u090A\u016B\u1C61\u1C67arow;\u690Fa\xE3\u0315\u0100ay\u1C6E\u1C73ron;\u410F;\u4434\u0180;ao\u0332\u1C7C\u1C84\u0100gr\u02BF\u1C81r;\u61CAtseq;\u6A77\u0180glm\u1C91\u1C94\u1C98\u803B\xB0\u40B0ta;\u43B4ptyv;\u69B1\u0100ir\u1CA3\u1CA8sht;\u697F;\uC000\uD835\uDD21ar\u0100lr\u1CB3\u1CB5\xBB\u08DC\xBB\u101E\u0280aegsv\u1CC2\u0378\u1CD6\u1CDC\u1CE0m\u0180;os\u0326\u1CCA\u1CD4nd\u0100;s\u0326\u1CD1uit;\u6666amma;\u43DDin;\u62F2\u0180;io\u1CE7\u1CE8\u1CF8\u40F7de\u8100\xF7;o\u1CE7\u1CF0ntimes;\u62C7n\xF8\u1CF7cy;\u4452c\u026F\u1D06\0\0\u1D0Arn;\u631Eop;\u630D\u0280lptuw\u1D18\u1D1D\u1D22\u1D49\u1D55lar;\u4024f;\uC000\uD835\uDD55\u0280;emps\u030B\u1D2D\u1D37\u1D3D\u1D42q\u0100;d\u0352\u1D33ot;\u6251inus;\u6238lus;\u6214quare;\u62A1blebarwedg\xE5\xFAn\u0180adh\u112E\u1D5D\u1D67ownarrow\xF3\u1C83arpoon\u0100lr\u1D72\u1D76ef\xF4\u1CB4igh\xF4\u1CB6\u0162\u1D7F\u1D85karo\xF7\u0F42\u026F\u1D8A\0\0\u1D8Ern;\u631Fop;\u630C\u0180cot\u1D98\u1DA3\u1DA6\u0100ry\u1D9D\u1DA1;\uC000\uD835\uDCB9;\u4455l;\u69F6rok;\u4111\u0100dr\u1DB0\u1DB4ot;\u62F1i\u0100;f\u1DBA\u1816\u65BF\u0100ah\u1DC0\u1DC3r\xF2\u0429a\xF2\u0FA6angle;\u69A6\u0100ci\u1DD2\u1DD5y;\u445Fgrarr;\u67FF\u0900Dacdefglmnopqrstux\u1E01\u1E09\u1E19\u1E38\u0578\u1E3C\u1E49\u1E61\u1E7E\u1EA5\u1EAF\u1EBD\u1EE1\u1F2A\u1F37\u1F44\u1F4E\u1F5A\u0100Do\u1E06\u1D34o\xF4\u1C89\u0100cs\u1E0E\u1E14ute\u803B\xE9\u40E9ter;\u6A6E\u0200aioy\u1E22\u1E27\u1E31\u1E36ron;\u411Br\u0100;c\u1E2D\u1E2E\u6256\u803B\xEA\u40EAlon;\u6255;\u444Dot;\u4117\u0100Dr\u1E41\u1E45ot;\u6252;\uC000\uD835\uDD22\u0180;rs\u1E50\u1E51\u1E57\u6A9Aave\u803B\xE8\u40E8\u0100;d\u1E5C\u1E5D\u6A96ot;\u6A98\u0200;ils\u1E6A\u1E6B\u1E72\u1E74\u6A99nters;\u63E7;\u6113\u0100;d\u1E79\u1E7A\u6A95ot;\u6A97\u0180aps\u1E85\u1E89\u1E97cr;\u4113ty\u0180;sv\u1E92\u1E93\u1E95\u6205et\xBB\u1E93p\u01001;\u1E9D\u1EA4\u0133\u1EA1\u1EA3;\u6004;\u6005\u6003\u0100gs\u1EAA\u1EAC;\u414Bp;\u6002\u0100gp\u1EB4\u1EB8on;\u4119f;\uC000\uD835\uDD56\u0180als\u1EC4\u1ECE\u1ED2r\u0100;s\u1ECA\u1ECB\u62D5l;\u69E3us;\u6A71i\u0180;lv\u1EDA\u1EDB\u1EDF\u43B5on\xBB\u1EDB;\u43F5\u0200csuv\u1EEA\u1EF3\u1F0B\u1F23\u0100io\u1EEF\u1E31rc\xBB\u1E2E\u0269\u1EF9\0\0\u1EFB\xED\u0548ant\u0100gl\u1F02\u1F06tr\xBB\u1E5Dess\xBB\u1E7A\u0180aei\u1F12\u1F16\u1F1Als;\u403Dst;\u625Fv\u0100;D\u0235\u1F20D;\u6A78parsl;\u69E5\u0100Da\u1F2F\u1F33ot;\u6253rr;\u6971\u0180cdi\u1F3E\u1F41\u1EF8r;\u612Fo\xF4\u0352\u0100ah\u1F49\u1F4B;\u43B7\u803B\xF0\u40F0\u0100mr\u1F53\u1F57l\u803B\xEB\u40EBo;\u60AC\u0180cip\u1F61\u1F64\u1F67l;\u4021s\xF4\u056E\u0100eo\u1F6C\u1F74ctatio\xEE\u0559nential\xE5\u0579\u09E1\u1F92\0\u1F9E\0\u1FA1\u1FA7\0\0\u1FC6\u1FCC\0\u1FD3\0\u1FE6\u1FEA\u2000\0\u2008\u205Allingdotse\xF1\u1E44y;\u4444male;\u6640\u0180ilr\u1FAD\u1FB3\u1FC1lig;\u8000\uFB03\u0269\u1FB9\0\0\u1FBDg;\u8000\uFB00ig;\u8000\uFB04;\uC000\uD835\uDD23lig;\u8000\uFB01lig;\uC000fj\u0180alt\u1FD9\u1FDC\u1FE1t;\u666Dig;\u8000\uFB02ns;\u65B1of;\u4192\u01F0\u1FEE\0\u1FF3f;\uC000\uD835\uDD57\u0100ak\u05BF\u1FF7\u0100;v\u1FFC\u1FFD\u62D4;\u6AD9artint;\u6A0D\u0100ao\u200C\u2055\u0100cs\u2011\u2052\u03B1\u201A\u2030\u2038\u2045\u2048\0\u2050\u03B2\u2022\u2025\u2027\u202A\u202C\0\u202E\u803B\xBD\u40BD;\u6153\u803B\xBC\u40BC;\u6155;\u6159;\u615B\u01B3\u2034\0\u2036;\u6154;\u6156\u02B4\u203E\u2041\0\0\u2043\u803B\xBE\u40BE;\u6157;\u615C5;\u6158\u01B6\u204C\0\u204E;\u615A;\u615D8;\u615El;\u6044wn;\u6322cr;\uC000\uD835\uDCBB\u0880Eabcdefgijlnorstv\u2082\u2089\u209F\u20A5\u20B0\u20B4\u20F0\u20F5\u20FA\u20FF\u2103\u2112\u2138\u0317\u213E\u2152\u219E\u0100;l\u064D\u2087;\u6A8C\u0180cmp\u2090\u2095\u209Dute;\u41F5ma\u0100;d\u209C\u1CDA\u43B3;\u6A86reve;\u411F\u0100iy\u20AA\u20AErc;\u411D;\u4433ot;\u4121\u0200;lqs\u063E\u0642\u20BD\u20C9\u0180;qs\u063E\u064C\u20C4lan\xF4\u0665\u0200;cdl\u0665\u20D2\u20D5\u20E5c;\u6AA9ot\u0100;o\u20DC\u20DD\u6A80\u0100;l\u20E2\u20E3\u6A82;\u6A84\u0100;e\u20EA\u20ED\uC000\u22DB\uFE00s;\u6A94r;\uC000\uD835\uDD24\u0100;g\u0673\u061Bmel;\u6137cy;\u4453\u0200;Eaj\u065A\u210C\u210E\u2110;\u6A92;\u6AA5;\u6AA4\u0200Eaes\u211B\u211D\u2129\u2134;\u6269p\u0100;p\u2123\u2124\u6A8Arox\xBB\u2124\u0100;q\u212E\u212F\u6A88\u0100;q\u212E\u211Bim;\u62E7pf;\uC000\uD835\uDD58\u0100ci\u2143\u2146r;\u610Am\u0180;el\u066B\u214E\u2150;\u6A8E;\u6A90\u8300>;cdlqr\u05EE\u2160\u216A\u216E\u2173\u2179\u0100ci\u2165\u2167;\u6AA7r;\u6A7Aot;\u62D7Par;\u6995uest;\u6A7C\u0280adels\u2184\u216A\u2190\u0656\u219B\u01F0\u2189\0\u218Epro\xF8\u209Er;\u6978q\u0100lq\u063F\u2196les\xF3\u2088i\xED\u066B\u0100en\u21A3\u21ADrtneqq;\uC000\u2269\uFE00\xC5\u21AA\u0500Aabcefkosy\u21C4\u21C7\u21F1\u21F5\u21FA\u2218\u221D\u222F\u2268\u227Dr\xF2\u03A0\u0200ilmr\u21D0\u21D4\u21D7\u21DBrs\xF0\u1484f\xBB\u2024il\xF4\u06A9\u0100dr\u21E0\u21E4cy;\u444A\u0180;cw\u08F4\u21EB\u21EFir;\u6948;\u61ADar;\u610Firc;\u4125\u0180alr\u2201\u220E\u2213rts\u0100;u\u2209\u220A\u6665it\xBB\u220Alip;\u6026con;\u62B9r;\uC000\uD835\uDD25s\u0100ew\u2223\u2229arow;\u6925arow;\u6926\u0280amopr\u223A\u223E\u2243\u225E\u2263rr;\u61FFtht;\u623Bk\u0100lr\u2249\u2253eftarrow;\u61A9ightarrow;\u61AAf;\uC000\uD835\uDD59bar;\u6015\u0180clt\u226F\u2274\u2278r;\uC000\uD835\uDCBDas\xE8\u21F4rok;\u4127\u0100bp\u2282\u2287ull;\u6043hen\xBB\u1C5B\u0AE1\u22A3\0\u22AA\0\u22B8\u22C5\u22CE\0\u22D5\u22F3\0\0\u22F8\u2322\u2367\u2362\u237F\0\u2386\u23AA\u23B4cute\u803B\xED\u40ED\u0180;iy\u0771\u22B0\u22B5rc\u803B\xEE\u40EE;\u4438\u0100cx\u22BC\u22BFy;\u4435cl\u803B\xA1\u40A1\u0100fr\u039F\u22C9;\uC000\uD835\uDD26rave\u803B\xEC\u40EC\u0200;ino\u073E\u22DD\u22E9\u22EE\u0100in\u22E2\u22E6nt;\u6A0Ct;\u622Dfin;\u69DCta;\u6129lig;\u4133\u0180aop\u22FE\u231A\u231D\u0180cgt\u2305\u2308\u2317r;\u412B\u0180elp\u071F\u230F\u2313in\xE5\u078Ear\xF4\u0720h;\u4131f;\u62B7ed;\u41B5\u0280;cfot\u04F4\u232C\u2331\u233D\u2341are;\u6105in\u0100;t\u2338\u2339\u621Eie;\u69DDdo\xF4\u2319\u0280;celp\u0757\u234C\u2350\u235B\u2361al;\u62BA\u0100gr\u2355\u2359er\xF3\u1563\xE3\u234Darhk;\u6A17rod;\u6A3C\u0200cgpt\u236F\u2372\u2376\u237By;\u4451on;\u412Ff;\uC000\uD835\uDD5Aa;\u43B9uest\u803B\xBF\u40BF\u0100ci\u238A\u238Fr;\uC000\uD835\uDCBEn\u0280;Edsv\u04F4\u239B\u239D\u23A1\u04F3;\u62F9ot;\u62F5\u0100;v\u23A6\u23A7\u62F4;\u62F3\u0100;i\u0777\u23AElde;\u4129\u01EB\u23B8\0\u23BCcy;\u4456l\u803B\xEF\u40EF\u0300cfmosu\u23CC\u23D7\u23DC\u23E1\u23E7\u23F5\u0100iy\u23D1\u23D5rc;\u4135;\u4439r;\uC000\uD835\uDD27ath;\u4237pf;\uC000\uD835\uDD5B\u01E3\u23EC\0\u23F1r;\uC000\uD835\uDCBFrcy;\u4458kcy;\u4454\u0400acfghjos\u240B\u2416\u2422\u2427\u242D\u2431\u2435\u243Bppa\u0100;v\u2413\u2414\u43BA;\u43F0\u0100ey\u241B\u2420dil;\u4137;\u443Ar;\uC000\uD835\uDD28reen;\u4138cy;\u4445cy;\u445Cpf;\uC000\uD835\uDD5Ccr;\uC000\uD835\uDCC0\u0B80ABEHabcdefghjlmnoprstuv\u2470\u2481\u2486\u248D\u2491\u250E\u253D\u255A\u2580\u264E\u265E\u2665\u2679\u267D\u269A\u26B2\u26D8\u275D\u2768\u278B\u27C0\u2801\u2812\u0180art\u2477\u247A\u247Cr\xF2\u09C6\xF2\u0395ail;\u691Barr;\u690E\u0100;g\u0994\u248B;\u6A8Bar;\u6962\u0963\u24A5\0\u24AA\0\u24B1\0\0\0\0\0\u24B5\u24BA\0\u24C6\u24C8\u24CD\0\u24F9ute;\u413Amptyv;\u69B4ra\xEE\u084Cbda;\u43BBg\u0180;dl\u088E\u24C1\u24C3;\u6991\xE5\u088E;\u6A85uo\u803B\xAB\u40ABr\u0400;bfhlpst\u0899\u24DE\u24E6\u24E9\u24EB\u24EE\u24F1\u24F5\u0100;f\u089D\u24E3s;\u691Fs;\u691D\xEB\u2252p;\u61ABl;\u6939im;\u6973l;\u61A2\u0180;ae\u24FF\u2500\u2504\u6AABil;\u6919\u0100;s\u2509\u250A\u6AAD;\uC000\u2AAD\uFE00\u0180abr\u2515\u2519\u251Drr;\u690Crk;\u6772\u0100ak\u2522\u252Cc\u0100ek\u2528\u252A;\u407B;\u405B\u0100es\u2531\u2533;\u698Bl\u0100du\u2539\u253B;\u698F;\u698D\u0200aeuy\u2546\u254B\u2556\u2558ron;\u413E\u0100di\u2550\u2554il;\u413C\xEC\u08B0\xE2\u2529;\u443B\u0200cqrs\u2563\u2566\u256D\u257Da;\u6936uo\u0100;r\u0E19\u1746\u0100du\u2572\u2577har;\u6967shar;\u694Bh;\u61B2\u0280;fgqs\u258B\u258C\u0989\u25F3\u25FF\u6264t\u0280ahlrt\u2598\u25A4\u25B7\u25C2\u25E8rrow\u0100;t\u0899\u25A1a\xE9\u24F6arpoon\u0100du\u25AF\u25B4own\xBB\u045Ap\xBB\u0966eftarrows;\u61C7ight\u0180ahs\u25CD\u25D6\u25DErrow\u0100;s\u08F4\u08A7arpoon\xF3\u0F98quigarro\xF7\u21F0hreetimes;\u62CB\u0180;qs\u258B\u0993\u25FAlan\xF4\u09AC\u0280;cdgs\u09AC\u260A\u260D\u261D\u2628c;\u6AA8ot\u0100;o\u2614\u2615\u6A7F\u0100;r\u261A\u261B\u6A81;\u6A83\u0100;e\u2622\u2625\uC000\u22DA\uFE00s;\u6A93\u0280adegs\u2633\u2639\u263D\u2649\u264Bppro\xF8\u24C6ot;\u62D6q\u0100gq\u2643\u2645\xF4\u0989gt\xF2\u248C\xF4\u099Bi\xED\u09B2\u0180ilr\u2655\u08E1\u265Asht;\u697C;\uC000\uD835\uDD29\u0100;E\u099C\u2663;\u6A91\u0161\u2669\u2676r\u0100du\u25B2\u266E\u0100;l\u0965\u2673;\u696Alk;\u6584cy;\u4459\u0280;acht\u0A48\u2688\u268B\u2691\u2696r\xF2\u25C1orne\xF2\u1D08ard;\u696Bri;\u65FA\u0100io\u269F\u26A4dot;\u4140ust\u0100;a\u26AC\u26AD\u63B0che\xBB\u26AD\u0200Eaes\u26BB\u26BD\u26C9\u26D4;\u6268p\u0100;p\u26C3\u26C4\u6A89rox\xBB\u26C4\u0100;q\u26CE\u26CF\u6A87\u0100;q\u26CE\u26BBim;\u62E6\u0400abnoptwz\u26E9\u26F4\u26F7\u271A\u272F\u2741\u2747\u2750\u0100nr\u26EE\u26F1g;\u67ECr;\u61FDr\xEB\u08C1g\u0180lmr\u26FF\u270D\u2714eft\u0100ar\u09E6\u2707ight\xE1\u09F2apsto;\u67FCight\xE1\u09FDparrow\u0100lr\u2725\u2729ef\xF4\u24EDight;\u61AC\u0180afl\u2736\u2739\u273Dr;\u6985;\uC000\uD835\uDD5Dus;\u6A2Dimes;\u6A34\u0161\u274B\u274Fst;\u6217\xE1\u134E\u0180;ef\u2757\u2758\u1800\u65CAnge\xBB\u2758ar\u0100;l\u2764\u2765\u4028t;\u6993\u0280achmt\u2773\u2776\u277C\u2785\u2787r\xF2\u08A8orne\xF2\u1D8Car\u0100;d\u0F98\u2783;\u696D;\u600Eri;\u62BF\u0300achiqt\u2798\u279D\u0A40\u27A2\u27AE\u27BBquo;\u6039r;\uC000\uD835\uDCC1m\u0180;eg\u09B2\u27AA\u27AC;\u6A8D;\u6A8F\u0100bu\u252A\u27B3o\u0100;r\u0E1F\u27B9;\u601Arok;\u4142\u8400<;cdhilqr\u082B\u27D2\u2639\u27DC\u27E0\u27E5\u27EA\u27F0\u0100ci\u27D7\u27D9;\u6AA6r;\u6A79re\xE5\u25F2mes;\u62C9arr;\u6976uest;\u6A7B\u0100Pi\u27F5\u27F9ar;\u6996\u0180;ef\u2800\u092D\u181B\u65C3r\u0100du\u2807\u280Dshar;\u694Ahar;\u6966\u0100en\u2817\u2821rtneqq;\uC000\u2268\uFE00\xC5\u281E\u0700Dacdefhilnopsu\u2840\u2845\u2882\u288E\u2893\u28A0\u28A5\u28A8\u28DA\u28E2\u28E4\u0A83\u28F3\u2902Dot;\u623A\u0200clpr\u284E\u2852\u2863\u287Dr\u803B\xAF\u40AF\u0100et\u2857\u2859;\u6642\u0100;e\u285E\u285F\u6720se\xBB\u285F\u0100;s\u103B\u2868to\u0200;dlu\u103B\u2873\u2877\u287Bow\xEE\u048Cef\xF4\u090F\xF0\u13D1ker;\u65AE\u0100oy\u2887\u288Cmma;\u6A29;\u443Cash;\u6014asuredangle\xBB\u1626r;\uC000\uD835\uDD2Ao;\u6127\u0180cdn\u28AF\u28B4\u28C9ro\u803B\xB5\u40B5\u0200;acd\u1464\u28BD\u28C0\u28C4s\xF4\u16A7ir;\u6AF0ot\u80BB\xB7\u01B5us\u0180;bd\u28D2\u1903\u28D3\u6212\u0100;u\u1D3C\u28D8;\u6A2A\u0163\u28DE\u28E1p;\u6ADB\xF2\u2212\xF0\u0A81\u0100dp\u28E9\u28EEels;\u62A7f;\uC000\uD835\uDD5E\u0100ct\u28F8\u28FDr;\uC000\uD835\uDCC2pos\xBB\u159D\u0180;lm\u2909\u290A\u290D\u43BCtimap;\u62B8\u0C00GLRVabcdefghijlmoprstuvw\u2942\u2953\u297E\u2989\u2998\u29DA\u29E9\u2A15\u2A1A\u2A58\u2A5D\u2A83\u2A95\u2AA4\u2AA8\u2B04\u2B07\u2B44\u2B7F\u2BAE\u2C34\u2C67\u2C7C\u2CE9\u0100gt\u2947\u294B;\uC000\u22D9\u0338\u0100;v\u2950\u0BCF\uC000\u226B\u20D2\u0180elt\u295A\u2972\u2976ft\u0100ar\u2961\u2967rrow;\u61CDightarrow;\u61CE;\uC000\u22D8\u0338\u0100;v\u297B\u0C47\uC000\u226A\u20D2ightarrow;\u61CF\u0100Dd\u298E\u2993ash;\u62AFash;\u62AE\u0280bcnpt\u29A3\u29A7\u29AC\u29B1\u29CCla\xBB\u02DEute;\u4144g;\uC000\u2220\u20D2\u0280;Eiop\u0D84\u29BC\u29C0\u29C5\u29C8;\uC000\u2A70\u0338d;\uC000\u224B\u0338s;\u4149ro\xF8\u0D84ur\u0100;a\u29D3\u29D4\u666El\u0100;s\u29D3\u0B38\u01F3\u29DF\0\u29E3p\u80BB\xA0\u0B37mp\u0100;e\u0BF9\u0C00\u0280aeouy\u29F4\u29FE\u2A03\u2A10\u2A13\u01F0\u29F9\0\u29FB;\u6A43on;\u4148dil;\u4146ng\u0100;d\u0D7E\u2A0Aot;\uC000\u2A6D\u0338p;\u6A42;\u443Dash;\u6013\u0380;Aadqsx\u0B92\u2A29\u2A2D\u2A3B\u2A41\u2A45\u2A50rr;\u61D7r\u0100hr\u2A33\u2A36k;\u6924\u0100;o\u13F2\u13F0ot;\uC000\u2250\u0338ui\xF6\u0B63\u0100ei\u2A4A\u2A4Ear;\u6928\xED\u0B98ist\u0100;s\u0BA0\u0B9Fr;\uC000\uD835\uDD2B\u0200Eest\u0BC5\u2A66\u2A79\u2A7C\u0180;qs\u0BBC\u2A6D\u0BE1\u0180;qs\u0BBC\u0BC5\u2A74lan\xF4\u0BE2i\xED\u0BEA\u0100;r\u0BB6\u2A81\xBB\u0BB7\u0180Aap\u2A8A\u2A8D\u2A91r\xF2\u2971rr;\u61AEar;\u6AF2\u0180;sv\u0F8D\u2A9C\u0F8C\u0100;d\u2AA1\u2AA2\u62FC;\u62FAcy;\u445A\u0380AEadest\u2AB7\u2ABA\u2ABE\u2AC2\u2AC5\u2AF6\u2AF9r\xF2\u2966;\uC000\u2266\u0338rr;\u619Ar;\u6025\u0200;fqs\u0C3B\u2ACE\u2AE3\u2AEFt\u0100ar\u2AD4\u2AD9rro\xF7\u2AC1ightarro\xF7\u2A90\u0180;qs\u0C3B\u2ABA\u2AEAlan\xF4\u0C55\u0100;s\u0C55\u2AF4\xBB\u0C36i\xED\u0C5D\u0100;r\u0C35\u2AFEi\u0100;e\u0C1A\u0C25i\xE4\u0D90\u0100pt\u2B0C\u2B11f;\uC000\uD835\uDD5F\u8180\xAC;in\u2B19\u2B1A\u2B36\u40ACn\u0200;Edv\u0B89\u2B24\u2B28\u2B2E;\uC000\u22F9\u0338ot;\uC000\u22F5\u0338\u01E1\u0B89\u2B33\u2B35;\u62F7;\u62F6i\u0100;v\u0CB8\u2B3C\u01E1\u0CB8\u2B41\u2B43;\u62FE;\u62FD\u0180aor\u2B4B\u2B63\u2B69r\u0200;ast\u0B7B\u2B55\u2B5A\u2B5Flle\xEC\u0B7Bl;\uC000\u2AFD\u20E5;\uC000\u2202\u0338lint;\u6A14\u0180;ce\u0C92\u2B70\u2B73u\xE5\u0CA5\u0100;c\u0C98\u2B78\u0100;e\u0C92\u2B7D\xF1\u0C98\u0200Aait\u2B88\u2B8B\u2B9D\u2BA7r\xF2\u2988rr\u0180;cw\u2B94\u2B95\u2B99\u619B;\uC000\u2933\u0338;\uC000\u219D\u0338ghtarrow\xBB\u2B95ri\u0100;e\u0CCB\u0CD6\u0380chimpqu\u2BBD\u2BCD\u2BD9\u2B04\u0B78\u2BE4\u2BEF\u0200;cer\u0D32\u2BC6\u0D37\u2BC9u\xE5\u0D45;\uC000\uD835\uDCC3ort\u026D\u2B05\0\0\u2BD6ar\xE1\u2B56m\u0100;e\u0D6E\u2BDF\u0100;q\u0D74\u0D73su\u0100bp\u2BEB\u2BED\xE5\u0CF8\xE5\u0D0B\u0180bcp\u2BF6\u2C11\u2C19\u0200;Ees\u2BFF\u2C00\u0D22\u2C04\u6284;\uC000\u2AC5\u0338et\u0100;e\u0D1B\u2C0Bq\u0100;q\u0D23\u2C00c\u0100;e\u0D32\u2C17\xF1\u0D38\u0200;Ees\u2C22\u2C23\u0D5F\u2C27\u6285;\uC000\u2AC6\u0338et\u0100;e\u0D58\u2C2Eq\u0100;q\u0D60\u2C23\u0200gilr\u2C3D\u2C3F\u2C45\u2C47\xEC\u0BD7lde\u803B\xF1\u40F1\xE7\u0C43iangle\u0100lr\u2C52\u2C5Ceft\u0100;e\u0C1A\u2C5A\xF1\u0C26ight\u0100;e\u0CCB\u2C65\xF1\u0CD7\u0100;m\u2C6C\u2C6D\u43BD\u0180;es\u2C74\u2C75\u2C79\u4023ro;\u6116p;\u6007\u0480DHadgilrs\u2C8F\u2C94\u2C99\u2C9E\u2CA3\u2CB0\u2CB6\u2CD3\u2CE3ash;\u62ADarr;\u6904p;\uC000\u224D\u20D2ash;\u62AC\u0100et\u2CA8\u2CAC;\uC000\u2265\u20D2;\uC000>\u20D2nfin;\u69DE\u0180Aet\u2CBD\u2CC1\u2CC5rr;\u6902;\uC000\u2264\u20D2\u0100;r\u2CCA\u2CCD\uC000<\u20D2ie;\uC000\u22B4\u20D2\u0100At\u2CD8\u2CDCrr;\u6903rie;\uC000\u22B5\u20D2im;\uC000\u223C\u20D2\u0180Aan\u2CF0\u2CF4\u2D02rr;\u61D6r\u0100hr\u2CFA\u2CFDk;\u6923\u0100;o\u13E7\u13E5ear;\u6927\u1253\u1A95\0\0\0\0\0\0\0\0\0\0\0\0\0\u2D2D\0\u2D38\u2D48\u2D60\u2D65\u2D72\u2D84\u1B07\0\0\u2D8D\u2DAB\0\u2DC8\u2DCE\0\u2DDC\u2E19\u2E2B\u2E3E\u2E43\u0100cs\u2D31\u1A97ute\u803B\xF3\u40F3\u0100iy\u2D3C\u2D45r\u0100;c\u1A9E\u2D42\u803B\xF4\u40F4;\u443E\u0280abios\u1AA0\u2D52\u2D57\u01C8\u2D5Alac;\u4151v;\u6A38old;\u69BClig;\u4153\u0100cr\u2D69\u2D6Dir;\u69BF;\uC000\uD835\uDD2C\u036F\u2D79\0\0\u2D7C\0\u2D82n;\u42DBave\u803B\xF2\u40F2;\u69C1\u0100bm\u2D88\u0DF4ar;\u69B5\u0200acit\u2D95\u2D98\u2DA5\u2DA8r\xF2\u1A80\u0100ir\u2D9D\u2DA0r;\u69BEoss;\u69BBn\xE5\u0E52;\u69C0\u0180aei\u2DB1\u2DB5\u2DB9cr;\u414Dga;\u43C9\u0180cdn\u2DC0\u2DC5\u01CDron;\u43BF;\u69B6pf;\uC000\uD835\uDD60\u0180ael\u2DD4\u2DD7\u01D2r;\u69B7rp;\u69B9\u0380;adiosv\u2DEA\u2DEB\u2DEE\u2E08\u2E0D\u2E10\u2E16\u6228r\xF2\u1A86\u0200;efm\u2DF7\u2DF8\u2E02\u2E05\u6A5Dr\u0100;o\u2DFE\u2DFF\u6134f\xBB\u2DFF\u803B\xAA\u40AA\u803B\xBA\u40BAgof;\u62B6r;\u6A56lope;\u6A57;\u6A5B\u0180clo\u2E1F\u2E21\u2E27\xF2\u2E01ash\u803B\xF8\u40F8l;\u6298i\u016C\u2E2F\u2E34de\u803B\xF5\u40F5es\u0100;a\u01DB\u2E3As;\u6A36ml\u803B\xF6\u40F6bar;\u633D\u0AE1\u2E5E\0\u2E7D\0\u2E80\u2E9D\0\u2EA2\u2EB9\0\0\u2ECB\u0E9C\0\u2F13\0\0\u2F2B\u2FBC\0\u2FC8r\u0200;ast\u0403\u2E67\u2E72\u0E85\u8100\xB6;l\u2E6D\u2E6E\u40B6le\xEC\u0403\u0269\u2E78\0\0\u2E7Bm;\u6AF3;\u6AFDy;\u443Fr\u0280cimpt\u2E8B\u2E8F\u2E93\u1865\u2E97nt;\u4025od;\u402Eil;\u6030enk;\u6031r;\uC000\uD835\uDD2D\u0180imo\u2EA8\u2EB0\u2EB4\u0100;v\u2EAD\u2EAE\u43C6;\u43D5ma\xF4\u0A76ne;\u660E\u0180;tv\u2EBF\u2EC0\u2EC8\u43C0chfork\xBB\u1FFD;\u43D6\u0100au\u2ECF\u2EDFn\u0100ck\u2ED5\u2EDDk\u0100;h\u21F4\u2EDB;\u610E\xF6\u21F4s\u0480;abcdemst\u2EF3\u2EF4\u1908\u2EF9\u2EFD\u2F04\u2F06\u2F0A\u2F0E\u402Bcir;\u6A23ir;\u6A22\u0100ou\u1D40\u2F02;\u6A25;\u6A72n\u80BB\xB1\u0E9Dim;\u6A26wo;\u6A27\u0180ipu\u2F19\u2F20\u2F25ntint;\u6A15f;\uC000\uD835\uDD61nd\u803B\xA3\u40A3\u0500;Eaceinosu\u0EC8\u2F3F\u2F41\u2F44\u2F47\u2F81\u2F89\u2F92\u2F7E\u2FB6;\u6AB3p;\u6AB7u\xE5\u0ED9\u0100;c\u0ECE\u2F4C\u0300;acens\u0EC8\u2F59\u2F5F\u2F66\u2F68\u2F7Eppro\xF8\u2F43urlye\xF1\u0ED9\xF1\u0ECE\u0180aes\u2F6F\u2F76\u2F7Approx;\u6AB9qq;\u6AB5im;\u62E8i\xED\u0EDFme\u0100;s\u2F88\u0EAE\u6032\u0180Eas\u2F78\u2F90\u2F7A\xF0\u2F75\u0180dfp\u0EEC\u2F99\u2FAF\u0180als\u2FA0\u2FA5\u2FAAlar;\u632Eine;\u6312urf;\u6313\u0100;t\u0EFB\u2FB4\xEF\u0EFBrel;\u62B0\u0100ci\u2FC0\u2FC5r;\uC000\uD835\uDCC5;\u43C8ncsp;\u6008\u0300fiopsu\u2FDA\u22E2\u2FDF\u2FE5\u2FEB\u2FF1r;\uC000\uD835\uDD2Epf;\uC000\uD835\uDD62rime;\u6057cr;\uC000\uD835\uDCC6\u0180aeo\u2FF8\u3009\u3013t\u0100ei\u2FFE\u3005rnion\xF3\u06B0nt;\u6A16st\u0100;e\u3010\u3011\u403F\xF1\u1F19\xF4\u0F14\u0A80ABHabcdefhilmnoprstux\u3040\u3051\u3055\u3059\u30E0\u310E\u312B\u3147\u3162\u3172\u318E\u3206\u3215\u3224\u3229\u3258\u326E\u3272\u3290\u32B0\u32B7\u0180art\u3047\u304A\u304Cr\xF2\u10B3\xF2\u03DDail;\u691Car\xF2\u1C65ar;\u6964\u0380cdenqrt\u3068\u3075\u3078\u307F\u308F\u3094\u30CC\u0100eu\u306D\u3071;\uC000\u223D\u0331te;\u4155i\xE3\u116Emptyv;\u69B3g\u0200;del\u0FD1\u3089\u308B\u308D;\u6992;\u69A5\xE5\u0FD1uo\u803B\xBB\u40BBr\u0580;abcfhlpstw\u0FDC\u30AC\u30AF\u30B7\u30B9\u30BC\u30BE\u30C0\u30C3\u30C7\u30CAp;\u6975\u0100;f\u0FE0\u30B4s;\u6920;\u6933s;\u691E\xEB\u225D\xF0\u272El;\u6945im;\u6974l;\u61A3;\u619D\u0100ai\u30D1\u30D5il;\u691Ao\u0100;n\u30DB\u30DC\u6236al\xF3\u0F1E\u0180abr\u30E7\u30EA\u30EEr\xF2\u17E5rk;\u6773\u0100ak\u30F3\u30FDc\u0100ek\u30F9\u30FB;\u407D;\u405D\u0100es\u3102\u3104;\u698Cl\u0100du\u310A\u310C;\u698E;\u6990\u0200aeuy\u3117\u311C\u3127\u3129ron;\u4159\u0100di\u3121\u3125il;\u4157\xEC\u0FF2\xE2\u30FA;\u4440\u0200clqs\u3134\u3137\u313D\u3144a;\u6937dhar;\u6969uo\u0100;r\u020E\u020Dh;\u61B3\u0180acg\u314E\u315F\u0F44l\u0200;ips\u0F78\u3158\u315B\u109Cn\xE5\u10BBar\xF4\u0FA9t;\u65AD\u0180ilr\u3169\u1023\u316Esht;\u697D;\uC000\uD835\uDD2F\u0100ao\u3177\u3186r\u0100du\u317D\u317F\xBB\u047B\u0100;l\u1091\u3184;\u696C\u0100;v\u318B\u318C\u43C1;\u43F1\u0180gns\u3195\u31F9\u31FCht\u0300ahlrst\u31A4\u31B0\u31C2\u31D8\u31E4\u31EErrow\u0100;t\u0FDC\u31ADa\xE9\u30C8arpoon\u0100du\u31BB\u31BFow\xEE\u317Ep\xBB\u1092eft\u0100ah\u31CA\u31D0rrow\xF3\u0FEAarpoon\xF3\u0551ightarrows;\u61C9quigarro\xF7\u30CBhreetimes;\u62CCg;\u42DAingdotse\xF1\u1F32\u0180ahm\u320D\u3210\u3213r\xF2\u0FEAa\xF2\u0551;\u600Foust\u0100;a\u321E\u321F\u63B1che\xBB\u321Fmid;\u6AEE\u0200abpt\u3232\u323D\u3240\u3252\u0100nr\u3237\u323Ag;\u67EDr;\u61FEr\xEB\u1003\u0180afl\u3247\u324A\u324Er;\u6986;\uC000\uD835\uDD63us;\u6A2Eimes;\u6A35\u0100ap\u325D\u3267r\u0100;g\u3263\u3264\u4029t;\u6994olint;\u6A12ar\xF2\u31E3\u0200achq\u327B\u3280\u10BC\u3285quo;\u603Ar;\uC000\uD835\uDCC7\u0100bu\u30FB\u328Ao\u0100;r\u0214\u0213\u0180hir\u3297\u329B\u32A0re\xE5\u31F8mes;\u62CAi\u0200;efl\u32AA\u1059\u1821\u32AB\u65B9tri;\u69CEluhar;\u6968;\u611E\u0D61\u32D5\u32DB\u32DF\u332C\u3338\u3371\0\u337A\u33A4\0\0\u33EC\u33F0\0\u3428\u3448\u345A\u34AD\u34B1\u34CA\u34F1\0\u3616\0\0\u3633cute;\u415Bqu\xEF\u27BA\u0500;Eaceinpsy\u11ED\u32F3\u32F5\u32FF\u3302\u330B\u330F\u331F\u3326\u3329;\u6AB4\u01F0\u32FA\0\u32FC;\u6AB8on;\u4161u\xE5\u11FE\u0100;d\u11F3\u3307il;\u415Frc;\u415D\u0180Eas\u3316\u3318\u331B;\u6AB6p;\u6ABAim;\u62E9olint;\u6A13i\xED\u1204;\u4441ot\u0180;be\u3334\u1D47\u3335\u62C5;\u6A66\u0380Aacmstx\u3346\u334A\u3357\u335B\u335E\u3363\u336Drr;\u61D8r\u0100hr\u3350\u3352\xEB\u2228\u0100;o\u0A36\u0A34t\u803B\xA7\u40A7i;\u403Bwar;\u6929m\u0100in\u3369\xF0nu\xF3\xF1t;\u6736r\u0100;o\u3376\u2055\uC000\uD835\uDD30\u0200acoy\u3382\u3386\u3391\u33A0rp;\u666F\u0100hy\u338B\u338Fcy;\u4449;\u4448rt\u026D\u3399\0\0\u339Ci\xE4\u1464ara\xEC\u2E6F\u803B\xAD\u40AD\u0100gm\u33A8\u33B4ma\u0180;fv\u33B1\u33B2\u33B2\u43C3;\u43C2\u0400;deglnpr\u12AB\u33C5\u33C9\u33CE\u33D6\u33DE\u33E1\u33E6ot;\u6A6A\u0100;q\u12B1\u12B0\u0100;E\u33D3\u33D4\u6A9E;\u6AA0\u0100;E\u33DB\u33DC\u6A9D;\u6A9Fe;\u6246lus;\u6A24arr;\u6972ar\xF2\u113D\u0200aeit\u33F8\u3408\u340F\u3417\u0100ls\u33FD\u3404lsetm\xE9\u336Ahp;\u6A33parsl;\u69E4\u0100dl\u1463\u3414e;\u6323\u0100;e\u341C\u341D\u6AAA\u0100;s\u3422\u3423\u6AAC;\uC000\u2AAC\uFE00\u0180flp\u342E\u3433\u3442tcy;\u444C\u0100;b\u3438\u3439\u402F\u0100;a\u343E\u343F\u69C4r;\u633Ff;\uC000\uD835\uDD64a\u0100dr\u344D\u0402es\u0100;u\u3454\u3455\u6660it\xBB\u3455\u0180csu\u3460\u3479\u349F\u0100au\u3465\u346Fp\u0100;s\u1188\u346B;\uC000\u2293\uFE00p\u0100;s\u11B4\u3475;\uC000\u2294\uFE00u\u0100bp\u347F\u348F\u0180;es\u1197\u119C\u3486et\u0100;e\u1197\u348D\xF1\u119D\u0180;es\u11A8\u11AD\u3496et\u0100;e\u11A8\u349D\xF1\u11AE\u0180;af\u117B\u34A6\u05B0r\u0165\u34AB\u05B1\xBB\u117Car\xF2\u1148\u0200cemt\u34B9\u34BE\u34C2\u34C5r;\uC000\uD835\uDCC8tm\xEE\xF1i\xEC\u3415ar\xE6\u11BE\u0100ar\u34CE\u34D5r\u0100;f\u34D4\u17BF\u6606\u0100an\u34DA\u34EDight\u0100ep\u34E3\u34EApsilo\xEE\u1EE0h\xE9\u2EAFs\xBB\u2852\u0280bcmnp\u34FB\u355E\u1209\u358B\u358E\u0480;Edemnprs\u350E\u350F\u3511\u3515\u351E\u3523\u352C\u3531\u3536\u6282;\u6AC5ot;\u6ABD\u0100;d\u11DA\u351Aot;\u6AC3ult;\u6AC1\u0100Ee\u3528\u352A;\u6ACB;\u628Alus;\u6ABFarr;\u6979\u0180eiu\u353D\u3552\u3555t\u0180;en\u350E\u3545\u354Bq\u0100;q\u11DA\u350Feq\u0100;q\u352B\u3528m;\u6AC7\u0100bp\u355A\u355C;\u6AD5;\u6AD3c\u0300;acens\u11ED\u356C\u3572\u3579\u357B\u3326ppro\xF8\u32FAurlye\xF1\u11FE\xF1\u11F3\u0180aes\u3582\u3588\u331Bppro\xF8\u331Aq\xF1\u3317g;\u666A\u0680123;Edehlmnps\u35A9\u35AC\u35AF\u121C\u35B2\u35B4\u35C0\u35C9\u35D5\u35DA\u35DF\u35E8\u35ED\u803B\xB9\u40B9\u803B\xB2\u40B2\u803B\xB3\u40B3;\u6AC6\u0100os\u35B9\u35BCt;\u6ABEub;\u6AD8\u0100;d\u1222\u35C5ot;\u6AC4s\u0100ou\u35CF\u35D2l;\u67C9b;\u6AD7arr;\u697Bult;\u6AC2\u0100Ee\u35E4\u35E6;\u6ACC;\u628Blus;\u6AC0\u0180eiu\u35F4\u3609\u360Ct\u0180;en\u121C\u35FC\u3602q\u0100;q\u1222\u35B2eq\u0100;q\u35E7\u35E4m;\u6AC8\u0100bp\u3611\u3613;\u6AD4;\u6AD6\u0180Aan\u361C\u3620\u362Drr;\u61D9r\u0100hr\u3626\u3628\xEB\u222E\u0100;o\u0A2B\u0A29war;\u692Alig\u803B\xDF\u40DF\u0BE1\u3651\u365D\u3660\u12CE\u3673\u3679\0\u367E\u36C2\0\0\0\0\0\u36DB\u3703\0\u3709\u376C\0\0\0\u3787\u0272\u3656\0\0\u365Bget;\u6316;\u43C4r\xEB\u0E5F\u0180aey\u3666\u366B\u3670ron;\u4165dil;\u4163;\u4442lrec;\u6315r;\uC000\uD835\uDD31\u0200eiko\u3686\u369D\u36B5\u36BC\u01F2\u368B\0\u3691e\u01004f\u1284\u1281a\u0180;sv\u3698\u3699\u369B\u43B8ym;\u43D1\u0100cn\u36A2\u36B2k\u0100as\u36A8\u36AEppro\xF8\u12C1im\xBB\u12ACs\xF0\u129E\u0100as\u36BA\u36AE\xF0\u12C1rn\u803B\xFE\u40FE\u01EC\u031F\u36C6\u22E7es\u8180\xD7;bd\u36CF\u36D0\u36D8\u40D7\u0100;a\u190F\u36D5r;\u6A31;\u6A30\u0180eps\u36E1\u36E3\u3700\xE1\u2A4D\u0200;bcf\u0486\u36EC\u36F0\u36F4ot;\u6336ir;\u6AF1\u0100;o\u36F9\u36FC\uC000\uD835\uDD65rk;\u6ADA\xE1\u3362rime;\u6034\u0180aip\u370F\u3712\u3764d\xE5\u1248\u0380adempst\u3721\u374D\u3740\u3751\u3757\u375C\u375Fngle\u0280;dlqr\u3730\u3731\u3736\u3740\u3742\u65B5own\xBB\u1DBBeft\u0100;e\u2800\u373E\xF1\u092E;\u625Cight\u0100;e\u32AA\u374B\xF1\u105Aot;\u65ECinus;\u6A3Alus;\u6A39b;\u69CDime;\u6A3Bezium;\u63E2\u0180cht\u3772\u377D\u3781\u0100ry\u3777\u377B;\uC000\uD835\uDCC9;\u4446cy;\u445Brok;\u4167\u0100io\u378B\u378Ex\xF4\u1777head\u0100lr\u3797\u37A0eftarro\xF7\u084Fightarrow\xBB\u0F5D\u0900AHabcdfghlmoprstuw\u37D0\u37D3\u37D7\u37E4\u37F0\u37FC\u380E\u381C\u3823\u3834\u3851\u385D\u386B\u38A9\u38CC\u38D2\u38EA\u38F6r\xF2\u03EDar;\u6963\u0100cr\u37DC\u37E2ute\u803B\xFA\u40FA\xF2\u1150r\u01E3\u37EA\0\u37EDy;\u445Eve;\u416D\u0100iy\u37F5\u37FArc\u803B\xFB\u40FB;\u4443\u0180abh\u3803\u3806\u380Br\xF2\u13ADlac;\u4171a\xF2\u13C3\u0100ir\u3813\u3818sht;\u697E;\uC000\uD835\uDD32rave\u803B\xF9\u40F9\u0161\u3827\u3831r\u0100lr\u382C\u382E\xBB\u0957\xBB\u1083lk;\u6580\u0100ct\u3839\u384D\u026F\u383F\0\0\u384Arn\u0100;e\u3845\u3846\u631Cr\xBB\u3846op;\u630Fri;\u65F8\u0100al\u3856\u385Acr;\u416B\u80BB\xA8\u0349\u0100gp\u3862\u3866on;\u4173f;\uC000\uD835\uDD66\u0300adhlsu\u114B\u3878\u387D\u1372\u3891\u38A0own\xE1\u13B3arpoon\u0100lr\u3888\u388Cef\xF4\u382Digh\xF4\u382Fi\u0180;hl\u3899\u389A\u389C\u43C5\xBB\u13FAon\xBB\u389Aparrows;\u61C8\u0180cit\u38B0\u38C4\u38C8\u026F\u38B6\0\0\u38C1rn\u0100;e\u38BC\u38BD\u631Dr\xBB\u38BDop;\u630Eng;\u416Fri;\u65F9cr;\uC000\uD835\uDCCA\u0180dir\u38D9\u38DD\u38E2ot;\u62F0lde;\u4169i\u0100;f\u3730\u38E8\xBB\u1813\u0100am\u38EF\u38F2r\xF2\u38A8l\u803B\xFC\u40FCangle;\u69A7\u0780ABDacdeflnoprsz\u391C\u391F\u3929\u392D\u39B5\u39B8\u39BD\u39DF\u39E4\u39E8\u39F3\u39F9\u39FD\u3A01\u3A20r\xF2\u03F7ar\u0100;v\u3926\u3927\u6AE8;\u6AE9as\xE8\u03E1\u0100nr\u3932\u3937grt;\u699C\u0380eknprst\u34E3\u3946\u394B\u3952\u395D\u3964\u3996app\xE1\u2415othin\xE7\u1E96\u0180hir\u34EB\u2EC8\u3959op\xF4\u2FB5\u0100;h\u13B7\u3962\xEF\u318D\u0100iu\u3969\u396Dgm\xE1\u33B3\u0100bp\u3972\u3984setneq\u0100;q\u397D\u3980\uC000\u228A\uFE00;\uC000\u2ACB\uFE00setneq\u0100;q\u398F\u3992\uC000\u228B\uFE00;\uC000\u2ACC\uFE00\u0100hr\u399B\u399Fet\xE1\u369Ciangle\u0100lr\u39AA\u39AFeft\xBB\u0925ight\xBB\u1051y;\u4432ash\xBB\u1036\u0180elr\u39C4\u39D2\u39D7\u0180;be\u2DEA\u39CB\u39CFar;\u62BBq;\u625Alip;\u62EE\u0100bt\u39DC\u1468a\xF2\u1469r;\uC000\uD835\uDD33tr\xE9\u39AEsu\u0100bp\u39EF\u39F1\xBB\u0D1C\xBB\u0D59pf;\uC000\uD835\uDD67ro\xF0\u0EFBtr\xE9\u39B4\u0100cu\u3A06\u3A0Br;\uC000\uD835\uDCCB\u0100bp\u3A10\u3A18n\u0100Ee\u3980\u3A16\xBB\u397En\u0100Ee\u3992\u3A1E\xBB\u3990igzag;\u699A\u0380cefoprs\u3A36\u3A3B\u3A56\u3A5B\u3A54\u3A61\u3A6Airc;\u4175\u0100di\u3A40\u3A51\u0100bg\u3A45\u3A49ar;\u6A5Fe\u0100;q\u15FA\u3A4F;\u6259erp;\u6118r;\uC000\uD835\uDD34pf;\uC000\uD835\uDD68\u0100;e\u1479\u3A66at\xE8\u1479cr;\uC000\uD835\uDCCC\u0AE3\u178E\u3A87\0\u3A8B\0\u3A90\u3A9B\0\0\u3A9D\u3AA8\u3AAB\u3AAF\0\0\u3AC3\u3ACE\0\u3AD8\u17DC\u17DFtr\xE9\u17D1r;\uC000\uD835\uDD35\u0100Aa\u3A94\u3A97r\xF2\u03C3r\xF2\u09F6;\u43BE\u0100Aa\u3AA1\u3AA4r\xF2\u03B8r\xF2\u09EBa\xF0\u2713is;\u62FB\u0180dpt\u17A4\u3AB5\u3ABE\u0100fl\u3ABA\u17A9;\uC000\uD835\uDD69im\xE5\u17B2\u0100Aa\u3AC7\u3ACAr\xF2\u03CEr\xF2\u0A01\u0100cq\u3AD2\u17B8r;\uC000\uD835\uDCCD\u0100pt\u17D6\u3ADCr\xE9\u17D4\u0400acefiosu\u3AF0\u3AFD\u3B08\u3B0C\u3B11\u3B15\u3B1B\u3B21c\u0100uy\u3AF6\u3AFBte\u803B\xFD\u40FD;\u444F\u0100iy\u3B02\u3B06rc;\u4177;\u444Bn\u803B\xA5\u40A5r;\uC000\uD835\uDD36cy;\u4457pf;\uC000\uD835\uDD6Acr;\uC000\uD835\uDCCE\u0100cm\u3B26\u3B29y;\u444El\u803B\xFF\u40FF\u0500acdefhiosw\u3B42\u3B48\u3B54\u3B58\u3B64\u3B69\u3B6D\u3B74\u3B7A\u3B80cute;\u417A\u0100ay\u3B4D\u3B52ron;\u417E;\u4437ot;\u417C\u0100et\u3B5D\u3B61tr\xE6\u155Fa;\u43B6r;\uC000\uD835\uDD37cy;\u4436grarr;\u61DDpf;\uC000\uD835\uDD6Bcr;\uC000\uD835\uDCCF\u0100jn\u3B85\u3B87;\u600Dj;\u600C'.split("").map(function(c) { + return c.charCodeAt(0); + })); +}); + +// node_modules/entities/lib/generated/decode-data-xml.js +var require_decode_data_xml = __commonJS((exports) => { + Object.defineProperty(exports, "__esModule", { value: true }); + exports.default = new Uint16Array("\u0200aglq\t\x15\x18\x1B\u026D\x0F\0\0\x12p;\u4026os;\u4027t;\u403Et;\u403Cuot;\u4022".split("").map(function(c) { + return c.charCodeAt(0); + })); +}); + +// node_modules/entities/lib/decode_codepoint.js +var require_decode_codepoint = __commonJS((exports) => { + var _a; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.replaceCodePoint = exports.fromCodePoint = undefined; + var decodeMap = new Map([ + [0, 65533], + [128, 8364], + [130, 8218], + [131, 402], + [132, 8222], + [133, 8230], + [134, 8224], + [135, 8225], + [136, 710], + [137, 8240], + [138, 352], + [139, 8249], + [140, 338], + [142, 381], + [145, 8216], + [146, 8217], + [147, 8220], + [148, 8221], + [149, 8226], + [150, 8211], + [151, 8212], + [152, 732], + [153, 8482], + [154, 353], + [155, 8250], + [156, 339], + [158, 382], + [159, 376] + ]); + exports.fromCodePoint = (_a = String.fromCodePoint) !== null && _a !== undefined ? _a : function(codePoint) { + var output = ""; + if (codePoint > 65535) { + codePoint -= 65536; + output += String.fromCharCode(codePoint >>> 10 & 1023 | 55296); + codePoint = 56320 | codePoint & 1023; + } + output += String.fromCharCode(codePoint); + return output; + }; + function replaceCodePoint(codePoint) { + var _a2; + if (codePoint >= 55296 && codePoint <= 57343 || codePoint > 1114111) { + return 65533; + } + return (_a2 = decodeMap.get(codePoint)) !== null && _a2 !== undefined ? _a2 : codePoint; + } + exports.replaceCodePoint = replaceCodePoint; + function decodeCodePoint(codePoint) { + return (0, exports.fromCodePoint)(replaceCodePoint(codePoint)); + } + exports.default = decodeCodePoint; +}); + +// node_modules/entities/lib/decode.js +var require_decode = __commonJS((exports) => { + var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === undefined) + k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === undefined) + k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar = exports && exports.__importStar || function(mod) { + if (mod && mod.__esModule) + return mod; + var result = {}; + if (mod != null) { + for (var k in mod) + if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) + __createBinding(result, mod, k); + } + __setModuleDefault(result, mod); + return result; + }; + var __importDefault = exports && exports.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { default: mod }; + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.decodeXML = exports.decodeHTMLStrict = exports.decodeHTMLAttribute = exports.decodeHTML = exports.determineBranch = exports.EntityDecoder = exports.DecodingMode = exports.BinTrieFlags = exports.fromCodePoint = exports.replaceCodePoint = exports.decodeCodePoint = exports.xmlDecodeTree = exports.htmlDecodeTree = undefined; + var decode_data_html_js_1 = __importDefault(require_decode_data_html()); + exports.htmlDecodeTree = decode_data_html_js_1.default; + var decode_data_xml_js_1 = __importDefault(require_decode_data_xml()); + exports.xmlDecodeTree = decode_data_xml_js_1.default; + var decode_codepoint_js_1 = __importStar(require_decode_codepoint()); + exports.decodeCodePoint = decode_codepoint_js_1.default; + var decode_codepoint_js_2 = require_decode_codepoint(); + Object.defineProperty(exports, "replaceCodePoint", { enumerable: true, get: function() { + return decode_codepoint_js_2.replaceCodePoint; + } }); + Object.defineProperty(exports, "fromCodePoint", { enumerable: true, get: function() { + return decode_codepoint_js_2.fromCodePoint; + } }); + var CharCodes; + (function(CharCodes2) { + CharCodes2[CharCodes2["NUM"] = 35] = "NUM"; + CharCodes2[CharCodes2["SEMI"] = 59] = "SEMI"; + CharCodes2[CharCodes2["EQUALS"] = 61] = "EQUALS"; + CharCodes2[CharCodes2["ZERO"] = 48] = "ZERO"; + CharCodes2[CharCodes2["NINE"] = 57] = "NINE"; + CharCodes2[CharCodes2["LOWER_A"] = 97] = "LOWER_A"; + CharCodes2[CharCodes2["LOWER_F"] = 102] = "LOWER_F"; + CharCodes2[CharCodes2["LOWER_X"] = 120] = "LOWER_X"; + CharCodes2[CharCodes2["LOWER_Z"] = 122] = "LOWER_Z"; + CharCodes2[CharCodes2["UPPER_A"] = 65] = "UPPER_A"; + CharCodes2[CharCodes2["UPPER_F"] = 70] = "UPPER_F"; + CharCodes2[CharCodes2["UPPER_Z"] = 90] = "UPPER_Z"; + })(CharCodes || (CharCodes = {})); + var TO_LOWER_BIT = 32; + var BinTrieFlags; + (function(BinTrieFlags2) { + BinTrieFlags2[BinTrieFlags2["VALUE_LENGTH"] = 49152] = "VALUE_LENGTH"; + BinTrieFlags2[BinTrieFlags2["BRANCH_LENGTH"] = 16256] = "BRANCH_LENGTH"; + BinTrieFlags2[BinTrieFlags2["JUMP_TABLE"] = 127] = "JUMP_TABLE"; + })(BinTrieFlags = exports.BinTrieFlags || (exports.BinTrieFlags = {})); + function isNumber(code) { + return code >= CharCodes.ZERO && code <= CharCodes.NINE; + } + function isHexadecimalCharacter(code) { + return code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_F || code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_F; + } + function isAsciiAlphaNumeric(code) { + return code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_Z || code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_Z || isNumber(code); + } + function isEntityInAttributeInvalidEnd(code) { + return code === CharCodes.EQUALS || isAsciiAlphaNumeric(code); + } + var EntityDecoderState; + (function(EntityDecoderState2) { + EntityDecoderState2[EntityDecoderState2["EntityStart"] = 0] = "EntityStart"; + EntityDecoderState2[EntityDecoderState2["NumericStart"] = 1] = "NumericStart"; + EntityDecoderState2[EntityDecoderState2["NumericDecimal"] = 2] = "NumericDecimal"; + EntityDecoderState2[EntityDecoderState2["NumericHex"] = 3] = "NumericHex"; + EntityDecoderState2[EntityDecoderState2["NamedEntity"] = 4] = "NamedEntity"; + })(EntityDecoderState || (EntityDecoderState = {})); + var DecodingMode; + (function(DecodingMode2) { + DecodingMode2[DecodingMode2["Legacy"] = 0] = "Legacy"; + DecodingMode2[DecodingMode2["Strict"] = 1] = "Strict"; + DecodingMode2[DecodingMode2["Attribute"] = 2] = "Attribute"; + })(DecodingMode = exports.DecodingMode || (exports.DecodingMode = {})); + var EntityDecoder = function() { + function EntityDecoder2(decodeTree, emitCodePoint, errors) { + this.decodeTree = decodeTree; + this.emitCodePoint = emitCodePoint; + this.errors = errors; + this.state = EntityDecoderState.EntityStart; + this.consumed = 1; + this.result = 0; + this.treeIndex = 0; + this.excess = 1; + this.decodeMode = DecodingMode.Strict; + } + EntityDecoder2.prototype.startEntity = function(decodeMode) { + this.decodeMode = decodeMode; + this.state = EntityDecoderState.EntityStart; + this.result = 0; + this.treeIndex = 0; + this.excess = 1; + this.consumed = 1; + }; + EntityDecoder2.prototype.write = function(str, offset) { + switch (this.state) { + case EntityDecoderState.EntityStart: { + if (str.charCodeAt(offset) === CharCodes.NUM) { + this.state = EntityDecoderState.NumericStart; + this.consumed += 1; + return this.stateNumericStart(str, offset + 1); + } + this.state = EntityDecoderState.NamedEntity; + return this.stateNamedEntity(str, offset); + } + case EntityDecoderState.NumericStart: { + return this.stateNumericStart(str, offset); + } + case EntityDecoderState.NumericDecimal: { + return this.stateNumericDecimal(str, offset); + } + case EntityDecoderState.NumericHex: { + return this.stateNumericHex(str, offset); + } + case EntityDecoderState.NamedEntity: { + return this.stateNamedEntity(str, offset); + } + } + }; + EntityDecoder2.prototype.stateNumericStart = function(str, offset) { + if (offset >= str.length) { + return -1; + } + if ((str.charCodeAt(offset) | TO_LOWER_BIT) === CharCodes.LOWER_X) { + this.state = EntityDecoderState.NumericHex; + this.consumed += 1; + return this.stateNumericHex(str, offset + 1); + } + this.state = EntityDecoderState.NumericDecimal; + return this.stateNumericDecimal(str, offset); + }; + EntityDecoder2.prototype.addToNumericResult = function(str, start, end, base) { + if (start !== end) { + var digitCount = end - start; + this.result = this.result * Math.pow(base, digitCount) + parseInt(str.substr(start, digitCount), base); + this.consumed += digitCount; + } + }; + EntityDecoder2.prototype.stateNumericHex = function(str, offset) { + var startIdx = offset; + while (offset < str.length) { + var char = str.charCodeAt(offset); + if (isNumber(char) || isHexadecimalCharacter(char)) { + offset += 1; + } else { + this.addToNumericResult(str, startIdx, offset, 16); + return this.emitNumericEntity(char, 3); + } + } + this.addToNumericResult(str, startIdx, offset, 16); + return -1; + }; + EntityDecoder2.prototype.stateNumericDecimal = function(str, offset) { + var startIdx = offset; + while (offset < str.length) { + var char = str.charCodeAt(offset); + if (isNumber(char)) { + offset += 1; + } else { + this.addToNumericResult(str, startIdx, offset, 10); + return this.emitNumericEntity(char, 2); + } + } + this.addToNumericResult(str, startIdx, offset, 10); + return -1; + }; + EntityDecoder2.prototype.emitNumericEntity = function(lastCp, expectedLength) { + var _a; + if (this.consumed <= expectedLength) { + (_a = this.errors) === null || _a === undefined || _a.absenceOfDigitsInNumericCharacterReference(this.consumed); + return 0; + } + if (lastCp === CharCodes.SEMI) { + this.consumed += 1; + } else if (this.decodeMode === DecodingMode.Strict) { + return 0; + } + this.emitCodePoint((0, decode_codepoint_js_1.replaceCodePoint)(this.result), this.consumed); + if (this.errors) { + if (lastCp !== CharCodes.SEMI) { + this.errors.missingSemicolonAfterCharacterReference(); + } + this.errors.validateNumericCharacterReference(this.result); + } + return this.consumed; + }; + EntityDecoder2.prototype.stateNamedEntity = function(str, offset) { + var decodeTree = this.decodeTree; + var current = decodeTree[this.treeIndex]; + var valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14; + for (;offset < str.length; offset++, this.excess++) { + var char = str.charCodeAt(offset); + this.treeIndex = determineBranch(decodeTree, current, this.treeIndex + Math.max(1, valueLength), char); + if (this.treeIndex < 0) { + return this.result === 0 || this.decodeMode === DecodingMode.Attribute && (valueLength === 0 || isEntityInAttributeInvalidEnd(char)) ? 0 : this.emitNotTerminatedNamedEntity(); + } + current = decodeTree[this.treeIndex]; + valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14; + if (valueLength !== 0) { + if (char === CharCodes.SEMI) { + return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess); + } + if (this.decodeMode !== DecodingMode.Strict) { + this.result = this.treeIndex; + this.consumed += this.excess; + this.excess = 0; + } + } + } + return -1; + }; + EntityDecoder2.prototype.emitNotTerminatedNamedEntity = function() { + var _a; + var _b = this, result = _b.result, decodeTree = _b.decodeTree; + var valueLength = (decodeTree[result] & BinTrieFlags.VALUE_LENGTH) >> 14; + this.emitNamedEntityData(result, valueLength, this.consumed); + (_a = this.errors) === null || _a === undefined || _a.missingSemicolonAfterCharacterReference(); + return this.consumed; + }; + EntityDecoder2.prototype.emitNamedEntityData = function(result, valueLength, consumed) { + var decodeTree = this.decodeTree; + this.emitCodePoint(valueLength === 1 ? decodeTree[result] & ~BinTrieFlags.VALUE_LENGTH : decodeTree[result + 1], consumed); + if (valueLength === 3) { + this.emitCodePoint(decodeTree[result + 2], consumed); + } + return consumed; + }; + EntityDecoder2.prototype.end = function() { + var _a; + switch (this.state) { + case EntityDecoderState.NamedEntity: { + return this.result !== 0 && (this.decodeMode !== DecodingMode.Attribute || this.result === this.treeIndex) ? this.emitNotTerminatedNamedEntity() : 0; + } + case EntityDecoderState.NumericDecimal: { + return this.emitNumericEntity(0, 2); + } + case EntityDecoderState.NumericHex: { + return this.emitNumericEntity(0, 3); + } + case EntityDecoderState.NumericStart: { + (_a = this.errors) === null || _a === undefined || _a.absenceOfDigitsInNumericCharacterReference(this.consumed); + return 0; + } + case EntityDecoderState.EntityStart: { + return 0; + } + } + }; + return EntityDecoder2; + }(); + exports.EntityDecoder = EntityDecoder; + function getDecoder(decodeTree) { + var ret = ""; + var decoder = new EntityDecoder(decodeTree, function(str) { + return ret += (0, decode_codepoint_js_1.fromCodePoint)(str); + }); + return function decodeWithTrie(str, decodeMode) { + var lastIndex = 0; + var offset = 0; + while ((offset = str.indexOf("&", offset)) >= 0) { + ret += str.slice(lastIndex, offset); + decoder.startEntity(decodeMode); + var len = decoder.write(str, offset + 1); + if (len < 0) { + lastIndex = offset + decoder.end(); + break; + } + lastIndex = offset + len; + offset = len === 0 ? lastIndex + 1 : lastIndex; + } + var result = ret + str.slice(lastIndex); + ret = ""; + return result; + }; + } + function determineBranch(decodeTree, current, nodeIdx, char) { + var branchCount = (current & BinTrieFlags.BRANCH_LENGTH) >> 7; + var jumpOffset = current & BinTrieFlags.JUMP_TABLE; + if (branchCount === 0) { + return jumpOffset !== 0 && char === jumpOffset ? nodeIdx : -1; + } + if (jumpOffset) { + var value = char - jumpOffset; + return value < 0 || value >= branchCount ? -1 : decodeTree[nodeIdx + value] - 1; + } + var lo = nodeIdx; + var hi = lo + branchCount - 1; + while (lo <= hi) { + var mid = lo + hi >>> 1; + var midVal = decodeTree[mid]; + if (midVal < char) { + lo = mid + 1; + } else if (midVal > char) { + hi = mid - 1; + } else { + return decodeTree[mid + branchCount]; + } + } + return -1; + } + exports.determineBranch = determineBranch; + var htmlDecoder = getDecoder(decode_data_html_js_1.default); + var xmlDecoder = getDecoder(decode_data_xml_js_1.default); + function decodeHTML(str, mode) { + if (mode === undefined) { + mode = DecodingMode.Legacy; + } + return htmlDecoder(str, mode); + } + exports.decodeHTML = decodeHTML; + function decodeHTMLAttribute(str) { + return htmlDecoder(str, DecodingMode.Attribute); + } + exports.decodeHTMLAttribute = decodeHTMLAttribute; + function decodeHTMLStrict(str) { + return htmlDecoder(str, DecodingMode.Strict); + } + exports.decodeHTMLStrict = decodeHTMLStrict; + function decodeXML(str) { + return xmlDecoder(str, DecodingMode.Strict); + } + exports.decodeXML = decodeXML; +}); + +// node_modules/htmlparser2/lib/Tokenizer.js +var require_Tokenizer = __commonJS((exports) => { + Object.defineProperty(exports, "__esModule", { value: true }); + exports.QuoteType = undefined; + var decode_js_1 = require_decode(); + var CharCodes; + (function(CharCodes2) { + CharCodes2[CharCodes2["Tab"] = 9] = "Tab"; + CharCodes2[CharCodes2["NewLine"] = 10] = "NewLine"; + CharCodes2[CharCodes2["FormFeed"] = 12] = "FormFeed"; + CharCodes2[CharCodes2["CarriageReturn"] = 13] = "CarriageReturn"; + CharCodes2[CharCodes2["Space"] = 32] = "Space"; + CharCodes2[CharCodes2["ExclamationMark"] = 33] = "ExclamationMark"; + CharCodes2[CharCodes2["Number"] = 35] = "Number"; + CharCodes2[CharCodes2["Amp"] = 38] = "Amp"; + CharCodes2[CharCodes2["SingleQuote"] = 39] = "SingleQuote"; + CharCodes2[CharCodes2["DoubleQuote"] = 34] = "DoubleQuote"; + CharCodes2[CharCodes2["Dash"] = 45] = "Dash"; + CharCodes2[CharCodes2["Slash"] = 47] = "Slash"; + CharCodes2[CharCodes2["Zero"] = 48] = "Zero"; + CharCodes2[CharCodes2["Nine"] = 57] = "Nine"; + CharCodes2[CharCodes2["Semi"] = 59] = "Semi"; + CharCodes2[CharCodes2["Lt"] = 60] = "Lt"; + CharCodes2[CharCodes2["Eq"] = 61] = "Eq"; + CharCodes2[CharCodes2["Gt"] = 62] = "Gt"; + CharCodes2[CharCodes2["Questionmark"] = 63] = "Questionmark"; + CharCodes2[CharCodes2["UpperA"] = 65] = "UpperA"; + CharCodes2[CharCodes2["LowerA"] = 97] = "LowerA"; + CharCodes2[CharCodes2["UpperF"] = 70] = "UpperF"; + CharCodes2[CharCodes2["LowerF"] = 102] = "LowerF"; + CharCodes2[CharCodes2["UpperZ"] = 90] = "UpperZ"; + CharCodes2[CharCodes2["LowerZ"] = 122] = "LowerZ"; + CharCodes2[CharCodes2["LowerX"] = 120] = "LowerX"; + CharCodes2[CharCodes2["OpeningSquareBracket"] = 91] = "OpeningSquareBracket"; + })(CharCodes || (CharCodes = {})); + var State; + (function(State2) { + State2[State2["Text"] = 1] = "Text"; + State2[State2["BeforeTagName"] = 2] = "BeforeTagName"; + State2[State2["InTagName"] = 3] = "InTagName"; + State2[State2["InSelfClosingTag"] = 4] = "InSelfClosingTag"; + State2[State2["BeforeClosingTagName"] = 5] = "BeforeClosingTagName"; + State2[State2["InClosingTagName"] = 6] = "InClosingTagName"; + State2[State2["AfterClosingTagName"] = 7] = "AfterClosingTagName"; + State2[State2["BeforeAttributeName"] = 8] = "BeforeAttributeName"; + State2[State2["InAttributeName"] = 9] = "InAttributeName"; + State2[State2["AfterAttributeName"] = 10] = "AfterAttributeName"; + State2[State2["BeforeAttributeValue"] = 11] = "BeforeAttributeValue"; + State2[State2["InAttributeValueDq"] = 12] = "InAttributeValueDq"; + State2[State2["InAttributeValueSq"] = 13] = "InAttributeValueSq"; + State2[State2["InAttributeValueNq"] = 14] = "InAttributeValueNq"; + State2[State2["BeforeDeclaration"] = 15] = "BeforeDeclaration"; + State2[State2["InDeclaration"] = 16] = "InDeclaration"; + State2[State2["InProcessingInstruction"] = 17] = "InProcessingInstruction"; + State2[State2["BeforeComment"] = 18] = "BeforeComment"; + State2[State2["CDATASequence"] = 19] = "CDATASequence"; + State2[State2["InSpecialComment"] = 20] = "InSpecialComment"; + State2[State2["InCommentLike"] = 21] = "InCommentLike"; + State2[State2["BeforeSpecialS"] = 22] = "BeforeSpecialS"; + State2[State2["SpecialStartSequence"] = 23] = "SpecialStartSequence"; + State2[State2["InSpecialTag"] = 24] = "InSpecialTag"; + State2[State2["BeforeEntity"] = 25] = "BeforeEntity"; + State2[State2["BeforeNumericEntity"] = 26] = "BeforeNumericEntity"; + State2[State2["InNamedEntity"] = 27] = "InNamedEntity"; + State2[State2["InNumericEntity"] = 28] = "InNumericEntity"; + State2[State2["InHexEntity"] = 29] = "InHexEntity"; + })(State || (State = {})); + function isWhitespace(c) { + return c === CharCodes.Space || c === CharCodes.NewLine || c === CharCodes.Tab || c === CharCodes.FormFeed || c === CharCodes.CarriageReturn; + } + function isEndOfTagSection(c) { + return c === CharCodes.Slash || c === CharCodes.Gt || isWhitespace(c); + } + function isNumber(c) { + return c >= CharCodes.Zero && c <= CharCodes.Nine; + } + function isASCIIAlpha(c) { + return c >= CharCodes.LowerA && c <= CharCodes.LowerZ || c >= CharCodes.UpperA && c <= CharCodes.UpperZ; + } + function isHexDigit(c) { + return c >= CharCodes.UpperA && c <= CharCodes.UpperF || c >= CharCodes.LowerA && c <= CharCodes.LowerF; + } + var QuoteType; + (function(QuoteType2) { + QuoteType2[QuoteType2["NoValue"] = 0] = "NoValue"; + QuoteType2[QuoteType2["Unquoted"] = 1] = "Unquoted"; + QuoteType2[QuoteType2["Single"] = 2] = "Single"; + QuoteType2[QuoteType2["Double"] = 3] = "Double"; + })(QuoteType = exports.QuoteType || (exports.QuoteType = {})); + var Sequences = { + Cdata: new Uint8Array([67, 68, 65, 84, 65, 91]), + CdataEnd: new Uint8Array([93, 93, 62]), + CommentEnd: new Uint8Array([45, 45, 62]), + ScriptEnd: new Uint8Array([60, 47, 115, 99, 114, 105, 112, 116]), + StyleEnd: new Uint8Array([60, 47, 115, 116, 121, 108, 101]), + TitleEnd: new Uint8Array([60, 47, 116, 105, 116, 108, 101]) + }; + var Tokenizer = function() { + function Tokenizer2(_a, cbs) { + var _b = _a.xmlMode, xmlMode = _b === undefined ? false : _b, _c = _a.decodeEntities, decodeEntities = _c === undefined ? true : _c; + this.cbs = cbs; + this.state = State.Text; + this.buffer = ""; + this.sectionStart = 0; + this.index = 0; + this.baseState = State.Text; + this.isSpecial = false; + this.running = true; + this.offset = 0; + this.currentSequence = undefined; + this.sequenceIndex = 0; + this.trieIndex = 0; + this.trieCurrent = 0; + this.entityResult = 0; + this.entityExcess = 0; + this.xmlMode = xmlMode; + this.decodeEntities = decodeEntities; + this.entityTrie = xmlMode ? decode_js_1.xmlDecodeTree : decode_js_1.htmlDecodeTree; + } + Tokenizer2.prototype.reset = function() { + this.state = State.Text; + this.buffer = ""; + this.sectionStart = 0; + this.index = 0; + this.baseState = State.Text; + this.currentSequence = undefined; + this.running = true; + this.offset = 0; + }; + Tokenizer2.prototype.write = function(chunk) { + this.offset += this.buffer.length; + this.buffer = chunk; + this.parse(); + }; + Tokenizer2.prototype.end = function() { + if (this.running) + this.finish(); + }; + Tokenizer2.prototype.pause = function() { + this.running = false; + }; + Tokenizer2.prototype.resume = function() { + this.running = true; + if (this.index < this.buffer.length + this.offset) { + this.parse(); + } + }; + Tokenizer2.prototype.getIndex = function() { + return this.index; + }; + Tokenizer2.prototype.getSectionStart = function() { + return this.sectionStart; + }; + Tokenizer2.prototype.stateText = function(c) { + if (c === CharCodes.Lt || !this.decodeEntities && this.fastForwardTo(CharCodes.Lt)) { + if (this.index > this.sectionStart) { + this.cbs.ontext(this.sectionStart, this.index); + } + this.state = State.BeforeTagName; + this.sectionStart = this.index; + } else if (this.decodeEntities && c === CharCodes.Amp) { + this.state = State.BeforeEntity; + } + }; + Tokenizer2.prototype.stateSpecialStartSequence = function(c) { + var isEnd = this.sequenceIndex === this.currentSequence.length; + var isMatch = isEnd ? isEndOfTagSection(c) : (c | 32) === this.currentSequence[this.sequenceIndex]; + if (!isMatch) { + this.isSpecial = false; + } else if (!isEnd) { + this.sequenceIndex++; + return; + } + this.sequenceIndex = 0; + this.state = State.InTagName; + this.stateInTagName(c); + }; + Tokenizer2.prototype.stateInSpecialTag = function(c) { + if (this.sequenceIndex === this.currentSequence.length) { + if (c === CharCodes.Gt || isWhitespace(c)) { + var endOfText = this.index - this.currentSequence.length; + if (this.sectionStart < endOfText) { + var actualIndex = this.index; + this.index = endOfText; + this.cbs.ontext(this.sectionStart, endOfText); + this.index = actualIndex; + } + this.isSpecial = false; + this.sectionStart = endOfText + 2; + this.stateInClosingTagName(c); + return; + } + this.sequenceIndex = 0; + } + if ((c | 32) === this.currentSequence[this.sequenceIndex]) { + this.sequenceIndex += 1; + } else if (this.sequenceIndex === 0) { + if (this.currentSequence === Sequences.TitleEnd) { + if (this.decodeEntities && c === CharCodes.Amp) { + this.state = State.BeforeEntity; + } + } else if (this.fastForwardTo(CharCodes.Lt)) { + this.sequenceIndex = 1; + } + } else { + this.sequenceIndex = Number(c === CharCodes.Lt); + } + }; + Tokenizer2.prototype.stateCDATASequence = function(c) { + if (c === Sequences.Cdata[this.sequenceIndex]) { + if (++this.sequenceIndex === Sequences.Cdata.length) { + this.state = State.InCommentLike; + this.currentSequence = Sequences.CdataEnd; + this.sequenceIndex = 0; + this.sectionStart = this.index + 1; + } + } else { + this.sequenceIndex = 0; + this.state = State.InDeclaration; + this.stateInDeclaration(c); + } + }; + Tokenizer2.prototype.fastForwardTo = function(c) { + while (++this.index < this.buffer.length + this.offset) { + if (this.buffer.charCodeAt(this.index - this.offset) === c) { + return true; + } + } + this.index = this.buffer.length + this.offset - 1; + return false; + }; + Tokenizer2.prototype.stateInCommentLike = function(c) { + if (c === this.currentSequence[this.sequenceIndex]) { + if (++this.sequenceIndex === this.currentSequence.length) { + if (this.currentSequence === Sequences.CdataEnd) { + this.cbs.oncdata(this.sectionStart, this.index, 2); + } else { + this.cbs.oncomment(this.sectionStart, this.index, 2); + } + this.sequenceIndex = 0; + this.sectionStart = this.index + 1; + this.state = State.Text; + } + } else if (this.sequenceIndex === 0) { + if (this.fastForwardTo(this.currentSequence[0])) { + this.sequenceIndex = 1; + } + } else if (c !== this.currentSequence[this.sequenceIndex - 1]) { + this.sequenceIndex = 0; + } + }; + Tokenizer2.prototype.isTagStartChar = function(c) { + return this.xmlMode ? !isEndOfTagSection(c) : isASCIIAlpha(c); + }; + Tokenizer2.prototype.startSpecial = function(sequence, offset) { + this.isSpecial = true; + this.currentSequence = sequence; + this.sequenceIndex = offset; + this.state = State.SpecialStartSequence; + }; + Tokenizer2.prototype.stateBeforeTagName = function(c) { + if (c === CharCodes.ExclamationMark) { + this.state = State.BeforeDeclaration; + this.sectionStart = this.index + 1; + } else if (c === CharCodes.Questionmark) { + this.state = State.InProcessingInstruction; + this.sectionStart = this.index + 1; + } else if (this.isTagStartChar(c)) { + var lower = c | 32; + this.sectionStart = this.index; + if (!this.xmlMode && lower === Sequences.TitleEnd[2]) { + this.startSpecial(Sequences.TitleEnd, 3); + } else { + this.state = !this.xmlMode && lower === Sequences.ScriptEnd[2] ? State.BeforeSpecialS : State.InTagName; + } + } else if (c === CharCodes.Slash) { + this.state = State.BeforeClosingTagName; + } else { + this.state = State.Text; + this.stateText(c); + } + }; + Tokenizer2.prototype.stateInTagName = function(c) { + if (isEndOfTagSection(c)) { + this.cbs.onopentagname(this.sectionStart, this.index); + this.sectionStart = -1; + this.state = State.BeforeAttributeName; + this.stateBeforeAttributeName(c); + } + }; + Tokenizer2.prototype.stateBeforeClosingTagName = function(c) { + if (isWhitespace(c)) { + } else if (c === CharCodes.Gt) { + this.state = State.Text; + } else { + this.state = this.isTagStartChar(c) ? State.InClosingTagName : State.InSpecialComment; + this.sectionStart = this.index; + } + }; + Tokenizer2.prototype.stateInClosingTagName = function(c) { + if (c === CharCodes.Gt || isWhitespace(c)) { + this.cbs.onclosetag(this.sectionStart, this.index); + this.sectionStart = -1; + this.state = State.AfterClosingTagName; + this.stateAfterClosingTagName(c); + } + }; + Tokenizer2.prototype.stateAfterClosingTagName = function(c) { + if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) { + this.state = State.Text; + this.baseState = State.Text; + this.sectionStart = this.index + 1; + } + }; + Tokenizer2.prototype.stateBeforeAttributeName = function(c) { + if (c === CharCodes.Gt) { + this.cbs.onopentagend(this.index); + if (this.isSpecial) { + this.state = State.InSpecialTag; + this.sequenceIndex = 0; + } else { + this.state = State.Text; + } + this.baseState = this.state; + this.sectionStart = this.index + 1; + } else if (c === CharCodes.Slash) { + this.state = State.InSelfClosingTag; + } else if (!isWhitespace(c)) { + this.state = State.InAttributeName; + this.sectionStart = this.index; + } + }; + Tokenizer2.prototype.stateInSelfClosingTag = function(c) { + if (c === CharCodes.Gt) { + this.cbs.onselfclosingtag(this.index); + this.state = State.Text; + this.baseState = State.Text; + this.sectionStart = this.index + 1; + this.isSpecial = false; + } else if (!isWhitespace(c)) { + this.state = State.BeforeAttributeName; + this.stateBeforeAttributeName(c); + } + }; + Tokenizer2.prototype.stateInAttributeName = function(c) { + if (c === CharCodes.Eq || isEndOfTagSection(c)) { + this.cbs.onattribname(this.sectionStart, this.index); + this.sectionStart = -1; + this.state = State.AfterAttributeName; + this.stateAfterAttributeName(c); + } + }; + Tokenizer2.prototype.stateAfterAttributeName = function(c) { + if (c === CharCodes.Eq) { + this.state = State.BeforeAttributeValue; + } else if (c === CharCodes.Slash || c === CharCodes.Gt) { + this.cbs.onattribend(QuoteType.NoValue, this.index); + this.state = State.BeforeAttributeName; + this.stateBeforeAttributeName(c); + } else if (!isWhitespace(c)) { + this.cbs.onattribend(QuoteType.NoValue, this.index); + this.state = State.InAttributeName; + this.sectionStart = this.index; + } + }; + Tokenizer2.prototype.stateBeforeAttributeValue = function(c) { + if (c === CharCodes.DoubleQuote) { + this.state = State.InAttributeValueDq; + this.sectionStart = this.index + 1; + } else if (c === CharCodes.SingleQuote) { + this.state = State.InAttributeValueSq; + this.sectionStart = this.index + 1; + } else if (!isWhitespace(c)) { + this.sectionStart = this.index; + this.state = State.InAttributeValueNq; + this.stateInAttributeValueNoQuotes(c); + } + }; + Tokenizer2.prototype.handleInAttributeValue = function(c, quote) { + if (c === quote || !this.decodeEntities && this.fastForwardTo(quote)) { + this.cbs.onattribdata(this.sectionStart, this.index); + this.sectionStart = -1; + this.cbs.onattribend(quote === CharCodes.DoubleQuote ? QuoteType.Double : QuoteType.Single, this.index); + this.state = State.BeforeAttributeName; + } else if (this.decodeEntities && c === CharCodes.Amp) { + this.baseState = this.state; + this.state = State.BeforeEntity; + } + }; + Tokenizer2.prototype.stateInAttributeValueDoubleQuotes = function(c) { + this.handleInAttributeValue(c, CharCodes.DoubleQuote); + }; + Tokenizer2.prototype.stateInAttributeValueSingleQuotes = function(c) { + this.handleInAttributeValue(c, CharCodes.SingleQuote); + }; + Tokenizer2.prototype.stateInAttributeValueNoQuotes = function(c) { + if (isWhitespace(c) || c === CharCodes.Gt) { + this.cbs.onattribdata(this.sectionStart, this.index); + this.sectionStart = -1; + this.cbs.onattribend(QuoteType.Unquoted, this.index); + this.state = State.BeforeAttributeName; + this.stateBeforeAttributeName(c); + } else if (this.decodeEntities && c === CharCodes.Amp) { + this.baseState = this.state; + this.state = State.BeforeEntity; + } + }; + Tokenizer2.prototype.stateBeforeDeclaration = function(c) { + if (c === CharCodes.OpeningSquareBracket) { + this.state = State.CDATASequence; + this.sequenceIndex = 0; + } else { + this.state = c === CharCodes.Dash ? State.BeforeComment : State.InDeclaration; + } + }; + Tokenizer2.prototype.stateInDeclaration = function(c) { + if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) { + this.cbs.ondeclaration(this.sectionStart, this.index); + this.state = State.Text; + this.sectionStart = this.index + 1; + } + }; + Tokenizer2.prototype.stateInProcessingInstruction = function(c) { + if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) { + this.cbs.onprocessinginstruction(this.sectionStart, this.index); + this.state = State.Text; + this.sectionStart = this.index + 1; + } + }; + Tokenizer2.prototype.stateBeforeComment = function(c) { + if (c === CharCodes.Dash) { + this.state = State.InCommentLike; + this.currentSequence = Sequences.CommentEnd; + this.sequenceIndex = 2; + this.sectionStart = this.index + 1; + } else { + this.state = State.InDeclaration; + } + }; + Tokenizer2.prototype.stateInSpecialComment = function(c) { + if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) { + this.cbs.oncomment(this.sectionStart, this.index, 0); + this.state = State.Text; + this.sectionStart = this.index + 1; + } + }; + Tokenizer2.prototype.stateBeforeSpecialS = function(c) { + var lower = c | 32; + if (lower === Sequences.ScriptEnd[3]) { + this.startSpecial(Sequences.ScriptEnd, 4); + } else if (lower === Sequences.StyleEnd[3]) { + this.startSpecial(Sequences.StyleEnd, 4); + } else { + this.state = State.InTagName; + this.stateInTagName(c); + } + }; + Tokenizer2.prototype.stateBeforeEntity = function(c) { + this.entityExcess = 1; + this.entityResult = 0; + if (c === CharCodes.Number) { + this.state = State.BeforeNumericEntity; + } else if (c === CharCodes.Amp) { + } else { + this.trieIndex = 0; + this.trieCurrent = this.entityTrie[0]; + this.state = State.InNamedEntity; + this.stateInNamedEntity(c); + } + }; + Tokenizer2.prototype.stateInNamedEntity = function(c) { + this.entityExcess += 1; + this.trieIndex = (0, decode_js_1.determineBranch)(this.entityTrie, this.trieCurrent, this.trieIndex + 1, c); + if (this.trieIndex < 0) { + this.emitNamedEntity(); + this.index--; + return; + } + this.trieCurrent = this.entityTrie[this.trieIndex]; + var masked = this.trieCurrent & decode_js_1.BinTrieFlags.VALUE_LENGTH; + if (masked) { + var valueLength = (masked >> 14) - 1; + if (!this.allowLegacyEntity() && c !== CharCodes.Semi) { + this.trieIndex += valueLength; + } else { + var entityStart = this.index - this.entityExcess + 1; + if (entityStart > this.sectionStart) { + this.emitPartial(this.sectionStart, entityStart); + } + this.entityResult = this.trieIndex; + this.trieIndex += valueLength; + this.entityExcess = 0; + this.sectionStart = this.index + 1; + if (valueLength === 0) { + this.emitNamedEntity(); + } + } + } + }; + Tokenizer2.prototype.emitNamedEntity = function() { + this.state = this.baseState; + if (this.entityResult === 0) { + return; + } + var valueLength = (this.entityTrie[this.entityResult] & decode_js_1.BinTrieFlags.VALUE_LENGTH) >> 14; + switch (valueLength) { + case 1: { + this.emitCodePoint(this.entityTrie[this.entityResult] & ~decode_js_1.BinTrieFlags.VALUE_LENGTH); + break; + } + case 2: { + this.emitCodePoint(this.entityTrie[this.entityResult + 1]); + break; + } + case 3: { + this.emitCodePoint(this.entityTrie[this.entityResult + 1]); + this.emitCodePoint(this.entityTrie[this.entityResult + 2]); + } + } + }; + Tokenizer2.prototype.stateBeforeNumericEntity = function(c) { + if ((c | 32) === CharCodes.LowerX) { + this.entityExcess++; + this.state = State.InHexEntity; + } else { + this.state = State.InNumericEntity; + this.stateInNumericEntity(c); + } + }; + Tokenizer2.prototype.emitNumericEntity = function(strict) { + var entityStart = this.index - this.entityExcess - 1; + var numberStart = entityStart + 2 + Number(this.state === State.InHexEntity); + if (numberStart !== this.index) { + if (entityStart > this.sectionStart) { + this.emitPartial(this.sectionStart, entityStart); + } + this.sectionStart = this.index + Number(strict); + this.emitCodePoint((0, decode_js_1.replaceCodePoint)(this.entityResult)); + } + this.state = this.baseState; + }; + Tokenizer2.prototype.stateInNumericEntity = function(c) { + if (c === CharCodes.Semi) { + this.emitNumericEntity(true); + } else if (isNumber(c)) { + this.entityResult = this.entityResult * 10 + (c - CharCodes.Zero); + this.entityExcess++; + } else { + if (this.allowLegacyEntity()) { + this.emitNumericEntity(false); + } else { + this.state = this.baseState; + } + this.index--; + } + }; + Tokenizer2.prototype.stateInHexEntity = function(c) { + if (c === CharCodes.Semi) { + this.emitNumericEntity(true); + } else if (isNumber(c)) { + this.entityResult = this.entityResult * 16 + (c - CharCodes.Zero); + this.entityExcess++; + } else if (isHexDigit(c)) { + this.entityResult = this.entityResult * 16 + ((c | 32) - CharCodes.LowerA + 10); + this.entityExcess++; + } else { + if (this.allowLegacyEntity()) { + this.emitNumericEntity(false); + } else { + this.state = this.baseState; + } + this.index--; + } + }; + Tokenizer2.prototype.allowLegacyEntity = function() { + return !this.xmlMode && (this.baseState === State.Text || this.baseState === State.InSpecialTag); + }; + Tokenizer2.prototype.cleanup = function() { + if (this.running && this.sectionStart !== this.index) { + if (this.state === State.Text || this.state === State.InSpecialTag && this.sequenceIndex === 0) { + this.cbs.ontext(this.sectionStart, this.index); + this.sectionStart = this.index; + } else if (this.state === State.InAttributeValueDq || this.state === State.InAttributeValueSq || this.state === State.InAttributeValueNq) { + this.cbs.onattribdata(this.sectionStart, this.index); + this.sectionStart = this.index; + } + } + }; + Tokenizer2.prototype.shouldContinue = function() { + return this.index < this.buffer.length + this.offset && this.running; + }; + Tokenizer2.prototype.parse = function() { + while (this.shouldContinue()) { + var c = this.buffer.charCodeAt(this.index - this.offset); + switch (this.state) { + case State.Text: { + this.stateText(c); + break; + } + case State.SpecialStartSequence: { + this.stateSpecialStartSequence(c); + break; + } + case State.InSpecialTag: { + this.stateInSpecialTag(c); + break; + } + case State.CDATASequence: { + this.stateCDATASequence(c); + break; + } + case State.InAttributeValueDq: { + this.stateInAttributeValueDoubleQuotes(c); + break; + } + case State.InAttributeName: { + this.stateInAttributeName(c); + break; + } + case State.InCommentLike: { + this.stateInCommentLike(c); + break; + } + case State.InSpecialComment: { + this.stateInSpecialComment(c); + break; + } + case State.BeforeAttributeName: { + this.stateBeforeAttributeName(c); + break; + } + case State.InTagName: { + this.stateInTagName(c); + break; + } + case State.InClosingTagName: { + this.stateInClosingTagName(c); + break; + } + case State.BeforeTagName: { + this.stateBeforeTagName(c); + break; + } + case State.AfterAttributeName: { + this.stateAfterAttributeName(c); + break; + } + case State.InAttributeValueSq: { + this.stateInAttributeValueSingleQuotes(c); + break; + } + case State.BeforeAttributeValue: { + this.stateBeforeAttributeValue(c); + break; + } + case State.BeforeClosingTagName: { + this.stateBeforeClosingTagName(c); + break; + } + case State.AfterClosingTagName: { + this.stateAfterClosingTagName(c); + break; + } + case State.BeforeSpecialS: { + this.stateBeforeSpecialS(c); + break; + } + case State.InAttributeValueNq: { + this.stateInAttributeValueNoQuotes(c); + break; + } + case State.InSelfClosingTag: { + this.stateInSelfClosingTag(c); + break; + } + case State.InDeclaration: { + this.stateInDeclaration(c); + break; + } + case State.BeforeDeclaration: { + this.stateBeforeDeclaration(c); + break; + } + case State.BeforeComment: { + this.stateBeforeComment(c); + break; + } + case State.InProcessingInstruction: { + this.stateInProcessingInstruction(c); + break; + } + case State.InNamedEntity: { + this.stateInNamedEntity(c); + break; + } + case State.BeforeEntity: { + this.stateBeforeEntity(c); + break; + } + case State.InHexEntity: { + this.stateInHexEntity(c); + break; + } + case State.InNumericEntity: { + this.stateInNumericEntity(c); + break; + } + default: { + this.stateBeforeNumericEntity(c); + } + } + this.index++; + } + this.cleanup(); + }; + Tokenizer2.prototype.finish = function() { + if (this.state === State.InNamedEntity) { + this.emitNamedEntity(); + } + if (this.sectionStart < this.index) { + this.handleTrailingData(); + } + this.cbs.onend(); + }; + Tokenizer2.prototype.handleTrailingData = function() { + var endIndex = this.buffer.length + this.offset; + if (this.state === State.InCommentLike) { + if (this.currentSequence === Sequences.CdataEnd) { + this.cbs.oncdata(this.sectionStart, endIndex, 0); + } else { + this.cbs.oncomment(this.sectionStart, endIndex, 0); + } + } else if (this.state === State.InNumericEntity && this.allowLegacyEntity()) { + this.emitNumericEntity(false); + } else if (this.state === State.InHexEntity && this.allowLegacyEntity()) { + this.emitNumericEntity(false); + } else if (this.state === State.InTagName || this.state === State.BeforeAttributeName || this.state === State.BeforeAttributeValue || this.state === State.AfterAttributeName || this.state === State.InAttributeName || this.state === State.InAttributeValueSq || this.state === State.InAttributeValueDq || this.state === State.InAttributeValueNq || this.state === State.InClosingTagName) { + } else { + this.cbs.ontext(this.sectionStart, endIndex); + } + }; + Tokenizer2.prototype.emitPartial = function(start, endIndex) { + if (this.baseState !== State.Text && this.baseState !== State.InSpecialTag) { + this.cbs.onattribdata(start, endIndex); + } else { + this.cbs.ontext(start, endIndex); + } + }; + Tokenizer2.prototype.emitCodePoint = function(cp) { + if (this.baseState !== State.Text && this.baseState !== State.InSpecialTag) { + this.cbs.onattribentity(cp); + } else { + this.cbs.ontextentity(cp); + } + }; + return Tokenizer2; + }(); + exports.default = Tokenizer; +}); + +// node_modules/htmlparser2/lib/Parser.js +var require_Parser2 = __commonJS((exports) => { + var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === undefined) + k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === undefined) + k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar = exports && exports.__importStar || function(mod) { + if (mod && mod.__esModule) + return mod; + var result = {}; + if (mod != null) { + for (var k in mod) + if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) + __createBinding(result, mod, k); + } + __setModuleDefault(result, mod); + return result; + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.Parser = undefined; + var Tokenizer_js_1 = __importStar(require_Tokenizer()); + var decode_js_1 = require_decode(); + var formTags = new Set([ + "input", + "option", + "optgroup", + "select", + "button", + "datalist", + "textarea" + ]); + var pTag = new Set(["p"]); + var tableSectionTags = new Set(["thead", "tbody"]); + var ddtTags = new Set(["dd", "dt"]); + var rtpTags = new Set(["rt", "rp"]); + var openImpliesClose = new Map([ + ["tr", new Set(["tr", "th", "td"])], + ["th", new Set(["th"])], + ["td", new Set(["thead", "th", "td"])], + ["body", new Set(["head", "link", "script"])], + ["li", new Set(["li"])], + ["p", pTag], + ["h1", pTag], + ["h2", pTag], + ["h3", pTag], + ["h4", pTag], + ["h5", pTag], + ["h6", pTag], + ["select", formTags], + ["input", formTags], + ["output", formTags], + ["button", formTags], + ["datalist", formTags], + ["textarea", formTags], + ["option", new Set(["option"])], + ["optgroup", new Set(["optgroup", "option"])], + ["dd", ddtTags], + ["dt", ddtTags], + ["address", pTag], + ["article", pTag], + ["aside", pTag], + ["blockquote", pTag], + ["details", pTag], + ["div", pTag], + ["dl", pTag], + ["fieldset", pTag], + ["figcaption", pTag], + ["figure", pTag], + ["footer", pTag], + ["form", pTag], + ["header", pTag], + ["hr", pTag], + ["main", pTag], + ["nav", pTag], + ["ol", pTag], + ["pre", pTag], + ["section", pTag], + ["table", pTag], + ["ul", pTag], + ["rt", rtpTags], + ["rp", rtpTags], + ["tbody", tableSectionTags], + ["tfoot", tableSectionTags] + ]); + var voidElements = new Set([ + "area", + "base", + "basefont", + "br", + "col", + "command", + "embed", + "frame", + "hr", + "img", + "input", + "isindex", + "keygen", + "link", + "meta", + "param", + "source", + "track", + "wbr" + ]); + var foreignContextElements = new Set(["math", "svg"]); + var htmlIntegrationElements = new Set([ + "mi", + "mo", + "mn", + "ms", + "mtext", + "annotation-xml", + "foreignobject", + "desc", + "title" + ]); + var reNameEnd = /\s|\//; + var Parser = function() { + function Parser2(cbs, options) { + if (options === undefined) { + options = {}; + } + var _a, _b, _c, _d, _e; + this.options = options; + this.startIndex = 0; + this.endIndex = 0; + this.openTagStart = 0; + this.tagname = ""; + this.attribname = ""; + this.attribvalue = ""; + this.attribs = null; + this.stack = []; + this.foreignContext = []; + this.buffers = []; + this.bufferOffset = 0; + this.writeIndex = 0; + this.ended = false; + this.cbs = cbs !== null && cbs !== undefined ? cbs : {}; + this.lowerCaseTagNames = (_a = options.lowerCaseTags) !== null && _a !== undefined ? _a : !options.xmlMode; + this.lowerCaseAttributeNames = (_b = options.lowerCaseAttributeNames) !== null && _b !== undefined ? _b : !options.xmlMode; + this.tokenizer = new ((_c = options.Tokenizer) !== null && _c !== undefined ? _c : Tokenizer_js_1.default)(this.options, this); + (_e = (_d = this.cbs).onparserinit) === null || _e === undefined || _e.call(_d, this); + } + Parser2.prototype.ontext = function(start, endIndex) { + var _a, _b; + var data = this.getSlice(start, endIndex); + this.endIndex = endIndex - 1; + (_b = (_a = this.cbs).ontext) === null || _b === undefined || _b.call(_a, data); + this.startIndex = endIndex; + }; + Parser2.prototype.ontextentity = function(cp) { + var _a, _b; + var index = this.tokenizer.getSectionStart(); + this.endIndex = index - 1; + (_b = (_a = this.cbs).ontext) === null || _b === undefined || _b.call(_a, (0, decode_js_1.fromCodePoint)(cp)); + this.startIndex = index; + }; + Parser2.prototype.isVoidElement = function(name) { + return !this.options.xmlMode && voidElements.has(name); + }; + Parser2.prototype.onopentagname = function(start, endIndex) { + this.endIndex = endIndex; + var name = this.getSlice(start, endIndex); + if (this.lowerCaseTagNames) { + name = name.toLowerCase(); + } + this.emitOpenTag(name); + }; + Parser2.prototype.emitOpenTag = function(name) { + var _a, _b, _c, _d; + this.openTagStart = this.startIndex; + this.tagname = name; + var impliesClose = !this.options.xmlMode && openImpliesClose.get(name); + if (impliesClose) { + while (this.stack.length > 0 && impliesClose.has(this.stack[this.stack.length - 1])) { + var element = this.stack.pop(); + (_b = (_a = this.cbs).onclosetag) === null || _b === undefined || _b.call(_a, element, true); + } + } + if (!this.isVoidElement(name)) { + this.stack.push(name); + if (foreignContextElements.has(name)) { + this.foreignContext.push(true); + } else if (htmlIntegrationElements.has(name)) { + this.foreignContext.push(false); + } + } + (_d = (_c = this.cbs).onopentagname) === null || _d === undefined || _d.call(_c, name); + if (this.cbs.onopentag) + this.attribs = {}; + }; + Parser2.prototype.endOpenTag = function(isImplied) { + var _a, _b; + this.startIndex = this.openTagStart; + if (this.attribs) { + (_b = (_a = this.cbs).onopentag) === null || _b === undefined || _b.call(_a, this.tagname, this.attribs, isImplied); + this.attribs = null; + } + if (this.cbs.onclosetag && this.isVoidElement(this.tagname)) { + this.cbs.onclosetag(this.tagname, true); + } + this.tagname = ""; + }; + Parser2.prototype.onopentagend = function(endIndex) { + this.endIndex = endIndex; + this.endOpenTag(false); + this.startIndex = endIndex + 1; + }; + Parser2.prototype.onclosetag = function(start, endIndex) { + var _a, _b, _c, _d, _e, _f; + this.endIndex = endIndex; + var name = this.getSlice(start, endIndex); + if (this.lowerCaseTagNames) { + name = name.toLowerCase(); + } + if (foreignContextElements.has(name) || htmlIntegrationElements.has(name)) { + this.foreignContext.pop(); + } + if (!this.isVoidElement(name)) { + var pos = this.stack.lastIndexOf(name); + if (pos !== -1) { + if (this.cbs.onclosetag) { + var count = this.stack.length - pos; + while (count--) { + this.cbs.onclosetag(this.stack.pop(), count !== 0); + } + } else + this.stack.length = pos; + } else if (!this.options.xmlMode && name === "p") { + this.emitOpenTag("p"); + this.closeCurrentTag(true); + } + } else if (!this.options.xmlMode && name === "br") { + (_b = (_a = this.cbs).onopentagname) === null || _b === undefined || _b.call(_a, "br"); + (_d = (_c = this.cbs).onopentag) === null || _d === undefined || _d.call(_c, "br", {}, true); + (_f = (_e = this.cbs).onclosetag) === null || _f === undefined || _f.call(_e, "br", false); + } + this.startIndex = endIndex + 1; + }; + Parser2.prototype.onselfclosingtag = function(endIndex) { + this.endIndex = endIndex; + if (this.options.xmlMode || this.options.recognizeSelfClosing || this.foreignContext[this.foreignContext.length - 1]) { + this.closeCurrentTag(false); + this.startIndex = endIndex + 1; + } else { + this.onopentagend(endIndex); + } + }; + Parser2.prototype.closeCurrentTag = function(isOpenImplied) { + var _a, _b; + var name = this.tagname; + this.endOpenTag(isOpenImplied); + if (this.stack[this.stack.length - 1] === name) { + (_b = (_a = this.cbs).onclosetag) === null || _b === undefined || _b.call(_a, name, !isOpenImplied); + this.stack.pop(); + } + }; + Parser2.prototype.onattribname = function(start, endIndex) { + this.startIndex = start; + var name = this.getSlice(start, endIndex); + this.attribname = this.lowerCaseAttributeNames ? name.toLowerCase() : name; + }; + Parser2.prototype.onattribdata = function(start, endIndex) { + this.attribvalue += this.getSlice(start, endIndex); + }; + Parser2.prototype.onattribentity = function(cp) { + this.attribvalue += (0, decode_js_1.fromCodePoint)(cp); + }; + Parser2.prototype.onattribend = function(quote, endIndex) { + var _a, _b; + this.endIndex = endIndex; + (_b = (_a = this.cbs).onattribute) === null || _b === undefined || _b.call(_a, this.attribname, this.attribvalue, quote === Tokenizer_js_1.QuoteType.Double ? '"' : quote === Tokenizer_js_1.QuoteType.Single ? "'" : quote === Tokenizer_js_1.QuoteType.NoValue ? undefined : null); + if (this.attribs && !Object.prototype.hasOwnProperty.call(this.attribs, this.attribname)) { + this.attribs[this.attribname] = this.attribvalue; + } + this.attribvalue = ""; + }; + Parser2.prototype.getInstructionName = function(value) { + var index = value.search(reNameEnd); + var name = index < 0 ? value : value.substr(0, index); + if (this.lowerCaseTagNames) { + name = name.toLowerCase(); + } + return name; + }; + Parser2.prototype.ondeclaration = function(start, endIndex) { + this.endIndex = endIndex; + var value = this.getSlice(start, endIndex); + if (this.cbs.onprocessinginstruction) { + var name = this.getInstructionName(value); + this.cbs.onprocessinginstruction("!".concat(name), "!".concat(value)); + } + this.startIndex = endIndex + 1; + }; + Parser2.prototype.onprocessinginstruction = function(start, endIndex) { + this.endIndex = endIndex; + var value = this.getSlice(start, endIndex); + if (this.cbs.onprocessinginstruction) { + var name = this.getInstructionName(value); + this.cbs.onprocessinginstruction("?".concat(name), "?".concat(value)); + } + this.startIndex = endIndex + 1; + }; + Parser2.prototype.oncomment = function(start, endIndex, offset) { + var _a, _b, _c, _d; + this.endIndex = endIndex; + (_b = (_a = this.cbs).oncomment) === null || _b === undefined || _b.call(_a, this.getSlice(start, endIndex - offset)); + (_d = (_c = this.cbs).oncommentend) === null || _d === undefined || _d.call(_c); + this.startIndex = endIndex + 1; + }; + Parser2.prototype.oncdata = function(start, endIndex, offset) { + var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k; + this.endIndex = endIndex; + var value = this.getSlice(start, endIndex - offset); + if (this.options.xmlMode || this.options.recognizeCDATA) { + (_b = (_a = this.cbs).oncdatastart) === null || _b === undefined || _b.call(_a); + (_d = (_c = this.cbs).ontext) === null || _d === undefined || _d.call(_c, value); + (_f = (_e = this.cbs).oncdataend) === null || _f === undefined || _f.call(_e); + } else { + (_h = (_g = this.cbs).oncomment) === null || _h === undefined || _h.call(_g, "[CDATA[".concat(value, "]]")); + (_k = (_j = this.cbs).oncommentend) === null || _k === undefined || _k.call(_j); + } + this.startIndex = endIndex + 1; + }; + Parser2.prototype.onend = function() { + var _a, _b; + if (this.cbs.onclosetag) { + this.endIndex = this.startIndex; + for (var index = this.stack.length;index > 0; this.cbs.onclosetag(this.stack[--index], true)) + ; + } + (_b = (_a = this.cbs).onend) === null || _b === undefined || _b.call(_a); + }; + Parser2.prototype.reset = function() { + var _a, _b, _c, _d; + (_b = (_a = this.cbs).onreset) === null || _b === undefined || _b.call(_a); + this.tokenizer.reset(); + this.tagname = ""; + this.attribname = ""; + this.attribs = null; + this.stack.length = 0; + this.startIndex = 0; + this.endIndex = 0; + (_d = (_c = this.cbs).onparserinit) === null || _d === undefined || _d.call(_c, this); + this.buffers.length = 0; + this.bufferOffset = 0; + this.writeIndex = 0; + this.ended = false; + }; + Parser2.prototype.parseComplete = function(data) { + this.reset(); + this.end(data); + }; + Parser2.prototype.getSlice = function(start, end) { + while (start - this.bufferOffset >= this.buffers[0].length) { + this.shiftBuffer(); + } + var slice = this.buffers[0].slice(start - this.bufferOffset, end - this.bufferOffset); + while (end - this.bufferOffset > this.buffers[0].length) { + this.shiftBuffer(); + slice += this.buffers[0].slice(0, end - this.bufferOffset); + } + return slice; + }; + Parser2.prototype.shiftBuffer = function() { + this.bufferOffset += this.buffers[0].length; + this.writeIndex--; + this.buffers.shift(); + }; + Parser2.prototype.write = function(chunk) { + var _a, _b; + if (this.ended) { + (_b = (_a = this.cbs).onerror) === null || _b === undefined || _b.call(_a, new Error(".write() after done!")); + return; + } + this.buffers.push(chunk); + if (this.tokenizer.running) { + this.tokenizer.write(chunk); + this.writeIndex++; + } + }; + Parser2.prototype.end = function(chunk) { + var _a, _b; + if (this.ended) { + (_b = (_a = this.cbs).onerror) === null || _b === undefined || _b.call(_a, new Error(".end() after done!")); + return; + } + if (chunk) + this.write(chunk); + this.ended = true; + this.tokenizer.end(); + }; + Parser2.prototype.pause = function() { + this.tokenizer.pause(); + }; + Parser2.prototype.resume = function() { + this.tokenizer.resume(); + while (this.tokenizer.running && this.writeIndex < this.buffers.length) { + this.tokenizer.write(this.buffers[this.writeIndex++]); + } + if (this.ended) + this.tokenizer.end(); + }; + Parser2.prototype.parseChunk = function(chunk) { + this.write(chunk); + }; + Parser2.prototype.done = function(chunk) { + this.end(chunk); + }; + return Parser2; + }(); + exports.Parser = Parser; +}); + +// node_modules/domelementtype/lib/index.js +var require_lib = __commonJS((exports) => { + Object.defineProperty(exports, "__esModule", { value: true }); + exports.Doctype = exports.CDATA = exports.Tag = exports.Style = exports.Script = exports.Comment = exports.Directive = exports.Text = exports.Root = exports.isTag = exports.ElementType = undefined; + var ElementType; + (function(ElementType2) { + ElementType2["Root"] = "root"; + ElementType2["Text"] = "text"; + ElementType2["Directive"] = "directive"; + ElementType2["Comment"] = "comment"; + ElementType2["Script"] = "script"; + ElementType2["Style"] = "style"; + ElementType2["Tag"] = "tag"; + ElementType2["CDATA"] = "cdata"; + ElementType2["Doctype"] = "doctype"; + })(ElementType = exports.ElementType || (exports.ElementType = {})); + function isTag(elem) { + return elem.type === ElementType.Tag || elem.type === ElementType.Script || elem.type === ElementType.Style; + } + exports.isTag = isTag; + exports.Root = ElementType.Root; + exports.Text = ElementType.Text; + exports.Directive = ElementType.Directive; + exports.Comment = ElementType.Comment; + exports.Script = ElementType.Script; + exports.Style = ElementType.Style; + exports.Tag = ElementType.Tag; + exports.CDATA = ElementType.CDATA; + exports.Doctype = ElementType.Doctype; +}); + +// node_modules/domhandler/lib/node.js +var require_node2 = __commonJS((exports) => { + var __extends = exports && exports.__extends || function() { + var extendStatics = function(d, b) { + extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) + if (Object.prototype.hasOwnProperty.call(b2, p)) + d2[p] = b2[p]; + }; + return extendStatics(d, b); + }; + return function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __); + }; + }(); + var __assign = exports && exports.__assign || function() { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length;i < n; i++) { + s = arguments[i]; + for (var p in s) + if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.cloneNode = exports.hasChildren = exports.isDocument = exports.isDirective = exports.isComment = exports.isText = exports.isCDATA = exports.isTag = exports.Element = exports.Document = exports.CDATA = exports.NodeWithChildren = exports.ProcessingInstruction = exports.Comment = exports.Text = exports.DataNode = exports.Node = undefined; + var domelementtype_1 = require_lib(); + var Node = function() { + function Node2() { + this.parent = null; + this.prev = null; + this.next = null; + this.startIndex = null; + this.endIndex = null; + } + Object.defineProperty(Node2.prototype, "parentNode", { + get: function() { + return this.parent; + }, + set: function(parent) { + this.parent = parent; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(Node2.prototype, "previousSibling", { + get: function() { + return this.prev; + }, + set: function(prev) { + this.prev = prev; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(Node2.prototype, "nextSibling", { + get: function() { + return this.next; + }, + set: function(next) { + this.next = next; + }, + enumerable: false, + configurable: true + }); + Node2.prototype.cloneNode = function(recursive) { + if (recursive === undefined) { + recursive = false; + } + return cloneNode(this, recursive); + }; + return Node2; + }(); + exports.Node = Node; + var DataNode = function(_super) { + __extends(DataNode2, _super); + function DataNode2(data) { + var _this = _super.call(this) || this; + _this.data = data; + return _this; + } + Object.defineProperty(DataNode2.prototype, "nodeValue", { + get: function() { + return this.data; + }, + set: function(data) { + this.data = data; + }, + enumerable: false, + configurable: true + }); + return DataNode2; + }(Node); + exports.DataNode = DataNode; + var Text = function(_super) { + __extends(Text2, _super); + function Text2() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.type = domelementtype_1.ElementType.Text; + return _this; + } + Object.defineProperty(Text2.prototype, "nodeType", { + get: function() { + return 3; + }, + enumerable: false, + configurable: true + }); + return Text2; + }(DataNode); + exports.Text = Text; + var Comment = function(_super) { + __extends(Comment2, _super); + function Comment2() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.type = domelementtype_1.ElementType.Comment; + return _this; + } + Object.defineProperty(Comment2.prototype, "nodeType", { + get: function() { + return 8; + }, + enumerable: false, + configurable: true + }); + return Comment2; + }(DataNode); + exports.Comment = Comment; + var ProcessingInstruction = function(_super) { + __extends(ProcessingInstruction2, _super); + function ProcessingInstruction2(name, data) { + var _this = _super.call(this, data) || this; + _this.name = name; + _this.type = domelementtype_1.ElementType.Directive; + return _this; + } + Object.defineProperty(ProcessingInstruction2.prototype, "nodeType", { + get: function() { + return 1; + }, + enumerable: false, + configurable: true + }); + return ProcessingInstruction2; + }(DataNode); + exports.ProcessingInstruction = ProcessingInstruction; + var NodeWithChildren = function(_super) { + __extends(NodeWithChildren2, _super); + function NodeWithChildren2(children) { + var _this = _super.call(this) || this; + _this.children = children; + return _this; + } + Object.defineProperty(NodeWithChildren2.prototype, "firstChild", { + get: function() { + var _a; + return (_a = this.children[0]) !== null && _a !== undefined ? _a : null; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(NodeWithChildren2.prototype, "lastChild", { + get: function() { + return this.children.length > 0 ? this.children[this.children.length - 1] : null; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(NodeWithChildren2.prototype, "childNodes", { + get: function() { + return this.children; + }, + set: function(children) { + this.children = children; + }, + enumerable: false, + configurable: true + }); + return NodeWithChildren2; + }(Node); + exports.NodeWithChildren = NodeWithChildren; + var CDATA = function(_super) { + __extends(CDATA2, _super); + function CDATA2() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.type = domelementtype_1.ElementType.CDATA; + return _this; + } + Object.defineProperty(CDATA2.prototype, "nodeType", { + get: function() { + return 4; + }, + enumerable: false, + configurable: true + }); + return CDATA2; + }(NodeWithChildren); + exports.CDATA = CDATA; + var Document = function(_super) { + __extends(Document2, _super); + function Document2() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.type = domelementtype_1.ElementType.Root; + return _this; + } + Object.defineProperty(Document2.prototype, "nodeType", { + get: function() { + return 9; + }, + enumerable: false, + configurable: true + }); + return Document2; + }(NodeWithChildren); + exports.Document = Document; + var Element = function(_super) { + __extends(Element2, _super); + function Element2(name, attribs, children, type) { + if (children === undefined) { + children = []; + } + if (type === undefined) { + type = name === "script" ? domelementtype_1.ElementType.Script : name === "style" ? domelementtype_1.ElementType.Style : domelementtype_1.ElementType.Tag; + } + var _this = _super.call(this, children) || this; + _this.name = name; + _this.attribs = attribs; + _this.type = type; + return _this; + } + Object.defineProperty(Element2.prototype, "nodeType", { + get: function() { + return 1; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(Element2.prototype, "tagName", { + get: function() { + return this.name; + }, + set: function(name) { + this.name = name; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(Element2.prototype, "attributes", { + get: function() { + var _this = this; + return Object.keys(this.attribs).map(function(name) { + var _a, _b; + return { + name, + value: _this.attribs[name], + namespace: (_a = _this["x-attribsNamespace"]) === null || _a === undefined ? undefined : _a[name], + prefix: (_b = _this["x-attribsPrefix"]) === null || _b === undefined ? undefined : _b[name] + }; + }); + }, + enumerable: false, + configurable: true + }); + return Element2; + }(NodeWithChildren); + exports.Element = Element; + function isTag(node) { + return (0, domelementtype_1.isTag)(node); + } + exports.isTag = isTag; + function isCDATA(node) { + return node.type === domelementtype_1.ElementType.CDATA; + } + exports.isCDATA = isCDATA; + function isText(node) { + return node.type === domelementtype_1.ElementType.Text; + } + exports.isText = isText; + function isComment(node) { + return node.type === domelementtype_1.ElementType.Comment; + } + exports.isComment = isComment; + function isDirective(node) { + return node.type === domelementtype_1.ElementType.Directive; + } + exports.isDirective = isDirective; + function isDocument(node) { + return node.type === domelementtype_1.ElementType.Root; + } + exports.isDocument = isDocument; + function hasChildren(node) { + return Object.prototype.hasOwnProperty.call(node, "children"); + } + exports.hasChildren = hasChildren; + function cloneNode(node, recursive) { + if (recursive === undefined) { + recursive = false; + } + var result; + if (isText(node)) { + result = new Text(node.data); + } else if (isComment(node)) { + result = new Comment(node.data); + } else if (isTag(node)) { + var children = recursive ? cloneChildren(node.children) : []; + var clone_1 = new Element(node.name, __assign({}, node.attribs), children); + children.forEach(function(child) { + return child.parent = clone_1; + }); + if (node.namespace != null) { + clone_1.namespace = node.namespace; + } + if (node["x-attribsNamespace"]) { + clone_1["x-attribsNamespace"] = __assign({}, node["x-attribsNamespace"]); + } + if (node["x-attribsPrefix"]) { + clone_1["x-attribsPrefix"] = __assign({}, node["x-attribsPrefix"]); + } + result = clone_1; + } else if (isCDATA(node)) { + var children = recursive ? cloneChildren(node.children) : []; + var clone_2 = new CDATA(children); + children.forEach(function(child) { + return child.parent = clone_2; + }); + result = clone_2; + } else if (isDocument(node)) { + var children = recursive ? cloneChildren(node.children) : []; + var clone_3 = new Document(children); + children.forEach(function(child) { + return child.parent = clone_3; + }); + if (node["x-mode"]) { + clone_3["x-mode"] = node["x-mode"]; + } + result = clone_3; + } else if (isDirective(node)) { + var instruction = new ProcessingInstruction(node.name, node.data); + if (node["x-name"] != null) { + instruction["x-name"] = node["x-name"]; + instruction["x-publicId"] = node["x-publicId"]; + instruction["x-systemId"] = node["x-systemId"]; + } + result = instruction; + } else { + throw new Error("Not implemented yet: ".concat(node.type)); + } + result.startIndex = node.startIndex; + result.endIndex = node.endIndex; + if (node.sourceCodeLocation != null) { + result.sourceCodeLocation = node.sourceCodeLocation; + } + return result; + } + exports.cloneNode = cloneNode; + function cloneChildren(childs) { + var children = childs.map(function(child) { + return cloneNode(child, true); + }); + for (var i = 1;i < children.length; i++) { + children[i].prev = children[i - 1]; + children[i - 1].next = children[i]; + } + return children; + } +}); + +// node_modules/domhandler/lib/index.js +var require_lib2 = __commonJS((exports) => { + var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === undefined) + k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === undefined) + k2 = k; + o[k2] = m[k]; + }); + var __exportStar = exports && exports.__exportStar || function(m, exports2) { + for (var p in m) + if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports2, p)) + __createBinding(exports2, m, p); + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.DomHandler = undefined; + var domelementtype_1 = require_lib(); + var node_js_1 = require_node2(); + __exportStar(require_node2(), exports); + var defaultOpts = { + withStartIndices: false, + withEndIndices: false, + xmlMode: false + }; + var DomHandler = function() { + function DomHandler2(callback, options, elementCB) { + this.dom = []; + this.root = new node_js_1.Document(this.dom); + this.done = false; + this.tagStack = [this.root]; + this.lastNode = null; + this.parser = null; + if (typeof options === "function") { + elementCB = options; + options = defaultOpts; + } + if (typeof callback === "object") { + options = callback; + callback = undefined; + } + this.callback = callback !== null && callback !== undefined ? callback : null; + this.options = options !== null && options !== undefined ? options : defaultOpts; + this.elementCB = elementCB !== null && elementCB !== undefined ? elementCB : null; + } + DomHandler2.prototype.onparserinit = function(parser) { + this.parser = parser; + }; + DomHandler2.prototype.onreset = function() { + this.dom = []; + this.root = new node_js_1.Document(this.dom); + this.done = false; + this.tagStack = [this.root]; + this.lastNode = null; + this.parser = null; + }; + DomHandler2.prototype.onend = function() { + if (this.done) + return; + this.done = true; + this.parser = null; + this.handleCallback(null); + }; + DomHandler2.prototype.onerror = function(error) { + this.handleCallback(error); + }; + DomHandler2.prototype.onclosetag = function() { + this.lastNode = null; + var elem = this.tagStack.pop(); + if (this.options.withEndIndices) { + elem.endIndex = this.parser.endIndex; + } + if (this.elementCB) + this.elementCB(elem); + }; + DomHandler2.prototype.onopentag = function(name, attribs) { + var type = this.options.xmlMode ? domelementtype_1.ElementType.Tag : undefined; + var element = new node_js_1.Element(name, attribs, undefined, type); + this.addNode(element); + this.tagStack.push(element); + }; + DomHandler2.prototype.ontext = function(data) { + var lastNode = this.lastNode; + if (lastNode && lastNode.type === domelementtype_1.ElementType.Text) { + lastNode.data += data; + if (this.options.withEndIndices) { + lastNode.endIndex = this.parser.endIndex; + } + } else { + var node = new node_js_1.Text(data); + this.addNode(node); + this.lastNode = node; + } + }; + DomHandler2.prototype.oncomment = function(data) { + if (this.lastNode && this.lastNode.type === domelementtype_1.ElementType.Comment) { + this.lastNode.data += data; + return; + } + var node = new node_js_1.Comment(data); + this.addNode(node); + this.lastNode = node; + }; + DomHandler2.prototype.oncommentend = function() { + this.lastNode = null; + }; + DomHandler2.prototype.oncdatastart = function() { + var text = new node_js_1.Text(""); + var node = new node_js_1.CDATA([text]); + this.addNode(node); + text.parent = node; + this.lastNode = text; + }; + DomHandler2.prototype.oncdataend = function() { + this.lastNode = null; + }; + DomHandler2.prototype.onprocessinginstruction = function(name, data) { + var node = new node_js_1.ProcessingInstruction(name, data); + this.addNode(node); + }; + DomHandler2.prototype.handleCallback = function(error) { + if (typeof this.callback === "function") { + this.callback(error, this.dom); + } else if (error) { + throw error; + } + }; + DomHandler2.prototype.addNode = function(node) { + var parent = this.tagStack[this.tagStack.length - 1]; + var previousSibling = parent.children[parent.children.length - 1]; + if (this.options.withStartIndices) { + node.startIndex = this.parser.startIndex; + } + if (this.options.withEndIndices) { + node.endIndex = this.parser.endIndex; + } + parent.children.push(node); + if (previousSibling) { + node.prev = previousSibling; + previousSibling.next = node; + } + node.parent = parent; + this.lastNode = null; + }; + return DomHandler2; + }(); + exports.DomHandler = DomHandler; + exports.default = DomHandler; +}); + +// node_modules/entities/lib/generated/encode-html.js +var require_encode_html = __commonJS((exports) => { + Object.defineProperty(exports, "__esModule", { value: true }); + function restoreDiff(arr) { + for (var i = 1;i < arr.length; i++) { + arr[i][0] += arr[i - 1][0] + 1; + } + return arr; + } + exports.default = new Map(/* @__PURE__ */ restoreDiff([[9, " "], [0, " "], [22, "!"], [0, """], [0, "#"], [0, "$"], [0, "%"], [0, "&"], [0, "'"], [0, "("], [0, ")"], [0, "*"], [0, "+"], [0, ","], [1, "."], [0, "/"], [10, ":"], [0, ";"], [0, { v: "<", n: 8402, o: "<⃒" }], [0, { v: "=", n: 8421, o: "=⃥" }], [0, { v: ">", n: 8402, o: ">⃒" }], [0, "?"], [0, "@"], [26, "["], [0, "\"], [0, "]"], [0, "^"], [0, "_"], [0, "`"], [5, { n: 106, o: "fj" }], [20, "{"], [0, "|"], [0, "}"], [34, " "], [0, "¡"], [0, "¢"], [0, "£"], [0, "¤"], [0, "¥"], [0, "¦"], [0, "§"], [0, "¨"], [0, "©"], [0, "ª"], [0, "«"], [0, "¬"], [0, "­"], [0, "®"], [0, "¯"], [0, "°"], [0, "±"], [0, "²"], [0, "³"], [0, "´"], [0, "µ"], [0, "¶"], [0, "·"], [0, "¸"], [0, "¹"], [0, "º"], [0, "»"], [0, "¼"], [0, "½"], [0, "¾"], [0, "¿"], [0, "À"], [0, "Á"], [0, "Â"], [0, "Ã"], [0, "Ä"], [0, "Å"], [0, "Æ"], [0, "Ç"], [0, "È"], [0, "É"], [0, "Ê"], [0, "Ë"], [0, "Ì"], [0, "Í"], [0, "Î"], [0, "Ï"], [0, "Ð"], [0, "Ñ"], [0, "Ò"], [0, "Ó"], [0, "Ô"], [0, "Õ"], [0, "Ö"], [0, "×"], [0, "Ø"], [0, "Ù"], [0, "Ú"], [0, "Û"], [0, "Ü"], [0, "Ý"], [0, "Þ"], [0, "ß"], [0, "à"], [0, "á"], [0, "â"], [0, "ã"], [0, "ä"], [0, "å"], [0, "æ"], [0, "ç"], [0, "è"], [0, "é"], [0, "ê"], [0, "ë"], [0, "ì"], [0, "í"], [0, "î"], [0, "ï"], [0, "ð"], [0, "ñ"], [0, "ò"], [0, "ó"], [0, "ô"], [0, "õ"], [0, "ö"], [0, "÷"], [0, "ø"], [0, "ù"], [0, "ú"], [0, "û"], [0, "ü"], [0, "ý"], [0, "þ"], [0, "ÿ"], [0, "Ā"], [0, "ā"], [0, "Ă"], [0, "ă"], [0, "Ą"], [0, "ą"], [0, "Ć"], [0, "ć"], [0, "Ĉ"], [0, "ĉ"], [0, "Ċ"], [0, "ċ"], [0, "Č"], [0, "č"], [0, "Ď"], [0, "ď"], [0, "Đ"], [0, "đ"], [0, "Ē"], [0, "ē"], [2, "Ė"], [0, "ė"], [0, "Ę"], [0, "ę"], [0, "Ě"], [0, "ě"], [0, "Ĝ"], [0, "ĝ"], [0, "Ğ"], [0, "ğ"], [0, "Ġ"], [0, "ġ"], [0, "Ģ"], [1, "Ĥ"], [0, "ĥ"], [0, "Ħ"], [0, "ħ"], [0, "Ĩ"], [0, "ĩ"], [0, "Ī"], [0, "ī"], [2, "Į"], [0, "į"], [0, "İ"], [0, "ı"], [0, "IJ"], [0, "ij"], [0, "Ĵ"], [0, "ĵ"], [0, "Ķ"], [0, "ķ"], [0, "ĸ"], [0, "Ĺ"], [0, "ĺ"], [0, "Ļ"], [0, "ļ"], [0, "Ľ"], [0, "ľ"], [0, "Ŀ"], [0, "ŀ"], [0, "Ł"], [0, "ł"], [0, "Ń"], [0, "ń"], [0, "Ņ"], [0, "ņ"], [0, "Ň"], [0, "ň"], [0, "ʼn"], [0, "Ŋ"], [0, "ŋ"], [0, "Ō"], [0, "ō"], [2, "Ő"], [0, "ő"], [0, "Œ"], [0, "œ"], [0, "Ŕ"], [0, "ŕ"], [0, "Ŗ"], [0, "ŗ"], [0, "Ř"], [0, "ř"], [0, "Ś"], [0, "ś"], [0, "Ŝ"], [0, "ŝ"], [0, "Ş"], [0, "ş"], [0, "Š"], [0, "š"], [0, "Ţ"], [0, "ţ"], [0, "Ť"], [0, "ť"], [0, "Ŧ"], [0, "ŧ"], [0, "Ũ"], [0, "ũ"], [0, "Ū"], [0, "ū"], [0, "Ŭ"], [0, "ŭ"], [0, "Ů"], [0, "ů"], [0, "Ű"], [0, "ű"], [0, "Ų"], [0, "ų"], [0, "Ŵ"], [0, "ŵ"], [0, "Ŷ"], [0, "ŷ"], [0, "Ÿ"], [0, "Ź"], [0, "ź"], [0, "Ż"], [0, "ż"], [0, "Ž"], [0, "ž"], [19, "ƒ"], [34, "Ƶ"], [63, "ǵ"], [65, "ȷ"], [142, "ˆ"], [0, "ˇ"], [16, "˘"], [0, "˙"], [0, "˚"], [0, "˛"], [0, "˜"], [0, "˝"], [51, "̑"], [127, "Α"], [0, "Β"], [0, "Γ"], [0, "Δ"], [0, "Ε"], [0, "Ζ"], [0, "Η"], [0, "Θ"], [0, "Ι"], [0, "Κ"], [0, "Λ"], [0, "Μ"], [0, "Ν"], [0, "Ξ"], [0, "Ο"], [0, "Π"], [0, "Ρ"], [1, "Σ"], [0, "Τ"], [0, "Υ"], [0, "Φ"], [0, "Χ"], [0, "Ψ"], [0, "Ω"], [7, "α"], [0, "β"], [0, "γ"], [0, "δ"], [0, "ε"], [0, "ζ"], [0, "η"], [0, "θ"], [0, "ι"], [0, "κ"], [0, "λ"], [0, "μ"], [0, "ν"], [0, "ξ"], [0, "ο"], [0, "π"], [0, "ρ"], [0, "ς"], [0, "σ"], [0, "τ"], [0, "υ"], [0, "φ"], [0, "χ"], [0, "ψ"], [0, "ω"], [7, "ϑ"], [0, "ϒ"], [2, "ϕ"], [0, "ϖ"], [5, "Ϝ"], [0, "ϝ"], [18, "ϰ"], [0, "ϱ"], [3, "ϵ"], [0, "϶"], [10, "Ё"], [0, "Ђ"], [0, "Ѓ"], [0, "Є"], [0, "Ѕ"], [0, "І"], [0, "Ї"], [0, "Ј"], [0, "Љ"], [0, "Њ"], [0, "Ћ"], [0, "Ќ"], [1, "Ў"], [0, "Џ"], [0, "А"], [0, "Б"], [0, "В"], [0, "Г"], [0, "Д"], [0, "Е"], [0, "Ж"], [0, "З"], [0, "И"], [0, "Й"], [0, "К"], [0, "Л"], [0, "М"], [0, "Н"], [0, "О"], [0, "П"], [0, "Р"], [0, "С"], [0, "Т"], [0, "У"], [0, "Ф"], [0, "Х"], [0, "Ц"], [0, "Ч"], [0, "Ш"], [0, "Щ"], [0, "Ъ"], [0, "Ы"], [0, "Ь"], [0, "Э"], [0, "Ю"], [0, "Я"], [0, "а"], [0, "б"], [0, "в"], [0, "г"], [0, "д"], [0, "е"], [0, "ж"], [0, "з"], [0, "и"], [0, "й"], [0, "к"], [0, "л"], [0, "м"], [0, "н"], [0, "о"], [0, "п"], [0, "р"], [0, "с"], [0, "т"], [0, "у"], [0, "ф"], [0, "х"], [0, "ц"], [0, "ч"], [0, "ш"], [0, "щ"], [0, "ъ"], [0, "ы"], [0, "ь"], [0, "э"], [0, "ю"], [0, "я"], [1, "ё"], [0, "ђ"], [0, "ѓ"], [0, "є"], [0, "ѕ"], [0, "і"], [0, "ї"], [0, "ј"], [0, "љ"], [0, "њ"], [0, "ћ"], [0, "ќ"], [1, "ў"], [0, "џ"], [7074, " "], [0, " "], [0, " "], [0, " "], [1, " "], [0, " "], [0, " "], [0, " "], [0, "​"], [0, "‌"], [0, "‍"], [0, "‎"], [0, "‏"], [0, "‐"], [2, "–"], [0, "—"], [0, "―"], [0, "‖"], [1, "‘"], [0, "’"], [0, "‚"], [1, "“"], [0, "”"], [0, "„"], [1, "†"], [0, "‡"], [0, "•"], [2, "‥"], [0, "…"], [9, "‰"], [0, "‱"], [0, "′"], [0, "″"], [0, "‴"], [0, "‵"], [3, "‹"], [0, "›"], [3, "‾"], [2, "⁁"], [1, "⁃"], [0, "⁄"], [10, "⁏"], [7, "⁗"], [7, { v: " ", n: 8202, o: "  " }], [0, "⁠"], [0, "⁡"], [0, "⁢"], [0, "⁣"], [72, "€"], [46, "⃛"], [0, "⃜"], [37, "ℂ"], [2, "℅"], [4, "ℊ"], [0, "ℋ"], [0, "ℌ"], [0, "ℍ"], [0, "ℎ"], [0, "ℏ"], [0, "ℐ"], [0, "ℑ"], [0, "ℒ"], [0, "ℓ"], [1, "ℕ"], [0, "№"], [0, "℗"], [0, "℘"], [0, "ℙ"], [0, "ℚ"], [0, "ℛ"], [0, "ℜ"], [0, "ℝ"], [0, "℞"], [3, "™"], [1, "ℤ"], [2, "℧"], [0, "ℨ"], [0, "℩"], [2, "ℬ"], [0, "ℭ"], [1, "ℯ"], [0, "ℰ"], [0, "ℱ"], [1, "ℳ"], [0, "ℴ"], [0, "ℵ"], [0, "ℶ"], [0, "ℷ"], [0, "ℸ"], [12, "ⅅ"], [0, "ⅆ"], [0, "ⅇ"], [0, "ⅈ"], [10, "⅓"], [0, "⅔"], [0, "⅕"], [0, "⅖"], [0, "⅗"], [0, "⅘"], [0, "⅙"], [0, "⅚"], [0, "⅛"], [0, "⅜"], [0, "⅝"], [0, "⅞"], [49, "←"], [0, "↑"], [0, "→"], [0, "↓"], [0, "↔"], [0, "↕"], [0, "↖"], [0, "↗"], [0, "↘"], [0, "↙"], [0, "↚"], [0, "↛"], [1, { v: "↝", n: 824, o: "↝̸" }], [0, "↞"], [0, "↟"], [0, "↠"], [0, "↡"], [0, "↢"], [0, "↣"], [0, "↤"], [0, "↥"], [0, "↦"], [0, "↧"], [1, "↩"], [0, "↪"], [0, "↫"], [0, "↬"], [0, "↭"], [0, "↮"], [1, "↰"], [0, "↱"], [0, "↲"], [0, "↳"], [1, "↵"], [0, "↶"], [0, "↷"], [2, "↺"], [0, "↻"], [0, "↼"], [0, "↽"], [0, "↾"], [0, "↿"], [0, "⇀"], [0, "⇁"], [0, "⇂"], [0, "⇃"], [0, "⇄"], [0, "⇅"], [0, "⇆"], [0, "⇇"], [0, "⇈"], [0, "⇉"], [0, "⇊"], [0, "⇋"], [0, "⇌"], [0, "⇍"], [0, "⇎"], [0, "⇏"], [0, "⇐"], [0, "⇑"], [0, "⇒"], [0, "⇓"], [0, "⇔"], [0, "⇕"], [0, "⇖"], [0, "⇗"], [0, "⇘"], [0, "⇙"], [0, "⇚"], [0, "⇛"], [1, "⇝"], [6, "⇤"], [0, "⇥"], [15, "⇵"], [7, "⇽"], [0, "⇾"], [0, "⇿"], [0, "∀"], [0, "∁"], [0, { v: "∂", n: 824, o: "∂̸" }], [0, "∃"], [0, "∄"], [0, "∅"], [1, "∇"], [0, "∈"], [0, "∉"], [1, "∋"], [0, "∌"], [2, "∏"], [0, "∐"], [0, "∑"], [0, "−"], [0, "∓"], [0, "∔"], [1, "∖"], [0, "∗"], [0, "∘"], [1, "√"], [2, "∝"], [0, "∞"], [0, "∟"], [0, { v: "∠", n: 8402, o: "∠⃒" }], [0, "∡"], [0, "∢"], [0, "∣"], [0, "∤"], [0, "∥"], [0, "∦"], [0, "∧"], [0, "∨"], [0, { v: "∩", n: 65024, o: "∩︀" }], [0, { v: "∪", n: 65024, o: "∪︀" }], [0, "∫"], [0, "∬"], [0, "∭"], [0, "∮"], [0, "∯"], [0, "∰"], [0, "∱"], [0, "∲"], [0, "∳"], [0, "∴"], [0, "∵"], [0, "∶"], [0, "∷"], [0, "∸"], [1, "∺"], [0, "∻"], [0, { v: "∼", n: 8402, o: "∼⃒" }], [0, { v: "∽", n: 817, o: "∽̱" }], [0, { v: "∾", n: 819, o: "∾̳" }], [0, "∿"], [0, "≀"], [0, "≁"], [0, { v: "≂", n: 824, o: "≂̸" }], [0, "≃"], [0, "≄"], [0, "≅"], [0, "≆"], [0, "≇"], [0, "≈"], [0, "≉"], [0, "≊"], [0, { v: "≋", n: 824, o: "≋̸" }], [0, "≌"], [0, { v: "≍", n: 8402, o: "≍⃒" }], [0, { v: "≎", n: 824, o: "≎̸" }], [0, { v: "≏", n: 824, o: "≏̸" }], [0, { v: "≐", n: 824, o: "≐̸" }], [0, "≑"], [0, "≒"], [0, "≓"], [0, "≔"], [0, "≕"], [0, "≖"], [0, "≗"], [1, "≙"], [0, "≚"], [1, "≜"], [2, "≟"], [0, "≠"], [0, { v: "≡", n: 8421, o: "≡⃥" }], [0, "≢"], [1, { v: "≤", n: 8402, o: "≤⃒" }], [0, { v: "≥", n: 8402, o: "≥⃒" }], [0, { v: "≦", n: 824, o: "≦̸" }], [0, { v: "≧", n: 824, o: "≧̸" }], [0, { v: "≨", n: 65024, o: "≨︀" }], [0, { v: "≩", n: 65024, o: "≩︀" }], [0, { v: "≪", n: new Map(/* @__PURE__ */ restoreDiff([[824, "≪̸"], [7577, "≪⃒"]])) }], [0, { v: "≫", n: new Map(/* @__PURE__ */ restoreDiff([[824, "≫̸"], [7577, "≫⃒"]])) }], [0, "≬"], [0, "≭"], [0, "≮"], [0, "≯"], [0, "≰"], [0, "≱"], [0, "≲"], [0, "≳"], [0, "≴"], [0, "≵"], [0, "≶"], [0, "≷"], [0, "≸"], [0, "≹"], [0, "≺"], [0, "≻"], [0, "≼"], [0, "≽"], [0, "≾"], [0, { v: "≿", n: 824, o: "≿̸" }], [0, "⊀"], [0, "⊁"], [0, { v: "⊂", n: 8402, o: "⊂⃒" }], [0, { v: "⊃", n: 8402, o: "⊃⃒" }], [0, "⊄"], [0, "⊅"], [0, "⊆"], [0, "⊇"], [0, "⊈"], [0, "⊉"], [0, { v: "⊊", n: 65024, o: "⊊︀" }], [0, { v: "⊋", n: 65024, o: "⊋︀" }], [1, "⊍"], [0, "⊎"], [0, { v: "⊏", n: 824, o: "⊏̸" }], [0, { v: "⊐", n: 824, o: "⊐̸" }], [0, "⊑"], [0, "⊒"], [0, { v: "⊓", n: 65024, o: "⊓︀" }], [0, { v: "⊔", n: 65024, o: "⊔︀" }], [0, "⊕"], [0, "⊖"], [0, "⊗"], [0, "⊘"], [0, "⊙"], [0, "⊚"], [0, "⊛"], [1, "⊝"], [0, "⊞"], [0, "⊟"], [0, "⊠"], [0, "⊡"], [0, "⊢"], [0, "⊣"], [0, "⊤"], [0, "⊥"], [1, "⊧"], [0, "⊨"], [0, "⊩"], [0, "⊪"], [0, "⊫"], [0, "⊬"], [0, "⊭"], [0, "⊮"], [0, "⊯"], [0, "⊰"], [1, "⊲"], [0, "⊳"], [0, { v: "⊴", n: 8402, o: "⊴⃒" }], [0, { v: "⊵", n: 8402, o: "⊵⃒" }], [0, "⊶"], [0, "⊷"], [0, "⊸"], [0, "⊹"], [0, "⊺"], [0, "⊻"], [1, "⊽"], [0, "⊾"], [0, "⊿"], [0, "⋀"], [0, "⋁"], [0, "⋂"], [0, "⋃"], [0, "⋄"], [0, "⋅"], [0, "⋆"], [0, "⋇"], [0, "⋈"], [0, "⋉"], [0, "⋊"], [0, "⋋"], [0, "⋌"], [0, "⋍"], [0, "⋎"], [0, "⋏"], [0, "⋐"], [0, "⋑"], [0, "⋒"], [0, "⋓"], [0, "⋔"], [0, "⋕"], [0, "⋖"], [0, "⋗"], [0, { v: "⋘", n: 824, o: "⋘̸" }], [0, { v: "⋙", n: 824, o: "⋙̸" }], [0, { v: "⋚", n: 65024, o: "⋚︀" }], [0, { v: "⋛", n: 65024, o: "⋛︀" }], [2, "⋞"], [0, "⋟"], [0, "⋠"], [0, "⋡"], [0, "⋢"], [0, "⋣"], [2, "⋦"], [0, "⋧"], [0, "⋨"], [0, "⋩"], [0, "⋪"], [0, "⋫"], [0, "⋬"], [0, "⋭"], [0, "⋮"], [0, "⋯"], [0, "⋰"], [0, "⋱"], [0, "⋲"], [0, "⋳"], [0, "⋴"], [0, { v: "⋵", n: 824, o: "⋵̸" }], [0, "⋶"], [0, "⋷"], [1, { v: "⋹", n: 824, o: "⋹̸" }], [0, "⋺"], [0, "⋻"], [0, "⋼"], [0, "⋽"], [0, "⋾"], [6, "⌅"], [0, "⌆"], [1, "⌈"], [0, "⌉"], [0, "⌊"], [0, "⌋"], [0, "⌌"], [0, "⌍"], [0, "⌎"], [0, "⌏"], [0, "⌐"], [1, "⌒"], [0, "⌓"], [1, "⌕"], [0, "⌖"], [5, "⌜"], [0, "⌝"], [0, "⌞"], [0, "⌟"], [2, "⌢"], [0, "⌣"], [9, "⌭"], [0, "⌮"], [7, "⌶"], [6, "⌽"], [1, "⌿"], [60, "⍼"], [51, "⎰"], [0, "⎱"], [2, "⎴"], [0, "⎵"], [0, "⎶"], [37, "⏜"], [0, "⏝"], [0, "⏞"], [0, "⏟"], [2, "⏢"], [4, "⏧"], [59, "␣"], [164, "Ⓢ"], [55, "─"], [1, "│"], [9, "┌"], [3, "┐"], [3, "└"], [3, "┘"], [3, "├"], [7, "┤"], [7, "┬"], [7, "┴"], [7, "┼"], [19, "═"], [0, "║"], [0, "╒"], [0, "╓"], [0, "╔"], [0, "╕"], [0, "╖"], [0, "╗"], [0, "╘"], [0, "╙"], [0, "╚"], [0, "╛"], [0, "╜"], [0, "╝"], [0, "╞"], [0, "╟"], [0, "╠"], [0, "╡"], [0, "╢"], [0, "╣"], [0, "╤"], [0, "╥"], [0, "╦"], [0, "╧"], [0, "╨"], [0, "╩"], [0, "╪"], [0, "╫"], [0, "╬"], [19, "▀"], [3, "▄"], [3, "█"], [8, "░"], [0, "▒"], [0, "▓"], [13, "□"], [8, "▪"], [0, "▫"], [1, "▭"], [0, "▮"], [2, "▱"], [1, "△"], [0, "▴"], [0, "▵"], [2, "▸"], [0, "▹"], [3, "▽"], [0, "▾"], [0, "▿"], [2, "◂"], [0, "◃"], [6, "◊"], [0, "○"], [32, "◬"], [2, "◯"], [8, "◸"], [0, "◹"], [0, "◺"], [0, "◻"], [0, "◼"], [8, "★"], [0, "☆"], [7, "☎"], [49, "♀"], [1, "♂"], [29, "♠"], [2, "♣"], [1, "♥"], [0, "♦"], [3, "♪"], [2, "♭"], [0, "♮"], [0, "♯"], [163, "✓"], [3, "✗"], [8, "✠"], [21, "✶"], [33, "❘"], [25, "❲"], [0, "❳"], [84, "⟈"], [0, "⟉"], [28, "⟦"], [0, "⟧"], [0, "⟨"], [0, "⟩"], [0, "⟪"], [0, "⟫"], [0, "⟬"], [0, "⟭"], [7, "⟵"], [0, "⟶"], [0, "⟷"], [0, "⟸"], [0, "⟹"], [0, "⟺"], [1, "⟼"], [2, "⟿"], [258, "⤂"], [0, "⤃"], [0, "⤄"], [0, "⤅"], [6, "⤌"], [0, "⤍"], [0, "⤎"], [0, "⤏"], [0, "⤐"], [0, "⤑"], [0, "⤒"], [0, "⤓"], [2, "⤖"], [2, "⤙"], [0, "⤚"], [0, "⤛"], [0, "⤜"], [0, "⤝"], [0, "⤞"], [0, "⤟"], [0, "⤠"], [2, "⤣"], [0, "⤤"], [0, "⤥"], [0, "⤦"], [0, "⤧"], [0, "⤨"], [0, "⤩"], [0, "⤪"], [8, { v: "⤳", n: 824, o: "⤳̸" }], [1, "⤵"], [0, "⤶"], [0, "⤷"], [0, "⤸"], [0, "⤹"], [2, "⤼"], [0, "⤽"], [7, "⥅"], [2, "⥈"], [0, "⥉"], [0, "⥊"], [0, "⥋"], [2, "⥎"], [0, "⥏"], [0, "⥐"], [0, "⥑"], [0, "⥒"], [0, "⥓"], [0, "⥔"], [0, "⥕"], [0, "⥖"], [0, "⥗"], [0, "⥘"], [0, "⥙"], [0, "⥚"], [0, "⥛"], [0, "⥜"], [0, "⥝"], [0, "⥞"], [0, "⥟"], [0, "⥠"], [0, "⥡"], [0, "⥢"], [0, "⥣"], [0, "⥤"], [0, "⥥"], [0, "⥦"], [0, "⥧"], [0, "⥨"], [0, "⥩"], [0, "⥪"], [0, "⥫"], [0, "⥬"], [0, "⥭"], [0, "⥮"], [0, "⥯"], [0, "⥰"], [0, "⥱"], [0, "⥲"], [0, "⥳"], [0, "⥴"], [0, "⥵"], [0, "⥶"], [1, "⥸"], [0, "⥹"], [1, "⥻"], [0, "⥼"], [0, "⥽"], [0, "⥾"], [0, "⥿"], [5, "⦅"], [0, "⦆"], [4, "⦋"], [0, "⦌"], [0, "⦍"], [0, "⦎"], [0, "⦏"], [0, "⦐"], [0, "⦑"], [0, "⦒"], [0, "⦓"], [0, "⦔"], [0, "⦕"], [0, "⦖"], [3, "⦚"], [1, "⦜"], [0, "⦝"], [6, "⦤"], [0, "⦥"], [0, "⦦"], [0, "⦧"], [0, "⦨"], [0, "⦩"], [0, "⦪"], [0, "⦫"], [0, "⦬"], [0, "⦭"], [0, "⦮"], [0, "⦯"], [0, "⦰"], [0, "⦱"], [0, "⦲"], [0, "⦳"], [0, "⦴"], [0, "⦵"], [0, "⦶"], [0, "⦷"], [1, "⦹"], [1, "⦻"], [0, "⦼"], [1, "⦾"], [0, "⦿"], [0, "⧀"], [0, "⧁"], [0, "⧂"], [0, "⧃"], [0, "⧄"], [0, "⧅"], [3, "⧉"], [3, "⧍"], [0, "⧎"], [0, { v: "⧏", n: 824, o: "⧏̸" }], [0, { v: "⧐", n: 824, o: "⧐̸" }], [11, "⧜"], [0, "⧝"], [0, "⧞"], [4, "⧣"], [0, "⧤"], [0, "⧥"], [5, "⧫"], [8, "⧴"], [1, "⧶"], [9, "⨀"], [0, "⨁"], [0, "⨂"], [1, "⨄"], [1, "⨆"], [5, "⨌"], [0, "⨍"], [2, "⨐"], [0, "⨑"], [0, "⨒"], [0, "⨓"], [0, "⨔"], [0, "⨕"], [0, "⨖"], [0, "⨗"], [10, "⨢"], [0, "⨣"], [0, "⨤"], [0, "⨥"], [0, "⨦"], [0, "⨧"], [1, "⨩"], [0, "⨪"], [2, "⨭"], [0, "⨮"], [0, "⨯"], [0, "⨰"], [0, "⨱"], [1, "⨳"], [0, "⨴"], [0, "⨵"], [0, "⨶"], [0, "⨷"], [0, "⨸"], [0, "⨹"], [0, "⨺"], [0, "⨻"], [0, "⨼"], [2, "⨿"], [0, "⩀"], [1, "⩂"], [0, "⩃"], [0, "⩄"], [0, "⩅"], [0, "⩆"], [0, "⩇"], [0, "⩈"], [0, "⩉"], [0, "⩊"], [0, "⩋"], [0, "⩌"], [0, "⩍"], [2, "⩐"], [2, "⩓"], [0, "⩔"], [0, "⩕"], [0, "⩖"], [0, "⩗"], [0, "⩘"], [1, "⩚"], [0, "⩛"], [0, "⩜"], [0, "⩝"], [1, "⩟"], [6, "⩦"], [3, "⩪"], [2, { v: "⩭", n: 824, o: "⩭̸" }], [0, "⩮"], [0, "⩯"], [0, { v: "⩰", n: 824, o: "⩰̸" }], [0, "⩱"], [0, "⩲"], [0, "⩳"], [0, "⩴"], [0, "⩵"], [1, "⩷"], [0, "⩸"], [0, "⩹"], [0, "⩺"], [0, "⩻"], [0, "⩼"], [0, { v: "⩽", n: 824, o: "⩽̸" }], [0, { v: "⩾", n: 824, o: "⩾̸" }], [0, "⩿"], [0, "⪀"], [0, "⪁"], [0, "⪂"], [0, "⪃"], [0, "⪄"], [0, "⪅"], [0, "⪆"], [0, "⪇"], [0, "⪈"], [0, "⪉"], [0, "⪊"], [0, "⪋"], [0, "⪌"], [0, "⪍"], [0, "⪎"], [0, "⪏"], [0, "⪐"], [0, "⪑"], [0, "⪒"], [0, "⪓"], [0, "⪔"], [0, "⪕"], [0, "⪖"], [0, "⪗"], [0, "⪘"], [0, "⪙"], [0, "⪚"], [2, "⪝"], [0, "⪞"], [0, "⪟"], [0, "⪠"], [0, { v: "⪡", n: 824, o: "⪡̸" }], [0, { v: "⪢", n: 824, o: "⪢̸" }], [1, "⪤"], [0, "⪥"], [0, "⪦"], [0, "⪧"], [0, "⪨"], [0, "⪩"], [0, "⪪"], [0, "⪫"], [0, { v: "⪬", n: 65024, o: "⪬︀" }], [0, { v: "⪭", n: 65024, o: "⪭︀" }], [0, "⪮"], [0, { v: "⪯", n: 824, o: "⪯̸" }], [0, { v: "⪰", n: 824, o: "⪰̸" }], [2, "⪳"], [0, "⪴"], [0, "⪵"], [0, "⪶"], [0, "⪷"], [0, "⪸"], [0, "⪹"], [0, "⪺"], [0, "⪻"], [0, "⪼"], [0, "⪽"], [0, "⪾"], [0, "⪿"], [0, "⫀"], [0, "⫁"], [0, "⫂"], [0, "⫃"], [0, "⫄"], [0, { v: "⫅", n: 824, o: "⫅̸" }], [0, { v: "⫆", n: 824, o: "⫆̸" }], [0, "⫇"], [0, "⫈"], [2, { v: "⫋", n: 65024, o: "⫋︀" }], [0, { v: "⫌", n: 65024, o: "⫌︀" }], [2, "⫏"], [0, "⫐"], [0, "⫑"], [0, "⫒"], [0, "⫓"], [0, "⫔"], [0, "⫕"], [0, "⫖"], [0, "⫗"], [0, "⫘"], [0, "⫙"], [0, "⫚"], [0, "⫛"], [8, "⫤"], [1, "⫦"], [0, "⫧"], [0, "⫨"], [0, "⫩"], [1, "⫫"], [0, "⫬"], [0, "⫭"], [0, "⫮"], [0, "⫯"], [0, "⫰"], [0, "⫱"], [0, "⫲"], [0, "⫳"], [9, { v: "⫽", n: 8421, o: "⫽⃥" }], [44343, { n: new Map(/* @__PURE__ */ restoreDiff([[56476, "𝒜"], [1, "𝒞"], [0, "𝒟"], [2, "𝒢"], [2, "𝒥"], [0, "𝒦"], [2, "𝒩"], [0, "𝒪"], [0, "𝒫"], [0, "𝒬"], [1, "𝒮"], [0, "𝒯"], [0, "𝒰"], [0, "𝒱"], [0, "𝒲"], [0, "𝒳"], [0, "𝒴"], [0, "𝒵"], [0, "𝒶"], [0, "𝒷"], [0, "𝒸"], [0, "𝒹"], [1, "𝒻"], [1, "𝒽"], [0, "𝒾"], [0, "𝒿"], [0, "𝓀"], [0, "𝓁"], [0, "𝓂"], [0, "𝓃"], [1, "𝓅"], [0, "𝓆"], [0, "𝓇"], [0, "𝓈"], [0, "𝓉"], [0, "𝓊"], [0, "𝓋"], [0, "𝓌"], [0, "𝓍"], [0, "𝓎"], [0, "𝓏"], [52, "𝔄"], [0, "𝔅"], [1, "𝔇"], [0, "𝔈"], [0, "𝔉"], [0, "𝔊"], [2, "𝔍"], [0, "𝔎"], [0, "𝔏"], [0, "𝔐"], [0, "𝔑"], [0, "𝔒"], [0, "𝔓"], [0, "𝔔"], [1, "𝔖"], [0, "𝔗"], [0, "𝔘"], [0, "𝔙"], [0, "𝔚"], [0, "𝔛"], [0, "𝔜"], [1, "𝔞"], [0, "𝔟"], [0, "𝔠"], [0, "𝔡"], [0, "𝔢"], [0, "𝔣"], [0, "𝔤"], [0, "𝔥"], [0, "𝔦"], [0, "𝔧"], [0, "𝔨"], [0, "𝔩"], [0, "𝔪"], [0, "𝔫"], [0, "𝔬"], [0, "𝔭"], [0, "𝔮"], [0, "𝔯"], [0, "𝔰"], [0, "𝔱"], [0, "𝔲"], [0, "𝔳"], [0, "𝔴"], [0, "𝔵"], [0, "𝔶"], [0, "𝔷"], [0, "𝔸"], [0, "𝔹"], [1, "𝔻"], [0, "𝔼"], [0, "𝔽"], [0, "𝔾"], [1, "𝕀"], [0, "𝕁"], [0, "𝕂"], [0, "𝕃"], [0, "𝕄"], [1, "𝕆"], [3, "𝕊"], [0, "𝕋"], [0, "𝕌"], [0, "𝕍"], [0, "𝕎"], [0, "𝕏"], [0, "𝕐"], [1, "𝕒"], [0, "𝕓"], [0, "𝕔"], [0, "𝕕"], [0, "𝕖"], [0, "𝕗"], [0, "𝕘"], [0, "𝕙"], [0, "𝕚"], [0, "𝕛"], [0, "𝕜"], [0, "𝕝"], [0, "𝕞"], [0, "𝕟"], [0, "𝕠"], [0, "𝕡"], [0, "𝕢"], [0, "𝕣"], [0, "𝕤"], [0, "𝕥"], [0, "𝕦"], [0, "𝕧"], [0, "𝕨"], [0, "𝕩"], [0, "𝕪"], [0, "𝕫"]])) }], [8906, "ff"], [0, "fi"], [0, "fl"], [0, "ffi"], [0, "ffl"]])); +}); + +// node_modules/entities/lib/escape.js +var require_escape = __commonJS((exports) => { + Object.defineProperty(exports, "__esModule", { value: true }); + exports.escapeText = exports.escapeAttribute = exports.escapeUTF8 = exports.escape = exports.encodeXML = exports.getCodePoint = exports.xmlReplacer = undefined; + exports.xmlReplacer = /["&'<>$\x80-\uFFFF]/g; + var xmlCodeMap = new Map([ + [34, """], + [38, "&"], + [39, "'"], + [60, "<"], + [62, ">"] + ]); + exports.getCodePoint = String.prototype.codePointAt != null ? function(str, index) { + return str.codePointAt(index); + } : function(c, index) { + return (c.charCodeAt(index) & 64512) === 55296 ? (c.charCodeAt(index) - 55296) * 1024 + c.charCodeAt(index + 1) - 56320 + 65536 : c.charCodeAt(index); + }; + function encodeXML(str) { + var ret = ""; + var lastIdx = 0; + var match; + while ((match = exports.xmlReplacer.exec(str)) !== null) { + var i = match.index; + var char = str.charCodeAt(i); + var next = xmlCodeMap.get(char); + if (next !== undefined) { + ret += str.substring(lastIdx, i) + next; + lastIdx = i + 1; + } else { + ret += "".concat(str.substring(lastIdx, i), "&#x").concat((0, exports.getCodePoint)(str, i).toString(16), ";"); + lastIdx = exports.xmlReplacer.lastIndex += Number((char & 64512) === 55296); + } + } + return ret + str.substr(lastIdx); + } + exports.encodeXML = encodeXML; + exports.escape = encodeXML; + function getEscaper(regex, map) { + return function escape(data) { + var match; + var lastIdx = 0; + var result = ""; + while (match = regex.exec(data)) { + if (lastIdx !== match.index) { + result += data.substring(lastIdx, match.index); + } + result += map.get(match[0].charCodeAt(0)); + lastIdx = match.index + 1; + } + return result + data.substring(lastIdx); + }; + } + exports.escapeUTF8 = getEscaper(/[&<>'"]/g, xmlCodeMap); + exports.escapeAttribute = getEscaper(/["&\u00A0]/g, new Map([ + [34, """], + [38, "&"], + [160, " "] + ])); + exports.escapeText = getEscaper(/[&<>\u00A0]/g, new Map([ + [38, "&"], + [60, "<"], + [62, ">"], + [160, " "] + ])); +}); + +// node_modules/entities/lib/encode.js +var require_encode = __commonJS((exports) => { + var __importDefault = exports && exports.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { default: mod }; + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.encodeNonAsciiHTML = exports.encodeHTML = undefined; + var encode_html_js_1 = __importDefault(require_encode_html()); + var escape_js_1 = require_escape(); + var htmlReplacer = /[\t\n!-,./:-@[-`\f{-}$\x80-\uFFFF]/g; + function encodeHTML(data) { + return encodeHTMLTrieRe(htmlReplacer, data); + } + exports.encodeHTML = encodeHTML; + function encodeNonAsciiHTML(data) { + return encodeHTMLTrieRe(escape_js_1.xmlReplacer, data); + } + exports.encodeNonAsciiHTML = encodeNonAsciiHTML; + function encodeHTMLTrieRe(regExp, str) { + var ret = ""; + var lastIdx = 0; + var match; + while ((match = regExp.exec(str)) !== null) { + var i = match.index; + ret += str.substring(lastIdx, i); + var char = str.charCodeAt(i); + var next = encode_html_js_1.default.get(char); + if (typeof next === "object") { + if (i + 1 < str.length) { + var nextChar = str.charCodeAt(i + 1); + var value = typeof next.n === "number" ? next.n === nextChar ? next.o : undefined : next.n.get(nextChar); + if (value !== undefined) { + ret += value; + lastIdx = regExp.lastIndex += 1; + continue; + } + } + next = next.v; + } + if (next !== undefined) { + ret += next; + lastIdx = i + 1; + } else { + var cp = (0, escape_js_1.getCodePoint)(str, i); + ret += "&#x".concat(cp.toString(16), ";"); + lastIdx = regExp.lastIndex += Number(cp !== char); + } + } + return ret + str.substr(lastIdx); + } +}); + +// node_modules/entities/lib/index.js +var require_lib3 = __commonJS((exports) => { + Object.defineProperty(exports, "__esModule", { value: true }); + exports.decodeXMLStrict = exports.decodeHTML5Strict = exports.decodeHTML4Strict = exports.decodeHTML5 = exports.decodeHTML4 = exports.decodeHTMLAttribute = exports.decodeHTMLStrict = exports.decodeHTML = exports.decodeXML = exports.DecodingMode = exports.EntityDecoder = exports.encodeHTML5 = exports.encodeHTML4 = exports.encodeNonAsciiHTML = exports.encodeHTML = exports.escapeText = exports.escapeAttribute = exports.escapeUTF8 = exports.escape = exports.encodeXML = exports.encode = exports.decodeStrict = exports.decode = exports.EncodingMode = exports.EntityLevel = undefined; + var decode_js_1 = require_decode(); + var encode_js_1 = require_encode(); + var escape_js_1 = require_escape(); + var EntityLevel; + (function(EntityLevel2) { + EntityLevel2[EntityLevel2["XML"] = 0] = "XML"; + EntityLevel2[EntityLevel2["HTML"] = 1] = "HTML"; + })(EntityLevel = exports.EntityLevel || (exports.EntityLevel = {})); + var EncodingMode; + (function(EncodingMode2) { + EncodingMode2[EncodingMode2["UTF8"] = 0] = "UTF8"; + EncodingMode2[EncodingMode2["ASCII"] = 1] = "ASCII"; + EncodingMode2[EncodingMode2["Extensive"] = 2] = "Extensive"; + EncodingMode2[EncodingMode2["Attribute"] = 3] = "Attribute"; + EncodingMode2[EncodingMode2["Text"] = 4] = "Text"; + })(EncodingMode = exports.EncodingMode || (exports.EncodingMode = {})); + function decode(data, options) { + if (options === undefined) { + options = EntityLevel.XML; + } + var level = typeof options === "number" ? options : options.level; + if (level === EntityLevel.HTML) { + var mode = typeof options === "object" ? options.mode : undefined; + return (0, decode_js_1.decodeHTML)(data, mode); + } + return (0, decode_js_1.decodeXML)(data); + } + exports.decode = decode; + function decodeStrict(data, options) { + var _a; + if (options === undefined) { + options = EntityLevel.XML; + } + var opts = typeof options === "number" ? { level: options } : options; + (_a = opts.mode) !== null && _a !== undefined || (opts.mode = decode_js_1.DecodingMode.Strict); + return decode(data, opts); + } + exports.decodeStrict = decodeStrict; + function encode(data, options) { + if (options === undefined) { + options = EntityLevel.XML; + } + var opts = typeof options === "number" ? { level: options } : options; + if (opts.mode === EncodingMode.UTF8) + return (0, escape_js_1.escapeUTF8)(data); + if (opts.mode === EncodingMode.Attribute) + return (0, escape_js_1.escapeAttribute)(data); + if (opts.mode === EncodingMode.Text) + return (0, escape_js_1.escapeText)(data); + if (opts.level === EntityLevel.HTML) { + if (opts.mode === EncodingMode.ASCII) { + return (0, encode_js_1.encodeNonAsciiHTML)(data); + } + return (0, encode_js_1.encodeHTML)(data); + } + return (0, escape_js_1.encodeXML)(data); + } + exports.encode = encode; + var escape_js_2 = require_escape(); + Object.defineProperty(exports, "encodeXML", { enumerable: true, get: function() { + return escape_js_2.encodeXML; + } }); + Object.defineProperty(exports, "escape", { enumerable: true, get: function() { + return escape_js_2.escape; + } }); + Object.defineProperty(exports, "escapeUTF8", { enumerable: true, get: function() { + return escape_js_2.escapeUTF8; + } }); + Object.defineProperty(exports, "escapeAttribute", { enumerable: true, get: function() { + return escape_js_2.escapeAttribute; + } }); + Object.defineProperty(exports, "escapeText", { enumerable: true, get: function() { + return escape_js_2.escapeText; + } }); + var encode_js_2 = require_encode(); + Object.defineProperty(exports, "encodeHTML", { enumerable: true, get: function() { + return encode_js_2.encodeHTML; + } }); + Object.defineProperty(exports, "encodeNonAsciiHTML", { enumerable: true, get: function() { + return encode_js_2.encodeNonAsciiHTML; + } }); + Object.defineProperty(exports, "encodeHTML4", { enumerable: true, get: function() { + return encode_js_2.encodeHTML; + } }); + Object.defineProperty(exports, "encodeHTML5", { enumerable: true, get: function() { + return encode_js_2.encodeHTML; + } }); + var decode_js_2 = require_decode(); + Object.defineProperty(exports, "EntityDecoder", { enumerable: true, get: function() { + return decode_js_2.EntityDecoder; + } }); + Object.defineProperty(exports, "DecodingMode", { enumerable: true, get: function() { + return decode_js_2.DecodingMode; + } }); + Object.defineProperty(exports, "decodeXML", { enumerable: true, get: function() { + return decode_js_2.decodeXML; + } }); + Object.defineProperty(exports, "decodeHTML", { enumerable: true, get: function() { + return decode_js_2.decodeHTML; + } }); + Object.defineProperty(exports, "decodeHTMLStrict", { enumerable: true, get: function() { + return decode_js_2.decodeHTMLStrict; + } }); + Object.defineProperty(exports, "decodeHTMLAttribute", { enumerable: true, get: function() { + return decode_js_2.decodeHTMLAttribute; + } }); + Object.defineProperty(exports, "decodeHTML4", { enumerable: true, get: function() { + return decode_js_2.decodeHTML; + } }); + Object.defineProperty(exports, "decodeHTML5", { enumerable: true, get: function() { + return decode_js_2.decodeHTML; + } }); + Object.defineProperty(exports, "decodeHTML4Strict", { enumerable: true, get: function() { + return decode_js_2.decodeHTMLStrict; + } }); + Object.defineProperty(exports, "decodeHTML5Strict", { enumerable: true, get: function() { + return decode_js_2.decodeHTMLStrict; + } }); + Object.defineProperty(exports, "decodeXMLStrict", { enumerable: true, get: function() { + return decode_js_2.decodeXML; + } }); +}); + +// node_modules/dom-serializer/lib/foreignNames.js +var require_foreignNames = __commonJS((exports) => { + Object.defineProperty(exports, "__esModule", { value: true }); + exports.attributeNames = exports.elementNames = undefined; + exports.elementNames = new Map([ + "altGlyph", + "altGlyphDef", + "altGlyphItem", + "animateColor", + "animateMotion", + "animateTransform", + "clipPath", + "feBlend", + "feColorMatrix", + "feComponentTransfer", + "feComposite", + "feConvolveMatrix", + "feDiffuseLighting", + "feDisplacementMap", + "feDistantLight", + "feDropShadow", + "feFlood", + "feFuncA", + "feFuncB", + "feFuncG", + "feFuncR", + "feGaussianBlur", + "feImage", + "feMerge", + "feMergeNode", + "feMorphology", + "feOffset", + "fePointLight", + "feSpecularLighting", + "feSpotLight", + "feTile", + "feTurbulence", + "foreignObject", + "glyphRef", + "linearGradient", + "radialGradient", + "textPath" + ].map(function(val) { + return [val.toLowerCase(), val]; + })); + exports.attributeNames = new Map([ + "definitionURL", + "attributeName", + "attributeType", + "baseFrequency", + "baseProfile", + "calcMode", + "clipPathUnits", + "diffuseConstant", + "edgeMode", + "filterUnits", + "glyphRef", + "gradientTransform", + "gradientUnits", + "kernelMatrix", + "kernelUnitLength", + "keyPoints", + "keySplines", + "keyTimes", + "lengthAdjust", + "limitingConeAngle", + "markerHeight", + "markerUnits", + "markerWidth", + "maskContentUnits", + "maskUnits", + "numOctaves", + "pathLength", + "patternContentUnits", + "patternTransform", + "patternUnits", + "pointsAtX", + "pointsAtY", + "pointsAtZ", + "preserveAlpha", + "preserveAspectRatio", + "primitiveUnits", + "refX", + "refY", + "repeatCount", + "repeatDur", + "requiredExtensions", + "requiredFeatures", + "specularConstant", + "specularExponent", + "spreadMethod", + "startOffset", + "stdDeviation", + "stitchTiles", + "surfaceScale", + "systemLanguage", + "tableValues", + "targetX", + "targetY", + "textLength", + "viewBox", + "viewTarget", + "xChannelSelector", + "yChannelSelector", + "zoomAndPan" + ].map(function(val) { + return [val.toLowerCase(), val]; + })); +}); + +// node_modules/dom-serializer/lib/index.js +var require_lib4 = __commonJS((exports) => { + var __assign = exports && exports.__assign || function() { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length;i < n; i++) { + s = arguments[i]; + for (var p in s) + if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); + }; + var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === undefined) + k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === undefined) + k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar = exports && exports.__importStar || function(mod) { + if (mod && mod.__esModule) + return mod; + var result = {}; + if (mod != null) { + for (var k in mod) + if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) + __createBinding(result, mod, k); + } + __setModuleDefault(result, mod); + return result; + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.render = undefined; + var ElementType = __importStar(require_lib()); + var entities_1 = require_lib3(); + var foreignNames_js_1 = require_foreignNames(); + var unencodedElements = new Set([ + "style", + "script", + "xmp", + "iframe", + "noembed", + "noframes", + "plaintext", + "noscript" + ]); + function replaceQuotes(value) { + return value.replace(/"/g, """); + } + function formatAttributes(attributes, opts) { + var _a; + if (!attributes) + return; + var encode = ((_a = opts.encodeEntities) !== null && _a !== undefined ? _a : opts.decodeEntities) === false ? replaceQuotes : opts.xmlMode || opts.encodeEntities !== "utf8" ? entities_1.encodeXML : entities_1.escapeAttribute; + return Object.keys(attributes).map(function(key) { + var _a2, _b; + var value = (_a2 = attributes[key]) !== null && _a2 !== undefined ? _a2 : ""; + if (opts.xmlMode === "foreign") { + key = (_b = foreignNames_js_1.attributeNames.get(key)) !== null && _b !== undefined ? _b : key; + } + if (!opts.emptyAttrs && !opts.xmlMode && value === "") { + return key; + } + return "".concat(key, "=\"").concat(encode(value), "\""); + }).join(" "); + } + var singleTag = new Set([ + "area", + "base", + "basefont", + "br", + "col", + "command", + "embed", + "frame", + "hr", + "img", + "input", + "isindex", + "keygen", + "link", + "meta", + "param", + "source", + "track", + "wbr" + ]); + function render(node, options) { + if (options === undefined) { + options = {}; + } + var nodes = "length" in node ? node : [node]; + var output = ""; + for (var i = 0;i < nodes.length; i++) { + output += renderNode(nodes[i], options); + } + return output; + } + exports.render = render; + exports.default = render; + function renderNode(node, options) { + switch (node.type) { + case ElementType.Root: + return render(node.children, options); + case ElementType.Doctype: + case ElementType.Directive: + return renderDirective(node); + case ElementType.Comment: + return renderComment(node); + case ElementType.CDATA: + return renderCdata(node); + case ElementType.Script: + case ElementType.Style: + case ElementType.Tag: + return renderTag(node, options); + case ElementType.Text: + return renderText(node, options); + } + } + var foreignModeIntegrationPoints = new Set([ + "mi", + "mo", + "mn", + "ms", + "mtext", + "annotation-xml", + "foreignObject", + "desc", + "title" + ]); + var foreignElements = new Set(["svg", "math"]); + function renderTag(elem, opts) { + var _a; + if (opts.xmlMode === "foreign") { + elem.name = (_a = foreignNames_js_1.elementNames.get(elem.name)) !== null && _a !== undefined ? _a : elem.name; + if (elem.parent && foreignModeIntegrationPoints.has(elem.parent.name)) { + opts = __assign(__assign({}, opts), { xmlMode: false }); + } + } + if (!opts.xmlMode && foreignElements.has(elem.name)) { + opts = __assign(__assign({}, opts), { xmlMode: "foreign" }); + } + var tag = "<".concat(elem.name); + var attribs = formatAttributes(elem.attribs, opts); + if (attribs) { + tag += " ".concat(attribs); + } + if (elem.children.length === 0 && (opts.xmlMode ? opts.selfClosingTags !== false : opts.selfClosingTags && singleTag.has(elem.name))) { + if (!opts.xmlMode) + tag += " "; + tag += "/>"; + } else { + tag += ">"; + if (elem.children.length > 0) { + tag += render(elem.children, opts); + } + if (opts.xmlMode || !singleTag.has(elem.name)) { + tag += ""); + } + } + return tag; + } + function renderDirective(elem) { + return "<".concat(elem.data, ">"); + } + function renderText(elem, opts) { + var _a; + var data = elem.data || ""; + if (((_a = opts.encodeEntities) !== null && _a !== undefined ? _a : opts.decodeEntities) !== false && !(!opts.xmlMode && elem.parent && unencodedElements.has(elem.parent.name))) { + data = opts.xmlMode || opts.encodeEntities !== "utf8" ? (0, entities_1.encodeXML)(data) : (0, entities_1.escapeText)(data); + } + return data; + } + function renderCdata(elem) { + return ""); + } + function renderComment(elem) { + return ""); + } +}); + +// node_modules/domutils/lib/stringify.js +var require_stringify = __commonJS((exports) => { + var __importDefault = exports && exports.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { default: mod }; + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.innerText = exports.textContent = exports.getText = exports.getInnerHTML = exports.getOuterHTML = undefined; + var domhandler_1 = require_lib2(); + var dom_serializer_1 = __importDefault(require_lib4()); + var domelementtype_1 = require_lib(); + function getOuterHTML(node, options) { + return (0, dom_serializer_1.default)(node, options); + } + exports.getOuterHTML = getOuterHTML; + function getInnerHTML(node, options) { + return (0, domhandler_1.hasChildren)(node) ? node.children.map(function(node2) { + return getOuterHTML(node2, options); + }).join("") : ""; + } + exports.getInnerHTML = getInnerHTML; + function getText(node) { + if (Array.isArray(node)) + return node.map(getText).join(""); + if ((0, domhandler_1.isTag)(node)) + return node.name === "br" ? "\n" : getText(node.children); + if ((0, domhandler_1.isCDATA)(node)) + return getText(node.children); + if ((0, domhandler_1.isText)(node)) + return node.data; + return ""; + } + exports.getText = getText; + function textContent(node) { + if (Array.isArray(node)) + return node.map(textContent).join(""); + if ((0, domhandler_1.hasChildren)(node) && !(0, domhandler_1.isComment)(node)) { + return textContent(node.children); + } + if ((0, domhandler_1.isText)(node)) + return node.data; + return ""; + } + exports.textContent = textContent; + function innerText(node) { + if (Array.isArray(node)) + return node.map(innerText).join(""); + if ((0, domhandler_1.hasChildren)(node) && (node.type === domelementtype_1.ElementType.Tag || (0, domhandler_1.isCDATA)(node))) { + return innerText(node.children); + } + if ((0, domhandler_1.isText)(node)) + return node.data; + return ""; + } + exports.innerText = innerText; +}); + +// node_modules/domutils/lib/traversal.js +var require_traversal = __commonJS((exports) => { + Object.defineProperty(exports, "__esModule", { value: true }); + exports.prevElementSibling = exports.nextElementSibling = exports.getName = exports.hasAttrib = exports.getAttributeValue = exports.getSiblings = exports.getParent = exports.getChildren = undefined; + var domhandler_1 = require_lib2(); + function getChildren(elem) { + return (0, domhandler_1.hasChildren)(elem) ? elem.children : []; + } + exports.getChildren = getChildren; + function getParent(elem) { + return elem.parent || null; + } + exports.getParent = getParent; + function getSiblings(elem) { + var _a, _b; + var parent = getParent(elem); + if (parent != null) + return getChildren(parent); + var siblings = [elem]; + var { prev, next } = elem; + while (prev != null) { + siblings.unshift(prev); + _a = prev, prev = _a.prev; + } + while (next != null) { + siblings.push(next); + _b = next, next = _b.next; + } + return siblings; + } + exports.getSiblings = getSiblings; + function getAttributeValue(elem, name) { + var _a; + return (_a = elem.attribs) === null || _a === undefined ? undefined : _a[name]; + } + exports.getAttributeValue = getAttributeValue; + function hasAttrib(elem, name) { + return elem.attribs != null && Object.prototype.hasOwnProperty.call(elem.attribs, name) && elem.attribs[name] != null; + } + exports.hasAttrib = hasAttrib; + function getName(elem) { + return elem.name; + } + exports.getName = getName; + function nextElementSibling(elem) { + var _a; + var next = elem.next; + while (next !== null && !(0, domhandler_1.isTag)(next)) + _a = next, next = _a.next; + return next; + } + exports.nextElementSibling = nextElementSibling; + function prevElementSibling(elem) { + var _a; + var prev = elem.prev; + while (prev !== null && !(0, domhandler_1.isTag)(prev)) + _a = prev, prev = _a.prev; + return prev; + } + exports.prevElementSibling = prevElementSibling; +}); + +// node_modules/domutils/lib/manipulation.js +var require_manipulation = __commonJS((exports) => { + Object.defineProperty(exports, "__esModule", { value: true }); + exports.prepend = exports.prependChild = exports.append = exports.appendChild = exports.replaceElement = exports.removeElement = undefined; + function removeElement(elem) { + if (elem.prev) + elem.prev.next = elem.next; + if (elem.next) + elem.next.prev = elem.prev; + if (elem.parent) { + var childs = elem.parent.children; + var childsIndex = childs.lastIndexOf(elem); + if (childsIndex >= 0) { + childs.splice(childsIndex, 1); + } + } + elem.next = null; + elem.prev = null; + elem.parent = null; + } + exports.removeElement = removeElement; + function replaceElement(elem, replacement) { + var prev = replacement.prev = elem.prev; + if (prev) { + prev.next = replacement; + } + var next = replacement.next = elem.next; + if (next) { + next.prev = replacement; + } + var parent = replacement.parent = elem.parent; + if (parent) { + var childs = parent.children; + childs[childs.lastIndexOf(elem)] = replacement; + elem.parent = null; + } + } + exports.replaceElement = replaceElement; + function appendChild(parent, child) { + removeElement(child); + child.next = null; + child.parent = parent; + if (parent.children.push(child) > 1) { + var sibling = parent.children[parent.children.length - 2]; + sibling.next = child; + child.prev = sibling; + } else { + child.prev = null; + } + } + exports.appendChild = appendChild; + function append(elem, next) { + removeElement(next); + var parent = elem.parent; + var currNext = elem.next; + next.next = currNext; + next.prev = elem; + elem.next = next; + next.parent = parent; + if (currNext) { + currNext.prev = next; + if (parent) { + var childs = parent.children; + childs.splice(childs.lastIndexOf(currNext), 0, next); + } + } else if (parent) { + parent.children.push(next); + } + } + exports.append = append; + function prependChild(parent, child) { + removeElement(child); + child.parent = parent; + child.prev = null; + if (parent.children.unshift(child) !== 1) { + var sibling = parent.children[1]; + sibling.prev = child; + child.next = sibling; + } else { + child.next = null; + } + } + exports.prependChild = prependChild; + function prepend(elem, prev) { + removeElement(prev); + var parent = elem.parent; + if (parent) { + var childs = parent.children; + childs.splice(childs.indexOf(elem), 0, prev); + } + if (elem.prev) { + elem.prev.next = prev; + } + prev.parent = parent; + prev.prev = elem.prev; + prev.next = elem; + elem.prev = prev; + } + exports.prepend = prepend; +}); + +// node_modules/domutils/lib/querying.js +var require_querying = __commonJS((exports) => { + Object.defineProperty(exports, "__esModule", { value: true }); + exports.findAll = exports.existsOne = exports.findOne = exports.findOneChild = exports.find = exports.filter = undefined; + var domhandler_1 = require_lib2(); + function filter(test, node, recurse, limit) { + if (recurse === undefined) { + recurse = true; + } + if (limit === undefined) { + limit = Infinity; + } + return find(test, Array.isArray(node) ? node : [node], recurse, limit); + } + exports.filter = filter; + function find(test, nodes, recurse, limit) { + var result = []; + var nodeStack = [nodes]; + var indexStack = [0]; + for (;; ) { + if (indexStack[0] >= nodeStack[0].length) { + if (indexStack.length === 1) { + return result; + } + nodeStack.shift(); + indexStack.shift(); + continue; + } + var elem = nodeStack[0][indexStack[0]++]; + if (test(elem)) { + result.push(elem); + if (--limit <= 0) + return result; + } + if (recurse && (0, domhandler_1.hasChildren)(elem) && elem.children.length > 0) { + indexStack.unshift(0); + nodeStack.unshift(elem.children); + } + } + } + exports.find = find; + function findOneChild(test, nodes) { + return nodes.find(test); + } + exports.findOneChild = findOneChild; + function findOne(test, nodes, recurse) { + if (recurse === undefined) { + recurse = true; + } + var elem = null; + for (var i = 0;i < nodes.length && !elem; i++) { + var node = nodes[i]; + if (!(0, domhandler_1.isTag)(node)) { + continue; + } else if (test(node)) { + elem = node; + } else if (recurse && node.children.length > 0) { + elem = findOne(test, node.children, true); + } + } + return elem; + } + exports.findOne = findOne; + function existsOne(test, nodes) { + return nodes.some(function(checked) { + return (0, domhandler_1.isTag)(checked) && (test(checked) || existsOne(test, checked.children)); + }); + } + exports.existsOne = existsOne; + function findAll(test, nodes) { + var result = []; + var nodeStack = [nodes]; + var indexStack = [0]; + for (;; ) { + if (indexStack[0] >= nodeStack[0].length) { + if (nodeStack.length === 1) { + return result; + } + nodeStack.shift(); + indexStack.shift(); + continue; + } + var elem = nodeStack[0][indexStack[0]++]; + if (!(0, domhandler_1.isTag)(elem)) + continue; + if (test(elem)) + result.push(elem); + if (elem.children.length > 0) { + indexStack.unshift(0); + nodeStack.unshift(elem.children); + } + } + } + exports.findAll = findAll; +}); + +// node_modules/domutils/lib/legacy.js +var require_legacy = __commonJS((exports) => { + Object.defineProperty(exports, "__esModule", { value: true }); + exports.getElementsByTagType = exports.getElementsByTagName = exports.getElementById = exports.getElements = exports.testElement = undefined; + var domhandler_1 = require_lib2(); + var querying_js_1 = require_querying(); + var Checks = { + tag_name: function(name) { + if (typeof name === "function") { + return function(elem) { + return (0, domhandler_1.isTag)(elem) && name(elem.name); + }; + } else if (name === "*") { + return domhandler_1.isTag; + } + return function(elem) { + return (0, domhandler_1.isTag)(elem) && elem.name === name; + }; + }, + tag_type: function(type) { + if (typeof type === "function") { + return function(elem) { + return type(elem.type); + }; + } + return function(elem) { + return elem.type === type; + }; + }, + tag_contains: function(data) { + if (typeof data === "function") { + return function(elem) { + return (0, domhandler_1.isText)(elem) && data(elem.data); + }; + } + return function(elem) { + return (0, domhandler_1.isText)(elem) && elem.data === data; + }; + } + }; + function getAttribCheck(attrib, value) { + if (typeof value === "function") { + return function(elem) { + return (0, domhandler_1.isTag)(elem) && value(elem.attribs[attrib]); + }; + } + return function(elem) { + return (0, domhandler_1.isTag)(elem) && elem.attribs[attrib] === value; + }; + } + function combineFuncs(a, b) { + return function(elem) { + return a(elem) || b(elem); + }; + } + function compileTest(options) { + var funcs = Object.keys(options).map(function(key) { + var value = options[key]; + return Object.prototype.hasOwnProperty.call(Checks, key) ? Checks[key](value) : getAttribCheck(key, value); + }); + return funcs.length === 0 ? null : funcs.reduce(combineFuncs); + } + function testElement(options, node) { + var test = compileTest(options); + return test ? test(node) : true; + } + exports.testElement = testElement; + function getElements(options, nodes, recurse, limit) { + if (limit === undefined) { + limit = Infinity; + } + var test = compileTest(options); + return test ? (0, querying_js_1.filter)(test, nodes, recurse, limit) : []; + } + exports.getElements = getElements; + function getElementById(id, nodes, recurse) { + if (recurse === undefined) { + recurse = true; + } + if (!Array.isArray(nodes)) + nodes = [nodes]; + return (0, querying_js_1.findOne)(getAttribCheck("id", id), nodes, recurse); + } + exports.getElementById = getElementById; + function getElementsByTagName(tagName, nodes, recurse, limit) { + if (recurse === undefined) { + recurse = true; + } + if (limit === undefined) { + limit = Infinity; + } + return (0, querying_js_1.filter)(Checks["tag_name"](tagName), nodes, recurse, limit); + } + exports.getElementsByTagName = getElementsByTagName; + function getElementsByTagType(type, nodes, recurse, limit) { + if (recurse === undefined) { + recurse = true; + } + if (limit === undefined) { + limit = Infinity; + } + return (0, querying_js_1.filter)(Checks["tag_type"](type), nodes, recurse, limit); + } + exports.getElementsByTagType = getElementsByTagType; +}); + +// node_modules/domutils/lib/helpers.js +var require_helpers = __commonJS((exports) => { + Object.defineProperty(exports, "__esModule", { value: true }); + exports.uniqueSort = exports.compareDocumentPosition = exports.DocumentPosition = exports.removeSubsets = undefined; + var domhandler_1 = require_lib2(); + function removeSubsets(nodes) { + var idx = nodes.length; + while (--idx >= 0) { + var node = nodes[idx]; + if (idx > 0 && nodes.lastIndexOf(node, idx - 1) >= 0) { + nodes.splice(idx, 1); + continue; + } + for (var ancestor = node.parent;ancestor; ancestor = ancestor.parent) { + if (nodes.includes(ancestor)) { + nodes.splice(idx, 1); + break; + } + } + } + return nodes; + } + exports.removeSubsets = removeSubsets; + var DocumentPosition; + (function(DocumentPosition2) { + DocumentPosition2[DocumentPosition2["DISCONNECTED"] = 1] = "DISCONNECTED"; + DocumentPosition2[DocumentPosition2["PRECEDING"] = 2] = "PRECEDING"; + DocumentPosition2[DocumentPosition2["FOLLOWING"] = 4] = "FOLLOWING"; + DocumentPosition2[DocumentPosition2["CONTAINS"] = 8] = "CONTAINS"; + DocumentPosition2[DocumentPosition2["CONTAINED_BY"] = 16] = "CONTAINED_BY"; + })(DocumentPosition = exports.DocumentPosition || (exports.DocumentPosition = {})); + function compareDocumentPosition(nodeA, nodeB) { + var aParents = []; + var bParents = []; + if (nodeA === nodeB) { + return 0; + } + var current = (0, domhandler_1.hasChildren)(nodeA) ? nodeA : nodeA.parent; + while (current) { + aParents.unshift(current); + current = current.parent; + } + current = (0, domhandler_1.hasChildren)(nodeB) ? nodeB : nodeB.parent; + while (current) { + bParents.unshift(current); + current = current.parent; + } + var maxIdx = Math.min(aParents.length, bParents.length); + var idx = 0; + while (idx < maxIdx && aParents[idx] === bParents[idx]) { + idx++; + } + if (idx === 0) { + return DocumentPosition.DISCONNECTED; + } + var sharedParent = aParents[idx - 1]; + var siblings = sharedParent.children; + var aSibling = aParents[idx]; + var bSibling = bParents[idx]; + if (siblings.indexOf(aSibling) > siblings.indexOf(bSibling)) { + if (sharedParent === nodeB) { + return DocumentPosition.FOLLOWING | DocumentPosition.CONTAINED_BY; + } + return DocumentPosition.FOLLOWING; + } + if (sharedParent === nodeA) { + return DocumentPosition.PRECEDING | DocumentPosition.CONTAINS; + } + return DocumentPosition.PRECEDING; + } + exports.compareDocumentPosition = compareDocumentPosition; + function uniqueSort(nodes) { + nodes = nodes.filter(function(node, i, arr) { + return !arr.includes(node, i + 1); + }); + nodes.sort(function(a, b) { + var relative = compareDocumentPosition(a, b); + if (relative & DocumentPosition.PRECEDING) { + return -1; + } else if (relative & DocumentPosition.FOLLOWING) { + return 1; + } + return 0; + }); + return nodes; + } + exports.uniqueSort = uniqueSort; +}); + +// node_modules/domutils/lib/feeds.js +var require_feeds = __commonJS((exports) => { + Object.defineProperty(exports, "__esModule", { value: true }); + exports.getFeed = undefined; + var stringify_js_1 = require_stringify(); + var legacy_js_1 = require_legacy(); + function getFeed(doc) { + var feedRoot = getOneElement(isValidFeed, doc); + return !feedRoot ? null : feedRoot.name === "feed" ? getAtomFeed(feedRoot) : getRssFeed(feedRoot); + } + exports.getFeed = getFeed; + function getAtomFeed(feedRoot) { + var _a; + var childs = feedRoot.children; + var feed = { + type: "atom", + items: (0, legacy_js_1.getElementsByTagName)("entry", childs).map(function(item) { + var _a2; + var children = item.children; + var entry = { media: getMediaElements(children) }; + addConditionally(entry, "id", "id", children); + addConditionally(entry, "title", "title", children); + var href2 = (_a2 = getOneElement("link", children)) === null || _a2 === undefined ? undefined : _a2.attribs["href"]; + if (href2) { + entry.link = href2; + } + var description = fetch2("summary", children) || fetch2("content", children); + if (description) { + entry.description = description; + } + var pubDate = fetch2("updated", children); + if (pubDate) { + entry.pubDate = new Date(pubDate); + } + return entry; + }) + }; + addConditionally(feed, "id", "id", childs); + addConditionally(feed, "title", "title", childs); + var href = (_a = getOneElement("link", childs)) === null || _a === undefined ? undefined : _a.attribs["href"]; + if (href) { + feed.link = href; + } + addConditionally(feed, "description", "subtitle", childs); + var updated = fetch2("updated", childs); + if (updated) { + feed.updated = new Date(updated); + } + addConditionally(feed, "author", "email", childs, true); + return feed; + } + function getRssFeed(feedRoot) { + var _a, _b; + var childs = (_b = (_a = getOneElement("channel", feedRoot.children)) === null || _a === undefined ? undefined : _a.children) !== null && _b !== undefined ? _b : []; + var feed = { + type: feedRoot.name.substr(0, 3), + id: "", + items: (0, legacy_js_1.getElementsByTagName)("item", feedRoot.children).map(function(item) { + var children = item.children; + var entry = { media: getMediaElements(children) }; + addConditionally(entry, "id", "guid", children); + addConditionally(entry, "title", "title", children); + addConditionally(entry, "link", "link", children); + addConditionally(entry, "description", "description", children); + var pubDate = fetch2("pubDate", children) || fetch2("dc:date", children); + if (pubDate) + entry.pubDate = new Date(pubDate); + return entry; + }) + }; + addConditionally(feed, "title", "title", childs); + addConditionally(feed, "link", "link", childs); + addConditionally(feed, "description", "description", childs); + var updated = fetch2("lastBuildDate", childs); + if (updated) { + feed.updated = new Date(updated); + } + addConditionally(feed, "author", "managingEditor", childs, true); + return feed; + } + var MEDIA_KEYS_STRING = ["url", "type", "lang"]; + var MEDIA_KEYS_INT = [ + "fileSize", + "bitrate", + "framerate", + "samplingrate", + "channels", + "duration", + "height", + "width" + ]; + function getMediaElements(where) { + return (0, legacy_js_1.getElementsByTagName)("media:content", where).map(function(elem) { + var attribs = elem.attribs; + var media = { + medium: attribs["medium"], + isDefault: !!attribs["isDefault"] + }; + for (var _i = 0, MEDIA_KEYS_STRING_1 = MEDIA_KEYS_STRING;_i < MEDIA_KEYS_STRING_1.length; _i++) { + var attrib = MEDIA_KEYS_STRING_1[_i]; + if (attribs[attrib]) { + media[attrib] = attribs[attrib]; + } + } + for (var _a = 0, MEDIA_KEYS_INT_1 = MEDIA_KEYS_INT;_a < MEDIA_KEYS_INT_1.length; _a++) { + var attrib = MEDIA_KEYS_INT_1[_a]; + if (attribs[attrib]) { + media[attrib] = parseInt(attribs[attrib], 10); + } + } + if (attribs["expression"]) { + media.expression = attribs["expression"]; + } + return media; + }); + } + function getOneElement(tagName, node) { + return (0, legacy_js_1.getElementsByTagName)(tagName, node, true, 1)[0]; + } + function fetch2(tagName, where, recurse) { + if (recurse === undefined) { + recurse = false; + } + return (0, stringify_js_1.textContent)((0, legacy_js_1.getElementsByTagName)(tagName, where, recurse, 1)).trim(); + } + function addConditionally(obj, prop, tagName, where, recurse) { + if (recurse === undefined) { + recurse = false; + } + var val = fetch2(tagName, where, recurse); + if (val) + obj[prop] = val; + } + function isValidFeed(value) { + return value === "rss" || value === "feed" || value === "rdf:RDF"; + } +}); + +// node_modules/domutils/lib/index.js +var require_lib5 = __commonJS((exports) => { + var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === undefined) + k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === undefined) + k2 = k; + o[k2] = m[k]; + }); + var __exportStar = exports && exports.__exportStar || function(m, exports2) { + for (var p in m) + if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports2, p)) + __createBinding(exports2, m, p); + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.hasChildren = exports.isDocument = exports.isComment = exports.isText = exports.isCDATA = exports.isTag = undefined; + __exportStar(require_stringify(), exports); + __exportStar(require_traversal(), exports); + __exportStar(require_manipulation(), exports); + __exportStar(require_querying(), exports); + __exportStar(require_legacy(), exports); + __exportStar(require_helpers(), exports); + __exportStar(require_feeds(), exports); + var domhandler_1 = require_lib2(); + Object.defineProperty(exports, "isTag", { enumerable: true, get: function() { + return domhandler_1.isTag; + } }); + Object.defineProperty(exports, "isCDATA", { enumerable: true, get: function() { + return domhandler_1.isCDATA; + } }); + Object.defineProperty(exports, "isText", { enumerable: true, get: function() { + return domhandler_1.isText; + } }); + Object.defineProperty(exports, "isComment", { enumerable: true, get: function() { + return domhandler_1.isComment; + } }); + Object.defineProperty(exports, "isDocument", { enumerable: true, get: function() { + return domhandler_1.isDocument; + } }); + Object.defineProperty(exports, "hasChildren", { enumerable: true, get: function() { + return domhandler_1.hasChildren; + } }); +}); + +// node_modules/htmlparser2/lib/index.js +var require_lib6 = __commonJS((exports) => { + var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === undefined) + k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m[k]; + } }; + } + Object.defineProperty(o, k2, desc); + } : function(o, m, k, k2) { + if (k2 === undefined) + k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar = exports && exports.__importStar || function(mod) { + if (mod && mod.__esModule) + return mod; + var result = {}; + if (mod != null) { + for (var k in mod) + if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) + __createBinding(result, mod, k); + } + __setModuleDefault(result, mod); + return result; + }; + var __importDefault = exports && exports.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { default: mod }; + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.DomUtils = exports.parseFeed = exports.getFeed = exports.ElementType = exports.Tokenizer = exports.createDomStream = exports.parseDOM = exports.parseDocument = exports.DefaultHandler = exports.DomHandler = exports.Parser = undefined; + var Parser_js_1 = require_Parser2(); + var Parser_js_2 = require_Parser2(); + Object.defineProperty(exports, "Parser", { enumerable: true, get: function() { + return Parser_js_2.Parser; + } }); + var domhandler_1 = require_lib2(); + var domhandler_2 = require_lib2(); + Object.defineProperty(exports, "DomHandler", { enumerable: true, get: function() { + return domhandler_2.DomHandler; + } }); + Object.defineProperty(exports, "DefaultHandler", { enumerable: true, get: function() { + return domhandler_2.DomHandler; + } }); + function parseDocument(data, options) { + var handler = new domhandler_1.DomHandler(undefined, options); + new Parser_js_1.Parser(handler, options).end(data); + return handler.root; + } + exports.parseDocument = parseDocument; + function parseDOM(data, options) { + return parseDocument(data, options).children; + } + exports.parseDOM = parseDOM; + function createDomStream(callback, options, elementCallback) { + var handler = new domhandler_1.DomHandler(callback, options, elementCallback); + return new Parser_js_1.Parser(handler, options); + } + exports.createDomStream = createDomStream; + var Tokenizer_js_1 = require_Tokenizer(); + Object.defineProperty(exports, "Tokenizer", { enumerable: true, get: function() { + return __importDefault(Tokenizer_js_1).default; + } }); + exports.ElementType = __importStar(require_lib()); + var domutils_1 = require_lib5(); + var domutils_2 = require_lib5(); + Object.defineProperty(exports, "getFeed", { enumerable: true, get: function() { + return domutils_2.getFeed; + } }); + var parseFeedDefaultOptions = { xmlMode: true }; + function parseFeed(feed, options) { + if (options === undefined) { + options = parseFeedDefaultOptions; + } + return (0, domutils_1.getFeed)(parseDOM(feed, options)); + } + exports.parseFeed = parseFeed; + exports.DomUtils = __importStar(require_lib5()); +}); + +// node_modules/escape-string-regexp/index.js +var require_escape_string_regexp = __commonJS((exports, module) => { + module.exports = (string) => { + if (typeof string !== "string") { + throw new TypeError("Expected a string"); + } + return string.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&").replace(/-/g, "\\x2d"); + }; +}); + +// node_modules/is-plain-object/dist/is-plain-object.js +var require_is_plain_object = __commonJS((exports) => { + Object.defineProperty(exports, "__esModule", { value: true }); + /*! + * is-plain-object + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. + */ + function isObject(o) { + return Object.prototype.toString.call(o) === "[object Object]"; + } + function isPlainObject(o) { + var ctor, prot; + if (isObject(o) === false) + return false; + ctor = o.constructor; + if (ctor === undefined) + return true; + prot = ctor.prototype; + if (isObject(prot) === false) + return false; + if (prot.hasOwnProperty("isPrototypeOf") === false) { + return false; + } + return true; + } + exports.isPlainObject = isPlainObject; +}); + +// node_modules/deepmerge/dist/cjs.js +var require_cjs = __commonJS((exports, module) => { + var isMergeableObject = function isMergeableObject(value) { + return isNonNullObject(value) && !isSpecial(value); + }; + function isNonNullObject(value) { + return !!value && typeof value === "object"; + } + function isSpecial(value) { + var stringValue = Object.prototype.toString.call(value); + return stringValue === "[object RegExp]" || stringValue === "[object Date]" || isReactElement(value); + } + var canUseSymbol = typeof Symbol === "function" && Symbol.for; + var REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for("react.element") : 60103; + function isReactElement(value) { + return value.$$typeof === REACT_ELEMENT_TYPE; + } + function emptyTarget(val) { + return Array.isArray(val) ? [] : {}; + } + function cloneUnlessOtherwiseSpecified(value, options) { + return options.clone !== false && options.isMergeableObject(value) ? deepmerge(emptyTarget(value), value, options) : value; + } + function defaultArrayMerge(target, source, options) { + return target.concat(source).map(function(element) { + return cloneUnlessOtherwiseSpecified(element, options); + }); + } + function getMergeFunction(key, options) { + if (!options.customMerge) { + return deepmerge; + } + var customMerge = options.customMerge(key); + return typeof customMerge === "function" ? customMerge : deepmerge; + } + function getEnumerableOwnPropertySymbols(target) { + return Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols(target).filter(function(symbol) { + return Object.propertyIsEnumerable.call(target, symbol); + }) : []; + } + function getKeys(target) { + return Object.keys(target).concat(getEnumerableOwnPropertySymbols(target)); + } + function propertyIsOnObject(object, property) { + try { + return property in object; + } catch (_) { + return false; + } + } + function propertyIsUnsafe(target, key) { + return propertyIsOnObject(target, key) && !(Object.hasOwnProperty.call(target, key) && Object.propertyIsEnumerable.call(target, key)); + } + function mergeObject(target, source, options) { + var destination = {}; + if (options.isMergeableObject(target)) { + getKeys(target).forEach(function(key) { + destination[key] = cloneUnlessOtherwiseSpecified(target[key], options); + }); + } + getKeys(source).forEach(function(key) { + if (propertyIsUnsafe(target, key)) { + return; + } + if (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) { + destination[key] = getMergeFunction(key, options)(target[key], source[key], options); + } else { + destination[key] = cloneUnlessOtherwiseSpecified(source[key], options); + } + }); + return destination; + } + function deepmerge(target, source, options) { + options = options || {}; + options.arrayMerge = options.arrayMerge || defaultArrayMerge; + options.isMergeableObject = options.isMergeableObject || isMergeableObject; + options.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified; + var sourceIsArray = Array.isArray(source); + var targetIsArray = Array.isArray(target); + var sourceAndTargetTypesMatch = sourceIsArray === targetIsArray; + if (!sourceAndTargetTypesMatch) { + return cloneUnlessOtherwiseSpecified(source, options); + } else if (sourceIsArray) { + return options.arrayMerge(target, source, options); + } else { + return mergeObject(target, source, options); + } + } + deepmerge.all = function deepmergeAll(array, options) { + if (!Array.isArray(array)) { + throw new Error("first argument should be an array"); + } + return array.reduce(function(prev, next) { + return deepmerge(prev, next, options); + }, {}); + }; + var deepmerge_1 = deepmerge; + module.exports = deepmerge_1; +}); + +// node_modules/parse-srcset/src/parse-srcset.js +var require_parse_srcset = __commonJS((exports, module) => { + (function(root, factory) { + if (typeof define === "function" && define.amd) { + define([], factory); + } else if (typeof module === "object" && module.exports) { + module.exports = factory(); + } else { + root.parseSrcset = factory(); + } + })(exports, function() { + return function(input) { + function isSpace(c2) { + return c2 === " " || c2 === "\t" || c2 === ` +` || c2 === "\f" || c2 === `\r`; + } + function collectCharacters(regEx) { + var chars, match = regEx.exec(input.substring(pos)); + if (match) { + chars = match[0]; + pos += chars.length; + return chars; + } + } + var inputLength = input.length, regexLeadingSpaces = /^[ \t\n\r\u000c]+/, regexLeadingCommasOrSpaces = /^[, \t\n\r\u000c]+/, regexLeadingNotSpaces = /^[^ \t\n\r\u000c]+/, regexTrailingCommas = /[,]+$/, regexNonNegativeInteger = /^\d+$/, regexFloatingPoint = /^-?(?:[0-9]+|[0-9]*\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/, url, descriptors, currentDescriptor, state, c, pos = 0, candidates = []; + while (true) { + collectCharacters(regexLeadingCommasOrSpaces); + if (pos >= inputLength) { + return candidates; + } + url = collectCharacters(regexLeadingNotSpaces); + descriptors = []; + if (url.slice(-1) === ",") { + url = url.replace(regexTrailingCommas, ""); + parseDescriptors(); + } else { + tokenize(); + } + } + function tokenize() { + collectCharacters(regexLeadingSpaces); + currentDescriptor = ""; + state = "in descriptor"; + while (true) { + c = input.charAt(pos); + if (state === "in descriptor") { + if (isSpace(c)) { + if (currentDescriptor) { + descriptors.push(currentDescriptor); + currentDescriptor = ""; + state = "after descriptor"; + } + } else if (c === ",") { + pos += 1; + if (currentDescriptor) { + descriptors.push(currentDescriptor); + } + parseDescriptors(); + return; + } else if (c === "(") { + currentDescriptor = currentDescriptor + c; + state = "in parens"; + } else if (c === "") { + if (currentDescriptor) { + descriptors.push(currentDescriptor); + } + parseDescriptors(); + return; + } else { + currentDescriptor = currentDescriptor + c; + } + } else if (state === "in parens") { + if (c === ")") { + currentDescriptor = currentDescriptor + c; + state = "in descriptor"; + } else if (c === "") { + descriptors.push(currentDescriptor); + parseDescriptors(); + return; + } else { + currentDescriptor = currentDescriptor + c; + } + } else if (state === "after descriptor") { + if (isSpace(c)) { + } else if (c === "") { + parseDescriptors(); + return; + } else { + state = "in descriptor"; + pos -= 1; + } + } + pos += 1; + } + } + function parseDescriptors() { + var pError = false, w, d, h, i, candidate = {}, desc, lastChar, value, intVal, floatVal; + for (i = 0;i < descriptors.length; i++) { + desc = descriptors[i]; + lastChar = desc[desc.length - 1]; + value = desc.substring(0, desc.length - 1); + intVal = parseInt(value, 10); + floatVal = parseFloat(value); + if (regexNonNegativeInteger.test(value) && lastChar === "w") { + if (w || d) { + pError = true; + } + if (intVal === 0) { + pError = true; + } else { + w = intVal; + } + } else if (regexFloatingPoint.test(value) && lastChar === "x") { + if (w || d || h) { + pError = true; + } + if (floatVal < 0) { + pError = true; + } else { + d = floatVal; + } + } else if (regexNonNegativeInteger.test(value) && lastChar === "h") { + if (h || d) { + pError = true; + } + if (intVal === 0) { + pError = true; + } else { + h = intVal; + } + } else { + pError = true; + } + } + if (!pError) { + candidate.url = url; + if (w) { + candidate.w = w; + } + if (d) { + candidate.d = d; + } + if (h) { + candidate.h = h; + } + candidates.push(candidate); + } else if (console && console.log) { + console.log("Invalid srcset descriptor found in '" + input + "' at '" + desc + "'."); + } + } + }; + }); +}); + +// node_modules/picocolors/picocolors.js +var require_picocolors = __commonJS((exports, module) => { + var p = process || {}; + var argv = p.argv || []; + var env = p.env || {}; + var isColorSupported = !(!!env.NO_COLOR || argv.includes("--no-color")) && (!!env.FORCE_COLOR || argv.includes("--color") || p.platform === "win32" || (p.stdout || {}).isTTY && env.TERM !== "dumb" || !!env.CI); + var formatter = (open, close, replace = open) => (input) => { + let string = "" + input, index = string.indexOf(close, open.length); + return ~index ? open + replaceClose(string, close, replace, index) + close : open + string + close; + }; + var replaceClose = (string, close, replace, index) => { + let result = "", cursor = 0; + do { + result += string.substring(cursor, index) + replace; + cursor = index + close.length; + index = string.indexOf(close, cursor); + } while (~index); + return result + string.substring(cursor); + }; + var createColors = (enabled = isColorSupported) => { + let f = enabled ? formatter : () => String; + return { + isColorSupported: enabled, + reset: f("\x1B[0m", "\x1B[0m"), + bold: f("\x1B[1m", "\x1B[22m", "\x1B[22m\x1B[1m"), + dim: f("\x1B[2m", "\x1B[22m", "\x1B[22m\x1B[2m"), + italic: f("\x1B[3m", "\x1B[23m"), + underline: f("\x1B[4m", "\x1B[24m"), + inverse: f("\x1B[7m", "\x1B[27m"), + hidden: f("\x1B[8m", "\x1B[28m"), + strikethrough: f("\x1B[9m", "\x1B[29m"), + black: f("\x1B[30m", "\x1B[39m"), + red: f("\x1B[31m", "\x1B[39m"), + green: f("\x1B[32m", "\x1B[39m"), + yellow: f("\x1B[33m", "\x1B[39m"), + blue: f("\x1B[34m", "\x1B[39m"), + magenta: f("\x1B[35m", "\x1B[39m"), + cyan: f("\x1B[36m", "\x1B[39m"), + white: f("\x1B[37m", "\x1B[39m"), + gray: f("\x1B[90m", "\x1B[39m"), + bgBlack: f("\x1B[40m", "\x1B[49m"), + bgRed: f("\x1B[41m", "\x1B[49m"), + bgGreen: f("\x1B[42m", "\x1B[49m"), + bgYellow: f("\x1B[43m", "\x1B[49m"), + bgBlue: f("\x1B[44m", "\x1B[49m"), + bgMagenta: f("\x1B[45m", "\x1B[49m"), + bgCyan: f("\x1B[46m", "\x1B[49m"), + bgWhite: f("\x1B[47m", "\x1B[49m"), + blackBright: f("\x1B[90m", "\x1B[39m"), + redBright: f("\x1B[91m", "\x1B[39m"), + greenBright: f("\x1B[92m", "\x1B[39m"), + yellowBright: f("\x1B[93m", "\x1B[39m"), + blueBright: f("\x1B[94m", "\x1B[39m"), + magentaBright: f("\x1B[95m", "\x1B[39m"), + cyanBright: f("\x1B[96m", "\x1B[39m"), + whiteBright: f("\x1B[97m", "\x1B[39m"), + bgBlackBright: f("\x1B[100m", "\x1B[49m"), + bgRedBright: f("\x1B[101m", "\x1B[49m"), + bgGreenBright: f("\x1B[102m", "\x1B[49m"), + bgYellowBright: f("\x1B[103m", "\x1B[49m"), + bgBlueBright: f("\x1B[104m", "\x1B[49m"), + bgMagentaBright: f("\x1B[105m", "\x1B[49m"), + bgCyanBright: f("\x1B[106m", "\x1B[49m"), + bgWhiteBright: f("\x1B[107m", "\x1B[49m") + }; + }; + module.exports = createColors(); + module.exports.createColors = createColors; +}); + +// node_modules/postcss/lib/tokenize.js +var require_tokenize = __commonJS((exports, module) => { + var SINGLE_QUOTE = "'".charCodeAt(0); + var DOUBLE_QUOTE = '"'.charCodeAt(0); + var BACKSLASH = "\\".charCodeAt(0); + var SLASH = "/".charCodeAt(0); + var NEWLINE = "\n".charCodeAt(0); + var SPACE = " ".charCodeAt(0); + var FEED = "\f".charCodeAt(0); + var TAB = "\t".charCodeAt(0); + var CR = "\r".charCodeAt(0); + var OPEN_SQUARE = "[".charCodeAt(0); + var CLOSE_SQUARE = "]".charCodeAt(0); + var OPEN_PARENTHESES = "(".charCodeAt(0); + var CLOSE_PARENTHESES = ")".charCodeAt(0); + var OPEN_CURLY = "{".charCodeAt(0); + var CLOSE_CURLY = "}".charCodeAt(0); + var SEMICOLON = ";".charCodeAt(0); + var ASTERISK = "*".charCodeAt(0); + var COLON = ":".charCodeAt(0); + var AT = "@".charCodeAt(0); + var RE_AT_END = /[\t\n\f\r "#'()/;[\\\]{}]/g; + var RE_WORD_END = /[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g; + var RE_BAD_BRACKET = /.[\r\n"'(/\\]/; + var RE_HEX_ESCAPE = /[\da-f]/i; + module.exports = function tokenizer(input, options = {}) { + let css = input.css.valueOf(); + let ignore = options.ignoreErrors; + let code, content, escape, next, quote; + let currentToken, escaped, escapePos, n, prev; + let length = css.length; + let pos = 0; + let buffer = []; + let returned = []; + function position() { + return pos; + } + function unclosed(what) { + throw input.error("Unclosed " + what, pos); + } + function endOfFile() { + return returned.length === 0 && pos >= length; + } + function nextToken(opts) { + if (returned.length) + return returned.pop(); + if (pos >= length) + return; + let ignoreUnclosed = opts ? opts.ignoreUnclosed : false; + code = css.charCodeAt(pos); + switch (code) { + case NEWLINE: + case SPACE: + case TAB: + case CR: + case FEED: { + next = pos; + do { + next += 1; + code = css.charCodeAt(next); + } while (code === SPACE || code === NEWLINE || code === TAB || code === CR || code === FEED); + currentToken = ["space", css.slice(pos, next)]; + pos = next - 1; + break; + } + case OPEN_SQUARE: + case CLOSE_SQUARE: + case OPEN_CURLY: + case CLOSE_CURLY: + case COLON: + case SEMICOLON: + case CLOSE_PARENTHESES: { + let controlChar = String.fromCharCode(code); + currentToken = [controlChar, controlChar, pos]; + break; + } + case OPEN_PARENTHESES: { + prev = buffer.length ? buffer.pop()[1] : ""; + n = css.charCodeAt(pos + 1); + if (prev === "url" && n !== SINGLE_QUOTE && n !== DOUBLE_QUOTE && n !== SPACE && n !== NEWLINE && n !== TAB && n !== FEED && n !== CR) { + next = pos; + do { + escaped = false; + next = css.indexOf(")", next + 1); + if (next === -1) { + if (ignore || ignoreUnclosed) { + next = pos; + break; + } else { + unclosed("bracket"); + } + } + escapePos = next; + while (css.charCodeAt(escapePos - 1) === BACKSLASH) { + escapePos -= 1; + escaped = !escaped; + } + } while (escaped); + currentToken = ["brackets", css.slice(pos, next + 1), pos, next]; + pos = next; + } else { + next = css.indexOf(")", pos + 1); + content = css.slice(pos, next + 1); + if (next === -1 || RE_BAD_BRACKET.test(content)) { + currentToken = ["(", "(", pos]; + } else { + currentToken = ["brackets", content, pos, next]; + pos = next; + } + } + break; + } + case SINGLE_QUOTE: + case DOUBLE_QUOTE: { + quote = code === SINGLE_QUOTE ? "'" : '"'; + next = pos; + do { + escaped = false; + next = css.indexOf(quote, next + 1); + if (next === -1) { + if (ignore || ignoreUnclosed) { + next = pos + 1; + break; + } else { + unclosed("string"); + } + } + escapePos = next; + while (css.charCodeAt(escapePos - 1) === BACKSLASH) { + escapePos -= 1; + escaped = !escaped; + } + } while (escaped); + currentToken = ["string", css.slice(pos, next + 1), pos, next]; + pos = next; + break; + } + case AT: { + RE_AT_END.lastIndex = pos + 1; + RE_AT_END.test(css); + if (RE_AT_END.lastIndex === 0) { + next = css.length - 1; + } else { + next = RE_AT_END.lastIndex - 2; + } + currentToken = ["at-word", css.slice(pos, next + 1), pos, next]; + pos = next; + break; + } + case BACKSLASH: { + next = pos; + escape = true; + while (css.charCodeAt(next + 1) === BACKSLASH) { + next += 1; + escape = !escape; + } + code = css.charCodeAt(next + 1); + if (escape && code !== SLASH && code !== SPACE && code !== NEWLINE && code !== TAB && code !== CR && code !== FEED) { + next += 1; + if (RE_HEX_ESCAPE.test(css.charAt(next))) { + while (RE_HEX_ESCAPE.test(css.charAt(next + 1))) { + next += 1; + } + if (css.charCodeAt(next + 1) === SPACE) { + next += 1; + } + } + } + currentToken = ["word", css.slice(pos, next + 1), pos, next]; + pos = next; + break; + } + default: { + if (code === SLASH && css.charCodeAt(pos + 1) === ASTERISK) { + next = css.indexOf("*/", pos + 2) + 1; + if (next === 0) { + if (ignore || ignoreUnclosed) { + next = css.length; + } else { + unclosed("comment"); + } + } + currentToken = ["comment", css.slice(pos, next + 1), pos, next]; + pos = next; + } else { + RE_WORD_END.lastIndex = pos + 1; + RE_WORD_END.test(css); + if (RE_WORD_END.lastIndex === 0) { + next = css.length - 1; + } else { + next = RE_WORD_END.lastIndex - 2; + } + currentToken = ["word", css.slice(pos, next + 1), pos, next]; + buffer.push(currentToken); + pos = next; + } + break; + } + } + pos++; + return currentToken; + } + function back(token) { + returned.push(token); + } + return { + back, + endOfFile, + nextToken, + position + }; + }; +}); + +// node_modules/postcss/lib/terminal-highlight.js +var require_terminal_highlight = __commonJS((exports, module) => { + var pico = require_picocolors(); + var tokenizer = require_tokenize(); + var Input; + function registerInput(dependant) { + Input = dependant; + } + var HIGHLIGHT_THEME = { + ";": pico.yellow, + ":": pico.yellow, + "(": pico.cyan, + ")": pico.cyan, + "[": pico.yellow, + "]": pico.yellow, + "{": pico.yellow, + "}": pico.yellow, + "at-word": pico.cyan, + brackets: pico.cyan, + call: pico.cyan, + class: pico.yellow, + comment: pico.gray, + hash: pico.magenta, + string: pico.green + }; + function getTokenType([type, value], processor) { + if (type === "word") { + if (value[0] === ".") { + return "class"; + } + if (value[0] === "#") { + return "hash"; + } + } + if (!processor.endOfFile()) { + let next = processor.nextToken(); + processor.back(next); + if (next[0] === "brackets" || next[0] === "(") + return "call"; + } + return type; + } + function terminalHighlight(css) { + let processor = tokenizer(new Input(css), { ignoreErrors: true }); + let result = ""; + while (!processor.endOfFile()) { + let token = processor.nextToken(); + let color = HIGHLIGHT_THEME[getTokenType(token, processor)]; + if (color) { + result += token[1].split(/\r?\n/).map((i) => color(i)).join("\n"); + } else { + result += token[1]; + } + } + return result; + } + terminalHighlight.registerInput = registerInput; + module.exports = terminalHighlight; +}); + +// node_modules/postcss/lib/css-syntax-error.js +var require_css_syntax_error = __commonJS((exports, module) => { + var pico = require_picocolors(); + var terminalHighlight = require_terminal_highlight(); + + class CssSyntaxError extends Error { + constructor(message, line, column, source, file, plugin) { + super(message); + this.name = "CssSyntaxError"; + this.reason = message; + if (file) { + this.file = file; + } + if (source) { + this.source = source; + } + if (plugin) { + this.plugin = plugin; + } + if (typeof line !== "undefined" && typeof column !== "undefined") { + if (typeof line === "number") { + this.line = line; + this.column = column; + } else { + this.line = line.line; + this.column = line.column; + this.endLine = column.line; + this.endColumn = column.column; + } + } + this.setMessage(); + if (Error.captureStackTrace) { + Error.captureStackTrace(this, CssSyntaxError); + } + } + setMessage() { + this.message = this.plugin ? this.plugin + ": " : ""; + this.message += this.file ? this.file : ""; + if (typeof this.line !== "undefined") { + this.message += ":" + this.line + ":" + this.column; + } + this.message += ": " + this.reason; + } + showSourceCode(color) { + if (!this.source) + return ""; + let css = this.source; + if (color == null) + color = pico.isColorSupported; + let aside = (text) => text; + let mark = (text) => text; + let highlight = (text) => text; + if (color) { + let { bold, gray, red } = pico.createColors(true); + mark = (text) => bold(red(text)); + aside = (text) => gray(text); + if (terminalHighlight) { + highlight = (text) => terminalHighlight(text); + } + } + let lines = css.split(/\r?\n/); + let start = Math.max(this.line - 3, 0); + let end = Math.min(this.line + 2, lines.length); + let maxWidth = String(end).length; + return lines.slice(start, end).map((line, index) => { + let number = start + 1 + index; + let gutter = " " + (" " + number).slice(-maxWidth) + " | "; + if (number === this.line) { + if (line.length > 160) { + let padding = 20; + let subLineStart = Math.max(0, this.column - padding); + let subLineEnd = Math.max(this.column + padding, this.endColumn + padding); + let subLine = line.slice(subLineStart, subLineEnd); + let spacing2 = aside(gutter.replace(/\d/g, " ")) + line.slice(0, Math.min(this.column - 1, padding - 1)).replace(/[^\t]/g, " "); + return mark(">") + aside(gutter) + highlight(subLine) + "\n " + spacing2 + mark("^"); + } + let spacing = aside(gutter.replace(/\d/g, " ")) + line.slice(0, this.column - 1).replace(/[^\t]/g, " "); + return mark(">") + aside(gutter) + highlight(line) + "\n " + spacing + mark("^"); + } + return " " + aside(gutter) + highlight(line); + }).join("\n"); + } + toString() { + let code = this.showSourceCode(); + if (code) { + code = "\n\n" + code + "\n"; + } + return this.name + ": " + this.message + code; + } + } + module.exports = CssSyntaxError; + CssSyntaxError.default = CssSyntaxError; +}); + +// node_modules/postcss/lib/stringifier.js +var require_stringifier = __commonJS((exports, module) => { + var DEFAULT_RAW = { + after: "\n", + beforeClose: "\n", + beforeComment: "\n", + beforeDecl: "\n", + beforeOpen: " ", + beforeRule: "\n", + colon: ": ", + commentLeft: " ", + commentRight: " ", + emptyBody: "", + indent: " ", + semicolon: false + }; + function capitalize(str) { + return str[0].toUpperCase() + str.slice(1); + } + + class Stringifier { + constructor(builder) { + this.builder = builder; + } + atrule(node, semicolon) { + let name = "@" + node.name; + let params = node.params ? this.rawValue(node, "params") : ""; + if (typeof node.raws.afterName !== "undefined") { + name += node.raws.afterName; + } else if (params) { + name += " "; + } + if (node.nodes) { + this.block(node, name + params); + } else { + let end = (node.raws.between || "") + (semicolon ? ";" : ""); + this.builder(name + params + end, node); + } + } + beforeAfter(node, detect) { + let value; + if (node.type === "decl") { + value = this.raw(node, null, "beforeDecl"); + } else if (node.type === "comment") { + value = this.raw(node, null, "beforeComment"); + } else if (detect === "before") { + value = this.raw(node, null, "beforeRule"); + } else { + value = this.raw(node, null, "beforeClose"); + } + let buf = node.parent; + let depth = 0; + while (buf && buf.type !== "root") { + depth += 1; + buf = buf.parent; + } + if (value.includes("\n")) { + let indent = this.raw(node, null, "indent"); + if (indent.length) { + for (let step = 0;step < depth; step++) + value += indent; + } + } + return value; + } + block(node, start) { + let between = this.raw(node, "between", "beforeOpen"); + this.builder(start + between + "{", node, "start"); + let after; + if (node.nodes && node.nodes.length) { + this.body(node); + after = this.raw(node, "after"); + } else { + after = this.raw(node, "after", "emptyBody"); + } + if (after) + this.builder(after); + this.builder("}", node, "end"); + } + body(node) { + let last = node.nodes.length - 1; + while (last > 0) { + if (node.nodes[last].type !== "comment") + break; + last -= 1; + } + let semicolon = this.raw(node, "semicolon"); + for (let i = 0;i < node.nodes.length; i++) { + let child = node.nodes[i]; + let before = this.raw(child, "before"); + if (before) + this.builder(before); + this.stringify(child, last !== i || semicolon); + } + } + comment(node) { + let left = this.raw(node, "left", "commentLeft"); + let right = this.raw(node, "right", "commentRight"); + this.builder("/*" + left + node.text + right + "*/", node); + } + decl(node, semicolon) { + let between = this.raw(node, "between", "colon"); + let string = node.prop + between + this.rawValue(node, "value"); + if (node.important) { + string += node.raws.important || " !important"; + } + if (semicolon) + string += ";"; + this.builder(string, node); + } + document(node) { + this.body(node); + } + raw(node, own, detect) { + let value; + if (!detect) + detect = own; + if (own) { + value = node.raws[own]; + if (typeof value !== "undefined") + return value; + } + let parent = node.parent; + if (detect === "before") { + if (!parent || parent.type === "root" && parent.first === node) { + return ""; + } + if (parent && parent.type === "document") { + return ""; + } + } + if (!parent) + return DEFAULT_RAW[detect]; + let root = node.root(); + if (!root.rawCache) + root.rawCache = {}; + if (typeof root.rawCache[detect] !== "undefined") { + return root.rawCache[detect]; + } + if (detect === "before" || detect === "after") { + return this.beforeAfter(node, detect); + } else { + let method = "raw" + capitalize(detect); + if (this[method]) { + value = this[method](root, node); + } else { + root.walk((i) => { + value = i.raws[own]; + if (typeof value !== "undefined") + return false; + }); + } + } + if (typeof value === "undefined") + value = DEFAULT_RAW[detect]; + root.rawCache[detect] = value; + return value; + } + rawBeforeClose(root) { + let value; + root.walk((i) => { + if (i.nodes && i.nodes.length > 0) { + if (typeof i.raws.after !== "undefined") { + value = i.raws.after; + if (value.includes("\n")) { + value = value.replace(/[^\n]+$/, ""); + } + return false; + } + } + }); + if (value) + value = value.replace(/\S/g, ""); + return value; + } + rawBeforeComment(root, node) { + let value; + root.walkComments((i) => { + if (typeof i.raws.before !== "undefined") { + value = i.raws.before; + if (value.includes("\n")) { + value = value.replace(/[^\n]+$/, ""); + } + return false; + } + }); + if (typeof value === "undefined") { + value = this.raw(node, null, "beforeDecl"); + } else if (value) { + value = value.replace(/\S/g, ""); + } + return value; + } + rawBeforeDecl(root, node) { + let value; + root.walkDecls((i) => { + if (typeof i.raws.before !== "undefined") { + value = i.raws.before; + if (value.includes("\n")) { + value = value.replace(/[^\n]+$/, ""); + } + return false; + } + }); + if (typeof value === "undefined") { + value = this.raw(node, null, "beforeRule"); + } else if (value) { + value = value.replace(/\S/g, ""); + } + return value; + } + rawBeforeOpen(root) { + let value; + root.walk((i) => { + if (i.type !== "decl") { + value = i.raws.between; + if (typeof value !== "undefined") + return false; + } + }); + return value; + } + rawBeforeRule(root) { + let value; + root.walk((i) => { + if (i.nodes && (i.parent !== root || root.first !== i)) { + if (typeof i.raws.before !== "undefined") { + value = i.raws.before; + if (value.includes("\n")) { + value = value.replace(/[^\n]+$/, ""); + } + return false; + } + } + }); + if (value) + value = value.replace(/\S/g, ""); + return value; + } + rawColon(root) { + let value; + root.walkDecls((i) => { + if (typeof i.raws.between !== "undefined") { + value = i.raws.between.replace(/[^\s:]/g, ""); + return false; + } + }); + return value; + } + rawEmptyBody(root) { + let value; + root.walk((i) => { + if (i.nodes && i.nodes.length === 0) { + value = i.raws.after; + if (typeof value !== "undefined") + return false; + } + }); + return value; + } + rawIndent(root) { + if (root.raws.indent) + return root.raws.indent; + let value; + root.walk((i) => { + let p = i.parent; + if (p && p !== root && p.parent && p.parent === root) { + if (typeof i.raws.before !== "undefined") { + let parts = i.raws.before.split("\n"); + value = parts[parts.length - 1]; + value = value.replace(/\S/g, ""); + return false; + } + } + }); + return value; + } + rawSemicolon(root) { + let value; + root.walk((i) => { + if (i.nodes && i.nodes.length && i.last.type === "decl") { + value = i.raws.semicolon; + if (typeof value !== "undefined") + return false; + } + }); + return value; + } + rawValue(node, prop) { + let value = node[prop]; + let raw = node.raws[prop]; + if (raw && raw.value === value) { + return raw.raw; + } + return value; + } + root(node) { + this.body(node); + if (node.raws.after) + this.builder(node.raws.after); + } + rule(node) { + this.block(node, this.rawValue(node, "selector")); + if (node.raws.ownSemicolon) { + this.builder(node.raws.ownSemicolon, node, "end"); + } + } + stringify(node, semicolon) { + if (!this[node.type]) { + throw new Error("Unknown AST node type " + node.type + ". " + "Maybe you need to change PostCSS stringifier."); + } + this[node.type](node, semicolon); + } + } + module.exports = Stringifier; + Stringifier.default = Stringifier; +}); + +// node_modules/postcss/lib/stringify.js +var require_stringify2 = __commonJS((exports, module) => { + var Stringifier = require_stringifier(); + function stringify(node, builder) { + let str = new Stringifier(builder); + str.stringify(node); + } + module.exports = stringify; + stringify.default = stringify; +}); + +// node_modules/postcss/lib/symbols.js +var require_symbols = __commonJS((exports, module) => { + exports.isClean = Symbol("isClean"); + exports.my = Symbol("my"); +}); + +// node_modules/postcss/lib/node.js +var require_node3 = __commonJS((exports, module) => { + var CssSyntaxError = require_css_syntax_error(); + var Stringifier = require_stringifier(); + var stringify = require_stringify2(); + var { isClean, my } = require_symbols(); + function cloneNode(obj, parent) { + let cloned = new obj.constructor; + for (let i in obj) { + if (!Object.prototype.hasOwnProperty.call(obj, i)) { + continue; + } + if (i === "proxyCache") + continue; + let value = obj[i]; + let type = typeof value; + if (i === "parent" && type === "object") { + if (parent) + cloned[i] = parent; + } else if (i === "source") { + cloned[i] = value; + } else if (Array.isArray(value)) { + cloned[i] = value.map((j) => cloneNode(j, cloned)); + } else { + if (type === "object" && value !== null) + value = cloneNode(value); + cloned[i] = value; + } + } + return cloned; + } + + class Node { + constructor(defaults = {}) { + this.raws = {}; + this[isClean] = false; + this[my] = true; + for (let name in defaults) { + if (name === "nodes") { + this.nodes = []; + for (let node of defaults[name]) { + if (typeof node.clone === "function") { + this.append(node.clone()); + } else { + this.append(node); + } + } + } else { + this[name] = defaults[name]; + } + } + } + addToError(error) { + error.postcssNode = this; + if (error.stack && this.source && /\n\s{4}at /.test(error.stack)) { + let s = this.source; + error.stack = error.stack.replace(/\n\s{4}at /, `\$&${s.input.from}:${s.start.line}:${s.start.column}\$&`); + } + return error; + } + after(add) { + this.parent.insertAfter(this, add); + return this; + } + assign(overrides = {}) { + for (let name in overrides) { + this[name] = overrides[name]; + } + return this; + } + before(add) { + this.parent.insertBefore(this, add); + return this; + } + cleanRaws(keepBetween) { + delete this.raws.before; + delete this.raws.after; + if (!keepBetween) + delete this.raws.between; + } + clone(overrides = {}) { + let cloned = cloneNode(this); + for (let name in overrides) { + cloned[name] = overrides[name]; + } + return cloned; + } + cloneAfter(overrides = {}) { + let cloned = this.clone(overrides); + this.parent.insertAfter(this, cloned); + return cloned; + } + cloneBefore(overrides = {}) { + let cloned = this.clone(overrides); + this.parent.insertBefore(this, cloned); + return cloned; + } + error(message, opts = {}) { + if (this.source) { + let { end, start } = this.rangeBy(opts); + return this.source.input.error(message, { column: start.column, line: start.line }, { column: end.column, line: end.line }, opts); + } + return new CssSyntaxError(message); + } + getProxyProcessor() { + return { + get(node, prop) { + if (prop === "proxyOf") { + return node; + } else if (prop === "root") { + return () => node.root().toProxy(); + } else { + return node[prop]; + } + }, + set(node, prop, value) { + if (node[prop] === value) + return true; + node[prop] = value; + if (prop === "prop" || prop === "value" || prop === "name" || prop === "params" || prop === "important" || prop === "text") { + node.markDirty(); + } + return true; + } + }; + } + markClean() { + this[isClean] = true; + } + markDirty() { + if (this[isClean]) { + this[isClean] = false; + let next = this; + while (next = next.parent) { + next[isClean] = false; + } + } + } + next() { + if (!this.parent) + return; + let index = this.parent.index(this); + return this.parent.nodes[index + 1]; + } + positionBy(opts, stringRepresentation) { + let pos = this.source.start; + if (opts.index) { + pos = this.positionInside(opts.index, stringRepresentation); + } else if (opts.word) { + stringRepresentation = this.toString(); + let index = stringRepresentation.indexOf(opts.word); + if (index !== -1) + pos = this.positionInside(index, stringRepresentation); + } + return pos; + } + positionInside(index, stringRepresentation) { + let string = stringRepresentation || this.toString(); + let column = this.source.start.column; + let line = this.source.start.line; + for (let i = 0;i < index; i++) { + if (string[i] === "\n") { + column = 1; + line += 1; + } else { + column += 1; + } + } + return { column, line }; + } + prev() { + if (!this.parent) + return; + let index = this.parent.index(this); + return this.parent.nodes[index - 1]; + } + rangeBy(opts) { + let start = { + column: this.source.start.column, + line: this.source.start.line + }; + let end = this.source.end ? { + column: this.source.end.column + 1, + line: this.source.end.line + } : { + column: start.column + 1, + line: start.line + }; + if (opts.word) { + let stringRepresentation = this.toString(); + let index = stringRepresentation.indexOf(opts.word); + if (index !== -1) { + start = this.positionInside(index, stringRepresentation); + end = this.positionInside(index + opts.word.length, stringRepresentation); + } + } else { + if (opts.start) { + start = { + column: opts.start.column, + line: opts.start.line + }; + } else if (opts.index) { + start = this.positionInside(opts.index); + } + if (opts.end) { + end = { + column: opts.end.column, + line: opts.end.line + }; + } else if (typeof opts.endIndex === "number") { + end = this.positionInside(opts.endIndex); + } else if (opts.index) { + end = this.positionInside(opts.index + 1); + } + } + if (end.line < start.line || end.line === start.line && end.column <= start.column) { + end = { column: start.column + 1, line: start.line }; + } + return { end, start }; + } + raw(prop, defaultType) { + let str = new Stringifier; + return str.raw(this, prop, defaultType); + } + remove() { + if (this.parent) { + this.parent.removeChild(this); + } + this.parent = undefined; + return this; + } + replaceWith(...nodes) { + if (this.parent) { + let bookmark = this; + let foundSelf = false; + for (let node of nodes) { + if (node === this) { + foundSelf = true; + } else if (foundSelf) { + this.parent.insertAfter(bookmark, node); + bookmark = node; + } else { + this.parent.insertBefore(bookmark, node); + } + } + if (!foundSelf) { + this.remove(); + } + } + return this; + } + root() { + let result = this; + while (result.parent && result.parent.type !== "document") { + result = result.parent; + } + return result; + } + toJSON(_, inputs) { + let fixed = {}; + let emitInputs = inputs == null; + inputs = inputs || new Map; + let inputsNextIndex = 0; + for (let name in this) { + if (!Object.prototype.hasOwnProperty.call(this, name)) { + continue; + } + if (name === "parent" || name === "proxyCache") + continue; + let value = this[name]; + if (Array.isArray(value)) { + fixed[name] = value.map((i) => { + if (typeof i === "object" && i.toJSON) { + return i.toJSON(null, inputs); + } else { + return i; + } + }); + } else if (typeof value === "object" && value.toJSON) { + fixed[name] = value.toJSON(null, inputs); + } else if (name === "source") { + let inputId = inputs.get(value.input); + if (inputId == null) { + inputId = inputsNextIndex; + inputs.set(value.input, inputsNextIndex); + inputsNextIndex++; + } + fixed[name] = { + end: value.end, + inputId, + start: value.start + }; + } else { + fixed[name] = value; + } + } + if (emitInputs) { + fixed.inputs = [...inputs.keys()].map((input) => input.toJSON()); + } + return fixed; + } + toProxy() { + if (!this.proxyCache) { + this.proxyCache = new Proxy(this, this.getProxyProcessor()); + } + return this.proxyCache; + } + toString(stringifier = stringify) { + if (stringifier.stringify) + stringifier = stringifier.stringify; + let result = ""; + stringifier(this, (i) => { + result += i; + }); + return result; + } + warn(result, text, opts) { + let data = { node: this }; + for (let i in opts) + data[i] = opts[i]; + return result.warn(text, data); + } + get proxyOf() { + return this; + } + } + module.exports = Node; + Node.default = Node; +}); + +// node_modules/postcss/lib/comment.js +var require_comment = __commonJS((exports, module) => { + var Node = require_node3(); + + class Comment extends Node { + constructor(defaults) { + super(defaults); + this.type = "comment"; + } + } + module.exports = Comment; + Comment.default = Comment; +}); + +// node_modules/postcss/lib/declaration.js +var require_declaration = __commonJS((exports, module) => { + var Node = require_node3(); + + class Declaration extends Node { + constructor(defaults) { + if (defaults && typeof defaults.value !== "undefined" && typeof defaults.value !== "string") { + defaults = { ...defaults, value: String(defaults.value) }; + } + super(defaults); + this.type = "decl"; + } + get variable() { + return this.prop.startsWith("--") || this.prop[0] === "$"; + } + } + module.exports = Declaration; + Declaration.default = Declaration; +}); + +// node_modules/postcss/lib/container.js +var require_container = __commonJS((exports, module) => { + var Comment = require_comment(); + var Declaration = require_declaration(); + var Node = require_node3(); + var { isClean, my } = require_symbols(); + var AtRule; + var parse; + var Root; + var Rule; + function cleanSource(nodes) { + return nodes.map((i) => { + if (i.nodes) + i.nodes = cleanSource(i.nodes); + delete i.source; + return i; + }); + } + function markTreeDirty(node) { + node[isClean] = false; + if (node.proxyOf.nodes) { + for (let i of node.proxyOf.nodes) { + markTreeDirty(i); + } + } + } + + class Container extends Node { + append(...children) { + for (let child of children) { + let nodes = this.normalize(child, this.last); + for (let node of nodes) + this.proxyOf.nodes.push(node); + } + this.markDirty(); + return this; + } + cleanRaws(keepBetween) { + super.cleanRaws(keepBetween); + if (this.nodes) { + for (let node of this.nodes) + node.cleanRaws(keepBetween); + } + } + each(callback) { + if (!this.proxyOf.nodes) + return; + let iterator = this.getIterator(); + let index, result; + while (this.indexes[iterator] < this.proxyOf.nodes.length) { + index = this.indexes[iterator]; + result = callback(this.proxyOf.nodes[index], index); + if (result === false) + break; + this.indexes[iterator] += 1; + } + delete this.indexes[iterator]; + return result; + } + every(condition) { + return this.nodes.every(condition); + } + getIterator() { + if (!this.lastEach) + this.lastEach = 0; + if (!this.indexes) + this.indexes = {}; + this.lastEach += 1; + let iterator = this.lastEach; + this.indexes[iterator] = 0; + return iterator; + } + getProxyProcessor() { + return { + get(node, prop) { + if (prop === "proxyOf") { + return node; + } else if (!node[prop]) { + return node[prop]; + } else if (prop === "each" || typeof prop === "string" && prop.startsWith("walk")) { + return (...args) => { + return node[prop](...args.map((i) => { + if (typeof i === "function") { + return (child, index) => i(child.toProxy(), index); + } else { + return i; + } + })); + }; + } else if (prop === "every" || prop === "some") { + return (cb) => { + return node[prop]((child, ...other) => cb(child.toProxy(), ...other)); + }; + } else if (prop === "root") { + return () => node.root().toProxy(); + } else if (prop === "nodes") { + return node.nodes.map((i) => i.toProxy()); + } else if (prop === "first" || prop === "last") { + return node[prop].toProxy(); + } else { + return node[prop]; + } + }, + set(node, prop, value) { + if (node[prop] === value) + return true; + node[prop] = value; + if (prop === "name" || prop === "params" || prop === "selector") { + node.markDirty(); + } + return true; + } + }; + } + index(child) { + if (typeof child === "number") + return child; + if (child.proxyOf) + child = child.proxyOf; + return this.proxyOf.nodes.indexOf(child); + } + insertAfter(exist, add) { + let existIndex = this.index(exist); + let nodes = this.normalize(add, this.proxyOf.nodes[existIndex]).reverse(); + existIndex = this.index(exist); + for (let node of nodes) + this.proxyOf.nodes.splice(existIndex + 1, 0, node); + let index; + for (let id in this.indexes) { + index = this.indexes[id]; + if (existIndex < index) { + this.indexes[id] = index + nodes.length; + } + } + this.markDirty(); + return this; + } + insertBefore(exist, add) { + let existIndex = this.index(exist); + let type = existIndex === 0 ? "prepend" : false; + let nodes = this.normalize(add, this.proxyOf.nodes[existIndex], type).reverse(); + existIndex = this.index(exist); + for (let node of nodes) + this.proxyOf.nodes.splice(existIndex, 0, node); + let index; + for (let id in this.indexes) { + index = this.indexes[id]; + if (existIndex <= index) { + this.indexes[id] = index + nodes.length; + } + } + this.markDirty(); + return this; + } + normalize(nodes, sample) { + if (typeof nodes === "string") { + nodes = cleanSource(parse(nodes).nodes); + } else if (typeof nodes === "undefined") { + nodes = []; + } else if (Array.isArray(nodes)) { + nodes = nodes.slice(0); + for (let i of nodes) { + if (i.parent) + i.parent.removeChild(i, "ignore"); + } + } else if (nodes.type === "root" && this.type !== "document") { + nodes = nodes.nodes.slice(0); + for (let i of nodes) { + if (i.parent) + i.parent.removeChild(i, "ignore"); + } + } else if (nodes.type) { + nodes = [nodes]; + } else if (nodes.prop) { + if (typeof nodes.value === "undefined") { + throw new Error("Value field is missed in node creation"); + } else if (typeof nodes.value !== "string") { + nodes.value = String(nodes.value); + } + nodes = [new Declaration(nodes)]; + } else if (nodes.selector || nodes.selectors) { + nodes = [new Rule(nodes)]; + } else if (nodes.name) { + nodes = [new AtRule(nodes)]; + } else if (nodes.text) { + nodes = [new Comment(nodes)]; + } else { + throw new Error("Unknown node type in node creation"); + } + let processed = nodes.map((i) => { + if (!i[my]) + Container.rebuild(i); + i = i.proxyOf; + if (i.parent) + i.parent.removeChild(i); + if (i[isClean]) + markTreeDirty(i); + if (!i.raws) + i.raws = {}; + if (typeof i.raws.before === "undefined") { + if (sample && typeof sample.raws.before !== "undefined") { + i.raws.before = sample.raws.before.replace(/\S/g, ""); + } + } + i.parent = this.proxyOf; + return i; + }); + return processed; + } + prepend(...children) { + children = children.reverse(); + for (let child of children) { + let nodes = this.normalize(child, this.first, "prepend").reverse(); + for (let node of nodes) + this.proxyOf.nodes.unshift(node); + for (let id in this.indexes) { + this.indexes[id] = this.indexes[id] + nodes.length; + } + } + this.markDirty(); + return this; + } + push(child) { + child.parent = this; + this.proxyOf.nodes.push(child); + return this; + } + removeAll() { + for (let node of this.proxyOf.nodes) + node.parent = undefined; + this.proxyOf.nodes = []; + this.markDirty(); + return this; + } + removeChild(child) { + child = this.index(child); + this.proxyOf.nodes[child].parent = undefined; + this.proxyOf.nodes.splice(child, 1); + let index; + for (let id in this.indexes) { + index = this.indexes[id]; + if (index >= child) { + this.indexes[id] = index - 1; + } + } + this.markDirty(); + return this; + } + replaceValues(pattern, opts, callback) { + if (!callback) { + callback = opts; + opts = {}; + } + this.walkDecls((decl) => { + if (opts.props && !opts.props.includes(decl.prop)) + return; + if (opts.fast && !decl.value.includes(opts.fast)) + return; + decl.value = decl.value.replace(pattern, callback); + }); + this.markDirty(); + return this; + } + some(condition) { + return this.nodes.some(condition); + } + walk(callback) { + return this.each((child, i) => { + let result; + try { + result = callback(child, i); + } catch (e) { + throw child.addToError(e); + } + if (result !== false && child.walk) { + result = child.walk(callback); + } + return result; + }); + } + walkAtRules(name, callback) { + if (!callback) { + callback = name; + return this.walk((child, i) => { + if (child.type === "atrule") { + return callback(child, i); + } + }); + } + if (name instanceof RegExp) { + return this.walk((child, i) => { + if (child.type === "atrule" && name.test(child.name)) { + return callback(child, i); + } + }); + } + return this.walk((child, i) => { + if (child.type === "atrule" && child.name === name) { + return callback(child, i); + } + }); + } + walkComments(callback) { + return this.walk((child, i) => { + if (child.type === "comment") { + return callback(child, i); + } + }); + } + walkDecls(prop, callback) { + if (!callback) { + callback = prop; + return this.walk((child, i) => { + if (child.type === "decl") { + return callback(child, i); + } + }); + } + if (prop instanceof RegExp) { + return this.walk((child, i) => { + if (child.type === "decl" && prop.test(child.prop)) { + return callback(child, i); + } + }); + } + return this.walk((child, i) => { + if (child.type === "decl" && child.prop === prop) { + return callback(child, i); + } + }); + } + walkRules(selector, callback) { + if (!callback) { + callback = selector; + return this.walk((child, i) => { + if (child.type === "rule") { + return callback(child, i); + } + }); + } + if (selector instanceof RegExp) { + return this.walk((child, i) => { + if (child.type === "rule" && selector.test(child.selector)) { + return callback(child, i); + } + }); + } + return this.walk((child, i) => { + if (child.type === "rule" && child.selector === selector) { + return callback(child, i); + } + }); + } + get first() { + if (!this.proxyOf.nodes) + return; + return this.proxyOf.nodes[0]; + } + get last() { + if (!this.proxyOf.nodes) + return; + return this.proxyOf.nodes[this.proxyOf.nodes.length - 1]; + } + } + Container.registerParse = (dependant) => { + parse = dependant; + }; + Container.registerRule = (dependant) => { + Rule = dependant; + }; + Container.registerAtRule = (dependant) => { + AtRule = dependant; + }; + Container.registerRoot = (dependant) => { + Root = dependant; + }; + module.exports = Container; + Container.default = Container; + Container.rebuild = (node) => { + if (node.type === "atrule") { + Object.setPrototypeOf(node, AtRule.prototype); + } else if (node.type === "rule") { + Object.setPrototypeOf(node, Rule.prototype); + } else if (node.type === "decl") { + Object.setPrototypeOf(node, Declaration.prototype); + } else if (node.type === "comment") { + Object.setPrototypeOf(node, Comment.prototype); + } else if (node.type === "root") { + Object.setPrototypeOf(node, Root.prototype); + } + node[my] = true; + if (node.nodes) { + node.nodes.forEach((child) => { + Container.rebuild(child); + }); + } + }; +}); + +// node_modules/postcss/lib/at-rule.js +var require_at_rule = __commonJS((exports, module) => { + var Container = require_container(); + + class AtRule extends Container { + constructor(defaults) { + super(defaults); + this.type = "atrule"; + } + append(...children) { + if (!this.proxyOf.nodes) + this.nodes = []; + return super.append(...children); + } + prepend(...children) { + if (!this.proxyOf.nodes) + this.nodes = []; + return super.prepend(...children); + } + } + module.exports = AtRule; + AtRule.default = AtRule; + Container.registerAtRule(AtRule); +}); + +// node_modules/postcss/lib/document.js +var require_document = __commonJS((exports, module) => { + var Container = require_container(); + var LazyResult; + var Processor; + + class Document extends Container { + constructor(defaults) { + super({ type: "document", ...defaults }); + if (!this.nodes) { + this.nodes = []; + } + } + toResult(opts = {}) { + let lazy = new LazyResult(new Processor, this, opts); + return lazy.stringify(); + } + } + Document.registerLazyResult = (dependant) => { + LazyResult = dependant; + }; + Document.registerProcessor = (dependant) => { + Processor = dependant; + }; + module.exports = Document; + Document.default = Document; +}); + +// node_modules/nanoid/non-secure/index.cjs +var require_non_secure = __commonJS((exports, module) => { + var urlAlphabet = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"; + var customAlphabet = (alphabet, defaultSize = 21) => { + return (size = defaultSize) => { + let id = ""; + let i = size; + while (i--) { + id += alphabet[Math.random() * alphabet.length | 0]; + } + return id; + }; + }; + var nanoid = (size = 21) => { + let id = ""; + let i = size; + while (i--) { + id += urlAlphabet[Math.random() * 64 | 0]; + } + return id; + }; + module.exports = { nanoid, customAlphabet }; +}); + +// node_modules/source-map-js/lib/base64.js +var require_base64 = __commonJS((exports) => { + var intToCharMap = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""); + exports.encode = function(number) { + if (0 <= number && number < intToCharMap.length) { + return intToCharMap[number]; + } + throw new TypeError("Must be between 0 and 63: " + number); + }; + exports.decode = function(charCode) { + var bigA = 65; + var bigZ = 90; + var littleA = 97; + var littleZ = 122; + var zero = 48; + var nine = 57; + var plus = 43; + var slash = 47; + var littleOffset = 26; + var numberOffset = 52; + if (bigA <= charCode && charCode <= bigZ) { + return charCode - bigA; + } + if (littleA <= charCode && charCode <= littleZ) { + return charCode - littleA + littleOffset; + } + if (zero <= charCode && charCode <= nine) { + return charCode - zero + numberOffset; + } + if (charCode == plus) { + return 62; + } + if (charCode == slash) { + return 63; + } + return -1; + }; +}); + +// node_modules/source-map-js/lib/base64-vlq.js +var require_base64_vlq = __commonJS((exports) => { + var base64 = require_base64(); + var VLQ_BASE_SHIFT = 5; + var VLQ_BASE = 1 << VLQ_BASE_SHIFT; + var VLQ_BASE_MASK = VLQ_BASE - 1; + var VLQ_CONTINUATION_BIT = VLQ_BASE; + function toVLQSigned(aValue) { + return aValue < 0 ? (-aValue << 1) + 1 : (aValue << 1) + 0; + } + function fromVLQSigned(aValue) { + var isNegative = (aValue & 1) === 1; + var shifted = aValue >> 1; + return isNegative ? -shifted : shifted; + } + exports.encode = function base64VLQ_encode(aValue) { + var encoded = ""; + var digit; + var vlq = toVLQSigned(aValue); + do { + digit = vlq & VLQ_BASE_MASK; + vlq >>>= VLQ_BASE_SHIFT; + if (vlq > 0) { + digit |= VLQ_CONTINUATION_BIT; + } + encoded += base64.encode(digit); + } while (vlq > 0); + return encoded; + }; + exports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) { + var strLen = aStr.length; + var result = 0; + var shift = 0; + var continuation, digit; + do { + if (aIndex >= strLen) { + throw new Error("Expected more digits in base 64 VLQ value."); + } + digit = base64.decode(aStr.charCodeAt(aIndex++)); + if (digit === -1) { + throw new Error("Invalid base64 digit: " + aStr.charAt(aIndex - 1)); + } + continuation = !!(digit & VLQ_CONTINUATION_BIT); + digit &= VLQ_BASE_MASK; + result = result + (digit << shift); + shift += VLQ_BASE_SHIFT; + } while (continuation); + aOutParam.value = fromVLQSigned(result); + aOutParam.rest = aIndex; + }; +}); + +// node_modules/source-map-js/lib/util.js +var require_util2 = __commonJS((exports) => { + function getArg(aArgs, aName, aDefaultValue) { + if (aName in aArgs) { + return aArgs[aName]; + } else if (arguments.length === 3) { + return aDefaultValue; + } else { + throw new Error('"' + aName + '" is a required argument.'); + } + } + exports.getArg = getArg; + var urlRegexp = /^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/; + var dataUrlRegexp = /^data:.+\,.+$/; + function urlParse(aUrl) { + var match = aUrl.match(urlRegexp); + if (!match) { + return null; + } + return { + scheme: match[1], + auth: match[2], + host: match[3], + port: match[4], + path: match[5] + }; + } + exports.urlParse = urlParse; + function urlGenerate(aParsedUrl) { + var url = ""; + if (aParsedUrl.scheme) { + url += aParsedUrl.scheme + ":"; + } + url += "//"; + if (aParsedUrl.auth) { + url += aParsedUrl.auth + "@"; + } + if (aParsedUrl.host) { + url += aParsedUrl.host; + } + if (aParsedUrl.port) { + url += ":" + aParsedUrl.port; + } + if (aParsedUrl.path) { + url += aParsedUrl.path; + } + return url; + } + exports.urlGenerate = urlGenerate; + var MAX_CACHED_INPUTS = 32; + function lruMemoize(f) { + var cache = []; + return function(input) { + for (var i = 0;i < cache.length; i++) { + if (cache[i].input === input) { + var temp = cache[0]; + cache[0] = cache[i]; + cache[i] = temp; + return cache[0].result; + } + } + var result = f(input); + cache.unshift({ + input, + result + }); + if (cache.length > MAX_CACHED_INPUTS) { + cache.pop(); + } + return result; + }; + } + var normalize = lruMemoize(function normalize(aPath) { + var path = aPath; + var url = urlParse(aPath); + if (url) { + if (!url.path) { + return aPath; + } + path = url.path; + } + var isAbsolute = exports.isAbsolute(path); + var parts = []; + var start = 0; + var i = 0; + while (true) { + start = i; + i = path.indexOf("/", start); + if (i === -1) { + parts.push(path.slice(start)); + break; + } else { + parts.push(path.slice(start, i)); + while (i < path.length && path[i] === "/") { + i++; + } + } + } + for (var part, up = 0, i = parts.length - 1;i >= 0; i--) { + part = parts[i]; + if (part === ".") { + parts.splice(i, 1); + } else if (part === "..") { + up++; + } else if (up > 0) { + if (part === "") { + parts.splice(i + 1, up); + up = 0; + } else { + parts.splice(i, 2); + up--; + } + } + } + path = parts.join("/"); + if (path === "") { + path = isAbsolute ? "/" : "."; + } + if (url) { + url.path = path; + return urlGenerate(url); + } + return path; + }); + exports.normalize = normalize; + function join(aRoot, aPath) { + if (aRoot === "") { + aRoot = "."; + } + if (aPath === "") { + aPath = "."; + } + var aPathUrl = urlParse(aPath); + var aRootUrl = urlParse(aRoot); + if (aRootUrl) { + aRoot = aRootUrl.path || "/"; + } + if (aPathUrl && !aPathUrl.scheme) { + if (aRootUrl) { + aPathUrl.scheme = aRootUrl.scheme; + } + return urlGenerate(aPathUrl); + } + if (aPathUrl || aPath.match(dataUrlRegexp)) { + return aPath; + } + if (aRootUrl && !aRootUrl.host && !aRootUrl.path) { + aRootUrl.host = aPath; + return urlGenerate(aRootUrl); + } + var joined = aPath.charAt(0) === "/" ? aPath : normalize(aRoot.replace(/\/+$/, "") + "/" + aPath); + if (aRootUrl) { + aRootUrl.path = joined; + return urlGenerate(aRootUrl); + } + return joined; + } + exports.join = join; + exports.isAbsolute = function(aPath) { + return aPath.charAt(0) === "/" || urlRegexp.test(aPath); + }; + function relative(aRoot, aPath) { + if (aRoot === "") { + aRoot = "."; + } + aRoot = aRoot.replace(/\/$/, ""); + var level = 0; + while (aPath.indexOf(aRoot + "/") !== 0) { + var index = aRoot.lastIndexOf("/"); + if (index < 0) { + return aPath; + } + aRoot = aRoot.slice(0, index); + if (aRoot.match(/^([^\/]+:\/)?\/*$/)) { + return aPath; + } + ++level; + } + return Array(level + 1).join("../") + aPath.substr(aRoot.length + 1); + } + exports.relative = relative; + var supportsNullProto = function() { + var obj = Object.create(null); + return !("__proto__" in obj); + }(); + function identity(s) { + return s; + } + function toSetString(aStr) { + if (isProtoString(aStr)) { + return "$" + aStr; + } + return aStr; + } + exports.toSetString = supportsNullProto ? identity : toSetString; + function fromSetString(aStr) { + if (isProtoString(aStr)) { + return aStr.slice(1); + } + return aStr; + } + exports.fromSetString = supportsNullProto ? identity : fromSetString; + function isProtoString(s) { + if (!s) { + return false; + } + var length = s.length; + if (length < 9) { + return false; + } + if (s.charCodeAt(length - 1) !== 95 || s.charCodeAt(length - 2) !== 95 || s.charCodeAt(length - 3) !== 111 || s.charCodeAt(length - 4) !== 116 || s.charCodeAt(length - 5) !== 111 || s.charCodeAt(length - 6) !== 114 || s.charCodeAt(length - 7) !== 112 || s.charCodeAt(length - 8) !== 95 || s.charCodeAt(length - 9) !== 95) { + return false; + } + for (var i = length - 10;i >= 0; i--) { + if (s.charCodeAt(i) !== 36) { + return false; + } + } + return true; + } + function compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) { + var cmp = strcmp(mappingA.source, mappingB.source); + if (cmp !== 0) { + return cmp; + } + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0 || onlyCompareOriginal) { + return cmp; + } + cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0) { + return cmp; + } + cmp = mappingA.generatedLine - mappingB.generatedLine; + if (cmp !== 0) { + return cmp; + } + return strcmp(mappingA.name, mappingB.name); + } + exports.compareByOriginalPositions = compareByOriginalPositions; + function compareByOriginalPositionsNoSource(mappingA, mappingB, onlyCompareOriginal) { + var cmp; + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0 || onlyCompareOriginal) { + return cmp; + } + cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0) { + return cmp; + } + cmp = mappingA.generatedLine - mappingB.generatedLine; + if (cmp !== 0) { + return cmp; + } + return strcmp(mappingA.name, mappingB.name); + } + exports.compareByOriginalPositionsNoSource = compareByOriginalPositionsNoSource; + function compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) { + var cmp = mappingA.generatedLine - mappingB.generatedLine; + if (cmp !== 0) { + return cmp; + } + cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0 || onlyCompareGenerated) { + return cmp; + } + cmp = strcmp(mappingA.source, mappingB.source); + if (cmp !== 0) { + return cmp; + } + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0) { + return cmp; + } + return strcmp(mappingA.name, mappingB.name); + } + exports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated; + function compareByGeneratedPositionsDeflatedNoLine(mappingA, mappingB, onlyCompareGenerated) { + var cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0 || onlyCompareGenerated) { + return cmp; + } + cmp = strcmp(mappingA.source, mappingB.source); + if (cmp !== 0) { + return cmp; + } + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0) { + return cmp; + } + return strcmp(mappingA.name, mappingB.name); + } + exports.compareByGeneratedPositionsDeflatedNoLine = compareByGeneratedPositionsDeflatedNoLine; + function strcmp(aStr1, aStr2) { + if (aStr1 === aStr2) { + return 0; + } + if (aStr1 === null) { + return 1; + } + if (aStr2 === null) { + return -1; + } + if (aStr1 > aStr2) { + return 1; + } + return -1; + } + function compareByGeneratedPositionsInflated(mappingA, mappingB) { + var cmp = mappingA.generatedLine - mappingB.generatedLine; + if (cmp !== 0) { + return cmp; + } + cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0) { + return cmp; + } + cmp = strcmp(mappingA.source, mappingB.source); + if (cmp !== 0) { + return cmp; + } + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0) { + return cmp; + } + return strcmp(mappingA.name, mappingB.name); + } + exports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated; + function parseSourceMapInput(str) { + return JSON.parse(str.replace(/^\)]}'[^\n]*\n/, "")); + } + exports.parseSourceMapInput = parseSourceMapInput; + function computeSourceURL(sourceRoot, sourceURL, sourceMapURL) { + sourceURL = sourceURL || ""; + if (sourceRoot) { + if (sourceRoot[sourceRoot.length - 1] !== "/" && sourceURL[0] !== "/") { + sourceRoot += "/"; + } + sourceURL = sourceRoot + sourceURL; + } + if (sourceMapURL) { + var parsed = urlParse(sourceMapURL); + if (!parsed) { + throw new Error("sourceMapURL could not be parsed"); + } + if (parsed.path) { + var index = parsed.path.lastIndexOf("/"); + if (index >= 0) { + parsed.path = parsed.path.substring(0, index + 1); + } + } + sourceURL = join(urlGenerate(parsed), sourceURL); + } + return normalize(sourceURL); + } + exports.computeSourceURL = computeSourceURL; +}); + +// node_modules/source-map-js/lib/array-set.js +var require_array_set = __commonJS((exports) => { + var util = require_util2(); + var has = Object.prototype.hasOwnProperty; + var hasNativeMap = typeof Map !== "undefined"; + function ArraySet() { + this._array = []; + this._set = hasNativeMap ? new Map : Object.create(null); + } + ArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) { + var set = new ArraySet; + for (var i = 0, len = aArray.length;i < len; i++) { + set.add(aArray[i], aAllowDuplicates); + } + return set; + }; + ArraySet.prototype.size = function ArraySet_size() { + return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length; + }; + ArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) { + var sStr = hasNativeMap ? aStr : util.toSetString(aStr); + var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr); + var idx = this._array.length; + if (!isDuplicate || aAllowDuplicates) { + this._array.push(aStr); + } + if (!isDuplicate) { + if (hasNativeMap) { + this._set.set(aStr, idx); + } else { + this._set[sStr] = idx; + } + } + }; + ArraySet.prototype.has = function ArraySet_has(aStr) { + if (hasNativeMap) { + return this._set.has(aStr); + } else { + var sStr = util.toSetString(aStr); + return has.call(this._set, sStr); + } + }; + ArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) { + if (hasNativeMap) { + var idx = this._set.get(aStr); + if (idx >= 0) { + return idx; + } + } else { + var sStr = util.toSetString(aStr); + if (has.call(this._set, sStr)) { + return this._set[sStr]; + } + } + throw new Error('"' + aStr + '" is not in the set.'); + }; + ArraySet.prototype.at = function ArraySet_at(aIdx) { + if (aIdx >= 0 && aIdx < this._array.length) { + return this._array[aIdx]; + } + throw new Error("No element indexed by " + aIdx); + }; + ArraySet.prototype.toArray = function ArraySet_toArray() { + return this._array.slice(); + }; + exports.ArraySet = ArraySet; +}); + +// node_modules/source-map-js/lib/mapping-list.js +var require_mapping_list = __commonJS((exports) => { + var util = require_util2(); + function generatedPositionAfter(mappingA, mappingB) { + var lineA = mappingA.generatedLine; + var lineB = mappingB.generatedLine; + var columnA = mappingA.generatedColumn; + var columnB = mappingB.generatedColumn; + return lineB > lineA || lineB == lineA && columnB >= columnA || util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0; + } + function MappingList() { + this._array = []; + this._sorted = true; + this._last = { generatedLine: -1, generatedColumn: 0 }; + } + MappingList.prototype.unsortedForEach = function MappingList_forEach(aCallback, aThisArg) { + this._array.forEach(aCallback, aThisArg); + }; + MappingList.prototype.add = function MappingList_add(aMapping) { + if (generatedPositionAfter(this._last, aMapping)) { + this._last = aMapping; + this._array.push(aMapping); + } else { + this._sorted = false; + this._array.push(aMapping); + } + }; + MappingList.prototype.toArray = function MappingList_toArray() { + if (!this._sorted) { + this._array.sort(util.compareByGeneratedPositionsInflated); + this._sorted = true; + } + return this._array; + }; + exports.MappingList = MappingList; +}); + +// node_modules/source-map-js/lib/source-map-generator.js +var require_source_map_generator = __commonJS((exports) => { + var base64VLQ = require_base64_vlq(); + var util = require_util2(); + var ArraySet = require_array_set().ArraySet; + var MappingList = require_mapping_list().MappingList; + function SourceMapGenerator(aArgs) { + if (!aArgs) { + aArgs = {}; + } + this._file = util.getArg(aArgs, "file", null); + this._sourceRoot = util.getArg(aArgs, "sourceRoot", null); + this._skipValidation = util.getArg(aArgs, "skipValidation", false); + this._ignoreInvalidMapping = util.getArg(aArgs, "ignoreInvalidMapping", false); + this._sources = new ArraySet; + this._names = new ArraySet; + this._mappings = new MappingList; + this._sourcesContents = null; + } + SourceMapGenerator.prototype._version = 3; + SourceMapGenerator.fromSourceMap = function SourceMapGenerator_fromSourceMap(aSourceMapConsumer, generatorOps) { + var sourceRoot = aSourceMapConsumer.sourceRoot; + var generator = new SourceMapGenerator(Object.assign(generatorOps || {}, { + file: aSourceMapConsumer.file, + sourceRoot + })); + aSourceMapConsumer.eachMapping(function(mapping) { + var newMapping = { + generated: { + line: mapping.generatedLine, + column: mapping.generatedColumn + } + }; + if (mapping.source != null) { + newMapping.source = mapping.source; + if (sourceRoot != null) { + newMapping.source = util.relative(sourceRoot, newMapping.source); + } + newMapping.original = { + line: mapping.originalLine, + column: mapping.originalColumn + }; + if (mapping.name != null) { + newMapping.name = mapping.name; + } + } + generator.addMapping(newMapping); + }); + aSourceMapConsumer.sources.forEach(function(sourceFile) { + var sourceRelative = sourceFile; + if (sourceRoot !== null) { + sourceRelative = util.relative(sourceRoot, sourceFile); + } + if (!generator._sources.has(sourceRelative)) { + generator._sources.add(sourceRelative); + } + var content = aSourceMapConsumer.sourceContentFor(sourceFile); + if (content != null) { + generator.setSourceContent(sourceFile, content); + } + }); + return generator; + }; + SourceMapGenerator.prototype.addMapping = function SourceMapGenerator_addMapping(aArgs) { + var generated = util.getArg(aArgs, "generated"); + var original = util.getArg(aArgs, "original", null); + var source = util.getArg(aArgs, "source", null); + var name = util.getArg(aArgs, "name", null); + if (!this._skipValidation) { + if (this._validateMapping(generated, original, source, name) === false) { + return; + } + } + if (source != null) { + source = String(source); + if (!this._sources.has(source)) { + this._sources.add(source); + } + } + if (name != null) { + name = String(name); + if (!this._names.has(name)) { + this._names.add(name); + } + } + this._mappings.add({ + generatedLine: generated.line, + generatedColumn: generated.column, + originalLine: original != null && original.line, + originalColumn: original != null && original.column, + source, + name + }); + }; + SourceMapGenerator.prototype.setSourceContent = function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) { + var source = aSourceFile; + if (this._sourceRoot != null) { + source = util.relative(this._sourceRoot, source); + } + if (aSourceContent != null) { + if (!this._sourcesContents) { + this._sourcesContents = Object.create(null); + } + this._sourcesContents[util.toSetString(source)] = aSourceContent; + } else if (this._sourcesContents) { + delete this._sourcesContents[util.toSetString(source)]; + if (Object.keys(this._sourcesContents).length === 0) { + this._sourcesContents = null; + } + } + }; + SourceMapGenerator.prototype.applySourceMap = function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) { + var sourceFile = aSourceFile; + if (aSourceFile == null) { + if (aSourceMapConsumer.file == null) { + throw new Error("SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, " + 'or the source map\'s "file" property. Both were omitted.'); + } + sourceFile = aSourceMapConsumer.file; + } + var sourceRoot = this._sourceRoot; + if (sourceRoot != null) { + sourceFile = util.relative(sourceRoot, sourceFile); + } + var newSources = new ArraySet; + var newNames = new ArraySet; + this._mappings.unsortedForEach(function(mapping) { + if (mapping.source === sourceFile && mapping.originalLine != null) { + var original = aSourceMapConsumer.originalPositionFor({ + line: mapping.originalLine, + column: mapping.originalColumn + }); + if (original.source != null) { + mapping.source = original.source; + if (aSourceMapPath != null) { + mapping.source = util.join(aSourceMapPath, mapping.source); + } + if (sourceRoot != null) { + mapping.source = util.relative(sourceRoot, mapping.source); + } + mapping.originalLine = original.line; + mapping.originalColumn = original.column; + if (original.name != null) { + mapping.name = original.name; + } + } + } + var source = mapping.source; + if (source != null && !newSources.has(source)) { + newSources.add(source); + } + var name = mapping.name; + if (name != null && !newNames.has(name)) { + newNames.add(name); + } + }, this); + this._sources = newSources; + this._names = newNames; + aSourceMapConsumer.sources.forEach(function(sourceFile2) { + var content = aSourceMapConsumer.sourceContentFor(sourceFile2); + if (content != null) { + if (aSourceMapPath != null) { + sourceFile2 = util.join(aSourceMapPath, sourceFile2); + } + if (sourceRoot != null) { + sourceFile2 = util.relative(sourceRoot, sourceFile2); + } + this.setSourceContent(sourceFile2, content); + } + }, this); + }; + SourceMapGenerator.prototype._validateMapping = function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource, aName) { + if (aOriginal && typeof aOriginal.line !== "number" && typeof aOriginal.column !== "number") { + var message = "original.line and original.column are not numbers -- you probably meant to omit " + "the original mapping entirely and only map the generated position. If so, pass " + "null for the original mapping instead of an object with empty or null values."; + if (this._ignoreInvalidMapping) { + if (typeof console !== "undefined" && console.warn) { + console.warn(message); + } + return false; + } else { + throw new Error(message); + } + } + if (aGenerated && "line" in aGenerated && "column" in aGenerated && aGenerated.line > 0 && aGenerated.column >= 0 && !aOriginal && !aSource && !aName) { + return; + } else if (aGenerated && "line" in aGenerated && "column" in aGenerated && aOriginal && "line" in aOriginal && "column" in aOriginal && aGenerated.line > 0 && aGenerated.column >= 0 && aOriginal.line > 0 && aOriginal.column >= 0 && aSource) { + return; + } else { + var message = "Invalid mapping: " + JSON.stringify({ + generated: aGenerated, + source: aSource, + original: aOriginal, + name: aName + }); + if (this._ignoreInvalidMapping) { + if (typeof console !== "undefined" && console.warn) { + console.warn(message); + } + return false; + } else { + throw new Error(message); + } + } + }; + SourceMapGenerator.prototype._serializeMappings = function SourceMapGenerator_serializeMappings() { + var previousGeneratedColumn = 0; + var previousGeneratedLine = 1; + var previousOriginalColumn = 0; + var previousOriginalLine = 0; + var previousName = 0; + var previousSource = 0; + var result = ""; + var next; + var mapping; + var nameIdx; + var sourceIdx; + var mappings = this._mappings.toArray(); + for (var i = 0, len = mappings.length;i < len; i++) { + mapping = mappings[i]; + next = ""; + if (mapping.generatedLine !== previousGeneratedLine) { + previousGeneratedColumn = 0; + while (mapping.generatedLine !== previousGeneratedLine) { + next += ";"; + previousGeneratedLine++; + } + } else { + if (i > 0) { + if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) { + continue; + } + next += ","; + } + } + next += base64VLQ.encode(mapping.generatedColumn - previousGeneratedColumn); + previousGeneratedColumn = mapping.generatedColumn; + if (mapping.source != null) { + sourceIdx = this._sources.indexOf(mapping.source); + next += base64VLQ.encode(sourceIdx - previousSource); + previousSource = sourceIdx; + next += base64VLQ.encode(mapping.originalLine - 1 - previousOriginalLine); + previousOriginalLine = mapping.originalLine - 1; + next += base64VLQ.encode(mapping.originalColumn - previousOriginalColumn); + previousOriginalColumn = mapping.originalColumn; + if (mapping.name != null) { + nameIdx = this._names.indexOf(mapping.name); + next += base64VLQ.encode(nameIdx - previousName); + previousName = nameIdx; + } + } + result += next; + } + return result; + }; + SourceMapGenerator.prototype._generateSourcesContent = function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) { + return aSources.map(function(source) { + if (!this._sourcesContents) { + return null; + } + if (aSourceRoot != null) { + source = util.relative(aSourceRoot, source); + } + var key = util.toSetString(source); + return Object.prototype.hasOwnProperty.call(this._sourcesContents, key) ? this._sourcesContents[key] : null; + }, this); + }; + SourceMapGenerator.prototype.toJSON = function SourceMapGenerator_toJSON() { + var map = { + version: this._version, + sources: this._sources.toArray(), + names: this._names.toArray(), + mappings: this._serializeMappings() + }; + if (this._file != null) { + map.file = this._file; + } + if (this._sourceRoot != null) { + map.sourceRoot = this._sourceRoot; + } + if (this._sourcesContents) { + map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot); + } + return map; + }; + SourceMapGenerator.prototype.toString = function SourceMapGenerator_toString() { + return JSON.stringify(this.toJSON()); + }; + exports.SourceMapGenerator = SourceMapGenerator; +}); + +// node_modules/source-map-js/lib/binary-search.js +var require_binary_search = __commonJS((exports) => { + exports.GREATEST_LOWER_BOUND = 1; + exports.LEAST_UPPER_BOUND = 2; + function recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) { + var mid = Math.floor((aHigh - aLow) / 2) + aLow; + var cmp = aCompare(aNeedle, aHaystack[mid], true); + if (cmp === 0) { + return mid; + } else if (cmp > 0) { + if (aHigh - mid > 1) { + return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias); + } + if (aBias == exports.LEAST_UPPER_BOUND) { + return aHigh < aHaystack.length ? aHigh : -1; + } else { + return mid; + } + } else { + if (mid - aLow > 1) { + return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias); + } + if (aBias == exports.LEAST_UPPER_BOUND) { + return mid; + } else { + return aLow < 0 ? -1 : aLow; + } + } + } + exports.search = function search(aNeedle, aHaystack, aCompare, aBias) { + if (aHaystack.length === 0) { + return -1; + } + var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack, aCompare, aBias || exports.GREATEST_LOWER_BOUND); + if (index < 0) { + return -1; + } + while (index - 1 >= 0) { + if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) { + break; + } + --index; + } + return index; + }; +}); + +// node_modules/source-map-js/lib/quick-sort.js +var require_quick_sort = __commonJS((exports) => { + function SortTemplate(comparator) { + function swap(ary, x, y) { + var temp = ary[x]; + ary[x] = ary[y]; + ary[y] = temp; + } + function randomIntInRange(low, high) { + return Math.round(low + Math.random() * (high - low)); + } + function doQuickSort(ary, comparator2, p, r) { + if (p < r) { + var pivotIndex = randomIntInRange(p, r); + var i = p - 1; + swap(ary, pivotIndex, r); + var pivot = ary[r]; + for (var j = p;j < r; j++) { + if (comparator2(ary[j], pivot, false) <= 0) { + i += 1; + swap(ary, i, j); + } + } + swap(ary, i + 1, j); + var q = i + 1; + doQuickSort(ary, comparator2, p, q - 1); + doQuickSort(ary, comparator2, q + 1, r); + } + } + return doQuickSort; + } + function cloneSort(comparator) { + let template = SortTemplate.toString(); + let templateFn = new Function(`return ${template}`)(); + return templateFn(comparator); + } + var sortCache = new WeakMap; + exports.quickSort = function(ary, comparator, start = 0) { + let doQuickSort = sortCache.get(comparator); + if (doQuickSort === undefined) { + doQuickSort = cloneSort(comparator); + sortCache.set(comparator, doQuickSort); + } + doQuickSort(ary, comparator, start, ary.length - 1); + }; +}); + +// node_modules/source-map-js/lib/source-map-consumer.js +var require_source_map_consumer = __commonJS((exports) => { + var util = require_util2(); + var binarySearch = require_binary_search(); + var ArraySet = require_array_set().ArraySet; + var base64VLQ = require_base64_vlq(); + var quickSort = require_quick_sort().quickSort; + function SourceMapConsumer(aSourceMap, aSourceMapURL) { + var sourceMap = aSourceMap; + if (typeof aSourceMap === "string") { + sourceMap = util.parseSourceMapInput(aSourceMap); + } + return sourceMap.sections != null ? new IndexedSourceMapConsumer(sourceMap, aSourceMapURL) : new BasicSourceMapConsumer(sourceMap, aSourceMapURL); + } + SourceMapConsumer.fromSourceMap = function(aSourceMap, aSourceMapURL) { + return BasicSourceMapConsumer.fromSourceMap(aSourceMap, aSourceMapURL); + }; + SourceMapConsumer.prototype._version = 3; + SourceMapConsumer.prototype.__generatedMappings = null; + Object.defineProperty(SourceMapConsumer.prototype, "_generatedMappings", { + configurable: true, + enumerable: true, + get: function() { + if (!this.__generatedMappings) { + this._parseMappings(this._mappings, this.sourceRoot); + } + return this.__generatedMappings; + } + }); + SourceMapConsumer.prototype.__originalMappings = null; + Object.defineProperty(SourceMapConsumer.prototype, "_originalMappings", { + configurable: true, + enumerable: true, + get: function() { + if (!this.__originalMappings) { + this._parseMappings(this._mappings, this.sourceRoot); + } + return this.__originalMappings; + } + }); + SourceMapConsumer.prototype._charIsMappingSeparator = function SourceMapConsumer_charIsMappingSeparator(aStr, index) { + var c = aStr.charAt(index); + return c === ";" || c === ","; + }; + SourceMapConsumer.prototype._parseMappings = function SourceMapConsumer_parseMappings(aStr, aSourceRoot) { + throw new Error("Subclasses must implement _parseMappings"); + }; + SourceMapConsumer.GENERATED_ORDER = 1; + SourceMapConsumer.ORIGINAL_ORDER = 2; + SourceMapConsumer.GREATEST_LOWER_BOUND = 1; + SourceMapConsumer.LEAST_UPPER_BOUND = 2; + SourceMapConsumer.prototype.eachMapping = function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) { + var context = aContext || null; + var order = aOrder || SourceMapConsumer.GENERATED_ORDER; + var mappings; + switch (order) { + case SourceMapConsumer.GENERATED_ORDER: + mappings = this._generatedMappings; + break; + case SourceMapConsumer.ORIGINAL_ORDER: + mappings = this._originalMappings; + break; + default: + throw new Error("Unknown order of iteration."); + } + var sourceRoot = this.sourceRoot; + var boundCallback = aCallback.bind(context); + var names = this._names; + var sources = this._sources; + var sourceMapURL = this._sourceMapURL; + for (var i = 0, n = mappings.length;i < n; i++) { + var mapping = mappings[i]; + var source = mapping.source === null ? null : sources.at(mapping.source); + if (source !== null) { + source = util.computeSourceURL(sourceRoot, source, sourceMapURL); + } + boundCallback({ + source, + generatedLine: mapping.generatedLine, + generatedColumn: mapping.generatedColumn, + originalLine: mapping.originalLine, + originalColumn: mapping.originalColumn, + name: mapping.name === null ? null : names.at(mapping.name) + }); + } + }; + SourceMapConsumer.prototype.allGeneratedPositionsFor = function SourceMapConsumer_allGeneratedPositionsFor(aArgs) { + var line = util.getArg(aArgs, "line"); + var needle = { + source: util.getArg(aArgs, "source"), + originalLine: line, + originalColumn: util.getArg(aArgs, "column", 0) + }; + needle.source = this._findSourceIndex(needle.source); + if (needle.source < 0) { + return []; + } + var mappings = []; + var index = this._findMapping(needle, this._originalMappings, "originalLine", "originalColumn", util.compareByOriginalPositions, binarySearch.LEAST_UPPER_BOUND); + if (index >= 0) { + var mapping = this._originalMappings[index]; + if (aArgs.column === undefined) { + var originalLine = mapping.originalLine; + while (mapping && mapping.originalLine === originalLine) { + mappings.push({ + line: util.getArg(mapping, "generatedLine", null), + column: util.getArg(mapping, "generatedColumn", null), + lastColumn: util.getArg(mapping, "lastGeneratedColumn", null) + }); + mapping = this._originalMappings[++index]; + } + } else { + var originalColumn = mapping.originalColumn; + while (mapping && mapping.originalLine === line && mapping.originalColumn == originalColumn) { + mappings.push({ + line: util.getArg(mapping, "generatedLine", null), + column: util.getArg(mapping, "generatedColumn", null), + lastColumn: util.getArg(mapping, "lastGeneratedColumn", null) + }); + mapping = this._originalMappings[++index]; + } + } + } + return mappings; + }; + exports.SourceMapConsumer = SourceMapConsumer; + function BasicSourceMapConsumer(aSourceMap, aSourceMapURL) { + var sourceMap = aSourceMap; + if (typeof aSourceMap === "string") { + sourceMap = util.parseSourceMapInput(aSourceMap); + } + var version = util.getArg(sourceMap, "version"); + var sources = util.getArg(sourceMap, "sources"); + var names = util.getArg(sourceMap, "names", []); + var sourceRoot = util.getArg(sourceMap, "sourceRoot", null); + var sourcesContent = util.getArg(sourceMap, "sourcesContent", null); + var mappings = util.getArg(sourceMap, "mappings"); + var file = util.getArg(sourceMap, "file", null); + if (version != this._version) { + throw new Error("Unsupported version: " + version); + } + if (sourceRoot) { + sourceRoot = util.normalize(sourceRoot); + } + sources = sources.map(String).map(util.normalize).map(function(source) { + return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source) ? util.relative(sourceRoot, source) : source; + }); + this._names = ArraySet.fromArray(names.map(String), true); + this._sources = ArraySet.fromArray(sources, true); + this._absoluteSources = this._sources.toArray().map(function(s) { + return util.computeSourceURL(sourceRoot, s, aSourceMapURL); + }); + this.sourceRoot = sourceRoot; + this.sourcesContent = sourcesContent; + this._mappings = mappings; + this._sourceMapURL = aSourceMapURL; + this.file = file; + } + BasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype); + BasicSourceMapConsumer.prototype.consumer = SourceMapConsumer; + BasicSourceMapConsumer.prototype._findSourceIndex = function(aSource) { + var relativeSource = aSource; + if (this.sourceRoot != null) { + relativeSource = util.relative(this.sourceRoot, relativeSource); + } + if (this._sources.has(relativeSource)) { + return this._sources.indexOf(relativeSource); + } + var i; + for (i = 0;i < this._absoluteSources.length; ++i) { + if (this._absoluteSources[i] == aSource) { + return i; + } + } + return -1; + }; + BasicSourceMapConsumer.fromSourceMap = function SourceMapConsumer_fromSourceMap(aSourceMap, aSourceMapURL) { + var smc = Object.create(BasicSourceMapConsumer.prototype); + var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true); + var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true); + smc.sourceRoot = aSourceMap._sourceRoot; + smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(), smc.sourceRoot); + smc.file = aSourceMap._file; + smc._sourceMapURL = aSourceMapURL; + smc._absoluteSources = smc._sources.toArray().map(function(s) { + return util.computeSourceURL(smc.sourceRoot, s, aSourceMapURL); + }); + var generatedMappings = aSourceMap._mappings.toArray().slice(); + var destGeneratedMappings = smc.__generatedMappings = []; + var destOriginalMappings = smc.__originalMappings = []; + for (var i = 0, length = generatedMappings.length;i < length; i++) { + var srcMapping = generatedMappings[i]; + var destMapping = new Mapping; + destMapping.generatedLine = srcMapping.generatedLine; + destMapping.generatedColumn = srcMapping.generatedColumn; + if (srcMapping.source) { + destMapping.source = sources.indexOf(srcMapping.source); + destMapping.originalLine = srcMapping.originalLine; + destMapping.originalColumn = srcMapping.originalColumn; + if (srcMapping.name) { + destMapping.name = names.indexOf(srcMapping.name); + } + destOriginalMappings.push(destMapping); + } + destGeneratedMappings.push(destMapping); + } + quickSort(smc.__originalMappings, util.compareByOriginalPositions); + return smc; + }; + BasicSourceMapConsumer.prototype._version = 3; + Object.defineProperty(BasicSourceMapConsumer.prototype, "sources", { + get: function() { + return this._absoluteSources.slice(); + } + }); + function Mapping() { + this.generatedLine = 0; + this.generatedColumn = 0; + this.source = null; + this.originalLine = null; + this.originalColumn = null; + this.name = null; + } + var compareGenerated = util.compareByGeneratedPositionsDeflatedNoLine; + function sortGenerated(array, start) { + let l = array.length; + let n = array.length - start; + if (n <= 1) { + return; + } else if (n == 2) { + let a = array[start]; + let b = array[start + 1]; + if (compareGenerated(a, b) > 0) { + array[start] = b; + array[start + 1] = a; + } + } else if (n < 20) { + for (let i = start;i < l; i++) { + for (let j = i;j > start; j--) { + let a = array[j - 1]; + let b = array[j]; + if (compareGenerated(a, b) <= 0) { + break; + } + array[j - 1] = b; + array[j] = a; + } + } + } else { + quickSort(array, compareGenerated, start); + } + } + BasicSourceMapConsumer.prototype._parseMappings = function SourceMapConsumer_parseMappings(aStr, aSourceRoot) { + var generatedLine = 1; + var previousGeneratedColumn = 0; + var previousOriginalLine = 0; + var previousOriginalColumn = 0; + var previousSource = 0; + var previousName = 0; + var length = aStr.length; + var index = 0; + var cachedSegments = {}; + var temp = {}; + var originalMappings = []; + var generatedMappings = []; + var mapping, str, segment, end, value; + let subarrayStart = 0; + while (index < length) { + if (aStr.charAt(index) === ";") { + generatedLine++; + index++; + previousGeneratedColumn = 0; + sortGenerated(generatedMappings, subarrayStart); + subarrayStart = generatedMappings.length; + } else if (aStr.charAt(index) === ",") { + index++; + } else { + mapping = new Mapping; + mapping.generatedLine = generatedLine; + for (end = index;end < length; end++) { + if (this._charIsMappingSeparator(aStr, end)) { + break; + } + } + str = aStr.slice(index, end); + segment = []; + while (index < end) { + base64VLQ.decode(aStr, index, temp); + value = temp.value; + index = temp.rest; + segment.push(value); + } + if (segment.length === 2) { + throw new Error("Found a source, but no line and column"); + } + if (segment.length === 3) { + throw new Error("Found a source and line, but no column"); + } + mapping.generatedColumn = previousGeneratedColumn + segment[0]; + previousGeneratedColumn = mapping.generatedColumn; + if (segment.length > 1) { + mapping.source = previousSource + segment[1]; + previousSource += segment[1]; + mapping.originalLine = previousOriginalLine + segment[2]; + previousOriginalLine = mapping.originalLine; + mapping.originalLine += 1; + mapping.originalColumn = previousOriginalColumn + segment[3]; + previousOriginalColumn = mapping.originalColumn; + if (segment.length > 4) { + mapping.name = previousName + segment[4]; + previousName += segment[4]; + } + } + generatedMappings.push(mapping); + if (typeof mapping.originalLine === "number") { + let currentSource = mapping.source; + while (originalMappings.length <= currentSource) { + originalMappings.push(null); + } + if (originalMappings[currentSource] === null) { + originalMappings[currentSource] = []; + } + originalMappings[currentSource].push(mapping); + } + } + } + sortGenerated(generatedMappings, subarrayStart); + this.__generatedMappings = generatedMappings; + for (var i = 0;i < originalMappings.length; i++) { + if (originalMappings[i] != null) { + quickSort(originalMappings[i], util.compareByOriginalPositionsNoSource); + } + } + this.__originalMappings = [].concat(...originalMappings); + }; + BasicSourceMapConsumer.prototype._findMapping = function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName, aColumnName, aComparator, aBias) { + if (aNeedle[aLineName] <= 0) { + throw new TypeError("Line must be greater than or equal to 1, got " + aNeedle[aLineName]); + } + if (aNeedle[aColumnName] < 0) { + throw new TypeError("Column must be greater than or equal to 0, got " + aNeedle[aColumnName]); + } + return binarySearch.search(aNeedle, aMappings, aComparator, aBias); + }; + BasicSourceMapConsumer.prototype.computeColumnSpans = function SourceMapConsumer_computeColumnSpans() { + for (var index = 0;index < this._generatedMappings.length; ++index) { + var mapping = this._generatedMappings[index]; + if (index + 1 < this._generatedMappings.length) { + var nextMapping = this._generatedMappings[index + 1]; + if (mapping.generatedLine === nextMapping.generatedLine) { + mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1; + continue; + } + } + mapping.lastGeneratedColumn = Infinity; + } + }; + BasicSourceMapConsumer.prototype.originalPositionFor = function SourceMapConsumer_originalPositionFor(aArgs) { + var needle = { + generatedLine: util.getArg(aArgs, "line"), + generatedColumn: util.getArg(aArgs, "column") + }; + var index = this._findMapping(needle, this._generatedMappings, "generatedLine", "generatedColumn", util.compareByGeneratedPositionsDeflated, util.getArg(aArgs, "bias", SourceMapConsumer.GREATEST_LOWER_BOUND)); + if (index >= 0) { + var mapping = this._generatedMappings[index]; + if (mapping.generatedLine === needle.generatedLine) { + var source = util.getArg(mapping, "source", null); + if (source !== null) { + source = this._sources.at(source); + source = util.computeSourceURL(this.sourceRoot, source, this._sourceMapURL); + } + var name = util.getArg(mapping, "name", null); + if (name !== null) { + name = this._names.at(name); + } + return { + source, + line: util.getArg(mapping, "originalLine", null), + column: util.getArg(mapping, "originalColumn", null), + name + }; + } + } + return { + source: null, + line: null, + column: null, + name: null + }; + }; + BasicSourceMapConsumer.prototype.hasContentsOfAllSources = function BasicSourceMapConsumer_hasContentsOfAllSources() { + if (!this.sourcesContent) { + return false; + } + return this.sourcesContent.length >= this._sources.size() && !this.sourcesContent.some(function(sc) { + return sc == null; + }); + }; + BasicSourceMapConsumer.prototype.sourceContentFor = function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) { + if (!this.sourcesContent) { + return null; + } + var index = this._findSourceIndex(aSource); + if (index >= 0) { + return this.sourcesContent[index]; + } + var relativeSource = aSource; + if (this.sourceRoot != null) { + relativeSource = util.relative(this.sourceRoot, relativeSource); + } + var url; + if (this.sourceRoot != null && (url = util.urlParse(this.sourceRoot))) { + var fileUriAbsPath = relativeSource.replace(/^file:\/\//, ""); + if (url.scheme == "file" && this._sources.has(fileUriAbsPath)) { + return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]; + } + if ((!url.path || url.path == "/") && this._sources.has("/" + relativeSource)) { + return this.sourcesContent[this._sources.indexOf("/" + relativeSource)]; + } + } + if (nullOnMissing) { + return null; + } else { + throw new Error('"' + relativeSource + '" is not in the SourceMap.'); + } + }; + BasicSourceMapConsumer.prototype.generatedPositionFor = function SourceMapConsumer_generatedPositionFor(aArgs) { + var source = util.getArg(aArgs, "source"); + source = this._findSourceIndex(source); + if (source < 0) { + return { + line: null, + column: null, + lastColumn: null + }; + } + var needle = { + source, + originalLine: util.getArg(aArgs, "line"), + originalColumn: util.getArg(aArgs, "column") + }; + var index = this._findMapping(needle, this._originalMappings, "originalLine", "originalColumn", util.compareByOriginalPositions, util.getArg(aArgs, "bias", SourceMapConsumer.GREATEST_LOWER_BOUND)); + if (index >= 0) { + var mapping = this._originalMappings[index]; + if (mapping.source === needle.source) { + return { + line: util.getArg(mapping, "generatedLine", null), + column: util.getArg(mapping, "generatedColumn", null), + lastColumn: util.getArg(mapping, "lastGeneratedColumn", null) + }; + } + } + return { + line: null, + column: null, + lastColumn: null + }; + }; + exports.BasicSourceMapConsumer = BasicSourceMapConsumer; + function IndexedSourceMapConsumer(aSourceMap, aSourceMapURL) { + var sourceMap = aSourceMap; + if (typeof aSourceMap === "string") { + sourceMap = util.parseSourceMapInput(aSourceMap); + } + var version = util.getArg(sourceMap, "version"); + var sections = util.getArg(sourceMap, "sections"); + if (version != this._version) { + throw new Error("Unsupported version: " + version); + } + this._sources = new ArraySet; + this._names = new ArraySet; + var lastOffset = { + line: -1, + column: 0 + }; + this._sections = sections.map(function(s) { + if (s.url) { + throw new Error("Support for url field in sections not implemented."); + } + var offset = util.getArg(s, "offset"); + var offsetLine = util.getArg(offset, "line"); + var offsetColumn = util.getArg(offset, "column"); + if (offsetLine < lastOffset.line || offsetLine === lastOffset.line && offsetColumn < lastOffset.column) { + throw new Error("Section offsets must be ordered and non-overlapping."); + } + lastOffset = offset; + return { + generatedOffset: { + generatedLine: offsetLine + 1, + generatedColumn: offsetColumn + 1 + }, + consumer: new SourceMapConsumer(util.getArg(s, "map"), aSourceMapURL) + }; + }); + } + IndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype); + IndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer; + IndexedSourceMapConsumer.prototype._version = 3; + Object.defineProperty(IndexedSourceMapConsumer.prototype, "sources", { + get: function() { + var sources = []; + for (var i = 0;i < this._sections.length; i++) { + for (var j = 0;j < this._sections[i].consumer.sources.length; j++) { + sources.push(this._sections[i].consumer.sources[j]); + } + } + return sources; + } + }); + IndexedSourceMapConsumer.prototype.originalPositionFor = function IndexedSourceMapConsumer_originalPositionFor(aArgs) { + var needle = { + generatedLine: util.getArg(aArgs, "line"), + generatedColumn: util.getArg(aArgs, "column") + }; + var sectionIndex = binarySearch.search(needle, this._sections, function(needle2, section2) { + var cmp = needle2.generatedLine - section2.generatedOffset.generatedLine; + if (cmp) { + return cmp; + } + return needle2.generatedColumn - section2.generatedOffset.generatedColumn; + }); + var section = this._sections[sectionIndex]; + if (!section) { + return { + source: null, + line: null, + column: null, + name: null + }; + } + return section.consumer.originalPositionFor({ + line: needle.generatedLine - (section.generatedOffset.generatedLine - 1), + column: needle.generatedColumn - (section.generatedOffset.generatedLine === needle.generatedLine ? section.generatedOffset.generatedColumn - 1 : 0), + bias: aArgs.bias + }); + }; + IndexedSourceMapConsumer.prototype.hasContentsOfAllSources = function IndexedSourceMapConsumer_hasContentsOfAllSources() { + return this._sections.every(function(s) { + return s.consumer.hasContentsOfAllSources(); + }); + }; + IndexedSourceMapConsumer.prototype.sourceContentFor = function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) { + for (var i = 0;i < this._sections.length; i++) { + var section = this._sections[i]; + var content = section.consumer.sourceContentFor(aSource, true); + if (content || content === "") { + return content; + } + } + if (nullOnMissing) { + return null; + } else { + throw new Error('"' + aSource + '" is not in the SourceMap.'); + } + }; + IndexedSourceMapConsumer.prototype.generatedPositionFor = function IndexedSourceMapConsumer_generatedPositionFor(aArgs) { + for (var i = 0;i < this._sections.length; i++) { + var section = this._sections[i]; + if (section.consumer._findSourceIndex(util.getArg(aArgs, "source")) === -1) { + continue; + } + var generatedPosition = section.consumer.generatedPositionFor(aArgs); + if (generatedPosition) { + var ret = { + line: generatedPosition.line + (section.generatedOffset.generatedLine - 1), + column: generatedPosition.column + (section.generatedOffset.generatedLine === generatedPosition.line ? section.generatedOffset.generatedColumn - 1 : 0) + }; + return ret; + } + } + return { + line: null, + column: null + }; + }; + IndexedSourceMapConsumer.prototype._parseMappings = function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) { + this.__generatedMappings = []; + this.__originalMappings = []; + for (var i = 0;i < this._sections.length; i++) { + var section = this._sections[i]; + var sectionMappings = section.consumer._generatedMappings; + for (var j = 0;j < sectionMappings.length; j++) { + var mapping = sectionMappings[j]; + var source = section.consumer._sources.at(mapping.source); + if (source !== null) { + source = util.computeSourceURL(section.consumer.sourceRoot, source, this._sourceMapURL); + } + this._sources.add(source); + source = this._sources.indexOf(source); + var name = null; + if (mapping.name) { + name = section.consumer._names.at(mapping.name); + this._names.add(name); + name = this._names.indexOf(name); + } + var adjustedMapping = { + source, + generatedLine: mapping.generatedLine + (section.generatedOffset.generatedLine - 1), + generatedColumn: mapping.generatedColumn + (section.generatedOffset.generatedLine === mapping.generatedLine ? section.generatedOffset.generatedColumn - 1 : 0), + originalLine: mapping.originalLine, + originalColumn: mapping.originalColumn, + name + }; + this.__generatedMappings.push(adjustedMapping); + if (typeof adjustedMapping.originalLine === "number") { + this.__originalMappings.push(adjustedMapping); + } + } + } + quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated); + quickSort(this.__originalMappings, util.compareByOriginalPositions); + }; + exports.IndexedSourceMapConsumer = IndexedSourceMapConsumer; +}); + +// node_modules/source-map-js/lib/source-node.js +var require_source_node = __commonJS((exports) => { + var SourceMapGenerator = require_source_map_generator().SourceMapGenerator; + var util = require_util2(); + var REGEX_NEWLINE = /(\r?\n)/; + var NEWLINE_CODE = 10; + var isSourceNode = "$$$isSourceNode$$$"; + function SourceNode(aLine, aColumn, aSource, aChunks, aName) { + this.children = []; + this.sourceContents = {}; + this.line = aLine == null ? null : aLine; + this.column = aColumn == null ? null : aColumn; + this.source = aSource == null ? null : aSource; + this.name = aName == null ? null : aName; + this[isSourceNode] = true; + if (aChunks != null) + this.add(aChunks); + } + SourceNode.fromStringWithSourceMap = function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) { + var node = new SourceNode; + var remainingLines = aGeneratedCode.split(REGEX_NEWLINE); + var remainingLinesIndex = 0; + var shiftNextLine = function() { + var lineContents = getNextLine(); + var newLine = getNextLine() || ""; + return lineContents + newLine; + function getNextLine() { + return remainingLinesIndex < remainingLines.length ? remainingLines[remainingLinesIndex++] : undefined; + } + }; + var lastGeneratedLine = 1, lastGeneratedColumn = 0; + var lastMapping = null; + aSourceMapConsumer.eachMapping(function(mapping) { + if (lastMapping !== null) { + if (lastGeneratedLine < mapping.generatedLine) { + addMappingWithCode(lastMapping, shiftNextLine()); + lastGeneratedLine++; + lastGeneratedColumn = 0; + } else { + var nextLine = remainingLines[remainingLinesIndex] || ""; + var code = nextLine.substr(0, mapping.generatedColumn - lastGeneratedColumn); + remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn - lastGeneratedColumn); + lastGeneratedColumn = mapping.generatedColumn; + addMappingWithCode(lastMapping, code); + lastMapping = mapping; + return; + } + } + while (lastGeneratedLine < mapping.generatedLine) { + node.add(shiftNextLine()); + lastGeneratedLine++; + } + if (lastGeneratedColumn < mapping.generatedColumn) { + var nextLine = remainingLines[remainingLinesIndex] || ""; + node.add(nextLine.substr(0, mapping.generatedColumn)); + remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn); + lastGeneratedColumn = mapping.generatedColumn; + } + lastMapping = mapping; + }, this); + if (remainingLinesIndex < remainingLines.length) { + if (lastMapping) { + addMappingWithCode(lastMapping, shiftNextLine()); + } + node.add(remainingLines.splice(remainingLinesIndex).join("")); + } + aSourceMapConsumer.sources.forEach(function(sourceFile) { + var content = aSourceMapConsumer.sourceContentFor(sourceFile); + if (content != null) { + if (aRelativePath != null) { + sourceFile = util.join(aRelativePath, sourceFile); + } + node.setSourceContent(sourceFile, content); + } + }); + return node; + function addMappingWithCode(mapping, code) { + if (mapping === null || mapping.source === undefined) { + node.add(code); + } else { + var source = aRelativePath ? util.join(aRelativePath, mapping.source) : mapping.source; + node.add(new SourceNode(mapping.originalLine, mapping.originalColumn, source, code, mapping.name)); + } + } + }; + SourceNode.prototype.add = function SourceNode_add(aChunk) { + if (Array.isArray(aChunk)) { + aChunk.forEach(function(chunk) { + this.add(chunk); + }, this); + } else if (aChunk[isSourceNode] || typeof aChunk === "string") { + if (aChunk) { + this.children.push(aChunk); + } + } else { + throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk); + } + return this; + }; + SourceNode.prototype.prepend = function SourceNode_prepend(aChunk) { + if (Array.isArray(aChunk)) { + for (var i = aChunk.length - 1;i >= 0; i--) { + this.prepend(aChunk[i]); + } + } else if (aChunk[isSourceNode] || typeof aChunk === "string") { + this.children.unshift(aChunk); + } else { + throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk); + } + return this; + }; + SourceNode.prototype.walk = function SourceNode_walk(aFn) { + var chunk; + for (var i = 0, len = this.children.length;i < len; i++) { + chunk = this.children[i]; + if (chunk[isSourceNode]) { + chunk.walk(aFn); + } else { + if (chunk !== "") { + aFn(chunk, { + source: this.source, + line: this.line, + column: this.column, + name: this.name + }); + } + } + } + }; + SourceNode.prototype.join = function SourceNode_join(aSep) { + var newChildren; + var i; + var len = this.children.length; + if (len > 0) { + newChildren = []; + for (i = 0;i < len - 1; i++) { + newChildren.push(this.children[i]); + newChildren.push(aSep); + } + newChildren.push(this.children[i]); + this.children = newChildren; + } + return this; + }; + SourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) { + var lastChild = this.children[this.children.length - 1]; + if (lastChild[isSourceNode]) { + lastChild.replaceRight(aPattern, aReplacement); + } else if (typeof lastChild === "string") { + this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement); + } else { + this.children.push("".replace(aPattern, aReplacement)); + } + return this; + }; + SourceNode.prototype.setSourceContent = function SourceNode_setSourceContent(aSourceFile, aSourceContent) { + this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent; + }; + SourceNode.prototype.walkSourceContents = function SourceNode_walkSourceContents(aFn) { + for (var i = 0, len = this.children.length;i < len; i++) { + if (this.children[i][isSourceNode]) { + this.children[i].walkSourceContents(aFn); + } + } + var sources = Object.keys(this.sourceContents); + for (var i = 0, len = sources.length;i < len; i++) { + aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]); + } + }; + SourceNode.prototype.toString = function SourceNode_toString() { + var str = ""; + this.walk(function(chunk) { + str += chunk; + }); + return str; + }; + SourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) { + var generated = { + code: "", + line: 1, + column: 0 + }; + var map = new SourceMapGenerator(aArgs); + var sourceMappingActive = false; + var lastOriginalSource = null; + var lastOriginalLine = null; + var lastOriginalColumn = null; + var lastOriginalName = null; + this.walk(function(chunk, original) { + generated.code += chunk; + if (original.source !== null && original.line !== null && original.column !== null) { + if (lastOriginalSource !== original.source || lastOriginalLine !== original.line || lastOriginalColumn !== original.column || lastOriginalName !== original.name) { + map.addMapping({ + source: original.source, + original: { + line: original.line, + column: original.column + }, + generated: { + line: generated.line, + column: generated.column + }, + name: original.name + }); + } + lastOriginalSource = original.source; + lastOriginalLine = original.line; + lastOriginalColumn = original.column; + lastOriginalName = original.name; + sourceMappingActive = true; + } else if (sourceMappingActive) { + map.addMapping({ + generated: { + line: generated.line, + column: generated.column + } + }); + lastOriginalSource = null; + sourceMappingActive = false; + } + for (var idx = 0, length = chunk.length;idx < length; idx++) { + if (chunk.charCodeAt(idx) === NEWLINE_CODE) { + generated.line++; + generated.column = 0; + if (idx + 1 === length) { + lastOriginalSource = null; + sourceMappingActive = false; + } else if (sourceMappingActive) { + map.addMapping({ + source: original.source, + original: { + line: original.line, + column: original.column + }, + generated: { + line: generated.line, + column: generated.column + }, + name: original.name + }); + } + } else { + generated.column++; + } + } + }); + this.walkSourceContents(function(sourceFile, sourceContent) { + map.setSourceContent(sourceFile, sourceContent); + }); + return { code: generated.code, map }; + }; + exports.SourceNode = SourceNode; +}); + +// node_modules/source-map-js/source-map.js +var require_source_map = __commonJS((exports) => { + exports.SourceMapGenerator = require_source_map_generator().SourceMapGenerator; + exports.SourceMapConsumer = require_source_map_consumer().SourceMapConsumer; + exports.SourceNode = require_source_node().SourceNode; +}); + +// node_modules/postcss/lib/previous-map.js +var require_previous_map = __commonJS((exports, module) => { + var { existsSync, readFileSync } = __require("fs"); + var { dirname, join } = __require("path"); + var { SourceMapConsumer, SourceMapGenerator } = require_source_map(); + function fromBase64(str) { + if (Buffer) { + return Buffer.from(str, "base64").toString(); + } else { + return window.atob(str); + } + } + + class PreviousMap { + constructor(css, opts) { + if (opts.map === false) + return; + this.loadAnnotation(css); + this.inline = this.startWith(this.annotation, "data:"); + let prev = opts.map ? opts.map.prev : undefined; + let text = this.loadMap(opts.from, prev); + if (!this.mapFile && opts.from) { + this.mapFile = opts.from; + } + if (this.mapFile) + this.root = dirname(this.mapFile); + if (text) + this.text = text; + } + consumer() { + if (!this.consumerCache) { + this.consumerCache = new SourceMapConsumer(this.text); + } + return this.consumerCache; + } + decodeInline(text) { + let baseCharsetUri = /^data:application\/json;charset=utf-?8;base64,/; + let baseUri = /^data:application\/json;base64,/; + let charsetUri = /^data:application\/json;charset=utf-?8,/; + let uri = /^data:application\/json,/; + let uriMatch = text.match(charsetUri) || text.match(uri); + if (uriMatch) { + return decodeURIComponent(text.substr(uriMatch[0].length)); + } + let baseUriMatch = text.match(baseCharsetUri) || text.match(baseUri); + if (baseUriMatch) { + return fromBase64(text.substr(baseUriMatch[0].length)); + } + let encoding = text.match(/data:application\/json;([^,]+),/)[1]; + throw new Error("Unsupported source map encoding " + encoding); + } + getAnnotationURL(sourceMapString) { + return sourceMapString.replace(/^\/\*\s*# sourceMappingURL=/, "").trim(); + } + isMap(map) { + if (typeof map !== "object") + return false; + return typeof map.mappings === "string" || typeof map._mappings === "string" || Array.isArray(map.sections); + } + loadAnnotation(css) { + let comments = css.match(/\/\*\s*# sourceMappingURL=/g); + if (!comments) + return; + let start = css.lastIndexOf(comments.pop()); + let end = css.indexOf("*/", start); + if (start > -1 && end > -1) { + this.annotation = this.getAnnotationURL(css.substring(start, end)); + } + } + loadFile(path) { + this.root = dirname(path); + if (existsSync(path)) { + this.mapFile = path; + return readFileSync(path, "utf-8").toString().trim(); + } + } + loadMap(file, prev) { + if (prev === false) + return false; + if (prev) { + if (typeof prev === "string") { + return prev; + } else if (typeof prev === "function") { + let prevPath = prev(file); + if (prevPath) { + let map = this.loadFile(prevPath); + if (!map) { + throw new Error("Unable to load previous source map: " + prevPath.toString()); + } + return map; + } + } else if (prev instanceof SourceMapConsumer) { + return SourceMapGenerator.fromSourceMap(prev).toString(); + } else if (prev instanceof SourceMapGenerator) { + return prev.toString(); + } else if (this.isMap(prev)) { + return JSON.stringify(prev); + } else { + throw new Error("Unsupported previous source map format: " + prev.toString()); + } + } else if (this.inline) { + return this.decodeInline(this.annotation); + } else if (this.annotation) { + let map = this.annotation; + if (file) + map = join(dirname(file), map); + return this.loadFile(map); + } + } + startWith(string, start) { + if (!string) + return false; + return string.substr(0, start.length) === start; + } + withContent() { + return !!(this.consumer().sourcesContent && this.consumer().sourcesContent.length > 0); + } + } + module.exports = PreviousMap; + PreviousMap.default = PreviousMap; +}); + +// node_modules/postcss/lib/input.js +var require_input = __commonJS((exports, module) => { + var { nanoid } = require_non_secure(); + var { isAbsolute, resolve } = __require("path"); + var { SourceMapConsumer, SourceMapGenerator } = require_source_map(); + var { fileURLToPath, pathToFileURL } = __require("url"); + var CssSyntaxError = require_css_syntax_error(); + var PreviousMap = require_previous_map(); + var terminalHighlight = require_terminal_highlight(); + var fromOffsetCache = Symbol("fromOffsetCache"); + var sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator); + var pathAvailable = Boolean(resolve && isAbsolute); + + class Input { + constructor(css, opts = {}) { + if (css === null || typeof css === "undefined" || typeof css === "object" && !css.toString) { + throw new Error(`PostCSS received ${css} instead of CSS string`); + } + this.css = css.toString(); + if (this.css[0] === "\uFEFF" || this.css[0] === "\uFFFE") { + this.hasBOM = true; + this.css = this.css.slice(1); + } else { + this.hasBOM = false; + } + if (opts.from) { + if (!pathAvailable || /^\w+:\/\//.test(opts.from) || isAbsolute(opts.from)) { + this.file = opts.from; + } else { + this.file = resolve(opts.from); + } + } + if (pathAvailable && sourceMapAvailable) { + let map = new PreviousMap(this.css, opts); + if (map.text) { + this.map = map; + let file = map.consumer().file; + if (!this.file && file) + this.file = this.mapResolve(file); + } + } + if (!this.file) { + this.id = ""; + } + if (this.map) + this.map.file = this.from; + } + error(message, line, column, opts = {}) { + let endColumn, endLine, result; + if (line && typeof line === "object") { + let start = line; + let end = column; + if (typeof start.offset === "number") { + let pos = this.fromOffset(start.offset); + line = pos.line; + column = pos.col; + } else { + line = start.line; + column = start.column; + } + if (typeof end.offset === "number") { + let pos = this.fromOffset(end.offset); + endLine = pos.line; + endColumn = pos.col; + } else { + endLine = end.line; + endColumn = end.column; + } + } else if (!column) { + let pos = this.fromOffset(line); + line = pos.line; + column = pos.col; + } + let origin = this.origin(line, column, endLine, endColumn); + if (origin) { + result = new CssSyntaxError(message, origin.endLine === undefined ? origin.line : { column: origin.column, line: origin.line }, origin.endLine === undefined ? origin.column : { column: origin.endColumn, line: origin.endLine }, origin.source, origin.file, opts.plugin); + } else { + result = new CssSyntaxError(message, endLine === undefined ? line : { column, line }, endLine === undefined ? column : { column: endColumn, line: endLine }, this.css, this.file, opts.plugin); + } + result.input = { column, endColumn, endLine, line, source: this.css }; + if (this.file) { + if (pathToFileURL) { + result.input.url = pathToFileURL(this.file).toString(); + } + result.input.file = this.file; + } + return result; + } + fromOffset(offset) { + let lastLine, lineToIndex; + if (!this[fromOffsetCache]) { + let lines = this.css.split("\n"); + lineToIndex = new Array(lines.length); + let prevIndex = 0; + for (let i = 0, l = lines.length;i < l; i++) { + lineToIndex[i] = prevIndex; + prevIndex += lines[i].length + 1; + } + this[fromOffsetCache] = lineToIndex; + } else { + lineToIndex = this[fromOffsetCache]; + } + lastLine = lineToIndex[lineToIndex.length - 1]; + let min = 0; + if (offset >= lastLine) { + min = lineToIndex.length - 1; + } else { + let max = lineToIndex.length - 2; + let mid; + while (min < max) { + mid = min + (max - min >> 1); + if (offset < lineToIndex[mid]) { + max = mid - 1; + } else if (offset >= lineToIndex[mid + 1]) { + min = mid + 1; + } else { + min = mid; + break; + } + } + } + return { + col: offset - lineToIndex[min] + 1, + line: min + 1 + }; + } + mapResolve(file) { + if (/^\w+:\/\//.test(file)) { + return file; + } + return resolve(this.map.consumer().sourceRoot || this.map.root || ".", file); + } + origin(line, column, endLine, endColumn) { + if (!this.map) + return false; + let consumer = this.map.consumer(); + let from = consumer.originalPositionFor({ column, line }); + if (!from.source) + return false; + let to; + if (typeof endLine === "number") { + to = consumer.originalPositionFor({ column: endColumn, line: endLine }); + } + let fromUrl; + if (isAbsolute(from.source)) { + fromUrl = pathToFileURL(from.source); + } else { + fromUrl = new URL(from.source, this.map.consumer().sourceRoot || pathToFileURL(this.map.mapFile)); + } + let result = { + column: from.column, + endColumn: to && to.column, + endLine: to && to.line, + line: from.line, + url: fromUrl.toString() + }; + if (fromUrl.protocol === "file:") { + if (fileURLToPath) { + result.file = fileURLToPath(fromUrl); + } else { + throw new Error(`file: protocol is not available in this PostCSS build`); + } + } + let source = consumer.sourceContentFor(from.source); + if (source) + result.source = source; + return result; + } + toJSON() { + let json = {}; + for (let name of ["hasBOM", "css", "file", "id"]) { + if (this[name] != null) { + json[name] = this[name]; + } + } + if (this.map) { + json.map = { ...this.map }; + if (json.map.consumerCache) { + json.map.consumerCache = undefined; + } + } + return json; + } + get from() { + return this.file || this.id; + } + } + module.exports = Input; + Input.default = Input; + if (terminalHighlight && terminalHighlight.registerInput) { + terminalHighlight.registerInput(Input); + } +}); + +// node_modules/postcss/lib/root.js +var require_root = __commonJS((exports, module) => { + var Container = require_container(); + var LazyResult; + var Processor; + + class Root extends Container { + constructor(defaults) { + super(defaults); + this.type = "root"; + if (!this.nodes) + this.nodes = []; + } + normalize(child, sample, type) { + let nodes = super.normalize(child); + if (sample) { + if (type === "prepend") { + if (this.nodes.length > 1) { + sample.raws.before = this.nodes[1].raws.before; + } else { + delete sample.raws.before; + } + } else if (this.first !== sample) { + for (let node of nodes) { + node.raws.before = sample.raws.before; + } + } + } + return nodes; + } + removeChild(child, ignore) { + let index = this.index(child); + if (!ignore && index === 0 && this.nodes.length > 1) { + this.nodes[1].raws.before = this.nodes[index].raws.before; + } + return super.removeChild(child); + } + toResult(opts = {}) { + let lazy = new LazyResult(new Processor, this, opts); + return lazy.stringify(); + } + } + Root.registerLazyResult = (dependant) => { + LazyResult = dependant; + }; + Root.registerProcessor = (dependant) => { + Processor = dependant; + }; + module.exports = Root; + Root.default = Root; + Container.registerRoot(Root); +}); + +// node_modules/postcss/lib/list.js +var require_list = __commonJS((exports, module) => { + var list = { + comma(string) { + return list.split(string, [","], true); + }, + space(string) { + let spaces = [" ", "\n", "\t"]; + return list.split(string, spaces); + }, + split(string, separators, last) { + let array = []; + let current = ""; + let split = false; + let func = 0; + let inQuote = false; + let prevQuote = ""; + let escape = false; + for (let letter of string) { + if (escape) { + escape = false; + } else if (letter === "\\") { + escape = true; + } else if (inQuote) { + if (letter === prevQuote) { + inQuote = false; + } + } else if (letter === '"' || letter === "'") { + inQuote = true; + prevQuote = letter; + } else if (letter === "(") { + func += 1; + } else if (letter === ")") { + if (func > 0) + func -= 1; + } else if (func === 0) { + if (separators.includes(letter)) + split = true; + } + if (split) { + if (current !== "") + array.push(current.trim()); + current = ""; + split = false; + } else { + current += letter; + } + } + if (last || current !== "") + array.push(current.trim()); + return array; + } + }; + module.exports = list; + list.default = list; +}); + +// node_modules/postcss/lib/rule.js +var require_rule = __commonJS((exports, module) => { + var Container = require_container(); + var list = require_list(); + + class Rule extends Container { + constructor(defaults) { + super(defaults); + this.type = "rule"; + if (!this.nodes) + this.nodes = []; + } + get selectors() { + return list.comma(this.selector); + } + set selectors(values) { + let match = this.selector ? this.selector.match(/,\s*/) : null; + let sep = match ? match[0] : "," + this.raw("between", "beforeOpen"); + this.selector = values.join(sep); + } + } + module.exports = Rule; + Rule.default = Rule; + Container.registerRule(Rule); +}); + +// node_modules/postcss/lib/fromJSON.js +var require_fromJSON = __commonJS((exports, module) => { + var AtRule = require_at_rule(); + var Comment = require_comment(); + var Declaration = require_declaration(); + var Input = require_input(); + var PreviousMap = require_previous_map(); + var Root = require_root(); + var Rule = require_rule(); + function fromJSON(json, inputs) { + if (Array.isArray(json)) + return json.map((n) => fromJSON(n)); + let { inputs: ownInputs, ...defaults } = json; + if (ownInputs) { + inputs = []; + for (let input of ownInputs) { + let inputHydrated = { ...input, __proto__: Input.prototype }; + if (inputHydrated.map) { + inputHydrated.map = { + ...inputHydrated.map, + __proto__: PreviousMap.prototype + }; + } + inputs.push(inputHydrated); + } + } + if (defaults.nodes) { + defaults.nodes = json.nodes.map((n) => fromJSON(n, inputs)); + } + if (defaults.source) { + let { inputId, ...source } = defaults.source; + defaults.source = source; + if (inputId != null) { + defaults.source.input = inputs[inputId]; + } + } + if (defaults.type === "root") { + return new Root(defaults); + } else if (defaults.type === "decl") { + return new Declaration(defaults); + } else if (defaults.type === "rule") { + return new Rule(defaults); + } else if (defaults.type === "comment") { + return new Comment(defaults); + } else if (defaults.type === "atrule") { + return new AtRule(defaults); + } else { + throw new Error("Unknown node type: " + json.type); + } + } + module.exports = fromJSON; + fromJSON.default = fromJSON; +}); + +// node_modules/postcss/lib/map-generator.js +var require_map_generator = __commonJS((exports, module) => { + var { dirname, relative, resolve, sep } = __require("path"); + var { SourceMapConsumer, SourceMapGenerator } = require_source_map(); + var { pathToFileURL } = __require("url"); + var Input = require_input(); + var sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator); + var pathAvailable = Boolean(dirname && resolve && relative && sep); + + class MapGenerator { + constructor(stringify, root, opts, cssString) { + this.stringify = stringify; + this.mapOpts = opts.map || {}; + this.root = root; + this.opts = opts; + this.css = cssString; + this.originalCSS = cssString; + this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute; + this.memoizedFileURLs = new Map; + this.memoizedPaths = new Map; + this.memoizedURLs = new Map; + } + addAnnotation() { + let content; + if (this.isInline()) { + content = "data:application/json;base64," + this.toBase64(this.map.toString()); + } else if (typeof this.mapOpts.annotation === "string") { + content = this.mapOpts.annotation; + } else if (typeof this.mapOpts.annotation === "function") { + content = this.mapOpts.annotation(this.opts.to, this.root); + } else { + content = this.outputFile() + ".map"; + } + let eol = "\n"; + if (this.css.includes("\r\n")) + eol = "\r\n"; + this.css += eol + "/*# sourceMappingURL=" + content + " */"; + } + applyPrevMaps() { + for (let prev of this.previous()) { + let from = this.toUrl(this.path(prev.file)); + let root = prev.root || dirname(prev.file); + let map; + if (this.mapOpts.sourcesContent === false) { + map = new SourceMapConsumer(prev.text); + if (map.sourcesContent) { + map.sourcesContent = null; + } + } else { + map = prev.consumer(); + } + this.map.applySourceMap(map, from, this.toUrl(this.path(root))); + } + } + clearAnnotation() { + if (this.mapOpts.annotation === false) + return; + if (this.root) { + let node; + for (let i = this.root.nodes.length - 1;i >= 0; i--) { + node = this.root.nodes[i]; + if (node.type !== "comment") + continue; + if (node.text.startsWith("# sourceMappingURL=")) { + this.root.removeChild(i); + } + } + } else if (this.css) { + this.css = this.css.replace(/\n*\/\*#[\S\s]*?\*\/$/gm, ""); + } + } + generate() { + this.clearAnnotation(); + if (pathAvailable && sourceMapAvailable && this.isMap()) { + return this.generateMap(); + } else { + let result = ""; + this.stringify(this.root, (i) => { + result += i; + }); + return [result]; + } + } + generateMap() { + if (this.root) { + this.generateString(); + } else if (this.previous().length === 1) { + let prev = this.previous()[0].consumer(); + prev.file = this.outputFile(); + this.map = SourceMapGenerator.fromSourceMap(prev, { + ignoreInvalidMapping: true + }); + } else { + this.map = new SourceMapGenerator({ + file: this.outputFile(), + ignoreInvalidMapping: true + }); + this.map.addMapping({ + generated: { column: 0, line: 1 }, + original: { column: 0, line: 1 }, + source: this.opts.from ? this.toUrl(this.path(this.opts.from)) : "" + }); + } + if (this.isSourcesContent()) + this.setSourcesContent(); + if (this.root && this.previous().length > 0) + this.applyPrevMaps(); + if (this.isAnnotation()) + this.addAnnotation(); + if (this.isInline()) { + return [this.css]; + } else { + return [this.css, this.map]; + } + } + generateString() { + this.css = ""; + this.map = new SourceMapGenerator({ + file: this.outputFile(), + ignoreInvalidMapping: true + }); + let line = 1; + let column = 1; + let noSource = ""; + let mapping = { + generated: { column: 0, line: 0 }, + original: { column: 0, line: 0 }, + source: "" + }; + let last, lines; + this.stringify(this.root, (str, node, type) => { + this.css += str; + if (node && type !== "end") { + mapping.generated.line = line; + mapping.generated.column = column - 1; + if (node.source && node.source.start) { + mapping.source = this.sourcePath(node); + mapping.original.line = node.source.start.line; + mapping.original.column = node.source.start.column - 1; + this.map.addMapping(mapping); + } else { + mapping.source = noSource; + mapping.original.line = 1; + mapping.original.column = 0; + this.map.addMapping(mapping); + } + } + lines = str.match(/\n/g); + if (lines) { + line += lines.length; + last = str.lastIndexOf("\n"); + column = str.length - last; + } else { + column += str.length; + } + if (node && type !== "start") { + let p = node.parent || { raws: {} }; + let childless = node.type === "decl" || node.type === "atrule" && !node.nodes; + if (!childless || node !== p.last || p.raws.semicolon) { + if (node.source && node.source.end) { + mapping.source = this.sourcePath(node); + mapping.original.line = node.source.end.line; + mapping.original.column = node.source.end.column - 1; + mapping.generated.line = line; + mapping.generated.column = column - 2; + this.map.addMapping(mapping); + } else { + mapping.source = noSource; + mapping.original.line = 1; + mapping.original.column = 0; + mapping.generated.line = line; + mapping.generated.column = column - 1; + this.map.addMapping(mapping); + } + } + } + }); + } + isAnnotation() { + if (this.isInline()) { + return true; + } + if (typeof this.mapOpts.annotation !== "undefined") { + return this.mapOpts.annotation; + } + if (this.previous().length) { + return this.previous().some((i) => i.annotation); + } + return true; + } + isInline() { + if (typeof this.mapOpts.inline !== "undefined") { + return this.mapOpts.inline; + } + let annotation = this.mapOpts.annotation; + if (typeof annotation !== "undefined" && annotation !== true) { + return false; + } + if (this.previous().length) { + return this.previous().some((i) => i.inline); + } + return true; + } + isMap() { + if (typeof this.opts.map !== "undefined") { + return !!this.opts.map; + } + return this.previous().length > 0; + } + isSourcesContent() { + if (typeof this.mapOpts.sourcesContent !== "undefined") { + return this.mapOpts.sourcesContent; + } + if (this.previous().length) { + return this.previous().some((i) => i.withContent()); + } + return true; + } + outputFile() { + if (this.opts.to) { + return this.path(this.opts.to); + } else if (this.opts.from) { + return this.path(this.opts.from); + } else { + return "to.css"; + } + } + path(file) { + if (this.mapOpts.absolute) + return file; + if (file.charCodeAt(0) === 60) + return file; + if (/^\w+:\/\//.test(file)) + return file; + let cached = this.memoizedPaths.get(file); + if (cached) + return cached; + let from = this.opts.to ? dirname(this.opts.to) : "."; + if (typeof this.mapOpts.annotation === "string") { + from = dirname(resolve(from, this.mapOpts.annotation)); + } + let path = relative(from, file); + this.memoizedPaths.set(file, path); + return path; + } + previous() { + if (!this.previousMaps) { + this.previousMaps = []; + if (this.root) { + this.root.walk((node) => { + if (node.source && node.source.input.map) { + let map = node.source.input.map; + if (!this.previousMaps.includes(map)) { + this.previousMaps.push(map); + } + } + }); + } else { + let input = new Input(this.originalCSS, this.opts); + if (input.map) + this.previousMaps.push(input.map); + } + } + return this.previousMaps; + } + setSourcesContent() { + let already = {}; + if (this.root) { + this.root.walk((node) => { + if (node.source) { + let from = node.source.input.from; + if (from && !already[from]) { + already[from] = true; + let fromUrl = this.usesFileUrls ? this.toFileUrl(from) : this.toUrl(this.path(from)); + this.map.setSourceContent(fromUrl, node.source.input.css); + } + } + }); + } else if (this.css) { + let from = this.opts.from ? this.toUrl(this.path(this.opts.from)) : ""; + this.map.setSourceContent(from, this.css); + } + } + sourcePath(node) { + if (this.mapOpts.from) { + return this.toUrl(this.mapOpts.from); + } else if (this.usesFileUrls) { + return this.toFileUrl(node.source.input.from); + } else { + return this.toUrl(this.path(node.source.input.from)); + } + } + toBase64(str) { + if (Buffer) { + return Buffer.from(str).toString("base64"); + } else { + return window.btoa(unescape(encodeURIComponent(str))); + } + } + toFileUrl(path) { + let cached = this.memoizedFileURLs.get(path); + if (cached) + return cached; + if (pathToFileURL) { + let fileURL = pathToFileURL(path).toString(); + this.memoizedFileURLs.set(path, fileURL); + return fileURL; + } else { + throw new Error("`map.absolute` option is not available in this PostCSS build"); + } + } + toUrl(path) { + let cached = this.memoizedURLs.get(path); + if (cached) + return cached; + if (sep === "\\") { + path = path.replace(/\\/g, "/"); + } + let url = encodeURI(path).replace(/[#?]/g, encodeURIComponent); + this.memoizedURLs.set(path, url); + return url; + } + } + module.exports = MapGenerator; +}); + +// node_modules/postcss/lib/parser.js +var require_parser = __commonJS((exports, module) => { + var AtRule = require_at_rule(); + var Comment = require_comment(); + var Declaration = require_declaration(); + var Root = require_root(); + var Rule = require_rule(); + var tokenizer = require_tokenize(); + var SAFE_COMMENT_NEIGHBOR = { + empty: true, + space: true + }; + function findLastWithPosition(tokens) { + for (let i = tokens.length - 1;i >= 0; i--) { + let token = tokens[i]; + let pos = token[3] || token[2]; + if (pos) + return pos; + } + } + + class Parser { + constructor(input) { + this.input = input; + this.root = new Root; + this.current = this.root; + this.spaces = ""; + this.semicolon = false; + this.createTokenizer(); + this.root.source = { input, start: { column: 1, line: 1, offset: 0 } }; + } + atrule(token) { + let node = new AtRule; + node.name = token[1].slice(1); + if (node.name === "") { + this.unnamedAtrule(node, token); + } + this.init(node, token[2]); + let type; + let prev; + let shift; + let last = false; + let open = false; + let params = []; + let brackets = []; + while (!this.tokenizer.endOfFile()) { + token = this.tokenizer.nextToken(); + type = token[0]; + if (type === "(" || type === "[") { + brackets.push(type === "(" ? ")" : "]"); + } else if (type === "{" && brackets.length > 0) { + brackets.push("}"); + } else if (type === brackets[brackets.length - 1]) { + brackets.pop(); + } + if (brackets.length === 0) { + if (type === ";") { + node.source.end = this.getPosition(token[2]); + node.source.end.offset++; + this.semicolon = true; + break; + } else if (type === "{") { + open = true; + break; + } else if (type === "}") { + if (params.length > 0) { + shift = params.length - 1; + prev = params[shift]; + while (prev && prev[0] === "space") { + prev = params[--shift]; + } + if (prev) { + node.source.end = this.getPosition(prev[3] || prev[2]); + node.source.end.offset++; + } + } + this.end(token); + break; + } else { + params.push(token); + } + } else { + params.push(token); + } + if (this.tokenizer.endOfFile()) { + last = true; + break; + } + } + node.raws.between = this.spacesAndCommentsFromEnd(params); + if (params.length) { + node.raws.afterName = this.spacesAndCommentsFromStart(params); + this.raw(node, "params", params); + if (last) { + token = params[params.length - 1]; + node.source.end = this.getPosition(token[3] || token[2]); + node.source.end.offset++; + this.spaces = node.raws.between; + node.raws.between = ""; + } + } else { + node.raws.afterName = ""; + node.params = ""; + } + if (open) { + node.nodes = []; + this.current = node; + } + } + checkMissedSemicolon(tokens) { + let colon = this.colon(tokens); + if (colon === false) + return; + let founded = 0; + let token; + for (let j = colon - 1;j >= 0; j--) { + token = tokens[j]; + if (token[0] !== "space") { + founded += 1; + if (founded === 2) + break; + } + } + throw this.input.error("Missed semicolon", token[0] === "word" ? token[3] + 1 : token[2]); + } + colon(tokens) { + let brackets = 0; + let prev, token, type; + for (let [i, element] of tokens.entries()) { + token = element; + type = token[0]; + if (type === "(") { + brackets += 1; + } + if (type === ")") { + brackets -= 1; + } + if (brackets === 0 && type === ":") { + if (!prev) { + this.doubleColon(token); + } else if (prev[0] === "word" && prev[1] === "progid") { + continue; + } else { + return i; + } + } + prev = token; + } + return false; + } + comment(token) { + let node = new Comment; + this.init(node, token[2]); + node.source.end = this.getPosition(token[3] || token[2]); + node.source.end.offset++; + let text = token[1].slice(2, -2); + if (/^\s*$/.test(text)) { + node.text = ""; + node.raws.left = text; + node.raws.right = ""; + } else { + let match = text.match(/^(\s*)([^]*\S)(\s*)$/); + node.text = match[2]; + node.raws.left = match[1]; + node.raws.right = match[3]; + } + } + createTokenizer() { + this.tokenizer = tokenizer(this.input); + } + decl(tokens, customProperty) { + let node = new Declaration; + this.init(node, tokens[0][2]); + let last = tokens[tokens.length - 1]; + if (last[0] === ";") { + this.semicolon = true; + tokens.pop(); + } + node.source.end = this.getPosition(last[3] || last[2] || findLastWithPosition(tokens)); + node.source.end.offset++; + while (tokens[0][0] !== "word") { + if (tokens.length === 1) + this.unknownWord(tokens); + node.raws.before += tokens.shift()[1]; + } + node.source.start = this.getPosition(tokens[0][2]); + node.prop = ""; + while (tokens.length) { + let type = tokens[0][0]; + if (type === ":" || type === "space" || type === "comment") { + break; + } + node.prop += tokens.shift()[1]; + } + node.raws.between = ""; + let token; + while (tokens.length) { + token = tokens.shift(); + if (token[0] === ":") { + node.raws.between += token[1]; + break; + } else { + if (token[0] === "word" && /\w/.test(token[1])) { + this.unknownWord([token]); + } + node.raws.between += token[1]; + } + } + if (node.prop[0] === "_" || node.prop[0] === "*") { + node.raws.before += node.prop[0]; + node.prop = node.prop.slice(1); + } + let firstSpaces = []; + let next; + while (tokens.length) { + next = tokens[0][0]; + if (next !== "space" && next !== "comment") + break; + firstSpaces.push(tokens.shift()); + } + this.precheckMissedSemicolon(tokens); + for (let i = tokens.length - 1;i >= 0; i--) { + token = tokens[i]; + if (token[1].toLowerCase() === "!important") { + node.important = true; + let string = this.stringFrom(tokens, i); + string = this.spacesFromEnd(tokens) + string; + if (string !== " !important") + node.raws.important = string; + break; + } else if (token[1].toLowerCase() === "important") { + let cache = tokens.slice(0); + let str = ""; + for (let j = i;j > 0; j--) { + let type = cache[j][0]; + if (str.trim().startsWith("!") && type !== "space") { + break; + } + str = cache.pop()[1] + str; + } + if (str.trim().startsWith("!")) { + node.important = true; + node.raws.important = str; + tokens = cache; + } + } + if (token[0] !== "space" && token[0] !== "comment") { + break; + } + } + let hasWord = tokens.some((i) => i[0] !== "space" && i[0] !== "comment"); + if (hasWord) { + node.raws.between += firstSpaces.map((i) => i[1]).join(""); + firstSpaces = []; + } + this.raw(node, "value", firstSpaces.concat(tokens), customProperty); + if (node.value.includes(":") && !customProperty) { + this.checkMissedSemicolon(tokens); + } + } + doubleColon(token) { + throw this.input.error("Double colon", { offset: token[2] }, { offset: token[2] + token[1].length }); + } + emptyRule(token) { + let node = new Rule; + this.init(node, token[2]); + node.selector = ""; + node.raws.between = ""; + this.current = node; + } + end(token) { + if (this.current.nodes && this.current.nodes.length) { + this.current.raws.semicolon = this.semicolon; + } + this.semicolon = false; + this.current.raws.after = (this.current.raws.after || "") + this.spaces; + this.spaces = ""; + if (this.current.parent) { + this.current.source.end = this.getPosition(token[2]); + this.current.source.end.offset++; + this.current = this.current.parent; + } else { + this.unexpectedClose(token); + } + } + endFile() { + if (this.current.parent) + this.unclosedBlock(); + if (this.current.nodes && this.current.nodes.length) { + this.current.raws.semicolon = this.semicolon; + } + this.current.raws.after = (this.current.raws.after || "") + this.spaces; + this.root.source.end = this.getPosition(this.tokenizer.position()); + } + freeSemicolon(token) { + this.spaces += token[1]; + if (this.current.nodes) { + let prev = this.current.nodes[this.current.nodes.length - 1]; + if (prev && prev.type === "rule" && !prev.raws.ownSemicolon) { + prev.raws.ownSemicolon = this.spaces; + this.spaces = ""; + } + } + } + getPosition(offset) { + let pos = this.input.fromOffset(offset); + return { + column: pos.col, + line: pos.line, + offset + }; + } + init(node, offset) { + this.current.push(node); + node.source = { + input: this.input, + start: this.getPosition(offset) + }; + node.raws.before = this.spaces; + this.spaces = ""; + if (node.type !== "comment") + this.semicolon = false; + } + other(start) { + let end = false; + let type = null; + let colon = false; + let bracket = null; + let brackets = []; + let customProperty = start[1].startsWith("--"); + let tokens = []; + let token = start; + while (token) { + type = token[0]; + tokens.push(token); + if (type === "(" || type === "[") { + if (!bracket) + bracket = token; + brackets.push(type === "(" ? ")" : "]"); + } else if (customProperty && colon && type === "{") { + if (!bracket) + bracket = token; + brackets.push("}"); + } else if (brackets.length === 0) { + if (type === ";") { + if (colon) { + this.decl(tokens, customProperty); + return; + } else { + break; + } + } else if (type === "{") { + this.rule(tokens); + return; + } else if (type === "}") { + this.tokenizer.back(tokens.pop()); + end = true; + break; + } else if (type === ":") { + colon = true; + } + } else if (type === brackets[brackets.length - 1]) { + brackets.pop(); + if (brackets.length === 0) + bracket = null; + } + token = this.tokenizer.nextToken(); + } + if (this.tokenizer.endOfFile()) + end = true; + if (brackets.length > 0) + this.unclosedBracket(bracket); + if (end && colon) { + if (!customProperty) { + while (tokens.length) { + token = tokens[tokens.length - 1][0]; + if (token !== "space" && token !== "comment") + break; + this.tokenizer.back(tokens.pop()); + } + } + this.decl(tokens, customProperty); + } else { + this.unknownWord(tokens); + } + } + parse() { + let token; + while (!this.tokenizer.endOfFile()) { + token = this.tokenizer.nextToken(); + switch (token[0]) { + case "space": + this.spaces += token[1]; + break; + case ";": + this.freeSemicolon(token); + break; + case "}": + this.end(token); + break; + case "comment": + this.comment(token); + break; + case "at-word": + this.atrule(token); + break; + case "{": + this.emptyRule(token); + break; + default: + this.other(token); + break; + } + } + this.endFile(); + } + precheckMissedSemicolon() { + } + raw(node, prop, tokens, customProperty) { + let token, type; + let length = tokens.length; + let value = ""; + let clean = true; + let next, prev; + for (let i = 0;i < length; i += 1) { + token = tokens[i]; + type = token[0]; + if (type === "space" && i === length - 1 && !customProperty) { + clean = false; + } else if (type === "comment") { + prev = tokens[i - 1] ? tokens[i - 1][0] : "empty"; + next = tokens[i + 1] ? tokens[i + 1][0] : "empty"; + if (!SAFE_COMMENT_NEIGHBOR[prev] && !SAFE_COMMENT_NEIGHBOR[next]) { + if (value.slice(-1) === ",") { + clean = false; + } else { + value += token[1]; + } + } else { + clean = false; + } + } else { + value += token[1]; + } + } + if (!clean) { + let raw = tokens.reduce((all, i) => all + i[1], ""); + node.raws[prop] = { raw, value }; + } + node[prop] = value; + } + rule(tokens) { + tokens.pop(); + let node = new Rule; + this.init(node, tokens[0][2]); + node.raws.between = this.spacesAndCommentsFromEnd(tokens); + this.raw(node, "selector", tokens); + this.current = node; + } + spacesAndCommentsFromEnd(tokens) { + let lastTokenType; + let spaces = ""; + while (tokens.length) { + lastTokenType = tokens[tokens.length - 1][0]; + if (lastTokenType !== "space" && lastTokenType !== "comment") + break; + spaces = tokens.pop()[1] + spaces; + } + return spaces; + } + spacesAndCommentsFromStart(tokens) { + let next; + let spaces = ""; + while (tokens.length) { + next = tokens[0][0]; + if (next !== "space" && next !== "comment") + break; + spaces += tokens.shift()[1]; + } + return spaces; + } + spacesFromEnd(tokens) { + let lastTokenType; + let spaces = ""; + while (tokens.length) { + lastTokenType = tokens[tokens.length - 1][0]; + if (lastTokenType !== "space") + break; + spaces = tokens.pop()[1] + spaces; + } + return spaces; + } + stringFrom(tokens, from) { + let result = ""; + for (let i = from;i < tokens.length; i++) { + result += tokens[i][1]; + } + tokens.splice(from, tokens.length - from); + return result; + } + unclosedBlock() { + let pos = this.current.source.start; + throw this.input.error("Unclosed block", pos.line, pos.column); + } + unclosedBracket(bracket) { + throw this.input.error("Unclosed bracket", { offset: bracket[2] }, { offset: bracket[2] + 1 }); + } + unexpectedClose(token) { + throw this.input.error("Unexpected }", { offset: token[2] }, { offset: token[2] + 1 }); + } + unknownWord(tokens) { + throw this.input.error("Unknown word", { offset: tokens[0][2] }, { offset: tokens[0][2] + tokens[0][1].length }); + } + unnamedAtrule(node, token) { + throw this.input.error("At-rule without name", { offset: token[2] }, { offset: token[2] + token[1].length }); + } + } + module.exports = Parser; +}); + +// node_modules/postcss/lib/parse.js +var require_parse = __commonJS((exports, module) => { + var Container = require_container(); + var Input = require_input(); + var Parser = require_parser(); + function parse(css, opts) { + let input = new Input(css, opts); + let parser = new Parser(input); + try { + parser.parse(); + } catch (e) { + if (true) { + if (e.name === "CssSyntaxError" && opts && opts.from) { + if (/\.scss$/i.test(opts.from)) { + e.message += "\nYou tried to parse SCSS with " + "the standard CSS parser; " + "try again with the postcss-scss parser"; + } else if (/\.sass/i.test(opts.from)) { + e.message += "\nYou tried to parse Sass with " + "the standard CSS parser; " + "try again with the postcss-sass parser"; + } else if (/\.less$/i.test(opts.from)) { + e.message += "\nYou tried to parse Less with " + "the standard CSS parser; " + "try again with the postcss-less parser"; + } + } + } + throw e; + } + return parser.root; + } + module.exports = parse; + parse.default = parse; + Container.registerParse(parse); +}); + +// node_modules/postcss/lib/warning.js +var require_warning = __commonJS((exports, module) => { + class Warning { + constructor(text, opts = {}) { + this.type = "warning"; + this.text = text; + if (opts.node && opts.node.source) { + let range = opts.node.rangeBy(opts); + this.line = range.start.line; + this.column = range.start.column; + this.endLine = range.end.line; + this.endColumn = range.end.column; + } + for (let opt in opts) + this[opt] = opts[opt]; + } + toString() { + if (this.node) { + return this.node.error(this.text, { + index: this.index, + plugin: this.plugin, + word: this.word + }).message; + } + if (this.plugin) { + return this.plugin + ": " + this.text; + } + return this.text; + } + } + module.exports = Warning; + Warning.default = Warning; +}); + +// node_modules/postcss/lib/result.js +var require_result = __commonJS((exports, module) => { + var Warning = require_warning(); + + class Result { + constructor(processor, root, opts) { + this.processor = processor; + this.messages = []; + this.root = root; + this.opts = opts; + this.css = undefined; + this.map = undefined; + } + toString() { + return this.css; + } + warn(text, opts = {}) { + if (!opts.plugin) { + if (this.lastPlugin && this.lastPlugin.postcssPlugin) { + opts.plugin = this.lastPlugin.postcssPlugin; + } + } + let warning = new Warning(text, opts); + this.messages.push(warning); + return warning; + } + warnings() { + return this.messages.filter((i) => i.type === "warning"); + } + get content() { + return this.css; + } + } + module.exports = Result; + Result.default = Result; +}); + +// node_modules/postcss/lib/warn-once.js +var require_warn_once = __commonJS((exports, module) => { + var printed = {}; + module.exports = function warnOnce(message) { + if (printed[message]) + return; + printed[message] = true; + if (typeof console !== "undefined" && console.warn) { + console.warn(message); + } + }; +}); + +// node_modules/postcss/lib/lazy-result.js +var require_lazy_result = __commonJS((exports, module) => { + var Container = require_container(); + var Document = require_document(); + var MapGenerator = require_map_generator(); + var parse = require_parse(); + var Result = require_result(); + var Root = require_root(); + var stringify = require_stringify2(); + var { isClean, my } = require_symbols(); + var warnOnce = require_warn_once(); + var TYPE_TO_CLASS_NAME = { + atrule: "AtRule", + comment: "Comment", + decl: "Declaration", + document: "Document", + root: "Root", + rule: "Rule" + }; + var PLUGIN_PROPS = { + AtRule: true, + AtRuleExit: true, + Comment: true, + CommentExit: true, + Declaration: true, + DeclarationExit: true, + Document: true, + DocumentExit: true, + Once: true, + OnceExit: true, + postcssPlugin: true, + prepare: true, + Root: true, + RootExit: true, + Rule: true, + RuleExit: true + }; + var NOT_VISITORS = { + Once: true, + postcssPlugin: true, + prepare: true + }; + var CHILDREN = 0; + function isPromise(obj) { + return typeof obj === "object" && typeof obj.then === "function"; + } + function getEvents(node) { + let key = false; + let type = TYPE_TO_CLASS_NAME[node.type]; + if (node.type === "decl") { + key = node.prop.toLowerCase(); + } else if (node.type === "atrule") { + key = node.name.toLowerCase(); + } + if (key && node.append) { + return [ + type, + type + "-" + key, + CHILDREN, + type + "Exit", + type + "Exit-" + key + ]; + } else if (key) { + return [type, type + "-" + key, type + "Exit", type + "Exit-" + key]; + } else if (node.append) { + return [type, CHILDREN, type + "Exit"]; + } else { + return [type, type + "Exit"]; + } + } + function toStack(node) { + let events; + if (node.type === "document") { + events = ["Document", CHILDREN, "DocumentExit"]; + } else if (node.type === "root") { + events = ["Root", CHILDREN, "RootExit"]; + } else { + events = getEvents(node); + } + return { + eventIndex: 0, + events, + iterator: 0, + node, + visitorIndex: 0, + visitors: [] + }; + } + function cleanMarks(node) { + node[isClean] = false; + if (node.nodes) + node.nodes.forEach((i) => cleanMarks(i)); + return node; + } + var postcss = {}; + + class LazyResult { + constructor(processor, css, opts) { + this.stringified = false; + this.processed = false; + let root; + if (typeof css === "object" && css !== null && (css.type === "root" || css.type === "document")) { + root = cleanMarks(css); + } else if (css instanceof LazyResult || css instanceof Result) { + root = cleanMarks(css.root); + if (css.map) { + if (typeof opts.map === "undefined") + opts.map = {}; + if (!opts.map.inline) + opts.map.inline = false; + opts.map.prev = css.map; + } + } else { + let parser = parse; + if (opts.syntax) + parser = opts.syntax.parse; + if (opts.parser) + parser = opts.parser; + if (parser.parse) + parser = parser.parse; + try { + root = parser(css, opts); + } catch (error) { + this.processed = true; + this.error = error; + } + if (root && !root[my]) { + Container.rebuild(root); + } + } + this.result = new Result(processor, root, opts); + this.helpers = { ...postcss, postcss, result: this.result }; + this.plugins = this.processor.plugins.map((plugin) => { + if (typeof plugin === "object" && plugin.prepare) { + return { ...plugin, ...plugin.prepare(this.result) }; + } else { + return plugin; + } + }); + } + async() { + if (this.error) + return Promise.reject(this.error); + if (this.processed) + return Promise.resolve(this.result); + if (!this.processing) { + this.processing = this.runAsync(); + } + return this.processing; + } + catch(onRejected) { + return this.async().catch(onRejected); + } + finally(onFinally) { + return this.async().then(onFinally, onFinally); + } + getAsyncError() { + throw new Error("Use process(css).then(cb) to work with async plugins"); + } + handleError(error, node) { + let plugin = this.result.lastPlugin; + try { + if (node) + node.addToError(error); + this.error = error; + if (error.name === "CssSyntaxError" && !error.plugin) { + error.plugin = plugin.postcssPlugin; + error.setMessage(); + } else if (plugin.postcssVersion) { + if (true) { + let pluginName = plugin.postcssPlugin; + let pluginVer = plugin.postcssVersion; + let runtimeVer = this.result.processor.version; + let a = pluginVer.split("."); + let b = runtimeVer.split("."); + if (a[0] !== b[0] || parseInt(a[1]) > parseInt(b[1])) { + console.error("Unknown error from PostCSS plugin. Your current PostCSS " + "version is " + runtimeVer + ", but " + pluginName + " uses " + pluginVer + ". Perhaps this is the source of the error below."); + } + } + } + } catch (err) { + if (console && console.error) + console.error(err); + } + return error; + } + prepareVisitors() { + this.listeners = {}; + let add = (plugin, type, cb) => { + if (!this.listeners[type]) + this.listeners[type] = []; + this.listeners[type].push([plugin, cb]); + }; + for (let plugin of this.plugins) { + if (typeof plugin === "object") { + for (let event in plugin) { + if (!PLUGIN_PROPS[event] && /^[A-Z]/.test(event)) { + throw new Error(`Unknown event ${event} in ${plugin.postcssPlugin}. ` + `Try to update PostCSS (${this.processor.version} now).`); + } + if (!NOT_VISITORS[event]) { + if (typeof plugin[event] === "object") { + for (let filter in plugin[event]) { + if (filter === "*") { + add(plugin, event, plugin[event][filter]); + } else { + add(plugin, event + "-" + filter.toLowerCase(), plugin[event][filter]); + } + } + } else if (typeof plugin[event] === "function") { + add(plugin, event, plugin[event]); + } + } + } + } + } + this.hasListener = Object.keys(this.listeners).length > 0; + } + async runAsync() { + this.plugin = 0; + for (let i = 0;i < this.plugins.length; i++) { + let plugin = this.plugins[i]; + let promise = this.runOnRoot(plugin); + if (isPromise(promise)) { + try { + await promise; + } catch (error) { + throw this.handleError(error); + } + } + } + this.prepareVisitors(); + if (this.hasListener) { + let root = this.result.root; + while (!root[isClean]) { + root[isClean] = true; + let stack = [toStack(root)]; + while (stack.length > 0) { + let promise = this.visitTick(stack); + if (isPromise(promise)) { + try { + await promise; + } catch (e) { + let node = stack[stack.length - 1].node; + throw this.handleError(e, node); + } + } + } + } + if (this.listeners.OnceExit) { + for (let [plugin, visitor] of this.listeners.OnceExit) { + this.result.lastPlugin = plugin; + try { + if (root.type === "document") { + let roots = root.nodes.map((subRoot) => visitor(subRoot, this.helpers)); + await Promise.all(roots); + } else { + await visitor(root, this.helpers); + } + } catch (e) { + throw this.handleError(e); + } + } + } + } + this.processed = true; + return this.stringify(); + } + runOnRoot(plugin) { + this.result.lastPlugin = plugin; + try { + if (typeof plugin === "object" && plugin.Once) { + if (this.result.root.type === "document") { + let roots = this.result.root.nodes.map((root) => plugin.Once(root, this.helpers)); + if (isPromise(roots[0])) { + return Promise.all(roots); + } + return roots; + } + return plugin.Once(this.result.root, this.helpers); + } else if (typeof plugin === "function") { + return plugin(this.result.root, this.result); + } + } catch (error) { + throw this.handleError(error); + } + } + stringify() { + if (this.error) + throw this.error; + if (this.stringified) + return this.result; + this.stringified = true; + this.sync(); + let opts = this.result.opts; + let str = stringify; + if (opts.syntax) + str = opts.syntax.stringify; + if (opts.stringifier) + str = opts.stringifier; + if (str.stringify) + str = str.stringify; + let map = new MapGenerator(str, this.result.root, this.result.opts); + let data = map.generate(); + this.result.css = data[0]; + this.result.map = data[1]; + return this.result; + } + sync() { + if (this.error) + throw this.error; + if (this.processed) + return this.result; + this.processed = true; + if (this.processing) { + throw this.getAsyncError(); + } + for (let plugin of this.plugins) { + let promise = this.runOnRoot(plugin); + if (isPromise(promise)) { + throw this.getAsyncError(); + } + } + this.prepareVisitors(); + if (this.hasListener) { + let root = this.result.root; + while (!root[isClean]) { + root[isClean] = true; + this.walkSync(root); + } + if (this.listeners.OnceExit) { + if (root.type === "document") { + for (let subRoot of root.nodes) { + this.visitSync(this.listeners.OnceExit, subRoot); + } + } else { + this.visitSync(this.listeners.OnceExit, root); + } + } + } + return this.result; + } + then(onFulfilled, onRejected) { + if (true) { + if (!("from" in this.opts)) { + warnOnce("Without `from` option PostCSS could generate wrong source map " + "and will not find Browserslist config. Set it to CSS file path " + "or to `undefined` to prevent this warning."); + } + } + return this.async().then(onFulfilled, onRejected); + } + toString() { + return this.css; + } + visitSync(visitors, node) { + for (let [plugin, visitor] of visitors) { + this.result.lastPlugin = plugin; + let promise; + try { + promise = visitor(node, this.helpers); + } catch (e) { + throw this.handleError(e, node.proxyOf); + } + if (node.type !== "root" && node.type !== "document" && !node.parent) { + return true; + } + if (isPromise(promise)) { + throw this.getAsyncError(); + } + } + } + visitTick(stack) { + let visit = stack[stack.length - 1]; + let { node, visitors } = visit; + if (node.type !== "root" && node.type !== "document" && !node.parent) { + stack.pop(); + return; + } + if (visitors.length > 0 && visit.visitorIndex < visitors.length) { + let [plugin, visitor] = visitors[visit.visitorIndex]; + visit.visitorIndex += 1; + if (visit.visitorIndex === visitors.length) { + visit.visitors = []; + visit.visitorIndex = 0; + } + this.result.lastPlugin = plugin; + try { + return visitor(node.toProxy(), this.helpers); + } catch (e) { + throw this.handleError(e, node); + } + } + if (visit.iterator !== 0) { + let iterator = visit.iterator; + let child; + while (child = node.nodes[node.indexes[iterator]]) { + node.indexes[iterator] += 1; + if (!child[isClean]) { + child[isClean] = true; + stack.push(toStack(child)); + return; + } + } + visit.iterator = 0; + delete node.indexes[iterator]; + } + let events = visit.events; + while (visit.eventIndex < events.length) { + let event = events[visit.eventIndex]; + visit.eventIndex += 1; + if (event === CHILDREN) { + if (node.nodes && node.nodes.length) { + node[isClean] = true; + visit.iterator = node.getIterator(); + } + return; + } else if (this.listeners[event]) { + visit.visitors = this.listeners[event]; + return; + } + } + stack.pop(); + } + walkSync(node) { + node[isClean] = true; + let events = getEvents(node); + for (let event of events) { + if (event === CHILDREN) { + if (node.nodes) { + node.each((child) => { + if (!child[isClean]) + this.walkSync(child); + }); + } + } else { + let visitors = this.listeners[event]; + if (visitors) { + if (this.visitSync(visitors, node.toProxy())) + return; + } + } + } + } + warnings() { + return this.sync().warnings(); + } + get content() { + return this.stringify().content; + } + get css() { + return this.stringify().css; + } + get map() { + return this.stringify().map; + } + get messages() { + return this.sync().messages; + } + get opts() { + return this.result.opts; + } + get processor() { + return this.result.processor; + } + get root() { + return this.sync().root; + } + get [Symbol.toStringTag]() { + return "LazyResult"; + } + } + LazyResult.registerPostcss = (dependant) => { + postcss = dependant; + }; + module.exports = LazyResult; + LazyResult.default = LazyResult; + Root.registerLazyResult(LazyResult); + Document.registerLazyResult(LazyResult); +}); + +// node_modules/postcss/lib/no-work-result.js +var require_no_work_result = __commonJS((exports, module) => { + var MapGenerator = require_map_generator(); + var parse = require_parse(); + var Result = require_result(); + var stringify = require_stringify2(); + var warnOnce = require_warn_once(); + + class NoWorkResult { + constructor(processor, css, opts) { + css = css.toString(); + this.stringified = false; + this._processor = processor; + this._css = css; + this._opts = opts; + this._map = undefined; + let root; + let str = stringify; + this.result = new Result(this._processor, root, this._opts); + this.result.css = css; + let self2 = this; + Object.defineProperty(this.result, "root", { + get() { + return self2.root; + } + }); + let map = new MapGenerator(str, root, this._opts, css); + if (map.isMap()) { + let [generatedCSS, generatedMap] = map.generate(); + if (generatedCSS) { + this.result.css = generatedCSS; + } + if (generatedMap) { + this.result.map = generatedMap; + } + } else { + map.clearAnnotation(); + this.result.css = map.css; + } + } + async() { + if (this.error) + return Promise.reject(this.error); + return Promise.resolve(this.result); + } + catch(onRejected) { + return this.async().catch(onRejected); + } + finally(onFinally) { + return this.async().then(onFinally, onFinally); + } + sync() { + if (this.error) + throw this.error; + return this.result; + } + then(onFulfilled, onRejected) { + if (true) { + if (!("from" in this._opts)) { + warnOnce("Without `from` option PostCSS could generate wrong source map " + "and will not find Browserslist config. Set it to CSS file path " + "or to `undefined` to prevent this warning."); + } + } + return this.async().then(onFulfilled, onRejected); + } + toString() { + return this._css; + } + warnings() { + return []; + } + get content() { + return this.result.css; + } + get css() { + return this.result.css; + } + get map() { + return this.result.map; + } + get messages() { + return []; + } + get opts() { + return this.result.opts; + } + get processor() { + return this.result.processor; + } + get root() { + if (this._root) { + return this._root; + } + let root; + let parser = parse; + try { + root = parser(this._css, this._opts); + } catch (error) { + this.error = error; + } + if (this.error) { + throw this.error; + } else { + this._root = root; + return root; + } + } + get [Symbol.toStringTag]() { + return "NoWorkResult"; + } + } + module.exports = NoWorkResult; + NoWorkResult.default = NoWorkResult; +}); + +// node_modules/postcss/lib/processor.js +var require_processor = __commonJS((exports, module) => { + var Document = require_document(); + var LazyResult = require_lazy_result(); + var NoWorkResult = require_no_work_result(); + var Root = require_root(); + + class Processor { + constructor(plugins = []) { + this.version = "8.4.47"; + this.plugins = this.normalize(plugins); + } + normalize(plugins) { + let normalized = []; + for (let i of plugins) { + if (i.postcss === true) { + i = i(); + } else if (i.postcss) { + i = i.postcss; + } + if (typeof i === "object" && Array.isArray(i.plugins)) { + normalized = normalized.concat(i.plugins); + } else if (typeof i === "object" && i.postcssPlugin) { + normalized.push(i); + } else if (typeof i === "function") { + normalized.push(i); + } else if (typeof i === "object" && (i.parse || i.stringify)) { + if (true) { + throw new Error("PostCSS syntaxes cannot be used as plugins. Instead, please use " + "one of the syntax/parser/stringifier options as outlined " + "in your PostCSS runner documentation."); + } + } else { + throw new Error(i + " is not a PostCSS plugin"); + } + } + return normalized; + } + process(css, opts = {}) { + if (!this.plugins.length && !opts.parser && !opts.stringifier && !opts.syntax) { + return new NoWorkResult(this, css, opts); + } else { + return new LazyResult(this, css, opts); + } + } + use(plugin) { + this.plugins = this.plugins.concat(this.normalize([plugin])); + return this; + } + } + module.exports = Processor; + Processor.default = Processor; + Root.registerProcessor(Processor); + Document.registerProcessor(Processor); +}); + +// node_modules/postcss/lib/postcss.js +var require_postcss = __commonJS((exports, module) => { + var AtRule = require_at_rule(); + var Comment = require_comment(); + var Container = require_container(); + var CssSyntaxError = require_css_syntax_error(); + var Declaration = require_declaration(); + var Document = require_document(); + var fromJSON = require_fromJSON(); + var Input = require_input(); + var LazyResult = require_lazy_result(); + var list = require_list(); + var Node = require_node3(); + var parse = require_parse(); + var Processor = require_processor(); + var Result = require_result(); + var Root = require_root(); + var Rule = require_rule(); + var stringify = require_stringify2(); + var Warning = require_warning(); + function postcss(...plugins) { + if (plugins.length === 1 && Array.isArray(plugins[0])) { + plugins = plugins[0]; + } + return new Processor(plugins); + } + postcss.plugin = function plugin(name, initializer) { + let warningPrinted = false; + function creator(...args) { + if (console && console.warn && !warningPrinted) { + warningPrinted = true; + console.warn(name + ": postcss.plugin was deprecated. Migration guide:\n" + "https://evilmartians.com/chronicles/postcss-8-plugin-migration"); + if (process.env.LANG && process.env.LANG.startsWith("cn")) { + console.warn(name + `: \u91CC\u9762 postcss.plugin \u88AB\u5F03\u7528. \u8FC1\u79FB\u6307\u5357: +` + "https://www.w3ctech.com/topic/2226"); + } + } + let transformer = initializer(...args); + transformer.postcssPlugin = name; + transformer.postcssVersion = new Processor().version; + return transformer; + } + let cache; + Object.defineProperty(creator, "postcss", { + get() { + if (!cache) + cache = creator(); + return cache; + } + }); + creator.process = function(css, processOpts, pluginOpts) { + return postcss([creator(pluginOpts)]).process(css, processOpts); + }; + return creator; + }; + postcss.stringify = stringify; + postcss.parse = parse; + postcss.fromJSON = fromJSON; + postcss.list = list; + postcss.comment = (defaults) => new Comment(defaults); + postcss.atRule = (defaults) => new AtRule(defaults); + postcss.decl = (defaults) => new Declaration(defaults); + postcss.rule = (defaults) => new Rule(defaults); + postcss.root = (defaults) => new Root(defaults); + postcss.document = (defaults) => new Document(defaults); + postcss.CssSyntaxError = CssSyntaxError; + postcss.Declaration = Declaration; + postcss.Container = Container; + postcss.Processor = Processor; + postcss.Document = Document; + postcss.Comment = Comment; + postcss.Warning = Warning; + postcss.AtRule = AtRule; + postcss.Result = Result; + postcss.Input = Input; + postcss.Rule = Rule; + postcss.Root = Root; + postcss.Node = Node; + LazyResult.registerPostcss(postcss); + module.exports = postcss; + postcss.default = postcss; +}); + +// node_modules/sanitize-html/index.js +var require_sanitize_html = __commonJS((exports, module) => { + var htmlparser = require_lib6(); + var escapeStringRegexp = require_escape_string_regexp(); + var { isPlainObject } = require_is_plain_object(); + var deepmerge = require_cjs(); + var parseSrcset = require_parse_srcset(); + var { parse: postcssParse } = require_postcss(); + var mediaTags = [ + "img", + "audio", + "video", + "picture", + "svg", + "object", + "map", + "iframe", + "embed" + ]; + var vulnerableTags = ["script", "style"]; + function each(obj, cb) { + if (obj) { + Object.keys(obj).forEach(function(key) { + cb(obj[key], key); + }); + } + } + function has(obj, key) { + return {}.hasOwnProperty.call(obj, key); + } + function filter(a, cb) { + const n = []; + each(a, function(v) { + if (cb(v)) { + n.push(v); + } + }); + return n; + } + function isEmptyObject(obj) { + for (const key in obj) { + if (has(obj, key)) { + return false; + } + } + return true; + } + function stringifySrcset(parsedSrcset) { + return parsedSrcset.map(function(part) { + if (!part.url) { + throw new Error("URL missing"); + } + return part.url + (part.w ? ` ${part.w}w` : "") + (part.h ? ` ${part.h}h` : "") + (part.d ? ` ${part.d}x` : ""); + }).join(", "); + } + module.exports = sanitizeHtml; + var VALID_HTML_ATTRIBUTE_NAME = /^[^\0\t\n\f\r /<=>]+$/; + function sanitizeHtml(html, options, _recursing) { + if (html == null) { + return ""; + } + if (typeof html === "number") { + html = html.toString(); + } + let result = ""; + let tempResult = ""; + function Frame(tag, attribs) { + const that = this; + this.tag = tag; + this.attribs = attribs || {}; + this.tagPosition = result.length; + this.text = ""; + this.mediaChildren = []; + this.updateParentNodeText = function() { + if (stack.length) { + const parentFrame = stack[stack.length - 1]; + parentFrame.text += that.text; + } + }; + this.updateParentNodeMediaChildren = function() { + if (stack.length && mediaTags.includes(this.tag)) { + const parentFrame = stack[stack.length - 1]; + parentFrame.mediaChildren.push(this.tag); + } + }; + } + options = Object.assign({}, sanitizeHtml.defaults, options); + options.parser = Object.assign({}, htmlParserDefaults, options.parser); + const tagAllowed = function(name) { + return options.allowedTags === false || (options.allowedTags || []).indexOf(name) > -1; + }; + vulnerableTags.forEach(function(tag) { + if (tagAllowed(tag) && !options.allowVulnerableTags) { + console.warn(` + +\u26A0\uFE0F Your \`allowedTags\` option includes, \`${tag}\`, which is inherently\nvulnerable to XSS attacks. Please remove it from \`allowedTags\`.\nOr, to disable this warning, add the \`allowVulnerableTags\` option\nand ensure you are accounting for this risk.\n\n`); + } + }); + const nonTextTagsArray = options.nonTextTags || [ + "script", + "style", + "textarea", + "option" + ]; + let allowedAttributesMap; + let allowedAttributesGlobMap; + if (options.allowedAttributes) { + allowedAttributesMap = {}; + allowedAttributesGlobMap = {}; + each(options.allowedAttributes, function(attributes, tag) { + allowedAttributesMap[tag] = []; + const globRegex = []; + attributes.forEach(function(obj) { + if (typeof obj === "string" && obj.indexOf("*") >= 0) { + globRegex.push(escapeStringRegexp(obj).replace(/\\\*/g, ".*")); + } else { + allowedAttributesMap[tag].push(obj); + } + }); + if (globRegex.length) { + allowedAttributesGlobMap[tag] = new RegExp("^(" + globRegex.join("|") + ")$"); + } + }); + } + const allowedClassesMap = {}; + const allowedClassesGlobMap = {}; + const allowedClassesRegexMap = {}; + each(options.allowedClasses, function(classes, tag) { + if (allowedAttributesMap) { + if (!has(allowedAttributesMap, tag)) { + allowedAttributesMap[tag] = []; + } + allowedAttributesMap[tag].push("class"); + } + allowedClassesMap[tag] = classes; + if (Array.isArray(classes)) { + const globRegex = []; + allowedClassesMap[tag] = []; + allowedClassesRegexMap[tag] = []; + classes.forEach(function(obj) { + if (typeof obj === "string" && obj.indexOf("*") >= 0) { + globRegex.push(escapeStringRegexp(obj).replace(/\\\*/g, ".*")); + } else if (obj instanceof RegExp) { + allowedClassesRegexMap[tag].push(obj); + } else { + allowedClassesMap[tag].push(obj); + } + }); + if (globRegex.length) { + allowedClassesGlobMap[tag] = new RegExp("^(" + globRegex.join("|") + ")$"); + } + } + }); + const transformTagsMap = {}; + let transformTagsAll; + each(options.transformTags, function(transform, tag) { + let transFun; + if (typeof transform === "function") { + transFun = transform; + } else if (typeof transform === "string") { + transFun = sanitizeHtml.simpleTransform(transform); + } + if (tag === "*") { + transformTagsAll = transFun; + } else { + transformTagsMap[tag] = transFun; + } + }); + let depth; + let stack; + let skipMap; + let transformMap; + let skipText; + let skipTextDepth; + let addedText = false; + initializeState(); + const parser = new htmlparser.Parser({ + onopentag: function(name, attribs) { + if (options.enforceHtmlBoundary && name === "html") { + initializeState(); + } + if (skipText) { + skipTextDepth++; + return; + } + const frame = new Frame(name, attribs); + stack.push(frame); + let skip = false; + const hasText = !!frame.text; + let transformedTag; + if (has(transformTagsMap, name)) { + transformedTag = transformTagsMap[name](name, attribs); + frame.attribs = attribs = transformedTag.attribs; + if (transformedTag.text !== undefined) { + frame.innerText = transformedTag.text; + } + if (name !== transformedTag.tagName) { + frame.name = name = transformedTag.tagName; + transformMap[depth] = transformedTag.tagName; + } + } + if (transformTagsAll) { + transformedTag = transformTagsAll(name, attribs); + frame.attribs = attribs = transformedTag.attribs; + if (name !== transformedTag.tagName) { + frame.name = name = transformedTag.tagName; + transformMap[depth] = transformedTag.tagName; + } + } + if (!tagAllowed(name) || options.disallowedTagsMode === "recursiveEscape" && !isEmptyObject(skipMap) || options.nestingLimit != null && depth >= options.nestingLimit) { + skip = true; + skipMap[depth] = true; + if (options.disallowedTagsMode === "discard" || options.disallowedTagsMode === "completelyDiscard") { + if (nonTextTagsArray.indexOf(name) !== -1) { + skipText = true; + skipTextDepth = 1; + } + } + skipMap[depth] = true; + } + depth++; + if (skip) { + if (options.disallowedTagsMode === "discard" || options.disallowedTagsMode === "completelyDiscard") { + return; + } + tempResult = result; + result = ""; + } + result += "<" + name; + if (name === "script") { + if (options.allowedScriptHostnames || options.allowedScriptDomains) { + frame.innerText = ""; + } + } + if (!allowedAttributesMap || has(allowedAttributesMap, name) || allowedAttributesMap["*"]) { + each(attribs, function(value, a) { + if (!VALID_HTML_ATTRIBUTE_NAME.test(a)) { + delete frame.attribs[a]; + return; + } + if (value === "" && !options.allowedEmptyAttributes.includes(a) && (options.nonBooleanAttributes.includes(a) || options.nonBooleanAttributes.includes("*"))) { + delete frame.attribs[a]; + return; + } + let passedAllowedAttributesMapCheck = false; + if (!allowedAttributesMap || has(allowedAttributesMap, name) && allowedAttributesMap[name].indexOf(a) !== -1 || allowedAttributesMap["*"] && allowedAttributesMap["*"].indexOf(a) !== -1 || has(allowedAttributesGlobMap, name) && allowedAttributesGlobMap[name].test(a) || allowedAttributesGlobMap["*"] && allowedAttributesGlobMap["*"].test(a)) { + passedAllowedAttributesMapCheck = true; + } else if (allowedAttributesMap && allowedAttributesMap[name]) { + for (const o of allowedAttributesMap[name]) { + if (isPlainObject(o) && o.name && o.name === a) { + passedAllowedAttributesMapCheck = true; + let newValue = ""; + if (o.multiple === true) { + const splitStrArray = value.split(" "); + for (const s of splitStrArray) { + if (o.values.indexOf(s) !== -1) { + if (newValue === "") { + newValue = s; + } else { + newValue += " " + s; + } + } + } + } else if (o.values.indexOf(value) >= 0) { + newValue = value; + } + value = newValue; + } + } + } + if (passedAllowedAttributesMapCheck) { + if (options.allowedSchemesAppliedToAttributes.indexOf(a) !== -1) { + if (naughtyHref(name, value)) { + delete frame.attribs[a]; + return; + } + } + if (name === "script" && a === "src") { + let allowed = true; + try { + const parsed = parseUrl(value); + if (options.allowedScriptHostnames || options.allowedScriptDomains) { + const allowedHostname = (options.allowedScriptHostnames || []).find(function(hostname) { + return hostname === parsed.url.hostname; + }); + const allowedDomain = (options.allowedScriptDomains || []).find(function(domain) { + return parsed.url.hostname === domain || parsed.url.hostname.endsWith(`.${domain}`); + }); + allowed = allowedHostname || allowedDomain; + } + } catch (e) { + allowed = false; + } + if (!allowed) { + delete frame.attribs[a]; + return; + } + } + if (name === "iframe" && a === "src") { + let allowed = true; + try { + const parsed = parseUrl(value); + if (parsed.isRelativeUrl) { + allowed = has(options, "allowIframeRelativeUrls") ? options.allowIframeRelativeUrls : !options.allowedIframeHostnames && !options.allowedIframeDomains; + } else if (options.allowedIframeHostnames || options.allowedIframeDomains) { + const allowedHostname = (options.allowedIframeHostnames || []).find(function(hostname) { + return hostname === parsed.url.hostname; + }); + const allowedDomain = (options.allowedIframeDomains || []).find(function(domain) { + return parsed.url.hostname === domain || parsed.url.hostname.endsWith(`.${domain}`); + }); + allowed = allowedHostname || allowedDomain; + } + } catch (e) { + allowed = false; + } + if (!allowed) { + delete frame.attribs[a]; + return; + } + } + if (a === "srcset") { + try { + let parsed = parseSrcset(value); + parsed.forEach(function(value2) { + if (naughtyHref("srcset", value2.url)) { + value2.evil = true; + } + }); + parsed = filter(parsed, function(v) { + return !v.evil; + }); + if (!parsed.length) { + delete frame.attribs[a]; + return; + } else { + value = stringifySrcset(filter(parsed, function(v) { + return !v.evil; + })); + frame.attribs[a] = value; + } + } catch (e) { + delete frame.attribs[a]; + return; + } + } + if (a === "class") { + const allowedSpecificClasses = allowedClassesMap[name]; + const allowedWildcardClasses = allowedClassesMap["*"]; + const allowedSpecificClassesGlob = allowedClassesGlobMap[name]; + const allowedSpecificClassesRegex = allowedClassesRegexMap[name]; + const allowedWildcardClassesRegex = allowedClassesRegexMap["*"]; + const allowedWildcardClassesGlob = allowedClassesGlobMap["*"]; + const allowedClassesGlobs = [ + allowedSpecificClassesGlob, + allowedWildcardClassesGlob + ].concat(allowedSpecificClassesRegex, allowedWildcardClassesRegex).filter(function(t) { + return t; + }); + if (allowedSpecificClasses && allowedWildcardClasses) { + value = filterClasses(value, deepmerge(allowedSpecificClasses, allowedWildcardClasses), allowedClassesGlobs); + } else { + value = filterClasses(value, allowedSpecificClasses || allowedWildcardClasses, allowedClassesGlobs); + } + if (!value.length) { + delete frame.attribs[a]; + return; + } + } + if (a === "style") { + if (options.parseStyleAttributes) { + try { + const abstractSyntaxTree = postcssParse(name + " {" + value + "}", { map: false }); + const filteredAST = filterCss(abstractSyntaxTree, options.allowedStyles); + value = stringifyStyleAttributes(filteredAST); + if (value.length === 0) { + delete frame.attribs[a]; + return; + } + } catch (e) { + if (typeof window !== "undefined") { + console.warn('Failed to parse "' + name + " {" + value + "}" + '", If you\'re running this in a browser, we recommend to disable style parsing: options.parseStyleAttributes: false, since this only works in a node environment due to a postcss dependency, More info: https://github.com/apostrophecms/sanitize-html/issues/547'); + } + delete frame.attribs[a]; + return; + } + } else if (options.allowedStyles) { + throw new Error("allowedStyles option cannot be used together with parseStyleAttributes: false."); + } + } + result += " " + a; + if (value && value.length) { + result += '="' + escapeHtml(value, true) + '"'; + } else if (options.allowedEmptyAttributes.includes(a)) { + result += '=""'; + } + } else { + delete frame.attribs[a]; + } + }); + } + if (options.selfClosing.indexOf(name) !== -1) { + result += " />"; + } else { + result += ">"; + if (frame.innerText && !hasText && !options.textFilter) { + result += escapeHtml(frame.innerText); + addedText = true; + } + } + if (skip) { + result = tempResult + escapeHtml(result); + tempResult = ""; + } + }, + ontext: function(text) { + if (skipText) { + return; + } + const lastFrame = stack[stack.length - 1]; + let tag; + if (lastFrame) { + tag = lastFrame.tag; + text = lastFrame.innerText !== undefined ? lastFrame.innerText : text; + } + if (options.disallowedTagsMode === "completelyDiscard" && !tagAllowed(tag)) { + text = ""; + } else if ((options.disallowedTagsMode === "discard" || options.disallowedTagsMode === "completelyDiscard") && (tag === "script" || tag === "style")) { + result += text; + } else { + const escaped = escapeHtml(text, false); + if (options.textFilter && !addedText) { + result += options.textFilter(escaped, tag); + } else if (!addedText) { + result += escaped; + } + } + if (stack.length) { + const frame = stack[stack.length - 1]; + frame.text += text; + } + }, + onclosetag: function(name, isImplied) { + if (skipText) { + skipTextDepth--; + if (!skipTextDepth) { + skipText = false; + } else { + return; + } + } + const frame = stack.pop(); + if (!frame) { + return; + } + if (frame.tag !== name) { + stack.push(frame); + return; + } + skipText = options.enforceHtmlBoundary ? name === "html" : false; + depth--; + const skip = skipMap[depth]; + if (skip) { + delete skipMap[depth]; + if (options.disallowedTagsMode === "discard" || options.disallowedTagsMode === "completelyDiscard") { + frame.updateParentNodeText(); + return; + } + tempResult = result; + result = ""; + } + if (transformMap[depth]) { + name = transformMap[depth]; + delete transformMap[depth]; + } + if (options.exclusiveFilter && options.exclusiveFilter(frame)) { + result = result.substr(0, frame.tagPosition); + return; + } + frame.updateParentNodeMediaChildren(); + frame.updateParentNodeText(); + if (options.selfClosing.indexOf(name) !== -1 || isImplied && !tagAllowed(name) && ["escape", "recursiveEscape"].indexOf(options.disallowedTagsMode) >= 0) { + if (skip) { + result = tempResult; + tempResult = ""; + } + return; + } + result += ""; + if (skip) { + result = tempResult + escapeHtml(result); + tempResult = ""; + } + addedText = false; + } + }, options.parser); + parser.write(html); + parser.end(); + return result; + function initializeState() { + result = ""; + depth = 0; + stack = []; + skipMap = {}; + transformMap = {}; + skipText = false; + skipTextDepth = 0; + } + function escapeHtml(s, quote) { + if (typeof s !== "string") { + s = s + ""; + } + if (options.parser.decodeEntities) { + s = s.replace(/&/g, "&").replace(//g, ">"); + if (quote) { + s = s.replace(/"/g, """); + } + } + s = s.replace(/&(?![a-zA-Z0-9#]{1,20};)/g, "&").replace(//g, ">"); + if (quote) { + s = s.replace(/"/g, """); + } + return s; + } + function naughtyHref(name, href) { + href = href.replace(/[\x00-\x20]+/g, ""); + while (true) { + const firstIndex = href.indexOf("", firstIndex + 4); + if (lastIndex === -1) { + break; + } + href = href.substring(0, firstIndex) + href.substring(lastIndex + 3); + } + const matches = href.match(/^([a-zA-Z][a-zA-Z0-9.\-+]*):/); + if (!matches) { + if (href.match(/^[/\\]{2}/)) { + return !options.allowProtocolRelative; + } + return false; + } + const scheme = matches[1].toLowerCase(); + if (has(options.allowedSchemesByTag, name)) { + return options.allowedSchemesByTag[name].indexOf(scheme) === -1; + } + return !options.allowedSchemes || options.allowedSchemes.indexOf(scheme) === -1; + } + function parseUrl(value) { + value = value.replace(/^(\w+:)?\s*[\\/]\s*[\\/]/, "$1//"); + if (value.startsWith("relative:")) { + throw new Error("relative: exploit attempt"); + } + let base = "relative://relative-site"; + for (let i = 0;i < 100; i++) { + base += `/${i}`; + } + const parsed = new URL(value, base); + const isRelativeUrl = parsed && parsed.hostname === "relative-site" && parsed.protocol === "relative:"; + return { + isRelativeUrl, + url: parsed + }; + } + function filterCss(abstractSyntaxTree, allowedStyles) { + if (!allowedStyles) { + return abstractSyntaxTree; + } + const astRules = abstractSyntaxTree.nodes[0]; + let selectedRule; + if (allowedStyles[astRules.selector] && allowedStyles["*"]) { + selectedRule = deepmerge(allowedStyles[astRules.selector], allowedStyles["*"]); + } else { + selectedRule = allowedStyles[astRules.selector] || allowedStyles["*"]; + } + if (selectedRule) { + abstractSyntaxTree.nodes[0].nodes = astRules.nodes.reduce(filterDeclarations(selectedRule), []); + } + return abstractSyntaxTree; + } + function stringifyStyleAttributes(filteredAST) { + return filteredAST.nodes[0].nodes.reduce(function(extractedAttributes, attrObject) { + extractedAttributes.push(`${attrObject.prop}:${attrObject.value}${attrObject.important ? " !important" : ""}`); + return extractedAttributes; + }, []).join(";"); + } + function filterDeclarations(selectedRule) { + return function(allowedDeclarationsList, attributeObject) { + if (has(selectedRule, attributeObject.prop)) { + const matchesRegex = selectedRule[attributeObject.prop].some(function(regularExpression) { + return regularExpression.test(attributeObject.value); + }); + if (matchesRegex) { + allowedDeclarationsList.push(attributeObject); + } + } + return allowedDeclarationsList; + }; + } + function filterClasses(classes, allowed, allowedGlobs) { + if (!allowed) { + return classes; + } + classes = classes.split(/\s+/); + return classes.filter(function(clss) { + return allowed.indexOf(clss) !== -1 || allowedGlobs.some(function(glob) { + return glob.test(clss); + }); + }).join(" "); + } + } + var htmlParserDefaults = { + decodeEntities: true + }; + sanitizeHtml.defaults = { + allowedTags: [ + "address", + "article", + "aside", + "footer", + "header", + "h1", + "h2", + "h3", + "h4", + "h5", + "h6", + "hgroup", + "main", + "nav", + "section", + "blockquote", + "dd", + "div", + "dl", + "dt", + "figcaption", + "figure", + "hr", + "li", + "main", + "ol", + "p", + "pre", + "ul", + "a", + "abbr", + "b", + "bdi", + "bdo", + "br", + "cite", + "code", + "data", + "dfn", + "em", + "i", + "kbd", + "mark", + "q", + "rb", + "rp", + "rt", + "rtc", + "ruby", + "s", + "samp", + "small", + "span", + "strong", + "sub", + "sup", + "time", + "u", + "var", + "wbr", + "caption", + "col", + "colgroup", + "table", + "tbody", + "td", + "tfoot", + "th", + "thead", + "tr" + ], + nonBooleanAttributes: [ + "abbr", + "accept", + "accept-charset", + "accesskey", + "action", + "allow", + "alt", + "as", + "autocapitalize", + "autocomplete", + "blocking", + "charset", + "cite", + "class", + "color", + "cols", + "colspan", + "content", + "contenteditable", + "coords", + "crossorigin", + "data", + "datetime", + "decoding", + "dir", + "dirname", + "download", + "draggable", + "enctype", + "enterkeyhint", + "fetchpriority", + "for", + "form", + "formaction", + "formenctype", + "formmethod", + "formtarget", + "headers", + "height", + "hidden", + "high", + "href", + "hreflang", + "http-equiv", + "id", + "imagesizes", + "imagesrcset", + "inputmode", + "integrity", + "is", + "itemid", + "itemprop", + "itemref", + "itemtype", + "kind", + "label", + "lang", + "list", + "loading", + "low", + "max", + "maxlength", + "media", + "method", + "min", + "minlength", + "name", + "nonce", + "optimum", + "pattern", + "ping", + "placeholder", + "popover", + "popovertarget", + "popovertargetaction", + "poster", + "preload", + "referrerpolicy", + "rel", + "rows", + "rowspan", + "sandbox", + "scope", + "shape", + "size", + "sizes", + "slot", + "span", + "spellcheck", + "src", + "srcdoc", + "srclang", + "srcset", + "start", + "step", + "style", + "tabindex", + "target", + "title", + "translate", + "type", + "usemap", + "value", + "width", + "wrap", + "onauxclick", + "onafterprint", + "onbeforematch", + "onbeforeprint", + "onbeforeunload", + "onbeforetoggle", + "onblur", + "oncancel", + "oncanplay", + "oncanplaythrough", + "onchange", + "onclick", + "onclose", + "oncontextlost", + "oncontextmenu", + "oncontextrestored", + "oncopy", + "oncuechange", + "oncut", + "ondblclick", + "ondrag", + "ondragend", + "ondragenter", + "ondragleave", + "ondragover", + "ondragstart", + "ondrop", + "ondurationchange", + "onemptied", + "onended", + "onerror", + "onfocus", + "onformdata", + "onhashchange", + "oninput", + "oninvalid", + "onkeydown", + "onkeypress", + "onkeyup", + "onlanguagechange", + "onload", + "onloadeddata", + "onloadedmetadata", + "onloadstart", + "onmessage", + "onmessageerror", + "onmousedown", + "onmouseenter", + "onmouseleave", + "onmousemove", + "onmouseout", + "onmouseover", + "onmouseup", + "onoffline", + "ononline", + "onpagehide", + "onpageshow", + "onpaste", + "onpause", + "onplay", + "onplaying", + "onpopstate", + "onprogress", + "onratechange", + "onreset", + "onresize", + "onrejectionhandled", + "onscroll", + "onscrollend", + "onsecuritypolicyviolation", + "onseeked", + "onseeking", + "onselect", + "onslotchange", + "onstalled", + "onstorage", + "onsubmit", + "onsuspend", + "ontimeupdate", + "ontoggle", + "onunhandledrejection", + "onunload", + "onvolumechange", + "onwaiting", + "onwheel" + ], + disallowedTagsMode: "discard", + allowedAttributes: { + a: ["href", "name", "target"], + img: ["src", "srcset", "alt", "title", "width", "height", "loading"] + }, + allowedEmptyAttributes: [ + "alt" + ], + selfClosing: ["img", "br", "hr", "area", "base", "basefont", "input", "link", "meta"], + allowedSchemes: ["http", "https", "ftp", "mailto", "tel"], + allowedSchemesByTag: {}, + allowedSchemesAppliedToAttributes: ["href", "src", "cite"], + allowProtocolRelative: true, + enforceHtmlBoundary: false, + parseStyleAttributes: true + }; + sanitizeHtml.simpleTransform = function(newTagName, newAttribs, merge) { + merge = merge === undefined ? true : merge; + newAttribs = newAttribs || {}; + return function(tagName, attribs) { + let attrib; + if (merge) { + for (attrib in newAttribs) { + attribs[attrib] = newAttribs[attrib]; + } + } else { + attribs = newAttribs; + } + return { + tagName: newTagName, + attribs + }; + }; + }; +}); + +// package-shared/utils/backend/global-db/DB_HANDLER.ts +async function DB_HANDLER(...args) { + try { + const results = await MASTER.query(...args); + await MASTER.end(); + return JSON.parse(JSON.stringify(results)); + } catch (error) { + console.log("DB Error =>", error); + return { + success: false, + error: error.message + }; + } +} +var import_serverless_mysql3, MASTER; +var init_DB_HANDLER = __esm(() => { + import_serverless_mysql3 = __toESM(require_serverless_mysql(), 1); + init_grabDbSSL(); + MASTER = import_serverless_mysql3.default({ + config: { + host: process.env.DSQL_DB_HOST, + user: process.env.DSQL_DB_USERNAME, + password: process.env.DSQL_DB_PASSWORD, + database: process.env.DSQL_DB_NAME, + port: process.env.DSQL_DB_PORT ? Number(process.env.DSQL_DB_PORT) : undefined, + charset: "utf8mb4", + ssl: grabDbSSL() + } + }); +}); + +// package-shared/functions/dsql/encrypt.ts +var exports_encrypt = {}; +__export(exports_encrypt, { + default: () => encrypt +}); +import { scryptSync as scryptSync2, createCipheriv } from "crypto"; +import { Buffer as Buffer3 } from "buffer"; +function encrypt({ + data, + encryptionKey, + encryptionSalt +}) { + if (!data?.match(/./)) { + console.log("Encryption string is invalid"); + return data; + } + const finalEncryptionKey = encryptionKey || process.env.DSQL_ENCRYPTION_PASSWORD; + const finalEncryptionSalt = encryptionSalt || process.env.DSQL_ENCRYPTION_SALT; + const finalKeyLen = process.env.DSQL_ENCRYPTION_KEY_LENGTH ? Number(process.env.DSQL_ENCRYPTION_KEY_LENGTH) : 24; + if (!finalEncryptionKey?.match(/.{8,}/)) { + console.log("Encryption key is invalid"); + return data; + } + if (!finalEncryptionSalt?.match(/.{8,}/)) { + console.log("Encryption salt is invalid"); + return data; + } + const algorithm = "aes-192-cbc"; + const password = finalEncryptionKey; + let key = scryptSync2(password, finalEncryptionSalt, finalKeyLen); + let iv = Buffer3.alloc(16, 0); + const cipher = createCipheriv(algorithm, key, iv); + try { + let encrypted = cipher.update(data, "utf8", "hex"); + encrypted += cipher.final("hex"); + return encrypted; + } catch (error) { + console.log("Error in encrypting =>", error.message); + return data; + } +} +var init_encrypt = __esm(() => { + module_encrypt.exports = encrypt; +}); + +// package-shared/functions/backend/db/deleteDbEntry.ts +async function deleteDbEntry({ + dbContext, + paradigm, + dbFullName, + tableName, + identifierColumnName, + identifierValue, + useLocal +}) { + try { + const isMaster = useLocal ? true : dbContext?.match(/dsql.user/i) ? false : dbFullName && !dbFullName.match(/^datasquirel$/) ? false : true; + const dbHandler = useLocal ? LOCAL_DB_HANDLER : isMaster ? DB_HANDLER : DSQL_USER_DB_HANDLER; + const query = `DELETE FROM ${tableName} WHERE \`${identifierColumnName}\`=?`; + const deletedEntry = isMaster ? await dbHandler(query, [identifierValue]) : await dbHandler({ + paradigm, + queryString: query, + database: dbFullName, + queryValues: [identifierValue] + }); + return deletedEntry; + } catch (error) { + return null; + } +} +var init_deleteDbEntry = __esm(() => { + init_DB_HANDLER(); + init_DSQL_USER_DB_HANDLER(); + init_LOCAL_DB_HANDLER(); +}); + +// package-shared/utils/ejson.ts +function parse(string, reviver) { + if (!string) + return; + if (typeof string == "object") + return string; + if (typeof string !== "string") + return; + try { + return JSON.parse(string, reviver); + } catch (error) { + return; + } +} +function stringify(value, replacer, space) { + try { + return JSON.stringify(value, replacer, space); + } catch (error) { + return; + } +} +var EJSON, ejson_default; +var init_ejson = __esm(() => { + EJSON = { + parse, + stringify + }; + ejson_default = EJSON; +}); + +// package-shared/data/defaultFields.json +var require_defaultFields = __commonJS((exports, module) => { + module.exports = [ + { + fieldName: "id", + dataType: "BIGINT", + notNullValue: true, + primaryKey: true, + autoIncrement: true + }, + { + fieldName: "uuid", + dataType: "UUID", + defaultValueLiteral: "UUID()" + }, + { + fieldName: "date_created", + dataType: "VARCHAR(250)", + nullValue: true + }, + { + fieldName: "date_created_code", + dataType: "BIGINT", + nullValue: true + }, + { + fieldName: "date_created_timestamp", + dataType: "TIMESTAMP", + defaultValueLiteral: "CURRENT_TIMESTAMP" + }, + { + fieldName: "date_updated", + dataType: "VARCHAR(250)", + nullValue: true + }, + { + fieldName: "date_updated_code", + dataType: "BIGINT", + nullValue: true + }, + { + fieldName: "date_updated_timestamp", + dataType: "TIMESTAMP", + defaultValueLiteral: "CURRENT_TIMESTAMP", + onUpdateLiteral: "CURRENT_TIMESTAMP" + } + ]; +}); + +// node_modules/dotenv/package.json +var require_package = __commonJS((exports, module) => { + module.exports = { + name: "dotenv", + version: "16.3.1", + description: "Loads environment variables from .env file", + main: "lib/main.js", + types: "lib/main.d.ts", + exports: { + ".": { + types: "./lib/main.d.ts", + require: "./lib/main.js", + default: "./lib/main.js" + }, + "./config": "./config.js", + "./config.js": "./config.js", + "./lib/env-options": "./lib/env-options.js", + "./lib/env-options.js": "./lib/env-options.js", + "./lib/cli-options": "./lib/cli-options.js", + "./lib/cli-options.js": "./lib/cli-options.js", + "./package.json": "./package.json" + }, + scripts: { + "dts-check": "tsc --project tests/types/tsconfig.json", + lint: "standard", + "lint-readme": "standard-markdown", + pretest: "npm run lint && npm run dts-check", + test: "tap tests/*.js --100 -Rspec", + prerelease: "npm test", + release: "standard-version" + }, + repository: { + type: "git", + url: "git://github.com/motdotla/dotenv.git" + }, + funding: "https://github.com/motdotla/dotenv?sponsor=1", + keywords: [ + "dotenv", + "env", + ".env", + "environment", + "variables", + "config", + "settings" + ], + readmeFilename: "README.md", + license: "BSD-2-Clause", + devDependencies: { + "@definitelytyped/dtslint": "^0.0.133", + "@types/node": "^18.11.3", + decache: "^4.6.1", + sinon: "^14.0.1", + standard: "^17.0.0", + "standard-markdown": "^7.1.0", + "standard-version": "^9.5.0", + tap: "^16.3.0", + tar: "^6.1.11", + typescript: "^4.8.4" + }, + engines: { + node: ">=12" + }, + browser: { + fs: false + } + }; +}); + +// node_modules/dotenv/lib/main.js +var require_main = __commonJS((exports, module) => { + var fs10 = __require("fs"); + var path6 = __require("path"); + var os = __require("os"); + var crypto2 = __require("crypto"); + var packageJson = require_package(); + var version = packageJson.version; + var LINE = /(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/mg; + function parse2(src) { + const obj = {}; + let lines = src.toString(); + lines = lines.replace(/\r\n?/mg, "\n"); + let match; + while ((match = LINE.exec(lines)) != null) { + const key = match[1]; + let value = match[2] || ""; + value = value.trim(); + const maybeQuote = value[0]; + value = value.replace(/^(['"`])([\s\S]*)\1$/mg, "$2"); + if (maybeQuote === '"') { + value = value.replace(/\\n/g, "\n"); + value = value.replace(/\\r/g, "\r"); + } + obj[key] = value; + } + return obj; + } + function _parseVault(options) { + const vaultPath = _vaultPath(options); + const result = DotenvModule.configDotenv({ path: vaultPath }); + if (!result.parsed) { + throw new Error(`MISSING_DATA: Cannot parse ${vaultPath} for an unknown reason`); + } + const keys = _dotenvKey(options).split(","); + const length = keys.length; + let decrypted; + for (let i = 0;i < length; i++) { + try { + const key = keys[i].trim(); + const attrs = _instructions(result, key); + decrypted = DotenvModule.decrypt(attrs.ciphertext, attrs.key); + break; + } catch (error) { + if (i + 1 >= length) { + throw error; + } + } + } + return DotenvModule.parse(decrypted); + } + function _log(message) { + console.log(`[dotenv@${version}][INFO] ${message}`); + } + function _warn(message) { + console.log(`[dotenv@${version}][WARN] ${message}`); + } + function _debug(message) { + console.log(`[dotenv@${version}][DEBUG] ${message}`); + } + function _dotenvKey(options) { + if (options && options.DOTENV_KEY && options.DOTENV_KEY.length > 0) { + return options.DOTENV_KEY; + } + if (process.env.DOTENV_KEY && process.env.DOTENV_KEY.length > 0) { + return process.env.DOTENV_KEY; + } + return ""; + } + function _instructions(result, dotenvKey) { + let uri; + try { + uri = new URL(dotenvKey); + } catch (error) { + if (error.code === "ERR_INVALID_URL") { + throw new Error("INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenv.org/vault/.env.vault?environment=development"); + } + throw error; + } + const key = uri.password; + if (!key) { + throw new Error("INVALID_DOTENV_KEY: Missing key part"); + } + const environment = uri.searchParams.get("environment"); + if (!environment) { + throw new Error("INVALID_DOTENV_KEY: Missing environment part"); + } + const environmentKey = `DOTENV_VAULT_${environment.toUpperCase()}`; + const ciphertext = result.parsed[environmentKey]; + if (!ciphertext) { + throw new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${environmentKey} in your .env.vault file.`); + } + return { ciphertext, key }; + } + function _vaultPath(options) { + let dotenvPath = path6.resolve(process.cwd(), ".env"); + if (options && options.path && options.path.length > 0) { + dotenvPath = options.path; + } + return dotenvPath.endsWith(".vault") ? dotenvPath : `${dotenvPath}.vault`; + } + function _resolveHome(envPath) { + return envPath[0] === "~" ? path6.join(os.homedir(), envPath.slice(1)) : envPath; + } + function _configVault(options) { + _log("Loading env from encrypted .env.vault"); + const parsed = DotenvModule._parseVault(options); + let processEnv = process.env; + if (options && options.processEnv != null) { + processEnv = options.processEnv; + } + DotenvModule.populate(processEnv, parsed, options); + return { parsed }; + } + function configDotenv(options) { + let dotenvPath = path6.resolve(process.cwd(), ".env"); + let encoding = "utf8"; + const debug = Boolean(options && options.debug); + if (options) { + if (options.path != null) { + dotenvPath = _resolveHome(options.path); + } + if (options.encoding != null) { + encoding = options.encoding; + } + } + try { + const parsed = DotenvModule.parse(fs10.readFileSync(dotenvPath, { encoding })); + let processEnv = process.env; + if (options && options.processEnv != null) { + processEnv = options.processEnv; + } + DotenvModule.populate(processEnv, parsed, options); + return { parsed }; + } catch (e) { + if (debug) { + _debug(`Failed to load ${dotenvPath} ${e.message}`); + } + return { error: e }; + } + } + function config(options) { + const vaultPath = _vaultPath(options); + if (_dotenvKey(options).length === 0) { + return DotenvModule.configDotenv(options); + } + if (!fs10.existsSync(vaultPath)) { + _warn(`You set DOTENV_KEY but you are missing a .env.vault file at ${vaultPath}. Did you forget to build it?`); + return DotenvModule.configDotenv(options); + } + return DotenvModule._configVault(options); + } + function decrypt2(encrypted, keyStr) { + const key = Buffer.from(keyStr.slice(-64), "hex"); + let ciphertext = Buffer.from(encrypted, "base64"); + const nonce = ciphertext.slice(0, 12); + const authTag = ciphertext.slice(-16); + ciphertext = ciphertext.slice(12, -16); + try { + const aesgcm = crypto2.createDecipheriv("aes-256-gcm", key, nonce); + aesgcm.setAuthTag(authTag); + return `${aesgcm.update(ciphertext)}${aesgcm.final()}`; + } catch (error) { + const isRange = error instanceof RangeError; + const invalidKeyLength = error.message === "Invalid key length"; + const decryptionFailed = error.message === "Unsupported state or unable to authenticate data"; + if (isRange || invalidKeyLength) { + const msg = "INVALID_DOTENV_KEY: It must be 64 characters long (or more)"; + throw new Error(msg); + } else if (decryptionFailed) { + const msg = "DECRYPTION_FAILED: Please check your DOTENV_KEY"; + throw new Error(msg); + } else { + console.error("Error: ", error.code); + console.error("Error: ", error.message); + throw error; + } + } + } + function populate(processEnv, parsed, options = {}) { + const debug = Boolean(options && options.debug); + const override = Boolean(options && options.override); + if (typeof parsed !== "object") { + throw new Error("OBJECT_REQUIRED: Please check the processEnv argument being passed to populate"); + } + for (const key of Object.keys(parsed)) { + if (Object.prototype.hasOwnProperty.call(processEnv, key)) { + if (override === true) { + processEnv[key] = parsed[key]; + } + if (debug) { + if (override === true) { + _debug(`"${key}" is already defined and WAS overwritten`); + } else { + _debug(`"${key}" is already defined and was NOT overwritten`); + } + } + } else { + processEnv[key] = parsed[key]; + } + } + } + var DotenvModule = { + configDotenv, + _configVault, + _parseVault, + config, + decrypt: decrypt2, + parse: parse2, + populate + }; + exports.configDotenv = DotenvModule.configDotenv; + exports._configVault = DotenvModule._configVault; + exports._parseVault = DotenvModule._parseVault; + exports.config = DotenvModule.config; + exports.decrypt = DotenvModule.decrypt; + exports.parse = DotenvModule.parse; + exports.populate = DotenvModule.populate; + module.exports = DotenvModule; +}); + +// package-shared/data/possibleFields.json +var require_possibleFields = __commonJS((exports, module) => { + module.exports = { + fieldName: "string", + dataType: "BIGINT", + nullValue: true, + primaryKey: true, + autoIncrement: true, + defaultValue: "CURRENT_TIMESTAMP", + defaultValueLiteral: "CURRENT_TIMESTAMP", + notNullValue: true, + foreignKey: { + foreignKeyName: "Name", + destinationTableName: "Table Name", + destinationTableColumnName: "Column Name", + cascadeDelete: true, + cascadeUpdate: true + }, + onUpdate: "CURRENT_TIMESTAMP", + onUpdateLiteral: "CURRENT_TIMESTAMP", + onDelete: "CURRENT_TIMESTAMP", + onDeleteLiteral: "CURRENT_TIMESTAMP", + encrypted: false + }; +}); + +// package-shared/data/dataTypes.json +var require_dataTypes = __commonJS((exports, module) => { + module.exports = [ + { + title: "VARCHAR", + name: "VARCHAR", + value: "0-255", + argument: true, + description: "Varchar is simply letters and numbers within the range 0 - 255", + maxValue: 255 + }, + { + title: "TINYINT", + name: "TINYINT", + value: "0-100", + description: "TINYINT means Integers: 0 to 100", + maxValue: 127 + }, + { + title: "SMALLINT", + name: "SMALLINT", + value: "0-255", + description: "SMALLINT means Integers: 0 to 240933", + maxValue: 32767 + }, + { + title: "MEDIUMINT", + name: "MEDIUMINT", + value: "0-255", + description: "MEDIUMINT means Integers: 0 to 1245568545560", + maxValue: 8388607 + }, + { + title: "INT", + name: "INT", + value: "0-255", + description: "INT means Integers: 0 to 12560", + maxValue: 2147483647 + }, + { + title: "BIGINT", + name: "BIGINT", + value: "0-255", + description: "BIGINT means Integers: 0 to 1245569056767568545560", + maxValue: 2000000000000000000000000000000000000000000000000000000000000000 + }, + { + title: "TINYTEXT", + name: "TINYTEXT", + value: "0-255", + description: "Text with 255 max characters", + maxValue: 127 + }, + { + title: "TEXT", + name: "TEXT", + value: "0-100", + description: "MEDIUMTEXT is just text with max length 16,777,215", + maxValue: 127 + }, + { + title: "MEDIUMTEXT", + name: "MEDIUMTEXT", + value: "0-255", + description: "MEDIUMTEXT is just text with max length 16,777,215", + maxValue: 127 + }, + { + title: "LONGTEXT", + name: "LONGTEXT", + value: "0-255", + description: "LONGTEXT is just text with max length 4,294,967,295", + maxValue: 127 + }, + { + title: "UUID", + name: "UUID", + valueLiteral: "UUID()", + description: "A Unique ID" + } + ]; +}); + +// package-shared/data/presets/users.json +var require_users = __commonJS((exports, module) => { + module.exports = { + tableName: "users", + tableFullName: "Users", + fields: [ + { + fieldName: "first_name", + dataType: "VARCHAR(100)", + notNullValue: true + }, + { + fieldName: "last_name", + dataType: "VARCHAR(100)", + notNullValue: true + }, + { + fieldName: "email", + dataType: "VARCHAR(200)", + notNullValue: true + }, + { + fieldName: "phone", + dataType: "VARCHAR(50)" + }, + { + fieldName: "user_type", + dataType: "VARCHAR(20)", + defaultValue: "default" + }, + { + fieldName: "username", + dataType: "VARCHAR(100)", + nullValue: true + }, + { + fieldName: "password", + dataType: "TEXT" + }, + { + fieldName: "image", + dataType: "VARCHAR(250)" + }, + { + fieldName: "image_thumbnail", + dataType: "VARCHAR(250)" + }, + { + fieldName: "address", + dataType: "VARCHAR(255)" + }, + { + fieldName: "city", + dataType: "VARCHAR(50)" + }, + { + fieldName: "state", + dataType: "VARCHAR(50)" + }, + { + fieldName: "country", + dataType: "VARCHAR(50)" + }, + { + fieldName: "zip_code", + dataType: "VARCHAR(50)" + }, + { + fieldName: "social_login", + dataType: "TINYINT", + defaultValue: "0" + }, + { + fieldName: "social_platform", + dataType: "VARCHAR(50)", + nullValue: true + }, + { + fieldName: "social_id", + dataType: "VARCHAR(250)", + nullValue: true + }, + { + fieldName: "more_user_data", + dataType: "BIGINT", + defaultValue: "0" + }, + { + fieldName: "verification_status", + dataType: "TINYINT", + defaultValue: "0" + }, + { + fieldName: "temp_login_code", + dataType: "VARCHAR(50)", + nullValue: true + } + ] + }; +}); + +// package-shared/functions/backend/varDatabaseDbHandler.ts +async function varDatabaseDbHandler2({ + queryString, + queryValuesArray, + database, + tableSchema, + useLocal +}) { + const isMaster = useLocal ? true : database?.match(/^datasquirel$/) ? true : false; + const FINAL_DB_HANDLER = useLocal ? LOCAL_DB_HANDLER : isMaster ? DB_HANDLER : DSQL_USER_DB_HANDLER; + let results; + try { + if (queryString && queryValuesArray && Array.isArray(queryValuesArray) && queryValuesArray[0]) { + results = isMaster ? await FINAL_DB_HANDLER(queryString, queryValuesArray) : await FINAL_DB_HANDLER({ + paradigm: "Full Access", + database, + queryString, + queryValues: queryValuesArray + }); + } else { + results = isMaster ? await FINAL_DB_HANDLER(queryString) : await FINAL_DB_HANDLER({ + paradigm: "Full Access", + database, + queryString + }); + } + } catch (error) { + serverError({ + component: "varDatabaseDbHandler/lines-29-32", + message: error.message + }); + } + if (results && tableSchema) { + try { + const unparsedResults = results; + const parsedResults = await parseDbResults({ + unparsedResults, + tableSchema + }); + return parsedResults; + } catch (error) { + console.log("\x1B[31mvarDatabaseDbHandler ERROR\x1B[0m =>", database, error); + serverError({ + component: "varDatabaseDbHandler/lines-52-53", + message: error.message + }); + return null; + } + } else if (results) { + return results; + } else { + return null; + } +} +var init_varDatabaseDbHandler = __esm(() => { + init_parseDbResults(); + init_serverError(); + init_DB_HANDLER(); + init_DSQL_USER_DB_HANDLER(); + init_LOCAL_DB_HANDLER(); +}); + +// package-shared/functions/dsql/hashPassword.ts +var exports_hashPassword = {}; +__export(exports_hashPassword, { + default: () => hashPassword +}); +import { createHmac } from "crypto"; +function hashPassword({ + password, + encryptionKey +}) { + const finalEncryptionKey = encryptionKey || process.env.DSQL_ENCRYPTION_PASSWORD; + if (!finalEncryptionKey?.match(/.{8,}/)) { + throw new Error("Encryption key is invalid"); + } + const hmac = createHmac("sha512", finalEncryptionKey); + hmac.update(password); + let hashed = hmac.digest("base64"); + return hashed; +} +var init_hashPassword = () => { +}; + +// package-shared/functions/backend/cookies/get-auth-cookie-names.ts +function getAuthCookieNames(params) { + const cookiesPrefix = process.env.DSQL_COOKIES_PREFIX || "dsql_"; + const cookiesKeyName = process.env.DSQL_COOKIES_KEY_NAME || "key"; + const cookiesCSRFName = process.env.DSQL_COOKIES_CSRF_NAME || "csrf"; + const cookieOneTimeCodeName = process.env.DSQL_COOKIES_ONE_TIME_CODE_NAME || "one-time-code"; + const targetDatabase = params?.database?.replace(/^datasquirel_user_\d+_/, "") || process.env.DSQL_DB_NAME?.replace(/^datasquirel_user_\d+_/, ""); + let keyCookieName = cookiesPrefix; + if (params?.userId) + keyCookieName += `user_${params.userId}_`; + if (targetDatabase) + keyCookieName += `${targetDatabase}_`; + keyCookieName += cookiesKeyName; + let csrfCookieName = cookiesPrefix; + if (params?.userId) + csrfCookieName += `user_${params.userId}_`; + if (targetDatabase) + csrfCookieName += `${targetDatabase}_`; + csrfCookieName += cookiesCSRFName; + let oneTimeCodeName = cookiesPrefix; + if (params?.userId) + oneTimeCodeName += `user_${params.userId}_`; + if (targetDatabase) + oneTimeCodeName += `${targetDatabase}_`; + oneTimeCodeName += cookieOneTimeCodeName; + return { + keyCookieName, + csrfCookieName, + oneTimeCodeName + }; +} + +// node_modules/nodemailer/lib/fetch/cookies.js +var require_cookies = __commonJS((exports, module) => { + var urllib = __require("url"); + var SESSION_TIMEOUT = 1800; + + class Cookies { + constructor(options) { + this.options = options || {}; + this.cookies = []; + } + set(cookieStr, url) { + let urlparts = urllib.parse(url || ""); + let cookie = this.parse(cookieStr); + let domain; + if (cookie.domain) { + domain = cookie.domain.replace(/^\./, ""); + if (urlparts.hostname.length < domain.length || ("." + urlparts.hostname).substr(-domain.length + 1) !== "." + domain) { + cookie.domain = urlparts.hostname; + } + } else { + cookie.domain = urlparts.hostname; + } + if (!cookie.path) { + cookie.path = this.getPath(urlparts.pathname); + } + if (!cookie.expires) { + cookie.expires = new Date(Date.now() + (Number(this.options.sessionTimeout || SESSION_TIMEOUT) || SESSION_TIMEOUT) * 1000); + } + return this.add(cookie); + } + get(url) { + return this.list(url).map((cookie) => cookie.name + "=" + cookie.value).join("; "); + } + list(url) { + let result = []; + let i; + let cookie; + for (i = this.cookies.length - 1;i >= 0; i--) { + cookie = this.cookies[i]; + if (this.isExpired(cookie)) { + this.cookies.splice(i, i); + continue; + } + if (this.match(cookie, url)) { + result.unshift(cookie); + } + } + return result; + } + parse(cookieStr) { + let cookie = {}; + (cookieStr || "").toString().split(";").forEach((cookiePart) => { + let valueParts = cookiePart.split("="); + let key = valueParts.shift().trim().toLowerCase(); + let value = valueParts.join("=").trim(); + let domain; + if (!key) { + return; + } + switch (key) { + case "expires": + value = new Date(value); + if (value.toString() !== "Invalid Date") { + cookie.expires = value; + } + break; + case "path": + cookie.path = value; + break; + case "domain": + domain = value.toLowerCase(); + if (domain.length && domain.charAt(0) !== ".") { + domain = "." + domain; + } + cookie.domain = domain; + break; + case "max-age": + cookie.expires = new Date(Date.now() + (Number(value) || 0) * 1000); + break; + case "secure": + cookie.secure = true; + break; + case "httponly": + cookie.httponly = true; + break; + default: + if (!cookie.name) { + cookie.name = key; + cookie.value = value; + } + } + }); + return cookie; + } + match(cookie, url) { + let urlparts = urllib.parse(url || ""); + if (urlparts.hostname !== cookie.domain && (cookie.domain.charAt(0) !== "." || ("." + urlparts.hostname).substr(-cookie.domain.length) !== cookie.domain)) { + return false; + } + let path11 = this.getPath(urlparts.pathname); + if (path11.substr(0, cookie.path.length) !== cookie.path) { + return false; + } + if (cookie.secure && urlparts.protocol !== "https:") { + return false; + } + return true; + } + add(cookie) { + let i; + let len; + if (!cookie || !cookie.name) { + return false; + } + for (i = 0, len = this.cookies.length;i < len; i++) { + if (this.compare(this.cookies[i], cookie)) { + if (this.isExpired(cookie)) { + this.cookies.splice(i, 1); + return false; + } + this.cookies[i] = cookie; + return true; + } + } + if (!this.isExpired(cookie)) { + this.cookies.push(cookie); + } + return true; + } + compare(a, b) { + return a.name === b.name && a.path === b.path && a.domain === b.domain && a.secure === b.secure && a.httponly === a.httponly; + } + isExpired(cookie) { + return cookie.expires && cookie.expires < new Date || !cookie.value; + } + getPath(pathname) { + let path11 = (pathname || "/").split("/"); + path11.pop(); + path11 = path11.join("/").trim(); + if (path11.charAt(0) !== "/") { + path11 = "/" + path11; + } + if (path11.substr(-1) !== "/") { + path11 += "/"; + } + return path11; + } + } + module.exports = Cookies; +}); + +// node_modules/nodemailer/package.json +var require_package2 = __commonJS((exports, module) => { + module.exports = { + name: "nodemailer", + version: "6.9.14", + description: "Easy as cake e-mail sending from your Node.js applications", + main: "lib/nodemailer.js", + scripts: { + test: "node --test --test-concurrency=1 test/**/*.test.js test/**/*-test.js", + "test:coverage": "c8 node --test --test-concurrency=1 test/**/*.test.js test/**/*-test.js", + lint: "eslint .", + update: "rm -rf node_modules/ package-lock.json && ncu -u && npm install" + }, + repository: { + type: "git", + url: "https://github.com/nodemailer/nodemailer.git" + }, + keywords: [ + "Nodemailer" + ], + author: "Andris Reinman", + license: "MIT-0", + bugs: { + url: "https://github.com/nodemailer/nodemailer/issues" + }, + homepage: "https://nodemailer.com/", + devDependencies: { + "@aws-sdk/client-ses": "3.600.0", + bunyan: "1.8.15", + c8: "10.1.2", + eslint: "8.57.0", + "eslint-config-nodemailer": "1.2.0", + "eslint-config-prettier": "9.1.0", + libbase64: "1.3.0", + libmime: "5.3.5", + libqp: "2.1.0", + "nodemailer-ntlm-auth": "1.0.4", + proxy: "1.0.2", + "proxy-test-server": "1.0.0", + "smtp-server": "3.13.4" + }, + engines: { + node: ">=6.0.0" + } + }; +}); + +// node_modules/nodemailer/lib/fetch/index.js +var require_fetch = __commonJS((exports, module) => { + var http2 = __require("http"); + var https2 = __require("https"); + var urllib = __require("url"); + var zlib = __require("zlib"); + var PassThrough = __require("stream").PassThrough; + var Cookies = require_cookies(); + var packageData = require_package2(); + var net = __require("net"); + var MAX_REDIRECTS = 5; + module.exports = function(url, options) { + return nmfetch(url, options); + }; + module.exports.Cookies = Cookies; + function nmfetch(url, options) { + options = options || {}; + options.fetchRes = options.fetchRes || new PassThrough; + options.cookies = options.cookies || new Cookies; + options.redirects = options.redirects || 0; + options.maxRedirects = isNaN(options.maxRedirects) ? MAX_REDIRECTS : options.maxRedirects; + if (options.cookie) { + [].concat(options.cookie || []).forEach((cookie) => { + options.cookies.set(cookie, url); + }); + options.cookie = false; + } + let fetchRes = options.fetchRes; + let parsed = urllib.parse(url); + let method = (options.method || "").toString().trim().toUpperCase() || "GET"; + let finished = false; + let cookies; + let body; + let handler = parsed.protocol === "https:" ? https2 : http2; + let headers = { + "accept-encoding": "gzip,deflate", + "user-agent": "nodemailer/" + packageData.version + }; + Object.keys(options.headers || {}).forEach((key) => { + headers[key.toLowerCase().trim()] = options.headers[key]; + }); + if (options.userAgent) { + headers["user-agent"] = options.userAgent; + } + if (parsed.auth) { + headers.Authorization = "Basic " + Buffer.from(parsed.auth).toString("base64"); + } + if (cookies = options.cookies.get(url)) { + headers.cookie = cookies; + } + if (options.body) { + if (options.contentType !== false) { + headers["Content-Type"] = options.contentType || "application/x-www-form-urlencoded"; + } + if (typeof options.body.pipe === "function") { + headers["Transfer-Encoding"] = "chunked"; + body = options.body; + body.on("error", (err) => { + if (finished) { + return; + } + finished = true; + err.type = "FETCH"; + err.sourceUrl = url; + fetchRes.emit("error", err); + }); + } else { + if (options.body instanceof Buffer) { + body = options.body; + } else if (typeof options.body === "object") { + try { + body = Buffer.from(Object.keys(options.body).map((key) => { + let value = options.body[key].toString().trim(); + return encodeURIComponent(key) + "=" + encodeURIComponent(value); + }).join("&")); + } catch (E) { + if (finished) { + return; + } + finished = true; + E.type = "FETCH"; + E.sourceUrl = url; + fetchRes.emit("error", E); + return; + } + } else { + body = Buffer.from(options.body.toString().trim()); + } + headers["Content-Type"] = options.contentType || "application/x-www-form-urlencoded"; + headers["Content-Length"] = body.length; + } + method = (options.method || "").toString().trim().toUpperCase() || "POST"; + } + let req; + let reqOptions = { + method, + host: parsed.hostname, + path: parsed.path, + port: parsed.port ? parsed.port : parsed.protocol === "https:" ? 443 : 80, + headers, + rejectUnauthorized: false, + agent: false + }; + if (options.tls) { + Object.keys(options.tls).forEach((key) => { + reqOptions[key] = options.tls[key]; + }); + } + if (parsed.protocol === "https:" && parsed.hostname && parsed.hostname !== reqOptions.host && !net.isIP(parsed.hostname) && !reqOptions.servername) { + reqOptions.servername = parsed.hostname; + } + try { + req = handler.request(reqOptions); + } catch (E) { + finished = true; + setImmediate(() => { + E.type = "FETCH"; + E.sourceUrl = url; + fetchRes.emit("error", E); + }); + return fetchRes; + } + if (options.timeout) { + req.setTimeout(options.timeout, () => { + if (finished) { + return; + } + finished = true; + req.abort(); + let err = new Error("Request Timeout"); + err.type = "FETCH"; + err.sourceUrl = url; + fetchRes.emit("error", err); + }); + } + req.on("error", (err) => { + if (finished) { + return; + } + finished = true; + err.type = "FETCH"; + err.sourceUrl = url; + fetchRes.emit("error", err); + }); + req.on("response", (res) => { + let inflate; + if (finished) { + return; + } + switch (res.headers["content-encoding"]) { + case "gzip": + case "deflate": + inflate = zlib.createUnzip(); + break; + } + if (res.headers["set-cookie"]) { + [].concat(res.headers["set-cookie"] || []).forEach((cookie) => { + options.cookies.set(cookie, url); + }); + } + if ([301, 302, 303, 307, 308].includes(res.statusCode) && res.headers.location) { + options.redirects++; + if (options.redirects > options.maxRedirects) { + finished = true; + let err = new Error("Maximum redirect count exceeded"); + err.type = "FETCH"; + err.sourceUrl = url; + fetchRes.emit("error", err); + req.abort(); + return; + } + options.method = "GET"; + options.body = false; + return nmfetch(urllib.resolve(url, res.headers.location), options); + } + fetchRes.statusCode = res.statusCode; + fetchRes.headers = res.headers; + if (res.statusCode >= 300 && !options.allowErrorResponse) { + finished = true; + let err = new Error("Invalid status code " + res.statusCode); + err.type = "FETCH"; + err.sourceUrl = url; + fetchRes.emit("error", err); + req.abort(); + return; + } + res.on("error", (err) => { + if (finished) { + return; + } + finished = true; + err.type = "FETCH"; + err.sourceUrl = url; + fetchRes.emit("error", err); + req.abort(); + }); + if (inflate) { + res.pipe(inflate).pipe(fetchRes); + inflate.on("error", (err) => { + if (finished) { + return; + } + finished = true; + err.type = "FETCH"; + err.sourceUrl = url; + fetchRes.emit("error", err); + req.abort(); + }); + } else { + res.pipe(fetchRes); + } + }); + setImmediate(() => { + if (body) { + try { + if (typeof body.pipe === "function") { + return body.pipe(req); + } else { + req.write(body); + } + } catch (err) { + finished = true; + err.type = "FETCH"; + err.sourceUrl = url; + fetchRes.emit("error", err); + return; + } + } + req.end(); + }); + return fetchRes; + } +}); + +// node_modules/nodemailer/lib/shared/index.js +var require_shared = __commonJS((exports, module) => { + var urllib = __require("url"); + var util = __require("util"); + var fs15 = __require("fs"); + var nmfetch = require_fetch(); + var dns = __require("dns"); + var net = __require("net"); + var os = __require("os"); + var DNS_TTL = 5 * 60 * 1000; + var networkInterfaces; + try { + networkInterfaces = os.networkInterfaces(); + } catch (err) { + } + exports.networkInterfaces = networkInterfaces; + var isFamilySupported = (family, allowInternal) => { + let networkInterfaces2 = exports.networkInterfaces; + if (!networkInterfaces2) { + return true; + } + const familySupported = Object.keys(networkInterfaces2).map((key) => networkInterfaces2[key]).reduce((acc, val) => acc.concat(val), []).filter((i) => !i.internal || allowInternal).filter((i) => i.family === "IPv" + family || i.family === family).length > 0; + return familySupported; + }; + var resolver = (family, hostname, options, callback) => { + options = options || {}; + const familySupported = isFamilySupported(family, options.allowInternalNetworkInterfaces); + if (!familySupported) { + return callback(null, []); + } + const resolver2 = dns.Resolver ? new dns.Resolver(options) : dns; + resolver2["resolve" + family](hostname, (err, addresses) => { + if (err) { + switch (err.code) { + case dns.NODATA: + case dns.NOTFOUND: + case dns.NOTIMP: + case dns.SERVFAIL: + case dns.CONNREFUSED: + case dns.REFUSED: + case "EAI_AGAIN": + return callback(null, []); + } + return callback(err); + } + return callback(null, Array.isArray(addresses) ? addresses : [].concat(addresses || [])); + }); + }; + var dnsCache = exports.dnsCache = new Map; + var formatDNSValue = (value, extra) => { + if (!value) { + return Object.assign({}, extra || {}); + } + return Object.assign({ + servername: value.servername, + host: !value.addresses || !value.addresses.length ? null : value.addresses.length === 1 ? value.addresses[0] : value.addresses[Math.floor(Math.random() * value.addresses.length)] + }, extra || {}); + }; + exports.resolveHostname = (options, callback) => { + options = options || {}; + if (!options.host && options.servername) { + options.host = options.servername; + } + if (!options.host || net.isIP(options.host)) { + let value = { + addresses: [options.host], + servername: options.servername || false + }; + return callback(null, formatDNSValue(value, { + cached: false + })); + } + let cached; + if (dnsCache.has(options.host)) { + cached = dnsCache.get(options.host); + if (!cached.expires || cached.expires >= Date.now()) { + return callback(null, formatDNSValue(cached.value, { + cached: true + })); + } + } + resolver(4, options.host, options, (err, addresses) => { + if (err) { + if (cached) { + return callback(null, formatDNSValue(cached.value, { + cached: true, + error: err + })); + } + return callback(err); + } + if (addresses && addresses.length) { + let value = { + addresses, + servername: options.servername || options.host + }; + dnsCache.set(options.host, { + value, + expires: Date.now() + (options.dnsTtl || DNS_TTL) + }); + return callback(null, formatDNSValue(value, { + cached: false + })); + } + resolver(6, options.host, options, (err2, addresses2) => { + if (err2) { + if (cached) { + return callback(null, formatDNSValue(cached.value, { + cached: true, + error: err2 + })); + } + return callback(err2); + } + if (addresses2 && addresses2.length) { + let value = { + addresses: addresses2, + servername: options.servername || options.host + }; + dnsCache.set(options.host, { + value, + expires: Date.now() + (options.dnsTtl || DNS_TTL) + }); + return callback(null, formatDNSValue(value, { + cached: false + })); + } + try { + dns.lookup(options.host, { all: true }, (err3, addresses3) => { + if (err3) { + if (cached) { + return callback(null, formatDNSValue(cached.value, { + cached: true, + error: err3 + })); + } + return callback(err3); + } + let address = addresses3 ? addresses3.filter((addr) => isFamilySupported(addr.family)).map((addr) => addr.address).shift() : false; + if (addresses3 && addresses3.length && !address) { + console.warn(`Failed to resolve IPv${addresses3[0].family} addresses with current network`); + } + if (!address && cached) { + return callback(null, formatDNSValue(cached.value, { + cached: true + })); + } + let value = { + addresses: address ? [address] : [options.host], + servername: options.servername || options.host + }; + dnsCache.set(options.host, { + value, + expires: Date.now() + (options.dnsTtl || DNS_TTL) + }); + return callback(null, formatDNSValue(value, { + cached: false + })); + }); + } catch (err3) { + if (cached) { + return callback(null, formatDNSValue(cached.value, { + cached: true, + error: err3 + })); + } + return callback(err3); + } + }); + }); + }; + exports.parseConnectionUrl = (str) => { + str = str || ""; + let options = {}; + [urllib.parse(str, true)].forEach((url) => { + let auth; + switch (url.protocol) { + case "smtp:": + options.secure = false; + break; + case "smtps:": + options.secure = true; + break; + case "direct:": + options.direct = true; + break; + } + if (!isNaN(url.port) && Number(url.port)) { + options.port = Number(url.port); + } + if (url.hostname) { + options.host = url.hostname; + } + if (url.auth) { + auth = url.auth.split(":"); + if (!options.auth) { + options.auth = {}; + } + options.auth.user = auth.shift(); + options.auth.pass = auth.join(":"); + } + Object.keys(url.query || {}).forEach((key) => { + let obj = options; + let lKey = key; + let value = url.query[key]; + if (!isNaN(value)) { + value = Number(value); + } + switch (value) { + case "true": + value = true; + break; + case "false": + value = false; + break; + } + if (key.indexOf("tls.") === 0) { + lKey = key.substr(4); + if (!options.tls) { + options.tls = {}; + } + obj = options.tls; + } else if (key.indexOf(".") >= 0) { + return; + } + if (!(lKey in obj)) { + obj[lKey] = value; + } + }); + }); + return options; + }; + exports._logFunc = (logger, level, defaults, data, message, ...args) => { + let entry = {}; + Object.keys(defaults || {}).forEach((key) => { + if (key !== "level") { + entry[key] = defaults[key]; + } + }); + Object.keys(data || {}).forEach((key) => { + if (key !== "level") { + entry[key] = data[key]; + } + }); + logger[level](entry, message, ...args); + }; + exports.getLogger = (options, defaults) => { + options = options || {}; + let response = {}; + let levels = ["trace", "debug", "info", "warn", "error", "fatal"]; + if (!options.logger) { + levels.forEach((level) => { + response[level] = () => false; + }); + return response; + } + let logger = options.logger; + if (options.logger === true) { + logger = createDefaultLogger(levels); + } + levels.forEach((level) => { + response[level] = (data, message, ...args) => { + exports._logFunc(logger, level, defaults, data, message, ...args); + }; + }); + return response; + }; + exports.callbackPromise = (resolve, reject) => function() { + let args = Array.from(arguments); + let err = args.shift(); + if (err) { + reject(err); + } else { + resolve(...args); + } + }; + exports.parseDataURI = (uri) => { + let input = uri; + let commaPos = input.indexOf(","); + if (!commaPos) { + return uri; + } + let data = input.substring(commaPos + 1); + let metaStr = input.substring("data:".length, commaPos); + let encoding; + let metaEntries = metaStr.split(";"); + let lastMetaEntry = metaEntries.length > 1 ? metaEntries[metaEntries.length - 1] : false; + if (lastMetaEntry && lastMetaEntry.indexOf("=") < 0) { + encoding = lastMetaEntry.toLowerCase(); + metaEntries.pop(); + } + let contentType = metaEntries.shift() || "application/octet-stream"; + let params = {}; + for (let entry of metaEntries) { + let sep = entry.indexOf("="); + if (sep >= 0) { + let key = entry.substring(0, sep); + let value = entry.substring(sep + 1); + params[key] = value; + } + } + switch (encoding) { + case "base64": + data = Buffer.from(data, "base64"); + break; + case "utf8": + data = Buffer.from(data); + break; + default: + try { + data = Buffer.from(decodeURIComponent(data)); + } catch (err) { + data = Buffer.from(data); + } + data = Buffer.from(data); + } + return { data, encoding, contentType, params }; + }; + exports.resolveContent = (data, key, callback) => { + let promise; + if (!callback) { + promise = new Promise((resolve, reject) => { + callback = exports.callbackPromise(resolve, reject); + }); + } + let content = data && data[key] && data[key].content || data[key]; + let contentStream; + let encoding = (typeof data[key] === "object" && data[key].encoding || "utf8").toString().toLowerCase().replace(/[-_\s]/g, ""); + if (!content) { + return callback(null, content); + } + if (typeof content === "object") { + if (typeof content.pipe === "function") { + return resolveStream(content, (err, value) => { + if (err) { + return callback(err); + } + if (data[key].content) { + data[key].content = value; + } else { + data[key] = value; + } + callback(null, value); + }); + } else if (/^https?:\/\//i.test(content.path || content.href)) { + contentStream = nmfetch(content.path || content.href); + return resolveStream(contentStream, callback); + } else if (/^data:/i.test(content.path || content.href)) { + let parsedDataUri = exports.parseDataURI(content.path || content.href); + if (!parsedDataUri || !parsedDataUri.data) { + return callback(null, Buffer.from(0)); + } + return callback(null, parsedDataUri.data); + } else if (content.path) { + return resolveStream(fs15.createReadStream(content.path), callback); + } + } + if (typeof data[key].content === "string" && !["utf8", "usascii", "ascii"].includes(encoding)) { + content = Buffer.from(data[key].content, encoding); + } + setImmediate(() => callback(null, content)); + return promise; + }; + exports.assign = function() { + let args = Array.from(arguments); + let target = args.shift() || {}; + args.forEach((source) => { + Object.keys(source || {}).forEach((key) => { + if (["tls", "auth"].includes(key) && source[key] && typeof source[key] === "object") { + if (!target[key]) { + target[key] = {}; + } + Object.keys(source[key]).forEach((subKey) => { + target[key][subKey] = source[key][subKey]; + }); + } else { + target[key] = source[key]; + } + }); + }); + return target; + }; + exports.encodeXText = (str) => { + if (!/[^\x21-\x2A\x2C-\x3C\x3E-\x7E]/.test(str)) { + return str; + } + let buf = Buffer.from(str); + let result = ""; + for (let i = 0, len = buf.length;i < len; i++) { + let c = buf[i]; + if (c < 33 || c > 126 || c === 43 || c === 61) { + result += "+" + (c < 16 ? "0" : "") + c.toString(16).toUpperCase(); + } else { + result += String.fromCharCode(c); + } + } + return result; + }; + function resolveStream(stream, callback) { + let responded = false; + let chunks = []; + let chunklen = 0; + stream.on("error", (err) => { + if (responded) { + return; + } + responded = true; + callback(err); + }); + stream.on("readable", () => { + let chunk; + while ((chunk = stream.read()) !== null) { + chunks.push(chunk); + chunklen += chunk.length; + } + }); + stream.on("end", () => { + if (responded) { + return; + } + responded = true; + let value; + try { + value = Buffer.concat(chunks, chunklen); + } catch (E) { + return callback(E); + } + callback(null, value); + }); + } + function createDefaultLogger(levels) { + let levelMaxLen = 0; + let levelNames = new Map; + levels.forEach((level) => { + if (level.length > levelMaxLen) { + levelMaxLen = level.length; + } + }); + levels.forEach((level) => { + let levelName = level.toUpperCase(); + if (levelName.length < levelMaxLen) { + levelName += " ".repeat(levelMaxLen - levelName.length); + } + levelNames.set(level, levelName); + }); + let print = (level, entry, message, ...args) => { + let prefix = ""; + if (entry) { + if (entry.tnx === "server") { + prefix = "S: "; + } else if (entry.tnx === "client") { + prefix = "C: "; + } + if (entry.sid) { + prefix = "[" + entry.sid + "] " + prefix; + } + if (entry.cid) { + prefix = "[#" + entry.cid + "] " + prefix; + } + } + message = util.format(message, ...args); + message.split(/\r?\n/).forEach((line) => { + console.log("[%s] %s %s", new Date().toISOString().substr(0, 19).replace(/T/, " "), levelNames.get(level), prefix + line); + }); + }; + let logger = {}; + levels.forEach((level) => { + logger[level] = print.bind(null, level); + }); + return logger; + } +}); + +// node_modules/nodemailer/lib/mime-funcs/mime-types.js +var require_mime_types = __commonJS((exports, module) => { + var path11 = __require("path"); + var defaultMimeType = "application/octet-stream"; + var defaultExtension = "bin"; + var mimeTypes = new Map([ + ["application/acad", "dwg"], + ["application/applixware", "aw"], + ["application/arj", "arj"], + ["application/atom+xml", "xml"], + ["application/atomcat+xml", "atomcat"], + ["application/atomsvc+xml", "atomsvc"], + ["application/base64", ["mm", "mme"]], + ["application/binhex", "hqx"], + ["application/binhex4", "hqx"], + ["application/book", ["book", "boo"]], + ["application/ccxml+xml,", "ccxml"], + ["application/cdf", "cdf"], + ["application/cdmi-capability", "cdmia"], + ["application/cdmi-container", "cdmic"], + ["application/cdmi-domain", "cdmid"], + ["application/cdmi-object", "cdmio"], + ["application/cdmi-queue", "cdmiq"], + ["application/clariscad", "ccad"], + ["application/commonground", "dp"], + ["application/cu-seeme", "cu"], + ["application/davmount+xml", "davmount"], + ["application/drafting", "drw"], + ["application/dsptype", "tsp"], + ["application/dssc+der", "dssc"], + ["application/dssc+xml", "xdssc"], + ["application/dxf", "dxf"], + ["application/ecmascript", ["js", "es"]], + ["application/emma+xml", "emma"], + ["application/envoy", "evy"], + ["application/epub+zip", "epub"], + ["application/excel", ["xls", "xl", "xla", "xlb", "xlc", "xld", "xlk", "xll", "xlm", "xlt", "xlv", "xlw"]], + ["application/exi", "exi"], + ["application/font-tdpfr", "pfr"], + ["application/fractals", "fif"], + ["application/freeloader", "frl"], + ["application/futuresplash", "spl"], + ["application/gnutar", "tgz"], + ["application/groupwise", "vew"], + ["application/hlp", "hlp"], + ["application/hta", "hta"], + ["application/hyperstudio", "stk"], + ["application/i-deas", "unv"], + ["application/iges", ["iges", "igs"]], + ["application/inf", "inf"], + ["application/internet-property-stream", "acx"], + ["application/ipfix", "ipfix"], + ["application/java", "class"], + ["application/java-archive", "jar"], + ["application/java-byte-code", "class"], + ["application/java-serialized-object", "ser"], + ["application/java-vm", "class"], + ["application/javascript", "js"], + ["application/json", "json"], + ["application/lha", "lha"], + ["application/lzx", "lzx"], + ["application/mac-binary", "bin"], + ["application/mac-binhex", "hqx"], + ["application/mac-binhex40", "hqx"], + ["application/mac-compactpro", "cpt"], + ["application/macbinary", "bin"], + ["application/mads+xml", "mads"], + ["application/marc", "mrc"], + ["application/marcxml+xml", "mrcx"], + ["application/mathematica", "ma"], + ["application/mathml+xml", "mathml"], + ["application/mbedlet", "mbd"], + ["application/mbox", "mbox"], + ["application/mcad", "mcd"], + ["application/mediaservercontrol+xml", "mscml"], + ["application/metalink4+xml", "meta4"], + ["application/mets+xml", "mets"], + ["application/mime", "aps"], + ["application/mods+xml", "mods"], + ["application/mp21", "m21"], + ["application/mp4", "mp4"], + ["application/mspowerpoint", ["ppt", "pot", "pps", "ppz"]], + ["application/msword", ["doc", "dot", "w6w", "wiz", "word"]], + ["application/mswrite", "wri"], + ["application/mxf", "mxf"], + ["application/netmc", "mcp"], + ["application/octet-stream", ["*"]], + ["application/oda", "oda"], + ["application/oebps-package+xml", "opf"], + ["application/ogg", "ogx"], + ["application/olescript", "axs"], + ["application/onenote", "onetoc"], + ["application/patch-ops-error+xml", "xer"], + ["application/pdf", "pdf"], + ["application/pgp-encrypted", "asc"], + ["application/pgp-signature", "pgp"], + ["application/pics-rules", "prf"], + ["application/pkcs-12", "p12"], + ["application/pkcs-crl", "crl"], + ["application/pkcs10", "p10"], + ["application/pkcs7-mime", ["p7c", "p7m"]], + ["application/pkcs7-signature", "p7s"], + ["application/pkcs8", "p8"], + ["application/pkix-attr-cert", "ac"], + ["application/pkix-cert", ["cer", "crt"]], + ["application/pkix-crl", "crl"], + ["application/pkix-pkipath", "pkipath"], + ["application/pkixcmp", "pki"], + ["application/plain", "text"], + ["application/pls+xml", "pls"], + ["application/postscript", ["ps", "ai", "eps"]], + ["application/powerpoint", "ppt"], + ["application/pro_eng", ["part", "prt"]], + ["application/prs.cww", "cww"], + ["application/pskc+xml", "pskcxml"], + ["application/rdf+xml", "rdf"], + ["application/reginfo+xml", "rif"], + ["application/relax-ng-compact-syntax", "rnc"], + ["application/resource-lists+xml", "rl"], + ["application/resource-lists-diff+xml", "rld"], + ["application/ringing-tones", "rng"], + ["application/rls-services+xml", "rs"], + ["application/rsd+xml", "rsd"], + ["application/rss+xml", "xml"], + ["application/rtf", ["rtf", "rtx"]], + ["application/sbml+xml", "sbml"], + ["application/scvp-cv-request", "scq"], + ["application/scvp-cv-response", "scs"], + ["application/scvp-vp-request", "spq"], + ["application/scvp-vp-response", "spp"], + ["application/sdp", "sdp"], + ["application/sea", "sea"], + ["application/set", "set"], + ["application/set-payment-initiation", "setpay"], + ["application/set-registration-initiation", "setreg"], + ["application/shf+xml", "shf"], + ["application/sla", "stl"], + ["application/smil", ["smi", "smil"]], + ["application/smil+xml", "smi"], + ["application/solids", "sol"], + ["application/sounder", "sdr"], + ["application/sparql-query", "rq"], + ["application/sparql-results+xml", "srx"], + ["application/srgs", "gram"], + ["application/srgs+xml", "grxml"], + ["application/sru+xml", "sru"], + ["application/ssml+xml", "ssml"], + ["application/step", ["step", "stp"]], + ["application/streamingmedia", "ssm"], + ["application/tei+xml", "tei"], + ["application/thraud+xml", "tfi"], + ["application/timestamped-data", "tsd"], + ["application/toolbook", "tbk"], + ["application/vda", "vda"], + ["application/vnd.3gpp.pic-bw-large", "plb"], + ["application/vnd.3gpp.pic-bw-small", "psb"], + ["application/vnd.3gpp.pic-bw-var", "pvb"], + ["application/vnd.3gpp2.tcap", "tcap"], + ["application/vnd.3m.post-it-notes", "pwn"], + ["application/vnd.accpac.simply.aso", "aso"], + ["application/vnd.accpac.simply.imp", "imp"], + ["application/vnd.acucobol", "acu"], + ["application/vnd.acucorp", "atc"], + ["application/vnd.adobe.air-application-installer-package+zip", "air"], + ["application/vnd.adobe.fxp", "fxp"], + ["application/vnd.adobe.xdp+xml", "xdp"], + ["application/vnd.adobe.xfdf", "xfdf"], + ["application/vnd.ahead.space", "ahead"], + ["application/vnd.airzip.filesecure.azf", "azf"], + ["application/vnd.airzip.filesecure.azs", "azs"], + ["application/vnd.amazon.ebook", "azw"], + ["application/vnd.americandynamics.acc", "acc"], + ["application/vnd.amiga.ami", "ami"], + ["application/vnd.android.package-archive", "apk"], + ["application/vnd.anser-web-certificate-issue-initiation", "cii"], + ["application/vnd.anser-web-funds-transfer-initiation", "fti"], + ["application/vnd.antix.game-component", "atx"], + ["application/vnd.apple.installer+xml", "mpkg"], + ["application/vnd.apple.mpegurl", "m3u8"], + ["application/vnd.aristanetworks.swi", "swi"], + ["application/vnd.audiograph", "aep"], + ["application/vnd.blueice.multipass", "mpm"], + ["application/vnd.bmi", "bmi"], + ["application/vnd.businessobjects", "rep"], + ["application/vnd.chemdraw+xml", "cdxml"], + ["application/vnd.chipnuts.karaoke-mmd", "mmd"], + ["application/vnd.cinderella", "cdy"], + ["application/vnd.claymore", "cla"], + ["application/vnd.cloanto.rp9", "rp9"], + ["application/vnd.clonk.c4group", "c4g"], + ["application/vnd.cluetrust.cartomobile-config", "c11amc"], + ["application/vnd.cluetrust.cartomobile-config-pkg", "c11amz"], + ["application/vnd.commonspace", "csp"], + ["application/vnd.contact.cmsg", "cdbcmsg"], + ["application/vnd.cosmocaller", "cmc"], + ["application/vnd.crick.clicker", "clkx"], + ["application/vnd.crick.clicker.keyboard", "clkk"], + ["application/vnd.crick.clicker.palette", "clkp"], + ["application/vnd.crick.clicker.template", "clkt"], + ["application/vnd.crick.clicker.wordbank", "clkw"], + ["application/vnd.criticaltools.wbs+xml", "wbs"], + ["application/vnd.ctc-posml", "pml"], + ["application/vnd.cups-ppd", "ppd"], + ["application/vnd.curl.car", "car"], + ["application/vnd.curl.pcurl", "pcurl"], + ["application/vnd.data-vision.rdz", "rdz"], + ["application/vnd.denovo.fcselayout-link", "fe_launch"], + ["application/vnd.dna", "dna"], + ["application/vnd.dolby.mlp", "mlp"], + ["application/vnd.dpgraph", "dpg"], + ["application/vnd.dreamfactory", "dfac"], + ["application/vnd.dvb.ait", "ait"], + ["application/vnd.dvb.service", "svc"], + ["application/vnd.dynageo", "geo"], + ["application/vnd.ecowin.chart", "mag"], + ["application/vnd.enliven", "nml"], + ["application/vnd.epson.esf", "esf"], + ["application/vnd.epson.msf", "msf"], + ["application/vnd.epson.quickanime", "qam"], + ["application/vnd.epson.salt", "slt"], + ["application/vnd.epson.ssf", "ssf"], + ["application/vnd.eszigno3+xml", "es3"], + ["application/vnd.ezpix-album", "ez2"], + ["application/vnd.ezpix-package", "ez3"], + ["application/vnd.fdf", "fdf"], + ["application/vnd.fdsn.seed", "seed"], + ["application/vnd.flographit", "gph"], + ["application/vnd.fluxtime.clip", "ftc"], + ["application/vnd.framemaker", "fm"], + ["application/vnd.frogans.fnc", "fnc"], + ["application/vnd.frogans.ltf", "ltf"], + ["application/vnd.fsc.weblaunch", "fsc"], + ["application/vnd.fujitsu.oasys", "oas"], + ["application/vnd.fujitsu.oasys2", "oa2"], + ["application/vnd.fujitsu.oasys3", "oa3"], + ["application/vnd.fujitsu.oasysgp", "fg5"], + ["application/vnd.fujitsu.oasysprs", "bh2"], + ["application/vnd.fujixerox.ddd", "ddd"], + ["application/vnd.fujixerox.docuworks", "xdw"], + ["application/vnd.fujixerox.docuworks.binder", "xbd"], + ["application/vnd.fuzzysheet", "fzs"], + ["application/vnd.genomatix.tuxedo", "txd"], + ["application/vnd.geogebra.file", "ggb"], + ["application/vnd.geogebra.tool", "ggt"], + ["application/vnd.geometry-explorer", "gex"], + ["application/vnd.geonext", "gxt"], + ["application/vnd.geoplan", "g2w"], + ["application/vnd.geospace", "g3w"], + ["application/vnd.gmx", "gmx"], + ["application/vnd.google-earth.kml+xml", "kml"], + ["application/vnd.google-earth.kmz", "kmz"], + ["application/vnd.grafeq", "gqf"], + ["application/vnd.groove-account", "gac"], + ["application/vnd.groove-help", "ghf"], + ["application/vnd.groove-identity-message", "gim"], + ["application/vnd.groove-injector", "grv"], + ["application/vnd.groove-tool-message", "gtm"], + ["application/vnd.groove-tool-template", "tpl"], + ["application/vnd.groove-vcard", "vcg"], + ["application/vnd.hal+xml", "hal"], + ["application/vnd.handheld-entertainment+xml", "zmm"], + ["application/vnd.hbci", "hbci"], + ["application/vnd.hhe.lesson-player", "les"], + ["application/vnd.hp-hpgl", ["hgl", "hpg", "hpgl"]], + ["application/vnd.hp-hpid", "hpid"], + ["application/vnd.hp-hps", "hps"], + ["application/vnd.hp-jlyt", "jlt"], + ["application/vnd.hp-pcl", "pcl"], + ["application/vnd.hp-pclxl", "pclxl"], + ["application/vnd.hydrostatix.sof-data", "sfd-hdstx"], + ["application/vnd.hzn-3d-crossword", "x3d"], + ["application/vnd.ibm.minipay", "mpy"], + ["application/vnd.ibm.modcap", "afp"], + ["application/vnd.ibm.rights-management", "irm"], + ["application/vnd.ibm.secure-container", "sc"], + ["application/vnd.iccprofile", "icc"], + ["application/vnd.igloader", "igl"], + ["application/vnd.immervision-ivp", "ivp"], + ["application/vnd.immervision-ivu", "ivu"], + ["application/vnd.insors.igm", "igm"], + ["application/vnd.intercon.formnet", "xpw"], + ["application/vnd.intergeo", "i2g"], + ["application/vnd.intu.qbo", "qbo"], + ["application/vnd.intu.qfx", "qfx"], + ["application/vnd.ipunplugged.rcprofile", "rcprofile"], + ["application/vnd.irepository.package+xml", "irp"], + ["application/vnd.is-xpr", "xpr"], + ["application/vnd.isac.fcs", "fcs"], + ["application/vnd.jam", "jam"], + ["application/vnd.jcp.javame.midlet-rms", "rms"], + ["application/vnd.jisp", "jisp"], + ["application/vnd.joost.joda-archive", "joda"], + ["application/vnd.kahootz", "ktz"], + ["application/vnd.kde.karbon", "karbon"], + ["application/vnd.kde.kchart", "chrt"], + ["application/vnd.kde.kformula", "kfo"], + ["application/vnd.kde.kivio", "flw"], + ["application/vnd.kde.kontour", "kon"], + ["application/vnd.kde.kpresenter", "kpr"], + ["application/vnd.kde.kspread", "ksp"], + ["application/vnd.kde.kword", "kwd"], + ["application/vnd.kenameaapp", "htke"], + ["application/vnd.kidspiration", "kia"], + ["application/vnd.kinar", "kne"], + ["application/vnd.koan", "skp"], + ["application/vnd.kodak-descriptor", "sse"], + ["application/vnd.las.las+xml", "lasxml"], + ["application/vnd.llamagraphics.life-balance.desktop", "lbd"], + ["application/vnd.llamagraphics.life-balance.exchange+xml", "lbe"], + ["application/vnd.lotus-1-2-3", "123"], + ["application/vnd.lotus-approach", "apr"], + ["application/vnd.lotus-freelance", "pre"], + ["application/vnd.lotus-notes", "nsf"], + ["application/vnd.lotus-organizer", "org"], + ["application/vnd.lotus-screencam", "scm"], + ["application/vnd.lotus-wordpro", "lwp"], + ["application/vnd.macports.portpkg", "portpkg"], + ["application/vnd.mcd", "mcd"], + ["application/vnd.medcalcdata", "mc1"], + ["application/vnd.mediastation.cdkey", "cdkey"], + ["application/vnd.mfer", "mwf"], + ["application/vnd.mfmp", "mfm"], + ["application/vnd.micrografx.flo", "flo"], + ["application/vnd.micrografx.igx", "igx"], + ["application/vnd.mif", "mif"], + ["application/vnd.mobius.daf", "daf"], + ["application/vnd.mobius.dis", "dis"], + ["application/vnd.mobius.mbk", "mbk"], + ["application/vnd.mobius.mqy", "mqy"], + ["application/vnd.mobius.msl", "msl"], + ["application/vnd.mobius.plc", "plc"], + ["application/vnd.mobius.txf", "txf"], + ["application/vnd.mophun.application", "mpn"], + ["application/vnd.mophun.certificate", "mpc"], + ["application/vnd.mozilla.xul+xml", "xul"], + ["application/vnd.ms-artgalry", "cil"], + ["application/vnd.ms-cab-compressed", "cab"], + ["application/vnd.ms-excel", ["xls", "xla", "xlc", "xlm", "xlt", "xlw", "xlb", "xll"]], + ["application/vnd.ms-excel.addin.macroenabled.12", "xlam"], + ["application/vnd.ms-excel.sheet.binary.macroenabled.12", "xlsb"], + ["application/vnd.ms-excel.sheet.macroenabled.12", "xlsm"], + ["application/vnd.ms-excel.template.macroenabled.12", "xltm"], + ["application/vnd.ms-fontobject", "eot"], + ["application/vnd.ms-htmlhelp", "chm"], + ["application/vnd.ms-ims", "ims"], + ["application/vnd.ms-lrm", "lrm"], + ["application/vnd.ms-officetheme", "thmx"], + ["application/vnd.ms-outlook", "msg"], + ["application/vnd.ms-pki.certstore", "sst"], + ["application/vnd.ms-pki.pko", "pko"], + ["application/vnd.ms-pki.seccat", "cat"], + ["application/vnd.ms-pki.stl", "stl"], + ["application/vnd.ms-pkicertstore", "sst"], + ["application/vnd.ms-pkiseccat", "cat"], + ["application/vnd.ms-pkistl", "stl"], + ["application/vnd.ms-powerpoint", ["ppt", "pot", "pps", "ppa", "pwz"]], + ["application/vnd.ms-powerpoint.addin.macroenabled.12", "ppam"], + ["application/vnd.ms-powerpoint.presentation.macroenabled.12", "pptm"], + ["application/vnd.ms-powerpoint.slide.macroenabled.12", "sldm"], + ["application/vnd.ms-powerpoint.slideshow.macroenabled.12", "ppsm"], + ["application/vnd.ms-powerpoint.template.macroenabled.12", "potm"], + ["application/vnd.ms-project", "mpp"], + ["application/vnd.ms-word.document.macroenabled.12", "docm"], + ["application/vnd.ms-word.template.macroenabled.12", "dotm"], + ["application/vnd.ms-works", ["wks", "wcm", "wdb", "wps"]], + ["application/vnd.ms-wpl", "wpl"], + ["application/vnd.ms-xpsdocument", "xps"], + ["application/vnd.mseq", "mseq"], + ["application/vnd.musician", "mus"], + ["application/vnd.muvee.style", "msty"], + ["application/vnd.neurolanguage.nlu", "nlu"], + ["application/vnd.noblenet-directory", "nnd"], + ["application/vnd.noblenet-sealer", "nns"], + ["application/vnd.noblenet-web", "nnw"], + ["application/vnd.nokia.configuration-message", "ncm"], + ["application/vnd.nokia.n-gage.data", "ngdat"], + ["application/vnd.nokia.n-gage.symbian.install", "n-gage"], + ["application/vnd.nokia.radio-preset", "rpst"], + ["application/vnd.nokia.radio-presets", "rpss"], + ["application/vnd.nokia.ringing-tone", "rng"], + ["application/vnd.novadigm.edm", "edm"], + ["application/vnd.novadigm.edx", "edx"], + ["application/vnd.novadigm.ext", "ext"], + ["application/vnd.oasis.opendocument.chart", "odc"], + ["application/vnd.oasis.opendocument.chart-template", "otc"], + ["application/vnd.oasis.opendocument.database", "odb"], + ["application/vnd.oasis.opendocument.formula", "odf"], + ["application/vnd.oasis.opendocument.formula-template", "odft"], + ["application/vnd.oasis.opendocument.graphics", "odg"], + ["application/vnd.oasis.opendocument.graphics-template", "otg"], + ["application/vnd.oasis.opendocument.image", "odi"], + ["application/vnd.oasis.opendocument.image-template", "oti"], + ["application/vnd.oasis.opendocument.presentation", "odp"], + ["application/vnd.oasis.opendocument.presentation-template", "otp"], + ["application/vnd.oasis.opendocument.spreadsheet", "ods"], + ["application/vnd.oasis.opendocument.spreadsheet-template", "ots"], + ["application/vnd.oasis.opendocument.text", "odt"], + ["application/vnd.oasis.opendocument.text-master", "odm"], + ["application/vnd.oasis.opendocument.text-template", "ott"], + ["application/vnd.oasis.opendocument.text-web", "oth"], + ["application/vnd.olpc-sugar", "xo"], + ["application/vnd.oma.dd2+xml", "dd2"], + ["application/vnd.openofficeorg.extension", "oxt"], + ["application/vnd.openxmlformats-officedocument.presentationml.presentation", "pptx"], + ["application/vnd.openxmlformats-officedocument.presentationml.slide", "sldx"], + ["application/vnd.openxmlformats-officedocument.presentationml.slideshow", "ppsx"], + ["application/vnd.openxmlformats-officedocument.presentationml.template", "potx"], + ["application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "xlsx"], + ["application/vnd.openxmlformats-officedocument.spreadsheetml.template", "xltx"], + ["application/vnd.openxmlformats-officedocument.wordprocessingml.document", "docx"], + ["application/vnd.openxmlformats-officedocument.wordprocessingml.template", "dotx"], + ["application/vnd.osgeo.mapguide.package", "mgp"], + ["application/vnd.osgi.dp", "dp"], + ["application/vnd.palm", "pdb"], + ["application/vnd.pawaafile", "paw"], + ["application/vnd.pg.format", "str"], + ["application/vnd.pg.osasli", "ei6"], + ["application/vnd.picsel", "efif"], + ["application/vnd.pmi.widget", "wg"], + ["application/vnd.pocketlearn", "plf"], + ["application/vnd.powerbuilder6", "pbd"], + ["application/vnd.previewsystems.box", "box"], + ["application/vnd.proteus.magazine", "mgz"], + ["application/vnd.publishare-delta-tree", "qps"], + ["application/vnd.pvi.ptid1", "ptid"], + ["application/vnd.quark.quarkxpress", "qxd"], + ["application/vnd.realvnc.bed", "bed"], + ["application/vnd.recordare.musicxml", "mxl"], + ["application/vnd.recordare.musicxml+xml", "musicxml"], + ["application/vnd.rig.cryptonote", "cryptonote"], + ["application/vnd.rim.cod", "cod"], + ["application/vnd.rn-realmedia", "rm"], + ["application/vnd.rn-realplayer", "rnx"], + ["application/vnd.route66.link66+xml", "link66"], + ["application/vnd.sailingtracker.track", "st"], + ["application/vnd.seemail", "see"], + ["application/vnd.sema", "sema"], + ["application/vnd.semd", "semd"], + ["application/vnd.semf", "semf"], + ["application/vnd.shana.informed.formdata", "ifm"], + ["application/vnd.shana.informed.formtemplate", "itp"], + ["application/vnd.shana.informed.interchange", "iif"], + ["application/vnd.shana.informed.package", "ipk"], + ["application/vnd.simtech-mindmapper", "twd"], + ["application/vnd.smaf", "mmf"], + ["application/vnd.smart.teacher", "teacher"], + ["application/vnd.solent.sdkm+xml", "sdkm"], + ["application/vnd.spotfire.dxp", "dxp"], + ["application/vnd.spotfire.sfs", "sfs"], + ["application/vnd.stardivision.calc", "sdc"], + ["application/vnd.stardivision.draw", "sda"], + ["application/vnd.stardivision.impress", "sdd"], + ["application/vnd.stardivision.math", "smf"], + ["application/vnd.stardivision.writer", "sdw"], + ["application/vnd.stardivision.writer-global", "sgl"], + ["application/vnd.stepmania.stepchart", "sm"], + ["application/vnd.sun.xml.calc", "sxc"], + ["application/vnd.sun.xml.calc.template", "stc"], + ["application/vnd.sun.xml.draw", "sxd"], + ["application/vnd.sun.xml.draw.template", "std"], + ["application/vnd.sun.xml.impress", "sxi"], + ["application/vnd.sun.xml.impress.template", "sti"], + ["application/vnd.sun.xml.math", "sxm"], + ["application/vnd.sun.xml.writer", "sxw"], + ["application/vnd.sun.xml.writer.global", "sxg"], + ["application/vnd.sun.xml.writer.template", "stw"], + ["application/vnd.sus-calendar", "sus"], + ["application/vnd.svd", "svd"], + ["application/vnd.symbian.install", "sis"], + ["application/vnd.syncml+xml", "xsm"], + ["application/vnd.syncml.dm+wbxml", "bdm"], + ["application/vnd.syncml.dm+xml", "xdm"], + ["application/vnd.tao.intent-module-archive", "tao"], + ["application/vnd.tmobile-livetv", "tmo"], + ["application/vnd.trid.tpt", "tpt"], + ["application/vnd.triscape.mxs", "mxs"], + ["application/vnd.trueapp", "tra"], + ["application/vnd.ufdl", "ufd"], + ["application/vnd.uiq.theme", "utz"], + ["application/vnd.umajin", "umj"], + ["application/vnd.unity", "unityweb"], + ["application/vnd.uoml+xml", "uoml"], + ["application/vnd.vcx", "vcx"], + ["application/vnd.visio", "vsd"], + ["application/vnd.visionary", "vis"], + ["application/vnd.vsf", "vsf"], + ["application/vnd.wap.wbxml", "wbxml"], + ["application/vnd.wap.wmlc", "wmlc"], + ["application/vnd.wap.wmlscriptc", "wmlsc"], + ["application/vnd.webturbo", "wtb"], + ["application/vnd.wolfram.player", "nbp"], + ["application/vnd.wordperfect", "wpd"], + ["application/vnd.wqd", "wqd"], + ["application/vnd.wt.stf", "stf"], + ["application/vnd.xara", ["web", "xar"]], + ["application/vnd.xfdl", "xfdl"], + ["application/vnd.yamaha.hv-dic", "hvd"], + ["application/vnd.yamaha.hv-script", "hvs"], + ["application/vnd.yamaha.hv-voice", "hvp"], + ["application/vnd.yamaha.openscoreformat", "osf"], + ["application/vnd.yamaha.openscoreformat.osfpvg+xml", "osfpvg"], + ["application/vnd.yamaha.smaf-audio", "saf"], + ["application/vnd.yamaha.smaf-phrase", "spf"], + ["application/vnd.yellowriver-custom-menu", "cmp"], + ["application/vnd.zul", "zir"], + ["application/vnd.zzazz.deck+xml", "zaz"], + ["application/vocaltec-media-desc", "vmd"], + ["application/vocaltec-media-file", "vmf"], + ["application/voicexml+xml", "vxml"], + ["application/widget", "wgt"], + ["application/winhlp", "hlp"], + ["application/wordperfect", ["wp", "wp5", "wp6", "wpd"]], + ["application/wordperfect6.0", ["w60", "wp5"]], + ["application/wordperfect6.1", "w61"], + ["application/wsdl+xml", "wsdl"], + ["application/wspolicy+xml", "wspolicy"], + ["application/x-123", "wk1"], + ["application/x-7z-compressed", "7z"], + ["application/x-abiword", "abw"], + ["application/x-ace-compressed", "ace"], + ["application/x-aim", "aim"], + ["application/x-authorware-bin", "aab"], + ["application/x-authorware-map", "aam"], + ["application/x-authorware-seg", "aas"], + ["application/x-bcpio", "bcpio"], + ["application/x-binary", "bin"], + ["application/x-binhex40", "hqx"], + ["application/x-bittorrent", "torrent"], + ["application/x-bsh", ["bsh", "sh", "shar"]], + ["application/x-bytecode.elisp", "elc"], + ["application/x-bytecode.python", "pyc"], + ["application/x-bzip", "bz"], + ["application/x-bzip2", ["boz", "bz2"]], + ["application/x-cdf", "cdf"], + ["application/x-cdlink", "vcd"], + ["application/x-chat", ["cha", "chat"]], + ["application/x-chess-pgn", "pgn"], + ["application/x-cmu-raster", "ras"], + ["application/x-cocoa", "cco"], + ["application/x-compactpro", "cpt"], + ["application/x-compress", "z"], + ["application/x-compressed", ["tgz", "gz", "z", "zip"]], + ["application/x-conference", "nsc"], + ["application/x-cpio", "cpio"], + ["application/x-cpt", "cpt"], + ["application/x-csh", "csh"], + ["application/x-debian-package", "deb"], + ["application/x-deepv", "deepv"], + ["application/x-director", ["dir", "dcr", "dxr"]], + ["application/x-doom", "wad"], + ["application/x-dtbncx+xml", "ncx"], + ["application/x-dtbook+xml", "dtb"], + ["application/x-dtbresource+xml", "res"], + ["application/x-dvi", "dvi"], + ["application/x-elc", "elc"], + ["application/x-envoy", ["env", "evy"]], + ["application/x-esrehber", "es"], + ["application/x-excel", ["xls", "xla", "xlb", "xlc", "xld", "xlk", "xll", "xlm", "xlt", "xlv", "xlw"]], + ["application/x-font-bdf", "bdf"], + ["application/x-font-ghostscript", "gsf"], + ["application/x-font-linux-psf", "psf"], + ["application/x-font-otf", "otf"], + ["application/x-font-pcf", "pcf"], + ["application/x-font-snf", "snf"], + ["application/x-font-ttf", "ttf"], + ["application/x-font-type1", "pfa"], + ["application/x-font-woff", "woff"], + ["application/x-frame", "mif"], + ["application/x-freelance", "pre"], + ["application/x-futuresplash", "spl"], + ["application/x-gnumeric", "gnumeric"], + ["application/x-gsp", "gsp"], + ["application/x-gss", "gss"], + ["application/x-gtar", "gtar"], + ["application/x-gzip", ["gz", "gzip"]], + ["application/x-hdf", "hdf"], + ["application/x-helpfile", ["help", "hlp"]], + ["application/x-httpd-imap", "imap"], + ["application/x-ima", "ima"], + ["application/x-internet-signup", ["ins", "isp"]], + ["application/x-internett-signup", "ins"], + ["application/x-inventor", "iv"], + ["application/x-ip2", "ip"], + ["application/x-iphone", "iii"], + ["application/x-java-class", "class"], + ["application/x-java-commerce", "jcm"], + ["application/x-java-jnlp-file", "jnlp"], + ["application/x-javascript", "js"], + ["application/x-koan", ["skd", "skm", "skp", "skt"]], + ["application/x-ksh", "ksh"], + ["application/x-latex", ["latex", "ltx"]], + ["application/x-lha", "lha"], + ["application/x-lisp", "lsp"], + ["application/x-livescreen", "ivy"], + ["application/x-lotus", "wq1"], + ["application/x-lotusscreencam", "scm"], + ["application/x-lzh", "lzh"], + ["application/x-lzx", "lzx"], + ["application/x-mac-binhex40", "hqx"], + ["application/x-macbinary", "bin"], + ["application/x-magic-cap-package-1.0", "mc$"], + ["application/x-mathcad", "mcd"], + ["application/x-meme", "mm"], + ["application/x-midi", ["mid", "midi"]], + ["application/x-mif", "mif"], + ["application/x-mix-transfer", "nix"], + ["application/x-mobipocket-ebook", "prc"], + ["application/x-mplayer2", "asx"], + ["application/x-ms-application", "application"], + ["application/x-ms-wmd", "wmd"], + ["application/x-ms-wmz", "wmz"], + ["application/x-ms-xbap", "xbap"], + ["application/x-msaccess", "mdb"], + ["application/x-msbinder", "obd"], + ["application/x-mscardfile", "crd"], + ["application/x-msclip", "clp"], + ["application/x-msdownload", ["exe", "dll"]], + ["application/x-msexcel", ["xls", "xla", "xlw"]], + ["application/x-msmediaview", ["mvb", "m13", "m14"]], + ["application/x-msmetafile", "wmf"], + ["application/x-msmoney", "mny"], + ["application/x-mspowerpoint", "ppt"], + ["application/x-mspublisher", "pub"], + ["application/x-msschedule", "scd"], + ["application/x-msterminal", "trm"], + ["application/x-mswrite", "wri"], + ["application/x-navi-animation", "ani"], + ["application/x-navidoc", "nvd"], + ["application/x-navimap", "map"], + ["application/x-navistyle", "stl"], + ["application/x-netcdf", ["cdf", "nc"]], + ["application/x-newton-compatible-pkg", "pkg"], + ["application/x-nokia-9000-communicator-add-on-software", "aos"], + ["application/x-omc", "omc"], + ["application/x-omcdatamaker", "omcd"], + ["application/x-omcregerator", "omcr"], + ["application/x-pagemaker", ["pm4", "pm5"]], + ["application/x-pcl", "pcl"], + ["application/x-perfmon", ["pma", "pmc", "pml", "pmr", "pmw"]], + ["application/x-pixclscript", "plx"], + ["application/x-pkcs10", "p10"], + ["application/x-pkcs12", ["p12", "pfx"]], + ["application/x-pkcs7-certificates", ["p7b", "spc"]], + ["application/x-pkcs7-certreqresp", "p7r"], + ["application/x-pkcs7-mime", ["p7m", "p7c"]], + ["application/x-pkcs7-signature", ["p7s", "p7a"]], + ["application/x-pointplus", "css"], + ["application/x-portable-anymap", "pnm"], + ["application/x-project", ["mpc", "mpt", "mpv", "mpx"]], + ["application/x-qpro", "wb1"], + ["application/x-rar-compressed", "rar"], + ["application/x-rtf", "rtf"], + ["application/x-sdp", "sdp"], + ["application/x-sea", "sea"], + ["application/x-seelogo", "sl"], + ["application/x-sh", "sh"], + ["application/x-shar", ["shar", "sh"]], + ["application/x-shockwave-flash", "swf"], + ["application/x-silverlight-app", "xap"], + ["application/x-sit", "sit"], + ["application/x-sprite", ["spr", "sprite"]], + ["application/x-stuffit", "sit"], + ["application/x-stuffitx", "sitx"], + ["application/x-sv4cpio", "sv4cpio"], + ["application/x-sv4crc", "sv4crc"], + ["application/x-tar", "tar"], + ["application/x-tbook", ["sbk", "tbk"]], + ["application/x-tcl", "tcl"], + ["application/x-tex", "tex"], + ["application/x-tex-tfm", "tfm"], + ["application/x-texinfo", ["texi", "texinfo"]], + ["application/x-troff", ["roff", "t", "tr"]], + ["application/x-troff-man", "man"], + ["application/x-troff-me", "me"], + ["application/x-troff-ms", "ms"], + ["application/x-troff-msvideo", "avi"], + ["application/x-ustar", "ustar"], + ["application/x-visio", ["vsd", "vst", "vsw"]], + ["application/x-vnd.audioexplosion.mzz", "mzz"], + ["application/x-vnd.ls-xpix", "xpix"], + ["application/x-vrml", "vrml"], + ["application/x-wais-source", ["src", "wsrc"]], + ["application/x-winhelp", "hlp"], + ["application/x-wintalk", "wtk"], + ["application/x-world", ["wrl", "svr"]], + ["application/x-wpwin", "wpd"], + ["application/x-wri", "wri"], + ["application/x-x509-ca-cert", ["cer", "crt", "der"]], + ["application/x-x509-user-cert", "crt"], + ["application/x-xfig", "fig"], + ["application/x-xpinstall", "xpi"], + ["application/x-zip-compressed", "zip"], + ["application/xcap-diff+xml", "xdf"], + ["application/xenc+xml", "xenc"], + ["application/xhtml+xml", "xhtml"], + ["application/xml", "xml"], + ["application/xml-dtd", "dtd"], + ["application/xop+xml", "xop"], + ["application/xslt+xml", "xslt"], + ["application/xspf+xml", "xspf"], + ["application/xv+xml", "mxml"], + ["application/yang", "yang"], + ["application/yin+xml", "yin"], + ["application/ynd.ms-pkipko", "pko"], + ["application/zip", "zip"], + ["audio/adpcm", "adp"], + ["audio/aiff", ["aiff", "aif", "aifc"]], + ["audio/basic", ["snd", "au"]], + ["audio/it", "it"], + ["audio/make", ["funk", "my", "pfunk"]], + ["audio/make.my.funk", "pfunk"], + ["audio/mid", ["mid", "rmi"]], + ["audio/midi", ["midi", "kar", "mid"]], + ["audio/mod", "mod"], + ["audio/mp4", "mp4a"], + ["audio/mpeg", ["mpga", "mp3", "m2a", "mp2", "mpa", "mpg"]], + ["audio/mpeg3", "mp3"], + ["audio/nspaudio", ["la", "lma"]], + ["audio/ogg", "oga"], + ["audio/s3m", "s3m"], + ["audio/tsp-audio", "tsi"], + ["audio/tsplayer", "tsp"], + ["audio/vnd.dece.audio", "uva"], + ["audio/vnd.digital-winds", "eol"], + ["audio/vnd.dra", "dra"], + ["audio/vnd.dts", "dts"], + ["audio/vnd.dts.hd", "dtshd"], + ["audio/vnd.lucent.voice", "lvp"], + ["audio/vnd.ms-playready.media.pya", "pya"], + ["audio/vnd.nuera.ecelp4800", "ecelp4800"], + ["audio/vnd.nuera.ecelp7470", "ecelp7470"], + ["audio/vnd.nuera.ecelp9600", "ecelp9600"], + ["audio/vnd.qcelp", "qcp"], + ["audio/vnd.rip", "rip"], + ["audio/voc", "voc"], + ["audio/voxware", "vox"], + ["audio/wav", "wav"], + ["audio/webm", "weba"], + ["audio/x-aac", "aac"], + ["audio/x-adpcm", "snd"], + ["audio/x-aiff", ["aiff", "aif", "aifc"]], + ["audio/x-au", "au"], + ["audio/x-gsm", ["gsd", "gsm"]], + ["audio/x-jam", "jam"], + ["audio/x-liveaudio", "lam"], + ["audio/x-mid", ["mid", "midi"]], + ["audio/x-midi", ["midi", "mid"]], + ["audio/x-mod", "mod"], + ["audio/x-mpeg", "mp2"], + ["audio/x-mpeg-3", "mp3"], + ["audio/x-mpegurl", "m3u"], + ["audio/x-mpequrl", "m3u"], + ["audio/x-ms-wax", "wax"], + ["audio/x-ms-wma", "wma"], + ["audio/x-nspaudio", ["la", "lma"]], + ["audio/x-pn-realaudio", ["ra", "ram", "rm", "rmm", "rmp"]], + ["audio/x-pn-realaudio-plugin", ["ra", "rmp", "rpm"]], + ["audio/x-psid", "sid"], + ["audio/x-realaudio", "ra"], + ["audio/x-twinvq", "vqf"], + ["audio/x-twinvq-plugin", ["vqe", "vql"]], + ["audio/x-vnd.audioexplosion.mjuicemediafile", "mjf"], + ["audio/x-voc", "voc"], + ["audio/x-wav", "wav"], + ["audio/xm", "xm"], + ["chemical/x-cdx", "cdx"], + ["chemical/x-cif", "cif"], + ["chemical/x-cmdf", "cmdf"], + ["chemical/x-cml", "cml"], + ["chemical/x-csml", "csml"], + ["chemical/x-pdb", ["pdb", "xyz"]], + ["chemical/x-xyz", "xyz"], + ["drawing/x-dwf", "dwf"], + ["i-world/i-vrml", "ivr"], + ["image/bmp", ["bmp", "bm"]], + ["image/cgm", "cgm"], + ["image/cis-cod", "cod"], + ["image/cmu-raster", ["ras", "rast"]], + ["image/fif", "fif"], + ["image/florian", ["flo", "turbot"]], + ["image/g3fax", "g3"], + ["image/gif", "gif"], + ["image/ief", ["ief", "iefs"]], + ["image/jpeg", ["jpeg", "jpe", "jpg", "jfif", "jfif-tbnl"]], + ["image/jutvision", "jut"], + ["image/ktx", "ktx"], + ["image/naplps", ["nap", "naplps"]], + ["image/pict", ["pic", "pict"]], + ["image/pipeg", "jfif"], + ["image/pjpeg", ["jfif", "jpe", "jpeg", "jpg"]], + ["image/png", ["png", "x-png"]], + ["image/prs.btif", "btif"], + ["image/svg+xml", "svg"], + ["image/tiff", ["tif", "tiff"]], + ["image/vasa", "mcf"], + ["image/vnd.adobe.photoshop", "psd"], + ["image/vnd.dece.graphic", "uvi"], + ["image/vnd.djvu", "djvu"], + ["image/vnd.dvb.subtitle", "sub"], + ["image/vnd.dwg", ["dwg", "dxf", "svf"]], + ["image/vnd.dxf", "dxf"], + ["image/vnd.fastbidsheet", "fbs"], + ["image/vnd.fpx", "fpx"], + ["image/vnd.fst", "fst"], + ["image/vnd.fujixerox.edmics-mmr", "mmr"], + ["image/vnd.fujixerox.edmics-rlc", "rlc"], + ["image/vnd.ms-modi", "mdi"], + ["image/vnd.net-fpx", ["fpx", "npx"]], + ["image/vnd.rn-realflash", "rf"], + ["image/vnd.rn-realpix", "rp"], + ["image/vnd.wap.wbmp", "wbmp"], + ["image/vnd.xiff", "xif"], + ["image/webp", "webp"], + ["image/x-cmu-raster", "ras"], + ["image/x-cmx", "cmx"], + ["image/x-dwg", ["dwg", "dxf", "svf"]], + ["image/x-freehand", "fh"], + ["image/x-icon", "ico"], + ["image/x-jg", "art"], + ["image/x-jps", "jps"], + ["image/x-niff", ["niff", "nif"]], + ["image/x-pcx", "pcx"], + ["image/x-pict", ["pct", "pic"]], + ["image/x-portable-anymap", "pnm"], + ["image/x-portable-bitmap", "pbm"], + ["image/x-portable-graymap", "pgm"], + ["image/x-portable-greymap", "pgm"], + ["image/x-portable-pixmap", "ppm"], + ["image/x-quicktime", ["qif", "qti", "qtif"]], + ["image/x-rgb", "rgb"], + ["image/x-tiff", ["tif", "tiff"]], + ["image/x-windows-bmp", "bmp"], + ["image/x-xbitmap", "xbm"], + ["image/x-xbm", "xbm"], + ["image/x-xpixmap", ["xpm", "pm"]], + ["image/x-xwd", "xwd"], + ["image/x-xwindowdump", "xwd"], + ["image/xbm", "xbm"], + ["image/xpm", "xpm"], + ["message/rfc822", ["eml", "mht", "mhtml", "nws", "mime"]], + ["model/iges", ["iges", "igs"]], + ["model/mesh", "msh"], + ["model/vnd.collada+xml", "dae"], + ["model/vnd.dwf", "dwf"], + ["model/vnd.gdl", "gdl"], + ["model/vnd.gtw", "gtw"], + ["model/vnd.mts", "mts"], + ["model/vnd.vtu", "vtu"], + ["model/vrml", ["vrml", "wrl", "wrz"]], + ["model/x-pov", "pov"], + ["multipart/x-gzip", "gzip"], + ["multipart/x-ustar", "ustar"], + ["multipart/x-zip", "zip"], + ["music/crescendo", ["mid", "midi"]], + ["music/x-karaoke", "kar"], + ["paleovu/x-pv", "pvu"], + ["text/asp", "asp"], + ["text/calendar", "ics"], + ["text/css", "css"], + ["text/csv", "csv"], + ["text/ecmascript", "js"], + ["text/h323", "323"], + ["text/html", ["html", "htm", "stm", "acgi", "htmls", "htx", "shtml"]], + ["text/iuls", "uls"], + ["text/javascript", "js"], + ["text/mcf", "mcf"], + ["text/n3", "n3"], + ["text/pascal", "pas"], + [ + "text/plain", + [ + "txt", + "bas", + "c", + "h", + "c++", + "cc", + "com", + "conf", + "cxx", + "def", + "f", + "f90", + "for", + "g", + "hh", + "idc", + "jav", + "java", + "list", + "log", + "lst", + "m", + "mar", + "pl", + "sdml", + "text" + ] + ], + ["text/plain-bas", "par"], + ["text/prs.lines.tag", "dsc"], + ["text/richtext", ["rtx", "rt", "rtf"]], + ["text/scriplet", "wsc"], + ["text/scriptlet", "sct"], + ["text/sgml", ["sgm", "sgml"]], + ["text/tab-separated-values", "tsv"], + ["text/troff", "t"], + ["text/turtle", "ttl"], + ["text/uri-list", ["uni", "unis", "uri", "uris"]], + ["text/vnd.abc", "abc"], + ["text/vnd.curl", "curl"], + ["text/vnd.curl.dcurl", "dcurl"], + ["text/vnd.curl.mcurl", "mcurl"], + ["text/vnd.curl.scurl", "scurl"], + ["text/vnd.fly", "fly"], + ["text/vnd.fmi.flexstor", "flx"], + ["text/vnd.graphviz", "gv"], + ["text/vnd.in3d.3dml", "3dml"], + ["text/vnd.in3d.spot", "spot"], + ["text/vnd.rn-realtext", "rt"], + ["text/vnd.sun.j2me.app-descriptor", "jad"], + ["text/vnd.wap.wml", "wml"], + ["text/vnd.wap.wmlscript", "wmls"], + ["text/webviewhtml", "htt"], + ["text/x-asm", ["asm", "s"]], + ["text/x-audiosoft-intra", "aip"], + ["text/x-c", ["c", "cc", "cpp"]], + ["text/x-component", "htc"], + ["text/x-fortran", ["for", "f", "f77", "f90"]], + ["text/x-h", ["h", "hh"]], + ["text/x-java-source", ["java", "jav"]], + ["text/x-java-source,java", "java"], + ["text/x-la-asf", "lsx"], + ["text/x-m", "m"], + ["text/x-pascal", "p"], + ["text/x-script", "hlb"], + ["text/x-script.csh", "csh"], + ["text/x-script.elisp", "el"], + ["text/x-script.guile", "scm"], + ["text/x-script.ksh", "ksh"], + ["text/x-script.lisp", "lsp"], + ["text/x-script.perl", "pl"], + ["text/x-script.perl-module", "pm"], + ["text/x-script.phyton", "py"], + ["text/x-script.rexx", "rexx"], + ["text/x-script.scheme", "scm"], + ["text/x-script.sh", "sh"], + ["text/x-script.tcl", "tcl"], + ["text/x-script.tcsh", "tcsh"], + ["text/x-script.zsh", "zsh"], + ["text/x-server-parsed-html", ["shtml", "ssi"]], + ["text/x-setext", "etx"], + ["text/x-sgml", ["sgm", "sgml"]], + ["text/x-speech", ["spc", "talk"]], + ["text/x-uil", "uil"], + ["text/x-uuencode", ["uu", "uue"]], + ["text/x-vcalendar", "vcs"], + ["text/x-vcard", "vcf"], + ["text/xml", "xml"], + ["video/3gpp", "3gp"], + ["video/3gpp2", "3g2"], + ["video/animaflex", "afl"], + ["video/avi", "avi"], + ["video/avs-video", "avs"], + ["video/dl", "dl"], + ["video/fli", "fli"], + ["video/gl", "gl"], + ["video/h261", "h261"], + ["video/h263", "h263"], + ["video/h264", "h264"], + ["video/jpeg", "jpgv"], + ["video/jpm", "jpm"], + ["video/mj2", "mj2"], + ["video/mp4", "mp4"], + ["video/mpeg", ["mpeg", "mp2", "mpa", "mpe", "mpg", "mpv2", "m1v", "m2v", "mp3"]], + ["video/msvideo", "avi"], + ["video/ogg", "ogv"], + ["video/quicktime", ["mov", "qt", "moov"]], + ["video/vdo", "vdo"], + ["video/vivo", ["viv", "vivo"]], + ["video/vnd.dece.hd", "uvh"], + ["video/vnd.dece.mobile", "uvm"], + ["video/vnd.dece.pd", "uvp"], + ["video/vnd.dece.sd", "uvs"], + ["video/vnd.dece.video", "uvv"], + ["video/vnd.fvt", "fvt"], + ["video/vnd.mpegurl", "mxu"], + ["video/vnd.ms-playready.media.pyv", "pyv"], + ["video/vnd.rn-realvideo", "rv"], + ["video/vnd.uvvu.mp4", "uvu"], + ["video/vnd.vivo", ["viv", "vivo"]], + ["video/vosaic", "vos"], + ["video/webm", "webm"], + ["video/x-amt-demorun", "xdr"], + ["video/x-amt-showrun", "xsr"], + ["video/x-atomic3d-feature", "fmf"], + ["video/x-dl", "dl"], + ["video/x-dv", ["dif", "dv"]], + ["video/x-f4v", "f4v"], + ["video/x-fli", "fli"], + ["video/x-flv", "flv"], + ["video/x-gl", "gl"], + ["video/x-isvideo", "isu"], + ["video/x-la-asf", ["lsf", "lsx"]], + ["video/x-m4v", "m4v"], + ["video/x-motion-jpeg", "mjpg"], + ["video/x-mpeg", ["mp3", "mp2"]], + ["video/x-mpeq2a", "mp2"], + ["video/x-ms-asf", ["asf", "asr", "asx"]], + ["video/x-ms-asf-plugin", "asx"], + ["video/x-ms-wm", "wm"], + ["video/x-ms-wmv", "wmv"], + ["video/x-ms-wmx", "wmx"], + ["video/x-ms-wvx", "wvx"], + ["video/x-msvideo", "avi"], + ["video/x-qtc", "qtc"], + ["video/x-scm", "scm"], + ["video/x-sgi-movie", ["movie", "mv"]], + ["windows/metafile", "wmf"], + ["www/mime", "mime"], + ["x-conference/x-cooltalk", "ice"], + ["x-music/x-midi", ["mid", "midi"]], + ["x-world/x-3dmf", ["3dm", "3dmf", "qd3", "qd3d"]], + ["x-world/x-svr", "svr"], + ["x-world/x-vrml", ["flr", "vrml", "wrl", "wrz", "xaf", "xof"]], + ["x-world/x-vrt", "vrt"], + ["xgl/drawing", "xgz"], + ["xgl/movie", "xmz"] + ]); + var extensions = new Map([ + ["123", "application/vnd.lotus-1-2-3"], + ["323", "text/h323"], + ["*", "application/octet-stream"], + ["3dm", "x-world/x-3dmf"], + ["3dmf", "x-world/x-3dmf"], + ["3dml", "text/vnd.in3d.3dml"], + ["3g2", "video/3gpp2"], + ["3gp", "video/3gpp"], + ["7z", "application/x-7z-compressed"], + ["a", "application/octet-stream"], + ["aab", "application/x-authorware-bin"], + ["aac", "audio/x-aac"], + ["aam", "application/x-authorware-map"], + ["aas", "application/x-authorware-seg"], + ["abc", "text/vnd.abc"], + ["abw", "application/x-abiword"], + ["ac", "application/pkix-attr-cert"], + ["acc", "application/vnd.americandynamics.acc"], + ["ace", "application/x-ace-compressed"], + ["acgi", "text/html"], + ["acu", "application/vnd.acucobol"], + ["acx", "application/internet-property-stream"], + ["adp", "audio/adpcm"], + ["aep", "application/vnd.audiograph"], + ["afl", "video/animaflex"], + ["afp", "application/vnd.ibm.modcap"], + ["ahead", "application/vnd.ahead.space"], + ["ai", "application/postscript"], + ["aif", ["audio/aiff", "audio/x-aiff"]], + ["aifc", ["audio/aiff", "audio/x-aiff"]], + ["aiff", ["audio/aiff", "audio/x-aiff"]], + ["aim", "application/x-aim"], + ["aip", "text/x-audiosoft-intra"], + ["air", "application/vnd.adobe.air-application-installer-package+zip"], + ["ait", "application/vnd.dvb.ait"], + ["ami", "application/vnd.amiga.ami"], + ["ani", "application/x-navi-animation"], + ["aos", "application/x-nokia-9000-communicator-add-on-software"], + ["apk", "application/vnd.android.package-archive"], + ["application", "application/x-ms-application"], + ["apr", "application/vnd.lotus-approach"], + ["aps", "application/mime"], + ["arc", "application/octet-stream"], + ["arj", ["application/arj", "application/octet-stream"]], + ["art", "image/x-jg"], + ["asf", "video/x-ms-asf"], + ["asm", "text/x-asm"], + ["aso", "application/vnd.accpac.simply.aso"], + ["asp", "text/asp"], + ["asr", "video/x-ms-asf"], + ["asx", ["video/x-ms-asf", "application/x-mplayer2", "video/x-ms-asf-plugin"]], + ["atc", "application/vnd.acucorp"], + ["atomcat", "application/atomcat+xml"], + ["atomsvc", "application/atomsvc+xml"], + ["atx", "application/vnd.antix.game-component"], + ["au", ["audio/basic", "audio/x-au"]], + ["avi", ["video/avi", "video/msvideo", "application/x-troff-msvideo", "video/x-msvideo"]], + ["avs", "video/avs-video"], + ["aw", "application/applixware"], + ["axs", "application/olescript"], + ["azf", "application/vnd.airzip.filesecure.azf"], + ["azs", "application/vnd.airzip.filesecure.azs"], + ["azw", "application/vnd.amazon.ebook"], + ["bas", "text/plain"], + ["bcpio", "application/x-bcpio"], + ["bdf", "application/x-font-bdf"], + ["bdm", "application/vnd.syncml.dm+wbxml"], + ["bed", "application/vnd.realvnc.bed"], + ["bh2", "application/vnd.fujitsu.oasysprs"], + ["bin", ["application/octet-stream", "application/mac-binary", "application/macbinary", "application/x-macbinary", "application/x-binary"]], + ["bm", "image/bmp"], + ["bmi", "application/vnd.bmi"], + ["bmp", ["image/bmp", "image/x-windows-bmp"]], + ["boo", "application/book"], + ["book", "application/book"], + ["box", "application/vnd.previewsystems.box"], + ["boz", "application/x-bzip2"], + ["bsh", "application/x-bsh"], + ["btif", "image/prs.btif"], + ["bz", "application/x-bzip"], + ["bz2", "application/x-bzip2"], + ["c", ["text/plain", "text/x-c"]], + ["c++", "text/plain"], + ["c11amc", "application/vnd.cluetrust.cartomobile-config"], + ["c11amz", "application/vnd.cluetrust.cartomobile-config-pkg"], + ["c4g", "application/vnd.clonk.c4group"], + ["cab", "application/vnd.ms-cab-compressed"], + ["car", "application/vnd.curl.car"], + ["cat", ["application/vnd.ms-pkiseccat", "application/vnd.ms-pki.seccat"]], + ["cc", ["text/plain", "text/x-c"]], + ["ccad", "application/clariscad"], + ["cco", "application/x-cocoa"], + ["ccxml", "application/ccxml+xml,"], + ["cdbcmsg", "application/vnd.contact.cmsg"], + ["cdf", ["application/cdf", "application/x-cdf", "application/x-netcdf"]], + ["cdkey", "application/vnd.mediastation.cdkey"], + ["cdmia", "application/cdmi-capability"], + ["cdmic", "application/cdmi-container"], + ["cdmid", "application/cdmi-domain"], + ["cdmio", "application/cdmi-object"], + ["cdmiq", "application/cdmi-queue"], + ["cdx", "chemical/x-cdx"], + ["cdxml", "application/vnd.chemdraw+xml"], + ["cdy", "application/vnd.cinderella"], + ["cer", ["application/pkix-cert", "application/x-x509-ca-cert"]], + ["cgm", "image/cgm"], + ["cha", "application/x-chat"], + ["chat", "application/x-chat"], + ["chm", "application/vnd.ms-htmlhelp"], + ["chrt", "application/vnd.kde.kchart"], + ["cif", "chemical/x-cif"], + ["cii", "application/vnd.anser-web-certificate-issue-initiation"], + ["cil", "application/vnd.ms-artgalry"], + ["cla", "application/vnd.claymore"], + ["class", ["application/octet-stream", "application/java", "application/java-byte-code", "application/java-vm", "application/x-java-class"]], + ["clkk", "application/vnd.crick.clicker.keyboard"], + ["clkp", "application/vnd.crick.clicker.palette"], + ["clkt", "application/vnd.crick.clicker.template"], + ["clkw", "application/vnd.crick.clicker.wordbank"], + ["clkx", "application/vnd.crick.clicker"], + ["clp", "application/x-msclip"], + ["cmc", "application/vnd.cosmocaller"], + ["cmdf", "chemical/x-cmdf"], + ["cml", "chemical/x-cml"], + ["cmp", "application/vnd.yellowriver-custom-menu"], + ["cmx", "image/x-cmx"], + ["cod", ["image/cis-cod", "application/vnd.rim.cod"]], + ["com", ["application/octet-stream", "text/plain"]], + ["conf", "text/plain"], + ["cpio", "application/x-cpio"], + ["cpp", "text/x-c"], + ["cpt", ["application/mac-compactpro", "application/x-compactpro", "application/x-cpt"]], + ["crd", "application/x-mscardfile"], + ["crl", ["application/pkix-crl", "application/pkcs-crl"]], + ["crt", ["application/pkix-cert", "application/x-x509-user-cert", "application/x-x509-ca-cert"]], + ["cryptonote", "application/vnd.rig.cryptonote"], + ["csh", ["text/x-script.csh", "application/x-csh"]], + ["csml", "chemical/x-csml"], + ["csp", "application/vnd.commonspace"], + ["css", ["text/css", "application/x-pointplus"]], + ["csv", "text/csv"], + ["cu", "application/cu-seeme"], + ["curl", "text/vnd.curl"], + ["cww", "application/prs.cww"], + ["cxx", "text/plain"], + ["dae", "model/vnd.collada+xml"], + ["daf", "application/vnd.mobius.daf"], + ["davmount", "application/davmount+xml"], + ["dcr", "application/x-director"], + ["dcurl", "text/vnd.curl.dcurl"], + ["dd2", "application/vnd.oma.dd2+xml"], + ["ddd", "application/vnd.fujixerox.ddd"], + ["deb", "application/x-debian-package"], + ["deepv", "application/x-deepv"], + ["def", "text/plain"], + ["der", "application/x-x509-ca-cert"], + ["dfac", "application/vnd.dreamfactory"], + ["dif", "video/x-dv"], + ["dir", "application/x-director"], + ["dis", "application/vnd.mobius.dis"], + ["djvu", "image/vnd.djvu"], + ["dl", ["video/dl", "video/x-dl"]], + ["dll", "application/x-msdownload"], + ["dms", "application/octet-stream"], + ["dna", "application/vnd.dna"], + ["doc", "application/msword"], + ["docm", "application/vnd.ms-word.document.macroenabled.12"], + ["docx", "application/vnd.openxmlformats-officedocument.wordprocessingml.document"], + ["dot", "application/msword"], + ["dotm", "application/vnd.ms-word.template.macroenabled.12"], + ["dotx", "application/vnd.openxmlformats-officedocument.wordprocessingml.template"], + ["dp", ["application/commonground", "application/vnd.osgi.dp"]], + ["dpg", "application/vnd.dpgraph"], + ["dra", "audio/vnd.dra"], + ["drw", "application/drafting"], + ["dsc", "text/prs.lines.tag"], + ["dssc", "application/dssc+der"], + ["dtb", "application/x-dtbook+xml"], + ["dtd", "application/xml-dtd"], + ["dts", "audio/vnd.dts"], + ["dtshd", "audio/vnd.dts.hd"], + ["dump", "application/octet-stream"], + ["dv", "video/x-dv"], + ["dvi", "application/x-dvi"], + ["dwf", ["model/vnd.dwf", "drawing/x-dwf"]], + ["dwg", ["application/acad", "image/vnd.dwg", "image/x-dwg"]], + ["dxf", ["application/dxf", "image/vnd.dwg", "image/vnd.dxf", "image/x-dwg"]], + ["dxp", "application/vnd.spotfire.dxp"], + ["dxr", "application/x-director"], + ["ecelp4800", "audio/vnd.nuera.ecelp4800"], + ["ecelp7470", "audio/vnd.nuera.ecelp7470"], + ["ecelp9600", "audio/vnd.nuera.ecelp9600"], + ["edm", "application/vnd.novadigm.edm"], + ["edx", "application/vnd.novadigm.edx"], + ["efif", "application/vnd.picsel"], + ["ei6", "application/vnd.pg.osasli"], + ["el", "text/x-script.elisp"], + ["elc", ["application/x-elc", "application/x-bytecode.elisp"]], + ["eml", "message/rfc822"], + ["emma", "application/emma+xml"], + ["env", "application/x-envoy"], + ["eol", "audio/vnd.digital-winds"], + ["eot", "application/vnd.ms-fontobject"], + ["eps", "application/postscript"], + ["epub", "application/epub+zip"], + ["es", ["application/ecmascript", "application/x-esrehber"]], + ["es3", "application/vnd.eszigno3+xml"], + ["esf", "application/vnd.epson.esf"], + ["etx", "text/x-setext"], + ["evy", ["application/envoy", "application/x-envoy"]], + ["exe", ["application/octet-stream", "application/x-msdownload"]], + ["exi", "application/exi"], + ["ext", "application/vnd.novadigm.ext"], + ["ez2", "application/vnd.ezpix-album"], + ["ez3", "application/vnd.ezpix-package"], + ["f", ["text/plain", "text/x-fortran"]], + ["f4v", "video/x-f4v"], + ["f77", "text/x-fortran"], + ["f90", ["text/plain", "text/x-fortran"]], + ["fbs", "image/vnd.fastbidsheet"], + ["fcs", "application/vnd.isac.fcs"], + ["fdf", "application/vnd.fdf"], + ["fe_launch", "application/vnd.denovo.fcselayout-link"], + ["fg5", "application/vnd.fujitsu.oasysgp"], + ["fh", "image/x-freehand"], + ["fif", ["application/fractals", "image/fif"]], + ["fig", "application/x-xfig"], + ["fli", ["video/fli", "video/x-fli"]], + ["flo", ["image/florian", "application/vnd.micrografx.flo"]], + ["flr", "x-world/x-vrml"], + ["flv", "video/x-flv"], + ["flw", "application/vnd.kde.kivio"], + ["flx", "text/vnd.fmi.flexstor"], + ["fly", "text/vnd.fly"], + ["fm", "application/vnd.framemaker"], + ["fmf", "video/x-atomic3d-feature"], + ["fnc", "application/vnd.frogans.fnc"], + ["for", ["text/plain", "text/x-fortran"]], + ["fpx", ["image/vnd.fpx", "image/vnd.net-fpx"]], + ["frl", "application/freeloader"], + ["fsc", "application/vnd.fsc.weblaunch"], + ["fst", "image/vnd.fst"], + ["ftc", "application/vnd.fluxtime.clip"], + ["fti", "application/vnd.anser-web-funds-transfer-initiation"], + ["funk", "audio/make"], + ["fvt", "video/vnd.fvt"], + ["fxp", "application/vnd.adobe.fxp"], + ["fzs", "application/vnd.fuzzysheet"], + ["g", "text/plain"], + ["g2w", "application/vnd.geoplan"], + ["g3", "image/g3fax"], + ["g3w", "application/vnd.geospace"], + ["gac", "application/vnd.groove-account"], + ["gdl", "model/vnd.gdl"], + ["geo", "application/vnd.dynageo"], + ["gex", "application/vnd.geometry-explorer"], + ["ggb", "application/vnd.geogebra.file"], + ["ggt", "application/vnd.geogebra.tool"], + ["ghf", "application/vnd.groove-help"], + ["gif", "image/gif"], + ["gim", "application/vnd.groove-identity-message"], + ["gl", ["video/gl", "video/x-gl"]], + ["gmx", "application/vnd.gmx"], + ["gnumeric", "application/x-gnumeric"], + ["gph", "application/vnd.flographit"], + ["gqf", "application/vnd.grafeq"], + ["gram", "application/srgs"], + ["grv", "application/vnd.groove-injector"], + ["grxml", "application/srgs+xml"], + ["gsd", "audio/x-gsm"], + ["gsf", "application/x-font-ghostscript"], + ["gsm", "audio/x-gsm"], + ["gsp", "application/x-gsp"], + ["gss", "application/x-gss"], + ["gtar", "application/x-gtar"], + ["gtm", "application/vnd.groove-tool-message"], + ["gtw", "model/vnd.gtw"], + ["gv", "text/vnd.graphviz"], + ["gxt", "application/vnd.geonext"], + ["gz", ["application/x-gzip", "application/x-compressed"]], + ["gzip", ["multipart/x-gzip", "application/x-gzip"]], + ["h", ["text/plain", "text/x-h"]], + ["h261", "video/h261"], + ["h263", "video/h263"], + ["h264", "video/h264"], + ["hal", "application/vnd.hal+xml"], + ["hbci", "application/vnd.hbci"], + ["hdf", "application/x-hdf"], + ["help", "application/x-helpfile"], + ["hgl", "application/vnd.hp-hpgl"], + ["hh", ["text/plain", "text/x-h"]], + ["hlb", "text/x-script"], + ["hlp", ["application/winhlp", "application/hlp", "application/x-helpfile", "application/x-winhelp"]], + ["hpg", "application/vnd.hp-hpgl"], + ["hpgl", "application/vnd.hp-hpgl"], + ["hpid", "application/vnd.hp-hpid"], + ["hps", "application/vnd.hp-hps"], + [ + "hqx", + [ + "application/mac-binhex40", + "application/binhex", + "application/binhex4", + "application/mac-binhex", + "application/x-binhex40", + "application/x-mac-binhex40" + ] + ], + ["hta", "application/hta"], + ["htc", "text/x-component"], + ["htke", "application/vnd.kenameaapp"], + ["htm", "text/html"], + ["html", "text/html"], + ["htmls", "text/html"], + ["htt", "text/webviewhtml"], + ["htx", "text/html"], + ["hvd", "application/vnd.yamaha.hv-dic"], + ["hvp", "application/vnd.yamaha.hv-voice"], + ["hvs", "application/vnd.yamaha.hv-script"], + ["i2g", "application/vnd.intergeo"], + ["icc", "application/vnd.iccprofile"], + ["ice", "x-conference/x-cooltalk"], + ["ico", "image/x-icon"], + ["ics", "text/calendar"], + ["idc", "text/plain"], + ["ief", "image/ief"], + ["iefs", "image/ief"], + ["ifm", "application/vnd.shana.informed.formdata"], + ["iges", ["application/iges", "model/iges"]], + ["igl", "application/vnd.igloader"], + ["igm", "application/vnd.insors.igm"], + ["igs", ["application/iges", "model/iges"]], + ["igx", "application/vnd.micrografx.igx"], + ["iif", "application/vnd.shana.informed.interchange"], + ["iii", "application/x-iphone"], + ["ima", "application/x-ima"], + ["imap", "application/x-httpd-imap"], + ["imp", "application/vnd.accpac.simply.imp"], + ["ims", "application/vnd.ms-ims"], + ["inf", "application/inf"], + ["ins", ["application/x-internet-signup", "application/x-internett-signup"]], + ["ip", "application/x-ip2"], + ["ipfix", "application/ipfix"], + ["ipk", "application/vnd.shana.informed.package"], + ["irm", "application/vnd.ibm.rights-management"], + ["irp", "application/vnd.irepository.package+xml"], + ["isp", "application/x-internet-signup"], + ["isu", "video/x-isvideo"], + ["it", "audio/it"], + ["itp", "application/vnd.shana.informed.formtemplate"], + ["iv", "application/x-inventor"], + ["ivp", "application/vnd.immervision-ivp"], + ["ivr", "i-world/i-vrml"], + ["ivu", "application/vnd.immervision-ivu"], + ["ivy", "application/x-livescreen"], + ["jad", "text/vnd.sun.j2me.app-descriptor"], + ["jam", ["application/vnd.jam", "audio/x-jam"]], + ["jar", "application/java-archive"], + ["jav", ["text/plain", "text/x-java-source"]], + ["java", ["text/plain", "text/x-java-source,java", "text/x-java-source"]], + ["jcm", "application/x-java-commerce"], + ["jfif", ["image/pipeg", "image/jpeg", "image/pjpeg"]], + ["jfif-tbnl", "image/jpeg"], + ["jisp", "application/vnd.jisp"], + ["jlt", "application/vnd.hp-jlyt"], + ["jnlp", "application/x-java-jnlp-file"], + ["joda", "application/vnd.joost.joda-archive"], + ["jpe", ["image/jpeg", "image/pjpeg"]], + ["jpeg", ["image/jpeg", "image/pjpeg"]], + ["jpg", ["image/jpeg", "image/pjpeg"]], + ["jpgv", "video/jpeg"], + ["jpm", "video/jpm"], + ["jps", "image/x-jps"], + ["js", ["application/javascript", "application/ecmascript", "text/javascript", "text/ecmascript", "application/x-javascript"]], + ["json", "application/json"], + ["jut", "image/jutvision"], + ["kar", ["audio/midi", "music/x-karaoke"]], + ["karbon", "application/vnd.kde.karbon"], + ["kfo", "application/vnd.kde.kformula"], + ["kia", "application/vnd.kidspiration"], + ["kml", "application/vnd.google-earth.kml+xml"], + ["kmz", "application/vnd.google-earth.kmz"], + ["kne", "application/vnd.kinar"], + ["kon", "application/vnd.kde.kontour"], + ["kpr", "application/vnd.kde.kpresenter"], + ["ksh", ["application/x-ksh", "text/x-script.ksh"]], + ["ksp", "application/vnd.kde.kspread"], + ["ktx", "image/ktx"], + ["ktz", "application/vnd.kahootz"], + ["kwd", "application/vnd.kde.kword"], + ["la", ["audio/nspaudio", "audio/x-nspaudio"]], + ["lam", "audio/x-liveaudio"], + ["lasxml", "application/vnd.las.las+xml"], + ["latex", "application/x-latex"], + ["lbd", "application/vnd.llamagraphics.life-balance.desktop"], + ["lbe", "application/vnd.llamagraphics.life-balance.exchange+xml"], + ["les", "application/vnd.hhe.lesson-player"], + ["lha", ["application/octet-stream", "application/lha", "application/x-lha"]], + ["lhx", "application/octet-stream"], + ["link66", "application/vnd.route66.link66+xml"], + ["list", "text/plain"], + ["lma", ["audio/nspaudio", "audio/x-nspaudio"]], + ["log", "text/plain"], + ["lrm", "application/vnd.ms-lrm"], + ["lsf", "video/x-la-asf"], + ["lsp", ["application/x-lisp", "text/x-script.lisp"]], + ["lst", "text/plain"], + ["lsx", ["video/x-la-asf", "text/x-la-asf"]], + ["ltf", "application/vnd.frogans.ltf"], + ["ltx", "application/x-latex"], + ["lvp", "audio/vnd.lucent.voice"], + ["lwp", "application/vnd.lotus-wordpro"], + ["lzh", ["application/octet-stream", "application/x-lzh"]], + ["lzx", ["application/lzx", "application/octet-stream", "application/x-lzx"]], + ["m", ["text/plain", "text/x-m"]], + ["m13", "application/x-msmediaview"], + ["m14", "application/x-msmediaview"], + ["m1v", "video/mpeg"], + ["m21", "application/mp21"], + ["m2a", "audio/mpeg"], + ["m2v", "video/mpeg"], + ["m3u", ["audio/x-mpegurl", "audio/x-mpequrl"]], + ["m3u8", "application/vnd.apple.mpegurl"], + ["m4v", "video/x-m4v"], + ["ma", "application/mathematica"], + ["mads", "application/mads+xml"], + ["mag", "application/vnd.ecowin.chart"], + ["man", "application/x-troff-man"], + ["map", "application/x-navimap"], + ["mar", "text/plain"], + ["mathml", "application/mathml+xml"], + ["mbd", "application/mbedlet"], + ["mbk", "application/vnd.mobius.mbk"], + ["mbox", "application/mbox"], + ["mc$", "application/x-magic-cap-package-1.0"], + ["mc1", "application/vnd.medcalcdata"], + ["mcd", ["application/mcad", "application/vnd.mcd", "application/x-mathcad"]], + ["mcf", ["image/vasa", "text/mcf"]], + ["mcp", "application/netmc"], + ["mcurl", "text/vnd.curl.mcurl"], + ["mdb", "application/x-msaccess"], + ["mdi", "image/vnd.ms-modi"], + ["me", "application/x-troff-me"], + ["meta4", "application/metalink4+xml"], + ["mets", "application/mets+xml"], + ["mfm", "application/vnd.mfmp"], + ["mgp", "application/vnd.osgeo.mapguide.package"], + ["mgz", "application/vnd.proteus.magazine"], + ["mht", "message/rfc822"], + ["mhtml", "message/rfc822"], + ["mid", ["audio/mid", "audio/midi", "music/crescendo", "x-music/x-midi", "audio/x-midi", "application/x-midi", "audio/x-mid"]], + ["midi", ["audio/midi", "music/crescendo", "x-music/x-midi", "audio/x-midi", "application/x-midi", "audio/x-mid"]], + ["mif", ["application/vnd.mif", "application/x-mif", "application/x-frame"]], + ["mime", ["message/rfc822", "www/mime"]], + ["mj2", "video/mj2"], + ["mjf", "audio/x-vnd.audioexplosion.mjuicemediafile"], + ["mjpg", "video/x-motion-jpeg"], + ["mlp", "application/vnd.dolby.mlp"], + ["mm", ["application/base64", "application/x-meme"]], + ["mmd", "application/vnd.chipnuts.karaoke-mmd"], + ["mme", "application/base64"], + ["mmf", "application/vnd.smaf"], + ["mmr", "image/vnd.fujixerox.edmics-mmr"], + ["mny", "application/x-msmoney"], + ["mod", ["audio/mod", "audio/x-mod"]], + ["mods", "application/mods+xml"], + ["moov", "video/quicktime"], + ["mov", "video/quicktime"], + ["movie", "video/x-sgi-movie"], + ["mp2", ["video/mpeg", "audio/mpeg", "video/x-mpeg", "audio/x-mpeg", "video/x-mpeq2a"]], + ["mp3", ["audio/mpeg", "audio/mpeg3", "video/mpeg", "audio/x-mpeg-3", "video/x-mpeg"]], + ["mp4", ["video/mp4", "application/mp4"]], + ["mp4a", "audio/mp4"], + ["mpa", ["video/mpeg", "audio/mpeg"]], + ["mpc", ["application/vnd.mophun.certificate", "application/x-project"]], + ["mpe", "video/mpeg"], + ["mpeg", "video/mpeg"], + ["mpg", ["video/mpeg", "audio/mpeg"]], + ["mpga", "audio/mpeg"], + ["mpkg", "application/vnd.apple.installer+xml"], + ["mpm", "application/vnd.blueice.multipass"], + ["mpn", "application/vnd.mophun.application"], + ["mpp", "application/vnd.ms-project"], + ["mpt", "application/x-project"], + ["mpv", "application/x-project"], + ["mpv2", "video/mpeg"], + ["mpx", "application/x-project"], + ["mpy", "application/vnd.ibm.minipay"], + ["mqy", "application/vnd.mobius.mqy"], + ["mrc", "application/marc"], + ["mrcx", "application/marcxml+xml"], + ["ms", "application/x-troff-ms"], + ["mscml", "application/mediaservercontrol+xml"], + ["mseq", "application/vnd.mseq"], + ["msf", "application/vnd.epson.msf"], + ["msg", "application/vnd.ms-outlook"], + ["msh", "model/mesh"], + ["msl", "application/vnd.mobius.msl"], + ["msty", "application/vnd.muvee.style"], + ["mts", "model/vnd.mts"], + ["mus", "application/vnd.musician"], + ["musicxml", "application/vnd.recordare.musicxml+xml"], + ["mv", "video/x-sgi-movie"], + ["mvb", "application/x-msmediaview"], + ["mwf", "application/vnd.mfer"], + ["mxf", "application/mxf"], + ["mxl", "application/vnd.recordare.musicxml"], + ["mxml", "application/xv+xml"], + ["mxs", "application/vnd.triscape.mxs"], + ["mxu", "video/vnd.mpegurl"], + ["my", "audio/make"], + ["mzz", "application/x-vnd.audioexplosion.mzz"], + ["n-gage", "application/vnd.nokia.n-gage.symbian.install"], + ["n3", "text/n3"], + ["nap", "image/naplps"], + ["naplps", "image/naplps"], + ["nbp", "application/vnd.wolfram.player"], + ["nc", "application/x-netcdf"], + ["ncm", "application/vnd.nokia.configuration-message"], + ["ncx", "application/x-dtbncx+xml"], + ["ngdat", "application/vnd.nokia.n-gage.data"], + ["nif", "image/x-niff"], + ["niff", "image/x-niff"], + ["nix", "application/x-mix-transfer"], + ["nlu", "application/vnd.neurolanguage.nlu"], + ["nml", "application/vnd.enliven"], + ["nnd", "application/vnd.noblenet-directory"], + ["nns", "application/vnd.noblenet-sealer"], + ["nnw", "application/vnd.noblenet-web"], + ["npx", "image/vnd.net-fpx"], + ["nsc", "application/x-conference"], + ["nsf", "application/vnd.lotus-notes"], + ["nvd", "application/x-navidoc"], + ["nws", "message/rfc822"], + ["o", "application/octet-stream"], + ["oa2", "application/vnd.fujitsu.oasys2"], + ["oa3", "application/vnd.fujitsu.oasys3"], + ["oas", "application/vnd.fujitsu.oasys"], + ["obd", "application/x-msbinder"], + ["oda", "application/oda"], + ["odb", "application/vnd.oasis.opendocument.database"], + ["odc", "application/vnd.oasis.opendocument.chart"], + ["odf", "application/vnd.oasis.opendocument.formula"], + ["odft", "application/vnd.oasis.opendocument.formula-template"], + ["odg", "application/vnd.oasis.opendocument.graphics"], + ["odi", "application/vnd.oasis.opendocument.image"], + ["odm", "application/vnd.oasis.opendocument.text-master"], + ["odp", "application/vnd.oasis.opendocument.presentation"], + ["ods", "application/vnd.oasis.opendocument.spreadsheet"], + ["odt", "application/vnd.oasis.opendocument.text"], + ["oga", "audio/ogg"], + ["ogv", "video/ogg"], + ["ogx", "application/ogg"], + ["omc", "application/x-omc"], + ["omcd", "application/x-omcdatamaker"], + ["omcr", "application/x-omcregerator"], + ["onetoc", "application/onenote"], + ["opf", "application/oebps-package+xml"], + ["org", "application/vnd.lotus-organizer"], + ["osf", "application/vnd.yamaha.openscoreformat"], + ["osfpvg", "application/vnd.yamaha.openscoreformat.osfpvg+xml"], + ["otc", "application/vnd.oasis.opendocument.chart-template"], + ["otf", "application/x-font-otf"], + ["otg", "application/vnd.oasis.opendocument.graphics-template"], + ["oth", "application/vnd.oasis.opendocument.text-web"], + ["oti", "application/vnd.oasis.opendocument.image-template"], + ["otp", "application/vnd.oasis.opendocument.presentation-template"], + ["ots", "application/vnd.oasis.opendocument.spreadsheet-template"], + ["ott", "application/vnd.oasis.opendocument.text-template"], + ["oxt", "application/vnd.openofficeorg.extension"], + ["p", "text/x-pascal"], + ["p10", ["application/pkcs10", "application/x-pkcs10"]], + ["p12", ["application/pkcs-12", "application/x-pkcs12"]], + ["p7a", "application/x-pkcs7-signature"], + ["p7b", "application/x-pkcs7-certificates"], + ["p7c", ["application/pkcs7-mime", "application/x-pkcs7-mime"]], + ["p7m", ["application/pkcs7-mime", "application/x-pkcs7-mime"]], + ["p7r", "application/x-pkcs7-certreqresp"], + ["p7s", ["application/pkcs7-signature", "application/x-pkcs7-signature"]], + ["p8", "application/pkcs8"], + ["par", "text/plain-bas"], + ["part", "application/pro_eng"], + ["pas", "text/pascal"], + ["paw", "application/vnd.pawaafile"], + ["pbd", "application/vnd.powerbuilder6"], + ["pbm", "image/x-portable-bitmap"], + ["pcf", "application/x-font-pcf"], + ["pcl", ["application/vnd.hp-pcl", "application/x-pcl"]], + ["pclxl", "application/vnd.hp-pclxl"], + ["pct", "image/x-pict"], + ["pcurl", "application/vnd.curl.pcurl"], + ["pcx", "image/x-pcx"], + ["pdb", ["application/vnd.palm", "chemical/x-pdb"]], + ["pdf", "application/pdf"], + ["pfa", "application/x-font-type1"], + ["pfr", "application/font-tdpfr"], + ["pfunk", ["audio/make", "audio/make.my.funk"]], + ["pfx", "application/x-pkcs12"], + ["pgm", ["image/x-portable-graymap", "image/x-portable-greymap"]], + ["pgn", "application/x-chess-pgn"], + ["pgp", "application/pgp-signature"], + ["pic", ["image/pict", "image/x-pict"]], + ["pict", "image/pict"], + ["pkg", "application/x-newton-compatible-pkg"], + ["pki", "application/pkixcmp"], + ["pkipath", "application/pkix-pkipath"], + ["pko", ["application/ynd.ms-pkipko", "application/vnd.ms-pki.pko"]], + ["pl", ["text/plain", "text/x-script.perl"]], + ["plb", "application/vnd.3gpp.pic-bw-large"], + ["plc", "application/vnd.mobius.plc"], + ["plf", "application/vnd.pocketlearn"], + ["pls", "application/pls+xml"], + ["plx", "application/x-pixclscript"], + ["pm", ["text/x-script.perl-module", "image/x-xpixmap"]], + ["pm4", "application/x-pagemaker"], + ["pm5", "application/x-pagemaker"], + ["pma", "application/x-perfmon"], + ["pmc", "application/x-perfmon"], + ["pml", ["application/vnd.ctc-posml", "application/x-perfmon"]], + ["pmr", "application/x-perfmon"], + ["pmw", "application/x-perfmon"], + ["png", "image/png"], + ["pnm", ["application/x-portable-anymap", "image/x-portable-anymap"]], + ["portpkg", "application/vnd.macports.portpkg"], + ["pot", ["application/vnd.ms-powerpoint", "application/mspowerpoint"]], + ["potm", "application/vnd.ms-powerpoint.template.macroenabled.12"], + ["potx", "application/vnd.openxmlformats-officedocument.presentationml.template"], + ["pov", "model/x-pov"], + ["ppa", "application/vnd.ms-powerpoint"], + ["ppam", "application/vnd.ms-powerpoint.addin.macroenabled.12"], + ["ppd", "application/vnd.cups-ppd"], + ["ppm", "image/x-portable-pixmap"], + ["pps", ["application/vnd.ms-powerpoint", "application/mspowerpoint"]], + ["ppsm", "application/vnd.ms-powerpoint.slideshow.macroenabled.12"], + ["ppsx", "application/vnd.openxmlformats-officedocument.presentationml.slideshow"], + ["ppt", ["application/vnd.ms-powerpoint", "application/mspowerpoint", "application/powerpoint", "application/x-mspowerpoint"]], + ["pptm", "application/vnd.ms-powerpoint.presentation.macroenabled.12"], + ["pptx", "application/vnd.openxmlformats-officedocument.presentationml.presentation"], + ["ppz", "application/mspowerpoint"], + ["prc", "application/x-mobipocket-ebook"], + ["pre", ["application/vnd.lotus-freelance", "application/x-freelance"]], + ["prf", "application/pics-rules"], + ["prt", "application/pro_eng"], + ["ps", "application/postscript"], + ["psb", "application/vnd.3gpp.pic-bw-small"], + ["psd", ["application/octet-stream", "image/vnd.adobe.photoshop"]], + ["psf", "application/x-font-linux-psf"], + ["pskcxml", "application/pskc+xml"], + ["ptid", "application/vnd.pvi.ptid1"], + ["pub", "application/x-mspublisher"], + ["pvb", "application/vnd.3gpp.pic-bw-var"], + ["pvu", "paleovu/x-pv"], + ["pwn", "application/vnd.3m.post-it-notes"], + ["pwz", "application/vnd.ms-powerpoint"], + ["py", "text/x-script.phyton"], + ["pya", "audio/vnd.ms-playready.media.pya"], + ["pyc", "application/x-bytecode.python"], + ["pyv", "video/vnd.ms-playready.media.pyv"], + ["qam", "application/vnd.epson.quickanime"], + ["qbo", "application/vnd.intu.qbo"], + ["qcp", "audio/vnd.qcelp"], + ["qd3", "x-world/x-3dmf"], + ["qd3d", "x-world/x-3dmf"], + ["qfx", "application/vnd.intu.qfx"], + ["qif", "image/x-quicktime"], + ["qps", "application/vnd.publishare-delta-tree"], + ["qt", "video/quicktime"], + ["qtc", "video/x-qtc"], + ["qti", "image/x-quicktime"], + ["qtif", "image/x-quicktime"], + ["qxd", "application/vnd.quark.quarkxpress"], + ["ra", ["audio/x-realaudio", "audio/x-pn-realaudio", "audio/x-pn-realaudio-plugin"]], + ["ram", "audio/x-pn-realaudio"], + ["rar", "application/x-rar-compressed"], + ["ras", ["image/cmu-raster", "application/x-cmu-raster", "image/x-cmu-raster"]], + ["rast", "image/cmu-raster"], + ["rcprofile", "application/vnd.ipunplugged.rcprofile"], + ["rdf", "application/rdf+xml"], + ["rdz", "application/vnd.data-vision.rdz"], + ["rep", "application/vnd.businessobjects"], + ["res", "application/x-dtbresource+xml"], + ["rexx", "text/x-script.rexx"], + ["rf", "image/vnd.rn-realflash"], + ["rgb", "image/x-rgb"], + ["rif", "application/reginfo+xml"], + ["rip", "audio/vnd.rip"], + ["rl", "application/resource-lists+xml"], + ["rlc", "image/vnd.fujixerox.edmics-rlc"], + ["rld", "application/resource-lists-diff+xml"], + ["rm", ["application/vnd.rn-realmedia", "audio/x-pn-realaudio"]], + ["rmi", "audio/mid"], + ["rmm", "audio/x-pn-realaudio"], + ["rmp", ["audio/x-pn-realaudio-plugin", "audio/x-pn-realaudio"]], + ["rms", "application/vnd.jcp.javame.midlet-rms"], + ["rnc", "application/relax-ng-compact-syntax"], + ["rng", ["application/ringing-tones", "application/vnd.nokia.ringing-tone"]], + ["rnx", "application/vnd.rn-realplayer"], + ["roff", "application/x-troff"], + ["rp", "image/vnd.rn-realpix"], + ["rp9", "application/vnd.cloanto.rp9"], + ["rpm", "audio/x-pn-realaudio-plugin"], + ["rpss", "application/vnd.nokia.radio-presets"], + ["rpst", "application/vnd.nokia.radio-preset"], + ["rq", "application/sparql-query"], + ["rs", "application/rls-services+xml"], + ["rsd", "application/rsd+xml"], + ["rt", ["text/richtext", "text/vnd.rn-realtext"]], + ["rtf", ["application/rtf", "text/richtext", "application/x-rtf"]], + ["rtx", ["text/richtext", "application/rtf"]], + ["rv", "video/vnd.rn-realvideo"], + ["s", "text/x-asm"], + ["s3m", "audio/s3m"], + ["saf", "application/vnd.yamaha.smaf-audio"], + ["saveme", "application/octet-stream"], + ["sbk", "application/x-tbook"], + ["sbml", "application/sbml+xml"], + ["sc", "application/vnd.ibm.secure-container"], + ["scd", "application/x-msschedule"], + ["scm", ["application/vnd.lotus-screencam", "video/x-scm", "text/x-script.guile", "application/x-lotusscreencam", "text/x-script.scheme"]], + ["scq", "application/scvp-cv-request"], + ["scs", "application/scvp-cv-response"], + ["sct", "text/scriptlet"], + ["scurl", "text/vnd.curl.scurl"], + ["sda", "application/vnd.stardivision.draw"], + ["sdc", "application/vnd.stardivision.calc"], + ["sdd", "application/vnd.stardivision.impress"], + ["sdkm", "application/vnd.solent.sdkm+xml"], + ["sdml", "text/plain"], + ["sdp", ["application/sdp", "application/x-sdp"]], + ["sdr", "application/sounder"], + ["sdw", "application/vnd.stardivision.writer"], + ["sea", ["application/sea", "application/x-sea"]], + ["see", "application/vnd.seemail"], + ["seed", "application/vnd.fdsn.seed"], + ["sema", "application/vnd.sema"], + ["semd", "application/vnd.semd"], + ["semf", "application/vnd.semf"], + ["ser", "application/java-serialized-object"], + ["set", "application/set"], + ["setpay", "application/set-payment-initiation"], + ["setreg", "application/set-registration-initiation"], + ["sfd-hdstx", "application/vnd.hydrostatix.sof-data"], + ["sfs", "application/vnd.spotfire.sfs"], + ["sgl", "application/vnd.stardivision.writer-global"], + ["sgm", ["text/sgml", "text/x-sgml"]], + ["sgml", ["text/sgml", "text/x-sgml"]], + ["sh", ["application/x-shar", "application/x-bsh", "application/x-sh", "text/x-script.sh"]], + ["shar", ["application/x-bsh", "application/x-shar"]], + ["shf", "application/shf+xml"], + ["shtml", ["text/html", "text/x-server-parsed-html"]], + ["sid", "audio/x-psid"], + ["sis", "application/vnd.symbian.install"], + ["sit", ["application/x-stuffit", "application/x-sit"]], + ["sitx", "application/x-stuffitx"], + ["skd", "application/x-koan"], + ["skm", "application/x-koan"], + ["skp", ["application/vnd.koan", "application/x-koan"]], + ["skt", "application/x-koan"], + ["sl", "application/x-seelogo"], + ["sldm", "application/vnd.ms-powerpoint.slide.macroenabled.12"], + ["sldx", "application/vnd.openxmlformats-officedocument.presentationml.slide"], + ["slt", "application/vnd.epson.salt"], + ["sm", "application/vnd.stepmania.stepchart"], + ["smf", "application/vnd.stardivision.math"], + ["smi", ["application/smil", "application/smil+xml"]], + ["smil", "application/smil"], + ["snd", ["audio/basic", "audio/x-adpcm"]], + ["snf", "application/x-font-snf"], + ["sol", "application/solids"], + ["spc", ["text/x-speech", "application/x-pkcs7-certificates"]], + ["spf", "application/vnd.yamaha.smaf-phrase"], + ["spl", ["application/futuresplash", "application/x-futuresplash"]], + ["spot", "text/vnd.in3d.spot"], + ["spp", "application/scvp-vp-response"], + ["spq", "application/scvp-vp-request"], + ["spr", "application/x-sprite"], + ["sprite", "application/x-sprite"], + ["src", "application/x-wais-source"], + ["sru", "application/sru+xml"], + ["srx", "application/sparql-results+xml"], + ["sse", "application/vnd.kodak-descriptor"], + ["ssf", "application/vnd.epson.ssf"], + ["ssi", "text/x-server-parsed-html"], + ["ssm", "application/streamingmedia"], + ["ssml", "application/ssml+xml"], + ["sst", ["application/vnd.ms-pkicertstore", "application/vnd.ms-pki.certstore"]], + ["st", "application/vnd.sailingtracker.track"], + ["stc", "application/vnd.sun.xml.calc.template"], + ["std", "application/vnd.sun.xml.draw.template"], + ["step", "application/step"], + ["stf", "application/vnd.wt.stf"], + ["sti", "application/vnd.sun.xml.impress.template"], + ["stk", "application/hyperstudio"], + ["stl", ["application/vnd.ms-pkistl", "application/sla", "application/vnd.ms-pki.stl", "application/x-navistyle"]], + ["stm", "text/html"], + ["stp", "application/step"], + ["str", "application/vnd.pg.format"], + ["stw", "application/vnd.sun.xml.writer.template"], + ["sub", "image/vnd.dvb.subtitle"], + ["sus", "application/vnd.sus-calendar"], + ["sv4cpio", "application/x-sv4cpio"], + ["sv4crc", "application/x-sv4crc"], + ["svc", "application/vnd.dvb.service"], + ["svd", "application/vnd.svd"], + ["svf", ["image/vnd.dwg", "image/x-dwg"]], + ["svg", "image/svg+xml"], + ["svr", ["x-world/x-svr", "application/x-world"]], + ["swf", "application/x-shockwave-flash"], + ["swi", "application/vnd.aristanetworks.swi"], + ["sxc", "application/vnd.sun.xml.calc"], + ["sxd", "application/vnd.sun.xml.draw"], + ["sxg", "application/vnd.sun.xml.writer.global"], + ["sxi", "application/vnd.sun.xml.impress"], + ["sxm", "application/vnd.sun.xml.math"], + ["sxw", "application/vnd.sun.xml.writer"], + ["t", ["text/troff", "application/x-troff"]], + ["talk", "text/x-speech"], + ["tao", "application/vnd.tao.intent-module-archive"], + ["tar", "application/x-tar"], + ["tbk", ["application/toolbook", "application/x-tbook"]], + ["tcap", "application/vnd.3gpp2.tcap"], + ["tcl", ["text/x-script.tcl", "application/x-tcl"]], + ["tcsh", "text/x-script.tcsh"], + ["teacher", "application/vnd.smart.teacher"], + ["tei", "application/tei+xml"], + ["tex", "application/x-tex"], + ["texi", "application/x-texinfo"], + ["texinfo", "application/x-texinfo"], + ["text", ["application/plain", "text/plain"]], + ["tfi", "application/thraud+xml"], + ["tfm", "application/x-tex-tfm"], + ["tgz", ["application/gnutar", "application/x-compressed"]], + ["thmx", "application/vnd.ms-officetheme"], + ["tif", ["image/tiff", "image/x-tiff"]], + ["tiff", ["image/tiff", "image/x-tiff"]], + ["tmo", "application/vnd.tmobile-livetv"], + ["torrent", "application/x-bittorrent"], + ["tpl", "application/vnd.groove-tool-template"], + ["tpt", "application/vnd.trid.tpt"], + ["tr", "application/x-troff"], + ["tra", "application/vnd.trueapp"], + ["trm", "application/x-msterminal"], + ["tsd", "application/timestamped-data"], + ["tsi", "audio/tsp-audio"], + ["tsp", ["application/dsptype", "audio/tsplayer"]], + ["tsv", "text/tab-separated-values"], + ["ttf", "application/x-font-ttf"], + ["ttl", "text/turtle"], + ["turbot", "image/florian"], + ["twd", "application/vnd.simtech-mindmapper"], + ["txd", "application/vnd.genomatix.tuxedo"], + ["txf", "application/vnd.mobius.txf"], + ["txt", "text/plain"], + ["ufd", "application/vnd.ufdl"], + ["uil", "text/x-uil"], + ["uls", "text/iuls"], + ["umj", "application/vnd.umajin"], + ["uni", "text/uri-list"], + ["unis", "text/uri-list"], + ["unityweb", "application/vnd.unity"], + ["unv", "application/i-deas"], + ["uoml", "application/vnd.uoml+xml"], + ["uri", "text/uri-list"], + ["uris", "text/uri-list"], + ["ustar", ["application/x-ustar", "multipart/x-ustar"]], + ["utz", "application/vnd.uiq.theme"], + ["uu", ["application/octet-stream", "text/x-uuencode"]], + ["uue", "text/x-uuencode"], + ["uva", "audio/vnd.dece.audio"], + ["uvh", "video/vnd.dece.hd"], + ["uvi", "image/vnd.dece.graphic"], + ["uvm", "video/vnd.dece.mobile"], + ["uvp", "video/vnd.dece.pd"], + ["uvs", "video/vnd.dece.sd"], + ["uvu", "video/vnd.uvvu.mp4"], + ["uvv", "video/vnd.dece.video"], + ["vcd", "application/x-cdlink"], + ["vcf", "text/x-vcard"], + ["vcg", "application/vnd.groove-vcard"], + ["vcs", "text/x-vcalendar"], + ["vcx", "application/vnd.vcx"], + ["vda", "application/vda"], + ["vdo", "video/vdo"], + ["vew", "application/groupwise"], + ["vis", "application/vnd.visionary"], + ["viv", ["video/vivo", "video/vnd.vivo"]], + ["vivo", ["video/vivo", "video/vnd.vivo"]], + ["vmd", "application/vocaltec-media-desc"], + ["vmf", "application/vocaltec-media-file"], + ["voc", ["audio/voc", "audio/x-voc"]], + ["vos", "video/vosaic"], + ["vox", "audio/voxware"], + ["vqe", "audio/x-twinvq-plugin"], + ["vqf", "audio/x-twinvq"], + ["vql", "audio/x-twinvq-plugin"], + ["vrml", ["model/vrml", "x-world/x-vrml", "application/x-vrml"]], + ["vrt", "x-world/x-vrt"], + ["vsd", ["application/vnd.visio", "application/x-visio"]], + ["vsf", "application/vnd.vsf"], + ["vst", "application/x-visio"], + ["vsw", "application/x-visio"], + ["vtu", "model/vnd.vtu"], + ["vxml", "application/voicexml+xml"], + ["w60", "application/wordperfect6.0"], + ["w61", "application/wordperfect6.1"], + ["w6w", "application/msword"], + ["wad", "application/x-doom"], + ["wav", ["audio/wav", "audio/x-wav"]], + ["wax", "audio/x-ms-wax"], + ["wb1", "application/x-qpro"], + ["wbmp", "image/vnd.wap.wbmp"], + ["wbs", "application/vnd.criticaltools.wbs+xml"], + ["wbxml", "application/vnd.wap.wbxml"], + ["wcm", "application/vnd.ms-works"], + ["wdb", "application/vnd.ms-works"], + ["web", "application/vnd.xara"], + ["weba", "audio/webm"], + ["webm", "video/webm"], + ["webp", "image/webp"], + ["wg", "application/vnd.pmi.widget"], + ["wgt", "application/widget"], + ["wiz", "application/msword"], + ["wk1", "application/x-123"], + ["wks", "application/vnd.ms-works"], + ["wm", "video/x-ms-wm"], + ["wma", "audio/x-ms-wma"], + ["wmd", "application/x-ms-wmd"], + ["wmf", ["windows/metafile", "application/x-msmetafile"]], + ["wml", "text/vnd.wap.wml"], + ["wmlc", "application/vnd.wap.wmlc"], + ["wmls", "text/vnd.wap.wmlscript"], + ["wmlsc", "application/vnd.wap.wmlscriptc"], + ["wmv", "video/x-ms-wmv"], + ["wmx", "video/x-ms-wmx"], + ["wmz", "application/x-ms-wmz"], + ["woff", "application/x-font-woff"], + ["word", "application/msword"], + ["wp", "application/wordperfect"], + ["wp5", ["application/wordperfect", "application/wordperfect6.0"]], + ["wp6", "application/wordperfect"], + ["wpd", ["application/wordperfect", "application/vnd.wordperfect", "application/x-wpwin"]], + ["wpl", "application/vnd.ms-wpl"], + ["wps", "application/vnd.ms-works"], + ["wq1", "application/x-lotus"], + ["wqd", "application/vnd.wqd"], + ["wri", ["application/mswrite", "application/x-wri", "application/x-mswrite"]], + ["wrl", ["model/vrml", "x-world/x-vrml", "application/x-world"]], + ["wrz", ["model/vrml", "x-world/x-vrml"]], + ["wsc", "text/scriplet"], + ["wsdl", "application/wsdl+xml"], + ["wspolicy", "application/wspolicy+xml"], + ["wsrc", "application/x-wais-source"], + ["wtb", "application/vnd.webturbo"], + ["wtk", "application/x-wintalk"], + ["wvx", "video/x-ms-wvx"], + ["x-png", "image/png"], + ["x3d", "application/vnd.hzn-3d-crossword"], + ["xaf", "x-world/x-vrml"], + ["xap", "application/x-silverlight-app"], + ["xar", "application/vnd.xara"], + ["xbap", "application/x-ms-xbap"], + ["xbd", "application/vnd.fujixerox.docuworks.binder"], + ["xbm", ["image/xbm", "image/x-xbm", "image/x-xbitmap"]], + ["xdf", "application/xcap-diff+xml"], + ["xdm", "application/vnd.syncml.dm+xml"], + ["xdp", "application/vnd.adobe.xdp+xml"], + ["xdr", "video/x-amt-demorun"], + ["xdssc", "application/dssc+xml"], + ["xdw", "application/vnd.fujixerox.docuworks"], + ["xenc", "application/xenc+xml"], + ["xer", "application/patch-ops-error+xml"], + ["xfdf", "application/vnd.adobe.xfdf"], + ["xfdl", "application/vnd.xfdl"], + ["xgz", "xgl/drawing"], + ["xhtml", "application/xhtml+xml"], + ["xif", "image/vnd.xiff"], + ["xl", "application/excel"], + ["xla", ["application/vnd.ms-excel", "application/excel", "application/x-msexcel", "application/x-excel"]], + ["xlam", "application/vnd.ms-excel.addin.macroenabled.12"], + ["xlb", ["application/excel", "application/vnd.ms-excel", "application/x-excel"]], + ["xlc", ["application/vnd.ms-excel", "application/excel", "application/x-excel"]], + ["xld", ["application/excel", "application/x-excel"]], + ["xlk", ["application/excel", "application/x-excel"]], + ["xll", ["application/excel", "application/vnd.ms-excel", "application/x-excel"]], + ["xlm", ["application/vnd.ms-excel", "application/excel", "application/x-excel"]], + ["xls", ["application/vnd.ms-excel", "application/excel", "application/x-msexcel", "application/x-excel"]], + ["xlsb", "application/vnd.ms-excel.sheet.binary.macroenabled.12"], + ["xlsm", "application/vnd.ms-excel.sheet.macroenabled.12"], + ["xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"], + ["xlt", ["application/vnd.ms-excel", "application/excel", "application/x-excel"]], + ["xltm", "application/vnd.ms-excel.template.macroenabled.12"], + ["xltx", "application/vnd.openxmlformats-officedocument.spreadsheetml.template"], + ["xlv", ["application/excel", "application/x-excel"]], + ["xlw", ["application/vnd.ms-excel", "application/excel", "application/x-msexcel", "application/x-excel"]], + ["xm", "audio/xm"], + ["xml", ["application/xml", "text/xml", "application/atom+xml", "application/rss+xml"]], + ["xmz", "xgl/movie"], + ["xo", "application/vnd.olpc-sugar"], + ["xof", "x-world/x-vrml"], + ["xop", "application/xop+xml"], + ["xpi", "application/x-xpinstall"], + ["xpix", "application/x-vnd.ls-xpix"], + ["xpm", ["image/xpm", "image/x-xpixmap"]], + ["xpr", "application/vnd.is-xpr"], + ["xps", "application/vnd.ms-xpsdocument"], + ["xpw", "application/vnd.intercon.formnet"], + ["xslt", "application/xslt+xml"], + ["xsm", "application/vnd.syncml+xml"], + ["xspf", "application/xspf+xml"], + ["xsr", "video/x-amt-showrun"], + ["xul", "application/vnd.mozilla.xul+xml"], + ["xwd", ["image/x-xwd", "image/x-xwindowdump"]], + ["xyz", ["chemical/x-xyz", "chemical/x-pdb"]], + ["yang", "application/yang"], + ["yin", "application/yin+xml"], + ["z", ["application/x-compressed", "application/x-compress"]], + ["zaz", "application/vnd.zzazz.deck+xml"], + ["zip", ["application/zip", "multipart/x-zip", "application/x-zip-compressed", "application/x-compressed"]], + ["zir", "application/vnd.zul"], + ["zmm", "application/vnd.handheld-entertainment+xml"], + ["zoo", "application/octet-stream"], + ["zsh", "text/x-script.zsh"] + ]); + module.exports = { + detectMimeType(filename) { + if (!filename) { + return defaultMimeType; + } + let parsed = path11.parse(filename); + let extension = (parsed.ext.substr(1) || parsed.name || "").split("?").shift().trim().toLowerCase(); + let value = defaultMimeType; + if (extensions.has(extension)) { + value = extensions.get(extension); + } + if (Array.isArray(value)) { + return value[0]; + } + return value; + }, + detectExtension(mimeType) { + if (!mimeType) { + return defaultExtension; + } + let parts = (mimeType || "").toLowerCase().trim().split("/"); + let rootType = parts.shift().trim(); + let subType = parts.join("/").trim(); + if (mimeTypes.has(rootType + "/" + subType)) { + let value = mimeTypes.get(rootType + "/" + subType); + if (Array.isArray(value)) { + return value[0]; + } + return value; + } + switch (rootType) { + case "text": + return "txt"; + default: + return "bin"; + } + } + }; +}); + +// node_modules/nodemailer/lib/punycode/index.js +var require_punycode = __commonJS((exports, module) => { + var maxInt = 2147483647; + var base = 36; + var tMin = 1; + var tMax = 26; + var skew = 38; + var damp = 700; + var initialBias = 72; + var initialN = 128; + var delimiter = "-"; + var regexPunycode = /^xn--/; + var regexNonASCII = /[^\0-\x7F]/; + var regexSeparators = /[\x2E\u3002\uFF0E\uFF61]/g; + var errors = { + overflow: "Overflow: input needs wider integers to process", + "not-basic": "Illegal input >= 0x80 (not a basic code point)", + "invalid-input": "Invalid input" + }; + var baseMinusTMin = base - tMin; + var floor = Math.floor; + var stringFromCharCode = String.fromCharCode; + function error(type) { + throw new RangeError(errors[type]); + } + function map(array, callback) { + const result = []; + let length = array.length; + while (length--) { + result[length] = callback(array[length]); + } + return result; + } + function mapDomain(domain, callback) { + const parts = domain.split("@"); + let result = ""; + if (parts.length > 1) { + result = parts[0] + "@"; + domain = parts[1]; + } + domain = domain.replace(regexSeparators, "."); + const labels = domain.split("."); + const encoded = map(labels, callback).join("."); + return result + encoded; + } + function ucs2decode(string) { + const output = []; + let counter = 0; + const length = string.length; + while (counter < length) { + const value = string.charCodeAt(counter++); + if (value >= 55296 && value <= 56319 && counter < length) { + const extra = string.charCodeAt(counter++); + if ((extra & 64512) == 56320) { + output.push(((value & 1023) << 10) + (extra & 1023) + 65536); + } else { + output.push(value); + counter--; + } + } else { + output.push(value); + } + } + return output; + } + var ucs2encode = (codePoints) => String.fromCodePoint(...codePoints); + var basicToDigit = function(codePoint) { + if (codePoint >= 48 && codePoint < 58) { + return 26 + (codePoint - 48); + } + if (codePoint >= 65 && codePoint < 91) { + return codePoint - 65; + } + if (codePoint >= 97 && codePoint < 123) { + return codePoint - 97; + } + return base; + }; + var digitToBasic = function(digit, flag) { + return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5); + }; + var adapt = function(delta, numPoints, firstTime) { + let k = 0; + delta = firstTime ? floor(delta / damp) : delta >> 1; + delta += floor(delta / numPoints); + for (;delta > baseMinusTMin * tMax >> 1; k += base) { + delta = floor(delta / baseMinusTMin); + } + return floor(k + (baseMinusTMin + 1) * delta / (delta + skew)); + }; + var decode = function(input) { + const output = []; + const inputLength = input.length; + let i = 0; + let n = initialN; + let bias = initialBias; + let basic = input.lastIndexOf(delimiter); + if (basic < 0) { + basic = 0; + } + for (let j = 0;j < basic; ++j) { + if (input.charCodeAt(j) >= 128) { + error("not-basic"); + } + output.push(input.charCodeAt(j)); + } + for (let index = basic > 0 ? basic + 1 : 0;index < inputLength; ) { + const oldi = i; + for (let w = 1, k = base;; k += base) { + if (index >= inputLength) { + error("invalid-input"); + } + const digit = basicToDigit(input.charCodeAt(index++)); + if (digit >= base) { + error("invalid-input"); + } + if (digit > floor((maxInt - i) / w)) { + error("overflow"); + } + i += digit * w; + const t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias; + if (digit < t) { + break; + } + const baseMinusT = base - t; + if (w > floor(maxInt / baseMinusT)) { + error("overflow"); + } + w *= baseMinusT; + } + const out = output.length + 1; + bias = adapt(i - oldi, out, oldi == 0); + if (floor(i / out) > maxInt - n) { + error("overflow"); + } + n += floor(i / out); + i %= out; + output.splice(i++, 0, n); + } + return String.fromCodePoint(...output); + }; + var encode = function(input) { + const output = []; + input = ucs2decode(input); + const inputLength = input.length; + let n = initialN; + let delta = 0; + let bias = initialBias; + for (const currentValue of input) { + if (currentValue < 128) { + output.push(stringFromCharCode(currentValue)); + } + } + const basicLength = output.length; + let handledCPCount = basicLength; + if (basicLength) { + output.push(delimiter); + } + while (handledCPCount < inputLength) { + let m = maxInt; + for (const currentValue of input) { + if (currentValue >= n && currentValue < m) { + m = currentValue; + } + } + const handledCPCountPlusOne = handledCPCount + 1; + if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) { + error("overflow"); + } + delta += (m - n) * handledCPCountPlusOne; + n = m; + for (const currentValue of input) { + if (currentValue < n && ++delta > maxInt) { + error("overflow"); + } + if (currentValue === n) { + let q = delta; + for (let k = base;; k += base) { + const t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias; + if (q < t) { + break; + } + const qMinusT = q - t; + const baseMinusT = base - t; + output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))); + q = floor(qMinusT / baseMinusT); + } + output.push(stringFromCharCode(digitToBasic(q, 0))); + bias = adapt(delta, handledCPCountPlusOne, handledCPCount === basicLength); + delta = 0; + ++handledCPCount; + } + } + ++delta; + ++n; + } + return output.join(""); + }; + var toUnicode = function(input) { + return mapDomain(input, function(string) { + return regexPunycode.test(string) ? decode(string.slice(4).toLowerCase()) : string; + }); + }; + var toASCII = function(input) { + return mapDomain(input, function(string) { + return regexNonASCII.test(string) ? "xn--" + encode(string) : string; + }); + }; + var punycode = { + version: "2.3.1", + ucs2: { + decode: ucs2decode, + encode: ucs2encode + }, + decode, + encode, + toASCII, + toUnicode + }; + module.exports = punycode; +}); + +// node_modules/nodemailer/lib/base64/index.js +var require_base642 = __commonJS((exports, module) => { + var Transform = __require("stream").Transform; + function encode(buffer) { + if (typeof buffer === "string") { + buffer = Buffer.from(buffer, "utf-8"); + } + return buffer.toString("base64"); + } + function wrap(str, lineLength) { + str = (str || "").toString(); + lineLength = lineLength || 76; + if (str.length <= lineLength) { + return str; + } + let result = []; + let pos = 0; + let chunkLength = lineLength * 1024; + while (pos < str.length) { + let wrappedLines = str.substr(pos, chunkLength).replace(new RegExp(".{" + lineLength + "}", "g"), "$&\r\n").trim(); + result.push(wrappedLines); + pos += chunkLength; + } + return result.join("\r\n").trim(); + } + + class Encoder extends Transform { + constructor(options) { + super(); + this.options = options || {}; + if (this.options.lineLength !== false) { + this.options.lineLength = this.options.lineLength || 76; + } + this._curLine = ""; + this._remainingBytes = false; + this.inputBytes = 0; + this.outputBytes = 0; + } + _transform(chunk, encoding, done) { + if (encoding !== "buffer") { + chunk = Buffer.from(chunk, encoding); + } + if (!chunk || !chunk.length) { + return setImmediate(done); + } + this.inputBytes += chunk.length; + if (this._remainingBytes && this._remainingBytes.length) { + chunk = Buffer.concat([this._remainingBytes, chunk], this._remainingBytes.length + chunk.length); + this._remainingBytes = false; + } + if (chunk.length % 3) { + this._remainingBytes = chunk.slice(chunk.length - chunk.length % 3); + chunk = chunk.slice(0, chunk.length - chunk.length % 3); + } else { + this._remainingBytes = false; + } + let b64 = this._curLine + encode(chunk); + if (this.options.lineLength) { + b64 = wrap(b64, this.options.lineLength); + let lastLF = b64.lastIndexOf("\n"); + if (lastLF < 0) { + this._curLine = b64; + b64 = ""; + } else if (lastLF === b64.length - 1) { + this._curLine = ""; + } else { + this._curLine = b64.substr(lastLF + 1); + b64 = b64.substr(0, lastLF + 1); + } + } + if (b64) { + this.outputBytes += b64.length; + this.push(Buffer.from(b64, "ascii")); + } + setImmediate(done); + } + _flush(done) { + if (this._remainingBytes && this._remainingBytes.length) { + this._curLine += encode(this._remainingBytes); + } + if (this._curLine) { + this._curLine = wrap(this._curLine, this.options.lineLength); + this.outputBytes += this._curLine.length; + this.push(this._curLine, "ascii"); + this._curLine = ""; + } + done(); + } + } + module.exports = { + encode, + wrap, + Encoder + }; +}); + +// node_modules/nodemailer/lib/qp/index.js +var require_qp = __commonJS((exports, module) => { + var Transform = __require("stream").Transform; + function encode(buffer) { + if (typeof buffer === "string") { + buffer = Buffer.from(buffer, "utf-8"); + } + let ranges = [ + [9], + [10], + [13], + [32, 60], + [62, 126] + ]; + let result = ""; + let ord; + for (let i = 0, len = buffer.length;i < len; i++) { + ord = buffer[i]; + if (checkRanges(ord, ranges) && !((ord === 32 || ord === 9) && (i === len - 1 || buffer[i + 1] === 10 || buffer[i + 1] === 13))) { + result += String.fromCharCode(ord); + continue; + } + result += "=" + (ord < 16 ? "0" : "") + ord.toString(16).toUpperCase(); + } + return result; + } + function wrap(str, lineLength) { + str = (str || "").toString(); + lineLength = lineLength || 76; + if (str.length <= lineLength) { + return str; + } + let pos = 0; + let len = str.length; + let match, code, line; + let lineMargin = Math.floor(lineLength / 3); + let result = ""; + while (pos < len) { + line = str.substr(pos, lineLength); + if (match = line.match(/\r\n/)) { + line = line.substr(0, match.index + match[0].length); + result += line; + pos += line.length; + continue; + } + if (line.substr(-1) === "\n") { + result += line; + pos += line.length; + continue; + } else if (match = line.substr(-lineMargin).match(/\n.*?$/)) { + line = line.substr(0, line.length - (match[0].length - 1)); + result += line; + pos += line.length; + continue; + } else if (line.length > lineLength - lineMargin && (match = line.substr(-lineMargin).match(/[ \t.,!?][^ \t.,!?]*$/))) { + line = line.substr(0, line.length - (match[0].length - 1)); + } else if (line.match(/[=][\da-f]{0,2}$/i)) { + if (match = line.match(/[=][\da-f]{0,1}$/i)) { + line = line.substr(0, line.length - match[0].length); + } + while (line.length > 3 && line.length < len - pos && !line.match(/^(?:=[\da-f]{2}){1,4}$/i) && (match = line.match(/[=][\da-f]{2}$/gi))) { + code = parseInt(match[0].substr(1, 2), 16); + if (code < 128) { + break; + } + line = line.substr(0, line.length - 3); + if (code >= 192) { + break; + } + } + } + if (pos + line.length < len && line.substr(-1) !== "\n") { + if (line.length === lineLength && line.match(/[=][\da-f]{2}$/i)) { + line = line.substr(0, line.length - 3); + } else if (line.length === lineLength) { + line = line.substr(0, line.length - 1); + } + pos += line.length; + line += "=\r\n"; + } else { + pos += line.length; + } + result += line; + } + return result; + } + function checkRanges(nr, ranges) { + for (let i = ranges.length - 1;i >= 0; i--) { + if (!ranges[i].length) { + continue; + } + if (ranges[i].length === 1 && nr === ranges[i][0]) { + return true; + } + if (ranges[i].length === 2 && nr >= ranges[i][0] && nr <= ranges[i][1]) { + return true; + } + } + return false; + } + + class Encoder extends Transform { + constructor(options) { + super(); + this.options = options || {}; + if (this.options.lineLength !== false) { + this.options.lineLength = this.options.lineLength || 76; + } + this._curLine = ""; + this.inputBytes = 0; + this.outputBytes = 0; + } + _transform(chunk, encoding, done) { + let qp; + if (encoding !== "buffer") { + chunk = Buffer.from(chunk, encoding); + } + if (!chunk || !chunk.length) { + return done(); + } + this.inputBytes += chunk.length; + if (this.options.lineLength) { + qp = this._curLine + encode(chunk); + qp = wrap(qp, this.options.lineLength); + qp = qp.replace(/(^|\n)([^\n]*)$/, (match, lineBreak, lastLine) => { + this._curLine = lastLine; + return lineBreak; + }); + if (qp) { + this.outputBytes += qp.length; + this.push(qp); + } + } else { + qp = encode(chunk); + this.outputBytes += qp.length; + this.push(qp, "ascii"); + } + done(); + } + _flush(done) { + if (this._curLine) { + this.outputBytes += this._curLine.length; + this.push(this._curLine, "ascii"); + } + done(); + } + } + module.exports = { + encode, + wrap, + Encoder + }; +}); + +// node_modules/nodemailer/lib/mime-funcs/index.js +var require_mime_funcs = __commonJS((exports, module) => { + var base64 = require_base642(); + var qp = require_qp(); + var mimeTypes = require_mime_types(); + module.exports = { + isPlainText(value, isParam) { + const re = isParam ? /[\x00-\x08\x0b\x0c\x0e-\x1f"\u0080-\uFFFF]/ : /[\x00-\x08\x0b\x0c\x0e-\x1f\u0080-\uFFFF]/; + if (typeof value !== "string" || re.test(value)) { + return false; + } else { + return true; + } + }, + hasLongerLines(str, lineLength) { + if (str.length > 128 * 1024) { + return true; + } + return new RegExp("^.{" + (lineLength + 1) + ",}", "m").test(str); + }, + encodeWord(data, mimeWordEncoding, maxLength) { + mimeWordEncoding = (mimeWordEncoding || "Q").toString().toUpperCase().trim().charAt(0); + maxLength = maxLength || 0; + let encodedStr; + let toCharset = "UTF-8"; + if (maxLength && maxLength > 7 + toCharset.length) { + maxLength -= 7 + toCharset.length; + } + if (mimeWordEncoding === "Q") { + encodedStr = qp.encode(data).replace(/[^a-z0-9!*+\-/=]/gi, (chr) => { + let ord = chr.charCodeAt(0).toString(16).toUpperCase(); + if (chr === " ") { + return "_"; + } else { + return "=" + (ord.length === 1 ? "0" + ord : ord); + } + }); + } else if (mimeWordEncoding === "B") { + encodedStr = typeof data === "string" ? data : base64.encode(data); + maxLength = maxLength ? Math.max(3, (maxLength - maxLength % 4) / 4 * 3) : 0; + } + if (maxLength && (mimeWordEncoding !== "B" ? encodedStr : base64.encode(data)).length > maxLength) { + if (mimeWordEncoding === "Q") { + encodedStr = this.splitMimeEncodedString(encodedStr, maxLength).join("?= =?" + toCharset + "?" + mimeWordEncoding + "?"); + } else { + let parts = []; + let lpart = ""; + for (let i = 0, len = encodedStr.length;i < len; i++) { + let chr = encodedStr.charAt(i); + if (/[\ud83c\ud83d\ud83e]/.test(chr) && i < len - 1) { + chr += encodedStr.charAt(++i); + } + if (Buffer.byteLength(lpart + chr) <= maxLength || i === 0) { + lpart += chr; + } else { + parts.push(base64.encode(lpart)); + lpart = chr; + } + } + if (lpart) { + parts.push(base64.encode(lpart)); + } + if (parts.length > 1) { + encodedStr = parts.join("?= =?" + toCharset + "?" + mimeWordEncoding + "?"); + } else { + encodedStr = parts.join(""); + } + } + } else if (mimeWordEncoding === "B") { + encodedStr = base64.encode(data); + } + return "=?" + toCharset + "?" + mimeWordEncoding + "?" + encodedStr + (encodedStr.substr(-2) === "?=" ? "" : "?="); + }, + encodeWords(value, mimeWordEncoding, maxLength, encodeAll) { + maxLength = maxLength || 0; + let encodedValue; + let firstMatch = value.match(/(?:^|\s)([^\s]*["\u0080-\uFFFF])/); + if (!firstMatch) { + return value; + } + if (encodeAll) { + return this.encodeWord(value, mimeWordEncoding, maxLength); + } + let lastMatch = value.match(/(["\u0080-\uFFFF][^\s]*)[^"\u0080-\uFFFF]*$/); + if (!lastMatch) { + return value; + } + let startIndex = firstMatch.index + (firstMatch[0].match(/[^\s]/) || { + index: 0 + }).index; + let endIndex = lastMatch.index + (lastMatch[1] || "").length; + encodedValue = (startIndex ? value.substr(0, startIndex) : "") + this.encodeWord(value.substring(startIndex, endIndex), mimeWordEncoding || "Q", maxLength) + (endIndex < value.length ? value.substr(endIndex) : ""); + return encodedValue; + }, + buildHeaderValue(structured) { + let paramsArray = []; + Object.keys(structured.params || {}).forEach((param) => { + let value = structured.params[param]; + if (!this.isPlainText(value, true) || value.length >= 75) { + this.buildHeaderParam(param, value, 50).forEach((encodedParam) => { + if (!/[\s"\\;:/=(),<>@[\]?]|^[-']|'$/.test(encodedParam.value) || encodedParam.key.substr(-1) === "*") { + paramsArray.push(encodedParam.key + "=" + encodedParam.value); + } else { + paramsArray.push(encodedParam.key + "=" + JSON.stringify(encodedParam.value)); + } + }); + } else if (/[\s'"\\;:/=(),<>@[\]?]|^-/.test(value)) { + paramsArray.push(param + "=" + JSON.stringify(value)); + } else { + paramsArray.push(param + "=" + value); + } + }); + return structured.value + (paramsArray.length ? "; " + paramsArray.join("; ") : ""); + }, + buildHeaderParam(key, data, maxLength) { + let list = []; + let encodedStr = typeof data === "string" ? data : (data || "").toString(); + let encodedStrArr; + let chr, ord; + let line; + let startPos = 0; + let i, len; + maxLength = maxLength || 50; + if (this.isPlainText(data, true)) { + if (encodedStr.length <= maxLength) { + return [ + { + key, + value: encodedStr + } + ]; + } + encodedStr = encodedStr.replace(new RegExp(".{" + maxLength + "}", "g"), (str) => { + list.push({ + line: str + }); + return ""; + }); + if (encodedStr) { + list.push({ + line: encodedStr + }); + } + } else { + if (/[\uD800-\uDBFF]/.test(encodedStr)) { + encodedStrArr = []; + for (i = 0, len = encodedStr.length;i < len; i++) { + chr = encodedStr.charAt(i); + ord = chr.charCodeAt(0); + if (ord >= 55296 && ord <= 56319 && i < len - 1) { + chr += encodedStr.charAt(i + 1); + encodedStrArr.push(chr); + i++; + } else { + encodedStrArr.push(chr); + } + } + encodedStr = encodedStrArr; + } + line = "utf-8''"; + let encoded = true; + startPos = 0; + for (i = 0, len = encodedStr.length;i < len; i++) { + chr = encodedStr[i]; + if (encoded) { + chr = this.safeEncodeURIComponent(chr); + } else { + chr = chr === " " ? chr : this.safeEncodeURIComponent(chr); + if (chr !== encodedStr[i]) { + if ((this.safeEncodeURIComponent(line) + chr).length >= maxLength) { + list.push({ + line, + encoded + }); + line = ""; + startPos = i - 1; + } else { + encoded = true; + i = startPos; + line = ""; + continue; + } + } + } + if ((line + chr).length >= maxLength) { + list.push({ + line, + encoded + }); + line = chr = encodedStr[i] === " " ? " " : this.safeEncodeURIComponent(encodedStr[i]); + if (chr === encodedStr[i]) { + encoded = false; + startPos = i - 1; + } else { + encoded = true; + } + } else { + line += chr; + } + } + if (line) { + list.push({ + line, + encoded + }); + } + } + return list.map((item, i2) => ({ + key: key + "*" + i2 + (item.encoded ? "*" : ""), + value: item.line + })); + }, + parseHeaderValue(str) { + let response = { + value: false, + params: {} + }; + let key = false; + let value = ""; + let type = "value"; + let quote = false; + let escaped = false; + let chr; + for (let i = 0, len = str.length;i < len; i++) { + chr = str.charAt(i); + if (type === "key") { + if (chr === "=") { + key = value.trim().toLowerCase(); + type = "value"; + value = ""; + continue; + } + value += chr; + } else { + if (escaped) { + value += chr; + } else if (chr === "\\") { + escaped = true; + continue; + } else if (quote && chr === quote) { + quote = false; + } else if (!quote && chr === '"') { + quote = chr; + } else if (!quote && chr === ";") { + if (key === false) { + response.value = value.trim(); + } else { + response.params[key] = value.trim(); + } + type = "key"; + value = ""; + } else { + value += chr; + } + escaped = false; + } + } + if (type === "value") { + if (key === false) { + response.value = value.trim(); + } else { + response.params[key] = value.trim(); + } + } else if (value.trim()) { + response.params[value.trim().toLowerCase()] = ""; + } + Object.keys(response.params).forEach((key2) => { + let actualKey, nr, match, value2; + if (match = key2.match(/(\*(\d+)|\*(\d+)\*|\*)$/)) { + actualKey = key2.substr(0, match.index); + nr = Number(match[2] || match[3]) || 0; + if (!response.params[actualKey] || typeof response.params[actualKey] !== "object") { + response.params[actualKey] = { + charset: false, + values: [] + }; + } + value2 = response.params[key2]; + if (nr === 0 && match[0].substr(-1) === "*" && (match = value2.match(/^([^']*)'[^']*'(.*)$/))) { + response.params[actualKey].charset = match[1] || "iso-8859-1"; + value2 = match[2]; + } + response.params[actualKey].values[nr] = value2; + delete response.params[key2]; + } + }); + Object.keys(response.params).forEach((key2) => { + let value2; + if (response.params[key2] && Array.isArray(response.params[key2].values)) { + value2 = response.params[key2].values.map((val) => val || "").join(""); + if (response.params[key2].charset) { + response.params[key2] = "=?" + response.params[key2].charset + "?Q?" + value2.replace(/[=?_\s]/g, (s) => { + let c = s.charCodeAt(0).toString(16); + if (s === " ") { + return "_"; + } else { + return "%" + (c.length < 2 ? "0" : "") + c; + } + }).replace(/%/g, "=") + "?="; + } else { + response.params[key2] = value2; + } + } + }); + return response; + }, + detectExtension: (mimeType) => mimeTypes.detectExtension(mimeType), + detectMimeType: (extension) => mimeTypes.detectMimeType(extension), + foldLines(str, lineLength, afterSpace) { + str = (str || "").toString(); + lineLength = lineLength || 76; + let pos = 0, len = str.length, result = "", line, match; + while (pos < len) { + line = str.substr(pos, lineLength); + if (line.length < lineLength) { + result += line; + break; + } + if (match = line.match(/^[^\n\r]*(\r?\n|\r)/)) { + line = match[0]; + result += line; + pos += line.length; + continue; + } else if ((match = line.match(/(\s+)[^\s]*$/)) && match[0].length - (afterSpace ? (match[1] || "").length : 0) < line.length) { + line = line.substr(0, line.length - (match[0].length - (afterSpace ? (match[1] || "").length : 0))); + } else if (match = str.substr(pos + line.length).match(/^[^\s]+(\s*)/)) { + line = line + match[0].substr(0, match[0].length - (!afterSpace ? (match[1] || "").length : 0)); + } + result += line; + pos += line.length; + if (pos < len) { + result += "\r\n"; + } + } + return result; + }, + splitMimeEncodedString: (str, maxlen) => { + let curLine, match, chr, done, lines = []; + maxlen = Math.max(maxlen || 0, 12); + while (str.length) { + curLine = str.substr(0, maxlen); + if (match = curLine.match(/[=][0-9A-F]?$/i)) { + curLine = curLine.substr(0, match.index); + } + done = false; + while (!done) { + done = true; + if (match = str.substr(curLine.length).match(/^[=]([0-9A-F]{2})/i)) { + chr = parseInt(match[1], 16); + if (chr < 194 && chr > 127) { + curLine = curLine.substr(0, curLine.length - 3); + done = false; + } + } + } + if (curLine.length) { + lines.push(curLine); + } + str = str.substr(curLine.length); + } + return lines; + }, + encodeURICharComponent: (chr) => { + let res = ""; + let ord = chr.charCodeAt(0).toString(16).toUpperCase(); + if (ord.length % 2) { + ord = "0" + ord; + } + if (ord.length > 2) { + for (let i = 0, len = ord.length / 2;i < len; i++) { + res += "%" + ord.substr(i, 2); + } + } else { + res += "%" + ord; + } + return res; + }, + safeEncodeURIComponent(str) { + str = (str || "").toString(); + try { + str = encodeURIComponent(str); + } catch (E) { + return str.replace(/[^\x00-\x1F *'()<>@,;:\\"[\]?=\u007F-\uFFFF]+/g, ""); + } + return str.replace(/[\x00-\x1F *'()<>@,;:\\"[\]?=\u007F-\uFFFF]/g, (chr) => this.encodeURICharComponent(chr)); + } + }; +}); + +// node_modules/nodemailer/lib/addressparser/index.js +var require_addressparser = __commonJS((exports, module) => { + function _handleAddress(tokens) { + let token; + let isGroup = false; + let state = "text"; + let address; + let addresses = []; + let data = { + address: [], + comment: [], + group: [], + text: [] + }; + let i; + let len; + for (i = 0, len = tokens.length;i < len; i++) { + token = tokens[i]; + if (token.type === "operator") { + switch (token.value) { + case "<": + state = "address"; + break; + case "(": + state = "comment"; + break; + case ":": + state = "group"; + isGroup = true; + break; + default: + state = "text"; + } + } else if (token.value) { + if (state === "address") { + token.value = token.value.replace(/^[^<]*<\s*/, ""); + } + data[state].push(token.value); + } + } + if (!data.text.length && data.comment.length) { + data.text = data.comment; + data.comment = []; + } + if (isGroup) { + data.text = data.text.join(" "); + addresses.push({ + name: data.text || address && address.name, + group: data.group.length ? addressparser(data.group.join(",")) : [] + }); + } else { + if (!data.address.length && data.text.length) { + for (i = data.text.length - 1;i >= 0; i--) { + if (data.text[i].match(/^[^@\s]+@[^@\s]+$/)) { + data.address = data.text.splice(i, 1); + break; + } + } + let _regexHandler = function(address2) { + if (!data.address.length) { + data.address = [address2.trim()]; + return " "; + } else { + return address2; + } + }; + if (!data.address.length) { + for (i = data.text.length - 1;i >= 0; i--) { + data.text[i] = data.text[i].replace(/\s*\b[^@\s]+@[^\s]+\b\s*/, _regexHandler).trim(); + if (data.address.length) { + break; + } + } + } + } + if (!data.text.length && data.comment.length) { + data.text = data.comment; + data.comment = []; + } + if (data.address.length > 1) { + data.text = data.text.concat(data.address.splice(1)); + } + data.text = data.text.join(" "); + data.address = data.address.join(" "); + if (!data.address && isGroup) { + return []; + } else { + address = { + address: data.address || data.text || "", + name: data.text || data.address || "" + }; + if (address.address === address.name) { + if ((address.address || "").match(/@/)) { + address.name = ""; + } else { + address.address = ""; + } + } + addresses.push(address); + } + } + return addresses; + } + + class Tokenizer { + constructor(str) { + this.str = (str || "").toString(); + this.operatorCurrent = ""; + this.operatorExpecting = ""; + this.node = null; + this.escaped = false; + this.list = []; + this.operators = { + '"': '"', + "(": ")", + "<": ">", + ",": "", + ":": ";", + ";": "" + }; + } + tokenize() { + let chr, list = []; + for (let i = 0, len = this.str.length;i < len; i++) { + chr = this.str.charAt(i); + this.checkChar(chr); + } + this.list.forEach((node) => { + node.value = (node.value || "").toString().trim(); + if (node.value) { + list.push(node); + } + }); + return list; + } + checkChar(chr) { + if (this.escaped) { + } else if (chr === this.operatorExpecting) { + this.node = { + type: "operator", + value: chr + }; + this.list.push(this.node); + this.node = null; + this.operatorExpecting = ""; + this.escaped = false; + return; + } else if (!this.operatorExpecting && chr in this.operators) { + this.node = { + type: "operator", + value: chr + }; + this.list.push(this.node); + this.node = null; + this.operatorExpecting = this.operators[chr]; + this.escaped = false; + return; + } else if (['"', "'"].includes(this.operatorExpecting) && chr === "\\") { + this.escaped = true; + return; + } + if (!this.node) { + this.node = { + type: "text", + value: "" + }; + this.list.push(this.node); + } + if (chr === "\n") { + chr = " "; + } + if (chr.charCodeAt(0) >= 33 || [" ", "\t"].includes(chr)) { + this.node.value += chr; + } + this.escaped = false; + } + } + function addressparser(str, options) { + options = options || {}; + let tokenizer = new Tokenizer(str); + let tokens = tokenizer.tokenize(); + let addresses = []; + let address = []; + let parsedAddresses = []; + tokens.forEach((token) => { + if (token.type === "operator" && (token.value === "," || token.value === ";")) { + if (address.length) { + addresses.push(address); + } + address = []; + } else { + address.push(token); + } + }); + if (address.length) { + addresses.push(address); + } + addresses.forEach((address2) => { + address2 = _handleAddress(address2); + if (address2.length) { + parsedAddresses = parsedAddresses.concat(address2); + } + }); + if (options.flatten) { + let addresses2 = []; + let walkAddressList = (list) => { + list.forEach((address2) => { + if (address2.group) { + return walkAddressList(address2.group); + } else { + addresses2.push(address2); + } + }); + }; + walkAddressList(parsedAddresses); + return addresses2; + } + return parsedAddresses; + } + module.exports = addressparser; +}); + +// node_modules/nodemailer/lib/mime-node/last-newline.js +var require_last_newline = __commonJS((exports, module) => { + var Transform = __require("stream").Transform; + + class LastNewline extends Transform { + constructor() { + super(); + this.lastByte = false; + } + _transform(chunk, encoding, done) { + if (chunk.length) { + this.lastByte = chunk[chunk.length - 1]; + } + this.push(chunk); + done(); + } + _flush(done) { + if (this.lastByte === 10) { + return done(); + } + if (this.lastByte === 13) { + this.push(Buffer.from("\n")); + return done(); + } + this.push(Buffer.from("\r\n")); + return done(); + } + } + module.exports = LastNewline; +}); + +// node_modules/nodemailer/lib/mime-node/le-windows.js +var require_le_windows = __commonJS((exports, module) => { + var stream = __require("stream"); + var Transform = stream.Transform; + + class LeWindows extends Transform { + constructor(options) { + super(options); + this.options = options || {}; + this.lastByte = false; + } + _transform(chunk, encoding, done) { + let buf; + let lastPos = 0; + for (let i = 0, len = chunk.length;i < len; i++) { + if (chunk[i] === 10) { + if (i && chunk[i - 1] !== 13 || !i && this.lastByte !== 13) { + if (i > lastPos) { + buf = chunk.slice(lastPos, i); + this.push(buf); + } + this.push(Buffer.from("\r\n")); + lastPos = i + 1; + } + } + } + if (lastPos && lastPos < chunk.length) { + buf = chunk.slice(lastPos); + this.push(buf); + } else if (!lastPos) { + this.push(chunk); + } + this.lastByte = chunk[chunk.length - 1]; + done(); + } + } + module.exports = LeWindows; +}); + +// node_modules/nodemailer/lib/mime-node/le-unix.js +var require_le_unix = __commonJS((exports, module) => { + var stream = __require("stream"); + var Transform = stream.Transform; + + class LeWindows extends Transform { + constructor(options) { + super(options); + this.options = options || {}; + } + _transform(chunk, encoding, done) { + let buf; + let lastPos = 0; + for (let i = 0, len = chunk.length;i < len; i++) { + if (chunk[i] === 13) { + buf = chunk.slice(lastPos, i); + lastPos = i + 1; + this.push(buf); + } + } + if (lastPos && lastPos < chunk.length) { + buf = chunk.slice(lastPos); + this.push(buf); + } else if (!lastPos) { + this.push(chunk); + } + done(); + } + } + module.exports = LeWindows; +}); + +// node_modules/nodemailer/lib/mime-node/index.js +var require_mime_node = __commonJS((exports, module) => { + var crypto2 = __require("crypto"); + var fs15 = __require("fs"); + var punycode = require_punycode(); + var PassThrough = __require("stream").PassThrough; + var shared = require_shared(); + var mimeFuncs = require_mime_funcs(); + var qp = require_qp(); + var base64 = require_base642(); + var addressparser = require_addressparser(); + var nmfetch = require_fetch(); + var LastNewline = require_last_newline(); + var LeWindows = require_le_windows(); + var LeUnix = require_le_unix(); + + class MimeNode { + constructor(contentType, options) { + this.nodeCounter = 0; + options = options || {}; + this.baseBoundary = options.baseBoundary || crypto2.randomBytes(8).toString("hex"); + this.boundaryPrefix = options.boundaryPrefix || "--_NmP"; + this.disableFileAccess = !!options.disableFileAccess; + this.disableUrlAccess = !!options.disableUrlAccess; + this.normalizeHeaderKey = options.normalizeHeaderKey; + this.date = new Date; + this.rootNode = options.rootNode || this; + this.keepBcc = !!options.keepBcc; + if (options.filename) { + this.filename = options.filename; + if (!contentType) { + contentType = mimeFuncs.detectMimeType(this.filename.split(".").pop()); + } + } + this.textEncoding = (options.textEncoding || "").toString().trim().charAt(0).toUpperCase(); + this.parentNode = options.parentNode; + this.hostname = options.hostname; + this.newline = options.newline; + this.childNodes = []; + this._nodeId = ++this.rootNode.nodeCounter; + this._headers = []; + this._isPlainText = false; + this._hasLongLines = false; + this._envelope = false; + this._raw = false; + this._transforms = []; + this._processFuncs = []; + if (contentType) { + this.setHeader("Content-Type", contentType); + } + } + createChild(contentType, options) { + if (!options && typeof contentType === "object") { + options = contentType; + contentType = undefined; + } + let node = new MimeNode(contentType, options); + this.appendChild(node); + return node; + } + appendChild(childNode) { + if (childNode.rootNode !== this.rootNode) { + childNode.rootNode = this.rootNode; + childNode._nodeId = ++this.rootNode.nodeCounter; + } + childNode.parentNode = this; + this.childNodes.push(childNode); + return childNode; + } + replace(node) { + if (node === this) { + return this; + } + this.parentNode.childNodes.forEach((childNode, i) => { + if (childNode === this) { + node.rootNode = this.rootNode; + node.parentNode = this.parentNode; + node._nodeId = this._nodeId; + this.rootNode = this; + this.parentNode = undefined; + node.parentNode.childNodes[i] = node; + } + }); + return node; + } + remove() { + if (!this.parentNode) { + return this; + } + for (let i = this.parentNode.childNodes.length - 1;i >= 0; i--) { + if (this.parentNode.childNodes[i] === this) { + this.parentNode.childNodes.splice(i, 1); + this.parentNode = undefined; + this.rootNode = this; + return this; + } + } + } + setHeader(key, value) { + let added = false, headerValue; + if (!value && key && typeof key === "object") { + if (key.key && "value" in key) { + this.setHeader(key.key, key.value); + } else if (Array.isArray(key)) { + key.forEach((i) => { + this.setHeader(i.key, i.value); + }); + } else { + Object.keys(key).forEach((i) => { + this.setHeader(i, key[i]); + }); + } + return this; + } + key = this._normalizeHeaderKey(key); + headerValue = { + key, + value + }; + for (let i = 0, len = this._headers.length;i < len; i++) { + if (this._headers[i].key === key) { + if (!added) { + this._headers[i] = headerValue; + added = true; + } else { + this._headers.splice(i, 1); + i--; + len--; + } + } + } + if (!added) { + this._headers.push(headerValue); + } + return this; + } + addHeader(key, value) { + if (!value && key && typeof key === "object") { + if (key.key && key.value) { + this.addHeader(key.key, key.value); + } else if (Array.isArray(key)) { + key.forEach((i) => { + this.addHeader(i.key, i.value); + }); + } else { + Object.keys(key).forEach((i) => { + this.addHeader(i, key[i]); + }); + } + return this; + } else if (Array.isArray(value)) { + value.forEach((val) => { + this.addHeader(key, val); + }); + return this; + } + this._headers.push({ + key: this._normalizeHeaderKey(key), + value + }); + return this; + } + getHeader(key) { + key = this._normalizeHeaderKey(key); + for (let i = 0, len = this._headers.length;i < len; i++) { + if (this._headers[i].key === key) { + return this._headers[i].value; + } + } + } + setContent(content) { + this.content = content; + if (typeof this.content.pipe === "function") { + this._contentErrorHandler = (err) => { + this.content.removeListener("error", this._contentErrorHandler); + this.content = err; + }; + this.content.once("error", this._contentErrorHandler); + } else if (typeof this.content === "string") { + this._isPlainText = mimeFuncs.isPlainText(this.content); + if (this._isPlainText && mimeFuncs.hasLongerLines(this.content, 76)) { + this._hasLongLines = true; + } + } + return this; + } + build(callback) { + let promise; + if (!callback) { + promise = new Promise((resolve, reject) => { + callback = shared.callbackPromise(resolve, reject); + }); + } + let stream = this.createReadStream(); + let buf = []; + let buflen = 0; + let returned = false; + stream.on("readable", () => { + let chunk; + while ((chunk = stream.read()) !== null) { + buf.push(chunk); + buflen += chunk.length; + } + }); + stream.once("error", (err) => { + if (returned) { + return; + } + returned = true; + return callback(err); + }); + stream.once("end", (chunk) => { + if (returned) { + return; + } + returned = true; + if (chunk && chunk.length) { + buf.push(chunk); + buflen += chunk.length; + } + return callback(null, Buffer.concat(buf, buflen)); + }); + return promise; + } + getTransferEncoding() { + let transferEncoding = false; + let contentType = (this.getHeader("Content-Type") || "").toString().toLowerCase().trim(); + if (this.content) { + transferEncoding = (this.getHeader("Content-Transfer-Encoding") || "").toString().toLowerCase().trim(); + if (!transferEncoding || !["base64", "quoted-printable"].includes(transferEncoding)) { + if (/^text\//i.test(contentType)) { + if (this._isPlainText && !this._hasLongLines) { + transferEncoding = "7bit"; + } else if (typeof this.content === "string" || this.content instanceof Buffer) { + transferEncoding = this._getTextEncoding(this.content) === "Q" ? "quoted-printable" : "base64"; + } else { + transferEncoding = this.textEncoding === "B" ? "base64" : "quoted-printable"; + } + } else if (!/^(multipart|message)\//i.test(contentType)) { + transferEncoding = transferEncoding || "base64"; + } + } + } + return transferEncoding; + } + buildHeaders() { + let transferEncoding = this.getTransferEncoding(); + let headers = []; + if (transferEncoding) { + this.setHeader("Content-Transfer-Encoding", transferEncoding); + } + if (this.filename && !this.getHeader("Content-Disposition")) { + this.setHeader("Content-Disposition", "attachment"); + } + if (this.rootNode === this) { + if (!this.getHeader("Date")) { + this.setHeader("Date", this.date.toUTCString().replace(/GMT/, "+0000")); + } + this.messageId(); + if (!this.getHeader("MIME-Version")) { + this.setHeader("MIME-Version", "1.0"); + } + for (let i = this._headers.length - 2;i >= 0; i--) { + let header = this._headers[i]; + if (header.key === "Content-Type") { + this._headers.splice(i, 1); + this._headers.push(header); + } + } + } + this._headers.forEach((header) => { + let key = header.key; + let value = header.value; + let structured; + let param; + let options = {}; + let formattedHeaders = ["From", "Sender", "To", "Cc", "Bcc", "Reply-To", "Date", "References"]; + if (value && typeof value === "object" && !formattedHeaders.includes(key)) { + Object.keys(value).forEach((key2) => { + if (key2 !== "value") { + options[key2] = value[key2]; + } + }); + value = (value.value || "").toString(); + if (!value.trim()) { + return; + } + } + if (options.prepared) { + if (options.foldLines) { + headers.push(mimeFuncs.foldLines(key + ": " + value)); + } else { + headers.push(key + ": " + value); + } + return; + } + switch (header.key) { + case "Content-Disposition": + structured = mimeFuncs.parseHeaderValue(value); + if (this.filename) { + structured.params.filename = this.filename; + } + value = mimeFuncs.buildHeaderValue(structured); + break; + case "Content-Type": + structured = mimeFuncs.parseHeaderValue(value); + this._handleContentType(structured); + if (structured.value.match(/^text\/plain\b/) && typeof this.content === "string" && /[\u0080-\uFFFF]/.test(this.content)) { + structured.params.charset = "utf-8"; + } + value = mimeFuncs.buildHeaderValue(structured); + if (this.filename) { + param = this._encodeWords(this.filename); + if (param !== this.filename || /[\s'"\\;:/=(),<>@[\]?]|^-/.test(param)) { + param = '"' + param + '"'; + } + value += "; name=" + param; + } + break; + case "Bcc": + if (!this.keepBcc) { + return; + } + break; + } + value = this._encodeHeaderValue(key, value); + if (!(value || "").toString().trim()) { + return; + } + if (typeof this.normalizeHeaderKey === "function") { + let normalized = this.normalizeHeaderKey(key, value); + if (normalized && typeof normalized === "string" && normalized.length) { + key = normalized; + } + } + headers.push(mimeFuncs.foldLines(key + ": " + value, 76)); + }); + return headers.join("\r\n"); + } + createReadStream(options) { + options = options || {}; + let stream = new PassThrough(options); + let outputStream = stream; + let transform; + this.stream(stream, options, (err) => { + if (err) { + outputStream.emit("error", err); + return; + } + stream.end(); + }); + for (let i = 0, len = this._transforms.length;i < len; i++) { + transform = typeof this._transforms[i] === "function" ? this._transforms[i]() : this._transforms[i]; + outputStream.once("error", (err) => { + transform.emit("error", err); + }); + outputStream = outputStream.pipe(transform); + } + transform = new LastNewline; + outputStream.once("error", (err) => { + transform.emit("error", err); + }); + outputStream = outputStream.pipe(transform); + for (let i = 0, len = this._processFuncs.length;i < len; i++) { + transform = this._processFuncs[i]; + outputStream = transform(outputStream); + } + if (this.newline) { + const winbreak = ["win", "windows", "dos", "\r\n"].includes(this.newline.toString().toLowerCase()); + const newlineTransform = winbreak ? new LeWindows : new LeUnix; + const stream2 = outputStream.pipe(newlineTransform); + outputStream.on("error", (err) => stream2.emit("error", err)); + return stream2; + } + return outputStream; + } + transform(transform) { + this._transforms.push(transform); + } + processFunc(processFunc) { + this._processFuncs.push(processFunc); + } + stream(outputStream, options, done) { + let transferEncoding = this.getTransferEncoding(); + let contentStream; + let localStream; + let returned = false; + let callback = (err) => { + if (returned) { + return; + } + returned = true; + done(err); + }; + let finalize = () => { + let childId = 0; + let processChildNode = () => { + if (childId >= this.childNodes.length) { + outputStream.write("\r\n--" + this.boundary + "--\r\n"); + return callback(); + } + let child = this.childNodes[childId++]; + outputStream.write((childId > 1 ? "\r\n" : "") + "--" + this.boundary + "\r\n"); + child.stream(outputStream, options, (err) => { + if (err) { + return callback(err); + } + setImmediate(processChildNode); + }); + }; + if (this.multipart) { + setImmediate(processChildNode); + } else { + return callback(); + } + }; + let sendContent = () => { + if (this.content) { + if (Object.prototype.toString.call(this.content) === "[object Error]") { + return callback(this.content); + } + if (typeof this.content.pipe === "function") { + this.content.removeListener("error", this._contentErrorHandler); + this._contentErrorHandler = (err) => callback(err); + this.content.once("error", this._contentErrorHandler); + } + let createStream = () => { + if (["quoted-printable", "base64"].includes(transferEncoding)) { + contentStream = new (transferEncoding === "base64" ? base64 : qp).Encoder(options); + contentStream.pipe(outputStream, { + end: false + }); + contentStream.once("end", finalize); + contentStream.once("error", (err) => callback(err)); + localStream = this._getStream(this.content); + localStream.pipe(contentStream); + } else { + localStream = this._getStream(this.content); + localStream.pipe(outputStream, { + end: false + }); + localStream.once("end", finalize); + } + localStream.once("error", (err) => callback(err)); + }; + if (this.content._resolve) { + let chunks = []; + let chunklen = 0; + let returned2 = false; + let sourceStream = this._getStream(this.content); + sourceStream.on("error", (err) => { + if (returned2) { + return; + } + returned2 = true; + callback(err); + }); + sourceStream.on("readable", () => { + let chunk; + while ((chunk = sourceStream.read()) !== null) { + chunks.push(chunk); + chunklen += chunk.length; + } + }); + sourceStream.on("end", () => { + if (returned2) { + return; + } + returned2 = true; + this.content._resolve = false; + this.content._resolvedValue = Buffer.concat(chunks, chunklen); + setImmediate(createStream); + }); + } else { + setImmediate(createStream); + } + return; + } else { + return setImmediate(finalize); + } + }; + if (this._raw) { + setImmediate(() => { + if (Object.prototype.toString.call(this._raw) === "[object Error]") { + return callback(this._raw); + } + if (typeof this._raw.pipe === "function") { + this._raw.removeListener("error", this._contentErrorHandler); + } + let raw = this._getStream(this._raw); + raw.pipe(outputStream, { + end: false + }); + raw.on("error", (err) => outputStream.emit("error", err)); + raw.on("end", finalize); + }); + } else { + outputStream.write(this.buildHeaders() + "\r\n\r\n"); + setImmediate(sendContent); + } + } + setEnvelope(envelope) { + let list; + this._envelope = { + from: false, + to: [] + }; + if (envelope.from) { + list = []; + this._convertAddresses(this._parseAddresses(envelope.from), list); + list = list.filter((address) => address && address.address); + if (list.length && list[0]) { + this._envelope.from = list[0].address; + } + } + ["to", "cc", "bcc"].forEach((key) => { + if (envelope[key]) { + this._convertAddresses(this._parseAddresses(envelope[key]), this._envelope.to); + } + }); + this._envelope.to = this._envelope.to.map((to) => to.address).filter((address) => address); + let standardFields = ["to", "cc", "bcc", "from"]; + Object.keys(envelope).forEach((key) => { + if (!standardFields.includes(key)) { + this._envelope[key] = envelope[key]; + } + }); + return this; + } + getAddresses() { + let addresses = {}; + this._headers.forEach((header) => { + let key = header.key.toLowerCase(); + if (["from", "sender", "reply-to", "to", "cc", "bcc"].includes(key)) { + if (!Array.isArray(addresses[key])) { + addresses[key] = []; + } + this._convertAddresses(this._parseAddresses(header.value), addresses[key]); + } + }); + return addresses; + } + getEnvelope() { + if (this._envelope) { + return this._envelope; + } + let envelope = { + from: false, + to: [] + }; + this._headers.forEach((header) => { + let list = []; + if (header.key === "From" || !envelope.from && ["Reply-To", "Sender"].includes(header.key)) { + this._convertAddresses(this._parseAddresses(header.value), list); + if (list.length && list[0]) { + envelope.from = list[0].address; + } + } else if (["To", "Cc", "Bcc"].includes(header.key)) { + this._convertAddresses(this._parseAddresses(header.value), envelope.to); + } + }); + envelope.to = envelope.to.map((to) => to.address); + return envelope; + } + messageId() { + let messageId = this.getHeader("Message-ID"); + if (!messageId) { + messageId = this._generateMessageId(); + this.setHeader("Message-ID", messageId); + } + return messageId; + } + setRaw(raw) { + this._raw = raw; + if (this._raw && typeof this._raw.pipe === "function") { + this._contentErrorHandler = (err) => { + this._raw.removeListener("error", this._contentErrorHandler); + this._raw = err; + }; + this._raw.once("error", this._contentErrorHandler); + } + return this; + } + _getStream(content) { + let contentStream; + if (content._resolvedValue) { + contentStream = new PassThrough; + setImmediate(() => { + try { + contentStream.end(content._resolvedValue); + } catch (err) { + contentStream.emit("error", err); + } + }); + return contentStream; + } else if (typeof content.pipe === "function") { + return content; + } else if (content && typeof content.path === "string" && !content.href) { + if (this.disableFileAccess) { + contentStream = new PassThrough; + setImmediate(() => contentStream.emit("error", new Error("File access rejected for " + content.path))); + return contentStream; + } + return fs15.createReadStream(content.path); + } else if (content && typeof content.href === "string") { + if (this.disableUrlAccess) { + contentStream = new PassThrough; + setImmediate(() => contentStream.emit("error", new Error("Url access rejected for " + content.href))); + return contentStream; + } + return nmfetch(content.href, { headers: content.httpHeaders }); + } else { + contentStream = new PassThrough; + setImmediate(() => { + try { + contentStream.end(content || ""); + } catch (err) { + contentStream.emit("error", err); + } + }); + return contentStream; + } + } + _parseAddresses(addresses) { + return [].concat.apply([], [].concat(addresses).map((address) => { + if (address && address.address) { + address.address = this._normalizeAddress(address.address); + address.name = address.name || ""; + return [address]; + } + return addressparser(address); + })); + } + _normalizeHeaderKey(key) { + key = (key || "").toString().replace(/\r?\n|\r/g, " ").trim().toLowerCase().replace(/^X-SMTPAPI$|^(MIME|DKIM|ARC|BIMI)\b|^[a-z]|-(SPF|FBL|ID|MD5)$|-[a-z]/gi, (c) => c.toUpperCase()).replace(/^Content-Features$/i, "Content-features"); + return key; + } + _handleContentType(structured) { + this.contentType = structured.value.trim().toLowerCase(); + this.multipart = /^multipart\//i.test(this.contentType) ? this.contentType.substr(this.contentType.indexOf("/") + 1) : false; + if (this.multipart) { + this.boundary = structured.params.boundary = structured.params.boundary || this.boundary || this._generateBoundary(); + } else { + this.boundary = false; + } + } + _generateBoundary() { + return this.rootNode.boundaryPrefix + "-" + this.rootNode.baseBoundary + "-Part_" + this._nodeId; + } + _encodeHeaderValue(key, value) { + key = this._normalizeHeaderKey(key); + switch (key) { + case "From": + case "Sender": + case "To": + case "Cc": + case "Bcc": + case "Reply-To": + return this._convertAddresses(this._parseAddresses(value)); + case "Message-ID": + case "In-Reply-To": + case "Content-Id": + value = (value || "").toString().replace(/\r?\n|\r/g, " "); + if (value.charAt(0) !== "<") { + value = "<" + value; + } + if (value.charAt(value.length - 1) !== ">") { + value = value + ">"; + } + return value; + case "References": + value = [].concat.apply([], [].concat(value || "").map((elm) => { + elm = (elm || "").toString().replace(/\r?\n|\r/g, " ").trim(); + return elm.replace(/<[^>]*>/g, (str) => str.replace(/\s/g, "")).split(/\s+/); + })).map((elm) => { + if (elm.charAt(0) !== "<") { + elm = "<" + elm; + } + if (elm.charAt(elm.length - 1) !== ">") { + elm = elm + ">"; + } + return elm; + }); + return value.join(" ").trim(); + case "Date": + if (Object.prototype.toString.call(value) === "[object Date]") { + return value.toUTCString().replace(/GMT/, "+0000"); + } + value = (value || "").toString().replace(/\r?\n|\r/g, " "); + return this._encodeWords(value); + case "Content-Type": + case "Content-Disposition": + return (value || "").toString().replace(/\r?\n|\r/g, " "); + default: + value = (value || "").toString().replace(/\r?\n|\r/g, " "); + return this._encodeWords(value); + } + } + _convertAddresses(addresses, uniqueList) { + let values = []; + uniqueList = uniqueList || []; + [].concat(addresses || []).forEach((address) => { + if (address.address) { + address.address = this._normalizeAddress(address.address); + if (!address.name) { + values.push(address.address.indexOf(" ") >= 0 ? `<${address.address}>` : `${address.address}`); + } else if (address.name) { + values.push(`${this._encodeAddressName(address.name)} <${address.address}>`); + } + if (address.address) { + if (!uniqueList.filter((a) => a.address === address.address).length) { + uniqueList.push(address); + } + } + } else if (address.group) { + let groupListAddresses = (address.group.length ? this._convertAddresses(address.group, uniqueList) : "").trim(); + values.push(`${this._encodeAddressName(address.name)}:${groupListAddresses};`); + } + }); + return values.join(", "); + } + _normalizeAddress(address) { + address = (address || "").toString().replace(/[\x00-\x1F<>]+/g, " ").trim(); + let lastAt = address.lastIndexOf("@"); + if (lastAt < 0) { + return address; + } + let user = address.substr(0, lastAt); + let domain = address.substr(lastAt + 1); + let encodedDomain; + try { + encodedDomain = punycode.toASCII(domain.toLowerCase()); + } catch (err) { + } + if (user.indexOf(" ") >= 0) { + if (user.charAt(0) !== '"') { + user = '"' + user; + } + if (user.substr(-1) !== '"') { + user = user + '"'; + } + } + return `${user}@${encodedDomain}`; + } + _encodeAddressName(name) { + if (!/^[\w ]*$/.test(name)) { + if (/^[\x20-\x7e]*$/.test(name)) { + return '"' + name.replace(/([\\"])/g, "\\$1") + '"'; + } else { + return mimeFuncs.encodeWord(name, this._getTextEncoding(name), 52); + } + } + return name; + } + _encodeWords(value) { + return mimeFuncs.encodeWords(value, this._getTextEncoding(value), 52, true); + } + _getTextEncoding(value) { + value = (value || "").toString(); + let encoding = this.textEncoding; + let latinLen; + let nonLatinLen; + if (!encoding) { + nonLatinLen = (value.match(/[\x00-\x08\x0B\x0C\x0E-\x1F\u0080-\uFFFF]/g) || []).length; + latinLen = (value.match(/[a-z]/gi) || []).length; + encoding = nonLatinLen < latinLen ? "Q" : "B"; + } + return encoding; + } + _generateMessageId() { + return "<" + [2, 2, 2, 6].reduce((prev, len) => prev + "-" + crypto2.randomBytes(len).toString("hex"), crypto2.randomBytes(4).toString("hex")) + "@" + (this.getEnvelope().from || this.hostname || "localhost").split("@").pop() + ">"; + } + } + module.exports = MimeNode; +}); + +// node_modules/nodemailer/lib/mail-composer/index.js +var require_mail_composer = __commonJS((exports, module) => { + var MimeNode = require_mime_node(); + var mimeFuncs = require_mime_funcs(); + var parseDataURI = require_shared().parseDataURI; + + class MailComposer { + constructor(mail) { + this.mail = mail || {}; + this.message = false; + } + compile() { + this._alternatives = this.getAlternatives(); + this._htmlNode = this._alternatives.filter((alternative) => /^text\/html\b/i.test(alternative.contentType)).pop(); + this._attachments = this.getAttachments(!!this._htmlNode); + this._useRelated = !!(this._htmlNode && this._attachments.related.length); + this._useAlternative = this._alternatives.length > 1; + this._useMixed = this._attachments.attached.length > 1 || this._alternatives.length && this._attachments.attached.length === 1; + if (this.mail.raw) { + this.message = new MimeNode("message/rfc822", { newline: this.mail.newline }).setRaw(this.mail.raw); + } else if (this._useMixed) { + this.message = this._createMixed(); + } else if (this._useAlternative) { + this.message = this._createAlternative(); + } else if (this._useRelated) { + this.message = this._createRelated(); + } else { + this.message = this._createContentNode(false, [].concat(this._alternatives || []).concat(this._attachments.attached || []).shift() || { + contentType: "text/plain", + content: "" + }); + } + if (this.mail.headers) { + this.message.addHeader(this.mail.headers); + } + ["from", "sender", "to", "cc", "bcc", "reply-to", "in-reply-to", "references", "subject", "message-id", "date"].forEach((header) => { + let key = header.replace(/-(\w)/g, (o, c) => c.toUpperCase()); + if (this.mail[key]) { + this.message.setHeader(header, this.mail[key]); + } + }); + if (this.mail.envelope) { + this.message.setEnvelope(this.mail.envelope); + } + this.message.messageId(); + return this.message; + } + getAttachments(findRelated) { + let icalEvent, eventObject; + let attachments = [].concat(this.mail.attachments || []).map((attachment, i) => { + let data; + let isMessageNode = /^message\//i.test(attachment.contentType); + if (/^data:/i.test(attachment.path || attachment.href)) { + attachment = this._processDataUrl(attachment); + } + let contentType = attachment.contentType || mimeFuncs.detectMimeType(attachment.filename || attachment.path || attachment.href || "bin"); + let isImage = /^image\//i.test(contentType); + let contentDisposition = attachment.contentDisposition || (isMessageNode || isImage && attachment.cid ? "inline" : "attachment"); + data = { + contentType, + contentDisposition, + contentTransferEncoding: "contentTransferEncoding" in attachment ? attachment.contentTransferEncoding : "base64" + }; + if (attachment.filename) { + data.filename = attachment.filename; + } else if (!isMessageNode && attachment.filename !== false) { + data.filename = (attachment.path || attachment.href || "").split("/").pop().split("?").shift() || "attachment-" + (i + 1); + if (data.filename.indexOf(".") < 0) { + data.filename += "." + mimeFuncs.detectExtension(data.contentType); + } + } + if (/^https?:\/\//i.test(attachment.path)) { + attachment.href = attachment.path; + attachment.path = undefined; + } + if (attachment.cid) { + data.cid = attachment.cid; + } + if (attachment.raw) { + data.raw = attachment.raw; + } else if (attachment.path) { + data.content = { + path: attachment.path + }; + } else if (attachment.href) { + data.content = { + href: attachment.href, + httpHeaders: attachment.httpHeaders + }; + } else { + data.content = attachment.content || ""; + } + if (attachment.encoding) { + data.encoding = attachment.encoding; + } + if (attachment.headers) { + data.headers = attachment.headers; + } + return data; + }); + if (this.mail.icalEvent) { + if (typeof this.mail.icalEvent === "object" && (this.mail.icalEvent.content || this.mail.icalEvent.path || this.mail.icalEvent.href || this.mail.icalEvent.raw)) { + icalEvent = this.mail.icalEvent; + } else { + icalEvent = { + content: this.mail.icalEvent + }; + } + eventObject = {}; + Object.keys(icalEvent).forEach((key) => { + eventObject[key] = icalEvent[key]; + }); + eventObject.contentType = "application/ics"; + if (!eventObject.headers) { + eventObject.headers = {}; + } + eventObject.filename = eventObject.filename || "invite.ics"; + eventObject.headers["Content-Disposition"] = "attachment"; + eventObject.headers["Content-Transfer-Encoding"] = "base64"; + } + if (!findRelated) { + return { + attached: attachments.concat(eventObject || []), + related: [] + }; + } else { + return { + attached: attachments.filter((attachment) => !attachment.cid).concat(eventObject || []), + related: attachments.filter((attachment) => !!attachment.cid) + }; + } + } + getAlternatives() { + let alternatives = [], text, html, watchHtml, amp, icalEvent, eventObject; + if (this.mail.text) { + if (typeof this.mail.text === "object" && (this.mail.text.content || this.mail.text.path || this.mail.text.href || this.mail.text.raw)) { + text = this.mail.text; + } else { + text = { + content: this.mail.text + }; + } + text.contentType = "text/plain; charset=utf-8"; + } + if (this.mail.watchHtml) { + if (typeof this.mail.watchHtml === "object" && (this.mail.watchHtml.content || this.mail.watchHtml.path || this.mail.watchHtml.href || this.mail.watchHtml.raw)) { + watchHtml = this.mail.watchHtml; + } else { + watchHtml = { + content: this.mail.watchHtml + }; + } + watchHtml.contentType = "text/watch-html; charset=utf-8"; + } + if (this.mail.amp) { + if (typeof this.mail.amp === "object" && (this.mail.amp.content || this.mail.amp.path || this.mail.amp.href || this.mail.amp.raw)) { + amp = this.mail.amp; + } else { + amp = { + content: this.mail.amp + }; + } + amp.contentType = "text/x-amp-html; charset=utf-8"; + } + if (this.mail.icalEvent) { + if (typeof this.mail.icalEvent === "object" && (this.mail.icalEvent.content || this.mail.icalEvent.path || this.mail.icalEvent.href || this.mail.icalEvent.raw)) { + icalEvent = this.mail.icalEvent; + } else { + icalEvent = { + content: this.mail.icalEvent + }; + } + eventObject = {}; + Object.keys(icalEvent).forEach((key) => { + eventObject[key] = icalEvent[key]; + }); + if (eventObject.content && typeof eventObject.content === "object") { + eventObject.content._resolve = true; + } + eventObject.filename = false; + eventObject.contentType = "text/calendar; charset=utf-8; method=" + (eventObject.method || "PUBLISH").toString().trim().toUpperCase(); + if (!eventObject.headers) { + eventObject.headers = {}; + } + } + if (this.mail.html) { + if (typeof this.mail.html === "object" && (this.mail.html.content || this.mail.html.path || this.mail.html.href || this.mail.html.raw)) { + html = this.mail.html; + } else { + html = { + content: this.mail.html + }; + } + html.contentType = "text/html; charset=utf-8"; + } + [].concat(text || []).concat(watchHtml || []).concat(amp || []).concat(html || []).concat(eventObject || []).concat(this.mail.alternatives || []).forEach((alternative) => { + let data; + if (/^data:/i.test(alternative.path || alternative.href)) { + alternative = this._processDataUrl(alternative); + } + data = { + contentType: alternative.contentType || mimeFuncs.detectMimeType(alternative.filename || alternative.path || alternative.href || "txt"), + contentTransferEncoding: alternative.contentTransferEncoding + }; + if (alternative.filename) { + data.filename = alternative.filename; + } + if (/^https?:\/\//i.test(alternative.path)) { + alternative.href = alternative.path; + alternative.path = undefined; + } + if (alternative.raw) { + data.raw = alternative.raw; + } else if (alternative.path) { + data.content = { + path: alternative.path + }; + } else if (alternative.href) { + data.content = { + href: alternative.href + }; + } else { + data.content = alternative.content || ""; + } + if (alternative.encoding) { + data.encoding = alternative.encoding; + } + if (alternative.headers) { + data.headers = alternative.headers; + } + alternatives.push(data); + }); + return alternatives; + } + _createMixed(parentNode) { + let node; + if (!parentNode) { + node = new MimeNode("multipart/mixed", { + baseBoundary: this.mail.baseBoundary, + textEncoding: this.mail.textEncoding, + boundaryPrefix: this.mail.boundaryPrefix, + disableUrlAccess: this.mail.disableUrlAccess, + disableFileAccess: this.mail.disableFileAccess, + normalizeHeaderKey: this.mail.normalizeHeaderKey, + newline: this.mail.newline + }); + } else { + node = parentNode.createChild("multipart/mixed", { + disableUrlAccess: this.mail.disableUrlAccess, + disableFileAccess: this.mail.disableFileAccess, + normalizeHeaderKey: this.mail.normalizeHeaderKey, + newline: this.mail.newline + }); + } + if (this._useAlternative) { + this._createAlternative(node); + } else if (this._useRelated) { + this._createRelated(node); + } + [].concat(!this._useAlternative && this._alternatives || []).concat(this._attachments.attached || []).forEach((element) => { + if (!this._useRelated || element !== this._htmlNode) { + this._createContentNode(node, element); + } + }); + return node; + } + _createAlternative(parentNode) { + let node; + if (!parentNode) { + node = new MimeNode("multipart/alternative", { + baseBoundary: this.mail.baseBoundary, + textEncoding: this.mail.textEncoding, + boundaryPrefix: this.mail.boundaryPrefix, + disableUrlAccess: this.mail.disableUrlAccess, + disableFileAccess: this.mail.disableFileAccess, + normalizeHeaderKey: this.mail.normalizeHeaderKey, + newline: this.mail.newline + }); + } else { + node = parentNode.createChild("multipart/alternative", { + disableUrlAccess: this.mail.disableUrlAccess, + disableFileAccess: this.mail.disableFileAccess, + normalizeHeaderKey: this.mail.normalizeHeaderKey, + newline: this.mail.newline + }); + } + this._alternatives.forEach((alternative) => { + if (this._useRelated && this._htmlNode === alternative) { + this._createRelated(node); + } else { + this._createContentNode(node, alternative); + } + }); + return node; + } + _createRelated(parentNode) { + let node; + if (!parentNode) { + node = new MimeNode('multipart/related; type="text/html"', { + baseBoundary: this.mail.baseBoundary, + textEncoding: this.mail.textEncoding, + boundaryPrefix: this.mail.boundaryPrefix, + disableUrlAccess: this.mail.disableUrlAccess, + disableFileAccess: this.mail.disableFileAccess, + normalizeHeaderKey: this.mail.normalizeHeaderKey, + newline: this.mail.newline + }); + } else { + node = parentNode.createChild('multipart/related; type="text/html"', { + disableUrlAccess: this.mail.disableUrlAccess, + disableFileAccess: this.mail.disableFileAccess, + normalizeHeaderKey: this.mail.normalizeHeaderKey, + newline: this.mail.newline + }); + } + this._createContentNode(node, this._htmlNode); + this._attachments.related.forEach((alternative) => this._createContentNode(node, alternative)); + return node; + } + _createContentNode(parentNode, element) { + element = element || {}; + element.content = element.content || ""; + let node; + let encoding = (element.encoding || "utf8").toString().toLowerCase().replace(/[-_\s]/g, ""); + if (!parentNode) { + node = new MimeNode(element.contentType, { + filename: element.filename, + baseBoundary: this.mail.baseBoundary, + textEncoding: this.mail.textEncoding, + boundaryPrefix: this.mail.boundaryPrefix, + disableUrlAccess: this.mail.disableUrlAccess, + disableFileAccess: this.mail.disableFileAccess, + normalizeHeaderKey: this.mail.normalizeHeaderKey, + newline: this.mail.newline + }); + } else { + node = parentNode.createChild(element.contentType, { + filename: element.filename, + textEncoding: this.mail.textEncoding, + disableUrlAccess: this.mail.disableUrlAccess, + disableFileAccess: this.mail.disableFileAccess, + normalizeHeaderKey: this.mail.normalizeHeaderKey, + newline: this.mail.newline + }); + } + if (element.headers) { + node.addHeader(element.headers); + } + if (element.cid) { + node.setHeader("Content-Id", "<" + element.cid.replace(/[<>]/g, "") + ">"); + } + if (element.contentTransferEncoding) { + node.setHeader("Content-Transfer-Encoding", element.contentTransferEncoding); + } else if (this.mail.encoding && /^text\//i.test(element.contentType)) { + node.setHeader("Content-Transfer-Encoding", this.mail.encoding); + } + if (!/^text\//i.test(element.contentType) || element.contentDisposition) { + node.setHeader("Content-Disposition", element.contentDisposition || (element.cid && /^image\//i.test(element.contentType) ? "inline" : "attachment")); + } + if (typeof element.content === "string" && !["utf8", "usascii", "ascii"].includes(encoding)) { + element.content = Buffer.from(element.content, encoding); + } + if (element.raw) { + node.setRaw(element.raw); + } else { + node.setContent(element.content); + } + return node; + } + _processDataUrl(element) { + let parsedDataUri; + if ((element.path || element.href).match(/^data:/)) { + parsedDataUri = parseDataURI(element.path || element.href); + } + if (!parsedDataUri) { + return element; + } + element.content = parsedDataUri.data; + element.contentType = element.contentType || parsedDataUri.contentType; + if ("path" in element) { + element.path = false; + } + if ("href" in element) { + element.href = false; + } + return element; + } + } + module.exports = MailComposer; +}); + +// node_modules/nodemailer/lib/dkim/message-parser.js +var require_message_parser = __commonJS((exports, module) => { + var Transform = __require("stream").Transform; + + class MessageParser extends Transform { + constructor(options) { + super(options); + this.lastBytes = Buffer.alloc(4); + this.headersParsed = false; + this.headerBytes = 0; + this.headerChunks = []; + this.rawHeaders = false; + this.bodySize = 0; + } + updateLastBytes(data) { + let lblen = this.lastBytes.length; + let nblen = Math.min(data.length, lblen); + for (let i = 0, len = lblen - nblen;i < len; i++) { + this.lastBytes[i] = this.lastBytes[i + nblen]; + } + for (let i = 1;i <= nblen; i++) { + this.lastBytes[lblen - i] = data[data.length - i]; + } + } + checkHeaders(data) { + if (this.headersParsed) { + return true; + } + let lblen = this.lastBytes.length; + let headerPos = 0; + this.curLinePos = 0; + for (let i = 0, len = this.lastBytes.length + data.length;i < len; i++) { + let chr; + if (i < lblen) { + chr = this.lastBytes[i]; + } else { + chr = data[i - lblen]; + } + if (chr === 10 && i) { + let pr1 = i - 1 < lblen ? this.lastBytes[i - 1] : data[i - 1 - lblen]; + let pr2 = i > 1 ? i - 2 < lblen ? this.lastBytes[i - 2] : data[i - 2 - lblen] : false; + if (pr1 === 10) { + this.headersParsed = true; + headerPos = i - lblen + 1; + this.headerBytes += headerPos; + break; + } else if (pr1 === 13 && pr2 === 10) { + this.headersParsed = true; + headerPos = i - lblen + 1; + this.headerBytes += headerPos; + break; + } + } + } + if (this.headersParsed) { + this.headerChunks.push(data.slice(0, headerPos)); + this.rawHeaders = Buffer.concat(this.headerChunks, this.headerBytes); + this.headerChunks = null; + this.emit("headers", this.parseHeaders()); + if (data.length - 1 > headerPos) { + let chunk = data.slice(headerPos); + this.bodySize += chunk.length; + setImmediate(() => this.push(chunk)); + } + return false; + } else { + this.headerBytes += data.length; + this.headerChunks.push(data); + } + this.updateLastBytes(data); + return false; + } + _transform(chunk, encoding, callback) { + if (!chunk || !chunk.length) { + return callback(); + } + if (typeof chunk === "string") { + chunk = Buffer.from(chunk, encoding); + } + let headersFound; + try { + headersFound = this.checkHeaders(chunk); + } catch (E) { + return callback(E); + } + if (headersFound) { + this.bodySize += chunk.length; + this.push(chunk); + } + setImmediate(callback); + } + _flush(callback) { + if (this.headerChunks) { + let chunk = Buffer.concat(this.headerChunks, this.headerBytes); + this.bodySize += chunk.length; + this.push(chunk); + this.headerChunks = null; + } + callback(); + } + parseHeaders() { + let lines = (this.rawHeaders || "").toString().split(/\r?\n/); + for (let i = lines.length - 1;i > 0; i--) { + if (/^\s/.test(lines[i])) { + lines[i - 1] += "\n" + lines[i]; + lines.splice(i, 1); + } + } + return lines.filter((line) => line.trim()).map((line) => ({ + key: line.substr(0, line.indexOf(":")).trim().toLowerCase(), + line + })); + } + } + module.exports = MessageParser; +}); + +// node_modules/nodemailer/lib/dkim/relaxed-body.js +var require_relaxed_body = __commonJS((exports, module) => { + var Transform = __require("stream").Transform; + var crypto2 = __require("crypto"); + + class RelaxedBody extends Transform { + constructor(options) { + super(); + options = options || {}; + this.chunkBuffer = []; + this.chunkBufferLen = 0; + this.bodyHash = crypto2.createHash(options.hashAlgo || "sha1"); + this.remainder = ""; + this.byteLength = 0; + this.debug = options.debug; + this._debugBody = options.debug ? [] : false; + } + updateHash(chunk) { + let bodyStr; + let nextRemainder = ""; + let state = "file"; + for (let i = chunk.length - 1;i >= 0; i--) { + let c = chunk[i]; + if (state === "file" && (c === 10 || c === 13)) { + } else if (state === "file" && (c === 9 || c === 32)) { + state = "line"; + } else if (state === "line" && (c === 9 || c === 32)) { + } else if (state === "file" || state === "line") { + state = "body"; + if (i === chunk.length - 1) { + break; + } + } + if (i === 0) { + if (state === "file" && (!this.remainder || /[\r\n]$/.test(this.remainder)) || state === "line" && (!this.remainder || /[ \t]$/.test(this.remainder))) { + this.remainder += chunk.toString("binary"); + return; + } else if (state === "line" || state === "file") { + nextRemainder = chunk.toString("binary"); + chunk = false; + break; + } + } + if (state !== "body") { + continue; + } + nextRemainder = chunk.slice(i + 1).toString("binary"); + chunk = chunk.slice(0, i + 1); + break; + } + let needsFixing = !!this.remainder; + if (chunk && !needsFixing) { + for (let i = 0, len = chunk.length;i < len; i++) { + if (i && chunk[i] === 10 && chunk[i - 1] !== 13) { + needsFixing = true; + break; + } else if (i && chunk[i] === 13 && chunk[i - 1] === 32) { + needsFixing = true; + break; + } else if (i && chunk[i] === 32 && chunk[i - 1] === 32) { + needsFixing = true; + break; + } else if (chunk[i] === 9) { + needsFixing = true; + break; + } + } + } + if (needsFixing) { + bodyStr = this.remainder + (chunk ? chunk.toString("binary") : ""); + this.remainder = nextRemainder; + bodyStr = bodyStr.replace(/\r?\n/g, "\n").replace(/[ \t]*$/gm, "").replace(/[ \t]+/gm, " ").replace(/\n/g, "\r\n"); + chunk = Buffer.from(bodyStr, "binary"); + } else if (nextRemainder) { + this.remainder = nextRemainder; + } + if (this.debug) { + this._debugBody.push(chunk); + } + this.bodyHash.update(chunk); + } + _transform(chunk, encoding, callback) { + if (!chunk || !chunk.length) { + return callback(); + } + if (typeof chunk === "string") { + chunk = Buffer.from(chunk, encoding); + } + this.updateHash(chunk); + this.byteLength += chunk.length; + this.push(chunk); + callback(); + } + _flush(callback) { + if (/[\r\n]$/.test(this.remainder) && this.byteLength > 2) { + this.bodyHash.update(Buffer.from("\r\n")); + } + if (!this.byteLength) { + this.push(Buffer.from("\r\n")); + } + this.emit("hash", this.bodyHash.digest("base64"), this.debug ? Buffer.concat(this._debugBody) : false); + callback(); + } + } + module.exports = RelaxedBody; +}); + +// node_modules/nodemailer/lib/dkim/sign.js +var require_sign = __commonJS((exports, module) => { + var punycode = require_punycode(); + var mimeFuncs = require_mime_funcs(); + var crypto2 = __require("crypto"); + module.exports = (headers, hashAlgo, bodyHash, options) => { + options = options || {}; + let defaultFieldNames = "From:Sender:Reply-To:Subject:Date:Message-ID:To:" + "Cc:MIME-Version:Content-Type:Content-Transfer-Encoding:Content-ID:" + "Content-Description:Resent-Date:Resent-From:Resent-Sender:" + "Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:" + "List-Id:List-Help:List-Unsubscribe:List-Subscribe:List-Post:" + "List-Owner:List-Archive"; + let fieldNames = options.headerFieldNames || defaultFieldNames; + let canonicalizedHeaderData = relaxedHeaders(headers, fieldNames, options.skipFields); + let dkimHeader = generateDKIMHeader(options.domainName, options.keySelector, canonicalizedHeaderData.fieldNames, hashAlgo, bodyHash); + let signer, signature; + canonicalizedHeaderData.headers += "dkim-signature:" + relaxedHeaderLine(dkimHeader); + signer = crypto2.createSign(("rsa-" + hashAlgo).toUpperCase()); + signer.update(canonicalizedHeaderData.headers); + try { + signature = signer.sign(options.privateKey, "base64"); + } catch (E) { + return false; + } + return dkimHeader + signature.replace(/(^.{73}|.{75}(?!\r?\n|\r))/g, "$&\r\n ").trim(); + }; + module.exports.relaxedHeaders = relaxedHeaders; + function generateDKIMHeader(domainName, keySelector, fieldNames, hashAlgo, bodyHash) { + let dkim = [ + "v=1", + "a=rsa-" + hashAlgo, + "c=relaxed/relaxed", + "d=" + punycode.toASCII(domainName), + "q=dns/txt", + "s=" + keySelector, + "bh=" + bodyHash, + "h=" + fieldNames + ].join("; "); + return mimeFuncs.foldLines("DKIM-Signature: " + dkim, 76) + ";\r\n b="; + } + function relaxedHeaders(headers, fieldNames, skipFields) { + let includedFields = new Set; + let skip = new Set; + let headerFields = new Map; + (skipFields || "").toLowerCase().split(":").forEach((field) => { + skip.add(field.trim()); + }); + (fieldNames || "").toLowerCase().split(":").filter((field) => !skip.has(field.trim())).forEach((field) => { + includedFields.add(field.trim()); + }); + for (let i = headers.length - 1;i >= 0; i--) { + let line = headers[i]; + if (includedFields.has(line.key) && !headerFields.has(line.key)) { + headerFields.set(line.key, relaxedHeaderLine(line.line)); + } + } + let headersList = []; + let fields = []; + includedFields.forEach((field) => { + if (headerFields.has(field)) { + fields.push(field); + headersList.push(field + ":" + headerFields.get(field)); + } + }); + return { + headers: headersList.join("\r\n") + "\r\n", + fieldNames: fields.join(":") + }; + } + function relaxedHeaderLine(line) { + return line.substr(line.indexOf(":") + 1).replace(/\r?\n/g, "").replace(/\s+/g, " ").trim(); + } +}); + +// node_modules/nodemailer/lib/dkim/index.js +var require_dkim = __commonJS((exports, module) => { + var MessageParser = require_message_parser(); + var RelaxedBody = require_relaxed_body(); + var sign = require_sign(); + var PassThrough = __require("stream").PassThrough; + var fs15 = __require("fs"); + var path11 = __require("path"); + var crypto2 = __require("crypto"); + var DKIM_ALGO = "sha256"; + var MAX_MESSAGE_SIZE = 128 * 1024; + + class DKIMSigner { + constructor(options, keys, input, output) { + this.options = options || {}; + this.keys = keys; + this.cacheTreshold = Number(this.options.cacheTreshold) || MAX_MESSAGE_SIZE; + this.hashAlgo = this.options.hashAlgo || DKIM_ALGO; + this.cacheDir = this.options.cacheDir || false; + this.chunks = []; + this.chunklen = 0; + this.readPos = 0; + this.cachePath = this.cacheDir ? path11.join(this.cacheDir, "message." + Date.now() + "-" + crypto2.randomBytes(14).toString("hex")) : false; + this.cache = false; + this.headers = false; + this.bodyHash = false; + this.parser = false; + this.relaxedBody = false; + this.input = input; + this.output = output; + this.output.usingCache = false; + this.hasErrored = false; + this.input.on("error", (err) => { + this.hasErrored = true; + this.cleanup(); + output.emit("error", err); + }); + } + cleanup() { + if (!this.cache || !this.cachePath) { + return; + } + fs15.unlink(this.cachePath, () => false); + } + createReadCache() { + this.cache = fs15.createReadStream(this.cachePath); + this.cache.once("error", (err) => { + this.cleanup(); + this.output.emit("error", err); + }); + this.cache.once("close", () => { + this.cleanup(); + }); + this.cache.pipe(this.output); + } + sendNextChunk() { + if (this.hasErrored) { + return; + } + if (this.readPos >= this.chunks.length) { + if (!this.cache) { + return this.output.end(); + } + return this.createReadCache(); + } + let chunk = this.chunks[this.readPos++]; + if (this.output.write(chunk) === false) { + return this.output.once("drain", () => { + this.sendNextChunk(); + }); + } + setImmediate(() => this.sendNextChunk()); + } + sendSignedOutput() { + let keyPos = 0; + let signNextKey = () => { + if (keyPos >= this.keys.length) { + this.output.write(this.parser.rawHeaders); + return setImmediate(() => this.sendNextChunk()); + } + let key = this.keys[keyPos++]; + let dkimField = sign(this.headers, this.hashAlgo, this.bodyHash, { + domainName: key.domainName, + keySelector: key.keySelector, + privateKey: key.privateKey, + headerFieldNames: this.options.headerFieldNames, + skipFields: this.options.skipFields + }); + if (dkimField) { + this.output.write(Buffer.from(dkimField + "\r\n")); + } + return setImmediate(signNextKey); + }; + if (this.bodyHash && this.headers) { + return signNextKey(); + } + this.output.write(this.parser.rawHeaders); + this.sendNextChunk(); + } + createWriteCache() { + this.output.usingCache = true; + this.cache = fs15.createWriteStream(this.cachePath); + this.cache.once("error", (err) => { + this.cleanup(); + this.relaxedBody.unpipe(this.cache); + this.relaxedBody.on("readable", () => { + while (this.relaxedBody.read() !== null) { + } + }); + this.hasErrored = true; + this.output.emit("error", err); + }); + this.cache.once("close", () => { + this.sendSignedOutput(); + }); + this.relaxedBody.removeAllListeners("readable"); + this.relaxedBody.pipe(this.cache); + } + signStream() { + this.parser = new MessageParser; + this.relaxedBody = new RelaxedBody({ + hashAlgo: this.hashAlgo + }); + this.parser.on("headers", (value) => { + this.headers = value; + }); + this.relaxedBody.on("hash", (value) => { + this.bodyHash = value; + }); + this.relaxedBody.on("readable", () => { + let chunk; + if (this.cache) { + return; + } + while ((chunk = this.relaxedBody.read()) !== null) { + this.chunks.push(chunk); + this.chunklen += chunk.length; + if (this.chunklen >= this.cacheTreshold && this.cachePath) { + return this.createWriteCache(); + } + } + }); + this.relaxedBody.on("end", () => { + if (this.cache) { + return; + } + this.sendSignedOutput(); + }); + this.parser.pipe(this.relaxedBody); + setImmediate(() => this.input.pipe(this.parser)); + } + } + + class DKIM { + constructor(options) { + this.options = options || {}; + this.keys = [].concat(this.options.keys || { + domainName: options.domainName, + keySelector: options.keySelector, + privateKey: options.privateKey + }); + } + sign(input, extraOptions) { + let output = new PassThrough; + let inputStream = input; + let writeValue = false; + if (Buffer.isBuffer(input)) { + writeValue = input; + inputStream = new PassThrough; + } else if (typeof input === "string") { + writeValue = Buffer.from(input); + inputStream = new PassThrough; + } + let options = this.options; + if (extraOptions && Object.keys(extraOptions).length) { + options = {}; + Object.keys(this.options || {}).forEach((key) => { + options[key] = this.options[key]; + }); + Object.keys(extraOptions || {}).forEach((key) => { + if (!(key in options)) { + options[key] = extraOptions[key]; + } + }); + } + let signer = new DKIMSigner(options, this.keys, inputStream, output); + setImmediate(() => { + signer.signStream(); + if (writeValue) { + setImmediate(() => { + inputStream.end(writeValue); + }); + } + }); + return output; + } + } + module.exports = DKIM; +}); + +// node_modules/nodemailer/lib/smtp-connection/http-proxy-client.js +var require_http_proxy_client = __commonJS((exports, module) => { + var net = __require("net"); + var tls = __require("tls"); + var urllib = __require("url"); + function httpProxyClient(proxyUrl, destinationPort, destinationHost, callback) { + let proxy = urllib.parse(proxyUrl); + let options; + let connect; + let socket; + options = { + host: proxy.hostname, + port: Number(proxy.port) ? Number(proxy.port) : proxy.protocol === "https:" ? 443 : 80 + }; + if (proxy.protocol === "https:") { + options.rejectUnauthorized = false; + connect = tls.connect.bind(tls); + } else { + connect = net.connect.bind(net); + } + let finished = false; + let tempSocketErr = (err) => { + if (finished) { + return; + } + finished = true; + try { + socket.destroy(); + } catch (E) { + } + callback(err); + }; + let timeoutErr = () => { + let err = new Error("Proxy socket timed out"); + err.code = "ETIMEDOUT"; + tempSocketErr(err); + }; + socket = connect(options, () => { + if (finished) { + return; + } + let reqHeaders = { + Host: destinationHost + ":" + destinationPort, + Connection: "close" + }; + if (proxy.auth) { + reqHeaders["Proxy-Authorization"] = "Basic " + Buffer.from(proxy.auth).toString("base64"); + } + socket.write("CONNECT " + destinationHost + ":" + destinationPort + " HTTP/1.1\r\n" + Object.keys(reqHeaders).map((key) => key + ": " + reqHeaders[key]).join("\r\n") + "\r\n\r\n"); + let headers = ""; + let onSocketData = (chunk) => { + let match; + let remainder; + if (finished) { + return; + } + headers += chunk.toString("binary"); + if (match = headers.match(/\r\n\r\n/)) { + socket.removeListener("data", onSocketData); + remainder = headers.substr(match.index + match[0].length); + headers = headers.substr(0, match.index); + if (remainder) { + socket.unshift(Buffer.from(remainder, "binary")); + } + finished = true; + match = headers.match(/^HTTP\/\d+\.\d+ (\d+)/i); + if (!match || (match[1] || "").charAt(0) !== "2") { + try { + socket.destroy(); + } catch (E) { + } + return callback(new Error("Invalid response from proxy" + (match && ": " + match[1] || ""))); + } + socket.removeListener("error", tempSocketErr); + socket.removeListener("timeout", timeoutErr); + socket.setTimeout(0); + return callback(null, socket); + } + }; + socket.on("data", onSocketData); + }); + socket.setTimeout(httpProxyClient.timeout || 30 * 1000); + socket.on("timeout", timeoutErr); + socket.once("error", tempSocketErr); + } + module.exports = httpProxyClient; +}); + +// node_modules/nodemailer/lib/mailer/mail-message.js +var require_mail_message = __commonJS((exports, module) => { + var shared = require_shared(); + var MimeNode = require_mime_node(); + var mimeFuncs = require_mime_funcs(); + + class MailMessage { + constructor(mailer, data) { + this.mailer = mailer; + this.data = {}; + this.message = null; + data = data || {}; + let options = mailer.options || {}; + let defaults = mailer._defaults || {}; + Object.keys(data).forEach((key) => { + this.data[key] = data[key]; + }); + this.data.headers = this.data.headers || {}; + Object.keys(defaults).forEach((key) => { + if (!(key in this.data)) { + this.data[key] = defaults[key]; + } else if (key === "headers") { + Object.keys(defaults.headers).forEach((key2) => { + if (!(key2 in this.data.headers)) { + this.data.headers[key2] = defaults.headers[key2]; + } + }); + } + }); + ["disableFileAccess", "disableUrlAccess", "normalizeHeaderKey"].forEach((key) => { + if (key in options) { + this.data[key] = options[key]; + } + }); + } + resolveContent(...args) { + return shared.resolveContent(...args); + } + resolveAll(callback) { + let keys = [ + [this.data, "html"], + [this.data, "text"], + [this.data, "watchHtml"], + [this.data, "amp"], + [this.data, "icalEvent"] + ]; + if (this.data.alternatives && this.data.alternatives.length) { + this.data.alternatives.forEach((alternative, i) => { + keys.push([this.data.alternatives, i]); + }); + } + if (this.data.attachments && this.data.attachments.length) { + this.data.attachments.forEach((attachment, i) => { + if (!attachment.filename) { + attachment.filename = (attachment.path || attachment.href || "").split("/").pop().split("?").shift() || "attachment-" + (i + 1); + if (attachment.filename.indexOf(".") < 0) { + attachment.filename += "." + mimeFuncs.detectExtension(attachment.contentType); + } + } + if (!attachment.contentType) { + attachment.contentType = mimeFuncs.detectMimeType(attachment.filename || attachment.path || attachment.href || "bin"); + } + keys.push([this.data.attachments, i]); + }); + } + let mimeNode = new MimeNode; + let addressKeys = ["from", "to", "cc", "bcc", "sender", "replyTo"]; + addressKeys.forEach((address) => { + let value; + if (this.message) { + value = [].concat(mimeNode._parseAddresses(this.message.getHeader(address === "replyTo" ? "reply-to" : address)) || []); + } else if (this.data[address]) { + value = [].concat(mimeNode._parseAddresses(this.data[address]) || []); + } + if (value && value.length) { + this.data[address] = value; + } else if (address in this.data) { + this.data[address] = null; + } + }); + let singleKeys = ["from", "sender"]; + singleKeys.forEach((address) => { + if (this.data[address]) { + this.data[address] = this.data[address].shift(); + } + }); + let pos = 0; + let resolveNext = () => { + if (pos >= keys.length) { + return callback(null, this.data); + } + let args = keys[pos++]; + if (!args[0] || !args[0][args[1]]) { + return resolveNext(); + } + shared.resolveContent(...args, (err, value) => { + if (err) { + return callback(err); + } + let node = { + content: value + }; + if (args[0][args[1]] && typeof args[0][args[1]] === "object" && !Buffer.isBuffer(args[0][args[1]])) { + Object.keys(args[0][args[1]]).forEach((key) => { + if (!(key in node) && !["content", "path", "href", "raw"].includes(key)) { + node[key] = args[0][args[1]][key]; + } + }); + } + args[0][args[1]] = node; + resolveNext(); + }); + }; + setImmediate(() => resolveNext()); + } + normalize(callback) { + let envelope = this.data.envelope || this.message.getEnvelope(); + let messageId = this.message.messageId(); + this.resolveAll((err, data) => { + if (err) { + return callback(err); + } + data.envelope = envelope; + data.messageId = messageId; + ["html", "text", "watchHtml", "amp"].forEach((key) => { + if (data[key] && data[key].content) { + if (typeof data[key].content === "string") { + data[key] = data[key].content; + } else if (Buffer.isBuffer(data[key].content)) { + data[key] = data[key].content.toString(); + } + } + }); + if (data.icalEvent && Buffer.isBuffer(data.icalEvent.content)) { + data.icalEvent.content = data.icalEvent.content.toString("base64"); + data.icalEvent.encoding = "base64"; + } + if (data.alternatives && data.alternatives.length) { + data.alternatives.forEach((alternative) => { + if (alternative && alternative.content && Buffer.isBuffer(alternative.content)) { + alternative.content = alternative.content.toString("base64"); + alternative.encoding = "base64"; + } + }); + } + if (data.attachments && data.attachments.length) { + data.attachments.forEach((attachment) => { + if (attachment && attachment.content && Buffer.isBuffer(attachment.content)) { + attachment.content = attachment.content.toString("base64"); + attachment.encoding = "base64"; + } + }); + } + data.normalizedHeaders = {}; + Object.keys(data.headers || {}).forEach((key) => { + let value = [].concat(data.headers[key] || []).shift(); + value = value && value.value || value; + if (value) { + if (["references", "in-reply-to", "message-id", "content-id"].includes(key)) { + value = this.message._encodeHeaderValue(key, value); + } + data.normalizedHeaders[key] = value; + } + }); + if (data.list && typeof data.list === "object") { + let listHeaders = this._getListHeaders(data.list); + listHeaders.forEach((entry) => { + data.normalizedHeaders[entry.key] = entry.value.map((val) => val && val.value || val).join(", "); + }); + } + if (data.references) { + data.normalizedHeaders.references = this.message._encodeHeaderValue("references", data.references); + } + if (data.inReplyTo) { + data.normalizedHeaders["in-reply-to"] = this.message._encodeHeaderValue("in-reply-to", data.inReplyTo); + } + return callback(null, data); + }); + } + setMailerHeader() { + if (!this.message || !this.data.xMailer) { + return; + } + this.message.setHeader("X-Mailer", this.data.xMailer); + } + setPriorityHeaders() { + if (!this.message || !this.data.priority) { + return; + } + switch ((this.data.priority || "").toString().toLowerCase()) { + case "high": + this.message.setHeader("X-Priority", "1 (Highest)"); + this.message.setHeader("X-MSMail-Priority", "High"); + this.message.setHeader("Importance", "High"); + break; + case "low": + this.message.setHeader("X-Priority", "5 (Lowest)"); + this.message.setHeader("X-MSMail-Priority", "Low"); + this.message.setHeader("Importance", "Low"); + break; + default: + } + } + setListHeaders() { + if (!this.message || !this.data.list || typeof this.data.list !== "object") { + return; + } + if (this.data.list && typeof this.data.list === "object") { + this._getListHeaders(this.data.list).forEach((listHeader) => { + listHeader.value.forEach((value) => { + this.message.addHeader(listHeader.key, value); + }); + }); + } + } + _getListHeaders(listData) { + return Object.keys(listData).map((key) => ({ + key: "list-" + key.toLowerCase().trim(), + value: [].concat(listData[key] || []).map((value) => ({ + prepared: true, + foldLines: true, + value: [].concat(value || []).map((value2) => { + if (typeof value2 === "string") { + value2 = { + url: value2 + }; + } + if (value2 && value2.url) { + if (key.toLowerCase().trim() === "id") { + let comment2 = value2.comment || ""; + if (mimeFuncs.isPlainText(comment2)) { + comment2 = '"' + comment2 + '"'; + } else { + comment2 = mimeFuncs.encodeWord(comment2); + } + return (value2.comment ? comment2 + " " : "") + this._formatListUrl(value2.url).replace(/^<[^:]+\/{,2}/, ""); + } + let comment = value2.comment || ""; + if (!mimeFuncs.isPlainText(comment)) { + comment = mimeFuncs.encodeWord(comment); + } + return this._formatListUrl(value2.url) + (value2.comment ? " (" + comment + ")" : ""); + } + return ""; + }).filter((value2) => value2).join(", ") + })) + })); + } + _formatListUrl(url) { + url = url.replace(/[\s<]+|[\s>]+/g, ""); + if (/^(https?|mailto|ftp):/.test(url)) { + return "<" + url + ">"; + } + if (/^[^@]+@[^@]+$/.test(url)) { + return ""; + } + return ""; + } + } + module.exports = MailMessage; +}); + +// node_modules/nodemailer/lib/mailer/index.js +var require_mailer = __commonJS((exports, module) => { + var EventEmitter = __require("events"); + var shared = require_shared(); + var mimeTypes = require_mime_types(); + var MailComposer = require_mail_composer(); + var DKIM = require_dkim(); + var httpProxyClient = require_http_proxy_client(); + var util = __require("util"); + var urllib = __require("url"); + var packageData = require_package2(); + var MailMessage = require_mail_message(); + var net = __require("net"); + var dns = __require("dns"); + var crypto2 = __require("crypto"); + + class Mail extends EventEmitter { + constructor(transporter, options, defaults) { + super(); + this.options = options || {}; + this._defaults = defaults || {}; + this._defaultPlugins = { + compile: [(...args) => this._convertDataImages(...args)], + stream: [] + }; + this._userPlugins = { + compile: [], + stream: [] + }; + this.meta = new Map; + this.dkim = this.options.dkim ? new DKIM(this.options.dkim) : false; + this.transporter = transporter; + this.transporter.mailer = this; + this.logger = shared.getLogger(this.options, { + component: this.options.component || "mail" + }); + this.logger.debug({ + tnx: "create" + }, "Creating transport: %s", this.getVersionString()); + if (typeof this.transporter.on === "function") { + this.transporter.on("log", (log) => { + this.logger.debug({ + tnx: "transport" + }, "%s: %s", log.type, log.message); + }); + this.transporter.on("error", (err) => { + this.logger.error({ + err, + tnx: "transport" + }, "Transport Error: %s", err.message); + this.emit("error", err); + }); + this.transporter.on("idle", (...args) => { + this.emit("idle", ...args); + }); + } + ["close", "isIdle", "verify"].forEach((method) => { + this[method] = (...args) => { + if (typeof this.transporter[method] === "function") { + if (method === "verify" && typeof this.getSocket === "function") { + this.transporter.getSocket = this.getSocket; + this.getSocket = false; + } + return this.transporter[method](...args); + } else { + this.logger.warn({ + tnx: "transport", + methodName: method + }, "Non existing method %s called for transport", method); + return false; + } + }; + }); + if (this.options.proxy && typeof this.options.proxy === "string") { + this.setupProxy(this.options.proxy); + } + } + use(step, plugin) { + step = (step || "").toString(); + if (!this._userPlugins.hasOwnProperty(step)) { + this._userPlugins[step] = [plugin]; + } else { + this._userPlugins[step].push(plugin); + } + return this; + } + sendMail(data, callback = null) { + let promise; + if (!callback) { + promise = new Promise((resolve, reject) => { + callback = shared.callbackPromise(resolve, reject); + }); + } + if (typeof this.getSocket === "function") { + this.transporter.getSocket = this.getSocket; + this.getSocket = false; + } + let mail = new MailMessage(this, data); + this.logger.debug({ + tnx: "transport", + name: this.transporter.name, + version: this.transporter.version, + action: "send" + }, "Sending mail using %s/%s", this.transporter.name, this.transporter.version); + this._processPlugins("compile", mail, (err) => { + if (err) { + this.logger.error({ + err, + tnx: "plugin", + action: "compile" + }, "PluginCompile Error: %s", err.message); + return callback(err); + } + mail.message = new MailComposer(mail.data).compile(); + mail.setMailerHeader(); + mail.setPriorityHeaders(); + mail.setListHeaders(); + this._processPlugins("stream", mail, (err2) => { + if (err2) { + this.logger.error({ + err: err2, + tnx: "plugin", + action: "stream" + }, "PluginStream Error: %s", err2.message); + return callback(err2); + } + if (mail.data.dkim || this.dkim) { + mail.message.processFunc((input) => { + let dkim = mail.data.dkim ? new DKIM(mail.data.dkim) : this.dkim; + this.logger.debug({ + tnx: "DKIM", + messageId: mail.message.messageId(), + dkimDomains: dkim.keys.map((key) => key.keySelector + "." + key.domainName).join(", ") + }, "Signing outgoing message with %s keys", dkim.keys.length); + return dkim.sign(input, mail.data._dkim); + }); + } + this.transporter.send(mail, (...args) => { + if (args[0]) { + this.logger.error({ + err: args[0], + tnx: "transport", + action: "send" + }, "Send Error: %s", args[0].message); + } + callback(...args); + }); + }); + }); + return promise; + } + getVersionString() { + return util.format("%s (%s; +%s; %s/%s)", packageData.name, packageData.version, packageData.homepage, this.transporter.name, this.transporter.version); + } + _processPlugins(step, mail, callback) { + step = (step || "").toString(); + if (!this._userPlugins.hasOwnProperty(step)) { + return callback(); + } + let userPlugins = this._userPlugins[step] || []; + let defaultPlugins = this._defaultPlugins[step] || []; + if (userPlugins.length) { + this.logger.debug({ + tnx: "transaction", + pluginCount: userPlugins.length, + step + }, "Using %s plugins for %s", userPlugins.length, step); + } + if (userPlugins.length + defaultPlugins.length === 0) { + return callback(); + } + let pos = 0; + let block = "default"; + let processPlugins = () => { + let curplugins = block === "default" ? defaultPlugins : userPlugins; + if (pos >= curplugins.length) { + if (block === "default" && userPlugins.length) { + block = "user"; + pos = 0; + curplugins = userPlugins; + } else { + return callback(); + } + } + let plugin = curplugins[pos++]; + plugin(mail, (err) => { + if (err) { + return callback(err); + } + processPlugins(); + }); + }; + processPlugins(); + } + setupProxy(proxyUrl) { + let proxy = urllib.parse(proxyUrl); + this.getSocket = (options, callback) => { + let protocol = proxy.protocol.replace(/:$/, "").toLowerCase(); + if (this.meta.has("proxy_handler_" + protocol)) { + return this.meta.get("proxy_handler_" + protocol)(proxy, options, callback); + } + switch (protocol) { + case "http": + case "https": + httpProxyClient(proxy.href, options.port, options.host, (err, socket) => { + if (err) { + return callback(err); + } + return callback(null, { + connection: socket + }); + }); + return; + case "socks": + case "socks5": + case "socks4": + case "socks4a": { + if (!this.meta.has("proxy_socks_module")) { + return callback(new Error("Socks module not loaded")); + } + let connect = (ipaddress) => { + let proxyV2 = !!this.meta.get("proxy_socks_module").SocksClient; + let socksClient = proxyV2 ? this.meta.get("proxy_socks_module").SocksClient : this.meta.get("proxy_socks_module"); + let proxyType = Number(proxy.protocol.replace(/\D/g, "")) || 5; + let connectionOpts = { + proxy: { + ipaddress, + port: Number(proxy.port), + type: proxyType + }, + [proxyV2 ? "destination" : "target"]: { + host: options.host, + port: options.port + }, + command: "connect" + }; + if (proxy.auth) { + let username = decodeURIComponent(proxy.auth.split(":").shift()); + let password = decodeURIComponent(proxy.auth.split(":").pop()); + if (proxyV2) { + connectionOpts.proxy.userId = username; + connectionOpts.proxy.password = password; + } else if (proxyType === 4) { + connectionOpts.userid = username; + } else { + connectionOpts.authentication = { + username, + password + }; + } + } + socksClient.createConnection(connectionOpts, (err, info) => { + if (err) { + return callback(err); + } + return callback(null, { + connection: info.socket || info + }); + }); + }; + if (net.isIP(proxy.hostname)) { + return connect(proxy.hostname); + } + return dns.resolve(proxy.hostname, (err, address) => { + if (err) { + return callback(err); + } + connect(Array.isArray(address) ? address[0] : address); + }); + } + } + callback(new Error("Unknown proxy configuration")); + }; + } + _convertDataImages(mail, callback) { + if (!this.options.attachDataUrls && !mail.data.attachDataUrls || !mail.data.html) { + return callback(); + } + mail.resolveContent(mail.data, "html", (err, html) => { + if (err) { + return callback(err); + } + let cidCounter = 0; + html = (html || "").toString().replace(/(]{0,1024} src\s{0,20}=[\s"']{0,20})(data:([^;]+);[^"'>\s]+)/gi, (match, prefix, dataUri, mimeType) => { + let cid = crypto2.randomBytes(10).toString("hex") + "@localhost"; + if (!mail.data.attachments) { + mail.data.attachments = []; + } + if (!Array.isArray(mail.data.attachments)) { + mail.data.attachments = [].concat(mail.data.attachments || []); + } + mail.data.attachments.push({ + path: dataUri, + cid, + filename: "image-" + ++cidCounter + "." + mimeTypes.detectExtension(mimeType) + }); + return prefix + "cid:" + cid; + }); + mail.data.html = html; + callback(); + }); + } + set(key, value) { + return this.meta.set(key, value); + } + get(key) { + return this.meta.get(key); + } + } + module.exports = Mail; +}); + +// node_modules/nodemailer/lib/smtp-connection/data-stream.js +var require_data_stream = __commonJS((exports, module) => { + var stream = __require("stream"); + var Transform = stream.Transform; + + class DataStream extends Transform { + constructor(options) { + super(options); + this.options = options || {}; + this._curLine = ""; + this.inByteCount = 0; + this.outByteCount = 0; + this.lastByte = false; + } + _transform(chunk, encoding, done) { + let chunks = []; + let chunklen = 0; + let i, len, lastPos = 0; + let buf; + if (!chunk || !chunk.length) { + return done(); + } + if (typeof chunk === "string") { + chunk = Buffer.from(chunk); + } + this.inByteCount += chunk.length; + for (i = 0, len = chunk.length;i < len; i++) { + if (chunk[i] === 46) { + if (i && chunk[i - 1] === 10 || !i && (!this.lastByte || this.lastByte === 10)) { + buf = chunk.slice(lastPos, i + 1); + chunks.push(buf); + chunks.push(Buffer.from(".")); + chunklen += buf.length + 1; + lastPos = i + 1; + } + } else if (chunk[i] === 10) { + if (i && chunk[i - 1] !== 13 || !i && this.lastByte !== 13) { + if (i > lastPos) { + buf = chunk.slice(lastPos, i); + chunks.push(buf); + chunklen += buf.length + 2; + } else { + chunklen += 2; + } + chunks.push(Buffer.from("\r\n")); + lastPos = i + 1; + } + } + } + if (chunklen) { + if (lastPos < chunk.length) { + buf = chunk.slice(lastPos); + chunks.push(buf); + chunklen += buf.length; + } + this.outByteCount += chunklen; + this.push(Buffer.concat(chunks, chunklen)); + } else { + this.outByteCount += chunk.length; + this.push(chunk); + } + this.lastByte = chunk[chunk.length - 1]; + done(); + } + _flush(done) { + let buf; + if (this.lastByte === 10) { + buf = Buffer.from(".\r\n"); + } else if (this.lastByte === 13) { + buf = Buffer.from("\n.\r\n"); + } else { + buf = Buffer.from("\r\n.\r\n"); + } + this.outByteCount += buf.length; + this.push(buf); + done(); + } + } + module.exports = DataStream; +}); + +// node_modules/nodemailer/lib/smtp-connection/index.js +var require_smtp_connection = __commonJS((exports, module) => { + var packageInfo = require_package2(); + var EventEmitter = __require("events").EventEmitter; + var net = __require("net"); + var tls = __require("tls"); + var os = __require("os"); + var crypto2 = __require("crypto"); + var DataStream = require_data_stream(); + var PassThrough = __require("stream").PassThrough; + var shared = require_shared(); + var CONNECTION_TIMEOUT = 2 * 60 * 1000; + var SOCKET_TIMEOUT = 10 * 60 * 1000; + var GREETING_TIMEOUT = 30 * 1000; + var DNS_TIMEOUT = 30 * 1000; + + class SMTPConnection extends EventEmitter { + constructor(options) { + super(options); + this.id = crypto2.randomBytes(8).toString("base64").replace(/\W/g, ""); + this.stage = "init"; + this.options = options || {}; + this.secureConnection = !!this.options.secure; + this.alreadySecured = !!this.options.secured; + this.port = Number(this.options.port) || (this.secureConnection ? 465 : 587); + this.host = this.options.host || "localhost"; + this.servername = this.options.servername ? this.options.servername : !net.isIP(this.host) ? this.host : false; + this.allowInternalNetworkInterfaces = this.options.allowInternalNetworkInterfaces || false; + if (typeof this.options.secure === "undefined" && this.port === 465) { + this.secureConnection = true; + } + this.name = this.options.name || this._getHostname(); + this.logger = shared.getLogger(this.options, { + component: this.options.component || "smtp-connection", + sid: this.id + }); + this.customAuth = new Map; + Object.keys(this.options.customAuth || {}).forEach((key) => { + let mapKey = (key || "").toString().trim().toUpperCase(); + if (!mapKey) { + return; + } + this.customAuth.set(mapKey, this.options.customAuth[key]); + }); + this.version = packageInfo.version; + this.authenticated = false; + this.destroyed = false; + this.secure = !!this.secureConnection; + this._remainder = ""; + this._responseQueue = []; + this.lastServerResponse = false; + this._socket = false; + this._supportedAuth = []; + this.allowsAuth = false; + this._envelope = false; + this._supportedExtensions = []; + this._maxAllowedSize = 0; + this._responseActions = []; + this._recipientQueue = []; + this._greetingTimeout = false; + this._connectionTimeout = false; + this._destroyed = false; + this._closing = false; + this._onSocketData = (chunk) => this._onData(chunk); + this._onSocketError = (error) => this._onError(error, "ESOCKET", false, "CONN"); + this._onSocketClose = () => this._onClose(); + this._onSocketEnd = () => this._onEnd(); + this._onSocketTimeout = () => this._onTimeout(); + } + connect(connectCallback) { + if (typeof connectCallback === "function") { + this.once("connect", () => { + this.logger.debug({ + tnx: "smtp" + }, "SMTP handshake finished"); + connectCallback(); + }); + const isDestroyedMessage = this._isDestroyedMessage("connect"); + if (isDestroyedMessage) { + return connectCallback(this._formatError(isDestroyedMessage, "ECONNECTION", false, "CONN")); + } + } + let opts = { + port: this.port, + host: this.host, + allowInternalNetworkInterfaces: this.allowInternalNetworkInterfaces, + timeout: this.options.dnsTimeout || DNS_TIMEOUT + }; + if (this.options.localAddress) { + opts.localAddress = this.options.localAddress; + } + let setupConnectionHandlers = () => { + this._connectionTimeout = setTimeout(() => { + this._onError("Connection timeout", "ETIMEDOUT", false, "CONN"); + }, this.options.connectionTimeout || CONNECTION_TIMEOUT); + this._socket.on("error", this._onSocketError); + }; + if (this.options.connection) { + this._socket = this.options.connection; + if (this.secureConnection && !this.alreadySecured) { + setImmediate(() => this._upgradeConnection((err) => { + if (err) { + this._onError(new Error("Error initiating TLS - " + (err.message || err)), "ETLS", false, "CONN"); + return; + } + this._onConnect(); + })); + } else { + setImmediate(() => this._onConnect()); + } + return; + } else if (this.options.socket) { + this._socket = this.options.socket; + return shared.resolveHostname(opts, (err, resolved) => { + if (err) { + return setImmediate(() => this._onError(err, "EDNS", false, "CONN")); + } + this.logger.debug({ + tnx: "dns", + source: opts.host, + resolved: resolved.host, + cached: !!resolved.cached + }, "Resolved %s as %s [cache %s]", opts.host, resolved.host, resolved.cached ? "hit" : "miss"); + Object.keys(resolved).forEach((key) => { + if (key.charAt(0) !== "_" && resolved[key]) { + opts[key] = resolved[key]; + } + }); + try { + this._socket.connect(this.port, this.host, () => { + this._socket.setKeepAlive(true); + this._onConnect(); + }); + setupConnectionHandlers(); + } catch (E) { + return setImmediate(() => this._onError(E, "ECONNECTION", false, "CONN")); + } + }); + } else if (this.secureConnection) { + if (this.options.tls) { + Object.keys(this.options.tls).forEach((key) => { + opts[key] = this.options.tls[key]; + }); + } + if (this.servername && !opts.servername) { + opts.servername = this.servername; + } + return shared.resolveHostname(opts, (err, resolved) => { + if (err) { + return setImmediate(() => this._onError(err, "EDNS", false, "CONN")); + } + this.logger.debug({ + tnx: "dns", + source: opts.host, + resolved: resolved.host, + cached: !!resolved.cached + }, "Resolved %s as %s [cache %s]", opts.host, resolved.host, resolved.cached ? "hit" : "miss"); + Object.keys(resolved).forEach((key) => { + if (key.charAt(0) !== "_" && resolved[key]) { + opts[key] = resolved[key]; + } + }); + try { + this._socket = tls.connect(opts, () => { + this._socket.setKeepAlive(true); + this._onConnect(); + }); + setupConnectionHandlers(); + } catch (E) { + return setImmediate(() => this._onError(E, "ECONNECTION", false, "CONN")); + } + }); + } else { + return shared.resolveHostname(opts, (err, resolved) => { + if (err) { + return setImmediate(() => this._onError(err, "EDNS", false, "CONN")); + } + this.logger.debug({ + tnx: "dns", + source: opts.host, + resolved: resolved.host, + cached: !!resolved.cached + }, "Resolved %s as %s [cache %s]", opts.host, resolved.host, resolved.cached ? "hit" : "miss"); + Object.keys(resolved).forEach((key) => { + if (key.charAt(0) !== "_" && resolved[key]) { + opts[key] = resolved[key]; + } + }); + try { + this._socket = net.connect(opts, () => { + this._socket.setKeepAlive(true); + this._onConnect(); + }); + setupConnectionHandlers(); + } catch (E) { + return setImmediate(() => this._onError(E, "ECONNECTION", false, "CONN")); + } + }); + } + } + quit() { + this._sendCommand("QUIT"); + this._responseActions.push(this.close); + } + close() { + clearTimeout(this._connectionTimeout); + clearTimeout(this._greetingTimeout); + this._responseActions = []; + if (this._closing) { + return; + } + this._closing = true; + let closeMethod = "end"; + if (this.stage === "init") { + closeMethod = "destroy"; + } + this.logger.debug({ + tnx: "smtp" + }, 'Closing connection to the server using "%s"', closeMethod); + let socket = this._socket && this._socket.socket || this._socket; + if (socket && !socket.destroyed) { + try { + this._socket[closeMethod](); + } catch (E) { + } + } + this._destroy(); + } + login(authData, callback) { + const isDestroyedMessage = this._isDestroyedMessage("login"); + if (isDestroyedMessage) { + return callback(this._formatError(isDestroyedMessage, "ECONNECTION", false, "API")); + } + this._auth = authData || {}; + this._authMethod = (this._auth.method || "").toString().trim().toUpperCase() || false; + if (!this._authMethod && this._auth.oauth2 && !this._auth.credentials) { + this._authMethod = "XOAUTH2"; + } else if (!this._authMethod || this._authMethod === "XOAUTH2" && !this._auth.oauth2) { + this._authMethod = (this._supportedAuth[0] || "PLAIN").toUpperCase().trim(); + } + if (this._authMethod !== "XOAUTH2" && (!this._auth.credentials || !this._auth.credentials.user || !this._auth.credentials.pass)) { + if (this._auth.user && this._auth.pass || this.customAuth.has(this._authMethod)) { + this._auth.credentials = { + user: this._auth.user, + pass: this._auth.pass, + options: this._auth.options + }; + } else { + return callback(this._formatError('Missing credentials for "' + this._authMethod + '"', "EAUTH", false, "API")); + } + } + if (this.customAuth.has(this._authMethod)) { + let handler = this.customAuth.get(this._authMethod); + let lastResponse; + let returned = false; + let resolve = () => { + if (returned) { + return; + } + returned = true; + this.logger.info({ + tnx: "smtp", + username: this._auth.user, + action: "authenticated", + method: this._authMethod + }, "User %s authenticated", JSON.stringify(this._auth.user)); + this.authenticated = true; + callback(null, true); + }; + let reject = (err) => { + if (returned) { + return; + } + returned = true; + callback(this._formatError(err, "EAUTH", lastResponse, "AUTH " + this._authMethod)); + }; + let handlerResponse = handler({ + auth: this._auth, + method: this._authMethod, + extensions: [].concat(this._supportedExtensions), + authMethods: [].concat(this._supportedAuth), + maxAllowedSize: this._maxAllowedSize || false, + sendCommand: (cmd, done) => { + let promise; + if (!done) { + promise = new Promise((resolve2, reject2) => { + done = shared.callbackPromise(resolve2, reject2); + }); + } + this._responseActions.push((str) => { + lastResponse = str; + let codes = str.match(/^(\d+)(?:\s(\d+\.\d+\.\d+))?\s/); + let data = { + command: cmd, + response: str + }; + if (codes) { + data.status = Number(codes[1]) || 0; + if (codes[2]) { + data.code = codes[2]; + } + data.text = str.substr(codes[0].length); + } else { + data.text = str; + data.status = 0; + } + done(null, data); + }); + setImmediate(() => this._sendCommand(cmd)); + return promise; + }, + resolve, + reject + }); + if (handlerResponse && typeof handlerResponse.catch === "function") { + handlerResponse.then(resolve).catch(reject); + } + return; + } + switch (this._authMethod) { + case "XOAUTH2": + this._handleXOauth2Token(false, callback); + return; + case "LOGIN": + this._responseActions.push((str) => { + this._actionAUTH_LOGIN_USER(str, callback); + }); + this._sendCommand("AUTH LOGIN"); + return; + case "PLAIN": + this._responseActions.push((str) => { + this._actionAUTHComplete(str, callback); + }); + this._sendCommand("AUTH PLAIN " + Buffer.from("\0" + this._auth.credentials.user + "\0" + this._auth.credentials.pass, "utf-8").toString("base64"), "AUTH PLAIN " + Buffer.from("\0" + this._auth.credentials.user + "\0" + "/* secret */", "utf-8").toString("base64")); + return; + case "CRAM-MD5": + this._responseActions.push((str) => { + this._actionAUTH_CRAM_MD5(str, callback); + }); + this._sendCommand("AUTH CRAM-MD5"); + return; + } + return callback(this._formatError('Unknown authentication method "' + this._authMethod + '"', "EAUTH", false, "API")); + } + send(envelope, message, done) { + if (!message) { + return done(this._formatError("Empty message", "EMESSAGE", false, "API")); + } + const isDestroyedMessage = this._isDestroyedMessage("send message"); + if (isDestroyedMessage) { + return done(this._formatError(isDestroyedMessage, "ECONNECTION", false, "API")); + } + if (this._maxAllowedSize && envelope.size > this._maxAllowedSize) { + return setImmediate(() => { + done(this._formatError("Message size larger than allowed " + this._maxAllowedSize, "EMESSAGE", false, "MAIL FROM")); + }); + } + let returned = false; + let callback = function() { + if (returned) { + return; + } + returned = true; + done(...arguments); + }; + if (typeof message.on === "function") { + message.on("error", (err) => callback(this._formatError(err, "ESTREAM", false, "API"))); + } + let startTime = Date.now(); + this._setEnvelope(envelope, (err, info) => { + if (err) { + return callback(err); + } + let envelopeTime = Date.now(); + let stream = this._createSendStream((err2, str) => { + if (err2) { + return callback(err2); + } + info.envelopeTime = envelopeTime - startTime; + info.messageTime = Date.now() - envelopeTime; + info.messageSize = stream.outByteCount; + info.response = str; + return callback(null, info); + }); + if (typeof message.pipe === "function") { + message.pipe(stream); + } else { + stream.write(message); + stream.end(); + } + }); + } + reset(callback) { + this._sendCommand("RSET"); + this._responseActions.push((str) => { + if (str.charAt(0) !== "2") { + return callback(this._formatError("Could not reset session state. response=" + str, "EPROTOCOL", str, "RSET")); + } + this._envelope = false; + return callback(null, true); + }); + } + _onConnect() { + clearTimeout(this._connectionTimeout); + this.logger.info({ + tnx: "network", + localAddress: this._socket.localAddress, + localPort: this._socket.localPort, + remoteAddress: this._socket.remoteAddress, + remotePort: this._socket.remotePort + }, "%s established to %s:%s", this.secure ? "Secure connection" : "Connection", this._socket.remoteAddress, this._socket.remotePort); + if (this._destroyed) { + this.close(); + return; + } + this.stage = "connected"; + this._socket.removeListener("data", this._onSocketData); + this._socket.removeListener("timeout", this._onSocketTimeout); + this._socket.removeListener("close", this._onSocketClose); + this._socket.removeListener("end", this._onSocketEnd); + this._socket.on("data", this._onSocketData); + this._socket.once("close", this._onSocketClose); + this._socket.once("end", this._onSocketEnd); + this._socket.setTimeout(this.options.socketTimeout || SOCKET_TIMEOUT); + this._socket.on("timeout", this._onSocketTimeout); + this._greetingTimeout = setTimeout(() => { + if (this._socket && !this._destroyed && this._responseActions[0] === this._actionGreeting) { + this._onError("Greeting never received", "ETIMEDOUT", false, "CONN"); + } + }, this.options.greetingTimeout || GREETING_TIMEOUT); + this._responseActions.push(this._actionGreeting); + this._socket.resume(); + } + _onData(chunk) { + if (this._destroyed || !chunk || !chunk.length) { + return; + } + let data = (chunk || "").toString("binary"); + let lines = (this._remainder + data).split(/\r?\n/); + let lastline; + this._remainder = lines.pop(); + for (let i = 0, len = lines.length;i < len; i++) { + if (this._responseQueue.length) { + lastline = this._responseQueue[this._responseQueue.length - 1]; + if (/^\d+-/.test(lastline.split("\n").pop())) { + this._responseQueue[this._responseQueue.length - 1] += "\n" + lines[i]; + continue; + } + } + this._responseQueue.push(lines[i]); + } + if (this._responseQueue.length) { + lastline = this._responseQueue[this._responseQueue.length - 1]; + if (/^\d+-/.test(lastline.split("\n").pop())) { + return; + } + } + this._processResponse(); + } + _onError(err, type, data, command) { + clearTimeout(this._connectionTimeout); + clearTimeout(this._greetingTimeout); + if (this._destroyed) { + return; + } + err = this._formatError(err, type, data, command); + this.logger.error(data, err.message); + this.emit("error", err); + this.close(); + } + _formatError(message, type, response, command) { + let err; + if (/Error\]$/i.test(Object.prototype.toString.call(message))) { + err = message; + } else { + err = new Error(message); + } + if (type && type !== "Error") { + err.code = type; + } + if (response) { + err.response = response; + err.message += ": " + response; + } + let responseCode = typeof response === "string" && Number((response.match(/^\d+/) || [])[0]) || false; + if (responseCode) { + err.responseCode = responseCode; + } + if (command) { + err.command = command; + } + return err; + } + _onClose() { + let serverResponse = false; + if (this._remainder && this._remainder.trim()) { + if (this.options.debug || this.options.transactionLog) { + this.logger.debug({ + tnx: "server" + }, this._remainder.replace(/\r?\n$/, "")); + } + this.lastServerResponse = serverResponse = this._remainder.trim(); + } + this.logger.info({ + tnx: "network" + }, "Connection closed"); + if (this.upgrading && !this._destroyed) { + return this._onError(new Error("Connection closed unexpectedly"), "ETLS", serverResponse, "CONN"); + } else if (![this._actionGreeting, this.close].includes(this._responseActions[0]) && !this._destroyed) { + return this._onError(new Error("Connection closed unexpectedly"), "ECONNECTION", serverResponse, "CONN"); + } else if (/^[45]\d{2}\b/.test(serverResponse)) { + return this._onError(new Error("Connection closed unexpectedly"), "ECONNECTION", serverResponse, "CONN"); + } + this._destroy(); + } + _onEnd() { + if (this._socket && !this._socket.destroyed) { + this._socket.destroy(); + } + } + _onTimeout() { + return this._onError(new Error("Timeout"), "ETIMEDOUT", false, "CONN"); + } + _destroy() { + if (this._destroyed) { + return; + } + this._destroyed = true; + this.emit("end"); + } + _upgradeConnection(callback) { + this._socket.removeListener("data", this._onSocketData); + this._socket.removeListener("timeout", this._onSocketTimeout); + let socketPlain = this._socket; + let opts = { + socket: this._socket, + host: this.host + }; + Object.keys(this.options.tls || {}).forEach((key) => { + opts[key] = this.options.tls[key]; + }); + if (this.servername && !opts.servername) { + opts.servername = this.servername; + } + this.upgrading = true; + try { + this._socket = tls.connect(opts, () => { + this.secure = true; + this.upgrading = false; + this._socket.on("data", this._onSocketData); + socketPlain.removeListener("close", this._onSocketClose); + socketPlain.removeListener("end", this._onSocketEnd); + return callback(null, true); + }); + } catch (err) { + return callback(err); + } + this._socket.on("error", this._onSocketError); + this._socket.once("close", this._onSocketClose); + this._socket.once("end", this._onSocketEnd); + this._socket.setTimeout(this.options.socketTimeout || SOCKET_TIMEOUT); + this._socket.on("timeout", this._onSocketTimeout); + socketPlain.resume(); + } + _processResponse() { + if (!this._responseQueue.length) { + return false; + } + let str = this.lastServerResponse = (this._responseQueue.shift() || "").toString(); + if (/^\d+-/.test(str.split("\n").pop())) { + return; + } + if (this.options.debug || this.options.transactionLog) { + this.logger.debug({ + tnx: "server" + }, str.replace(/\r?\n$/, "")); + } + if (!str.trim()) { + setImmediate(() => this._processResponse()); + } + let action = this._responseActions.shift(); + if (typeof action === "function") { + action.call(this, str); + setImmediate(() => this._processResponse()); + } else { + return this._onError(new Error("Unexpected Response"), "EPROTOCOL", str, "CONN"); + } + } + _sendCommand(str, logStr) { + if (this._destroyed) { + return; + } + if (this._socket.destroyed) { + return this.close(); + } + if (this.options.debug || this.options.transactionLog) { + this.logger.debug({ + tnx: "client" + }, (logStr || str || "").toString().replace(/\r?\n$/, "")); + } + this._socket.write(Buffer.from(str + "\r\n", "utf-8")); + } + _setEnvelope(envelope, callback) { + let args = []; + let useSmtpUtf8 = false; + this._envelope = envelope || {}; + this._envelope.from = (this._envelope.from && this._envelope.from.address || this._envelope.from || "").toString().trim(); + this._envelope.to = [].concat(this._envelope.to || []).map((to) => (to && to.address || to || "").toString().trim()); + if (!this._envelope.to.length) { + return callback(this._formatError("No recipients defined", "EENVELOPE", false, "API")); + } + if (this._envelope.from && /[\r\n<>]/.test(this._envelope.from)) { + return callback(this._formatError("Invalid sender " + JSON.stringify(this._envelope.from), "EENVELOPE", false, "API")); + } + if (/[\x80-\uFFFF]/.test(this._envelope.from)) { + useSmtpUtf8 = true; + } + for (let i = 0, len = this._envelope.to.length;i < len; i++) { + if (!this._envelope.to[i] || /[\r\n<>]/.test(this._envelope.to[i])) { + return callback(this._formatError("Invalid recipient " + JSON.stringify(this._envelope.to[i]), "EENVELOPE", false, "API")); + } + if (/[\x80-\uFFFF]/.test(this._envelope.to[i])) { + useSmtpUtf8 = true; + } + } + this._envelope.rcptQueue = JSON.parse(JSON.stringify(this._envelope.to || [])); + this._envelope.rejected = []; + this._envelope.rejectedErrors = []; + this._envelope.accepted = []; + if (this._envelope.dsn) { + try { + this._envelope.dsn = this._setDsnEnvelope(this._envelope.dsn); + } catch (err) { + return callback(this._formatError("Invalid DSN " + err.message, "EENVELOPE", false, "API")); + } + } + this._responseActions.push((str) => { + this._actionMAIL(str, callback); + }); + if (useSmtpUtf8 && this._supportedExtensions.includes("SMTPUTF8")) { + args.push("SMTPUTF8"); + this._usingSmtpUtf8 = true; + } + if (this._envelope.use8BitMime && this._supportedExtensions.includes("8BITMIME")) { + args.push("BODY=8BITMIME"); + this._using8BitMime = true; + } + if (this._envelope.size && this._supportedExtensions.includes("SIZE")) { + args.push("SIZE=" + this._envelope.size); + } + if (this._envelope.dsn && this._supportedExtensions.includes("DSN")) { + if (this._envelope.dsn.ret) { + args.push("RET=" + shared.encodeXText(this._envelope.dsn.ret)); + } + if (this._envelope.dsn.envid) { + args.push("ENVID=" + shared.encodeXText(this._envelope.dsn.envid)); + } + } + this._sendCommand("MAIL FROM:<" + this._envelope.from + ">" + (args.length ? " " + args.join(" ") : "")); + } + _setDsnEnvelope(params) { + let ret = (params.ret || params.return || "").toString().toUpperCase() || null; + if (ret) { + switch (ret) { + case "HDRS": + case "HEADERS": + ret = "HDRS"; + break; + case "FULL": + case "BODY": + ret = "FULL"; + break; + } + } + if (ret && !["FULL", "HDRS"].includes(ret)) { + throw new Error("ret: " + JSON.stringify(ret)); + } + let envid = (params.envid || params.id || "").toString() || null; + let notify = params.notify || null; + if (notify) { + if (typeof notify === "string") { + notify = notify.split(","); + } + notify = notify.map((n) => n.trim().toUpperCase()); + let validNotify = ["NEVER", "SUCCESS", "FAILURE", "DELAY"]; + let invaliNotify = notify.filter((n) => !validNotify.includes(n)); + if (invaliNotify.length || notify.length > 1 && notify.includes("NEVER")) { + throw new Error("notify: " + JSON.stringify(notify.join(","))); + } + notify = notify.join(","); + } + let orcpt = (params.recipient || params.orcpt || "").toString() || null; + if (orcpt && orcpt.indexOf(";") < 0) { + orcpt = "rfc822;" + orcpt; + } + return { + ret, + envid, + notify, + orcpt + }; + } + _getDsnRcptToArgs() { + let args = []; + if (this._envelope.dsn && this._supportedExtensions.includes("DSN")) { + if (this._envelope.dsn.notify) { + args.push("NOTIFY=" + shared.encodeXText(this._envelope.dsn.notify)); + } + if (this._envelope.dsn.orcpt) { + args.push("ORCPT=" + shared.encodeXText(this._envelope.dsn.orcpt)); + } + } + return args.length ? " " + args.join(" ") : ""; + } + _createSendStream(callback) { + let dataStream = new DataStream; + let logStream; + if (this.options.lmtp) { + this._envelope.accepted.forEach((recipient, i) => { + let final = i === this._envelope.accepted.length - 1; + this._responseActions.push((str) => { + this._actionLMTPStream(recipient, final, str, callback); + }); + }); + } else { + this._responseActions.push((str) => { + this._actionSMTPStream(str, callback); + }); + } + dataStream.pipe(this._socket, { + end: false + }); + if (this.options.debug) { + logStream = new PassThrough; + logStream.on("readable", () => { + let chunk; + while (chunk = logStream.read()) { + this.logger.debug({ + tnx: "message" + }, chunk.toString("binary").replace(/\r?\n$/, "")); + } + }); + dataStream.pipe(logStream); + } + dataStream.once("end", () => { + this.logger.info({ + tnx: "message", + inByteCount: dataStream.inByteCount, + outByteCount: dataStream.outByteCount + }, "<%s bytes encoded mime message (source size %s bytes)>", dataStream.outByteCount, dataStream.inByteCount); + }); + return dataStream; + } + _actionGreeting(str) { + clearTimeout(this._greetingTimeout); + if (str.substr(0, 3) !== "220") { + this._onError(new Error("Invalid greeting. response=" + str), "EPROTOCOL", str, "CONN"); + return; + } + if (this.options.lmtp) { + this._responseActions.push(this._actionLHLO); + this._sendCommand("LHLO " + this.name); + } else { + this._responseActions.push(this._actionEHLO); + this._sendCommand("EHLO " + this.name); + } + } + _actionLHLO(str) { + if (str.charAt(0) !== "2") { + this._onError(new Error("Invalid LHLO. response=" + str), "EPROTOCOL", str, "LHLO"); + return; + } + this._actionEHLO(str); + } + _actionEHLO(str) { + let match; + if (str.substr(0, 3) === "421") { + this._onError(new Error("Server terminates connection. response=" + str), "ECONNECTION", str, "EHLO"); + return; + } + if (str.charAt(0) !== "2") { + if (this.options.requireTLS) { + this._onError(new Error("EHLO failed but HELO does not support required STARTTLS. response=" + str), "ECONNECTION", str, "EHLO"); + return; + } + this._responseActions.push(this._actionHELO); + this._sendCommand("HELO " + this.name); + return; + } + this._ehloLines = str.split(/\r?\n/).map((line) => line.replace(/^\d+[ -]/, "").trim()).filter((line) => line).slice(1); + if (!this.secure && !this.options.ignoreTLS && (/[ -]STARTTLS\b/im.test(str) || this.options.requireTLS)) { + this._sendCommand("STARTTLS"); + this._responseActions.push(this._actionSTARTTLS); + return; + } + if (/[ -]SMTPUTF8\b/im.test(str)) { + this._supportedExtensions.push("SMTPUTF8"); + } + if (/[ -]DSN\b/im.test(str)) { + this._supportedExtensions.push("DSN"); + } + if (/[ -]8BITMIME\b/im.test(str)) { + this._supportedExtensions.push("8BITMIME"); + } + if (/[ -]PIPELINING\b/im.test(str)) { + this._supportedExtensions.push("PIPELINING"); + } + if (/[ -]AUTH\b/i.test(str)) { + this.allowsAuth = true; + } + if (/[ -]AUTH(?:(\s+|=)[^\n]*\s+|\s+|=)PLAIN/i.test(str)) { + this._supportedAuth.push("PLAIN"); + } + if (/[ -]AUTH(?:(\s+|=)[^\n]*\s+|\s+|=)LOGIN/i.test(str)) { + this._supportedAuth.push("LOGIN"); + } + if (/[ -]AUTH(?:(\s+|=)[^\n]*\s+|\s+|=)CRAM-MD5/i.test(str)) { + this._supportedAuth.push("CRAM-MD5"); + } + if (/[ -]AUTH(?:(\s+|=)[^\n]*\s+|\s+|=)XOAUTH2/i.test(str)) { + this._supportedAuth.push("XOAUTH2"); + } + if (match = str.match(/[ -]SIZE(?:[ \t]+(\d+))?/im)) { + this._supportedExtensions.push("SIZE"); + this._maxAllowedSize = Number(match[1]) || 0; + } + this.emit("connect"); + } + _actionHELO(str) { + if (str.charAt(0) !== "2") { + this._onError(new Error("Invalid HELO. response=" + str), "EPROTOCOL", str, "HELO"); + return; + } + this.allowsAuth = true; + this.emit("connect"); + } + _actionSTARTTLS(str) { + if (str.charAt(0) !== "2") { + if (this.options.opportunisticTLS) { + this.logger.info({ + tnx: "smtp" + }, "Failed STARTTLS upgrade, continuing unencrypted"); + return this.emit("connect"); + } + this._onError(new Error("Error upgrading connection with STARTTLS"), "ETLS", str, "STARTTLS"); + return; + } + this._upgradeConnection((err, secured) => { + if (err) { + this._onError(new Error("Error initiating TLS - " + (err.message || err)), "ETLS", false, "STARTTLS"); + return; + } + this.logger.info({ + tnx: "smtp" + }, "Connection upgraded with STARTTLS"); + if (secured) { + if (this.options.lmtp) { + this._responseActions.push(this._actionLHLO); + this._sendCommand("LHLO " + this.name); + } else { + this._responseActions.push(this._actionEHLO); + this._sendCommand("EHLO " + this.name); + } + } else { + this.emit("connect"); + } + }); + } + _actionAUTH_LOGIN_USER(str, callback) { + if (!/^334[ -]/.test(str)) { + callback(this._formatError('Invalid login sequence while waiting for "334 VXNlcm5hbWU6"', "EAUTH", str, "AUTH LOGIN")); + return; + } + this._responseActions.push((str2) => { + this._actionAUTH_LOGIN_PASS(str2, callback); + }); + this._sendCommand(Buffer.from(this._auth.credentials.user + "", "utf-8").toString("base64")); + } + _actionAUTH_CRAM_MD5(str, callback) { + let challengeMatch = str.match(/^334\s+(.+)$/); + let challengeString = ""; + if (!challengeMatch) { + return callback(this._formatError("Invalid login sequence while waiting for server challenge string", "EAUTH", str, "AUTH CRAM-MD5")); + } else { + challengeString = challengeMatch[1]; + } + let base64decoded = Buffer.from(challengeString, "base64").toString("ascii"), hmacMD5 = crypto2.createHmac("md5", this._auth.credentials.pass); + hmacMD5.update(base64decoded); + let prepended = this._auth.credentials.user + " " + hmacMD5.digest("hex"); + this._responseActions.push((str2) => { + this._actionAUTH_CRAM_MD5_PASS(str2, callback); + }); + this._sendCommand(Buffer.from(prepended).toString("base64"), Buffer.from(this._auth.credentials.user + " /* secret */").toString("base64")); + } + _actionAUTH_CRAM_MD5_PASS(str, callback) { + if (!str.match(/^235\s+/)) { + return callback(this._formatError('Invalid login sequence while waiting for "235"', "EAUTH", str, "AUTH CRAM-MD5")); + } + this.logger.info({ + tnx: "smtp", + username: this._auth.user, + action: "authenticated", + method: this._authMethod + }, "User %s authenticated", JSON.stringify(this._auth.user)); + this.authenticated = true; + callback(null, true); + } + _actionAUTH_LOGIN_PASS(str, callback) { + if (!/^334[ -]/.test(str)) { + return callback(this._formatError('Invalid login sequence while waiting for "334 UGFzc3dvcmQ6"', "EAUTH", str, "AUTH LOGIN")); + } + this._responseActions.push((str2) => { + this._actionAUTHComplete(str2, callback); + }); + this._sendCommand(Buffer.from((this._auth.credentials.pass || "").toString(), "utf-8").toString("base64"), Buffer.from("/* secret */", "utf-8").toString("base64")); + } + _actionAUTHComplete(str, isRetry, callback) { + if (!callback && typeof isRetry === "function") { + callback = isRetry; + isRetry = false; + } + if (str.substr(0, 3) === "334") { + this._responseActions.push((str2) => { + if (isRetry || this._authMethod !== "XOAUTH2") { + this._actionAUTHComplete(str2, true, callback); + } else { + setImmediate(() => this._handleXOauth2Token(true, callback)); + } + }); + this._sendCommand(""); + return; + } + if (str.charAt(0) !== "2") { + this.logger.info({ + tnx: "smtp", + username: this._auth.user, + action: "authfail", + method: this._authMethod + }, "User %s failed to authenticate", JSON.stringify(this._auth.user)); + return callback(this._formatError("Invalid login", "EAUTH", str, "AUTH " + this._authMethod)); + } + this.logger.info({ + tnx: "smtp", + username: this._auth.user, + action: "authenticated", + method: this._authMethod + }, "User %s authenticated", JSON.stringify(this._auth.user)); + this.authenticated = true; + callback(null, true); + } + _actionMAIL(str, callback) { + let message, curRecipient; + if (Number(str.charAt(0)) !== 2) { + if (this._usingSmtpUtf8 && /^550 /.test(str) && /[\x80-\uFFFF]/.test(this._envelope.from)) { + message = "Internationalized mailbox name not allowed"; + } else { + message = "Mail command failed"; + } + return callback(this._formatError(message, "EENVELOPE", str, "MAIL FROM")); + } + if (!this._envelope.rcptQueue.length) { + return callback(this._formatError("Can't send mail - no recipients defined", "EENVELOPE", false, "API")); + } else { + this._recipientQueue = []; + if (this._supportedExtensions.includes("PIPELINING")) { + while (this._envelope.rcptQueue.length) { + curRecipient = this._envelope.rcptQueue.shift(); + this._recipientQueue.push(curRecipient); + this._responseActions.push((str2) => { + this._actionRCPT(str2, callback); + }); + this._sendCommand("RCPT TO:<" + curRecipient + ">" + this._getDsnRcptToArgs()); + } + } else { + curRecipient = this._envelope.rcptQueue.shift(); + this._recipientQueue.push(curRecipient); + this._responseActions.push((str2) => { + this._actionRCPT(str2, callback); + }); + this._sendCommand("RCPT TO:<" + curRecipient + ">" + this._getDsnRcptToArgs()); + } + } + } + _actionRCPT(str, callback) { + let message, err, curRecipient = this._recipientQueue.shift(); + if (Number(str.charAt(0)) !== 2) { + if (this._usingSmtpUtf8 && /^553 /.test(str) && /[\x80-\uFFFF]/.test(curRecipient)) { + message = "Internationalized mailbox name not allowed"; + } else { + message = "Recipient command failed"; + } + this._envelope.rejected.push(curRecipient); + err = this._formatError(message, "EENVELOPE", str, "RCPT TO"); + err.recipient = curRecipient; + this._envelope.rejectedErrors.push(err); + } else { + this._envelope.accepted.push(curRecipient); + } + if (!this._envelope.rcptQueue.length && !this._recipientQueue.length) { + if (this._envelope.rejected.length < this._envelope.to.length) { + this._responseActions.push((str2) => { + this._actionDATA(str2, callback); + }); + this._sendCommand("DATA"); + } else { + err = this._formatError("Can't send mail - all recipients were rejected", "EENVELOPE", str, "RCPT TO"); + err.rejected = this._envelope.rejected; + err.rejectedErrors = this._envelope.rejectedErrors; + return callback(err); + } + } else if (this._envelope.rcptQueue.length) { + curRecipient = this._envelope.rcptQueue.shift(); + this._recipientQueue.push(curRecipient); + this._responseActions.push((str2) => { + this._actionRCPT(str2, callback); + }); + this._sendCommand("RCPT TO:<" + curRecipient + ">" + this._getDsnRcptToArgs()); + } + } + _actionDATA(str, callback) { + if (!/^[23]/.test(str)) { + return callback(this._formatError("Data command failed", "EENVELOPE", str, "DATA")); + } + let response = { + accepted: this._envelope.accepted, + rejected: this._envelope.rejected + }; + if (this._ehloLines && this._ehloLines.length) { + response.ehlo = this._ehloLines; + } + if (this._envelope.rejectedErrors.length) { + response.rejectedErrors = this._envelope.rejectedErrors; + } + callback(null, response); + } + _actionSMTPStream(str, callback) { + if (Number(str.charAt(0)) !== 2) { + return callback(this._formatError("Message failed", "EMESSAGE", str, "DATA")); + } else { + return callback(null, str); + } + } + _actionLMTPStream(recipient, final, str, callback) { + let err; + if (Number(str.charAt(0)) !== 2) { + err = this._formatError("Message failed for recipient " + recipient, "EMESSAGE", str, "DATA"); + err.recipient = recipient; + this._envelope.rejected.push(recipient); + this._envelope.rejectedErrors.push(err); + for (let i = 0, len = this._envelope.accepted.length;i < len; i++) { + if (this._envelope.accepted[i] === recipient) { + this._envelope.accepted.splice(i, 1); + } + } + } + if (final) { + return callback(null, str); + } + } + _handleXOauth2Token(isRetry, callback) { + this._auth.oauth2.getToken(isRetry, (err, accessToken) => { + if (err) { + this.logger.info({ + tnx: "smtp", + username: this._auth.user, + action: "authfail", + method: this._authMethod + }, "User %s failed to authenticate", JSON.stringify(this._auth.user)); + return callback(this._formatError(err, "EAUTH", false, "AUTH XOAUTH2")); + } + this._responseActions.push((str) => { + this._actionAUTHComplete(str, isRetry, callback); + }); + this._sendCommand("AUTH XOAUTH2 " + this._auth.oauth2.buildXOAuth2Token(accessToken), "AUTH XOAUTH2 " + this._auth.oauth2.buildXOAuth2Token("/* secret */")); + }); + } + _isDestroyedMessage(command) { + if (this._destroyed) { + return "Cannot " + command + " - smtp connection is already destroyed."; + } + if (this._socket) { + if (this._socket.destroyed) { + return "Cannot " + command + " - smtp connection socket is already destroyed."; + } + if (!this._socket.writable) { + return "Cannot " + command + " - smtp connection socket is already half-closed."; + } + } + } + _getHostname() { + let defaultHostname; + try { + defaultHostname = os.hostname() || ""; + } catch (err) { + defaultHostname = "localhost"; + } + if (!defaultHostname || defaultHostname.indexOf(".") < 0) { + defaultHostname = "[127.0.0.1]"; + } + if (defaultHostname.match(/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/)) { + defaultHostname = "[" + defaultHostname + "]"; + } + return defaultHostname; + } + } + module.exports = SMTPConnection; +}); + +// node_modules/nodemailer/lib/xoauth2/index.js +var require_xoauth2 = __commonJS((exports, module) => { + var Stream = __require("stream").Stream; + var nmfetch = require_fetch(); + var crypto2 = __require("crypto"); + var shared = require_shared(); + + class XOAuth2 extends Stream { + constructor(options, logger) { + super(); + this.options = options || {}; + if (options && options.serviceClient) { + if (!options.privateKey || !options.user) { + setImmediate(() => this.emit("error", new Error('Options "privateKey" and "user" are required for service account!'))); + return; + } + let serviceRequestTimeout = Math.min(Math.max(Number(this.options.serviceRequestTimeout) || 0, 0), 3600); + this.options.serviceRequestTimeout = serviceRequestTimeout || 5 * 60; + } + this.logger = shared.getLogger({ + logger + }, { + component: this.options.component || "OAuth2" + }); + this.provisionCallback = typeof this.options.provisionCallback === "function" ? this.options.provisionCallback : false; + this.options.accessUrl = this.options.accessUrl || "https://accounts.google.com/o/oauth2/token"; + this.options.customHeaders = this.options.customHeaders || {}; + this.options.customParams = this.options.customParams || {}; + this.accessToken = this.options.accessToken || false; + if (this.options.expires && Number(this.options.expires)) { + this.expires = this.options.expires; + } else { + let timeout = Math.max(Number(this.options.timeout) || 0, 0); + this.expires = timeout && Date.now() + timeout * 1000 || 0; + } + } + getToken(renew, callback) { + if (!renew && this.accessToken && (!this.expires || this.expires > Date.now())) { + return callback(null, this.accessToken); + } + let generateCallback = (...args) => { + if (args[0]) { + this.logger.error({ + err: args[0], + tnx: "OAUTH2", + user: this.options.user, + action: "renew" + }, "Failed generating new Access Token for %s", this.options.user); + } else { + this.logger.info({ + tnx: "OAUTH2", + user: this.options.user, + action: "renew" + }, "Generated new Access Token for %s", this.options.user); + } + callback(...args); + }; + if (this.provisionCallback) { + this.provisionCallback(this.options.user, !!renew, (err, accessToken, expires) => { + if (!err && accessToken) { + this.accessToken = accessToken; + this.expires = expires || 0; + } + generateCallback(err, accessToken); + }); + } else { + this.generateToken(generateCallback); + } + } + updateToken(accessToken, timeout) { + this.accessToken = accessToken; + timeout = Math.max(Number(timeout) || 0, 0); + this.expires = timeout && Date.now() + timeout * 1000 || 0; + this.emit("token", { + user: this.options.user, + accessToken: accessToken || "", + expires: this.expires + }); + } + generateToken(callback) { + let urlOptions; + let loggedUrlOptions; + if (this.options.serviceClient) { + let iat = Math.floor(Date.now() / 1000); + let tokenData = { + iss: this.options.serviceClient, + scope: this.options.scope || "https://mail.google.com/", + sub: this.options.user, + aud: this.options.accessUrl, + iat, + exp: iat + this.options.serviceRequestTimeout + }; + let token; + try { + token = this.jwtSignRS256(tokenData); + } catch (err) { + return callback(new Error("Can't generate token. Check your auth options")); + } + urlOptions = { + grant_type: "urn:ietf:params:oauth:grant-type:jwt-bearer", + assertion: token + }; + loggedUrlOptions = { + grant_type: "urn:ietf:params:oauth:grant-type:jwt-bearer", + assertion: tokenData + }; + } else { + if (!this.options.refreshToken) { + return callback(new Error("Can't create new access token for user")); + } + urlOptions = { + client_id: this.options.clientId || "", + client_secret: this.options.clientSecret || "", + refresh_token: this.options.refreshToken, + grant_type: "refresh_token" + }; + loggedUrlOptions = { + client_id: this.options.clientId || "", + client_secret: (this.options.clientSecret || "").substr(0, 6) + "...", + refresh_token: (this.options.refreshToken || "").substr(0, 6) + "...", + grant_type: "refresh_token" + }; + } + Object.keys(this.options.customParams).forEach((key) => { + urlOptions[key] = this.options.customParams[key]; + loggedUrlOptions[key] = this.options.customParams[key]; + }); + this.logger.debug({ + tnx: "OAUTH2", + user: this.options.user, + action: "generate" + }, "Requesting token using: %s", JSON.stringify(loggedUrlOptions)); + this.postRequest(this.options.accessUrl, urlOptions, this.options, (error, body) => { + let data; + if (error) { + return callback(error); + } + try { + data = JSON.parse(body.toString()); + } catch (E) { + return callback(E); + } + if (!data || typeof data !== "object") { + this.logger.debug({ + tnx: "OAUTH2", + user: this.options.user, + action: "post" + }, "Response: %s", (body || "").toString()); + return callback(new Error("Invalid authentication response")); + } + let logData = {}; + Object.keys(data).forEach((key) => { + if (key !== "access_token") { + logData[key] = data[key]; + } else { + logData[key] = (data[key] || "").toString().substr(0, 6) + "..."; + } + }); + this.logger.debug({ + tnx: "OAUTH2", + user: this.options.user, + action: "post" + }, "Response: %s", JSON.stringify(logData)); + if (data.error) { + let errorMessage = data.error; + if (data.error_description) { + errorMessage += ": " + data.error_description; + } + if (data.error_uri) { + errorMessage += " (" + data.error_uri + ")"; + } + return callback(new Error(errorMessage)); + } + if (data.access_token) { + this.updateToken(data.access_token, data.expires_in); + return callback(null, this.accessToken); + } + return callback(new Error("No access token")); + }); + } + buildXOAuth2Token(accessToken) { + let authData = ["user=" + (this.options.user || ""), "auth=Bearer " + (accessToken || this.accessToken), "", ""]; + return Buffer.from(authData.join("\x01"), "utf-8").toString("base64"); + } + postRequest(url, payload, params, callback) { + let returned = false; + let chunks = []; + let chunklen = 0; + let req = nmfetch(url, { + method: "post", + headers: params.customHeaders, + body: payload, + allowErrorResponse: true + }); + req.on("readable", () => { + let chunk; + while ((chunk = req.read()) !== null) { + chunks.push(chunk); + chunklen += chunk.length; + } + }); + req.once("error", (err) => { + if (returned) { + return; + } + returned = true; + return callback(err); + }); + req.once("end", () => { + if (returned) { + return; + } + returned = true; + return callback(null, Buffer.concat(chunks, chunklen)); + }); + } + toBase64URL(data) { + if (typeof data === "string") { + data = Buffer.from(data); + } + return data.toString("base64").replace(/[=]+/g, "").replace(/\+/g, "-").replace(/\//g, "_"); + } + jwtSignRS256(payload) { + payload = ['{"alg":"RS256","typ":"JWT"}', JSON.stringify(payload)].map((val) => this.toBase64URL(val)).join("."); + let signature = crypto2.createSign("RSA-SHA256").update(payload).sign(this.options.privateKey); + return payload + "." + this.toBase64URL(signature); + } + } + module.exports = XOAuth2; +}); + +// node_modules/nodemailer/lib/smtp-pool/pool-resource.js +var require_pool_resource = __commonJS((exports, module) => { + var SMTPConnection = require_smtp_connection(); + var assign = require_shared().assign; + var XOAuth2 = require_xoauth2(); + var EventEmitter = __require("events"); + + class PoolResource extends EventEmitter { + constructor(pool) { + super(); + this.pool = pool; + this.options = pool.options; + this.logger = this.pool.logger; + if (this.options.auth) { + switch ((this.options.auth.type || "").toString().toUpperCase()) { + case "OAUTH2": { + let oauth2 = new XOAuth2(this.options.auth, this.logger); + oauth2.provisionCallback = this.pool.mailer && this.pool.mailer.get("oauth2_provision_cb") || oauth2.provisionCallback; + this.auth = { + type: "OAUTH2", + user: this.options.auth.user, + oauth2, + method: "XOAUTH2" + }; + oauth2.on("token", (token) => this.pool.mailer.emit("token", token)); + oauth2.on("error", (err) => this.emit("error", err)); + break; + } + default: + if (!this.options.auth.user && !this.options.auth.pass) { + break; + } + this.auth = { + type: (this.options.auth.type || "").toString().toUpperCase() || "LOGIN", + user: this.options.auth.user, + credentials: { + user: this.options.auth.user || "", + pass: this.options.auth.pass, + options: this.options.auth.options + }, + method: (this.options.auth.method || "").trim().toUpperCase() || this.options.authMethod || false + }; + } + } + this._connection = false; + this._connected = false; + this.messages = 0; + this.available = true; + } + connect(callback) { + this.pool.getSocket(this.options, (err, socketOptions) => { + if (err) { + return callback(err); + } + let returned = false; + let options = this.options; + if (socketOptions && socketOptions.connection) { + this.logger.info({ + tnx: "proxy", + remoteAddress: socketOptions.connection.remoteAddress, + remotePort: socketOptions.connection.remotePort, + destHost: options.host || "", + destPort: options.port || "", + action: "connected" + }, "Using proxied socket from %s:%s to %s:%s", socketOptions.connection.remoteAddress, socketOptions.connection.remotePort, options.host || "", options.port || ""); + options = assign(false, options); + Object.keys(socketOptions).forEach((key) => { + options[key] = socketOptions[key]; + }); + } + this.connection = new SMTPConnection(options); + this.connection.once("error", (err2) => { + this.emit("error", err2); + if (returned) { + return; + } + returned = true; + return callback(err2); + }); + this.connection.once("end", () => { + this.close(); + if (returned) { + return; + } + returned = true; + let timer = setTimeout(() => { + if (returned) { + return; + } + let err2 = new Error("Unexpected socket close"); + if (this.connection && this.connection._socket && this.connection._socket.upgrading) { + err2.code = "ETLS"; + } + callback(err2); + }, 1000); + try { + timer.unref(); + } catch (E) { + } + }); + this.connection.connect(() => { + if (returned) { + return; + } + if (this.auth && (this.connection.allowsAuth || options.forceAuth)) { + this.connection.login(this.auth, (err2) => { + if (returned) { + return; + } + returned = true; + if (err2) { + this.connection.close(); + this.emit("error", err2); + return callback(err2); + } + this._connected = true; + callback(null, true); + }); + } else { + returned = true; + this._connected = true; + return callback(null, true); + } + }); + }); + } + send(mail, callback) { + if (!this._connected) { + return this.connect((err) => { + if (err) { + return callback(err); + } + return this.send(mail, callback); + }); + } + let envelope = mail.message.getEnvelope(); + let messageId = mail.message.messageId(); + let recipients = [].concat(envelope.to || []); + if (recipients.length > 3) { + recipients.push("...and " + recipients.splice(2).length + " more"); + } + this.logger.info({ + tnx: "send", + messageId, + cid: this.id + }, "Sending message %s using #%s to <%s>", messageId, this.id, recipients.join(", ")); + if (mail.data.dsn) { + envelope.dsn = mail.data.dsn; + } + this.connection.send(envelope, mail.message.createReadStream(), (err, info) => { + this.messages++; + if (err) { + this.connection.close(); + this.emit("error", err); + return callback(err); + } + info.envelope = { + from: envelope.from, + to: envelope.to + }; + info.messageId = messageId; + setImmediate(() => { + let err2; + if (this.messages >= this.options.maxMessages) { + err2 = new Error("Resource exhausted"); + err2.code = "EMAXLIMIT"; + this.connection.close(); + this.emit("error", err2); + } else { + this.pool._checkRateLimit(() => { + this.available = true; + this.emit("available"); + }); + } + }); + callback(null, info); + }); + } + close() { + this._connected = false; + if (this.auth && this.auth.oauth2) { + this.auth.oauth2.removeAllListeners(); + } + if (this.connection) { + this.connection.close(); + } + this.emit("close"); + } + } + module.exports = PoolResource; +}); + +// node_modules/nodemailer/lib/well-known/services.json +var require_services = __commonJS((exports, module) => { + module.exports = { + "1und1": { + host: "smtp.1und1.de", + port: 465, + secure: true, + authMethod: "LOGIN" + }, + Aliyun: { + domains: ["aliyun.com"], + host: "smtp.aliyun.com", + port: 465, + secure: true + }, + AOL: { + domains: ["aol.com"], + host: "smtp.aol.com", + port: 587 + }, + Bluewin: { + host: "smtpauths.bluewin.ch", + domains: ["bluewin.ch"], + port: 465 + }, + DebugMail: { + host: "debugmail.io", + port: 25 + }, + DynectEmail: { + aliases: ["Dynect"], + host: "smtp.dynect.net", + port: 25 + }, + Ethereal: { + aliases: ["ethereal.email"], + host: "smtp.ethereal.email", + port: 587 + }, + FastMail: { + domains: ["fastmail.fm"], + host: "smtp.fastmail.com", + port: 465, + secure: true + }, + "Forward Email": { + aliases: ["FE", "ForwardEmail"], + domains: ["forwardemail.net"], + host: "smtp.forwardemail.net", + port: 465, + secure: true + }, + "Feishu Mail": { + aliases: ["Feishu", "FeishuMail"], + domains: ["www.feishu.cn"], + host: "smtp.feishu.cn", + port: 465, + secure: true + }, + GandiMail: { + aliases: ["Gandi", "Gandi Mail"], + host: "mail.gandi.net", + port: 587 + }, + Gmail: { + aliases: ["Google Mail"], + domains: ["gmail.com", "googlemail.com"], + host: "smtp.gmail.com", + port: 465, + secure: true + }, + Godaddy: { + host: "smtpout.secureserver.net", + port: 25 + }, + GodaddyAsia: { + host: "smtp.asia.secureserver.net", + port: 25 + }, + GodaddyEurope: { + host: "smtp.europe.secureserver.net", + port: 25 + }, + "hot.ee": { + host: "mail.hot.ee" + }, + Hotmail: { + aliases: ["Outlook", "Outlook.com", "Hotmail.com"], + domains: ["hotmail.com", "outlook.com"], + host: "smtp-mail.outlook.com", + port: 587 + }, + iCloud: { + aliases: ["Me", "Mac"], + domains: ["me.com", "mac.com"], + host: "smtp.mail.me.com", + port: 587 + }, + Infomaniak: { + host: "mail.infomaniak.com", + domains: ["ik.me", "ikmail.com", "etik.com"], + port: 587 + }, + Loopia: { + host: "mailcluster.loopia.se", + port: 465 + }, + "mail.ee": { + host: "smtp.mail.ee" + }, + "Mail.ru": { + host: "smtp.mail.ru", + port: 465, + secure: true + }, + "Mailcatch.app": { + host: "sandbox-smtp.mailcatch.app", + port: 2525 + }, + Maildev: { + port: 1025, + ignoreTLS: true + }, + Mailgun: { + host: "smtp.mailgun.org", + port: 465, + secure: true + }, + Mailjet: { + host: "in.mailjet.com", + port: 587 + }, + Mailosaur: { + host: "mailosaur.io", + port: 25 + }, + Mailtrap: { + host: "live.smtp.mailtrap.io", + port: 587 + }, + Mandrill: { + host: "smtp.mandrillapp.com", + port: 587 + }, + Naver: { + host: "smtp.naver.com", + port: 587 + }, + One: { + host: "send.one.com", + port: 465, + secure: true + }, + OpenMailBox: { + aliases: ["OMB", "openmailbox.org"], + host: "smtp.openmailbox.org", + port: 465, + secure: true + }, + Outlook365: { + host: "smtp.office365.com", + port: 587, + secure: false + }, + OhMySMTP: { + host: "smtp.ohmysmtp.com", + port: 587, + secure: false + }, + Postmark: { + aliases: ["PostmarkApp"], + host: "smtp.postmarkapp.com", + port: 2525 + }, + "qiye.aliyun": { + host: "smtp.mxhichina.com", + port: "465", + secure: true + }, + QQ: { + domains: ["qq.com"], + host: "smtp.qq.com", + port: 465, + secure: true + }, + QQex: { + aliases: ["QQ Enterprise"], + domains: ["exmail.qq.com"], + host: "smtp.exmail.qq.com", + port: 465, + secure: true + }, + SendCloud: { + host: "smtp.sendcloud.net", + port: 2525 + }, + SendGrid: { + host: "smtp.sendgrid.net", + port: 587 + }, + SendinBlue: { + aliases: ["Brevo"], + host: "smtp-relay.brevo.com", + port: 587 + }, + SendPulse: { + host: "smtp-pulse.com", + port: 465, + secure: true + }, + SES: { + host: "email-smtp.us-east-1.amazonaws.com", + port: 465, + secure: true + }, + "SES-US-EAST-1": { + host: "email-smtp.us-east-1.amazonaws.com", + port: 465, + secure: true + }, + "SES-US-WEST-2": { + host: "email-smtp.us-west-2.amazonaws.com", + port: 465, + secure: true + }, + "SES-EU-WEST-1": { + host: "email-smtp.eu-west-1.amazonaws.com", + port: 465, + secure: true + }, + "SES-AP-SOUTH-1": { + host: "email-smtp.ap-south-1.amazonaws.com", + port: 465, + secure: true + }, + "SES-AP-NORTHEAST-1": { + host: "email-smtp.ap-northeast-1.amazonaws.com", + port: 465, + secure: true + }, + "SES-AP-NORTHEAST-2": { + host: "email-smtp.ap-northeast-2.amazonaws.com", + port: 465, + secure: true + }, + "SES-AP-NORTHEAST-3": { + host: "email-smtp.ap-northeast-3.amazonaws.com", + port: 465, + secure: true + }, + "SES-AP-SOUTHEAST-1": { + host: "email-smtp.ap-southeast-1.amazonaws.com", + port: 465, + secure: true + }, + "SES-AP-SOUTHEAST-2": { + host: "email-smtp.ap-southeast-2.amazonaws.com", + port: 465, + secure: true + }, + Sparkpost: { + aliases: ["SparkPost", "SparkPost Mail"], + domains: ["sparkpost.com"], + host: "smtp.sparkpostmail.com", + port: 587, + secure: false + }, + Tipimail: { + host: "smtp.tipimail.com", + port: 587 + }, + Yahoo: { + domains: ["yahoo.com"], + host: "smtp.mail.yahoo.com", + port: 465, + secure: true + }, + Yandex: { + domains: ["yandex.ru"], + host: "smtp.yandex.ru", + port: 465, + secure: true + }, + Zoho: { + host: "smtp.zoho.com", + port: 465, + secure: true, + authMethod: "LOGIN" + }, + "126": { + host: "smtp.126.com", + port: 465, + secure: true + }, + "163": { + host: "smtp.163.com", + port: 465, + secure: true + } + }; +}); + +// node_modules/nodemailer/lib/well-known/index.js +var require_well_known = __commonJS((exports, module) => { + var services = require_services(); + var normalized = {}; + Object.keys(services).forEach((key) => { + let service = services[key]; + normalized[normalizeKey(key)] = normalizeService(service); + [].concat(service.aliases || []).forEach((alias) => { + normalized[normalizeKey(alias)] = normalizeService(service); + }); + [].concat(service.domains || []).forEach((domain) => { + normalized[normalizeKey(domain)] = normalizeService(service); + }); + }); + function normalizeKey(key) { + return key.replace(/[^a-zA-Z0-9.-]/g, "").toLowerCase(); + } + function normalizeService(service) { + let filter = ["domains", "aliases"]; + let response = {}; + Object.keys(service).forEach((key) => { + if (filter.indexOf(key) < 0) { + response[key] = service[key]; + } + }); + return response; + } + module.exports = function(key) { + key = normalizeKey(key.split("@").pop()); + return normalized[key] || false; + }; +}); + +// node_modules/nodemailer/lib/smtp-pool/index.js +var require_smtp_pool = __commonJS((exports, module) => { + var EventEmitter = __require("events"); + var PoolResource = require_pool_resource(); + var SMTPConnection = require_smtp_connection(); + var wellKnown = require_well_known(); + var shared = require_shared(); + var packageData = require_package2(); + + class SMTPPool extends EventEmitter { + constructor(options) { + super(); + options = options || {}; + if (typeof options === "string") { + options = { + url: options + }; + } + let urlData; + let service = options.service; + if (typeof options.getSocket === "function") { + this.getSocket = options.getSocket; + } + if (options.url) { + urlData = shared.parseConnectionUrl(options.url); + service = service || urlData.service; + } + this.options = shared.assign(false, options, urlData, service && wellKnown(service)); + this.options.maxConnections = this.options.maxConnections || 5; + this.options.maxMessages = this.options.maxMessages || 100; + this.logger = shared.getLogger(this.options, { + component: this.options.component || "smtp-pool" + }); + let connection2 = new SMTPConnection(this.options); + this.name = "SMTP (pool)"; + this.version = packageData.version + "[client:" + connection2.version + "]"; + this._rateLimit = { + counter: 0, + timeout: null, + waiting: [], + checkpoint: false, + delta: Number(this.options.rateDelta) || 1000, + limit: Number(this.options.rateLimit) || 0 + }; + this._closed = false; + this._queue = []; + this._connections = []; + this._connectionCounter = 0; + this.idling = true; + setImmediate(() => { + if (this.idling) { + this.emit("idle"); + } + }); + } + getSocket(options, callback) { + return setImmediate(() => callback(null, false)); + } + send(mail, callback) { + if (this._closed) { + return false; + } + this._queue.push({ + mail, + requeueAttempts: 0, + callback + }); + if (this.idling && this._queue.length >= this.options.maxConnections) { + this.idling = false; + } + setImmediate(() => this._processMessages()); + return true; + } + close() { + let connection2; + let len = this._connections.length; + this._closed = true; + clearTimeout(this._rateLimit.timeout); + if (!len && !this._queue.length) { + return; + } + for (let i = len - 1;i >= 0; i--) { + if (this._connections[i] && this._connections[i].available) { + connection2 = this._connections[i]; + connection2.close(); + this.logger.info({ + tnx: "connection", + cid: connection2.id, + action: "removed" + }, "Connection #%s removed", connection2.id); + } + } + if (len && !this._connections.length) { + this.logger.debug({ + tnx: "connection" + }, "All connections removed"); + } + if (!this._queue.length) { + return; + } + let invokeCallbacks = () => { + if (!this._queue.length) { + this.logger.debug({ + tnx: "connection" + }, "Pending queue entries cleared"); + return; + } + let entry = this._queue.shift(); + if (entry && typeof entry.callback === "function") { + try { + entry.callback(new Error("Connection pool was closed")); + } catch (E) { + this.logger.error({ + err: E, + tnx: "callback", + cid: connection2.id + }, "Callback error for #%s: %s", connection2.id, E.message); + } + } + setImmediate(invokeCallbacks); + }; + setImmediate(invokeCallbacks); + } + _processMessages() { + let connection2; + let i, len; + if (this._closed) { + return; + } + if (!this._queue.length) { + if (!this.idling) { + this.idling = true; + this.emit("idle"); + } + return; + } + for (i = 0, len = this._connections.length;i < len; i++) { + if (this._connections[i].available) { + connection2 = this._connections[i]; + break; + } + } + if (!connection2 && this._connections.length < this.options.maxConnections) { + connection2 = this._createConnection(); + } + if (!connection2) { + this.idling = false; + return; + } + if (!this.idling && this._queue.length < this.options.maxConnections) { + this.idling = true; + this.emit("idle"); + } + let entry = connection2.queueEntry = this._queue.shift(); + entry.messageId = (connection2.queueEntry.mail.message.getHeader("message-id") || "").replace(/[<>\s]/g, ""); + connection2.available = false; + this.logger.debug({ + tnx: "pool", + cid: connection2.id, + messageId: entry.messageId, + action: "assign" + }, "Assigned message <%s> to #%s (%s)", entry.messageId, connection2.id, connection2.messages + 1); + if (this._rateLimit.limit) { + this._rateLimit.counter++; + if (!this._rateLimit.checkpoint) { + this._rateLimit.checkpoint = Date.now(); + } + } + connection2.send(entry.mail, (err, info) => { + if (entry === connection2.queueEntry) { + try { + entry.callback(err, info); + } catch (E) { + this.logger.error({ + err: E, + tnx: "callback", + cid: connection2.id + }, "Callback error for #%s: %s", connection2.id, E.message); + } + connection2.queueEntry = false; + } + }); + } + _createConnection() { + let connection2 = new PoolResource(this); + connection2.id = ++this._connectionCounter; + this.logger.info({ + tnx: "pool", + cid: connection2.id, + action: "conection" + }, "Created new pool resource #%s", connection2.id); + connection2.on("available", () => { + this.logger.debug({ + tnx: "connection", + cid: connection2.id, + action: "available" + }, "Connection #%s became available", connection2.id); + if (this._closed) { + this.close(); + } else { + this._processMessages(); + } + }); + connection2.once("error", (err) => { + if (err.code !== "EMAXLIMIT") { + this.logger.error({ + err, + tnx: "pool", + cid: connection2.id + }, "Pool Error for #%s: %s", connection2.id, err.message); + } else { + this.logger.debug({ + tnx: "pool", + cid: connection2.id, + action: "maxlimit" + }, "Max messages limit exchausted for #%s", connection2.id); + } + if (connection2.queueEntry) { + try { + connection2.queueEntry.callback(err); + } catch (E) { + this.logger.error({ + err: E, + tnx: "callback", + cid: connection2.id + }, "Callback error for #%s: %s", connection2.id, E.message); + } + connection2.queueEntry = false; + } + this._removeConnection(connection2); + this._continueProcessing(); + }); + connection2.once("close", () => { + this.logger.info({ + tnx: "connection", + cid: connection2.id, + action: "closed" + }, "Connection #%s was closed", connection2.id); + this._removeConnection(connection2); + if (connection2.queueEntry) { + setTimeout(() => { + if (connection2.queueEntry) { + if (this._shouldRequeuOnConnectionClose(connection2.queueEntry)) { + this._requeueEntryOnConnectionClose(connection2); + } else { + this._failDeliveryOnConnectionClose(connection2); + } + } + this._continueProcessing(); + }, 50); + } else { + this._continueProcessing(); + } + }); + this._connections.push(connection2); + return connection2; + } + _shouldRequeuOnConnectionClose(queueEntry) { + if (this.options.maxRequeues === undefined || this.options.maxRequeues < 0) { + return true; + } + return queueEntry.requeueAttempts < this.options.maxRequeues; + } + _failDeliveryOnConnectionClose(connection2) { + if (connection2.queueEntry && connection2.queueEntry.callback) { + try { + connection2.queueEntry.callback(new Error("Reached maximum number of retries after connection was closed")); + } catch (E) { + this.logger.error({ + err: E, + tnx: "callback", + messageId: connection2.queueEntry.messageId, + cid: connection2.id + }, "Callback error for #%s: %s", connection2.id, E.message); + } + connection2.queueEntry = false; + } + } + _requeueEntryOnConnectionClose(connection2) { + connection2.queueEntry.requeueAttempts = connection2.queueEntry.requeueAttempts + 1; + this.logger.debug({ + tnx: "pool", + cid: connection2.id, + messageId: connection2.queueEntry.messageId, + action: "requeue" + }, "Re-queued message <%s> for #%s. Attempt: #%s", connection2.queueEntry.messageId, connection2.id, connection2.queueEntry.requeueAttempts); + this._queue.unshift(connection2.queueEntry); + connection2.queueEntry = false; + } + _continueProcessing() { + if (this._closed) { + this.close(); + } else { + setTimeout(() => this._processMessages(), 100); + } + } + _removeConnection(connection2) { + let index = this._connections.indexOf(connection2); + if (index !== -1) { + this._connections.splice(index, 1); + } + } + _checkRateLimit(callback) { + if (!this._rateLimit.limit) { + return callback(); + } + let now = Date.now(); + if (this._rateLimit.counter < this._rateLimit.limit) { + return callback(); + } + this._rateLimit.waiting.push(callback); + if (this._rateLimit.checkpoint <= now - this._rateLimit.delta) { + return this._clearRateLimit(); + } else if (!this._rateLimit.timeout) { + this._rateLimit.timeout = setTimeout(() => this._clearRateLimit(), this._rateLimit.delta - (now - this._rateLimit.checkpoint)); + this._rateLimit.checkpoint = now; + } + } + _clearRateLimit() { + clearTimeout(this._rateLimit.timeout); + this._rateLimit.timeout = null; + this._rateLimit.counter = 0; + this._rateLimit.checkpoint = false; + while (this._rateLimit.waiting.length) { + let cb = this._rateLimit.waiting.shift(); + setImmediate(cb); + } + } + isIdle() { + return this.idling; + } + verify(callback) { + let promise; + if (!callback) { + promise = new Promise((resolve, reject) => { + callback = shared.callbackPromise(resolve, reject); + }); + } + let auth = new PoolResource(this).auth; + this.getSocket(this.options, (err, socketOptions) => { + if (err) { + return callback(err); + } + let options = this.options; + if (socketOptions && socketOptions.connection) { + this.logger.info({ + tnx: "proxy", + remoteAddress: socketOptions.connection.remoteAddress, + remotePort: socketOptions.connection.remotePort, + destHost: options.host || "", + destPort: options.port || "", + action: "connected" + }, "Using proxied socket from %s:%s to %s:%s", socketOptions.connection.remoteAddress, socketOptions.connection.remotePort, options.host || "", options.port || ""); + options = shared.assign(false, options); + Object.keys(socketOptions).forEach((key) => { + options[key] = socketOptions[key]; + }); + } + let connection2 = new SMTPConnection(options); + let returned = false; + connection2.once("error", (err2) => { + if (returned) { + return; + } + returned = true; + connection2.close(); + return callback(err2); + }); + connection2.once("end", () => { + if (returned) { + return; + } + returned = true; + return callback(new Error("Connection closed")); + }); + let finalize = () => { + if (returned) { + return; + } + returned = true; + connection2.quit(); + return callback(null, true); + }; + connection2.connect(() => { + if (returned) { + return; + } + if (auth && (connection2.allowsAuth || options.forceAuth)) { + connection2.login(auth, (err2) => { + if (returned) { + return; + } + if (err2) { + returned = true; + connection2.close(); + return callback(err2); + } + finalize(); + }); + } else if (!auth && connection2.allowsAuth && options.forceAuth) { + let err2 = new Error("Authentication info was not provided"); + err2.code = "NoAuth"; + returned = true; + connection2.close(); + return callback(err2); + } else { + finalize(); + } + }); + }); + return promise; + } + } + module.exports = SMTPPool; +}); + +// node_modules/nodemailer/lib/smtp-transport/index.js +var require_smtp_transport = __commonJS((exports, module) => { + var EventEmitter = __require("events"); + var SMTPConnection = require_smtp_connection(); + var wellKnown = require_well_known(); + var shared = require_shared(); + var XOAuth2 = require_xoauth2(); + var packageData = require_package2(); + + class SMTPTransport extends EventEmitter { + constructor(options) { + super(); + options = options || {}; + if (typeof options === "string") { + options = { + url: options + }; + } + let urlData; + let service = options.service; + if (typeof options.getSocket === "function") { + this.getSocket = options.getSocket; + } + if (options.url) { + urlData = shared.parseConnectionUrl(options.url); + service = service || urlData.service; + } + this.options = shared.assign(false, options, urlData, service && wellKnown(service)); + this.logger = shared.getLogger(this.options, { + component: this.options.component || "smtp-transport" + }); + let connection2 = new SMTPConnection(this.options); + this.name = "SMTP"; + this.version = packageData.version + "[client:" + connection2.version + "]"; + if (this.options.auth) { + this.auth = this.getAuth({}); + } + } + getSocket(options, callback) { + return setImmediate(() => callback(null, false)); + } + getAuth(authOpts) { + if (!authOpts) { + return this.auth; + } + let hasAuth = false; + let authData = {}; + if (this.options.auth && typeof this.options.auth === "object") { + Object.keys(this.options.auth).forEach((key) => { + hasAuth = true; + authData[key] = this.options.auth[key]; + }); + } + if (authOpts && typeof authOpts === "object") { + Object.keys(authOpts).forEach((key) => { + hasAuth = true; + authData[key] = authOpts[key]; + }); + } + if (!hasAuth) { + return false; + } + switch ((authData.type || "").toString().toUpperCase()) { + case "OAUTH2": { + if (!authData.service && !authData.user) { + return false; + } + let oauth2 = new XOAuth2(authData, this.logger); + oauth2.provisionCallback = this.mailer && this.mailer.get("oauth2_provision_cb") || oauth2.provisionCallback; + oauth2.on("token", (token) => this.mailer.emit("token", token)); + oauth2.on("error", (err) => this.emit("error", err)); + return { + type: "OAUTH2", + user: authData.user, + oauth2, + method: "XOAUTH2" + }; + } + default: + return { + type: (authData.type || "").toString().toUpperCase() || "LOGIN", + user: authData.user, + credentials: { + user: authData.user || "", + pass: authData.pass, + options: authData.options + }, + method: (authData.method || "").trim().toUpperCase() || this.options.authMethod || false + }; + } + } + send(mail, callback) { + this.getSocket(this.options, (err, socketOptions) => { + if (err) { + return callback(err); + } + let returned = false; + let options = this.options; + if (socketOptions && socketOptions.connection) { + this.logger.info({ + tnx: "proxy", + remoteAddress: socketOptions.connection.remoteAddress, + remotePort: socketOptions.connection.remotePort, + destHost: options.host || "", + destPort: options.port || "", + action: "connected" + }, "Using proxied socket from %s:%s to %s:%s", socketOptions.connection.remoteAddress, socketOptions.connection.remotePort, options.host || "", options.port || ""); + options = shared.assign(false, options); + Object.keys(socketOptions).forEach((key) => { + options[key] = socketOptions[key]; + }); + } + let connection2 = new SMTPConnection(options); + connection2.once("error", (err2) => { + if (returned) { + return; + } + returned = true; + connection2.close(); + return callback(err2); + }); + connection2.once("end", () => { + if (returned) { + return; + } + let timer = setTimeout(() => { + if (returned) { + return; + } + returned = true; + let err2 = new Error("Unexpected socket close"); + if (connection2 && connection2._socket && connection2._socket.upgrading) { + err2.code = "ETLS"; + } + callback(err2); + }, 1000); + try { + timer.unref(); + } catch (E) { + } + }); + let sendMessage = () => { + let envelope = mail.message.getEnvelope(); + let messageId = mail.message.messageId(); + let recipients = [].concat(envelope.to || []); + if (recipients.length > 3) { + recipients.push("...and " + recipients.splice(2).length + " more"); + } + if (mail.data.dsn) { + envelope.dsn = mail.data.dsn; + } + this.logger.info({ + tnx: "send", + messageId + }, "Sending message %s to <%s>", messageId, recipients.join(", ")); + connection2.send(envelope, mail.message.createReadStream(), (err2, info) => { + returned = true; + connection2.close(); + if (err2) { + this.logger.error({ + err: err2, + tnx: "send" + }, "Send error for %s: %s", messageId, err2.message); + return callback(err2); + } + info.envelope = { + from: envelope.from, + to: envelope.to + }; + info.messageId = messageId; + try { + return callback(null, info); + } catch (E) { + this.logger.error({ + err: E, + tnx: "callback" + }, "Callback error for %s: %s", messageId, E.message); + } + }); + }; + connection2.connect(() => { + if (returned) { + return; + } + let auth = this.getAuth(mail.data.auth); + if (auth && (connection2.allowsAuth || options.forceAuth)) { + connection2.login(auth, (err2) => { + if (auth && auth !== this.auth && auth.oauth2) { + auth.oauth2.removeAllListeners(); + } + if (returned) { + return; + } + if (err2) { + returned = true; + connection2.close(); + return callback(err2); + } + sendMessage(); + }); + } else { + sendMessage(); + } + }); + }); + } + verify(callback) { + let promise; + if (!callback) { + promise = new Promise((resolve, reject) => { + callback = shared.callbackPromise(resolve, reject); + }); + } + this.getSocket(this.options, (err, socketOptions) => { + if (err) { + return callback(err); + } + let options = this.options; + if (socketOptions && socketOptions.connection) { + this.logger.info({ + tnx: "proxy", + remoteAddress: socketOptions.connection.remoteAddress, + remotePort: socketOptions.connection.remotePort, + destHost: options.host || "", + destPort: options.port || "", + action: "connected" + }, "Using proxied socket from %s:%s to %s:%s", socketOptions.connection.remoteAddress, socketOptions.connection.remotePort, options.host || "", options.port || ""); + options = shared.assign(false, options); + Object.keys(socketOptions).forEach((key) => { + options[key] = socketOptions[key]; + }); + } + let connection2 = new SMTPConnection(options); + let returned = false; + connection2.once("error", (err2) => { + if (returned) { + return; + } + returned = true; + connection2.close(); + return callback(err2); + }); + connection2.once("end", () => { + if (returned) { + return; + } + returned = true; + return callback(new Error("Connection closed")); + }); + let finalize = () => { + if (returned) { + return; + } + returned = true; + connection2.quit(); + return callback(null, true); + }; + connection2.connect(() => { + if (returned) { + return; + } + let authData = this.getAuth({}); + if (authData && (connection2.allowsAuth || options.forceAuth)) { + connection2.login(authData, (err2) => { + if (returned) { + return; + } + if (err2) { + returned = true; + connection2.close(); + return callback(err2); + } + finalize(); + }); + } else if (!authData && connection2.allowsAuth && options.forceAuth) { + let err2 = new Error("Authentication info was not provided"); + err2.code = "NoAuth"; + returned = true; + connection2.close(); + return callback(err2); + } else { + finalize(); + } + }); + }); + return promise; + } + close() { + if (this.auth && this.auth.oauth2) { + this.auth.oauth2.removeAllListeners(); + } + this.emit("close"); + } + } + module.exports = SMTPTransport; +}); + +// node_modules/nodemailer/lib/sendmail-transport/index.js +var require_sendmail_transport = __commonJS((exports, module) => { + var spawn = __require("child_process").spawn; + var packageData = require_package2(); + var shared = require_shared(); + + class SendmailTransport { + constructor(options) { + options = options || {}; + this._spawn = spawn; + this.options = options || {}; + this.name = "Sendmail"; + this.version = packageData.version; + this.path = "sendmail"; + this.args = false; + this.winbreak = false; + this.logger = shared.getLogger(this.options, { + component: this.options.component || "sendmail" + }); + if (options) { + if (typeof options === "string") { + this.path = options; + } else if (typeof options === "object") { + if (options.path) { + this.path = options.path; + } + if (Array.isArray(options.args)) { + this.args = options.args; + } + this.winbreak = ["win", "windows", "dos", "\r\n"].includes((options.newline || "").toString().toLowerCase()); + } + } + } + send(mail, done) { + mail.message.keepBcc = true; + let envelope = mail.data.envelope || mail.message.getEnvelope(); + let messageId = mail.message.messageId(); + let args; + let sendmail; + let returned; + const hasInvalidAddresses = [].concat(envelope.from || []).concat(envelope.to || []).some((addr) => /^-/.test(addr)); + if (hasInvalidAddresses) { + return done(new Error("Can not send mail. Invalid envelope addresses.")); + } + if (this.args) { + args = ["-i"].concat(this.args).concat(envelope.to); + } else { + args = ["-i"].concat(envelope.from ? ["-f", envelope.from] : []).concat(envelope.to); + } + let callback = (err) => { + if (returned) { + return; + } + returned = true; + if (typeof done === "function") { + if (err) { + return done(err); + } else { + return done(null, { + envelope: mail.data.envelope || mail.message.getEnvelope(), + messageId, + response: "Messages queued for delivery" + }); + } + } + }; + try { + sendmail = this._spawn(this.path, args); + } catch (E) { + this.logger.error({ + err: E, + tnx: "spawn", + messageId + }, "Error occurred while spawning sendmail. %s", E.message); + return callback(E); + } + if (sendmail) { + sendmail.on("error", (err) => { + this.logger.error({ + err, + tnx: "spawn", + messageId + }, "Error occurred when sending message %s. %s", messageId, err.message); + callback(err); + }); + sendmail.once("exit", (code) => { + if (!code) { + return callback(); + } + let err; + if (code === 127) { + err = new Error("Sendmail command not found, process exited with code " + code); + } else { + err = new Error("Sendmail exited with code " + code); + } + this.logger.error({ + err, + tnx: "stdin", + messageId + }, "Error sending message %s to sendmail. %s", messageId, err.message); + callback(err); + }); + sendmail.once("close", callback); + sendmail.stdin.on("error", (err) => { + this.logger.error({ + err, + tnx: "stdin", + messageId + }, "Error occurred when piping message %s to sendmail. %s", messageId, err.message); + callback(err); + }); + let recipients = [].concat(envelope.to || []); + if (recipients.length > 3) { + recipients.push("...and " + recipients.splice(2).length + " more"); + } + this.logger.info({ + tnx: "send", + messageId + }, "Sending message %s to <%s>", messageId, recipients.join(", ")); + let sourceStream = mail.message.createReadStream(); + sourceStream.once("error", (err) => { + this.logger.error({ + err, + tnx: "stdin", + messageId + }, "Error occurred when generating message %s. %s", messageId, err.message); + sendmail.kill("SIGINT"); + callback(err); + }); + sourceStream.pipe(sendmail.stdin); + } else { + return callback(new Error("sendmail was not found")); + } + } + } + module.exports = SendmailTransport; +}); + +// node_modules/nodemailer/lib/stream-transport/index.js +var require_stream_transport = __commonJS((exports, module) => { + var packageData = require_package2(); + var shared = require_shared(); + + class StreamTransport { + constructor(options) { + options = options || {}; + this.options = options || {}; + this.name = "StreamTransport"; + this.version = packageData.version; + this.logger = shared.getLogger(this.options, { + component: this.options.component || "stream-transport" + }); + this.winbreak = ["win", "windows", "dos", "\r\n"].includes((options.newline || "").toString().toLowerCase()); + } + send(mail, done) { + mail.message.keepBcc = true; + let envelope = mail.data.envelope || mail.message.getEnvelope(); + let messageId = mail.message.messageId(); + let recipients = [].concat(envelope.to || []); + if (recipients.length > 3) { + recipients.push("...and " + recipients.splice(2).length + " more"); + } + this.logger.info({ + tnx: "send", + messageId + }, "Sending message %s to <%s> using %s line breaks", messageId, recipients.join(", "), this.winbreak ? "" : ""); + setImmediate(() => { + let stream; + try { + stream = mail.message.createReadStream(); + } catch (E) { + this.logger.error({ + err: E, + tnx: "send", + messageId + }, "Creating send stream failed for %s. %s", messageId, E.message); + return done(E); + } + if (!this.options.buffer) { + stream.once("error", (err) => { + this.logger.error({ + err, + tnx: "send", + messageId + }, "Failed creating message for %s. %s", messageId, err.message); + }); + return done(null, { + envelope: mail.data.envelope || mail.message.getEnvelope(), + messageId, + message: stream + }); + } + let chunks = []; + let chunklen = 0; + stream.on("readable", () => { + let chunk; + while ((chunk = stream.read()) !== null) { + chunks.push(chunk); + chunklen += chunk.length; + } + }); + stream.once("error", (err) => { + this.logger.error({ + err, + tnx: "send", + messageId + }, "Failed creating message for %s. %s", messageId, err.message); + return done(err); + }); + stream.on("end", () => done(null, { + envelope: mail.data.envelope || mail.message.getEnvelope(), + messageId, + message: Buffer.concat(chunks, chunklen) + })); + }); + } + } + module.exports = StreamTransport; +}); + +// node_modules/nodemailer/lib/json-transport/index.js +var require_json_transport = __commonJS((exports, module) => { + var packageData = require_package2(); + var shared = require_shared(); + + class JSONTransport { + constructor(options) { + options = options || {}; + this.options = options || {}; + this.name = "JSONTransport"; + this.version = packageData.version; + this.logger = shared.getLogger(this.options, { + component: this.options.component || "json-transport" + }); + } + send(mail, done) { + mail.message.keepBcc = true; + let envelope = mail.data.envelope || mail.message.getEnvelope(); + let messageId = mail.message.messageId(); + let recipients = [].concat(envelope.to || []); + if (recipients.length > 3) { + recipients.push("...and " + recipients.splice(2).length + " more"); + } + this.logger.info({ + tnx: "send", + messageId + }, "Composing JSON structure of %s to <%s>", messageId, recipients.join(", ")); + setImmediate(() => { + mail.normalize((err, data) => { + if (err) { + this.logger.error({ + err, + tnx: "send", + messageId + }, "Failed building JSON structure for %s. %s", messageId, err.message); + return done(err); + } + delete data.envelope; + delete data.normalizedHeaders; + return done(null, { + envelope, + messageId, + message: this.options.skipEncoding ? data : JSON.stringify(data) + }); + }); + }); + } + } + module.exports = JSONTransport; +}); + +// node_modules/nodemailer/lib/ses-transport/index.js +var require_ses_transport = __commonJS((exports, module) => { + var EventEmitter = __require("events"); + var packageData = require_package2(); + var shared = require_shared(); + var LeWindows = require_le_windows(); + + class SESTransport extends EventEmitter { + constructor(options) { + super(); + options = options || {}; + this.options = options || {}; + this.ses = this.options.SES; + this.name = "SESTransport"; + this.version = packageData.version; + this.logger = shared.getLogger(this.options, { + component: this.options.component || "ses-transport" + }); + this.maxConnections = Number(this.options.maxConnections) || Infinity; + this.connections = 0; + this.sendingRate = Number(this.options.sendingRate) || Infinity; + this.sendingRateTTL = null; + this.rateInterval = 1000; + this.rateMessages = []; + this.pending = []; + this.idling = true; + setImmediate(() => { + if (this.idling) { + this.emit("idle"); + } + }); + } + send(mail, callback) { + if (this.connections >= this.maxConnections) { + this.idling = false; + return this.pending.push({ + mail, + callback + }); + } + if (!this._checkSendingRate()) { + this.idling = false; + return this.pending.push({ + mail, + callback + }); + } + this._send(mail, (...args) => { + setImmediate(() => callback(...args)); + this._sent(); + }); + } + _checkRatedQueue() { + if (this.connections >= this.maxConnections || !this._checkSendingRate()) { + return; + } + if (!this.pending.length) { + if (!this.idling) { + this.idling = true; + this.emit("idle"); + } + return; + } + let next = this.pending.shift(); + this._send(next.mail, (...args) => { + setImmediate(() => next.callback(...args)); + this._sent(); + }); + } + _checkSendingRate() { + clearTimeout(this.sendingRateTTL); + let now = Date.now(); + let oldest = false; + for (let i = this.rateMessages.length - 1;i >= 0; i--) { + if (this.rateMessages[i].ts >= now - this.rateInterval && (!oldest || this.rateMessages[i].ts < oldest)) { + oldest = this.rateMessages[i].ts; + } + if (this.rateMessages[i].ts < now - this.rateInterval && !this.rateMessages[i].pending) { + this.rateMessages.splice(i, 1); + } + } + if (this.rateMessages.length < this.sendingRate) { + return true; + } + let delay = Math.max(oldest + 1001, now + 20); + this.sendingRateTTL = setTimeout(() => this._checkRatedQueue(), now - delay); + try { + this.sendingRateTTL.unref(); + } catch (E) { + } + return false; + } + _sent() { + this.connections--; + this._checkRatedQueue(); + } + isIdle() { + return this.idling; + } + _send(mail, callback) { + let statObject = { + ts: Date.now(), + pending: true + }; + this.connections++; + this.rateMessages.push(statObject); + let envelope = mail.data.envelope || mail.message.getEnvelope(); + let messageId = mail.message.messageId(); + let recipients = [].concat(envelope.to || []); + if (recipients.length > 3) { + recipients.push("...and " + recipients.splice(2).length + " more"); + } + this.logger.info({ + tnx: "send", + messageId + }, "Sending message %s to <%s>", messageId, recipients.join(", ")); + let getRawMessage = (next) => { + if (!mail.data._dkim) { + mail.data._dkim = {}; + } + if (mail.data._dkim.skipFields && typeof mail.data._dkim.skipFields === "string") { + mail.data._dkim.skipFields += ":date:message-id"; + } else { + mail.data._dkim.skipFields = "date:message-id"; + } + let sourceStream = mail.message.createReadStream(); + let stream = sourceStream.pipe(new LeWindows); + let chunks = []; + let chunklen = 0; + stream.on("readable", () => { + let chunk; + while ((chunk = stream.read()) !== null) { + chunks.push(chunk); + chunklen += chunk.length; + } + }); + sourceStream.once("error", (err) => stream.emit("error", err)); + stream.once("error", (err) => { + next(err); + }); + stream.once("end", () => next(null, Buffer.concat(chunks, chunklen))); + }; + setImmediate(() => getRawMessage((err, raw) => { + if (err) { + this.logger.error({ + err, + tnx: "send", + messageId + }, "Failed creating message for %s. %s", messageId, err.message); + statObject.pending = false; + return callback(err); + } + let sesMessage = { + RawMessage: { + Data: raw + }, + Source: envelope.from, + Destinations: envelope.to + }; + Object.keys(mail.data.ses || {}).forEach((key) => { + sesMessage[key] = mail.data.ses[key]; + }); + let ses = (this.ses.aws ? this.ses.ses : this.ses) || {}; + let aws = this.ses.aws || {}; + let getRegion = (cb) => { + if (ses.config && typeof ses.config.region === "function") { + return ses.config.region().then((region) => cb(null, region)).catch((err2) => cb(err2)); + } + return cb(null, ses.config && ses.config.region || "us-east-1"); + }; + getRegion((err2, region) => { + if (err2 || !region) { + region = "us-east-1"; + } + let sendPromise; + if (typeof ses.send === "function" && aws.SendRawEmailCommand) { + sendPromise = ses.send(new aws.SendRawEmailCommand(sesMessage)); + } else { + sendPromise = ses.sendRawEmail(sesMessage).promise(); + } + sendPromise.then((data) => { + if (region === "us-east-1") { + region = "email"; + } + statObject.pending = false; + callback(null, { + envelope: { + from: envelope.from, + to: envelope.to + }, + messageId: "<" + data.MessageId + (!/@/.test(data.MessageId) ? "@" + region + ".amazonses.com" : "") + ">", + response: data.MessageId, + raw + }); + }).catch((err3) => { + this.logger.error({ + err: err3, + tnx: "send" + }, "Send error for %s: %s", messageId, err3.message); + statObject.pending = false; + callback(err3); + }); + }); + })); + } + verify(callback) { + let promise; + let ses = (this.ses.aws ? this.ses.ses : this.ses) || {}; + let aws = this.ses.aws || {}; + const sesMessage = { + RawMessage: { + Data: "From: invalid@invalid\r\nTo: invalid@invalid\r\n Subject: Invalid\r\n\r\nInvalid" + }, + Source: "invalid@invalid", + Destinations: ["invalid@invalid"] + }; + if (!callback) { + promise = new Promise((resolve, reject) => { + callback = shared.callbackPromise(resolve, reject); + }); + } + const cb = (err) => { + if (err && (err.code || err.Code) !== "InvalidParameterValue") { + return callback(err); + } + return callback(null, true); + }; + if (typeof ses.send === "function" && aws.SendRawEmailCommand) { + sesMessage.RawMessage.Data = Buffer.from(sesMessage.RawMessage.Data); + ses.send(new aws.SendRawEmailCommand(sesMessage), cb); + } else { + ses.sendRawEmail(sesMessage, cb); + } + return promise; + } + } + module.exports = SESTransport; +}); + +// node_modules/nodemailer/lib/nodemailer.js +var require_nodemailer = __commonJS((exports, module) => { + var Mailer = require_mailer(); + var shared = require_shared(); + var SMTPPool = require_smtp_pool(); + var SMTPTransport = require_smtp_transport(); + var SendmailTransport = require_sendmail_transport(); + var StreamTransport = require_stream_transport(); + var JSONTransport = require_json_transport(); + var SESTransport = require_ses_transport(); + var nmfetch = require_fetch(); + var packageData = require_package2(); + var ETHEREAL_API = (process.env.ETHEREAL_API || "https://api.nodemailer.com").replace(/\/+$/, ""); + var ETHEREAL_WEB = (process.env.ETHEREAL_WEB || "https://ethereal.email").replace(/\/+$/, ""); + var ETHEREAL_API_KEY = (process.env.ETHEREAL_API_KEY || "").replace(/\s*/g, "") || null; + var ETHEREAL_CACHE = ["true", "yes", "y", "1"].includes((process.env.ETHEREAL_CACHE || "yes").toString().trim().toLowerCase()); + var testAccount = false; + exports.createTransport = function(transporter, defaults) { + let urlConfig; + let options; + let mailer; + if (typeof transporter === "object" && typeof transporter.send !== "function" || typeof transporter === "string" && /^(smtps?|direct):/i.test(transporter)) { + if (urlConfig = typeof transporter === "string" ? transporter : transporter.url) { + options = shared.parseConnectionUrl(urlConfig); + } else { + options = transporter; + } + if (options.pool) { + transporter = new SMTPPool(options); + } else if (options.sendmail) { + transporter = new SendmailTransport(options); + } else if (options.streamTransport) { + transporter = new StreamTransport(options); + } else if (options.jsonTransport) { + transporter = new JSONTransport(options); + } else if (options.SES) { + transporter = new SESTransport(options); + } else { + transporter = new SMTPTransport(options); + } + } + mailer = new Mailer(transporter, options, defaults); + return mailer; + }; + exports.createTestAccount = function(apiUrl, callback) { + let promise; + if (!callback && typeof apiUrl === "function") { + callback = apiUrl; + apiUrl = false; + } + if (!callback) { + promise = new Promise((resolve, reject) => { + callback = shared.callbackPromise(resolve, reject); + }); + } + if (ETHEREAL_CACHE && testAccount) { + setImmediate(() => callback(null, testAccount)); + return promise; + } + apiUrl = apiUrl || ETHEREAL_API; + let chunks = []; + let chunklen = 0; + let requestHeaders = {}; + let requestBody = { + requestor: packageData.name, + version: packageData.version + }; + if (ETHEREAL_API_KEY) { + requestHeaders.Authorization = "Bearer " + ETHEREAL_API_KEY; + } + let req = nmfetch(apiUrl + "/user", { + contentType: "application/json", + method: "POST", + headers: requestHeaders, + body: Buffer.from(JSON.stringify(requestBody)) + }); + req.on("readable", () => { + let chunk; + while ((chunk = req.read()) !== null) { + chunks.push(chunk); + chunklen += chunk.length; + } + }); + req.once("error", (err) => callback(err)); + req.once("end", () => { + let res = Buffer.concat(chunks, chunklen); + let data; + let err; + try { + data = JSON.parse(res.toString()); + } catch (E) { + err = E; + } + if (err) { + return callback(err); + } + if (data.status !== "success" || data.error) { + return callback(new Error(data.error || "Request failed")); + } + delete data.status; + testAccount = data; + callback(null, testAccount); + }); + return promise; + }; + exports.getTestMessageUrl = function(info) { + if (!info || !info.response) { + return false; + } + let infoProps = new Map; + info.response.replace(/\[([^\]]+)\]$/, (m, props) => { + props.replace(/\b([A-Z0-9]+)=([^\s]+)/g, (m2, key, value) => { + infoProps.set(key, value); + }); + }); + if (infoProps.has("STATUS") && infoProps.has("MSGID")) { + return (testAccount.web || ETHEREAL_WEB) + "/message/" + infoProps.get("MSGID"); + } + return false; + }; +}); + +// package-shared/utils/backend/parseCookies.ts +function parseCookies({ + request, + cookieString +}) { + try { + const cookieStr = request ? request.headers.cookie : cookieString ? cookieString : undefined; + if (!cookieStr) + return {}; + if (!cookieStr || typeof cookieStr !== "string") { + return {}; + } + const cookieSplitArray = cookieStr.split(";"); + let cookieObject = {}; + cookieSplitArray.forEach((keyValueString) => { + const [key, value] = keyValueString.split("="); + if (key && typeof key == "string") { + const parsedKey = key.replace(/^ +| +$/, ""); + cookieObject[parsedKey] = value && typeof value == "string" ? value.replace(/^ +| +$/, "") : ""; + } + }); + return cookieObject; + } catch (error) { + console.log(`ERROR parsing cookies: ${error.message}`); + return {}; + } +} + +// node_modules/generate-password/src/generate.js +var require_generate = __commonJS((exports, module) => { + var crypto2 = __require("crypto"); + var RANDOM_BATCH_SIZE = 256; + var randomIndex; + var randomBytes; + var getNextRandomValue = function() { + if (randomIndex === undefined || randomIndex >= randomBytes.length) { + randomIndex = 0; + randomBytes = crypto2.randomBytes(RANDOM_BATCH_SIZE); + } + var result = randomBytes[randomIndex]; + randomIndex += 1; + return result; + }; + var randomNumber = function(max) { + var rand = getNextRandomValue(); + while (rand >= 256 - 256 % max) { + rand = getNextRandomValue(); + } + return rand % max; + }; + var lowercase = "abcdefghijklmnopqrstuvwxyz"; + var uppercase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; + var numbers = "0123456789"; + var symbols = '!@#$%^&*()+_-=}{[]|:;"/?.><,`~'; + var similarCharacters = /[ilLI|`oO0]/g; + var strictRules = [ + { name: "lowercase", rule: /[a-z]/ }, + { name: "uppercase", rule: /[A-Z]/ }, + { name: "numbers", rule: /[0-9]/ }, + { name: "symbols", rule: /[!@#$%^&*()+_\-=}{[\]|:;"/?.><,`~]/ } + ]; + var generate = function(options, pool) { + var password = "", optionsLength = options.length, poolLength = pool.length; + for (var i = 0;i < optionsLength; i++) { + password += pool[randomNumber(poolLength)]; + } + if (options.strict) { + var fitsRules = strictRules.every(function(rule) { + if (options[rule.name] == false) + return true; + if (rule.name === "symbols" && typeof options[rule.name] === "string") { + var re = new RegExp("[" + options[rule.name] + "]"); + return re.test(password); + } + return rule.rule.test(password); + }); + if (!fitsRules) + return generate(options, pool); + } + return password; + }; + exports.generate = function(options) { + options = options || {}; + if (!Object.prototype.hasOwnProperty.call(options, "length")) + options.length = 10; + if (!Object.prototype.hasOwnProperty.call(options, "numbers")) + options.numbers = false; + if (!Object.prototype.hasOwnProperty.call(options, "symbols")) + options.symbols = false; + if (!Object.prototype.hasOwnProperty.call(options, "exclude")) + options.exclude = ""; + if (!Object.prototype.hasOwnProperty.call(options, "uppercase")) + options.uppercase = true; + if (!Object.prototype.hasOwnProperty.call(options, "lowercase")) + options.lowercase = true; + if (!Object.prototype.hasOwnProperty.call(options, "excludeSimilarCharacters")) + options.excludeSimilarCharacters = false; + if (!Object.prototype.hasOwnProperty.call(options, "strict")) + options.strict = false; + if (options.strict) { + var minStrictLength = 1 + (options.numbers ? 1 : 0) + (options.symbols ? 1 : 0) + (options.uppercase ? 1 : 0); + if (minStrictLength > options.length) { + throw new TypeError("Length must correlate with strict guidelines"); + } + } + var pool = ""; + if (options.lowercase) { + pool += lowercase; + } + if (options.uppercase) { + pool += uppercase; + } + if (options.numbers) { + pool += numbers; + } + if (options.symbols) { + if (typeof options.symbols === "string") { + pool += options.symbols; + } else { + pool += symbols; + } + } + if (!pool) { + throw new TypeError("At least one rule for pools must be true"); + } + if (options.excludeSimilarCharacters) { + pool = pool.replace(similarCharacters, ""); + } + var i = options.exclude.length; + while (i--) { + pool = pool.replace(options.exclude[i], ""); + } + var password = generate(options, pool); + return password; + }; + exports.generateMultiple = function(amount, options) { + var passwords = []; + for (var i = 0;i < amount; i++) { + passwords[i] = exports.generate(options); + } + return passwords; + }; +}); + +// package-shared/functions/api/users/api-delete-user.ts +async function apiDeleteUser({ + dbFullName, + deletedUserId, + useLocal +}) { + const existingUserQuery = `SELECT * FROM users WHERE id = ?`; + const existingUserValues = [deletedUserId]; + const existingUser = await varDatabaseDbHandler2({ + queryString: existingUserQuery, + queryValuesArray: existingUserValues, + database: dbFullName, + useLocal + }); + if (!existingUser?.[0]) { + return { + success: false, + msg: "User not found" + }; + } + const deleteUser = await deleteDbEntry({ + dbContext: "Dsql User", + paradigm: "Full Access", + dbFullName, + tableName: "users", + identifierColumnName: "id", + identifierValue: deletedUserId, + useLocal + }); + return { + success: true, + result: deleteUser + }; +} +var init_api_delete_user = __esm(() => { + init_deleteDbEntry(); + init_varDatabaseDbHandler(); +}); + +// users/delete-user.ts +var exports_delete_user = {}; +__export(exports_delete_user, { + default: () => deleteUser +}); +import path16 from "path"; +import fs21 from "fs"; +async function deleteUser({ + key, + database, + user_id, + useLocal, + deletedUserId +}) { + const { DSQL_DB_HOST, DSQL_DB_USERNAME, DSQL_DB_PASSWORD, DSQL_DB_NAME } = process.env; + const grabedHostNames = grabHostNames(); + const { host, port, scheme } = grabedHostNames; + if (DSQL_DB_HOST?.match(/./) && DSQL_DB_USERNAME?.match(/./) && DSQL_DB_PASSWORD?.match(/./) && DSQL_DB_NAME?.match(/./) && useLocal) { + let dbSchema; + try { + const localDbSchemaPath = path16.resolve(process.cwd(), "dsql.schema.json"); + dbSchema = JSON.parse(fs21.readFileSync(localDbSchemaPath, "utf8")); + } catch (error) { + } + return await apiDeleteUser({ + dbFullName: DSQL_DB_NAME, + useLocal, + deletedUserId + }); + } + const httpResponse = await new Promise((resolve, reject) => { + const reqPayload = JSON.stringify({ + database, + deletedUserId + }); + const httpsRequest2 = scheme.request({ + method: "POST", + headers: { + "Content-Type": "application/json", + "Content-Length": Buffer.from(reqPayload).length, + Authorization: process.env.DSQL_FULL_ACCESS_API_KEY || process.env.DSQL_API_KEY || key + }, + port, + hostname: host, + path: `/api/user/${user_id || grabedHostNames.user_id}/delete-user` + }, (response) => { + var str = ""; + response.on("data", function(chunk) { + str += chunk; + }); + response.on("end", function() { + resolve(JSON.parse(str)); + }); + response.on("error", (err) => { + reject(err); + }); + }); + httpsRequest2.write(reqPayload); + httpsRequest2.end(); + }); + return httpResponse; +} +var init_delete_user = __esm(() => { + init_grab_host_names(); + init_api_delete_user(); +}); + +// users/validate-temp-email-code.ts +var exports_validate_temp_email_code = {}; +__export(exports_validate_temp_email_code, { + default: () => validateTempEmailCode +}); +async function validateTempEmailCode({ + request, + email, + cookieString +}) { + try { + const keyNames = getAuthCookieNames(); + const oneTimeCodeCookieName = keyNames.oneTimeCodeName; + const cookies = parseCookies({ request, cookieString }); + const encryptedOneTimeCode = cookies[oneTimeCodeCookieName]; + const encryptedPayload = decrypt({ + encryptedString: encryptedOneTimeCode + }); + const payload = ejson_default.parse(encryptedPayload); + if (payload?.email && !email) { + return payload; + } + if (payload?.email && payload.email === email) { + return payload; + } + return null; + } catch (error) { + console.log("validateTempEmailCode error:", error.message); + return null; + } +} +var init_validate_temp_email_code = __esm(() => { + init_decrypt(); + init_ejson(); +}); + +// utils/get.ts +init_grab_host_names(); +import path from "path"; +import fs4 from "fs"; + +// package-shared/functions/api/query/get.ts +var import_lodash = __toESM(require_lodash(), 1); +init_serverError(); + +// package-shared/functions/backend/fullAccessDbHandler.ts +init_DSQL_USER_DB_HANDLER(); +init_LOCAL_DB_HANDLER(); +init_parseDbResults(); +init_serverError(); +async function fullAccessDbHandler({ + queryString, + database, + tableSchema, + queryValuesArray, + local +}) { + let results; + try { + results = local ? await LOCAL_DB_HANDLER(queryString, queryValuesArray) : await DSQL_USER_DB_HANDLER({ + paradigm: "Full Access", + database, + queryString, + queryValues: queryValuesArray + }); + } catch (error) { + serverError({ + component: "fullAccessDbHandler", + message: error.message + }); + return error.message; + } + if (results && tableSchema) { + const unparsedResults = results; + const parsedResults = await parseDbResults({ + unparsedResults, + tableSchema + }); + return parsedResults; + } else if (results) { + return results; + } else { + return null; + } +} + +// package-shared/functions/backend/varReadOnlyDatabaseDbHandler.ts +init_serverError(); +init_parseDbResults(); +init_DSQL_USER_DB_HANDLER(); +init_LOCAL_DB_HANDLER(); +async function varReadOnlyDatabaseDbHandler({ + queryString, + database, + queryValuesArray, + tableSchema, + useLocal +}) { + let results; + try { + results = useLocal ? await LOCAL_DB_HANDLER(queryString, queryValuesArray) : await DSQL_USER_DB_HANDLER({ + paradigm: "Read Only", + database, + queryString, + queryValues: queryValuesArray + }); + } catch (error) { + serverError({ + component: "varReadOnlyDatabaseDbHandler", + message: error.message, + noMail: true + }); + return error.message; + } + if (results) { + const unparsedResults = results; + const parsedResults = await parseDbResults({ + unparsedResults, + tableSchema + }); + return parsedResults; + } else { + return null; + } +} + +// package-shared/functions/backend/db/runQuery.ts +init_serverError(); + +// package-shared/functions/backend/db/addDbEntry.ts +var import_sanitize_html2 = __toESM(require_sanitize_html(), 1); + +// package-shared/functions/backend/html/sanitizeHtmlOptions.ts +var sanitizeHtmlOptions = { + allowedTags: [ + "b", + "i", + "em", + "strong", + "a", + "p", + "span", + "ul", + "ol", + "li", + "h1", + "h2", + "h3", + "h4", + "h5", + "h6", + "img", + "div", + "button", + "pre", + "code", + "br" + ], + allowedAttributes: { + a: ["href"], + img: ["src", "alt", "width", "height", "class", "style"], + "*": ["style", "class"] + } +}; +var sanitizeHtmlOptions_default = sanitizeHtmlOptions; + +// package-shared/functions/backend/db/updateDbEntry.ts +var import_sanitize_html = __toESM(require_sanitize_html(), 1); +init_DB_HANDLER(); +init_DSQL_USER_DB_HANDLER(); +init_encrypt(); +init_LOCAL_DB_HANDLER(); +async function updateDbEntry({ + dbContext, + paradigm, + dbFullName, + tableName, + data, + tableSchema, + identifierColumnName, + identifierValue, + encryptionKey, + encryptionSalt, + useLocal +}) { + if (!data || !Object.keys(data).length) + return null; + const isMaster = useLocal ? true : dbContext?.match(/dsql.user/i) ? false : dbFullName && !dbFullName.match(/^datasquirel$/) ? false : true; + const dbHandler = useLocal ? LOCAL_DB_HANDLER : isMaster ? DB_HANDLER : DSQL_USER_DB_HANDLER; + const dataKeys = Object.keys(data); + let updateKeyValueArray = []; + let updateValues = []; + for (let i = 0;i < dataKeys.length; i++) { + try { + const dataKey = dataKeys[i]; + let value = data[dataKey]; + const targetFieldSchemaArray = tableSchema ? tableSchema?.fields?.filter((field) => field.fieldName === dataKey) : null; + const targetFieldSchema = targetFieldSchemaArray && targetFieldSchemaArray[0] ? targetFieldSchemaArray[0] : null; + if (value == null || value == undefined) + continue; + const htmlRegex = /<[^>]+>/g; + if (targetFieldSchema?.richText || String(value).match(htmlRegex)) { + value = import_sanitize_html.default(value, sanitizeHtmlOptions_default); + } + if (targetFieldSchema?.encrypted) { + value = encrypt({ + data: value, + encryptionKey, + encryptionSalt + }); + } + if (typeof value === "object") { + value = JSON.stringify(value); + } + if (targetFieldSchema?.pattern) { + const pattern = new RegExp(targetFieldSchema.pattern, targetFieldSchema.patternFlags || ""); + if (!pattern.test(value)) { + console.log("DSQL: Pattern not matched =>", value); + value = ""; + } + } + if (typeof value === "string" && value.match(/^null$/i)) { + value = { + toSqlString: function() { + return "NULL"; + } + }; + } + if (typeof value === "string" && !value.match(/./i)) { + value = { + toSqlString: function() { + return "NULL"; + } + }; + } + updateKeyValueArray.push(`\`${dataKey}\`=?`); + if (typeof value == "number") { + updateValues.push(String(value)); + } else { + updateValues.push(value); + } + } catch (error) { + console.log("DSQL: Error in parsing data keys in update function =>", error.message); + continue; + } + } + updateKeyValueArray.push(`date_updated='${Date()}'`); + updateKeyValueArray.push(`date_updated_code='${Date.now()}'`); + const query = `UPDATE ${tableName} SET ${updateKeyValueArray.join(",")} WHERE \`${identifierColumnName}\`=?`; + updateValues.push(identifierValue); + const updatedEntry = isMaster ? await dbHandler(query, updateValues) : await dbHandler({ + paradigm, + database: dbFullName, + queryString: query, + queryValues: updateValues + }); + return updatedEntry; +} + +// package-shared/functions/backend/db/addDbEntry.ts +init_DB_HANDLER(); +init_DSQL_USER_DB_HANDLER(); +init_encrypt(); +init_LOCAL_DB_HANDLER(); +async function addDbEntry({ + dbContext, + paradigm, + dbFullName, + tableName, + data, + tableSchema, + duplicateColumnName, + duplicateColumnValue, + update, + encryptionKey, + encryptionSalt, + useLocal +}) { + const isMaster = useLocal ? true : dbContext?.match(/dsql.user/i) ? false : dbFullName && !dbFullName.match(/^datasquirel$/) ? false : true; + const dbHandler = useLocal ? LOCAL_DB_HANDLER : isMaster ? DB_HANDLER : DSQL_USER_DB_HANDLER; + if (data?.["date_created_timestamp"]) + delete data["date_created_timestamp"]; + if (data?.["date_updated_timestamp"]) + delete data["date_updated_timestamp"]; + if (data?.["date_updated"]) + delete data["date_updated"]; + if (data?.["date_updated_code"]) + delete data["date_updated_code"]; + if (data?.["date_created"]) + delete data["date_created"]; + if (data?.["date_created_code"]) + delete data["date_created_code"]; + if (duplicateColumnName && typeof duplicateColumnName === "string") { + const duplicateValue = isMaster ? await dbHandler(`SELECT * FROM \`${tableName}\` WHERE \`${duplicateColumnName}\`=?`, [duplicateColumnValue]) : await dbHandler({ + paradigm: "Read Only", + database: dbFullName, + queryString: `SELECT * FROM \`${tableName}\` WHERE \`${duplicateColumnName}\`=?`, + queryValues: [duplicateColumnValue] + }); + if (duplicateValue?.[0] && !update) { + return null; + } else if (duplicateValue && duplicateValue[0] && update) { + return await updateDbEntry({ + dbContext, + paradigm, + dbFullName, + tableName, + data, + tableSchema, + encryptionKey, + encryptionSalt, + identifierColumnName: duplicateColumnName, + identifierValue: duplicateColumnValue || "" + }); + } + } + const dataKeys = Object.keys(data); + let insertKeysArray = []; + let insertValuesArray = []; + for (let i = 0;i < dataKeys.length; i++) { + try { + const dataKey = dataKeys[i]; + let value = data?.[dataKey]; + const targetFieldSchemaArray = tableSchema ? tableSchema?.fields?.filter((field) => field.fieldName == dataKey) : null; + const targetFieldSchema = targetFieldSchemaArray && targetFieldSchemaArray[0] ? targetFieldSchemaArray[0] : null; + if (value == null || value == undefined) + continue; + if (targetFieldSchema?.dataType?.match(/int$/i) && typeof value == "string" && !value?.match(/./)) + continue; + if (targetFieldSchema?.encrypted) { + value = encrypt({ + data: value, + encryptionKey, + encryptionSalt + }); + console.log("DSQL: Encrypted value =>", value); + } + const htmlRegex = /<[^>]+>/g; + if (targetFieldSchema?.richText || String(value).match(htmlRegex)) { + value = import_sanitize_html2.default(value, sanitizeHtmlOptions_default); + } + if (targetFieldSchema?.pattern) { + const pattern = new RegExp(targetFieldSchema.pattern, targetFieldSchema.patternFlags || ""); + if (!pattern.test(value)) { + console.log("DSQL: Pattern not matched =>", value); + value = ""; + } + } + insertKeysArray.push("`" + dataKey + "`"); + if (typeof value === "object") { + value = JSON.stringify(value); + } + if (typeof value == "number") { + insertValuesArray.push(String(value)); + } else { + insertValuesArray.push(value); + } + } catch (error) { + console.log("DSQL: Error in parsing data keys =>", error.message); + continue; + } + } + if (!data?.["date_created"]) { + insertKeysArray.push("`date_created`"); + insertValuesArray.push(Date()); + } + if (!data?.["date_created_code"]) { + insertKeysArray.push("`date_created_code`"); + insertValuesArray.push(Date.now()); + } + if (!data?.["date_updated"]) { + insertKeysArray.push("`date_updated`"); + insertValuesArray.push(Date()); + } + if (!data?.["date_updated_code"]) { + insertKeysArray.push("`date_updated_code`"); + insertValuesArray.push(Date.now()); + } + const query = `INSERT INTO \`${tableName}\` (${insertKeysArray.join(",")}) VALUES (${insertValuesArray.map(() => "?").join(",")})`; + const queryValuesArray = insertValuesArray; + const newInsert = isMaster ? await dbHandler(query, queryValuesArray) : await dbHandler({ + paradigm, + database: dbFullName, + queryString: query, + queryValues: queryValuesArray + }); + return newInsert; +} + +// package-shared/functions/backend/db/runQuery.ts +init_deleteDbEntry(); + +// package-shared/utils/trim-sql.ts +function trimSql(sql) { + return sql.replace(/\n|\r|\n\r|\r\n/gm, " ").replace(/ {2,}/g, " ").trim(); +} + +// package-shared/functions/backend/db/runQuery.ts +async function runQuery({ + dbFullName, + query, + readOnly, + dbSchema, + queryValuesArray, + tableName, + local +}) { + let result; + let error; + let tableSchema; + if (dbSchema) { + try { + const table = tableName ? tableName : typeof query == "string" ? null : query ? query?.table : null; + if (!table) + throw new Error("No table name provided"); + tableSchema = dbSchema.tables.filter((tb) => tb?.tableName === table)[0]; + } catch (_err) { + } + } + try { + if (typeof query === "string") { + const formattedQuery = trimSql(query); + if (readOnly && formattedQuery.match(/^alter|^delete|information_schema|^create/i)) { + throw new Error("Wrong Input!"); + } + if (readOnly) { + result = await varReadOnlyDatabaseDbHandler({ + queryString: formattedQuery, + queryValuesArray: queryValuesArray?.map((vl) => String(vl)), + database: dbFullName, + tableSchema, + useLocal: local + }); + } else { + result = await fullAccessDbHandler({ + queryString: formattedQuery, + queryValuesArray: queryValuesArray?.map((vl) => String(vl)), + database: dbFullName, + tableSchema, + local + }); + } + } else if (typeof query === "object") { + const { + data, + action, + table, + identifierColumnName, + identifierValue, + update, + duplicateColumnName, + duplicateColumnValue + } = query; + switch (action.toLowerCase()) { + case "insert": + result = await addDbEntry({ + dbContext: local ? "Master" : "Dsql User", + paradigm: "Full Access", + dbFullName, + tableName: table, + data, + update, + duplicateColumnName, + duplicateColumnValue, + tableSchema, + useLocal: local + }); + if (!result?.insertId) { + error = new Error("Couldn't insert data"); + } + break; + case "update": + result = await updateDbEntry({ + dbContext: local ? "Master" : "Dsql User", + paradigm: "Full Access", + dbFullName, + tableName: table, + data, + identifierColumnName, + identifierValue, + tableSchema, + useLocal: local + }); + break; + case "delete": + result = await deleteDbEntry({ + dbContext: local ? "Master" : "Dsql User", + paradigm: "Full Access", + dbFullName, + tableName: table, + identifierColumnName, + identifierValue, + tableSchema, + useLocal: local + }); + break; + default: + result = null; + break; + } + } + } catch (error2) { + serverError({ + component: "functions/backend/runQuery", + message: error2.message + }); + result = null; + error2 = error2.message; + } + return { result, error }; +} + +// package-shared/functions/api/query/get.ts +async function apiGet({ + query, + dbFullName, + queryValues, + tableName, + dbSchema, + useLocal +}) { + if (typeof query == "string" && query.match(/^alter|^delete|information_schema|databases|^create/i)) { + return { success: false, msg: "Wrong Input." }; + } + let results; + try { + let { result, error } = await runQuery({ + dbFullName, + query, + queryValuesArray: queryValues, + readOnly: true, + dbSchema, + tableName, + local: useLocal + }); + let tableSchema; + if (dbSchema) { + const targetTable = dbSchema.tables.find((table) => table.tableName === tableName); + if (targetTable) { + const clonedTargetTable = import_lodash.default.cloneDeep(targetTable); + delete clonedTargetTable.childTable; + delete clonedTargetTable.childTableDbFullName; + delete clonedTargetTable.childTableName; + delete clonedTargetTable.childrenTables; + delete clonedTargetTable.updateData; + delete clonedTargetTable.tableNameOld; + delete clonedTargetTable.indexes; + tableSchema = clonedTargetTable; + } + } + if (error) + throw error; + if (result.error) + throw new Error(result.error); + results = result; + const resObject = { + success: true, + payload: results, + schema: tableName && tableSchema ? tableSchema : undefined + }; + return resObject; + } catch (error) { + serverError({ + component: "/api/query/get/lines-85-94", + message: error.message + }); + return { success: false, payload: null, error: error.message }; + } +} + +// package-shared/utils/serialize-query.ts +init_ejson(); +function serializeQuery(query) { + let str = "?"; + if (typeof query !== "object") { + console.log("Invalid Query type"); + return str; + } + if (Array.isArray(query)) { + console.log("Query is an Array. This is invalid."); + return str; + } + if (!query) { + console.log("No Query provided."); + return str; + } + const keys = Object.keys(query); + const queryArr = []; + keys.forEach((key) => { + if (!key || !query[key]) + return; + const value = query[key]; + if (typeof value === "object") { + const jsonStr = ejson_default.stringify(value); + queryArr.push(`${key}=${encodeURIComponent(String(jsonStr))}`); + } else if (typeof value === "string" || typeof value === "number") { + queryArr.push(`${key}=${encodeURIComponent(value)}`); + } else { + queryArr.push(`${key}=${String(value)}`); + } + }); + str += queryArr.join("&"); + return str; +} + +// utils/get.ts +async function get({ + key, + db, + query, + queryValues, + tableName, + useLocal, + user_id +}) { + const grabedHostNames = grabHostNames(); + const { host, port, scheme } = grabedHostNames; + const { DSQL_DB_HOST, DSQL_DB_USERNAME, DSQL_DB_PASSWORD, DSQL_DB_NAME } = process.env; + if (DSQL_DB_HOST?.match(/./) && DSQL_DB_USERNAME?.match(/./) && DSQL_DB_PASSWORD?.match(/./) && DSQL_DB_NAME?.match(/./) && useLocal) { + let dbSchema; + try { + const localDbSchemaPath = path.resolve(process.cwd(), "dsql.schema.json"); + dbSchema = JSON.parse(fs4.readFileSync(localDbSchemaPath, "utf8")); + } catch (error) { + } + return await apiGet({ + dbFullName: DSQL_DB_NAME, + query, + queryValues, + tableName, + dbSchema, + useLocal + }); + } + const httpResponse = await new Promise((resolve, reject) => { + const queryObject = { + db: process.env.DSQL_API_DB_NAME || String(db), + query: String(query.replace(/\n|\r|\n\r/g, "").replace(/ {2,}/g, " ")), + queryValues: queryValues ? JSON.stringify(queryValues) : undefined, + tableName + }; + const queryString = serializeQuery({ ...queryObject }); + let path2 = `/api/query/${user_id || grabedHostNames.user_id}/get${queryString}`; + const requestObject = { + method: "GET", + headers: { + "Content-Type": "application/json", + Authorization: key || process.env.DSQL_READ_ONLY_API_KEY || process.env.DSQL_FULL_ACCESS_API_KEY || process.env.DSQL_API_KEY + }, + port, + hostname: host, + path: path2 + }; + scheme.request(requestObject, (response) => { + var str = ""; + response.on("data", function(chunk) { + str += chunk; + }); + response.on("end", function() { + try { + resolve(JSON.parse(str)); + } catch (error) { + reject({ + error: error.message, + result: str + }); + } + }); + response.on("error", (err) => { + console.log("DSQL get Error,", err.message); + resolve(null); + }); + }).end(); + }); + return httpResponse; +} + +// utils/post.ts +init_grab_host_names(); +import path2 from "path"; +import fs5 from "fs"; + +// package-shared/functions/api/query/post.ts +var import_lodash2 = __toESM(require_lodash(), 1); +init_serverError(); +async function apiPost({ + query, + dbFullName, + queryValues, + tableName, + dbSchema, + useLocal +}) { + if (typeof query === "string" && query?.match(/^create |^alter |^drop /i)) { + return { success: false, msg: "Wrong Input" }; + } + if (typeof query === "object" && query?.action?.match(/^create |^alter |^drop /i)) { + return { success: false, msg: "Wrong Input" }; + } + let results; + try { + let { result, error } = await runQuery({ + dbFullName, + query, + dbSchema, + queryValuesArray: queryValues, + tableName, + local: useLocal + }); + results = result; + if (error) + throw error; + let tableSchema; + if (dbSchema) { + const targetTable = dbSchema.tables.find((table) => table.tableName === tableName); + if (targetTable) { + const clonedTargetTable = import_lodash2.default.cloneDeep(targetTable); + delete clonedTargetTable.childTable; + delete clonedTargetTable.childTableDbFullName; + delete clonedTargetTable.childTableName; + delete clonedTargetTable.childrenTables; + delete clonedTargetTable.updateData; + delete clonedTargetTable.tableNameOld; + delete clonedTargetTable.indexes; + tableSchema = clonedTargetTable; + } + } + return { + success: true, + payload: results, + error, + schema: tableName && tableSchema ? tableSchema : undefined + }; + } catch (error) { + serverError({ + component: "/api/query/post/lines-132-142", + message: error.message + }); + return { + success: false, + payload: results, + error: error.message + }; + } +} + +// utils/post.ts +async function post({ + key, + query, + queryValues, + database, + tableName, + useLocal, + user_id +}) { + const grabedHostNames = grabHostNames(); + const { host, port, scheme } = grabedHostNames; + const { DSQL_DB_HOST, DSQL_DB_USERNAME, DSQL_DB_PASSWORD, DSQL_DB_NAME } = process.env; + if (DSQL_DB_HOST?.match(/./) && DSQL_DB_USERNAME?.match(/./) && DSQL_DB_PASSWORD?.match(/./) && DSQL_DB_NAME?.match(/./) && useLocal) { + let dbSchema; + try { + const localDbSchemaPath = path2.resolve(process.cwd(), "dsql.schema.json"); + dbSchema = JSON.parse(fs5.readFileSync(localDbSchemaPath, "utf8")); + } catch (error) { + } + return await apiPost({ + dbFullName: DSQL_DB_NAME, + query, + dbSchema, + queryValues, + tableName, + useLocal + }); + } + const httpResponse = await new Promise((resolve, reject) => { + const reqPayloadString = JSON.stringify({ + query, + queryValues, + database: process.env.DSQL_API_DB_NAME || database, + tableName: tableName ? tableName : null + }).replace(/\n|\r|\n\r/gm, ""); + try { + JSON.parse(reqPayloadString); + } catch (error) { + console.log(error); + console.log(reqPayloadString); + return { + success: false, + payload: null, + error: "Query object is invalid. Please Check query data values" + }; + } + const reqPayload = reqPayloadString; + const requPath = `/api/query/${user_id || grabedHostNames.user_id}/post`; + const httpsRequest = scheme.request({ + method: "POST", + headers: { + "Content-Type": "application/json", + "Content-Length": Buffer.from(reqPayload).length, + Authorization: key || process.env.DSQL_FULL_ACCESS_API_KEY || process.env.DSQL_API_KEY + }, + port, + hostname: host, + path: requPath + }, (response) => { + var str = ""; + response.on("data", function(chunk) { + str += chunk; + }); + response.on("end", function() { + try { + resolve(JSON.parse(str)); + } catch (error) { + console.log("Route ERROR:", error.message); + resolve({ + success: false, + payload: null, + error: error.message, + errPayload: str + }); + } + }); + response.on("error", (err) => { + resolve({ + success: false, + payload: null, + error: err.message + }); + }); + }); + httpsRequest.write(reqPayload); + httpsRequest.on("error", (error) => { + console.log("HTTPS request ERROR =>", error); + }); + httpsRequest.end(); + }); + return httpResponse; +} + +// utils/get-schema.ts +init_grab_host_names(); +async function getSchema({ + key, + database, + field, + table, + user_id +}) { + const grabedHostNames = grabHostNames(); + const { host, port, scheme } = grabedHostNames; + const httpResponse = await new Promise((resolve, reject) => { + const queryObject = { database, field, table }; + let query = Object.keys(queryObject).filter((k) => queryObject[k]).map((k) => `${k}=${queryObject[k]}`).join("&"); + scheme.request({ + method: "GET", + headers: { + "Content-Type": "application/json", + Authorization: key || process.env.DSQL_FULL_ACCESS_API_KEY || process.env.DSQL_API_KEY + }, + port, + hostname: host, + path: `/api/query/${user_id || grabedHostNames.user_id}/get-schema` + (query?.match(/./) ? `?${query}` : "") + }, (response) => { + var str = ""; + response.on("data", function(chunk) { + str += chunk; + }); + response.on("end", function() { + resolve(JSON.parse(str)); + }); + response.on("error", (err) => { + resolve(null); + }); + }).end(); + }); + return { + success: true, + payload: httpResponse + }; +} + +// utils/upload-image.ts +init_grab_host_names(); +async function uploadImage({ + key, + payload, + user_id +}) { + const grabedHostNames = grabHostNames(); + const { host, port, scheme } = grabedHostNames; + try { + const httpResponse = await new Promise((resolve, reject) => { + const reqPayload = JSON.stringify(payload); + const httpsRequest = scheme.request({ + method: "POST", + headers: { + "Content-Type": "application/json", + "Content-Length": Buffer.from(reqPayload).length, + Authorization: key || process.env.DSQL_FULL_ACCESS_API_KEY || process.env.DSQL_API_KEY + }, + port, + hostname: host, + path: `/api/query/${user_id || grabedHostNames.user_id}/add-image` + }, (response) => { + var str = ""; + response.on("data", function(chunk) { + str += chunk; + }); + response.on("end", function() { + resolve(JSON.parse(str)); + }); + response.on("error", (err) => { + reject(err); + }); + }); + httpsRequest.write(reqPayload); + httpsRequest.end(); + }); + return httpResponse; + } catch (error) { + console.log("Error in uploading image: ", error.message); + return { + success: false, + payload: null, + msg: error.message + }; + } +} +module_upload_image.exports = uploadImage; + +// utils/upload-file.ts +init_grab_host_names(); +async function uploadImage2({ + key, + payload, + user_id +}) { + const grabedHostNames = grabHostNames(); + const { host, port, scheme } = grabedHostNames; + try { + const httpResponse = await new Promise((resolve, reject) => { + const reqPayload = JSON.stringify(payload); + const httpsRequest = scheme.request({ + method: "POST", + headers: { + "Content-Type": "application/json", + "Content-Length": Buffer.from(reqPayload).length, + Authorization: key || process.env.DSQL_FULL_ACCESS_API_KEY || process.env.DSQL_API_KEY + }, + port, + hostname: host, + path: `/api/query/${user_id || grabedHostNames.user_id}/add-file` + }, (response) => { + var str = ""; + response.on("data", function(chunk) { + str += chunk; + }); + response.on("end", function() { + resolve(JSON.parse(str)); + }); + response.on("error", (err) => { + reject(err); + }); + }); + httpsRequest.write(reqPayload); + httpsRequest.end(); + }); + return httpResponse; + } catch (error) { + console.log("Error in uploading file: ", error.message); + return { + success: false, + payload: null, + msg: error.message + }; + } +} + +// utils/delete-file.ts +init_grab_host_names(); +async function deleteFile({ + key, + url, + user_id +}) { + const grabedHostNames = grabHostNames(); + const { host, port, scheme } = grabedHostNames; + try { + const httpResponse = await new Promise((resolve, reject) => { + const reqPayload = JSON.stringify({ url }); + const httpsRequest = scheme.request({ + method: "POST", + headers: { + "Content-Type": "application/json", + "Content-Length": Buffer.from(reqPayload).length, + Authorization: key || process.env.DSQL_FULL_ACCESS_API_KEY || process.env.DSQL_API_KEY + }, + port, + hostname: host, + path: `/api/query/${user_id || grabedHostNames.user_id}/delete-file` + }, (response) => { + var str = ""; + response.on("data", function(chunk) { + str += chunk; + }); + response.on("end", function() { + resolve(JSON.parse(str)); + }); + response.on("error", (err) => { + reject(err); + }); + }); + httpsRequest.write(reqPayload); + httpsRequest.end(); + }); + return httpResponse; + } catch (error) { + console.log("Error deleting file: ", error.message); + return { + success: false, + payload: null, + msg: error.message + }; + } +} +module_delete_file.exports = deleteFile; + +// users/add-user.ts +init_grab_host_names(); +import path7 from "path"; +import fs11 from "fs"; + +// package-shared/functions/backend/addUsersTableToDb.ts +init_serverError(); +init_DB_HANDLER(); + +// package-shared/functions/backend/grabUserSchemaData.ts +init_serverError(); +import fs6 from "fs"; +import path3 from "path"; +function grabUserSchemaData({ + userId +}) { + try { + const userSchemaFilePath = path3.resolve(process.cwd(), `${process.env.DSQL_USER_DB_SCHEMA_PATH}/user-${userId}/main.json`); + const userSchemaData = JSON.parse(fs6.readFileSync(userSchemaFilePath, "utf-8")); + return userSchemaData; + } catch (error) { + serverError({ + component: "grabUserSchemaData", + message: error.message + }); + return null; + } +} + +// package-shared/functions/backend/setUserSchemaData.ts +init_serverError(); +import fs7 from "fs"; +import path4 from "path"; +function setUserSchemaData({ + userId, + schemaData +}) { + try { + const userSchemaFilePath = path4.resolve(process.cwd(), `${process.env.DSQL_USER_DB_SCHEMA_PATH}/user-${userId}/main.json`); + fs7.writeFileSync(userSchemaFilePath, JSON.stringify(schemaData), "utf8"); + return true; + } catch (error) { + serverError({ + component: "/functions/backend/setUserSchemaData", + message: error.message + }); + return false; + } +} + +// package-shared/shell/createDbFromSchema.ts +import path6 from "path"; +import fs10 from "fs"; + +// package-shared/shell/utils/dbHandler.ts +var import_serverless_mysql4 = __toESM(require_serverless_mysql(), 1); +init_grabDbSSL(); +import fs8 from "fs"; +import path5 from "path"; +var __dirname = "/home/benoti/Projects/Git/moduletrace/datasquirel/datasquirel/package-shared/shell/utils"; +var connection = import_serverless_mysql4.default({ + config: { + host: process.env.DSQL_DB_HOST, + user: process.env.DSQL_DB_USERNAME, + password: process.env.DSQL_DB_PASSWORD, + database: process.env.DSQL_DB_NAME, + charset: "utf8mb4", + ssl: grabDbSSL() + } +}); +async function dbHandler({ + query, + values, + database +}) { + let isDbCorrect = true; + if (database) { + connection = import_serverless_mysql4.default({ + config: { + host: process.env.DSQL_DB_HOST, + user: process.env.DSQL_DB_USERNAME, + password: process.env.DSQL_DB_PASSWORD, + database, + charset: "utf8mb4", + ssl: grabDbSSL() + } + }); + } + if (!isDbCorrect) { + console.log("Shell Db Handler ERROR in switching Database! Operation Failed!"); + return null; + } + let results; + try { + if (query && values) { + results = await connection.query(query, values); + } else { + results = await connection.query(query); + } + await connection.end(); + } catch (error) { + if (process.env.FIRST_RUN) { + return null; + } + console.log("ERROR in dbHandler =>", error.message); + console.log(error); + console.log(connection.config()); + fs8.appendFileSync(path5.resolve(__dirname, "../.tmp/dbErrorLogs.txt"), JSON.stringify(error, null, 4) + "\n" + Date() + "\n\n\n", "utf8"); + results = null; + } + if (results) { + return JSON.parse(JSON.stringify(results)); + } else { + return null; + } +} + +// package-shared/shell/utils/noDatabaseDbHandler.ts +async function noDatabaseDbHandler(queryString) { + let results; + try { + results = await dbHandler({ query: queryString }); + } catch (error) { + console.log("ERROR in noDatabaseDbHandler =>", error.message); + } + if (results) { + return results; + } else { + return null; + } +} + +// package-shared/shell/utils/varDatabaseDbHandler.ts +async function varDatabaseDbHandler({ + queryString, + queryValuesArray, + database, + tableSchema +}) { + let results; + try { + if (queryString && queryValuesArray && Array.isArray(queryValuesArray) && queryValuesArray[0]) { + results = await dbHandler({ + query: queryString, + values: queryValuesArray, + database + }); + } else { + results = await dbHandler({ + query: queryString, + database + }); + } + } catch (error) { + console.log("Shell Vardb Error =>", error.message); + } + return results; +} + +// package-shared/shell/utils/generateColumnDescription.ts +function generateColumnDescription({ + columnData, + primaryKeySet +}) { + const { + fieldName, + dataType, + nullValue, + primaryKey, + autoIncrement, + defaultValue, + defaultValueLiteral, + onUpdateLiteral, + notNullValue + } = columnData; + let fieldEntryText = ""; + fieldEntryText += `\`${fieldName}\` ${dataType}`; + if (nullValue) { + fieldEntryText += " DEFAULT NULL"; + } else if (defaultValueLiteral) { + fieldEntryText += ` DEFAULT ${defaultValueLiteral}`; + } else if (defaultValue) { + if (String(defaultValue).match(/uuid\(\)/i)) { + fieldEntryText += ` DEFAULT UUID()`; + } else { + fieldEntryText += ` DEFAULT '${defaultValue}'`; + } + } else if (notNullValue) { + fieldEntryText += ` NOT NULL`; + } + if (onUpdateLiteral) { + fieldEntryText += ` ON UPDATE ${onUpdateLiteral}`; + } + if (primaryKey && !primaryKeySet) { + fieldEntryText += " PRIMARY KEY"; + primaryKeySet = true; + } + if (autoIncrement) { + fieldEntryText += " AUTO_INCREMENT"; + primaryKeySet = true; + } + return { + fieldEntryText, + newPrimaryKeySet: primaryKeySet || false + }; +} + +// package-shared/shell/utils/supplementTable.ts +function supplementTable({ tableInfoArray }) { + let finalTableArray = tableInfoArray; + const defaultFields = require_defaultFields(); + let primaryKeyExists = finalTableArray.filter((_field) => _field.primaryKey); + defaultFields.forEach((field) => { + let fieldExists = finalTableArray.filter((_field) => _field.fieldName === field.fieldName); + if (fieldExists && fieldExists[0]) { + return; + } else if (field.fieldName === "id" && !primaryKeyExists[0]) { + finalTableArray.unshift(field); + } else { + finalTableArray.push(field); + } + }); + return finalTableArray; +} + +// package-shared/shell/utils/createTable.ts +async function createTable({ + dbFullName, + tableName, + tableInfoArray, + dbSchema, + clone, + tableSchema, + recordedDbEntry +}) { + const finalTable = supplementTable({ tableInfoArray }); + const createTableQueryArray = []; + createTableQueryArray.push(`CREATE TABLE IF NOT EXISTS \`${tableName}\` (`); + try { + if (!recordedDbEntry) { + throw new Error("Recorded Db entry not found!"); + } + const existingTable = await varDatabaseDbHandler({ + database: "datasquirel", + queryString: `SELECT * FROM user_database_tables WHERE db_id = ? AND table_slug = ?`, + queryValuesArray: [recordedDbEntry.id, tableSchema?.tableName] + }); + const table = existingTable?.[0]; + if (!table?.id) { + const newTableEntry = await dbHandler({ + query: `INSERT INTO user_database_tables SET ?`, + values: { + user_id: recordedDbEntry.user_id, + db_id: recordedDbEntry.id, + db_slug: recordedDbEntry.db_slug, + table_name: tableSchema?.tableFullName, + table_slug: tableSchema?.tableName, + child_table: tableSchema?.childTable ? "1" : null, + child_table_parent_database: tableSchema?.childTableDbFullName || null, + child_table_parent_table: tableSchema?.childTableName || null, + date_created: Date(), + date_created_code: Date.now(), + date_updated: Date(), + date_updated_code: Date.now() + }, + database: "datasquirel" + }); + } + } catch (error) { + } + let primaryKeySet = false; + let foreignKeys = []; + for (let i = 0;i < finalTable.length; i++) { + const column = finalTable[i]; + const { + fieldName, + dataType, + nullValue, + primaryKey, + autoIncrement, + defaultValue, + defaultValueLiteral, + foreignKey, + updatedField, + onUpdate, + onUpdateLiteral, + onDelete, + onDeleteLiteral, + defaultField, + encrypted, + json, + newTempField, + notNullValue, + originName, + plainText, + pattern, + patternFlags, + richText + } = column; + if (foreignKey) { + foreignKeys.push({ + ...column + }); + } + let { fieldEntryText, newPrimaryKeySet } = generateColumnDescription({ + columnData: column, + primaryKeySet + }); + primaryKeySet = newPrimaryKeySet; + const comma = (() => { + if (foreignKeys[0]) + return ","; + if (i === finalTable.length - 1) + return ""; + return ","; + })(); + createTableQueryArray.push(" " + fieldEntryText + comma); + } + if (foreignKeys[0]) { + foreignKeys.forEach((foreighKey, index, array) => { + const fieldName = foreighKey.fieldName; + const destinationTableName = foreighKey.foreignKey?.destinationTableName; + const destinationTableColumnName = foreighKey.foreignKey?.destinationTableColumnName; + const cascadeDelete = foreighKey.foreignKey?.cascadeDelete; + const cascadeUpdate = foreighKey.foreignKey?.cascadeUpdate; + const foreignKeyName = foreighKey.foreignKey?.foreignKeyName; + const comma = (() => { + if (index === foreignKeys.length - 1) + return ""; + return ","; + })(); + createTableQueryArray.push(` CONSTRAINT \`${foreignKeyName}\` FOREIGN KEY (\`${fieldName}\`) REFERENCES \`${destinationTableName}\`(${destinationTableColumnName})${cascadeDelete ? " ON DELETE CASCADE" : ""}${cascadeUpdate ? " ON UPDATE CASCADE" : ""}${comma}`); + }); + } + createTableQueryArray.push(`) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;`); + const createTableQuery = createTableQueryArray.join("\n"); + const newTable = await varDatabaseDbHandler({ + queryString: createTableQuery, + database: dbFullName + }); + return newTable; +} + +// package-shared/shell/utils/updateTable.ts +import fs9 from "fs"; +var defaultFieldsRegexp2 = /^id$|^uuid$|^date_created$|^date_created_code$|^date_created_timestamp$|^date_updated$|^date_updated_code$|^date_updated_timestamp$/; +async function updateTable({ + dbFullName, + tableName, + tableInfoArray, + userId, + dbSchema, + tableIndexes, + tableSchema, + clone, + childDb, + tableIndex, + tableNameFull, + recordedDbEntry +}) { + let errorLogs = []; + let upToDateTableFieldsArray = tableInfoArray; + try { + const updateTableQueryArray = []; + const constraintsQueryArray = []; + updateTableQueryArray.push(`ALTER TABLE \`${tableName}\``); + if (childDb) { + try { + if (!recordedDbEntry) { + throw new Error("Recorded Db entry not found!"); + } + const existingTable = await varDatabaseDbHandler({ + database: "datasquirel", + queryString: `SELECT * FROM user_database_tables WHERE db_id = ? AND table_slug = ?`, + queryValuesArray: [recordedDbEntry.id, tableName] + }); + const table = existingTable?.[0]; + if (!table?.id) { + const newTableEntry = await dbHandler({ + query: `INSERT INTO user_database_tables SET ?`, + values: { + user_id: recordedDbEntry.user_id, + db_id: recordedDbEntry.id, + db_slug: recordedDbEntry.db_slug, + table_name: tableNameFull, + table_slug: tableName, + child_table: tableSchema?.childTable ? "1" : null, + child_table_parent_database: tableSchema?.childTableDbFullName || null, + child_table_parent_table: tableSchema.childTableName || null, + date_created: Date(), + date_created_code: Date.now(), + date_updated: Date(), + date_updated_code: Date.now() + }, + database: "datasquirel" + }); + } + } catch (error) { + } + } + const allExistingIndexes = await varDatabaseDbHandler({ + queryString: `SHOW INDEXES FROM \`${tableName}\``, + database: dbFullName + }); + const allExistingColumns = await varDatabaseDbHandler({ + queryString: `SHOW COLUMNS FROM \`${tableName}\``, + database: dbFullName + }); + const updatedColumnsArray = []; + for (let e = 0;e < allExistingColumns.length; e++) { + const { Field } = allExistingColumns[e]; + if (Field.match(defaultFieldsRegexp2)) + continue; + let existingEntry = upToDateTableFieldsArray.filter((column) => column.fieldName === Field || column.originName === Field); + if (existingEntry && existingEntry[0]) { + if (existingEntry[0].updatedField && existingEntry[0].fieldName) { + updatedColumnsArray.push(existingEntry[0].fieldName); + const renameColumn = await varDatabaseDbHandler({ + queryString: `ALTER TABLE ${tableName} RENAME COLUMN \`${existingEntry[0].originName}\` TO \`${existingEntry[0].fieldName}\``, + database: dbFullName + }); + console.log(`Column Renamed from "${existingEntry[0].originName}" to "${existingEntry[0].fieldName}"`); + try { + const userSchemaData = dbSchema; + const targetDbIndex = userSchemaData.findIndex((db) => db.dbFullName === dbFullName); + const targetTableIndex = userSchemaData[targetDbIndex].tables.findIndex((table) => table.tableName === tableName); + const targetFieldIndex = userSchemaData[targetDbIndex].tables[targetTableIndex].fields.findIndex((field) => field.fieldName === existingEntry[0].fieldName); + delete userSchemaData[targetDbIndex].tables[targetTableIndex].fields[targetFieldIndex]["originName"]; + delete userSchemaData[targetDbIndex].tables[targetTableIndex].fields[targetFieldIndex]["updatedField"]; + upToDateTableFieldsArray = userSchemaData[targetDbIndex].tables[targetTableIndex].fields; + fs9.writeFileSync(`${String(process.env.DSQL_USER_DB_SCHEMA_PATH)}/user-${userId}/main.json`, JSON.stringify(userSchemaData), "utf8"); + } catch (error) { + console.log("Update table error =>", error.message); + } + } + continue; + } else { + await varDatabaseDbHandler({ + queryString: `ALTER TABLE ${tableName} DROP COLUMN \`${Field}\``, + database: dbFullName + }); + } + } + for (let f = 0;f < allExistingIndexes.length; f++) { + const { Key_name, Index_comment } = allExistingIndexes[f]; + if (Index_comment?.match(/schema_index/)) { + try { + const existingKeyInSchema = tableIndexes?.filter((indexObject) => indexObject.alias === Key_name); + if (!existingKeyInSchema?.[0]) + throw new Error(`This Index(${Key_name}) Has been Deleted!`); + } catch (error) { + await varDatabaseDbHandler({ + queryString: `ALTER TABLE ${tableName} DROP INDEX \`${Key_name}\``, + database: dbFullName + }); + } + } + } + if (tableIndexes && tableIndexes[0]) { + for (let g = 0;g < tableIndexes.length; g++) { + const { indexType, indexName, indexTableFields, alias } = tableIndexes[g]; + if (!alias?.match(/./)) + continue; + try { + const existingKeyInDb = allExistingIndexes.filter((indexObject) => indexObject.Key_name === alias); + if (!existingKeyInDb[0]) + throw new Error("This Index Does not Exist"); + } catch (error) { + await varDatabaseDbHandler({ + queryString: `CREATE${indexType?.match(/fullText/i) ? " FULLTEXT" : ""} INDEX \`${alias}\` ON ${tableName}(${indexTableFields?.map((nm) => nm.value).map((nm) => `\`${nm}\``).join(",")}) COMMENT 'schema_index'`, + database: dbFullName + }); + } + } + } + const allForeignKeys = await varDatabaseDbHandler({ + queryString: `SELECT CONSTRAINT_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE CONSTRAINT_SCHEMA = '${dbFullName}' AND TABLE_NAME='${tableName}' AND CONSTRAINT_TYPE='FOREIGN KEY'`, + database: dbFullName + }); + if (allForeignKeys) { + for (let c = 0;c < allForeignKeys.length; c++) { + const { CONSTRAINT_NAME } = allForeignKeys[c]; + if (CONSTRAINT_NAME.match(/PRIMARY/)) + continue; + const dropForeignKey = await varDatabaseDbHandler({ + queryString: `ALTER TABLE ${tableName} DROP FOREIGN KEY \`${CONSTRAINT_NAME}\``, + database: dbFullName + }); + } + } + for (let i = 0;i < upToDateTableFieldsArray.length; i++) { + const column = upToDateTableFieldsArray[i]; + const prevColumn = upToDateTableFieldsArray[i - 1]; + const nextColumn = upToDateTableFieldsArray[i + 1]; + const { + fieldName, + dataType, + nullValue, + primaryKey, + autoIncrement, + defaultValue, + defaultValueLiteral, + foreignKey, + updatedField + } = column; + if (fieldName?.match(/^id$|^date_/)) + continue; + let updateText = ""; + let existingColumnIndex; + let existingColumn = allExistingColumns && allExistingColumns[0] ? allExistingColumns.filter((_column, _index) => { + if (_column.Field === fieldName) { + existingColumnIndex = _index; + return true; + } + }) : null; + let { fieldEntryText } = generateColumnDescription({ + columnData: column + }); + if (existingColumn && existingColumn[0]?.Field) { + const { Field, Type, Null, Key, Default, Extra } = existingColumn[0]; + let isColumnReordered = i < existingColumnIndex; + if (Field === fieldName && !isColumnReordered && dataType?.toUpperCase() === Type.toUpperCase()) { + updateText += `MODIFY COLUMN ${fieldEntryText}`; + } else { + if (userId) { + updateText += `MODIFY COLUMN ${fieldEntryText}${isColumnReordered ? prevColumn?.fieldName ? " AFTER `" + prevColumn.fieldName + "`" : nextColumn?.fieldName ? " BEFORE `" + nextColumn.fieldName + "`" : "" : ""}`; + } else { + updateText += `MODIFY COLUMN ${fieldEntryText}`; + } + } + } else if (prevColumn && prevColumn.fieldName) { + updateText += `ADD COLUMN ${fieldEntryText} AFTER \`${prevColumn.fieldName}\``; + } else if (nextColumn && nextColumn.fieldName) { + updateText += `ADD COLUMN ${fieldEntryText} BEFORE \`${nextColumn.fieldName}\``; + } else { + updateText += `ADD COLUMN ${fieldEntryText}`; + } + updateTableQueryArray.push(updateText + ","); + if (!clone && foreignKey) { + const { + destinationTableName, + destinationTableColumnName, + cascadeDelete, + cascadeUpdate, + foreignKeyName + } = foreignKey; + const foreinKeyText = `ADD CONSTRAINT \`${foreignKeyName}\` FOREIGN KEY (\`${fieldName}\`) REFERENCES \`${destinationTableName}\`(\`${destinationTableColumnName}\`)${cascadeDelete ? " ON DELETE CASCADE" : ""}${cascadeUpdate ? " ON UPDATE CASCADE" : ""}`; + const finalQueryString = `ALTER TABLE \`${tableName}\` ${foreinKeyText}`; + const addForeignKey = await varDatabaseDbHandler({ + database: dbFullName, + queryString: finalQueryString + }); + if (!addForeignKey?.serverStatus) { + errorLogs.push(addForeignKey); + } + } + } + const updateTableQuery = updateTableQueryArray.join(" ").replace(/,$/, ""); + if (updateTableQueryArray.length > 1) { + const updateTable2 = await varDatabaseDbHandler({ + queryString: updateTableQuery, + database: dbFullName + }); + return updateTable2; + } else { + return "No Changes Made to Table"; + } + } catch (error) { + console.log('Error in "updateTable" shell function =>', error.message); + return "Error in Updating Table"; + } +} + +// package-shared/shell/createDbFromSchema.ts +init_ejson(); +var __dirname = "/home/benoti/Projects/Git/moduletrace/datasquirel/datasquirel/package-shared/shell"; +require_main().config({ path: "./../.env" }); +var execFlag = process.argv.find((arg) => arg === "--exec"); +async function createDbFromSchema({ + userId, + targetDatabase, + dbSchemaData +}) { + const schemaPath = userId ? path6.join(String(process.env.DSQL_USER_DB_SCHEMA_PATH), `/user-${userId}/main.json`) : path6.resolve(__dirname, "../../jsonData/dbSchemas/main.json"); + const dbSchema = dbSchemaData || ejson_default.parse(fs10.readFileSync(schemaPath, "utf8")); + if (!dbSchema) { + console.log("Schema Not Found!"); + return; + } + for (let i = 0;i < dbSchema.length; i++) { + const database = dbSchema[i]; + const { dbFullName, tables, dbName, dbSlug, childrenDatabases } = database; + if (targetDatabase && dbFullName != targetDatabase) { + continue; + } + const dbCheck = await noDatabaseDbHandler(`SELECT SCHEMA_NAME AS dbFullName FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = '${dbFullName}'`); + if (dbCheck && dbCheck[0]?.dbFullName) { + } else { + const newDatabase = await noDatabaseDbHandler(`CREATE DATABASE IF NOT EXISTS \`${dbFullName}\` CHARACTER SET utf8mb4 COLLATE utf8mb4_bin`); + } + const allTables = await noDatabaseDbHandler(`SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='${dbFullName}'`); + for (let tb = 0;tb < allTables.length; tb++) { + const { TABLE_NAME } = allTables[tb]; + if (!tables.filter((_table) => _table.tableName === TABLE_NAME)[0]) { + const oldTableFilteredArray = tables.filter((_table) => _table.tableNameOld && _table.tableNameOld === TABLE_NAME); + if (oldTableFilteredArray && oldTableFilteredArray[0]) { + console.log("Renaming Table"); + await varDatabaseDbHandler({ + queryString: `RENAME TABLE \`${oldTableFilteredArray[0].tableNameOld}\` TO \`${oldTableFilteredArray[0].tableName}\``, + database: dbFullName + }); + } else { + console.log(`Dropping Table from ${dbFullName}`); + await varDatabaseDbHandler({ + queryString: `DROP TABLE \`${TABLE_NAME}\``, + database: dbFullName + }); + const deleteTableEntry = await dbHandler({ + query: `DELETE FROM user_database_tables WHERE user_id = ? AND db_slug = ? AND table_slug = ?`, + values: [userId, dbSlug, TABLE_NAME], + database: "datasquirel" + }); + } + } + } + const recordedDbEntryArray = userId ? await varDatabaseDbHandler({ + database: "datasquirel", + queryString: `SELECT * FROM user_databases WHERE db_full_name = ?`, + queryValuesArray: [dbFullName] + }) : undefined; + const recordedDbEntry = recordedDbEntryArray?.[0]; + for (let t = 0;t < tables.length; t++) { + const table = tables[t]; + const { tableName, fields, indexes } = table; + const tableCheck = await varDatabaseDbHandler({ + queryString: ` + SELECT EXISTS ( + SELECT + TABLE_NAME + FROM + information_schema.TABLES + WHERE + TABLE_SCHEMA = ? AND + TABLE_NAME = ? + ) AS tableExists`, + queryValuesArray: [dbFullName, table.tableName], + database: dbFullName + }); + if (tableCheck && tableCheck[0]?.tableExists > 0) { + const updateExistingTable = await updateTable({ + dbFullName, + tableName, + tableNameFull: table.tableFullName, + tableInfoArray: fields, + userId, + dbSchema, + tableIndexes: indexes, + tableIndex: t, + childDb: database.childDatabase || undefined, + recordedDbEntry, + tableSchema: table + }); + if (table.childrenTables && table.childrenTables[0]) { + for (let ch = 0;ch < table.childrenTables.length; ch++) { + const childTable = table.childrenTables[ch]; + const updateExistingChildTable = await updateTable({ + dbFullName: childTable.dbNameFull, + tableName: childTable.tableName, + tableNameFull: childTable.tableNameFull, + tableInfoArray: fields, + userId, + dbSchema, + tableIndexes: indexes, + clone: true, + childDb: database.childDatabase || undefined, + recordedDbEntry, + tableSchema: table + }); + } + } + } else { + const createNewTable = await createTable({ + tableName, + tableInfoArray: fields, + dbFullName, + dbSchema, + tableSchema: table, + recordedDbEntry + }); + if (indexes && indexes[0]) { + if (indexes && indexes[0]) { + for (let g = 0;g < indexes.length; g++) { + const { + indexType, + indexName, + indexTableFields, + alias + } = indexes[g]; + if (!alias?.match(/./)) + continue; + try { + const allExistingIndexes = await varDatabaseDbHandler({ + queryString: `SHOW INDEXES FROM \`${tableName}\``, + database: dbFullName + }); + const existingKeyInDb = allExistingIndexes.filter((indexObject) => indexObject.Key_name === alias); + if (!existingKeyInDb[0]) + throw new Error("This Index Does not Exist"); + } catch (error) { + await varDatabaseDbHandler({ + queryString: `CREATE${indexType?.match(/fullText/i) ? " FULLTEXT" : ""} INDEX \`${alias}\` ON ${tableName}(${indexTableFields?.map((nm) => nm.value).map((nm) => `\`${nm}\``).join(",")}) COMMENT 'schema_index'`, + database: dbFullName + }); + } + } + } + } + } + } + if (childrenDatabases?.[0]) { + for (let ch = 0;ch < childrenDatabases.length; ch++) { + const childDb = childrenDatabases[ch]; + const { dbFullName: dbFullName2 } = childDb; + await createDbFromSchema({ + userId, + targetDatabase: dbFullName2 + }); + } + } + } +} +if (execFlag) { + createDbFromSchema({}); +} + +// package-shared/functions/backend/addUsersTableToDb.ts +init_LOCAL_DB_HANDLER(); + +// package-shared/functions/backend/grabSchemaFieldsFromData.ts +init_serverError(); +function grabSchemaFieldsFromData({ + data, + fields, + excludeData, + excludeFields +}) { + try { + const possibleFields = require_possibleFields(); + const dataTypes = require_dataTypes(); + const finalFields = []; + let filteredFields = []; + if (data && Object.keys(data)?.[0]) { + filteredFields = Object.keys(data); + } + if (fields) { + filteredFields = [...filteredFields, ...fields]; + filteredFields = [...new Set(filteredFields)]; + } + filteredFields = filteredFields.filter((fld) => !excludeData || !Object.keys(excludeData).includes(fld)).filter((fld) => !excludeFields || !excludeFields.find((exlFld) => exlFld.fieldName == fld)); + filteredFields.forEach((fld) => { + const value = data ? data[fld] : null; + if (typeof value == "string") { + const newField = { + fieldName: fld, + dataType: value.length > 255 ? "TEXT" : "VARCHAR(255)" + }; + if (Boolean(value.match(/<[^>]+>/g))) { + newField.richText = true; + } + finalFields.push(newField); + } else if (typeof value == "number") { + finalFields.push({ + fieldName: fld, + dataType: "INT" + }); + } else { + finalFields.push({ + fieldName: fld, + dataType: "VARCHAR(255)" + }); + } + }); + return finalFields; + } catch (error) { + console.log(`grabSchemaFieldsFromData.js ERROR: ${error.message}`); + serverError({ + component: "grabSchemaFieldsFromData.js", + message: error.message + }); + return []; + } +} + +// package-shared/functions/backend/grabNewUsersTableSchema.ts +init_serverError(); +function grabNewUsersTableSchema(params) { + try { + const userPreset = require_users(); + const defaultFields = require_defaultFields(); + const supplementalFields = params?.payload ? grabSchemaFieldsFromData({ + data: params?.payload, + excludeData: defaultFields, + excludeFields: userPreset.fields + }) : []; + console.log("supplementalFields", supplementalFields); + const allFields = [...userPreset.fields, ...supplementalFields]; + console.log("allFields", allFields); + const finalFields = [ + ...defaultFields.slice(0, 2), + ...allFields, + ...defaultFields.slice(2) + ]; + userPreset.fields = [...finalFields]; + return userPreset; + } catch (error) { + console.log(`grabNewUsersTableSchema.js ERROR: ${error.message}`); + serverError({ + component: "grabNewUsersTableSchema", + message: error.message + }); + return null; + } +} + +// package-shared/functions/backend/addUsersTableToDb.ts +async function addUsersTableToDb({ + userId, + database, + useLocal, + payload +}) { + try { + const dbFullName = database; + const userPreset = grabNewUsersTableSchema({ payload }); + if (!userPreset) + throw new Error("Couldn't Get User Preset!"); + const userSchemaData = grabUserSchemaData({ userId }); + if (!userSchemaData) + throw new Error("User schema data not found!"); + let targetDatabase = userSchemaData.find((db) => db.dbFullName === database); + if (!targetDatabase) { + throw new Error("Couldn't Find Target Database!"); + } + let existingTableIndex = targetDatabase?.tables.findIndex((table) => table.tableName === "users"); + if (typeof existingTableIndex == "number" && existingTableIndex > 0) { + targetDatabase.tables[existingTableIndex] = userPreset; + } else { + targetDatabase.tables.push(userPreset); + } + setUserSchemaData({ schemaData: userSchemaData, userId }); + const targetDb = useLocal ? await LOCAL_DB_HANDLER(`SELECT id FROM user_databases WHERE user_id=? AND db_slug=?`, [userId, database]) : await DB_HANDLER(`SELECT id FROM user_databases WHERE user_id=? AND db_slug=?`, [userId, database]); + if (targetDb?.[0]) { + const newTableEntry = await addDbEntry({ + dbFullName: "datasquirel", + tableName: "user_database_tables", + data: { + user_id: userId, + db_id: targetDb[0].id, + db_slug: targetDatabase.dbSlug, + table_name: "Users", + table_slug: "users" + }, + useLocal + }); + } + const dbShellUpdate = await createDbFromSchema({ + userId, + targetDatabase: dbFullName + }); + return `Done!`; + } catch (error) { + console.log(`addUsersTableToDb.js ERROR: ${error.message}`); + serverError({ + component: "addUsersTableToDb", + message: error.message, + user: { id: userId } + }); + return error.message; + } +} + +// package-shared/functions/backend/updateUsersTableSchema.ts +init_serverError(); +async function updateUsersTableSchema({ + userId, + database, + newFields, + newPayload +}) { + try { + const dbFullName = database; + const userSchemaData = grabUserSchemaData({ userId }); + if (!userSchemaData) + throw new Error("User schema data not found!"); + let targetDatabaseIndex = userSchemaData.findIndex((db) => db.dbFullName === database); + if (targetDatabaseIndex < 0) { + throw new Error("Couldn't Find Target Database!"); + } + let existingTableIndex = userSchemaData[targetDatabaseIndex]?.tables.findIndex((table) => table.tableName === "users"); + const usersTable = userSchemaData[targetDatabaseIndex].tables[existingTableIndex]; + if (!usersTable?.fields?.[0]) + throw new Error("Users Table Not Found!"); + const additionalFields = grabSchemaFieldsFromData({ + fields: newFields, + data: newPayload + }); + const spliceStartIndex = usersTable.fields.findIndex((field) => field.fieldName === "date_created"); + const finalSpliceStartIndex = spliceStartIndex >= 0 ? spliceStartIndex : 0; + usersTable.fields.splice(finalSpliceStartIndex, 0, ...additionalFields); + setUserSchemaData({ schemaData: userSchemaData, userId }); + const dbShellUpdate = await createDbFromSchema({ + userId, + targetDatabase: dbFullName + }); + return `Done!`; + } catch (error) { + console.log(`addUsersTableToDb.js ERROR: ${error.message}`); + serverError({ + component: "addUsersTableToDb", + message: error.message, + user: { id: userId } + }); + return error.message; + } +} + +// package-shared/functions/api/users/api-create-user.ts +init_varDatabaseDbHandler(); +init_hashPassword(); +async function apiCreateUser({ + encryptionKey, + payload, + database, + userId, + useLocal +}) { + const dbFullName = database; + const API_USER_ID = userId || process.env.DSQL_API_USER_ID; + const finalEncryptionKey = encryptionKey || process.env.DSQL_ENCRYPTION_PASSWORD; + if (!finalEncryptionKey) { + return { + success: false, + msg: "No encryption key provided", + payload: null + }; + } + if (!finalEncryptionKey?.match(/.{8,}/)) { + return { + success: false, + msg: "Encryption key must be at least 8 characters long", + payload: null + }; + } + const hashedPassword = hashPassword({ + encryptionKey: finalEncryptionKey, + password: String(payload.password) + }); + payload.password = hashedPassword; + const fieldsQuery = `SHOW COLUMNS FROM users`; + let fields = await varDatabaseDbHandler2({ + queryString: fieldsQuery, + database: dbFullName, + useLocal + }); + if (!fields?.[0]) { + const newTable = await addUsersTableToDb({ + userId: Number(API_USER_ID), + database: dbFullName, + useLocal, + payload + }); + fields = await varDatabaseDbHandler2({ + queryString: fieldsQuery, + database: dbFullName, + useLocal + }); + } + if (!fields?.[0]) { + return { + success: false, + msg: "Could not create users table" + }; + } + const fieldsTitles = fields.map((fieldObject) => fieldObject.Field); + let invalidField = null; + for (let i = 0;i < Object.keys(payload).length; i++) { + const key = Object.keys(payload)[i]; + if (!fieldsTitles.includes(key)) { + await updateUsersTableSchema({ + userId: Number(API_USER_ID), + database: dbFullName, + newPayload: { + [key]: payload[key] + } + }); + } + } + if (invalidField) { + return { + success: false, + msg: `${invalidField} is not a valid field!` + }; + } + const existingUserQuery = `SELECT * FROM users WHERE email = ?${payload.username ? " OR username = ?" : ""}`; + const existingUserValues = payload.username ? [payload.email, payload.username] : [payload.email]; + const existingUser = await varDatabaseDbHandler2({ + queryString: existingUserQuery, + queryValuesArray: existingUserValues, + database: dbFullName, + useLocal + }); + if (existingUser?.[0]) { + return { + success: false, + msg: "User Already Exists", + payload: null + }; + } + const addUser = await addDbEntry({ + dbContext: "Dsql User", + paradigm: "Full Access", + dbFullName, + tableName: "users", + data: { + ...payload, + image: process.env.DSQL_DEFAULT_USER_IMAGE || "/images/user-preset.png", + image_thumbnail: process.env.DSQL_DEFAULT_USER_IMAGE || "/images/user-preset-thumbnail.png" + }, + useLocal + }); + if (addUser?.insertId) { + const newlyAddedUserQuery = `SELECT id,first_name,last_name,email,username,phone,image,image_thumbnail,city,state,country,zip_code,address,verification_status,more_user_data FROM users WHERE id='${addUser.insertId}'`; + const newlyAddedUser = await varDatabaseDbHandler2({ + queryString: newlyAddedUserQuery, + database: dbFullName, + useLocal + }); + return { + success: true, + payload: newlyAddedUser[0] + }; + } else { + return { + success: false, + msg: "Could not create user", + sqlResult: addUser, + payload: null + }; + } +} + +// users/add-user.ts +async function addUser({ + key, + payload, + database, + encryptionKey, + user_id, + useLocal, + apiUserId +}) { + const { + DSQL_DB_HOST, + DSQL_DB_USERNAME, + DSQL_DB_PASSWORD, + DSQL_DB_NAME, + DSQL_API_USER_ID + } = process.env; + const grabedHostNames = grabHostNames(); + const { host, port, scheme } = grabedHostNames; + if (DSQL_DB_HOST?.match(/./) && DSQL_DB_USERNAME?.match(/./) && DSQL_DB_PASSWORD?.match(/./) && DSQL_DB_NAME?.match(/./) && useLocal) { + let dbSchema; + try { + const localDbSchemaPath = path7.resolve(process.cwd(), "dsql.schema.json"); + dbSchema = JSON.parse(fs11.readFileSync(localDbSchemaPath, "utf8")); + } catch (error) { + } + return await apiCreateUser({ + database: DSQL_DB_NAME, + encryptionKey, + payload, + userId: apiUserId, + useLocal + }); + } + const httpResponse = await new Promise((resolve, reject) => { + const reqPayload = JSON.stringify({ + payload, + database, + encryptionKey + }); + const httpsRequest = scheme.request({ + method: "POST", + headers: { + "Content-Type": "application/json", + "Content-Length": Buffer.from(reqPayload).length, + Authorization: key || process.env.DSQL_FULL_ACCESS_API_KEY || process.env.DSQL_API_KEY + }, + port, + hostname: host, + path: `/api/user/${user_id || grabedHostNames.user_id}/add-user` + }, (response) => { + var str = ""; + response.on("data", function(chunk) { + str += chunk; + }); + response.on("end", function() { + resolve(JSON.parse(str)); + }); + response.on("error", (err) => { + reject(err); + }); + }); + httpsRequest.write(reqPayload); + httpsRequest.end(); + }); + return httpResponse; +} + +// users/update-user.ts +init_grab_host_names(); +import path8 from "path"; +import fs12 from "fs"; + +// package-shared/functions/api/users/api-update-user.ts +init_encrypt(); +init_hashPassword(); +init_varDatabaseDbHandler(); +async function apiUpdateUser({ + payload, + dbFullName, + updatedUserId, + useLocal, + dbSchema +}) { + const existingUserQuery = `SELECT * FROM users WHERE id = ?`; + const existingUserValues = [updatedUserId]; + const existingUser = await varDatabaseDbHandler2({ + queryString: existingUserQuery, + queryValuesArray: existingUserValues, + database: dbFullName, + useLocal + }); + if (!existingUser?.[0]) { + return { + success: false, + msg: "User not found" + }; + } + const data = (() => { + const reqBodyKeys = Object.keys(payload); + const targetTableSchema = (() => { + try { + const targetDatabaseSchema = dbSchema?.tables?.find((tbl) => tbl.tableName == "users"); + return targetDatabaseSchema; + } catch (error) { + return; + } + })(); + const finalData = {}; + reqBodyKeys.forEach((key) => { + const targetFieldSchema = targetTableSchema?.fields?.find((field) => field.fieldName == key); + if (key?.match(/^date_|^id$|^uuid$/)) + return; + let value = payload[key]; + if (targetFieldSchema?.encrypted) { + value = encrypt({ data: value }); + } + finalData[key] = value; + }); + if (finalData.password && typeof finalData.password == "string") { + finalData.password = hashPassword({ password: finalData.password }); + } + return finalData; + })(); + const updateUser = await updateDbEntry({ + dbContext: "Dsql User", + paradigm: "Full Access", + dbFullName, + tableName: "users", + identifierColumnName: "id", + identifierValue: updatedUserId, + data, + useLocal + }); + return { + success: true, + payload: updateUser + }; +} + +// users/update-user.ts +async function updateUser({ + key, + payload, + database, + user_id, + useLocal, + updatedUserId +}) { + const { DSQL_DB_HOST, DSQL_DB_USERNAME, DSQL_DB_PASSWORD, DSQL_DB_NAME } = process.env; + const grabedHostNames = grabHostNames(); + const { host, port, scheme } = grabedHostNames; + if (DSQL_DB_HOST?.match(/./) && DSQL_DB_USERNAME?.match(/./) && DSQL_DB_PASSWORD?.match(/./) && DSQL_DB_NAME?.match(/./) && useLocal) { + let dbSchema; + try { + const localDbSchemaPath = path8.resolve(process.cwd(), "dsql.schema.json"); + dbSchema = JSON.parse(fs12.readFileSync(localDbSchemaPath, "utf8")); + } catch (error) { + } + return await apiUpdateUser({ + payload, + dbFullName: DSQL_DB_NAME, + useLocal, + updatedUserId, + dbSchema + }); + } + const httpResponse = await new Promise((resolve, reject) => { + const reqPayload = JSON.stringify({ + payload, + database, + updatedUserId + }); + const httpsRequest = scheme.request({ + method: "POST", + headers: { + "Content-Type": "application/json", + "Content-Length": Buffer.from(reqPayload).length, + Authorization: process.env.DSQL_FULL_ACCESS_API_KEY || process.env.DSQL_API_KEY || key + }, + port, + hostname: host, + path: `/api/user/${user_id || grabedHostNames.user_id}/update-user` + }, (response) => { + var str = ""; + response.on("data", function(chunk) { + str += chunk; + }); + response.on("end", function() { + resolve(JSON.parse(str)); + }); + response.on("error", (err) => { + reject(err); + }); + }); + httpsRequest.write(reqPayload); + httpsRequest.end(); + }); + return httpResponse; +} + +// users/login-user.ts +init_encrypt(); +init_grab_host_names(); +import fs14 from "fs"; +import path10 from "path"; + +// package-shared/functions/api/users/api-login.ts +init_varDatabaseDbHandler(); +init_hashPassword(); +async function apiLoginUser({ + encryptionKey, + email, + username, + password, + database, + additionalFields, + email_login, + email_login_code, + email_login_field, + token, + skipPassword, + social, + useLocal +}) { + const dbFullName = database; + if (email?.match(/ /) || username && username?.match(/ /) || password && password?.match(/ /)) { + return { + success: false, + msg: "Invalid Email/Password format" + }; + } + let hashedPassword = password ? hashPassword({ + encryptionKey, + password + }) : null; + let foundUser = await varDatabaseDbHandler2({ + queryString: `SELECT * FROM users WHERE email = ? OR username = ?`, + queryValuesArray: [email, username], + database: dbFullName.replace(/[^a-z0-9_]/g, ""), + useLocal + }); + if ((!foundUser || !foundUser[0]) && !social) + return { + success: false, + payload: null, + msg: "No user found" + }; + let isPasswordCorrect = false; + if (foundUser?.[0] && !email_login && skipPassword) { + isPasswordCorrect = true; + } else if (foundUser?.[0] && !email_login) { + isPasswordCorrect = hashedPassword === foundUser[0].password; + } else if (foundUser && foundUser[0] && email_login && email_login_code && email_login_field) { + const tempCode = foundUser[0][email_login_field]; + if (!tempCode) + throw new Error("No code Found!"); + const tempCodeArray = tempCode.split("-"); + const [code, codeDate] = tempCodeArray; + const millisecond15mins = 1000 * 60 * 15; + if (Date.now() - Number(codeDate) > millisecond15mins) { + throw new Error("Code Expired"); + } + isPasswordCorrect = code === email_login_code; + } + let socialUserValid = false; + if (!isPasswordCorrect && !socialUserValid) { + return { + success: false, + msg: "Wrong password, no social login validity", + payload: null + }; + } + if (isPasswordCorrect && email_login) { + const resetTempCode = await varDatabaseDbHandler2({ + queryString: `UPDATE users SET ${email_login_field} = '' WHERE email = ? OR username = ?`, + queryValuesArray: [email, username], + database: dbFullName.replace(/[^a-z0-9_]/g, ""), + useLocal + }); + } + let csrfKey = Math.random().toString(36).substring(2) + "-" + Math.random().toString(36).substring(2); + let userPayload = { + id: foundUser[0].id, + first_name: foundUser[0].first_name, + last_name: foundUser[0].last_name, + username: foundUser[0].username, + email: foundUser[0].email, + phone: foundUser[0].phone, + social_id: foundUser[0].social_id, + image: foundUser[0].image, + image_thumbnail: foundUser[0].image_thumbnail, + verification_status: foundUser[0].verification_status, + social_login: foundUser[0].social_login, + social_platform: foundUser[0].social_platform, + csrf_k: csrfKey, + more_data: foundUser[0].more_user_data, + logged_in_status: true, + date: Date.now() + }; + const resposeObject = { + success: true, + msg: "Login Successful", + payload: userPayload, + userId: foundUser[0].id, + csrf: csrfKey + }; + if (additionalFields && Array.isArray(additionalFields) && additionalFields.length > 0) { + additionalFields.forEach((key) => { + userPayload[key] = foundUser[0][key]; + }); + } + return resposeObject; +} +// package-shared/functions/backend/auth/write-auth-files.ts +import fs13 from "fs"; +import path9 from "path"; +var grabAuthDirs = () => { + const DSQL_AUTH_DIR = process.env.DSQL_AUTH_DIR; + const ROOT_DIR = DSQL_AUTH_DIR?.match(/./) ? DSQL_AUTH_DIR : path9.resolve(process.cwd(), "./.tmp"); + const AUTH_DIR = path9.join(ROOT_DIR, "logins"); + return { root: ROOT_DIR, auth: AUTH_DIR }; +}; +var initAuthFiles = () => { + try { + const authDirs = grabAuthDirs(); + if (!fs13.existsSync(authDirs.root)) + fs13.mkdirSync(authDirs.root, { recursive: true }); + if (!fs13.existsSync(authDirs.auth)) + fs13.mkdirSync(authDirs.auth, { recursive: true }); + return true; + } catch (error) { + console.log(`Error initializing Auth Files: ${error.message}`); + return false; + } +}; +var writeAuthFile = (name, data) => { + initAuthFiles(); + try { + fs13.writeFileSync(path9.join(grabAuthDirs().auth, name), data); + return true; + } catch (error) { + console.log(`Error writing Auth File: ${error.message}`); + return false; + } +}; +var deleteAuthFile = (name) => { + try { + return fs13.rmSync(path9.join(grabAuthDirs().auth, name)); + } catch (error) { + console.log(`Error deleting Auth File: ${error.message}`); + return null; + } +}; +var checkAuthFile = (name) => { + try { + return fs13.existsSync(path9.join(grabAuthDirs().auth, name)); + return true; + } catch (error) { + console.log(`Error checking Auth File: ${error.message}`); + return false; + } +}; + +// users/login-user.ts +async function loginUser({ + key, + payload, + database, + additionalFields, + response, + encryptionKey, + encryptionSalt, + email_login, + email_login_code, + temp_code_field, + token, + user_id, + skipPassword, + useLocal, + apiUserID, + skipWriteAuthFile +}) { + const grabedHostNames = grabHostNames(); + const { host, port, scheme } = grabedHostNames; + const defaultTempLoginFieldName = "temp_login_code"; + const emailLoginTempCodeFieldName = email_login ? temp_code_field ? temp_code_field : defaultTempLoginFieldName : undefined; + const finalEncryptionKey = encryptionKey || process.env.DSQL_ENCRYPTION_PASSWORD; + const finalEncryptionSalt = encryptionSalt || process.env.DSQL_ENCRYPTION_SALT; + if (!finalEncryptionKey?.match(/.{8,}/)) { + console.log("Encryption key is invalid"); + return { + success: false, + payload: null, + msg: "Encryption key is invalid" + }; + } + if (!finalEncryptionSalt?.match(/.{8,}/)) { + console.log("Encryption salt is invalid"); + return { + success: false, + payload: null, + msg: "Encryption salt is invalid" + }; + } + if (!payload.email) { + return { + success: false, + payload: null, + msg: "Email Required" + }; + } + let httpResponse = { + success: false + }; + const { DSQL_DB_HOST, DSQL_DB_USERNAME, DSQL_DB_PASSWORD, DSQL_DB_NAME } = process.env; + if (DSQL_DB_HOST?.match(/./) && DSQL_DB_USERNAME?.match(/./) && DSQL_DB_PASSWORD?.match(/./) && DSQL_DB_NAME?.match(/./) && useLocal) { + let dbSchema; + try { + const localDbSchemaPath = path10.resolve(process.cwd(), "dsql.schema.json"); + dbSchema = JSON.parse(fs14.readFileSync(localDbSchemaPath, "utf8")); + } catch (error) { + } + httpResponse = await apiLoginUser({ + database: process.env.DSQL_DB_NAME || "", + email: payload.email, + username: payload.username, + password: payload.password, + skipPassword, + encryptionKey: finalEncryptionKey, + additionalFields, + email_login, + email_login_code, + email_login_field: emailLoginTempCodeFieldName, + token, + useLocal + }); + } else { + httpResponse = await new Promise((resolve, reject) => { + const reqPayload = { + encryptionKey: finalEncryptionKey, + payload, + database, + additionalFields, + email_login, + email_login_code, + email_login_field: emailLoginTempCodeFieldName, + token, + skipPassword + }; + const reqPayloadJSON = JSON.stringify(reqPayload); + const httpsRequest = scheme.request({ + method: "POST", + headers: { + "Content-Type": "application/json", + "Content-Length": Buffer.from(reqPayloadJSON).length, + Authorization: key || process.env.DSQL_FULL_ACCESS_API_KEY || process.env.DSQL_API_KEY + }, + port, + hostname: host, + path: `/api/user/${user_id || grabedHostNames.user_id}/login-user` + }, (res) => { + var str = ""; + res.on("data", function(chunk) { + str += chunk; + }); + res.on("end", function() { + resolve(JSON.parse(str)); + }); + res.on("error", (err) => { + reject(err); + }); + }); + httpsRequest.write(reqPayloadJSON); + httpsRequest.end(); + }); + } + if (httpResponse?.success) { + let encryptedPayload = encrypt({ + data: JSON.stringify(httpResponse.payload), + encryptionKey: finalEncryptionKey, + encryptionSalt: finalEncryptionSalt + }); + try { + if (token && encryptedPayload) + httpResponse["token"] = encryptedPayload; + } catch (error) { + } + const cookieNames = getAuthCookieNames({ + database, + userId: apiUserID || user_id || grabedHostNames.user_id + }); + if (httpResponse.csrf && !skipWriteAuthFile) { + writeAuthFile(httpResponse.csrf, JSON.stringify(httpResponse.payload)); + } + httpResponse["cookieNames"] = cookieNames; + httpResponse["key"] = String(encryptedPayload); + const authKeyName = cookieNames.keyCookieName; + const csrfName = cookieNames.csrfCookieName; + response?.setHeader("Set-Cookie", [ + `${authKeyName}=${encryptedPayload};samesite=strict;path=/;HttpOnly=true;Secure=true`, + `${csrfName}=${httpResponse.payload?.csrf_k};samesite=strict;path=/;HttpOnly=true` + ]); + } + return httpResponse; +} + +// users/send-email-code.ts +init_grab_host_names(); +import fs15 from "fs"; +import path11 from "path"; + +// package-shared/functions/api/users/api-send-email-code.ts +init_varDatabaseDbHandler(); +var import_nodemailer = __toESM(require_nodemailer(), 1); +init_encrypt(); + +// package-shared/utils/serialize-cookies.ts +function serializeCookies({ + cookies +}) { + let cookiesStringsArray = []; + for (let i = 0;i < cookies.length; i++) { + const cookieObject = cookies[i]; + let cookieString = `${cookieObject.name}=${cookieObject.value}`; + if (cookieObject.maxAge) { + cookieString += `;Max-Age=${cookieObject.maxAge}`; + } + if (cookieObject.path) { + cookieString += `;Path=${cookieObject.path}`; + } + if (cookieObject.domain) { + cookieString += `;Domain=${cookieObject.domain}`; + } + if (cookieObject.secure) { + cookieString += ";Secure"; + } + if (cookieObject.httpOnly) { + cookieString += ";HttpOnly"; + } + if (cookieObject.sameSite) { + cookieString += `;SameSite=${cookieObject.sameSite}`; + } + if (cookieObject.expires) { + cookieString += `;expires=${cookieObject.expires}`; + } + if (cookieObject.priority) { + cookieString += `;priority=${cookieObject.priority}`; + } + cookiesStringsArray.push(cookieString); + } + return cookiesStringsArray; +} + +// package-shared/functions/api/users/api-send-email-code.ts +async function apiSendEmailCode({ + email, + database, + email_login_field, + mail_domain, + mail_port, + sender, + mail_username, + mail_password, + html, + useLocal, + response, + extraCookies +}) { + if (email?.match(/ /)) { + return { + success: false, + msg: "Invalid Email/Password format" + }; + } + const createdAt = Date.now(); + const foundUserQuery = `SELECT * FROM users WHERE email = ?`; + const foundUserValues = [email]; + let foundUser = await varDatabaseDbHandler2({ + queryString: foundUserQuery, + queryValuesArray: foundUserValues, + database, + useLocal + }); + if (!foundUser || !foundUser[0]) { + return { + success: false, + msg: "No user found" + }; + } + function generateCode() { + const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; + let code = ""; + for (let i = 0;i < 8; i++) { + code += chars[Math.floor(Math.random() * chars.length)]; + } + return code; + } + if (foundUser?.[0] && email_login_field) { + const tempCode = generateCode(); + let transporter = import_nodemailer.default.createTransport({ + host: mail_domain || process.env.DSQL_MAIL_HOST, + port: mail_port ? mail_port : process.env.DSQL_MAIL_PORT ? Number(process.env.DSQL_MAIL_PORT) : 465, + secure: true, + auth: { + user: mail_username || process.env.DSQL_MAIL_EMAIL, + pass: mail_password || process.env.DSQL_MAIL_PASSWORD + } + }); + let mailObject = {}; + mailObject["from"] = `"Datasquirel SSO" <${sender || "support@datasquirel.com"}>`; + mailObject["sender"] = sender || "support@datasquirel.com"; + mailObject["to"] = email; + mailObject["subject"] = "One Time Login Code"; + mailObject["html"] = html.replace(/{{code}}/, tempCode); + const info = await transporter.sendMail(mailObject); + if (!info?.accepted) + throw new Error("Mail not Sent!"); + const setTempCodeQuery = `UPDATE users SET ${email_login_field} = ? WHERE email = ?`; + const setTempCodeValues = [tempCode + `-${createdAt}`, email]; + let setTempCode = await varDatabaseDbHandler2({ + queryString: setTempCodeQuery, + queryValuesArray: setTempCodeValues, + database, + useLocal + }); + const resObject = { + success: true, + code: tempCode, + email, + createdAt, + msg: "Success" + }; + if (response) { + const cookieKeyNames = getAuthCookieNames(); + const oneTimeCodeCookieName = cookieKeyNames.oneTimeCodeName; + const encryptedPayload = encrypt({ + data: JSON.stringify(resObject) + }); + if (!encryptedPayload) { + throw new Error("apiSendEmailCode Error: Failed to encrypt payload"); + } + const oneTimeCookieObject = { + name: oneTimeCodeCookieName, + value: encryptedPayload, + sameSite: "Strict", + path: "/", + httpOnly: true, + secure: true + }; + const cookiesObjectArray = extraCookies ? [...extraCookies, oneTimeCookieObject] : [oneTimeCookieObject]; + const serializedCookies = serializeCookies({ + cookies: cookiesObjectArray + }); + response.setHeader("Set-Cookie", serializedCookies); + } + return resObject; + } else { + return { + success: false, + msg: "Invalid Email/Password format" + }; + } +} + +// users/send-email-code.ts +var __dirname = "/home/benoti/Projects/Git/moduletrace/datasquirel/datasquirel/users"; +async function sendEmailCode({ + key, + email, + database, + temp_code_field_name, + mail_domain, + mail_password, + mail_username, + mail_port, + sender, + user_id, + useLocal, + response, + extraCookies +}) { + const grabedHostNames = grabHostNames(); + const { host, port, scheme } = grabedHostNames; + const defaultTempLoginFieldName = "temp_login_code"; + const emailLoginTempCodeFieldName = temp_code_field_name ? temp_code_field_name : defaultTempLoginFieldName; + const emailHtml = fs15.readFileSync(path11.resolve(__dirname, "../package-shared/html/one-time-code.html"), "utf-8"); + const { DSQL_DB_HOST, DSQL_DB_USERNAME, DSQL_DB_PASSWORD, DSQL_DB_NAME } = process.env; + if (DSQL_DB_HOST?.match(/./) && DSQL_DB_USERNAME?.match(/./) && DSQL_DB_PASSWORD?.match(/./) && DSQL_DB_NAME?.match(/./) && useLocal) { + let dbSchema; + try { + const localDbSchemaPath = path11.resolve(process.cwd(), "dsql.schema.json"); + dbSchema = JSON.parse(fs15.readFileSync(localDbSchemaPath, "utf8")); + } catch (error) { + } + return await apiSendEmailCode({ + database: DSQL_DB_NAME, + email, + email_login_field: emailLoginTempCodeFieldName, + html: emailHtml, + mail_domain, + mail_password, + mail_port, + mail_username, + sender, + useLocal, + response, + extraCookies + }); + } else { + const httpResponse = await new Promise((resolve, reject) => { + const reqPayload = JSON.stringify({ + email, + database, + email_login_field: emailLoginTempCodeFieldName, + mail_domain, + mail_password, + mail_username, + mail_port, + sender, + html: emailHtml + }); + const httpsRequest = scheme.request({ + method: "POST", + headers: { + "Content-Type": "application/json", + "Content-Length": Buffer.from(reqPayload).length, + Authorization: key || process.env.DSQL_FULL_ACCESS_API_KEY || process.env.DSQL_API_KEY + }, + port, + hostname: host, + path: `/api/user/${user_id || grabedHostNames.user_id}/send-email-code` + }, (res) => { + var str = ""; + res.on("data", function(chunk) { + str += chunk; + }); + res.on("end", function() { + resolve(JSON.parse(str)); + }); + res.on("error", (err) => { + reject(err); + }); + }); + httpsRequest.write(reqPayload); + httpsRequest.end(); + }); + return httpResponse; + } +} + +// users/logout-user.ts +init_decrypt(); +init_ejson(); +function logoutUser({ + response, + database, + dsqlUserId, + encryptedUserString, + request, + cookieString +}) { + try { + const cookieNames = getAuthCookieNames({ + database, + userId: dsqlUserId || process.env.DSQL_API_USER_ID + }); + const authKeyName = cookieNames.keyCookieName; + const csrfName = cookieNames.csrfCookieName; + const oneTimeCodeName = getAuthCookieNames().oneTimeCodeName; + const decryptedUserJSON = (() => { + try { + if (request) { + const cookiesObject = parseCookies({ + request, + cookieString + }); + return decrypt({ + encryptedString: cookiesObject[authKeyName] + }); + } else if (encryptedUserString) { + return decrypt({ + encryptedString: encryptedUserString + }); + } else { + return; + } + } catch (error) { + console.log("Error getting decrypted User JSON to logout:", error.message); + return; + } + })(); + if (!decryptedUserJSON) + throw new Error("Invalid User"); + const userObject = ejson_default.parse(decryptedUserJSON); + if (!userObject?.csrf_k) + throw new Error("Invalid User. Please check key"); + response?.setHeader("Set-Cookie", [ + `${authKeyName}=null;max-age=0`, + `${csrfName}=null;max-age=0`, + `${oneTimeCodeName}=null;max-age=0` + ]); + const csrf = userObject.csrf_k; + deleteAuthFile(csrf); + return { + success: true, + msg: "User Logged Out", + cookieNames + }; + } catch (error) { + console.log("Logout Error:", error.message); + return { + success: false, + msg: "Logout Failed" + }; + } +} +module_logout_user.exports = logoutUser; + +// users/user-auth.ts +init_decrypt(); +var minuteInMilliseconds = 60000; +var hourInMilliseconds = minuteInMilliseconds * 60; +var dayInMilliseconds = hourInMilliseconds * 24; +var weekInMilliseconds = dayInMilliseconds * 7; +var monthInMilliseconds = dayInMilliseconds * 30; +var yearInMilliseconds = dayInMilliseconds * 365; +function userAuth({ + request, + req, + encryptionKey, + encryptionSalt, + level, + database, + dsqlUserId, + encryptedUserString, + expiry = weekInMilliseconds, + cookieString, + csrfHeaderIsValue, + csrfHeaderName +}) { + try { + const finalRequest = req || request; + const finalEncryptionKey = encryptionKey || process.env.DSQL_ENCRYPTION_PASSWORD; + const finalEncryptionSalt = encryptionSalt || process.env.DSQL_ENCRYPTION_SALT; + const cookies = parseCookies({ + request: finalRequest, + cookieString + }); + const keyNames = getAuthCookieNames({ + userId: dsqlUserId || process.env.DSQL_API_USER_ID, + database: database || process.env.DSQL_DB_NAME + }); + const authKeyName = keyNames.keyCookieName; + const csrfName = keyNames.csrfCookieName; + const key = encryptedUserString ? encryptedUserString : cookies[authKeyName]; + const csrf = cookies[csrfName]; + let userPayloadJSON = decrypt({ + encryptedString: key, + encryptionKey: finalEncryptionKey, + encryptionSalt: finalEncryptionSalt + }); + if (!userPayloadJSON) { + return { + success: false, + payload: null, + msg: "Couldn't Decrypt cookie" + }; + } + let userObject = JSON.parse(userPayloadJSON); + if (!userObject.csrf_k) { + return { + success: false, + payload: null, + msg: "No CSRF_K in decrypted payload" + }; + } + if (!checkAuthFile(userObject.csrf_k)) { + return { + success: false, + payload: null, + msg: "Auth file doesn't exist" + }; + } + if (level?.match(/deep/i) && finalRequest) { + if (csrfHeaderName && finalRequest.headers[csrfHeaderName] !== userObject.csrf_k) { + return { + success: false, + payload: null, + msg: "CSRF_K mismatch" + }; + } + const targetCsrfHeaderKey = Object.keys(finalRequest.headers).map((k) => k.replace(/[^a-zA-Z0-9\-]/g, "")).find((k) => k == userObject.csrf_k); + if (csrfHeaderIsValue && !targetCsrfHeaderKey) { + return { + success: false, + payload: null, + msg: "CSRF_K Header Key mismatch" + }; + } + } + const payloadCreationDate = Number(userObject.date); + if (Number.isNaN(payloadCreationDate) || typeof payloadCreationDate !== "number") { + return { + success: false, + payload: null, + msg: "Payload Creation Date is not a number" + }; + } + const timeElapsed = Date.now() - payloadCreationDate; + const finalExpiry = process.env.DSQL_SESSION_EXPIRY_TIME ? Number(process.env.DSQL_SESSION_EXPIRY_TIME) : expiry; + if (timeElapsed > finalExpiry) { + return { + success: false, + payload: null, + msg: "Session has expired" + }; + } + return { + success: true, + payload: userObject + }; + } catch (error) { + return { + success: false, + payload: null, + msg: error.message + }; + } +} + +// users/reauth-user.ts +init_encrypt(); +import fs16 from "fs"; +import path12 from "path"; +init_grab_host_names(); + +// package-shared/functions/api/users/api-reauth-user.ts +init_varDatabaseDbHandler(); +async function apiReauthUser({ + existingUser, + database, + additionalFields, + useLocal +}) { + let foundUser = existingUser?.id && existingUser.id.toString().match(/./) ? await varDatabaseDbHandler2({ + queryString: `SELECT * FROM users WHERE id=?`, + queryValuesArray: [existingUser.id.toString()], + database, + useLocal + }) : null; + if (!foundUser || !foundUser[0]) + return { + success: false, + payload: null, + msg: "No user found" + }; + let csrfKey = Math.random().toString(36).substring(2) + "-" + Math.random().toString(36).substring(2); + let userPayload = { + id: foundUser[0].id, + first_name: foundUser[0].first_name, + last_name: foundUser[0].last_name, + username: foundUser[0].username, + email: foundUser[0].email, + phone: foundUser[0].phone, + social_id: foundUser[0].social_id, + image: foundUser[0].image, + image_thumbnail: foundUser[0].image_thumbnail, + verification_status: foundUser[0].verification_status, + social_login: foundUser[0].social_login, + social_platform: foundUser[0].social_platform, + csrf_k: csrfKey, + more_data: foundUser[0].more_user_data, + logged_in_status: true, + date: Date.now() + }; + if (additionalFields && Array.isArray(additionalFields) && additionalFields.length > 0) { + additionalFields.forEach((key) => { + userPayload[key] = foundUser[0][key]; + }); + } + return { + success: true, + msg: "Login Successful", + payload: userPayload, + csrf: csrfKey + }; +} + +// users/reauth-user.ts +async function reauthUser({ + key, + database, + response, + request, + level, + encryptionKey, + encryptionSalt, + additionalFields, + encryptedUserString, + user_id, + useLocal +}) { + const grabedHostNames = grabHostNames(); + const { host, port, scheme } = grabedHostNames; + const finalEncryptionKey = encryptionKey || process.env.DSQL_ENCRYPTION_PASSWORD; + const finalEncryptionSalt = encryptionSalt || process.env.DSQL_ENCRYPTION_SALT; + const existingUser = userAuth({ + database, + encryptionKey: finalEncryptionKey, + encryptionSalt: finalEncryptionSalt, + level, + request, + encryptedUserString + }); + if (!existingUser?.payload?.id) { + return { + success: false, + payload: null, + msg: "Cookie Credentials Invalid" + }; + } + let httpResponse; + const { DSQL_DB_HOST, DSQL_DB_USERNAME, DSQL_DB_PASSWORD, DSQL_DB_NAME } = process.env; + if (DSQL_DB_HOST?.match(/./) && DSQL_DB_USERNAME?.match(/./) && DSQL_DB_PASSWORD?.match(/./) && DSQL_DB_NAME?.match(/./) && useLocal) { + let dbSchema; + try { + const localDbSchemaPath = path12.resolve(process.cwd(), "dsql.schema.json"); + dbSchema = JSON.parse(fs16.readFileSync(localDbSchemaPath, "utf8")); + } catch (error) { + } + httpResponse = await apiReauthUser({ + existingUser: existingUser.payload, + additionalFields, + useLocal + }); + } else { + httpResponse = await new Promise((resolve, reject) => { + const reqPayload = JSON.stringify({ + existingUser: existingUser.payload, + database, + additionalFields + }); + const httpsRequest = scheme.request({ + method: "POST", + headers: { + "Content-Type": "application/json", + "Content-Length": Buffer.from(reqPayload).length, + Authorization: key || process.env.DSQL_FULL_ACCESS_API_KEY || process.env.DSQL_API_KEY + }, + port, + hostname: host, + path: `/api/user/${user_id || grabedHostNames.user_id}/reauth-user` + }, (response2) => { + var str = ""; + response2.on("data", function(chunk) { + str += chunk; + }); + response2.on("end", function() { + resolve(JSON.parse(str)); + }); + response2.on("error", (err) => { + reject(err); + }); + }); + httpsRequest.write(reqPayload); + httpsRequest.end(); + }); + } + if (httpResponse?.success) { + let encryptedPayload = encrypt({ + data: JSON.stringify(httpResponse.payload), + encryptionKey: finalEncryptionKey, + encryptionSalt: finalEncryptionSalt + }); + const cookieNames = getAuthCookieNames({ + database, + userId: user_id || grabedHostNames.user_id + }); + httpResponse["cookieNames"] = cookieNames; + httpResponse["key"] = String(encryptedPayload); + const authKeyName = cookieNames.keyCookieName; + const csrfName = cookieNames.csrfCookieName; + response?.setHeader("Set-Cookie", [ + `${authKeyName}=${encryptedPayload};samesite=strict;path=/;HttpOnly=true;Secure=true`, + `${csrfName}=${httpResponse.payload?.csrf_k};samesite=strict;path=/;HttpOnly=true` + ]); + if (httpResponse.csrf) { + deleteAuthFile(String(existingUser.payload.csrf_k)); + writeAuthFile(httpResponse.csrf, JSON.stringify(httpResponse.payload)); + } + } + return httpResponse; +} + +// users/get-user.ts +init_grab_host_names(); +import path13 from "path"; +import fs17 from "fs"; + +// package-shared/functions/api/users/api-get-user.ts +init_varDatabaseDbHandler(); +async function apiGetUser({ + fields, + dbFullName, + userId, + useLocal +}) { + const query = `SELECT ${fields.join(",")} FROM users WHERE id=?`; + const API_USER_ID = userId || process.env.DSQL_API_USER_ID; + let foundUser = await varDatabaseDbHandler2({ + queryString: query, + queryValuesArray: [API_USER_ID], + database: dbFullName.replace(/[^a-z0-9_]/g, ""), + useLocal + }); + if (!foundUser || !foundUser[0]) { + return { + success: false, + payload: null + }; + } + return { + success: true, + payload: foundUser[0] + }; +} + +// users/get-user.ts +async function getUser({ + key, + userId, + database, + fields, + apiUserId, + useLocal +}) { + const defaultFields = [ + "id", + "first_name", + "last_name", + "email", + "username", + "image", + "image_thumbnail", + "verification_status", + "date_created", + "date_created_code", + "date_created_timestamp", + "date_updated", + "date_updated_code", + "date_updated_timestamp" + ]; + const updatedFields = fields && fields[0] ? [...defaultFields, ...fields] : defaultFields; + const reqPayload = JSON.stringify({ + userId, + database, + fields: [...new Set(updatedFields)] + }); + const grabedHostNames = grabHostNames(); + const { host, port, scheme } = grabedHostNames; + const { DSQL_DB_HOST, DSQL_DB_USERNAME, DSQL_DB_PASSWORD, DSQL_DB_NAME } = process.env; + if (DSQL_DB_HOST?.match(/./) && DSQL_DB_USERNAME?.match(/./) && DSQL_DB_PASSWORD?.match(/./) && DSQL_DB_NAME?.match(/./) && useLocal) { + let dbSchema; + try { + const localDbSchemaPath = path13.resolve(process.cwd(), "dsql.schema.json"); + dbSchema = JSON.parse(fs17.readFileSync(localDbSchemaPath, "utf8")); + } catch (error) { + } + return await apiGetUser({ + userId, + fields: [...new Set(updatedFields)], + dbFullName: DSQL_DB_NAME, + useLocal + }); + } + const httpResponse = await new Promise((resolve, reject) => { + const httpsRequest = scheme.request({ + method: "POST", + headers: { + "Content-Type": "application/json", + "Content-Length": Buffer.from(reqPayload).length, + Authorization: key || process.env.DSQL_FULL_ACCESS_API_KEY || process.env.DSQL_API_KEY + }, + port, + hostname: host, + path: `/api/user/${apiUserId || grabedHostNames.user_id}/get-user` + }, (response) => { + var str = ""; + response.on("data", function(chunk) { + str += chunk; + }); + response.on("end", function() { + resolve(JSON.parse(str)); + }); + response.on("error", (err) => { + reject(err); + }); + }); + httpsRequest.write(reqPayload); + httpsRequest.end(); + }); + return httpResponse; +} + +// users/social/google-auth.ts +init_encrypt(); +init_grab_host_names(); + +// package-shared/functions/api/users/social/api-google-login.ts +import https2 from "https"; + +// package-shared/functions/api/social-login/handleSocialDb.ts +import fs19 from "fs"; + +// package-shared/functions/backend/handleNodemailer.ts +var import_nodemailer2 = __toESM(require_nodemailer(), 1); +import fs18 from "fs"; +var transporter = import_nodemailer2.default.createTransport({ + host: process.env.DSQL_MAIL_HOST, + port: 465, + secure: true, + auth: { + user: process.env.DSQL_MAIL_EMAIL, + pass: process.env.DSQL_MAIL_PASSWORD + } +}); +async function handleNodemailer({ + to, + subject, + text, + html, + alias, + senderName +}) { + if (!process.env.DSQL_MAIL_HOST || !process.env.DSQL_MAIL_EMAIL || !process.env.DSQL_MAIL_PASSWORD) { + return null; + } + const sender = (() => { + if (alias?.match(/support/i)) + return process.env.DSQL_MAIL_EMAIL; + return process.env.DSQL_MAIL_EMAIL; + })(); + let sentMessage; + if (!fs18.existsSync("./email/index.html")) { + return; + } + let mailRoot = fs18.readFileSync("./email/index.html", "utf8"); + let finalHtml = mailRoot.replace(/{{email_body}}/, html ? html : "").replace(/{{issue_date}}/, Date().substring(0, 24)); + try { + let mailObject = {}; + mailObject["from"] = `"${senderName || "Datasquirel"}" <${sender}>`; + mailObject["sender"] = sender; + if (alias) + mailObject["replyTo"] = sender; + mailObject["to"] = to; + mailObject["subject"] = subject; + mailObject["text"] = text; + mailObject["html"] = finalHtml; + let info = await transporter.sendMail(mailObject); + sentMessage = info; + } catch (error) { + console.log("ERROR in handleNodemailer Function =>", error.message); + } + return sentMessage; +} + +// package-shared/functions/api/social-login/handleSocialDb.ts +import path14 from "path"; + +// package-shared/functions/backend/addMariadbUser.ts +var import_generate_password = __toESM(require_generate(), 1); +init_DB_HANDLER(); + +// package-shared/utils/backend/global-db/NO_DB_HANDLER.ts +var import_serverless_mysql5 = __toESM(require_serverless_mysql(), 1); +init_grabDbSSL(); +var NO_DB = import_serverless_mysql5.default({ + config: { + host: process.env.DSQL_DB_HOST, + user: process.env.DSQL_DB_USERNAME, + password: process.env.DSQL_DB_PASSWORD, + charset: "utf8mb4", + ssl: grabDbSSL() + } +}); +function NO_DB_HANDLER(...args) { + try { + return new Promise((resolve, reject) => { + NO_DB.query(...args).then((results) => { + NO_DB.end(); + resolve(JSON.parse(JSON.stringify(results))); + }).catch((err) => { + NO_DB.end(); + resolve({ + error: err.message, + sql: err.sql + }); + }); + }); + } catch (error) { + return { + success: false, + error: error.message + }; + } +} + +// package-shared/functions/backend/addMariadbUser.ts +init_encrypt(); +init_LOCAL_DB_HANDLER(); +async function addMariadbUser({ + userId, + useLocal +}) { + try { + const defaultMariadbUserHost = process.env.DSQL_DB_HOST || "127.0.0.1"; + const username = `dsql_user_${userId}`; + const password = import_generate_password.default.generate({ + length: 16, + numbers: true, + symbols: true, + uppercase: true, + exclude: "*#.'`\"" + }); + const encryptedPassword = encrypt({ data: password }); + const createMariadbUsersQuery = `CREATE USER IF NOT EXISTS '${username}'@'127.0.0.1' IDENTIFIED BY '${password}'`; + if (useLocal) { + await LOCAL_DB_HANDLER(createMariadbUsersQuery); + } else { + await NO_DB_HANDLER(createMariadbUsersQuery); + } + const updateUserQuery = `UPDATE users SET mariadb_user = ?, mariadb_host = '127.0.0.1', mariadb_pass = ? WHERE id = ?`; + const updateUserValues = [username, encryptedPassword, userId]; + const updateUser2 = useLocal ? await LOCAL_DB_HANDLER(updateUserQuery, updateUserValues) : await DB_HANDLER(updateUserQuery, updateUserValues); + const addMariadbUser2 = await addDbEntry({ + tableName: "mariadb_users", + data: { + user_id: userId, + username, + host: defaultMariadbUserHost, + password: encryptedPassword, + primary: "1", + grants: '[{"database":"*","table":"*","privileges":["ALL"]}]' + }, + dbContext: "Master", + useLocal + }); + console.log(`User ${userId} SQL credentials successfully added.`); + } catch (error) { + console.log(`Error in adding SQL user in 'addMariadbUser' function =>`, error.message); + } +} + +// package-shared/functions/api/social-login/handleSocialDb.ts +init_varDatabaseDbHandler(); +init_encrypt(); + +// package-shared/functions/backend/addAdminUserOnLogin.ts +init_serverError(); +init_DB_HANDLER(); +init_LOCAL_DB_HANDLER(); +async function addAdminUserOnLogin({ + query, + user, + useLocal +}) { + try { + const finalDbHandler = useLocal ? LOCAL_DB_HANDLER : DB_HANDLER; + const { invite, database_access, priviledge, email } = query; + const lastInviteTimeQuery = `SELECT date_created_code FROM invitations WHERE inviting_user_id=? AND invited_user_email=?`; + const lastInviteTimeValues = [invite, email]; + const lastInviteTimeArray = await finalDbHandler(lastInviteTimeQuery, lastInviteTimeValues); + if (!lastInviteTimeArray || !lastInviteTimeArray[0]) { + throw new Error("No Invitation Found"); + } + const invitingUserDbQuery = `SELECT first_name,last_name,email FROM users WHERE id=?`; + const invitingUserDbValues = [invite]; + const invitingUserDb = await finalDbHandler(invitingUserDbQuery, invitingUserDbValues); + if (invitingUserDb?.[0]) { + const existingUserUser = await finalDbHandler(`SELECT email FROM user_users WHERE user_id=? AND invited_user_id=? AND user_type='admin' AND email=?`, [invite, user.id, email]); + if (existingUserUser?.[0]) { + console.log("User already added"); + } else { + addDbEntry({ + dbFullName: "datasquirel", + tableName: "user_users", + data: { + user_id: invite, + invited_user_id: user.id, + database_access, + first_name: user.first_name, + last_name: user.last_name, + phone: user.phone, + email: user.email, + username: user.username, + user_type: "admin", + user_priviledge: priviledge, + image: user.image, + image_thumbnail: user.image_thumbnail + }, + useLocal + }); + const dbTableData = await finalDbHandler(`SELECT db_tables_data FROM invitations WHERE inviting_user_id=? AND invited_user_email=?`, [invite, email]); + const clearEntries = await finalDbHandler(`DELETE FROM delegated_user_tables WHERE root_user_id=? AND delegated_user_id=?`, [invite, user.id]); + if (dbTableData && dbTableData[0]) { + const dbTableEntries = dbTableData[0].db_tables_data.split("|"); + for (let i = 0;i < dbTableEntries.length; i++) { + const dbTableEntry = dbTableEntries[i]; + const dbTableEntryArray = dbTableEntry.split("-"); + const [db_slug, table_slug] = dbTableEntryArray; + const newEntry = await addDbEntry({ + dbFullName: "datasquirel", + tableName: "delegated_user_tables", + data: { + delegated_user_id: user.id, + root_user_id: invite, + database: db_slug, + table: table_slug, + priviledge + }, + useLocal + }); + } + } + } + const inviteAccepted = await finalDbHandler(`UPDATE invitations SET invitation_status='Accepted' WHERE inviting_user_id=? AND invited_user_email=?`, [invite, email]); + } + } catch (error) { + serverError({ + component: "addAdminUserOnLogin", + message: error.message, + user + }); + } +} + +// package-shared/functions/api/social-login/loginSocialUser.ts +init_varDatabaseDbHandler(); +async function loginSocialUser({ + user, + social_platform, + invitation, + database, + additionalFields, + useLocal +}) { + const foundUserQuery = `SELECT * FROM users WHERE email=? AND social_id=? AND social_platform=?`; + const foundUserValues = [user.email, user.social_id, social_platform]; + const foundUser = await varDatabaseDbHandler2({ + database: database ? database : "datasquirel", + queryString: foundUserQuery, + queryValuesArray: foundUserValues, + useLocal + }); + if (!foundUser?.[0]) + return { + success: false, + payload: null + }; + let csrfKey = Math.random().toString(36).substring(2) + "-" + Math.random().toString(36).substring(2); + let userPayload = { + id: foundUser[0].id, + first_name: foundUser[0].first_name, + last_name: foundUser[0].last_name, + username: foundUser[0].username, + user_type: foundUser[0].user_type, + email: foundUser[0].email, + social_id: foundUser[0].social_id, + image: foundUser[0].image, + image_thumbnail: foundUser[0].image_thumbnail, + verification_status: foundUser[0].verification_status, + social_login: foundUser[0].social_login, + social_platform: foundUser[0].social_platform, + csrf_k: csrfKey, + logged_in_status: true, + date: Date.now() + }; + if (additionalFields?.[0]) { + additionalFields.forEach((key) => { + userPayload[key] = foundUser[0][key]; + }); + } + if (invitation && (!database || database?.match(/^datasquirel$/))) { + addAdminUserOnLogin({ + query: invitation, + user: userPayload, + useLocal + }); + } + let result = { + success: true, + payload: userPayload, + csrf: csrfKey + }; + return result; +} + +// package-shared/functions/api/social-login/handleSocialDb.ts +async function handleSocialDb({ + database, + social_id, + email, + social_platform, + payload, + invitation, + supEmail, + additionalFields, + useLocal +}) { + try { + const existingSocialIdUserQuery = `SELECT * FROM users WHERE social_id = ? AND social_login='1' AND social_platform = ? `; + const existingSocialIdUserValues = [ + social_id.toString(), + social_platform + ]; + let existingSocialIdUser = await varDatabaseDbHandler2({ + database: database ? database : "datasquirel", + queryString: existingSocialIdUserQuery, + queryValuesArray: existingSocialIdUserValues, + useLocal + }); + if (existingSocialIdUser && existingSocialIdUser[0]) { + return await loginSocialUser({ + user: existingSocialIdUser[0], + social_platform, + invitation, + database, + additionalFields, + useLocal + }); + } + const finalEmail = email ? email : supEmail ? supEmail : null; + if (!finalEmail) { + return { + success: false, + payload: null, + msg: "No Email Present" + }; + } + const existingEmailOnlyQuery = `SELECT * FROM users WHERE email='${finalEmail}'`; + let existingEmailOnly = await varDatabaseDbHandler2({ + database: database ? database : "datasquirel", + queryString: existingEmailOnlyQuery, + useLocal + }); + if (existingEmailOnly && existingEmailOnly[0]) { + return { + success: false, + payload: null, + msg: "This Email is already taken" + }; + } + const foundUserQuery = `SELECT * FROM users WHERE email=? AND social_login='1' AND social_platform=? AND social_id=?`; + const foundUserQueryValues = [finalEmail, social_platform, social_id]; + const foundUser = await varDatabaseDbHandler2({ + database: database ? database : "datasquirel", + queryString: foundUserQuery, + queryValuesArray: foundUserQueryValues, + useLocal + }); + if (foundUser && foundUser[0]) { + return await loginSocialUser({ + user: payload, + social_platform, + invitation, + database, + additionalFields, + useLocal + }); + } + const socialHashedPassword = encrypt({ + data: social_id.toString() + }); + const data = { + social_login: "1", + verification_status: supEmail ? "0" : "1", + password: socialHashedPassword + }; + Object.keys(payload).forEach((key) => { + data[key] = payload[key]; + }); + const newUser = await addDbEntry({ + dbContext: database ? "Dsql User" : undefined, + paradigm: database ? "Full Access" : undefined, + dbFullName: database ? database : "datasquirel", + tableName: "users", + duplicateColumnName: "email", + duplicateColumnValue: finalEmail, + data: { + ...data, + email: finalEmail + }, + useLocal + }); + if (newUser?.insertId) { + if (!database) { + await addMariadbUser({ userId: newUser.insertId, useLocal }); + } + const newUserQueriedQuery = `SELECT * FROM users WHERE id='${newUser.insertId}'`; + const newUserQueried = await varDatabaseDbHandler2({ + database: database ? database : "datasquirel", + queryString: newUserQueriedQuery, + useLocal + }); + if (!newUserQueried || !newUserQueried[0]) + return { + success: false, + payload: null, + msg: "User Insertion Failed!" + }; + if (supEmail && database?.match(/^datasquirel$/)) { + let generatedToken = encrypt({ + data: JSON.stringify({ + id: newUser.insertId, + email: supEmail, + dateCode: Date.now() + }) + }); + handleNodemailer({ + to: supEmail, + subject: "Verify Email Address", + text: "Please click the link to verify your email address", + html: fs19.readFileSync("./email/send-email-verification-link.html", "utf8").replace(/{{host}}/, process.env.DSQL_HOST || "").replace(/{{token}}/, generatedToken || "") + }).then(() => { + }); + } + const STATIC_ROOT = process.env.DSQL_STATIC_SERVER_DIR; + if (!STATIC_ROOT) { + console.log("Static File ENV not Found!"); + return { + success: false, + payload: null, + msg: "Static File ENV not Found!" + }; + } + if (!database || database?.match(/^datasquirel$/)) { + let newUserSchemaFolderPath = `${process.env.DSQL_USER_DB_SCHEMA_PATH}/user-${newUser.insertId}`; + let newUserMediaFolderPath = path14.join(STATIC_ROOT, `images/user-images/user-${newUser.insertId}`); + fs19.mkdirSync(newUserSchemaFolderPath); + fs19.mkdirSync(newUserMediaFolderPath); + fs19.writeFileSync(`${newUserSchemaFolderPath}/main.json`, JSON.stringify([]), "utf8"); + } + return await loginSocialUser({ + user: newUserQueried[0], + social_platform, + invitation, + database, + additionalFields, + useLocal + }); + } else { + console.log("Social User Failed to insert in 'handleSocialDb.js' backend function =>", newUser); + return { + success: false, + payload: null, + msg: "Social User Failed to insert in 'handleSocialDb.js' backend function" + }; + } + } catch (error) { + console.log("ERROR in 'handleSocialDb.js' backend function =>", error.message); + return { + success: false, + payload: null, + msg: error.message + }; + } +} + +// package-shared/functions/api/users/social/api-google-login.ts +init_ejson(); +async function apiGoogleLogin({ + token, + database, + additionalFields, + additionalData +}) { + try { + const gUser = await new Promise((resolve, reject) => { + https2.request({ + method: "GET", + hostname: "www.googleapis.com", + path: "/oauth2/v3/userinfo", + headers: { + Authorization: `Bearer ${token}` + } + }, (res) => { + let data = ""; + res.on("data", (chunk) => { + data += chunk; + }); + res.on("end", () => { + resolve(ejson_default.parse(data)); + }); + }).end(); + }); + if (!gUser?.email_verified) + throw new Error("No Google User."); + if (!database || typeof database != "string" || database?.match(/ /)) { + return { + success: false, + payload: undefined, + msg: "Please provide a database slug(database name in lowercase with no spaces)" + }; + } + const { given_name, family_name, email, sub, picture } = gUser; + let payloadObject = { + email, + first_name: given_name, + last_name: family_name, + social_id: sub, + social_platform: "google", + image: picture, + image_thumbnail: picture, + username: `google-user-${sub}` + }; + if (additionalData) { + payloadObject = { ...payloadObject, ...additionalData }; + } + const loggedInGoogleUser = await handleSocialDb({ + database, + email: email || "", + payload: payloadObject, + social_platform: "google", + social_id: sub, + additionalFields + }); + return { ...loggedInGoogleUser }; + } catch (error) { + console.log(`apo-google-login.js ERROR: ${error.message}`); + return { + success: false, + payload: undefined, + msg: error.message + }; + } +} +// users/social/google-auth.ts +async function googleAuth({ + key, + token, + database, + response, + encryptionKey, + encryptionSalt, + additionalFields, + additionalData, + apiUserID, + useLocal +}) { + const grabedHostNames = grabHostNames(); + const { host, port, scheme } = grabedHostNames; + const finalEncryptionKey = encryptionKey || process.env.DSQL_ENCRYPTION_PASSWORD; + const finalEncryptionSalt = encryptionSalt || process.env.DSQL_ENCRYPTION_SALT; + if (!finalEncryptionKey?.match(/.{8,}/)) { + console.log("Encryption key is invalid"); + return { + success: false, + payload: null, + msg: "Encryption key is invalid" + }; + } + if (!finalEncryptionSalt?.match(/.{8,}/)) { + console.log("Encryption salt is invalid"); + return { + success: false, + payload: null, + msg: "Encryption salt is invalid" + }; + } + if (!token || token?.match(/ /)) { + return { + success: false, + payload: null, + msg: "Please enter Google Access Token" + }; + } + let httpResponse = { + success: false + }; + const { DSQL_DB_HOST, DSQL_DB_USERNAME, DSQL_DB_PASSWORD, DSQL_DB_NAME } = process.env; + if (DSQL_DB_HOST?.match(/./) && DSQL_DB_USERNAME?.match(/./) && DSQL_DB_PASSWORD?.match(/./) && DSQL_DB_NAME?.match(/./) && useLocal) { + httpResponse = await apiGoogleLogin({ + token, + additionalFields, + database: DSQL_DB_NAME, + additionalData + }); + } else { + httpResponse = await new Promise((resolve, reject) => { + const reqPayload = JSON.stringify({ + token, + database, + additionalFields, + additionalData + }); + const httpsRequest = scheme.request({ + method: "POST", + headers: { + "Content-Type": "application/json", + "Content-Length": Buffer.from(reqPayload).length, + Authorization: key || process.env.DSQL_FULL_ACCESS_API_KEY || process.env.DSQL_API_KEY + }, + port, + hostname: host, + path: `/api/user/${apiUserID || grabedHostNames.user_id}/google-login` + }, (response2) => { + var str = ""; + response2.on("data", function(chunk) { + str += chunk; + }); + response2.on("end", function() { + resolve(JSON.parse(str)); + }); + response2.on("error", (err) => { + reject(err); + }); + }); + httpsRequest.write(reqPayload); + httpsRequest.end(); + }); + } + if (httpResponse?.success && httpResponse?.payload) { + let encryptedPayload = encrypt({ + data: JSON.stringify(httpResponse.payload), + encryptionKey: finalEncryptionKey, + encryptionSalt: finalEncryptionSalt + }); + const cookieNames = getAuthCookieNames({ + database, + userId: apiUserID || process.env.DSQL_API_USER_ID + }); + if (httpResponse.csrf) { + writeAuthFile(httpResponse.csrf, JSON.stringify(httpResponse.payload)); + } + httpResponse["cookieNames"] = cookieNames; + httpResponse["key"] = String(encryptedPayload); + const authKeyName = cookieNames.keyCookieName; + const csrfName = cookieNames.csrfCookieName; + response?.setHeader("Set-Cookie", [ + `${authKeyName}=${encryptedPayload};samesite=strict;path=/;HttpOnly=true;Secure=true`, + `${csrfName}=${httpResponse.payload?.csrf_k};samesite=strict;path=/;HttpOnly=true` + ]); + } + return httpResponse; +} + +// users/social/github-auth.ts +init_encrypt(); +init_grab_host_names(); +import fs20 from "fs"; +import path15 from "path"; + +// package-shared/functions/api/social-login/githubLogin.ts +init_DB_HANDLER(); + +// package-shared/functions/backend/httpsRequest.ts +import https3 from "https"; +import http2 from "http"; +import { URL as URL2 } from "url"; +function httpsRequest({ + url, + method, + hostname, + path: path15, + headers, + body, + port, + scheme +}) { + const reqPayloadString = body ? JSON.stringify(body) : null; + const PARSED_URL = url ? new URL2(url) : null; + let requestOptions = { + method: method || "GET", + hostname: PARSED_URL ? PARSED_URL.hostname : hostname, + port: scheme?.match(/https/i) ? 443 : PARSED_URL ? PARSED_URL.protocol?.match(/https/i) ? 443 : PARSED_URL.port : port ? Number(port) : 80, + headers: {} + }; + if (path15) + requestOptions.path = path15; + if (headers) + requestOptions.headers = headers; + if (body) { + requestOptions.headers["Content-Type"] = "application/json"; + requestOptions.headers["Content-Length"] = reqPayloadString ? Buffer.from(reqPayloadString).length : undefined; + } + return new Promise((res, rej) => { + const httpsRequest2 = ((scheme?.match(/https/i)) ? https3 : (PARSED_URL?.protocol?.match(/https/i)) ? https3 : http2).request(requestOptions, (response) => { + var str = ""; + response.on("data", function(chunk) { + str += chunk; + }); + response.on("end", function() { + res(str); + }); + response.on("error", (error) => { + console.log("HTTP response error =>", error.message); + rej(`HTTP response error =>, ${error.message}`); + }); + response.on("close", () => { + console.log("HTTP(S) Response Closed Successfully"); + }); + }); + if (body) + httpsRequest2.write(reqPayloadString); + httpsRequest2.on("error", (error) => { + console.log("HTTPS request ERROR =>", error.message); + rej(`HTTP request error =>, ${error.message}`); + }); + httpsRequest2.end(); + }); +} + +// package-shared/functions/api/social-login/githubLogin.ts +async function githubLogin({ + code, + clientId, + clientSecret +}) { + let gitHubUser; + try { + const response = await httpsRequest({ + method: "POST", + hostname: "github.com", + path: `/login/oauth/access_token?client_id=${clientId}&client_secret=${clientSecret}&code=${code}`, + headers: { + Accept: "application/json", + "User-Agent": "*" + }, + scheme: "https" + }); + const accessTokenObject = JSON.parse(response); + if (!accessTokenObject?.access_token) { + return gitHubUser; + } + const userDataResponse = await httpsRequest({ + method: "GET", + hostname: "api.github.com", + path: "/user", + headers: { + Authorization: `Bearer ${accessTokenObject.access_token}`, + "User-Agent": "*" + }, + scheme: "https" + }); + gitHubUser = JSON.parse(userDataResponse); + if (!gitHubUser?.email && gitHubUser) { + const existingGithubUser = await DB_HANDLER(`SELECT email FROM users WHERE social_login='1' AND social_platform='github' AND social_id='${gitHubUser.id}'`); + if (existingGithubUser && existingGithubUser[0]) { + gitHubUser.email = existingGithubUser[0].email; + } + } + } catch (error) { + console.log("ERROR in githubLogin.js backend function =>", error.message); + } + return gitHubUser; +} + +// package-shared/utils/camelJoinedtoCamelSpace.ts +function camelJoinedtoCamelSpace(text) { + if (!text?.match(/./)) { + return ""; + } + if (text?.match(/ /)) { + return text; + } + if (text) { + let textArray = text.split(""); + let capIndexes = []; + for (let i = 0;i < textArray.length; i++) { + const char = textArray[i]; + if (i === 0) + continue; + if (char.match(/[A-Z]/)) { + capIndexes.push(i); + } + } + let textChunks = [ + `${textArray[0].toUpperCase()}${text.substring(1, capIndexes[0])}` + ]; + for (let j = 0;j < capIndexes.length; j++) { + const capIndex = capIndexes[j]; + if (capIndex === 0) + continue; + const startIndex = capIndex + 1; + const endIndex = capIndexes[j + 1]; + textChunks.push(`${textArray[capIndex].toUpperCase()}${text.substring(startIndex, endIndex)}`); + } + return textChunks.join(" "); + } else { + return null; + } +} + +// package-shared/functions/api/users/social/api-github-login.ts +async function apiGithubLogin({ + code, + clientId, + clientSecret, + database, + additionalFields, + email, + additionalData +}) { + if (!code || !clientId || !clientSecret || !database) { + return { + success: false, + msg: "Missing query params" + }; + } + if (typeof code !== "string" || typeof clientId !== "string" || typeof clientSecret !== "string" || typeof database !== "string") { + return { + success: false, + msg: "Wrong Parameters" + }; + } + const gitHubUser = await githubLogin({ + code, + clientId, + clientSecret + }); + if (!gitHubUser) { + return { + success: false, + msg: "No github user returned" + }; + } + const socialId = gitHubUser.name || gitHubUser.id || gitHubUser.login; + const targetName = gitHubUser.name || gitHubUser.login; + const nameArray = targetName?.match(/ /) ? targetName?.split(" ") : targetName?.match(/\-/) ? targetName?.split("-") : [targetName]; + let payload = { + email: gitHubUser.email, + first_name: camelJoinedtoCamelSpace(nameArray[0]), + last_name: camelJoinedtoCamelSpace(nameArray[1]), + social_id: socialId, + social_platform: "github", + image: gitHubUser.avatar_url, + image_thumbnail: gitHubUser.avatar_url, + username: "github-user-" + socialId + }; + if (additionalData) { + payload = { ...payload, ...additionalData }; + } + const loggedInGithubUser = await handleSocialDb({ + database, + email: gitHubUser.email, + payload, + social_platform: "github", + social_id: socialId, + supEmail: email, + additionalFields + }); + return { ...loggedInGithubUser }; +} + +// users/social/github-auth.ts +async function githubAuth({ + key, + code, + email, + database, + clientId, + clientSecret, + response, + encryptionKey, + encryptionSalt, + additionalFields, + user_id, + additionalData +}) { + const grabedHostNames = grabHostNames(); + const { host, port, scheme } = grabedHostNames; + if (!code || code?.match(/ /)) { + return { + success: false, + user: null, + msg: "Please enter Github Access Token" + }; + } + if (!database || database?.match(/ /)) { + return { + success: false, + user: null, + msg: "Please provide database slug name you want to access" + }; + } + if (!clientId || clientId?.match(/ /)) { + return { + success: false, + user: null, + msg: "Please enter Github OAUTH client ID" + }; + } + let httpResponse; + const { + DSQL_DB_HOST, + DSQL_DB_USERNAME, + DSQL_DB_PASSWORD, + DSQL_DB_NAME, + DSQL_KEY, + DSQL_REF_DB_NAME, + DSQL_FULL_SYNC + } = process.env; + if (DSQL_DB_HOST?.match(/./) && DSQL_DB_USERNAME?.match(/./) && DSQL_DB_PASSWORD?.match(/./) && DSQL_DB_NAME?.match(/./)) { + let dbSchema; + try { + const localDbSchemaPath = path15.resolve(process.cwd(), "dsql.schema.json"); + dbSchema = JSON.parse(fs20.readFileSync(localDbSchemaPath, "utf8")); + } catch (error) { + } + httpResponse = await apiGithubLogin({ + code, + email: email || undefined, + clientId, + clientSecret, + additionalFields, + database: DSQL_DB_NAME, + additionalData + }); + } else { + httpResponse = await new Promise((resolve, reject) => { + const reqPayload = JSON.stringify({ + code, + email, + clientId, + clientSecret, + database, + additionalFields, + additionalData + }); + const httpsRequest2 = scheme.request({ + method: "POST", + headers: { + "Content-Type": "application/json", + "Content-Length": Buffer.from(reqPayload).length, + Authorization: key || process.env.DSQL_FULL_ACCESS_API_KEY || process.env.DSQL_API_KEY + }, + port, + hostname: host, + path: `/api/user/${user_id || grabedHostNames.user_id}/github-login` + }, (response2) => { + var str = ""; + response2.on("data", function(chunk) { + str += chunk; + }); + response2.on("end", function() { + try { + resolve(JSON.parse(str)); + } catch (error) { + console.log(error); + resolve({ + success: false, + user: null, + msg: "Something went wrong" + }); + } + }); + response2.on("error", (err) => { + reject(err); + }); + }); + httpsRequest2.write(reqPayload); + httpsRequest2.end(); + }); + } + if (httpResponse?.success && httpResponse?.user) { + let encryptedPayload = encrypt({ + data: JSON.stringify(httpResponse.user), + encryptionKey, + encryptionSalt + }); + const { user, dsqlUserId } = httpResponse; + const authKeyName = `datasquirel_${dsqlUserId}_${database}_auth_key`; + const csrfName = `datasquirel_${dsqlUserId}_${database}_csrf`; + response.setHeader("Set-Cookie", [ + `${authKeyName}=${encryptedPayload};samesite=strict;path=/;HttpOnly=true;Secure=true`, + `${csrfName}=${user.csrf_k};samesite=strict;path=/;HttpOnly=true`, + `dsqluid=${dsqlUserId};samesite=strict;path=/;HttpOnly=true`, + `datasquirel_social_id=${user.social_id};samesite=strict;path=/` + ]); + } + return httpResponse; +} + +// users/get-token.ts +init_decrypt(); +function getToken({ + request, + encryptionKey, + encryptionSalt, + database, + useLocal, + cookieString +}) { + try { + const cookies = parseCookies({ request, cookieString }); + const keynames = getAuthCookieNames(); + const authKeyName = keynames.keyCookieName; + const csrfName = keynames.csrfCookieName; + const key = cookies[authKeyName]; + const csrf = cookies[csrfName]; + let userPayload = decrypt({ + encryptedString: key, + encryptionKey, + encryptionSalt + }); + if (!userPayload) { + return { key: undefined, csrf: undefined }; + } + let userObject = JSON.parse(userPayload); + if (!userObject.csrf_k) { + return { key: undefined, csrf: undefined }; + } + return { key, csrf }; + } catch (error) { + return { + key: undefined, + csrf: undefined + }; + } +} + +// users/validate-token.ts +init_decrypt(); +function validateToken({ + token, + encryptionKey, + encryptionSalt +}) { + try { + const key = token; + let userPayload = decrypt({ + encryptedString: key, + encryptionKey, + encryptionSalt + }); + if (!userPayload) { + return null; + } + let userObject = JSON.parse(userPayload); + if (!userObject.csrf_k) { + return null; + } + return userObject; + } catch (error) { + return null; + } +} + +// client/media/imageInputFileToBase64.ts +async function imageInputFileToBase64({ + imageInputFile, + maxWidth, + imagePreviewNode +}) { + try { + let imageName = imageInputFile.name.replace(/\..*/, ""); + let imageDataBase64; + let imageSize; + let canvas = document.createElement("canvas"); + const MIME_TYPE = imageInputFile.type; + const QUALITY = 0.95; + const MAX_WIDTH = maxWidth ? maxWidth : null; + const file = imageInputFile; + const blobURL = URL.createObjectURL(file); + const img = new Image; + img.src = blobURL; + imageDataBase64 = await new Promise((res, rej) => { + img.onerror = function() { + URL.revokeObjectURL(this.src); + console.log("Cannot load image"); + }; + img.onload = function(e) { + const imgEl = e.target; + URL.revokeObjectURL(imgEl.src); + if (MAX_WIDTH) { + const scaleSize = MAX_WIDTH / img.naturalWidth; + canvas.width = img.naturalWidth < MAX_WIDTH ? img.naturalWidth : MAX_WIDTH; + canvas.height = img.naturalWidth < MAX_WIDTH ? img.naturalHeight : img.naturalHeight * scaleSize; + } else { + canvas.width = img.naturalWidth; + canvas.height = img.naturalHeight; + } + const ctx = canvas.getContext("2d"); + ctx?.drawImage(img, 0, 0, canvas.width, canvas.height); + const srcEncoded = canvas.toDataURL(MIME_TYPE, QUALITY); + if (imagePreviewNode) { + imagePreviewNode.src = srcEncoded; + } + res(srcEncoded); + }; + }); + imageSize = await new Promise((res, rej) => { + canvas.toBlob((blob) => { + res(blob?.size); + }, MIME_TYPE, QUALITY); + }); + return { + imageBase64: imageDataBase64?.replace(/.*?base64,/, ""), + imageBase64Full: imageDataBase64, + imageName, + imageSize + }; + } catch (error) { + console.log("Image Processing Error! =>", error.message); + return { + imageBase64: undefined, + imageBase64Full: undefined, + imageName: undefined, + imageSize: undefined + }; + } +} + +// client/media/imageInputToBase64.ts +async function imageInputToBase64({ + imageInput, + maxWidth, + mimeType +}) { + try { + let imagePreviewNode = document.querySelector(`[data-imagepreview='image']`); + let imageName = imageInput.files?.[0].name.replace(/\..*/, ""); + let imageDataBase64; + const MIME_TYPE = mimeType ? mimeType : "image/jpeg"; + const QUALITY = 0.95; + const MAX_WIDTH = maxWidth ? maxWidth : null; + const file = imageInput.files?.[0]; + const blobURL = file ? URL.createObjectURL(file) : undefined; + const img = new Image; + if (blobURL) { + img.src = blobURL; + imageDataBase64 = await new Promise((res, rej) => { + img.onerror = function() { + URL.revokeObjectURL(this.src); + window.alert("Cannot load image!"); + }; + img.onload = function(e) { + const imgEl = e.target; + URL.revokeObjectURL(imgEl.src); + const canvas = document.createElement("canvas"); + if (MAX_WIDTH) { + const scaleSize = MAX_WIDTH / img.naturalWidth; + canvas.width = img.naturalWidth < MAX_WIDTH ? img.naturalWidth : MAX_WIDTH; + canvas.height = img.naturalWidth < MAX_WIDTH ? img.naturalHeight : img.naturalHeight * scaleSize; + } else { + canvas.width = img.naturalWidth; + canvas.height = img.naturalHeight; + } + const ctx = canvas.getContext("2d"); + ctx?.drawImage(img, 0, 0, canvas.width, canvas.height); + const srcEncoded = canvas.toDataURL(MIME_TYPE, QUALITY); + if (imagePreviewNode) { + document.querySelectorAll(`[data-imagepreview='image']`).forEach((_img) => { + const _imgEl = _img; + _imgEl.src = srcEncoded; + }); + } + res(srcEncoded); + }; + }); + return { + imageBase64: imageDataBase64?.replace(/.*?base64,/, ""), + imageBase64Full: imageDataBase64, + imageName + }; + } else { + return {}; + } + } catch (error) { + console.log("Image Processing Error! =>", error.message); + return {}; + } +} + +// client/media/inputFileToBase64.ts +async function inputFileToBase64({ + inputFile, + allowedRegex +}) { + const allowedTypesRegex = allowedRegex ? allowedRegex : /image\/*|\/pdf/; + if (!inputFile?.type?.match(allowedTypesRegex)) { + window.alert(`We currently don't support ${inputFile.type} file types. Support is coming soon. For now we support only images and PDFs.`); + return { + fileName: inputFile.name + }; + } + try { + let fileName = inputFile.name.replace(/\..*/, ""); + const fileData = await new Promise((resolve, reject) => { + var reader = new FileReader; + reader.readAsDataURL(inputFile); + reader.onload = function() { + resolve(reader.result?.toString()); + }; + reader.onerror = function(error) { + console.log("Error: ", error.message); + }; + }); + return { + fileBase64: fileData?.replace(/.*?base64,/, ""), + fileBase64Full: fileData, + fileName, + fileSize: inputFile.size, + fileType: inputFile.type + }; + } catch (error) { + console.log("File Processing Error! =>", error.message); + return { + fileName: inputFile.name + }; + } +} + +// client/auth/google/getAccessToken.ts +var interval; +async function getAccessToken(params) { + params.setLoading?.(true); + const response = await new Promise((resolve, reject) => { + interval = setInterval(() => { + let google = window.google; + if (google) { + window.clearInterval(interval); + resolve(googleLogin({ ...params, google })); + } + }, 500); + }); + params.setLoading?.(false); + return response; +} +function googleLogin({ + google, + clientId, + setLoading, + triggerPrompt +}) { + setTimeout(() => { + setLoading?.(false); + }, 3000); + return new Promise((resolve, reject) => { + function handleCredentialResponse(response) { + resolve(response.access_token); + } + const googleAuth2 = google.accounts.oauth2.initTokenClient({ + client_id: clientId, + scope: "email profile", + callback: handleCredentialResponse + }); + googleAuth2.requestAccessToken(); + if (triggerPrompt) { + google.accounts.id.prompt(triggerGooglePromptCallback); + } + function triggerGooglePromptCallback(notification) { + console.log(notification); + } + }); +} + +// client/auth/github/getAccessToken.ts +function getAccessToken2({ + clientId, + redirectUrl, + setLoading, + scopes +}) { + if (setLoading) + setLoading(true); + const scopeString = scopes ? scopes.join("%20") : "read:user"; + const fetchUrl = `https://github.com/login/oauth/authorize?client_id=${clientId}&scope=${scopeString}&redirect_uri=${redirectUrl}`; + window.location.assign(fetchUrl); +} + +// client/utils/parseClientCookies.ts +function parseClientCookies_default() { + const cookieString = document.cookie; + if (!cookieString || typeof cookieString !== "string") { + return null; + } + const cookieSplitArray = cookieString.split(";"); + let cookieObject = {}; + cookieSplitArray.forEach((keyValueString) => { + const [key, value] = keyValueString.split("="); + if (key && typeof key == "string") { + cookieObject[key.replace(/^ +| +$/, "")] = value && typeof value == "string" ? value.replace(/^ +| +$/, "") : null; + } + }); + return cookieObject; +} + +// client/auth/logout.ts +async function logout(params) { + try { + const localUser = localStorage.getItem("user"); + let targetUser; + try { + targetUser = JSON.parse(localUser || ""); + } catch (error) { + console.log(error); + } + if (!targetUser) { + return false; + } + const cookies = parseClientCookies_default(); + const socialId = cookies?.datasquirel_social_id && typeof cookies.datasquirel_social_id == "string" && !cookies.datasquirel_social_id.match(/^null$/i) ? cookies.datasquirel_social_id : null; + localStorage.setItem("user", "{}"); + localStorage.removeItem("csrf"); + document.cookie = `datasquirel_social_id=null;samesite=strict;path=/`; + const response = await new Promise((resolve, reject) => { + if (socialId && !socialId?.match(/^null$/i)) { + const googleClientId = params?.googleClientId; + if (googleClientId) { + const googleScript = document.createElement("script"); + googleScript.src = "https://accounts.google.com/gsi/client"; + googleScript.className = "social-script-tag"; + document.body.appendChild(googleScript); + googleScript.onload = function(e) { + const google = window.google; + if (google) { + google.accounts.id.initialize({ + client_id: googleClientId + }); + google.accounts.id.revoke(socialId, (done) => { + console.log(done.error); + resolve(true); + }); + } + }; + } else { + resolve(true); + } + } else { + resolve(true); + } + }); + return response; + } catch (error) { + return false; + } +} + +// client/fetch/index.ts +var import_lodash3 = __toESM(require_lodash(), 1); +async function fetchApi(url, options, csrf, localStorageCSRFKey) { + let data; + const csrfValue = localStorage.getItem(localStorageCSRFKey || "csrf"); + let finalHeaders = { + "Content-Type": "application/json" + }; + if (csrf && csrfValue) { + finalHeaders[`'${csrfValue.replace(/\"/g, "")}'`] = "true"; + } + if (typeof options === "string") { + try { + let fetchData; + switch (options) { + case "post": + fetchData = await fetch(url, { + method: options, + headers: finalHeaders + }); + data = fetchData.json(); + break; + default: + fetchData = await fetch(url); + data = fetchData.json(); + break; + } + } catch (error) { + console.log("FetchAPI error #1:", error.message); + data = null; + } + } else if (typeof options === "object") { + try { + let fetchData; + if (options.body && typeof options.body === "object") { + let oldOptionsBody = import_lodash3.default.cloneDeep(options.body); + options.body = JSON.stringify(oldOptionsBody); + } + if (options.headers) { + options.headers = import_lodash3.default.merge(options.headers, finalHeaders); + const finalOptions = { ...options }; + fetchData = await fetch(url, finalOptions); + } else { + const finalOptions = { + ...options, + headers: finalHeaders + }; + fetchData = await fetch(url, finalOptions); + } + data = fetchData.json(); + } catch (error) { + console.log("FetchAPI error #2:", error.message); + data = null; + } + } else { + try { + let fetchData = await fetch(url); + data = await fetchData.json(); + } catch (error) { + console.log("FetchAPI error #3:", error.message); + data = null; + } + } + return data; +} + +// client/index.ts +init_ejson(); + +// package-shared/utils/numberfy.ts +function numberfy(num, decimals) { + try { + const numberfiedNum = Number(num); + if (typeof numberfiedNum !== "number") + return 0; + if (isNaN(numberfiedNum)) + return 0; + if (decimals) + return Number(numberfiedNum.toFixed(decimals)); + return Math.round(numberfiedNum); + } catch (error) { + console.log(`Numberfy ERROR: ${error.message}`); + return 0; + } +} + +// package-shared/utils/slugify.ts +function slugify(str) { + try { + return String(str).trim().toLowerCase().replace(/ {2,}/g, " ").replace(/ /g, "-").replace(/[^a-z0-9]/g, "-").replace(/-{2,}/g, "-").replace(/^-/, "").replace(/-$/, ""); + } catch (error) { + console.log(`Slugify ERROR: ${error.message}`); + return ""; + } +} + +// client/index.ts +var media = { + imageInputToBase64, + imageInputFileToBase64, + inputFileToBase64 +}; +var auth = { + google: { + getAccessToken + }, + github: { + getAccessToken: getAccessToken2 + }, + logout +}; +var utils = { + serializeQuery, + serializeCookies, + EJSON: ejson_default, + numberfy, + slugify +}; +var fetch2 = { + fetchApi, + clientFetch: fetchApi +}; +var datasquirelClient = { media, auth, fetch: fetch2, utils }; +var client_default = datasquirelClient; + +// package-shared/functions/dsql/sql/sql-generator.ts +function sqlGenerator({ tableName, genObject }) { + if (!genObject) + return; + const finalQuery = genObject.query ? genObject.query : undefined; + const queryKeys = finalQuery ? Object.keys(finalQuery) : undefined; + const sqlSearhValues = []; + function genSqlSrchStr({ + queryObj, + join, + field + }) { + const finalFieldName = (() => { + if (queryObj?.tableName) { + return `${queryObj.tableName}.${field}`; + } + if (join) { + return `${tableName}.${field}`; + } + return field; + })(); + let str = `${finalFieldName}=?`; + if (typeof queryObj.value == "string" || typeof queryObj.value == "number") { + const valueParsed = String(queryObj.value); + if (queryObj.equality == "LIKE") { + str = `LOWER(${finalFieldName}) LIKE LOWER('%${valueParsed}%')`; + } else if (queryObj.equality == "NOT EQUAL") { + str = `${finalFieldName} != ?`; + sqlSearhValues.push(valueParsed); + } else { + sqlSearhValues.push(valueParsed); + } + } else if (Array.isArray(queryObj.value)) { + const strArray = []; + queryObj.value.forEach((val) => { + const valueParsed = val; + if (queryObj.equality == "LIKE") { + strArray.push(`LOWER(${finalFieldName}) LIKE LOWER('%${valueParsed}%')`); + } else if (queryObj.equality == "NOT EQUAL") { + strArray.push(`${finalFieldName} != ?`); + sqlSearhValues.push(valueParsed); + } else { + strArray.push(`${finalFieldName} = ?`); + sqlSearhValues.push(valueParsed); + } + }); + str = "(" + strArray.join(` ${queryObj.operator || "AND"} `) + ")"; + } + return str; + } + const sqlSearhString = queryKeys?.map((field) => { + const queryObj = finalQuery?.[field]; + if (!queryObj) + return; + if (queryObj.__query) { + const subQueryGroup = queryObj.__query; + const subSearchKeys = Object.keys(subQueryGroup); + const subSearchString = subSearchKeys.map((_field) => { + const newSubQueryObj = subQueryGroup?.[_field]; + return genSqlSrchStr({ + queryObj: newSubQueryObj, + field: _field, + join: genObject.join + }); + }); + console.log("queryObj.operator", queryObj.operator); + return "(" + subSearchString.join(` ${queryObj.operator || "AND"} `) + ")"; + } + return genSqlSrchStr({ queryObj, field, join: genObject.join }); + }); + function generateJoinStr(mtch, join) { + return `${typeof mtch.source == "object" ? mtch.source.tableName : tableName}.${typeof mtch.source == "object" ? mtch.source.fieldName : mtch.source}=${(() => { + if (mtch.targetLiteral) { + return `'${mtch.targetLiteral}'`; + } + if (join.alias) { + return `${typeof mtch.target == "object" ? mtch.target.tableName : join.alias}.${typeof mtch.target == "object" ? mtch.target.fieldName : mtch.target}`; + } + return `${typeof mtch.target == "object" ? mtch.target.tableName : join.tableName}.${typeof mtch.target == "object" ? mtch.target.fieldName : mtch.target}`; + })()}`; + } + let queryString = (() => { + let str = "SELECT"; + if (genObject.selectFields?.[0]) { + if (genObject.join) { + str += ` ${genObject.selectFields?.map((fld) => `${tableName}.${fld}`).join(",")}`; + } else { + str += ` ${genObject.selectFields?.join(",")}`; + } + } else { + if (genObject.join) { + str += ` ${tableName}.*`; + } else { + str += " *"; + } + } + if (genObject.join) { + const existingJoinTableNames = [tableName]; + str += "," + genObject.join.map((joinObj) => { + const joinTableName = joinObj.alias ? joinObj.alias : joinObj.tableName; + if (existingJoinTableNames.includes(joinTableName)) + return null; + existingJoinTableNames.push(joinTableName); + if (joinObj.selectFields) { + return joinObj.selectFields.map((selectField) => { + if (typeof selectField == "string") { + return `${joinTableName}.${selectField}`; + } else if (typeof selectField == "object") { + let aliasSelectField = selectField.count ? `COUNT(${joinTableName}.${selectField.field})` : `${joinTableName}.${selectField.field}`; + if (selectField.alias) + aliasSelectField += ` AS ${selectField.alias}`; + return aliasSelectField; + } + }).join(","); + } else { + return `${joinTableName}.*`; + } + }).filter((_4) => Boolean(_4)).join(","); + } + str += ` FROM ${tableName}`; + if (genObject.join) { + str += " " + genObject.join.map((join) => { + return join.joinType + " " + (join.alias ? join.tableName + " " + join.alias : join.tableName) + " ON " + (() => { + if (Array.isArray(join.match)) { + return "(" + join.match.map((mtch) => generateJoinStr(mtch, join)).join(join.operator ? ` ${join.operator} ` : " AND ") + ")"; + } else if (typeof join.match == "object") { + return generateJoinStr(join.match, join); + } + })(); + }).join(" "); + } + return str; + })(); + if (sqlSearhString?.[0] && sqlSearhString.find((str) => str)) { + const stringOperator = genObject?.searchOperator || "AND"; + queryString += ` WHERE ${sqlSearhString.join(` ${stringOperator} `)} `; + } + if (genObject.order) + queryString += ` ORDER BY ${genObject.join ? `${tableName}.${genObject.order.field}` : genObject.order.field} ${genObject.order.strategy}`; + if (genObject.limit) + queryString += ` LIMIT ${genObject.limit}`; + if (genObject.offset) + queryString += ` OFFSET ${genObject.offset}`; + return { + string: queryString, + values: sqlSearhValues + }; +} + +// package-shared/functions/dsql/sql/sql-insert-generator.ts +function sqlInsertGenerator({ + tableName, + data +}) { + try { + if (Array.isArray(data) && data?.[0]) { + let insertKeys = []; + data.forEach((dt) => { + const kys = Object.keys(dt); + kys.forEach((ky) => { + if (!insertKeys.includes(ky)) { + insertKeys.push(ky); + } + }); + }); + let queryBatches = []; + let queryValues = []; + data.forEach((item) => { + queryBatches.push(`(${insertKeys.map((ky) => { + queryValues.push(item[ky]?.toString()?.match(/./) ? item[ky] : null); + return "?"; + }).join(",")})`); + }); + let query = `INSERT INTO ${tableName} (${insertKeys.join(",")}) VALUES ${queryBatches.join(",")}`; + return { + query, + values: queryValues + }; + } else { + return; + } + } catch (error) { + console.log(`SQL insert gen ERROR: ${error.message}`); + return; + } +} + +// package-shared/functions/dsql/sql/sql-delete-generator.ts +function sqlDeleteGenerator({ + tableName, + data +}) { + try { + let queryStr = `DELETE FROM ${tableName}`; + let deleteBatch = []; + let queryArr = []; + Object.keys(data).forEach((ky) => { + deleteBatch.push(`${ky}=?`); + queryArr.push(data[ky]); + }); + queryStr += ` WHERE ${deleteBatch.join(" AND ")}`; + return { + query: queryStr, + values: queryArr + }; + } catch (error) { + console.log(`SQL delete gen ERROR: ${error.message}`); + return; + } +} +// package-shared/functions/backend/httpRequest.ts +import http3 from "node:http"; +import https4 from "node:https"; +import querystring from "querystring"; +function httpRequest(params) { + return new Promise((resolve, reject) => { + const isUrlEncodedFormBody = params.urlEncodedFormBody; + const reqPayloadString = params.body ? isUrlEncodedFormBody ? querystring.stringify(params.body) : JSON.stringify(params.body).replace(/\n|\r|\n\r/gm, "") : undefined; + const reqQueryString = params.query ? serializeQuery(params.query) : undefined; + const paramScheme = params.scheme; + const finalScheme = paramScheme == "http" ? http3 : https4; + const finalPath = params.path ? params.path + (reqQueryString ? reqQueryString : "") : undefined; + delete params.body; + delete params.scheme; + delete params.query; + delete params.urlEncodedFormBody; + const requestOptions = { + ...params, + headers: { + "Content-Type": isUrlEncodedFormBody ? "application/x-www-form-urlencoded" : "application/json", + "Content-Length": reqPayloadString ? Buffer.from(reqPayloadString).length : undefined, + ...params.headers + }, + port: paramScheme == "https" ? 443 : params.port, + path: finalPath + }; + const httpsRequest2 = finalScheme.request(requestOptions, (response) => { + var str = ""; + response.on("data", function(chunk) { + str += chunk; + }); + response.on("end", function() { + const data = (() => { + try { + const jsonObj = JSON.parse(str); + return jsonObj; + } catch (error) { + return; + } + })(); + resolve({ + status: response.statusCode || 404, + data, + str, + requestedPath: finalPath + }); + }); + response.on("error", (err) => { + resolve({ + status: response.statusCode || 404, + str, + error: err.message, + requestedPath: finalPath + }); + }); + }); + if (reqPayloadString) { + httpsRequest2.write(reqPayloadString); + } + httpsRequest2.on("error", (error) => { + console.log("HTTPS request ERROR =>", error); + }); + httpsRequest2.end(); + }); +} + +// index.ts +var user = { + createUser: addUser, + deleteUser: (init_delete_user(), __toCommonJS(exports_delete_user)), + loginUser, + sendEmailCode, + logoutUser, + userAuth, + reAuthUser: reauthUser, + updateUser, + getUser, + getToken, + validateToken, + validateTempEmailCode: (init_validate_temp_email_code(), __toCommonJS(exports_validate_temp_email_code)), + social: { + loginWithGoogle: googleAuth, + loginWithGithub: githubAuth + } +}; +var media2 = { + uploadImage, + uploadFile: uploadImage2, + deleteFile +}; +var sql = { + sqlGenerator, + sqlInsertGenerator, + sqlDeleteGenerator, + trim: trimSql +}; +var datasquirel = { + get, + post, + media: media2, + user, + getSchema, + client: client_default, + sql, + utils: { + crypto: { + encrypt: (init_encrypt(), __toCommonJS(exports_encrypt)), + decrypt: (init_decrypt(), __toCommonJS(exports_decrypt)), + hash: (init_hashPassword(), __toCommonJS(exports_hashPassword)) + }, + parseCookies, + httpRequest + } +}; +var datasquirel_default = datasquirel; +export { + datasquirel_default as default +}; diff --git a/package.json b/package.json index 9d47e65..cee874f 100644 --- a/package.json +++ b/package.json @@ -8,8 +8,10 @@ "dsql-dump": "dist/engine/dump.js" }, "scripts": { - "build": "bun build ./index.ts --outdir ./dist --target node --format esm", - "dev": "bun build ./index.ts --outdir ./dist --target node --format esm --watch" + "build": "bun build ./index.ts --outdir ./dist --target node --splitting --minify", + "build:cjs": "bun build ./index.ts --outdir ./dist/cjs --target node --format cjs --splitting --minify", + "build:esm": "bun build ./index.ts --outdir ./dist/esm --target node --format esm --splitting --minify", + "dev": "bun build ./index.ts --outdir ./dist --target node --splitting --minify --watch" }, "repository": { "type": "git",