From 4f3aa2c70b2569ca34633decef009eb8d13e1d0b Mon Sep 17 00:00:00 2001 From: Alistair Bahr Date: Sat, 11 Jan 2025 12:38:13 +0100 Subject: [PATCH 1/4] implement automatic code formatting --- .github/workflows/prettier.yml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 .github/workflows/prettier.yml diff --git a/.github/workflows/prettier.yml b/.github/workflows/prettier.yml new file mode 100644 index 0000000..b800960 --- /dev/null +++ b/.github/workflows/prettier.yml @@ -0,0 +1,24 @@ +name: Format the code + +on: + push: + pull_request: + +jobs: + format: + runs-on: ubuntu-latest + name: Format Files + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 + with: + node-version: "18" + - name: Prettier + run: npx prettier --write **/*.js + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - uses: stefanzweifel/git-auto-commit-action@v4 + if: ${{ github.event_name == 'push' || github.event_name == 'workflow_dispatch' }} + with: + commit_message: "style: format files" \ No newline at end of file From c3f0c4ff1344df00f0696562e941e81dbd56d4da Mon Sep 17 00:00:00 2001 From: Alistair1231 Date: Sat, 11 Jan 2025 11:38:36 +0000 Subject: [PATCH 2/4] style: format files --- libs/crypto-js.min.js | 3032 ++++++++++++++++++++++++++++++++++++- libs/httpjsutils.js | 80 +- libs/httputils.js | 367 ++--- libs/localstorageutils.js | 56 +- libs/lodash.js | 769 ++++++---- libs/pokeapi.js | 119 +- libs/pokerogueutils.js | 184 ++- libs/utils.js | 227 +-- 8 files changed, 4053 insertions(+), 781 deletions(-) diff --git a/libs/crypto-js.min.js b/libs/crypto-js.min.js index 20b3099..086189e 100644 --- a/libs/crypto-js.min.js +++ b/libs/crypto-js.min.js @@ -1 +1,3031 @@ -!function(t,e){"object"==typeof exports?module.exports=exports=e():"function"==typeof define&&define.amd?define([],e):t.CryptoJS=e()}(this,function(){var n,o,s,a,h,t,e,l,r,i,c,f,d,u,p,S,x,b,A,H,z,_,v,g,y,B,w,k,m,C,D,E,R,M,F,P,W,O,I,U=U||function(h){var i;if("undefined"!=typeof window&&window.crypto&&(i=window.crypto),"undefined"!=typeof self&&self.crypto&&(i=self.crypto),!(i=!(i=!(i="undefined"!=typeof globalThis&&globalThis.crypto?globalThis.crypto:i)&&"undefined"!=typeof window&&window.msCrypto?window.msCrypto:i)&&"undefined"!=typeof global&&global.crypto?global.crypto:i)&&"function"==typeof require)try{i=require("crypto")}catch(t){}var r=Object.create||function(t){return e.prototype=t,t=new e,e.prototype=null,t};function e(){}var t={},n=t.lib={},o=n.Base={extend:function(t){var e=r(this);return t&&e.mixIn(t),e.hasOwnProperty("init")&&this.init!==e.init||(e.init=function(){e.$super.init.apply(this,arguments)}),(e.init.prototype=e).$super=this,e},create:function(){var t=this.extend();return t.init.apply(t,arguments),t},init:function(){},mixIn:function(t){for(var e in t)t.hasOwnProperty(e)&&(this[e]=t[e]);t.hasOwnProperty("toString")&&(this.toString=t.toString)},clone:function(){return this.init.prototype.extend(this)}},l=n.WordArray=o.extend({init:function(t,e){t=this.words=t||[],this.sigBytes=null!=e?e:4*t.length},toString:function(t){return(t||c).stringify(this)},concat:function(t){var e=this.words,r=t.words,i=this.sigBytes,n=t.sigBytes;if(this.clamp(),i%4)for(var o=0;o>>2]>>>24-o%4*8&255;e[i+o>>>2]|=s<<24-(i+o)%4*8}else for(var c=0;c>>2]=r[c>>>2];return this.sigBytes+=n,this},clamp:function(){var t=this.words,e=this.sigBytes;t[e>>>2]&=4294967295<<32-e%4*8,t.length=h.ceil(e/4)},clone:function(){var t=o.clone.call(this);return t.words=this.words.slice(0),t},random:function(t){for(var e=[],r=0;r>>2]>>>24-n%4*8&255;i.push((o>>>4).toString(16)),i.push((15&o).toString(16))}return i.join("")},parse:function(t){for(var e=t.length,r=[],i=0;i>>3]|=parseInt(t.substr(i,2),16)<<24-i%8*4;return new l.init(r,e/2)}},a=s.Latin1={stringify:function(t){for(var e=t.words,r=t.sigBytes,i=[],n=0;n>>2]>>>24-n%4*8&255;i.push(String.fromCharCode(o))}return i.join("")},parse:function(t){for(var e=t.length,r=[],i=0;i>>2]|=(255&t.charCodeAt(i))<<24-i%4*8;return new l.init(r,e)}},f=s.Utf8={stringify:function(t){try{return decodeURIComponent(escape(a.stringify(t)))}catch(t){throw new Error("Malformed UTF-8 data")}},parse:function(t){return a.parse(unescape(encodeURIComponent(t)))}},d=n.BufferedBlockAlgorithm=o.extend({reset:function(){this._data=new l.init,this._nDataBytes=0},_append:function(t){"string"==typeof t&&(t=f.parse(t)),this._data.concat(t),this._nDataBytes+=t.sigBytes},_process:function(t){var e,r=this._data,i=r.words,n=r.sigBytes,o=this.blockSize,s=n/(4*o),c=(s=t?h.ceil(s):h.max((0|s)-this._minBufferSize,0))*o,n=h.min(4*c,n);if(c){for(var a=0;a>>32-e}function j(t,e,r,i){var n,o=this._iv;o?(n=o.slice(0),this._iv=void 0):n=this._prevBlock,i.encryptBlock(n,0);for(var s=0;s>24&255)?(r=t>>8&255,i=255&t,255===(e=t>>16&255)?(e=0,255===r?(r=0,255===i?i=0:++i):++r):++e,t=0,t+=e<<16,t+=r<<8,t+=i):t+=1<<24,t}function N(){for(var t=this._X,e=this._C,r=0;r<8;r++)E[r]=e[r];e[0]=e[0]+1295307597+this._b|0,e[1]=e[1]+3545052371+(e[0]>>>0>>0?1:0)|0,e[2]=e[2]+886263092+(e[1]>>>0>>0?1:0)|0,e[3]=e[3]+1295307597+(e[2]>>>0>>0?1:0)|0,e[4]=e[4]+3545052371+(e[3]>>>0>>0?1:0)|0,e[5]=e[5]+886263092+(e[4]>>>0>>0?1:0)|0,e[6]=e[6]+1295307597+(e[5]>>>0>>0?1:0)|0,e[7]=e[7]+3545052371+(e[6]>>>0>>0?1:0)|0,this._b=e[7]>>>0>>0?1:0;for(r=0;r<8;r++){var i=t[r]+e[r],n=65535&i,o=i>>>16;R[r]=((n*n>>>17)+n*o>>>15)+o*o^((4294901760&i)*i|0)+((65535&i)*i|0)}t[0]=R[0]+(R[7]<<16|R[7]>>>16)+(R[6]<<16|R[6]>>>16)|0,t[1]=R[1]+(R[0]<<8|R[0]>>>24)+R[7]|0,t[2]=R[2]+(R[1]<<16|R[1]>>>16)+(R[0]<<16|R[0]>>>16)|0,t[3]=R[3]+(R[2]<<8|R[2]>>>24)+R[1]|0,t[4]=R[4]+(R[3]<<16|R[3]>>>16)+(R[2]<<16|R[2]>>>16)|0,t[5]=R[5]+(R[4]<<8|R[4]>>>24)+R[3]|0,t[6]=R[6]+(R[5]<<16|R[5]>>>16)+(R[4]<<16|R[4]>>>16)|0,t[7]=R[7]+(R[6]<<8|R[6]>>>24)+R[5]|0}function q(){for(var t=this._X,e=this._C,r=0;r<8;r++)O[r]=e[r];e[0]=e[0]+1295307597+this._b|0,e[1]=e[1]+3545052371+(e[0]>>>0>>0?1:0)|0,e[2]=e[2]+886263092+(e[1]>>>0>>0?1:0)|0,e[3]=e[3]+1295307597+(e[2]>>>0>>0?1:0)|0,e[4]=e[4]+3545052371+(e[3]>>>0>>0?1:0)|0,e[5]=e[5]+886263092+(e[4]>>>0>>0?1:0)|0,e[6]=e[6]+1295307597+(e[5]>>>0>>0?1:0)|0,e[7]=e[7]+3545052371+(e[6]>>>0>>0?1:0)|0,this._b=e[7]>>>0>>0?1:0;for(r=0;r<8;r++){var i=t[r]+e[r],n=65535&i,o=i>>>16;I[r]=((n*n>>>17)+n*o>>>15)+o*o^((4294901760&i)*i|0)+((65535&i)*i|0)}t[0]=I[0]+(I[7]<<16|I[7]>>>16)+(I[6]<<16|I[6]>>>16)|0,t[1]=I[1]+(I[0]<<8|I[0]>>>24)+I[7]|0,t[2]=I[2]+(I[1]<<16|I[1]>>>16)+(I[0]<<16|I[0]>>>16)|0,t[3]=I[3]+(I[2]<<8|I[2]>>>24)+I[1]|0,t[4]=I[4]+(I[3]<<16|I[3]>>>16)+(I[2]<<16|I[2]>>>16)|0,t[5]=I[5]+(I[4]<<8|I[4]>>>24)+I[3]|0,t[6]=I[6]+(I[5]<<16|I[5]>>>16)+(I[4]<<16|I[4]>>>16)|0,t[7]=I[7]+(I[6]<<8|I[6]>>>24)+I[5]|0}return F=(M=U).lib,n=F.Base,o=F.WordArray,(M=M.x64={}).Word=n.extend({init:function(t,e){this.high=t,this.low=e}}),M.WordArray=n.extend({init:function(t,e){t=this.words=t||[],this.sigBytes=null!=e?e:8*t.length},toX32:function(){for(var t=this.words,e=t.length,r=[],i=0;i>>2]|=t[i]<<24-i%4*8;s.call(this,r,e)}else s.apply(this,arguments)}).prototype=P),function(){var t=U,n=t.lib.WordArray,t=t.enc;t.Utf16=t.Utf16BE={stringify:function(t){for(var e=t.words,r=t.sigBytes,i=[],n=0;n>>2]>>>16-n%4*8&65535;i.push(String.fromCharCode(o))}return i.join("")},parse:function(t){for(var e=t.length,r=[],i=0;i>>1]|=t.charCodeAt(i)<<16-i%2*16;return n.create(r,2*e)}};function s(t){return t<<8&4278255360|t>>>8&16711935}t.Utf16LE={stringify:function(t){for(var e=t.words,r=t.sigBytes,i=[],n=0;n>>2]>>>16-n%4*8&65535);i.push(String.fromCharCode(o))}return i.join("")},parse:function(t){for(var e=t.length,r=[],i=0;i>>1]|=s(t.charCodeAt(i)<<16-i%2*16);return n.create(r,2*e)}}}(),a=(w=U).lib.WordArray,w.enc.Base64={stringify:function(t){var e=t.words,r=t.sigBytes,i=this._map;t.clamp();for(var n=[],o=0;o>>2]>>>24-o%4*8&255)<<16|(e[o+1>>>2]>>>24-(o+1)%4*8&255)<<8|e[o+2>>>2]>>>24-(o+2)%4*8&255,c=0;c<4&&o+.75*c>>6*(3-c)&63));var a=i.charAt(64);if(a)for(;n.length%4;)n.push(a);return n.join("")},parse:function(t){var e=t.length,r=this._map;if(!(i=this._reverseMap))for(var i=this._reverseMap=[],n=0;n>>6-o%4*2,c=s|c,i[n>>>2]|=c<<24-n%4*8,n++)}return a.create(i,n)}(t,e,i)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="},h=(F=U).lib.WordArray,F.enc.Base64url={stringify:function(t,e=!0){var r=t.words,i=t.sigBytes,n=e?this._safe_map:this._map;t.clamp();for(var o=[],s=0;s>>2]>>>24-s%4*8&255)<<16|(r[s+1>>>2]>>>24-(s+1)%4*8&255)<<8|r[s+2>>>2]>>>24-(s+2)%4*8&255,a=0;a<4&&s+.75*a>>6*(3-a)&63));var h=n.charAt(64);if(h)for(;o.length%4;)o.push(h);return o.join("")},parse:function(t,e=!0){var r=t.length,i=e?this._safe_map:this._map;if(!(n=this._reverseMap))for(var n=this._reverseMap=[],o=0;o>>6-o%4*2,c=s|c,i[n>>>2]|=c<<24-n%4*8,n++)}return h.create(i,n)}(t,r,n)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",_safe_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"},function(a){var t=U,e=t.lib,r=e.WordArray,i=e.Hasher,e=t.algo,A=[];!function(){for(var t=0;t<64;t++)A[t]=4294967296*a.abs(a.sin(t+1))|0}();e=e.MD5=i.extend({_doReset:function(){this._hash=new r.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(t,e){for(var r=0;r<16;r++){var i=e+r,n=t[i];t[i]=16711935&(n<<8|n>>>24)|4278255360&(n<<24|n>>>8)}var o=this._hash.words,s=t[e+0],c=t[e+1],a=t[e+2],h=t[e+3],l=t[e+4],f=t[e+5],d=t[e+6],u=t[e+7],p=t[e+8],_=t[e+9],y=t[e+10],v=t[e+11],g=t[e+12],B=t[e+13],w=t[e+14],k=t[e+15],m=H(m=o[0],b=o[1],x=o[2],S=o[3],s,7,A[0]),S=H(S,m,b,x,c,12,A[1]),x=H(x,S,m,b,a,17,A[2]),b=H(b,x,S,m,h,22,A[3]);m=H(m,b,x,S,l,7,A[4]),S=H(S,m,b,x,f,12,A[5]),x=H(x,S,m,b,d,17,A[6]),b=H(b,x,S,m,u,22,A[7]),m=H(m,b,x,S,p,7,A[8]),S=H(S,m,b,x,_,12,A[9]),x=H(x,S,m,b,y,17,A[10]),b=H(b,x,S,m,v,22,A[11]),m=H(m,b,x,S,g,7,A[12]),S=H(S,m,b,x,B,12,A[13]),x=H(x,S,m,b,w,17,A[14]),m=z(m,b=H(b,x,S,m,k,22,A[15]),x,S,c,5,A[16]),S=z(S,m,b,x,d,9,A[17]),x=z(x,S,m,b,v,14,A[18]),b=z(b,x,S,m,s,20,A[19]),m=z(m,b,x,S,f,5,A[20]),S=z(S,m,b,x,y,9,A[21]),x=z(x,S,m,b,k,14,A[22]),b=z(b,x,S,m,l,20,A[23]),m=z(m,b,x,S,_,5,A[24]),S=z(S,m,b,x,w,9,A[25]),x=z(x,S,m,b,h,14,A[26]),b=z(b,x,S,m,p,20,A[27]),m=z(m,b,x,S,B,5,A[28]),S=z(S,m,b,x,a,9,A[29]),x=z(x,S,m,b,u,14,A[30]),m=C(m,b=z(b,x,S,m,g,20,A[31]),x,S,f,4,A[32]),S=C(S,m,b,x,p,11,A[33]),x=C(x,S,m,b,v,16,A[34]),b=C(b,x,S,m,w,23,A[35]),m=C(m,b,x,S,c,4,A[36]),S=C(S,m,b,x,l,11,A[37]),x=C(x,S,m,b,u,16,A[38]),b=C(b,x,S,m,y,23,A[39]),m=C(m,b,x,S,B,4,A[40]),S=C(S,m,b,x,s,11,A[41]),x=C(x,S,m,b,h,16,A[42]),b=C(b,x,S,m,d,23,A[43]),m=C(m,b,x,S,_,4,A[44]),S=C(S,m,b,x,g,11,A[45]),x=C(x,S,m,b,k,16,A[46]),m=D(m,b=C(b,x,S,m,a,23,A[47]),x,S,s,6,A[48]),S=D(S,m,b,x,u,10,A[49]),x=D(x,S,m,b,w,15,A[50]),b=D(b,x,S,m,f,21,A[51]),m=D(m,b,x,S,g,6,A[52]),S=D(S,m,b,x,h,10,A[53]),x=D(x,S,m,b,y,15,A[54]),b=D(b,x,S,m,c,21,A[55]),m=D(m,b,x,S,p,6,A[56]),S=D(S,m,b,x,k,10,A[57]),x=D(x,S,m,b,d,15,A[58]),b=D(b,x,S,m,B,21,A[59]),m=D(m,b,x,S,l,6,A[60]),S=D(S,m,b,x,v,10,A[61]),x=D(x,S,m,b,a,15,A[62]),b=D(b,x,S,m,_,21,A[63]),o[0]=o[0]+m|0,o[1]=o[1]+b|0,o[2]=o[2]+x|0,o[3]=o[3]+S|0},_doFinalize:function(){var t=this._data,e=t.words,r=8*this._nDataBytes,i=8*t.sigBytes;e[i>>>5]|=128<<24-i%32;var n=a.floor(r/4294967296),r=r;e[15+(64+i>>>9<<4)]=16711935&(n<<8|n>>>24)|4278255360&(n<<24|n>>>8),e[14+(64+i>>>9<<4)]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8),t.sigBytes=4*(e.length+1),this._process();for(var e=this._hash,o=e.words,s=0;s<4;s++){var c=o[s];o[s]=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8)}return e},clone:function(){var t=i.clone.call(this);return t._hash=this._hash.clone(),t}});function H(t,e,r,i,n,o,s){s=t+(e&r|~e&i)+n+s;return(s<>>32-o)+e}function z(t,e,r,i,n,o,s){s=t+(e&i|r&~i)+n+s;return(s<>>32-o)+e}function C(t,e,r,i,n,o,s){s=t+(e^r^i)+n+s;return(s<>>32-o)+e}function D(t,e,r,i,n,o,s){s=t+(r^(e|~i))+n+s;return(s<>>32-o)+e}t.MD5=i._createHelper(e),t.HmacMD5=i._createHmacHelper(e)}(Math),P=(M=U).lib,t=P.WordArray,e=P.Hasher,P=M.algo,l=[],P=P.SHA1=e.extend({_doReset:function(){this._hash=new t.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,e){for(var r=this._hash.words,i=r[0],n=r[1],o=r[2],s=r[3],c=r[4],a=0;a<80;a++){a<16?l[a]=0|t[e+a]:(h=l[a-3]^l[a-8]^l[a-14]^l[a-16],l[a]=h<<1|h>>>31);var h=(i<<5|i>>>27)+c+l[a];h+=a<20?1518500249+(n&o|~n&s):a<40?1859775393+(n^o^s):a<60?(n&o|n&s|o&s)-1894007588:(n^o^s)-899497514,c=s,s=o,o=n<<30|n>>>2,n=i,i=h}r[0]=r[0]+i|0,r[1]=r[1]+n|0,r[2]=r[2]+o|0,r[3]=r[3]+s|0,r[4]=r[4]+c|0},_doFinalize:function(){var t=this._data,e=t.words,r=8*this._nDataBytes,i=8*t.sigBytes;return e[i>>>5]|=128<<24-i%32,e[14+(64+i>>>9<<4)]=Math.floor(r/4294967296),e[15+(64+i>>>9<<4)]=r,t.sigBytes=4*e.length,this._process(),this._hash},clone:function(){var t=e.clone.call(this);return t._hash=this._hash.clone(),t}}),M.SHA1=e._createHelper(P),M.HmacSHA1=e._createHmacHelper(P),function(n){var t=U,e=t.lib,r=e.WordArray,i=e.Hasher,e=t.algo,o=[],p=[];!function(){function t(t){return 4294967296*(t-(0|t))|0}for(var e=2,r=0;r<64;)!function(t){for(var e=n.sqrt(t),r=2;r<=e;r++)if(!(t%r))return;return 1}(e)||(r<8&&(o[r]=t(n.pow(e,.5))),p[r]=t(n.pow(e,1/3)),r++),e++}();var _=[],e=e.SHA256=i.extend({_doReset:function(){this._hash=new r.init(o.slice(0))},_doProcessBlock:function(t,e){for(var r=this._hash.words,i=r[0],n=r[1],o=r[2],s=r[3],c=r[4],a=r[5],h=r[6],l=r[7],f=0;f<64;f++){f<16?_[f]=0|t[e+f]:(d=_[f-15],u=_[f-2],_[f]=((d<<25|d>>>7)^(d<<14|d>>>18)^d>>>3)+_[f-7]+((u<<15|u>>>17)^(u<<13|u>>>19)^u>>>10)+_[f-16]);var d=i&n^i&o^n&o,u=l+((c<<26|c>>>6)^(c<<21|c>>>11)^(c<<7|c>>>25))+(c&a^~c&h)+p[f]+_[f],l=h,h=a,a=c,c=s+u|0,s=o,o=n,n=i,i=u+(((i<<30|i>>>2)^(i<<19|i>>>13)^(i<<10|i>>>22))+d)|0}r[0]=r[0]+i|0,r[1]=r[1]+n|0,r[2]=r[2]+o|0,r[3]=r[3]+s|0,r[4]=r[4]+c|0,r[5]=r[5]+a|0,r[6]=r[6]+h|0,r[7]=r[7]+l|0},_doFinalize:function(){var t=this._data,e=t.words,r=8*this._nDataBytes,i=8*t.sigBytes;return e[i>>>5]|=128<<24-i%32,e[14+(64+i>>>9<<4)]=n.floor(r/4294967296),e[15+(64+i>>>9<<4)]=r,t.sigBytes=4*e.length,this._process(),this._hash},clone:function(){var t=i.clone.call(this);return t._hash=this._hash.clone(),t}});t.SHA256=i._createHelper(e),t.HmacSHA256=i._createHmacHelper(e)}(Math),r=(w=U).lib.WordArray,F=w.algo,i=F.SHA256,F=F.SHA224=i.extend({_doReset:function(){this._hash=new r.init([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},_doFinalize:function(){var t=i._doFinalize.call(this);return t.sigBytes-=4,t}}),w.SHA224=i._createHelper(F),w.HmacSHA224=i._createHmacHelper(F),function(){var t=U,e=t.lib.Hasher,r=t.x64,i=r.Word,n=r.WordArray,r=t.algo;function o(){return i.create.apply(i,arguments)}var t1=[o(1116352408,3609767458),o(1899447441,602891725),o(3049323471,3964484399),o(3921009573,2173295548),o(961987163,4081628472),o(1508970993,3053834265),o(2453635748,2937671579),o(2870763221,3664609560),o(3624381080,2734883394),o(310598401,1164996542),o(607225278,1323610764),o(1426881987,3590304994),o(1925078388,4068182383),o(2162078206,991336113),o(2614888103,633803317),o(3248222580,3479774868),o(3835390401,2666613458),o(4022224774,944711139),o(264347078,2341262773),o(604807628,2007800933),o(770255983,1495990901),o(1249150122,1856431235),o(1555081692,3175218132),o(1996064986,2198950837),o(2554220882,3999719339),o(2821834349,766784016),o(2952996808,2566594879),o(3210313671,3203337956),o(3336571891,1034457026),o(3584528711,2466948901),o(113926993,3758326383),o(338241895,168717936),o(666307205,1188179964),o(773529912,1546045734),o(1294757372,1522805485),o(1396182291,2643833823),o(1695183700,2343527390),o(1986661051,1014477480),o(2177026350,1206759142),o(2456956037,344077627),o(2730485921,1290863460),o(2820302411,3158454273),o(3259730800,3505952657),o(3345764771,106217008),o(3516065817,3606008344),o(3600352804,1432725776),o(4094571909,1467031594),o(275423344,851169720),o(430227734,3100823752),o(506948616,1363258195),o(659060556,3750685593),o(883997877,3785050280),o(958139571,3318307427),o(1322822218,3812723403),o(1537002063,2003034995),o(1747873779,3602036899),o(1955562222,1575990012),o(2024104815,1125592928),o(2227730452,2716904306),o(2361852424,442776044),o(2428436474,593698344),o(2756734187,3733110249),o(3204031479,2999351573),o(3329325298,3815920427),o(3391569614,3928383900),o(3515267271,566280711),o(3940187606,3454069534),o(4118630271,4000239992),o(116418474,1914138554),o(174292421,2731055270),o(289380356,3203993006),o(460393269,320620315),o(685471733,587496836),o(852142971,1086792851),o(1017036298,365543100),o(1126000580,2618297676),o(1288033470,3409855158),o(1501505948,4234509866),o(1607167915,987167468),o(1816402316,1246189591)],e1=[];!function(){for(var t=0;t<80;t++)e1[t]=o()}();r=r.SHA512=e.extend({_doReset:function(){this._hash=new n.init([new i.init(1779033703,4089235720),new i.init(3144134277,2227873595),new i.init(1013904242,4271175723),new i.init(2773480762,1595750129),new i.init(1359893119,2917565137),new i.init(2600822924,725511199),new i.init(528734635,4215389547),new i.init(1541459225,327033209)])},_doProcessBlock:function(t,e){for(var r=this._hash.words,i=r[0],n=r[1],o=r[2],s=r[3],c=r[4],a=r[5],h=r[6],l=r[7],f=i.high,d=i.low,u=n.high,p=n.low,_=o.high,y=o.low,v=s.high,g=s.low,B=c.high,w=c.low,k=a.high,m=a.low,S=h.high,x=h.low,b=l.high,r=l.low,A=f,H=d,z=u,C=p,D=_,E=y,R=v,M=g,F=B,P=w,W=k,O=m,I=S,U=x,K=b,X=r,L=0;L<80;L++){var j,T,N=e1[L];L<16?(T=N.high=0|t[e+2*L],j=N.low=0|t[e+2*L+1]):($=(q=e1[L-15]).high,J=q.low,G=(Q=e1[L-2]).high,V=Q.low,Z=(Y=e1[L-7]).high,q=Y.low,Y=(Q=e1[L-16]).high,T=(T=(($>>>1|J<<31)^($>>>8|J<<24)^$>>>7)+Z+((j=(Z=(J>>>1|$<<31)^(J>>>8|$<<24)^(J>>>7|$<<25))+q)>>>0>>0?1:0))+((G>>>19|V<<13)^(G<<3|V>>>29)^G>>>6)+((j+=J=(V>>>19|G<<13)^(V<<3|G>>>29)^(V>>>6|G<<26))>>>0>>0?1:0),j+=$=Q.low,N.high=T=T+Y+(j>>>0<$>>>0?1:0),N.low=j);var q=F&W^~F&I,Z=P&O^~P&U,V=A&z^A&D^z&D,G=(H>>>28|A<<4)^(H<<30|A>>>2)^(H<<25|A>>>7),J=t1[L],Q=J.high,Y=J.low,$=X+((P>>>14|F<<18)^(P>>>18|F<<14)^(P<<23|F>>>9)),N=K+((F>>>14|P<<18)^(F>>>18|P<<14)^(F<<23|P>>>9))+($>>>0>>0?1:0),J=G+(H&C^H&E^C&E),K=I,X=U,I=W,U=O,W=F,O=P,F=R+(N=(N=(N=N+q+(($=$+Z)>>>0>>0?1:0))+Q+(($=$+Y)>>>0>>0?1:0))+T+(($=$+j)>>>0>>0?1:0))+((P=M+$|0)>>>0>>0?1:0)|0,R=D,M=E,D=z,E=C,z=A,C=H,A=N+(((A>>>28|H<<4)^(A<<30|H>>>2)^(A<<25|H>>>7))+V+(J>>>0>>0?1:0))+((H=$+J|0)>>>0<$>>>0?1:0)|0}d=i.low=d+H,i.high=f+A+(d>>>0>>0?1:0),p=n.low=p+C,n.high=u+z+(p>>>0>>0?1:0),y=o.low=y+E,o.high=_+D+(y>>>0>>0?1:0),g=s.low=g+M,s.high=v+R+(g>>>0>>0?1:0),w=c.low=w+P,c.high=B+F+(w>>>0

>>0?1:0),m=a.low=m+O,a.high=k+W+(m>>>0>>0?1:0),x=h.low=x+U,h.high=S+I+(x>>>0>>0?1:0),r=l.low=r+X,l.high=b+K+(r>>>0>>0?1:0)},_doFinalize:function(){var t=this._data,e=t.words,r=8*this._nDataBytes,i=8*t.sigBytes;return e[i>>>5]|=128<<24-i%32,e[30+(128+i>>>10<<5)]=Math.floor(r/4294967296),e[31+(128+i>>>10<<5)]=r,t.sigBytes=4*e.length,this._process(),this._hash.toX32()},clone:function(){var t=e.clone.call(this);return t._hash=this._hash.clone(),t},blockSize:32});t.SHA512=e._createHelper(r),t.HmacSHA512=e._createHmacHelper(r)}(),P=(M=U).x64,c=P.Word,f=P.WordArray,P=M.algo,d=P.SHA512,P=P.SHA384=d.extend({_doReset:function(){this._hash=new f.init([new c.init(3418070365,3238371032),new c.init(1654270250,914150663),new c.init(2438529370,812702999),new c.init(355462360,4144912697),new c.init(1731405415,4290775857),new c.init(2394180231,1750603025),new c.init(3675008525,1694076839),new c.init(1203062813,3204075428)])},_doFinalize:function(){var t=d._doFinalize.call(this);return t.sigBytes-=16,t}}),M.SHA384=d._createHelper(P),M.HmacSHA384=d._createHmacHelper(P),function(l){var t=U,e=t.lib,f=e.WordArray,i=e.Hasher,d=t.x64.Word,e=t.algo,A=[],H=[],z=[];!function(){for(var t=1,e=0,r=0;r<24;r++){A[t+5*e]=(r+1)*(r+2)/2%64;var i=(2*t+3*e)%5;t=e%5,e=i}for(t=0;t<5;t++)for(e=0;e<5;e++)H[t+5*e]=e+(2*t+3*e)%5*5;for(var n=1,o=0;o<24;o++){for(var s,c=0,a=0,h=0;h<7;h++)1&n&&((s=(1<>>24)|4278255360&(o<<24|o>>>8);(m=r[n]).high^=s=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),m.low^=o}for(var c=0;c<24;c++){for(var a=0;a<5;a++){for(var h=0,l=0,f=0;f<5;f++)h^=(m=r[a+5*f]).high,l^=m.low;var d=C[a];d.high=h,d.low=l}for(a=0;a<5;a++)for(var u=C[(a+4)%5],p=C[(a+1)%5],_=p.high,p=p.low,h=u.high^(_<<1|p>>>31),l=u.low^(p<<1|_>>>31),f=0;f<5;f++)(m=r[a+5*f]).high^=h,m.low^=l;for(var y=1;y<25;y++){var v=(m=r[y]).high,g=m.low,B=A[y];l=B<32?(h=v<>>32-B,g<>>32-B):(h=g<>>64-B,v<>>64-B);B=C[H[y]];B.high=h,B.low=l}var w=C[0],k=r[0];w.high=k.high,w.low=k.low;for(a=0;a<5;a++)for(f=0;f<5;f++){var m=r[y=a+5*f],S=C[y],x=C[(a+1)%5+5*f],b=C[(a+2)%5+5*f];m.high=S.high^~x.high&b.high,m.low=S.low^~x.low&b.low}m=r[0],k=z[c];m.high^=k.high,m.low^=k.low}},_doFinalize:function(){var t=this._data,e=t.words,r=(this._nDataBytes,8*t.sigBytes),i=32*this.blockSize;e[r>>>5]|=1<<24-r%32,e[(l.ceil((1+r)/i)*i>>>5)-1]|=128,t.sigBytes=4*e.length,this._process();for(var n=this._state,e=this.cfg.outputLength/8,o=e/8,s=[],c=0;c>>24)|4278255360&(h<<24|h>>>8);s.push(a=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8)),s.push(h)}return new f.init(s,e)},clone:function(){for(var t=i.clone.call(this),e=t._state=this._state.slice(0),r=0;r<25;r++)e[r]=e[r].clone();return t}});t.SHA3=i._createHelper(e),t.HmacSHA3=i._createHmacHelper(e)}(Math),Math,F=(w=U).lib,u=F.WordArray,p=F.Hasher,F=w.algo,S=u.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),x=u.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),b=u.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),A=u.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),H=u.create([0,1518500249,1859775393,2400959708,2840853838]),z=u.create([1352829926,1548603684,1836072691,2053994217,0]),F=F.RIPEMD160=p.extend({_doReset:function(){this._hash=u.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,e){for(var r=0;r<16;r++){var i=e+r,n=t[i];t[i]=16711935&(n<<8|n>>>24)|4278255360&(n<<24|n>>>8)}for(var o,s,c,a,h,l,f=this._hash.words,d=H.words,u=z.words,p=S.words,_=x.words,y=b.words,v=A.words,g=o=f[0],B=s=f[1],w=c=f[2],k=a=f[3],m=h=f[4],r=0;r<80;r+=1)l=o+t[e+p[r]]|0,l+=r<16?(s^c^a)+d[0]:r<32?K(s,c,a)+d[1]:r<48?((s|~c)^a)+d[2]:r<64?X(s,c,a)+d[3]:(s^(c|~a))+d[4],l=(l=L(l|=0,y[r]))+h|0,o=h,h=a,a=L(c,10),c=s,s=l,l=g+t[e+_[r]]|0,l+=r<16?(B^(w|~k))+u[0]:r<32?X(B,w,k)+u[1]:r<48?((B|~w)^k)+u[2]:r<64?K(B,w,k)+u[3]:(B^w^k)+u[4],l=(l=L(l|=0,v[r]))+m|0,g=m,m=k,k=L(w,10),w=B,B=l;l=f[1]+c+k|0,f[1]=f[2]+a+m|0,f[2]=f[3]+h+g|0,f[3]=f[4]+o+B|0,f[4]=f[0]+s+w|0,f[0]=l},_doFinalize:function(){var t=this._data,e=t.words,r=8*this._nDataBytes,i=8*t.sigBytes;e[i>>>5]|=128<<24-i%32,e[14+(64+i>>>9<<4)]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8),t.sigBytes=4*(e.length+1),this._process();for(var e=this._hash,n=e.words,o=0;o<5;o++){var s=n[o];n[o]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8)}return e},clone:function(){var t=p.clone.call(this);return t._hash=this._hash.clone(),t}}),w.RIPEMD160=p._createHelper(F),w.HmacRIPEMD160=p._createHmacHelper(F),P=(M=U).lib.Base,_=M.enc.Utf8,M.algo.HMAC=P.extend({init:function(t,e){t=this._hasher=new t.init,"string"==typeof e&&(e=_.parse(e));var r=t.blockSize,i=4*r;(e=e.sigBytes>i?t.finalize(e):e).clamp();for(var t=this._oKey=e.clone(),e=this._iKey=e.clone(),n=t.words,o=e.words,s=0;s>>2];t.sigBytes-=e}},d=(e.BlockCipher=a.extend({cfg:a.cfg.extend({mode:n,padding:l}),reset:function(){var t;a.reset.call(this);var e=this.cfg,r=e.iv,e=e.mode;this._xformMode==this._ENC_XFORM_MODE?t=e.createEncryptor:(t=e.createDecryptor,this._minBufferSize=1),this._mode&&this._mode.__creator==t?this._mode.init(this,r&&r.words):(this._mode=t.call(e,this,r&&r.words),this._mode.__creator=t)},_doProcessBlock:function(t,e){this._mode.processBlock(t,e)},_doFinalize:function(){var t,e=this.cfg.padding;return this._xformMode==this._ENC_XFORM_MODE?(e.pad(this._data,this.blockSize),t=this._process(!0)):(t=this._process(!0),e.unpad(t)),t},blockSize:4}),e.CipherParams=r.extend({init:function(t){this.mixIn(t)},toString:function(t){return(t||this.formatter).stringify(this)}})),l=(t.format={}).OpenSSL={stringify:function(t){var e=t.ciphertext,t=t.salt,e=t?s.create([1398893684,1701076831]).concat(t).concat(e):e;return e.toString(o)},parse:function(t){var e,r=o.parse(t),t=r.words;return 1398893684==t[0]&&1701076831==t[1]&&(e=s.create(t.slice(2,4)),t.splice(0,4),r.sigBytes-=16),d.create({ciphertext:r,salt:e})}},u=e.SerializableCipher=r.extend({cfg:r.extend({format:l}),encrypt:function(t,e,r,i){i=this.cfg.extend(i);var n=t.createEncryptor(r,i),e=n.finalize(e),n=n.cfg;return d.create({ciphertext:e,key:r,iv:n.iv,algorithm:t,mode:n.mode,padding:n.padding,blockSize:t.blockSize,formatter:i.format})},decrypt:function(t,e,r,i){return i=this.cfg.extend(i),e=this._parse(e,i.format),t.createDecryptor(r,i).finalize(e.ciphertext)},_parse:function(t,e){return"string"==typeof t?e.parse(t,this):t}}),t=(t.kdf={}).OpenSSL={execute:function(t,e,r,i){i=i||s.random(8);t=c.create({keySize:e+r}).compute(t,i),r=s.create(t.words.slice(e),4*r);return t.sigBytes=4*e,d.create({key:t,iv:r,salt:i})}},p=e.PasswordBasedCipher=u.extend({cfg:u.cfg.extend({kdf:t}),encrypt:function(t,e,r,i){r=(i=this.cfg.extend(i)).kdf.execute(r,t.keySize,t.ivSize);i.iv=r.iv;i=u.encrypt.call(this,t,e,r.key,i);return i.mixIn(r),i},decrypt:function(t,e,r,i){i=this.cfg.extend(i),e=this._parse(e,i.format);r=i.kdf.execute(r,t.keySize,t.ivSize,e.salt);return i.iv=r.iv,u.decrypt.call(this,t,e,r.key,i)}})}(),U.mode.CFB=((F=U.lib.BlockCipherMode.extend()).Encryptor=F.extend({processBlock:function(t,e){var r=this._cipher,i=r.blockSize;j.call(this,t,e,i,r),this._prevBlock=t.slice(e,e+i)}}),F.Decryptor=F.extend({processBlock:function(t,e){var r=this._cipher,i=r.blockSize,n=t.slice(e,e+i);j.call(this,t,e,i,r),this._prevBlock=n}}),F),U.mode.CTR=(M=U.lib.BlockCipherMode.extend(),P=M.Encryptor=M.extend({processBlock:function(t,e){var r=this._cipher,i=r.blockSize,n=this._iv,o=this._counter;n&&(o=this._counter=n.slice(0),this._iv=void 0);var s=o.slice(0);r.encryptBlock(s,0),o[i-1]=o[i-1]+1|0;for(var c=0;c>>2]|=e<<24-r%4*8,t.sigBytes+=e},unpad:function(t){var e=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=e}},U.pad.Iso10126={pad:function(t,e){e*=4,e-=t.sigBytes%e;t.concat(U.lib.WordArray.random(e-1)).concat(U.lib.WordArray.create([e<<24],1))},unpad:function(t){var e=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=e}},U.pad.Iso97971={pad:function(t,e){t.concat(U.lib.WordArray.create([2147483648],1)),U.pad.ZeroPadding.pad(t,e)},unpad:function(t){U.pad.ZeroPadding.unpad(t),t.sigBytes--}},U.pad.ZeroPadding={pad:function(t,e){e*=4;t.clamp(),t.sigBytes+=e-(t.sigBytes%e||e)},unpad:function(t){for(var e=t.words,r=t.sigBytes-1,r=t.sigBytes-1;0<=r;r--)if(e[r>>>2]>>>24-r%4*8&255){t.sigBytes=r+1;break}}},U.pad.NoPadding={pad:function(){},unpad:function(){}},m=(P=U).lib.CipherParams,C=P.enc.Hex,P.format.Hex={stringify:function(t){return t.ciphertext.toString(C)},parse:function(t){t=C.parse(t);return m.create({ciphertext:t})}},function(){var t=U,e=t.lib.BlockCipher,r=t.algo,h=[],l=[],f=[],d=[],u=[],p=[],_=[],y=[],v=[],g=[];!function(){for(var t=[],e=0;e<256;e++)t[e]=e<128?e<<1:e<<1^283;for(var r=0,i=0,e=0;e<256;e++){var n=i^i<<1^i<<2^i<<3^i<<4;h[r]=n=n>>>8^255&n^99;var o=t[l[n]=r],s=t[o],c=t[s],a=257*t[n]^16843008*n;f[r]=a<<24|a>>>8,d[r]=a<<16|a>>>16,u[r]=a<<8|a>>>24,p[r]=a,_[n]=(a=16843009*c^65537*s^257*o^16843008*r)<<24|a>>>8,y[n]=a<<16|a>>>16,v[n]=a<<8|a>>>24,g[n]=a,r?(r=o^t[t[t[c^o]]],i^=t[t[i]]):r=i=1}}();var B=[0,1,2,4,8,16,32,64,128,27,54],r=r.AES=e.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var t=this._keyPriorReset=this._key,e=t.words,r=t.sigBytes/4,i=4*(1+(this._nRounds=6+r)),n=this._keySchedule=[],o=0;o>>24]<<24|h[a>>>16&255]<<16|h[a>>>8&255]<<8|h[255&a]):(a=h[(a=a<<8|a>>>24)>>>24]<<24|h[a>>>16&255]<<16|h[a>>>8&255]<<8|h[255&a],a^=B[o/r|0]<<24),n[o]=n[o-r]^a);for(var s=this._invKeySchedule=[],c=0;c>>24]]^y[h[a>>>16&255]]^v[h[a>>>8&255]]^g[h[255&a]]}}},encryptBlock:function(t,e){this._doCryptBlock(t,e,this._keySchedule,f,d,u,p,h)},decryptBlock:function(t,e){var r=t[e+1];t[e+1]=t[e+3],t[e+3]=r,this._doCryptBlock(t,e,this._invKeySchedule,_,y,v,g,l);r=t[e+1];t[e+1]=t[e+3],t[e+3]=r},_doCryptBlock:function(t,e,r,i,n,o,s,c){for(var a=this._nRounds,h=t[e]^r[0],l=t[e+1]^r[1],f=t[e+2]^r[2],d=t[e+3]^r[3],u=4,p=1;p>>24]^n[l>>>16&255]^o[f>>>8&255]^s[255&d]^r[u++],y=i[l>>>24]^n[f>>>16&255]^o[d>>>8&255]^s[255&h]^r[u++],v=i[f>>>24]^n[d>>>16&255]^o[h>>>8&255]^s[255&l]^r[u++],g=i[d>>>24]^n[h>>>16&255]^o[l>>>8&255]^s[255&f]^r[u++],h=_,l=y,f=v,d=g;_=(c[h>>>24]<<24|c[l>>>16&255]<<16|c[f>>>8&255]<<8|c[255&d])^r[u++],y=(c[l>>>24]<<24|c[f>>>16&255]<<16|c[d>>>8&255]<<8|c[255&h])^r[u++],v=(c[f>>>24]<<24|c[d>>>16&255]<<16|c[h>>>8&255]<<8|c[255&l])^r[u++],g=(c[d>>>24]<<24|c[h>>>16&255]<<16|c[l>>>8&255]<<8|c[255&f])^r[u++];t[e]=_,t[e+1]=y,t[e+2]=v,t[e+3]=g},keySize:8});t.AES=e._createHelper(r)}(),function(){var t=U,e=t.lib,i=e.WordArray,r=e.BlockCipher,e=t.algo,h=[57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4],l=[14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32],f=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28],d=[{0:8421888,268435456:32768,536870912:8421378,805306368:2,1073741824:512,1342177280:8421890,1610612736:8389122,1879048192:8388608,2147483648:514,2415919104:8389120,2684354560:33280,2952790016:8421376,3221225472:32770,3489660928:8388610,3758096384:0,4026531840:33282,134217728:0,402653184:8421890,671088640:33282,939524096:32768,1207959552:8421888,1476395008:512,1744830464:8421378,2013265920:2,2281701376:8389120,2550136832:33280,2818572288:8421376,3087007744:8389122,3355443200:8388610,3623878656:32770,3892314112:514,4160749568:8388608,1:32768,268435457:2,536870913:8421888,805306369:8388608,1073741825:8421378,1342177281:33280,1610612737:512,1879048193:8389122,2147483649:8421890,2415919105:8421376,2684354561:8388610,2952790017:33282,3221225473:514,3489660929:8389120,3758096385:32770,4026531841:0,134217729:8421890,402653185:8421376,671088641:8388608,939524097:512,1207959553:32768,1476395009:8388610,1744830465:2,2013265921:33282,2281701377:32770,2550136833:8389122,2818572289:514,3087007745:8421888,3355443201:8389120,3623878657:0,3892314113:33280,4160749569:8421378},{0:1074282512,16777216:16384,33554432:524288,50331648:1074266128,67108864:1073741840,83886080:1074282496,100663296:1073758208,117440512:16,134217728:540672,150994944:1073758224,167772160:1073741824,184549376:540688,201326592:524304,218103808:0,234881024:16400,251658240:1074266112,8388608:1073758208,25165824:540688,41943040:16,58720256:1073758224,75497472:1074282512,92274688:1073741824,109051904:524288,125829120:1074266128,142606336:524304,159383552:0,176160768:16384,192937984:1074266112,209715200:1073741840,226492416:540672,243269632:1074282496,260046848:16400,268435456:0,285212672:1074266128,301989888:1073758224,318767104:1074282496,335544320:1074266112,352321536:16,369098752:540688,385875968:16384,402653184:16400,419430400:524288,436207616:524304,452984832:1073741840,469762048:540672,486539264:1073758208,503316480:1073741824,520093696:1074282512,276824064:540688,293601280:524288,310378496:1074266112,327155712:16384,343932928:1073758208,360710144:1074282512,377487360:16,394264576:1073741824,411041792:1074282496,427819008:1073741840,444596224:1073758224,461373440:524304,478150656:0,494927872:16400,511705088:1074266128,528482304:540672},{0:260,1048576:0,2097152:67109120,3145728:65796,4194304:65540,5242880:67108868,6291456:67174660,7340032:67174400,8388608:67108864,9437184:67174656,10485760:65792,11534336:67174404,12582912:67109124,13631488:65536,14680064:4,15728640:256,524288:67174656,1572864:67174404,2621440:0,3670016:67109120,4718592:67108868,5767168:65536,6815744:65540,7864320:260,8912896:4,9961472:256,11010048:67174400,12058624:65796,13107200:65792,14155776:67109124,15204352:67174660,16252928:67108864,16777216:67174656,17825792:65540,18874368:65536,19922944:67109120,20971520:256,22020096:67174660,23068672:67108868,24117248:0,25165824:67109124,26214400:67108864,27262976:4,28311552:65792,29360128:67174400,30408704:260,31457280:65796,32505856:67174404,17301504:67108864,18350080:260,19398656:67174656,20447232:0,21495808:65540,22544384:67109120,23592960:256,24641536:67174404,25690112:65536,26738688:67174660,27787264:65796,28835840:67108868,29884416:67109124,30932992:67174400,31981568:4,33030144:65792},{0:2151682048,65536:2147487808,131072:4198464,196608:2151677952,262144:0,327680:4198400,393216:2147483712,458752:4194368,524288:2147483648,589824:4194304,655360:64,720896:2147487744,786432:2151678016,851968:4160,917504:4096,983040:2151682112,32768:2147487808,98304:64,163840:2151678016,229376:2147487744,294912:4198400,360448:2151682112,425984:0,491520:2151677952,557056:4096,622592:2151682048,688128:4194304,753664:4160,819200:2147483648,884736:4194368,950272:4198464,1015808:2147483712,1048576:4194368,1114112:4198400,1179648:2147483712,1245184:0,1310720:4160,1376256:2151678016,1441792:2151682048,1507328:2147487808,1572864:2151682112,1638400:2147483648,1703936:2151677952,1769472:4198464,1835008:2147487744,1900544:4194304,1966080:64,2031616:4096,1081344:2151677952,1146880:2151682112,1212416:0,1277952:4198400,1343488:4194368,1409024:2147483648,1474560:2147487808,1540096:64,1605632:2147483712,1671168:4096,1736704:2147487744,1802240:2151678016,1867776:4160,1933312:2151682048,1998848:4194304,2064384:4198464},{0:128,4096:17039360,8192:262144,12288:536870912,16384:537133184,20480:16777344,24576:553648256,28672:262272,32768:16777216,36864:537133056,40960:536871040,45056:553910400,49152:553910272,53248:0,57344:17039488,61440:553648128,2048:17039488,6144:553648256,10240:128,14336:17039360,18432:262144,22528:537133184,26624:553910272,30720:536870912,34816:537133056,38912:0,43008:553910400,47104:16777344,51200:536871040,55296:553648128,59392:16777216,63488:262272,65536:262144,69632:128,73728:536870912,77824:553648256,81920:16777344,86016:553910272,90112:537133184,94208:16777216,98304:553910400,102400:553648128,106496:17039360,110592:537133056,114688:262272,118784:536871040,122880:0,126976:17039488,67584:553648256,71680:16777216,75776:17039360,79872:537133184,83968:536870912,88064:17039488,92160:128,96256:553910272,100352:262272,104448:553910400,108544:0,112640:553648128,116736:16777344,120832:262144,124928:537133056,129024:536871040},{0:268435464,256:8192,512:270532608,768:270540808,1024:268443648,1280:2097152,1536:2097160,1792:268435456,2048:0,2304:268443656,2560:2105344,2816:8,3072:270532616,3328:2105352,3584:8200,3840:270540800,128:270532608,384:270540808,640:8,896:2097152,1152:2105352,1408:268435464,1664:268443648,1920:8200,2176:2097160,2432:8192,2688:268443656,2944:270532616,3200:0,3456:270540800,3712:2105344,3968:268435456,4096:268443648,4352:270532616,4608:270540808,4864:8200,5120:2097152,5376:268435456,5632:268435464,5888:2105344,6144:2105352,6400:0,6656:8,6912:270532608,7168:8192,7424:268443656,7680:270540800,7936:2097160,4224:8,4480:2105344,4736:2097152,4992:268435464,5248:268443648,5504:8200,5760:270540808,6016:270532608,6272:270540800,6528:270532616,6784:8192,7040:2105352,7296:2097160,7552:0,7808:268435456,8064:268443656},{0:1048576,16:33555457,32:1024,48:1049601,64:34604033,80:0,96:1,112:34603009,128:33555456,144:1048577,160:33554433,176:34604032,192:34603008,208:1025,224:1049600,240:33554432,8:34603009,24:0,40:33555457,56:34604032,72:1048576,88:33554433,104:33554432,120:1025,136:1049601,152:33555456,168:34603008,184:1048577,200:1024,216:34604033,232:1,248:1049600,256:33554432,272:1048576,288:33555457,304:34603009,320:1048577,336:33555456,352:34604032,368:1049601,384:1025,400:34604033,416:1049600,432:1,448:0,464:34603008,480:33554433,496:1024,264:1049600,280:33555457,296:34603009,312:1,328:33554432,344:1048576,360:1025,376:34604032,392:33554433,408:34603008,424:0,440:34604033,456:1049601,472:1024,488:33555456,504:1048577},{0:134219808,1:131072,2:134217728,3:32,4:131104,5:134350880,6:134350848,7:2048,8:134348800,9:134219776,10:133120,11:134348832,12:2080,13:0,14:134217760,15:133152,2147483648:2048,2147483649:134350880,2147483650:134219808,2147483651:134217728,2147483652:134348800,2147483653:133120,2147483654:133152,2147483655:32,2147483656:134217760,2147483657:2080,2147483658:131104,2147483659:134350848,2147483660:0,2147483661:134348832,2147483662:134219776,2147483663:131072,16:133152,17:134350848,18:32,19:2048,20:134219776,21:134217760,22:134348832,23:131072,24:0,25:131104,26:134348800,27:134219808,28:134350880,29:133120,30:2080,31:134217728,2147483664:131072,2147483665:2048,2147483666:134348832,2147483667:133152,2147483668:32,2147483669:134348800,2147483670:134217728,2147483671:134219808,2147483672:134350880,2147483673:134217760,2147483674:134219776,2147483675:0,2147483676:133120,2147483677:2080,2147483678:131104,2147483679:134350848}],u=[4160749569,528482304,33030144,2064384,129024,8064,504,2147483679],n=e.DES=r.extend({_doReset:function(){for(var t=this._key.words,e=[],r=0;r<56;r++){var i=h[r]-1;e[r]=t[i>>>5]>>>31-i%32&1}for(var n=this._subKeys=[],o=0;o<16;o++){for(var s=n[o]=[],c=f[o],r=0;r<24;r++)s[r/6|0]|=e[(l[r]-1+c)%28]<<31-r%6,s[4+(r/6|0)]|=e[28+(l[r+24]-1+c)%28]<<31-r%6;s[0]=s[0]<<1|s[0]>>>31;for(r=1;r<7;r++)s[r]=s[r]>>>4*(r-1)+3;s[7]=s[7]<<5|s[7]>>>27}for(var a=this._invSubKeys=[],r=0;r<16;r++)a[r]=n[15-r]},encryptBlock:function(t,e){this._doCryptBlock(t,e,this._subKeys)},decryptBlock:function(t,e){this._doCryptBlock(t,e,this._invSubKeys)},_doCryptBlock:function(t,e,r){this._lBlock=t[e],this._rBlock=t[e+1],p.call(this,4,252645135),p.call(this,16,65535),_.call(this,2,858993459),_.call(this,8,16711935),p.call(this,1,1431655765);for(var i=0;i<16;i++){for(var n=r[i],o=this._lBlock,s=this._rBlock,c=0,a=0;a<8;a++)c|=d[a][((s^n[a])&u[a])>>>0];this._lBlock=s,this._rBlock=o^c}var h=this._lBlock;this._lBlock=this._rBlock,this._rBlock=h,p.call(this,1,1431655765),_.call(this,8,16711935),_.call(this,2,858993459),p.call(this,16,65535),p.call(this,4,252645135),t[e]=this._lBlock,t[e+1]=this._rBlock},keySize:2,ivSize:2,blockSize:2});function p(t,e){e=(this._lBlock>>>t^this._rBlock)&e;this._rBlock^=e,this._lBlock^=e<>>t^this._lBlock)&e;this._lBlock^=e,this._rBlock^=e<192.");var e=t.slice(0,2),r=t.length<4?t.slice(0,2):t.slice(2,4),t=t.length<6?t.slice(0,2):t.slice(4,6);this._des1=n.createEncryptor(i.create(e)),this._des2=n.createEncryptor(i.create(r)),this._des3=n.createEncryptor(i.create(t))},encryptBlock:function(t,e){this._des1.encryptBlock(t,e),this._des2.decryptBlock(t,e),this._des3.encryptBlock(t,e)},decryptBlock:function(t,e){this._des3.decryptBlock(t,e),this._des2.encryptBlock(t,e),this._des1.decryptBlock(t,e)},keySize:6,ivSize:2,blockSize:2});t.TripleDES=r._createHelper(e)}(),function(){var t=U,e=t.lib.StreamCipher,r=t.algo,i=r.RC4=e.extend({_doReset:function(){for(var t=this._key,e=t.words,r=t.sigBytes,i=this._S=[],n=0;n<256;n++)i[n]=n;for(var n=0,o=0;n<256;n++){var s=n%r,s=e[s>>>2]>>>24-s%4*8&255,o=(o+i[n]+s)%256,s=i[n];i[n]=i[o],i[o]=s}this._i=this._j=0},_doProcessBlock:function(t,e){t[e]^=n.call(this)},keySize:8,ivSize:0});function n(){for(var t=this._S,e=this._i,r=this._j,i=0,n=0;n<4;n++){var r=(r+t[e=(e+1)%256])%256,o=t[e];t[e]=t[r],t[r]=o,i|=t[(t[e]+t[r])%256]<<24-8*n}return this._i=e,this._j=r,i}t.RC4=e._createHelper(i);r=r.RC4Drop=i.extend({cfg:i.cfg.extend({drop:192}),_doReset:function(){i._doReset.call(this);for(var t=this.cfg.drop;0>>24)|4278255360&(t[r]<<24|t[r]>>>8);for(var i=this._X=[t[0],t[3]<<16|t[2]>>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],n=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]],r=this._b=0;r<4;r++)N.call(this);for(r=0;r<8;r++)n[r]^=i[r+4&7];if(e){var o=e.words,s=o[0],c=o[1],e=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),o=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8),s=e>>>16|4294901760&o,c=o<<16|65535&e;n[0]^=e,n[1]^=s,n[2]^=o,n[3]^=c,n[4]^=e,n[5]^=s,n[6]^=o,n[7]^=c;for(r=0;r<4;r++)N.call(this)}},_doProcessBlock:function(t,e){var r=this._X;N.call(this),D[0]=r[0]^r[5]>>>16^r[3]<<16,D[1]=r[2]^r[7]>>>16^r[5]<<16,D[2]=r[4]^r[1]>>>16^r[7]<<16,D[3]=r[6]^r[3]>>>16^r[1]<<16;for(var i=0;i<4;i++)D[i]=16711935&(D[i]<<8|D[i]>>>24)|4278255360&(D[i]<<24|D[i]>>>8),t[e+i]^=D[i]},blockSize:4,ivSize:2}),M.Rabbit=F._createHelper(P),F=(M=U).lib.StreamCipher,P=M.algo,W=[],O=[],I=[],P=P.RabbitLegacy=F.extend({_doReset:function(){for(var t=this._key.words,e=this.cfg.iv,r=this._X=[t[0],t[3]<<16|t[2]>>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],i=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]],n=this._b=0;n<4;n++)q.call(this);for(n=0;n<8;n++)i[n]^=r[n+4&7];if(e){var o=e.words,s=o[0],t=o[1],e=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),o=16711935&(t<<8|t>>>24)|4278255360&(t<<24|t>>>8),s=e>>>16|4294901760&o,t=o<<16|65535&e;i[0]^=e,i[1]^=s,i[2]^=o,i[3]^=t,i[4]^=e,i[5]^=s,i[6]^=o,i[7]^=t;for(n=0;n<4;n++)q.call(this)}},_doProcessBlock:function(t,e){var r=this._X;q.call(this),W[0]=r[0]^r[5]>>>16^r[3]<<16,W[1]=r[2]^r[7]>>>16^r[5]<<16,W[2]=r[4]^r[1]>>>16^r[7]<<16,W[3]=r[6]^r[3]>>>16^r[1]<<16;for(var i=0;i<4;i++)W[i]=16711935&(W[i]<<8|W[i]>>>24)|4278255360&(W[i]<<24|W[i]>>>8),t[e+i]^=W[i]},blockSize:4,ivSize:2}),M.RabbitLegacy=F._createHelper(P),U}); \ No newline at end of file +!(function (t, e) { + "object" == typeof exports + ? (module.exports = exports = e()) + : "function" == typeof define && define.amd + ? define([], e) + : (t.CryptoJS = e()); +})(this, function () { + var n, + o, + s, + a, + h, + t, + e, + l, + r, + i, + c, + f, + d, + u, + p, + S, + x, + b, + A, + H, + z, + _, + v, + g, + y, + B, + w, + k, + m, + C, + D, + E, + R, + M, + F, + P, + W, + O, + I, + U = + U || + (function (h) { + var i; + if ( + ("undefined" != typeof window && window.crypto && (i = window.crypto), + "undefined" != typeof self && self.crypto && (i = self.crypto), + !(i = + !(i = + !(i = + "undefined" != typeof globalThis && globalThis.crypto + ? globalThis.crypto + : i) && + "undefined" != typeof window && + window.msCrypto + ? window.msCrypto + : i) && + "undefined" != typeof global && + global.crypto + ? global.crypto + : i) && "function" == typeof require) + ) + try { + i = require("crypto"); + } catch (t) {} + var r = + Object.create || + function (t) { + return (e.prototype = t), (t = new e()), (e.prototype = null), t; + }; + function e() {} + var t = {}, + n = (t.lib = {}), + o = (n.Base = { + extend: function (t) { + var e = r(this); + return ( + t && e.mixIn(t), + (e.hasOwnProperty("init") && this.init !== e.init) || + (e.init = function () { + e.$super.init.apply(this, arguments); + }), + ((e.init.prototype = e).$super = this), + e + ); + }, + create: function () { + var t = this.extend(); + return t.init.apply(t, arguments), t; + }, + init: function () {}, + mixIn: function (t) { + for (var e in t) t.hasOwnProperty(e) && (this[e] = t[e]); + t.hasOwnProperty("toString") && (this.toString = t.toString); + }, + clone: function () { + return this.init.prototype.extend(this); + }, + }), + l = (n.WordArray = o.extend({ + init: function (t, e) { + (t = this.words = t || []), + (this.sigBytes = null != e ? e : 4 * t.length); + }, + toString: function (t) { + return (t || c).stringify(this); + }, + concat: function (t) { + var e = this.words, + r = t.words, + i = this.sigBytes, + n = t.sigBytes; + if ((this.clamp(), i % 4)) + for (var o = 0; o < n; o++) { + var s = (r[o >>> 2] >>> (24 - (o % 4) * 8)) & 255; + e[(i + o) >>> 2] |= s << (24 - ((i + o) % 4) * 8); + } + else for (var c = 0; c < n; c += 4) e[(i + c) >>> 2] = r[c >>> 2]; + return (this.sigBytes += n), this; + }, + clamp: function () { + var t = this.words, + e = this.sigBytes; + (t[e >>> 2] &= 4294967295 << (32 - (e % 4) * 8)), + (t.length = h.ceil(e / 4)); + }, + clone: function () { + var t = o.clone.call(this); + return (t.words = this.words.slice(0)), t; + }, + random: function (t) { + for (var e = [], r = 0; r < t; r += 4) + e.push( + (function () { + if (i) { + if ("function" == typeof i.getRandomValues) + try { + return i.getRandomValues(new Uint32Array(1))[0]; + } catch (t) {} + if ("function" == typeof i.randomBytes) + try { + return i.randomBytes(4).readInt32LE(); + } catch (t) {} + } + throw new Error( + "Native crypto module could not be used to get secure random number.", + ); + })(), + ); + return new l.init(e, t); + }, + })), + s = (t.enc = {}), + c = (s.Hex = { + stringify: function (t) { + for (var e = t.words, r = t.sigBytes, i = [], n = 0; n < r; n++) { + var o = (e[n >>> 2] >>> (24 - (n % 4) * 8)) & 255; + i.push((o >>> 4).toString(16)), i.push((15 & o).toString(16)); + } + return i.join(""); + }, + parse: function (t) { + for (var e = t.length, r = [], i = 0; i < e; i += 2) + r[i >>> 3] |= + parseInt(t.substr(i, 2), 16) << (24 - (i % 8) * 4); + return new l.init(r, e / 2); + }, + }), + a = (s.Latin1 = { + stringify: function (t) { + for (var e = t.words, r = t.sigBytes, i = [], n = 0; n < r; n++) { + var o = (e[n >>> 2] >>> (24 - (n % 4) * 8)) & 255; + i.push(String.fromCharCode(o)); + } + return i.join(""); + }, + parse: function (t) { + for (var e = t.length, r = [], i = 0; i < e; i++) + r[i >>> 2] |= (255 & t.charCodeAt(i)) << (24 - (i % 4) * 8); + return new l.init(r, e); + }, + }), + f = (s.Utf8 = { + stringify: function (t) { + try { + return decodeURIComponent(escape(a.stringify(t))); + } catch (t) { + throw new Error("Malformed UTF-8 data"); + } + }, + parse: function (t) { + return a.parse(unescape(encodeURIComponent(t))); + }, + }), + d = (n.BufferedBlockAlgorithm = o.extend({ + reset: function () { + (this._data = new l.init()), (this._nDataBytes = 0); + }, + _append: function (t) { + "string" == typeof t && (t = f.parse(t)), + this._data.concat(t), + (this._nDataBytes += t.sigBytes); + }, + _process: function (t) { + var e, + r = this._data, + i = r.words, + n = r.sigBytes, + o = this.blockSize, + s = n / (4 * o), + c = + (s = t + ? h.ceil(s) + : h.max((0 | s) - this._minBufferSize, 0)) * o, + n = h.min(4 * c, n); + if (c) { + for (var a = 0; a < c; a += o) this._doProcessBlock(i, a); + (e = i.splice(0, c)), (r.sigBytes -= n); + } + return new l.init(e, n); + }, + clone: function () { + var t = o.clone.call(this); + return (t._data = this._data.clone()), t; + }, + _minBufferSize: 0, + })), + u = + ((n.Hasher = d.extend({ + cfg: o.extend(), + init: function (t) { + (this.cfg = this.cfg.extend(t)), this.reset(); + }, + reset: function () { + d.reset.call(this), this._doReset(); + }, + update: function (t) { + return this._append(t), this._process(), this; + }, + finalize: function (t) { + return t && this._append(t), this._doFinalize(); + }, + blockSize: 16, + _createHelper: function (r) { + return function (t, e) { + return new r.init(e).finalize(t); + }; + }, + _createHmacHelper: function (r) { + return function (t, e) { + return new u.HMAC.init(r, e).finalize(t); + }; + }, + })), + (t.algo = {})); + return t; + })(Math); + function K(t, e, r) { + return (t & e) | (~t & r); + } + function X(t, e, r) { + return (t & r) | (e & ~r); + } + function L(t, e) { + return (t << e) | (t >>> (32 - e)); + } + function j(t, e, r, i) { + var n, + o = this._iv; + o ? ((n = o.slice(0)), (this._iv = void 0)) : (n = this._prevBlock), + i.encryptBlock(n, 0); + for (var s = 0; s < r; s++) t[e + s] ^= n[s]; + } + function T(t) { + var e, r, i; + return ( + 255 == ((t >> 24) & 255) + ? ((r = (t >> 8) & 255), + (i = 255 & t), + 255 === (e = (t >> 16) & 255) + ? ((e = 0), 255 === r ? ((r = 0), 255 === i ? (i = 0) : ++i) : ++r) + : ++e, + (t = 0), + (t += e << 16), + (t += r << 8), + (t += i)) + : (t += 1 << 24), + t + ); + } + function N() { + for (var t = this._X, e = this._C, r = 0; r < 8; r++) E[r] = e[r]; + (e[0] = (e[0] + 1295307597 + this._b) | 0), + (e[1] = (e[1] + 3545052371 + (e[0] >>> 0 < E[0] >>> 0 ? 1 : 0)) | 0), + (e[2] = (e[2] + 886263092 + (e[1] >>> 0 < E[1] >>> 0 ? 1 : 0)) | 0), + (e[3] = (e[3] + 1295307597 + (e[2] >>> 0 < E[2] >>> 0 ? 1 : 0)) | 0), + (e[4] = (e[4] + 3545052371 + (e[3] >>> 0 < E[3] >>> 0 ? 1 : 0)) | 0), + (e[5] = (e[5] + 886263092 + (e[4] >>> 0 < E[4] >>> 0 ? 1 : 0)) | 0), + (e[6] = (e[6] + 1295307597 + (e[5] >>> 0 < E[5] >>> 0 ? 1 : 0)) | 0), + (e[7] = (e[7] + 3545052371 + (e[6] >>> 0 < E[6] >>> 0 ? 1 : 0)) | 0), + (this._b = e[7] >>> 0 < E[7] >>> 0 ? 1 : 0); + for (r = 0; r < 8; r++) { + var i = t[r] + e[r], + n = 65535 & i, + o = i >>> 16; + R[r] = + (((((n * n) >>> 17) + n * o) >>> 15) + o * o) ^ + ((((4294901760 & i) * i) | 0) + (((65535 & i) * i) | 0)); + } + (t[0] = + (R[0] + ((R[7] << 16) | (R[7] >>> 16)) + ((R[6] << 16) | (R[6] >>> 16))) | + 0), + (t[1] = (R[1] + ((R[0] << 8) | (R[0] >>> 24)) + R[7]) | 0), + (t[2] = + (R[2] + + ((R[1] << 16) | (R[1] >>> 16)) + + ((R[0] << 16) | (R[0] >>> 16))) | + 0), + (t[3] = (R[3] + ((R[2] << 8) | (R[2] >>> 24)) + R[1]) | 0), + (t[4] = + (R[4] + + ((R[3] << 16) | (R[3] >>> 16)) + + ((R[2] << 16) | (R[2] >>> 16))) | + 0), + (t[5] = (R[5] + ((R[4] << 8) | (R[4] >>> 24)) + R[3]) | 0), + (t[6] = + (R[6] + + ((R[5] << 16) | (R[5] >>> 16)) + + ((R[4] << 16) | (R[4] >>> 16))) | + 0), + (t[7] = (R[7] + ((R[6] << 8) | (R[6] >>> 24)) + R[5]) | 0); + } + function q() { + for (var t = this._X, e = this._C, r = 0; r < 8; r++) O[r] = e[r]; + (e[0] = (e[0] + 1295307597 + this._b) | 0), + (e[1] = (e[1] + 3545052371 + (e[0] >>> 0 < O[0] >>> 0 ? 1 : 0)) | 0), + (e[2] = (e[2] + 886263092 + (e[1] >>> 0 < O[1] >>> 0 ? 1 : 0)) | 0), + (e[3] = (e[3] + 1295307597 + (e[2] >>> 0 < O[2] >>> 0 ? 1 : 0)) | 0), + (e[4] = (e[4] + 3545052371 + (e[3] >>> 0 < O[3] >>> 0 ? 1 : 0)) | 0), + (e[5] = (e[5] + 886263092 + (e[4] >>> 0 < O[4] >>> 0 ? 1 : 0)) | 0), + (e[6] = (e[6] + 1295307597 + (e[5] >>> 0 < O[5] >>> 0 ? 1 : 0)) | 0), + (e[7] = (e[7] + 3545052371 + (e[6] >>> 0 < O[6] >>> 0 ? 1 : 0)) | 0), + (this._b = e[7] >>> 0 < O[7] >>> 0 ? 1 : 0); + for (r = 0; r < 8; r++) { + var i = t[r] + e[r], + n = 65535 & i, + o = i >>> 16; + I[r] = + (((((n * n) >>> 17) + n * o) >>> 15) + o * o) ^ + ((((4294901760 & i) * i) | 0) + (((65535 & i) * i) | 0)); + } + (t[0] = + (I[0] + ((I[7] << 16) | (I[7] >>> 16)) + ((I[6] << 16) | (I[6] >>> 16))) | + 0), + (t[1] = (I[1] + ((I[0] << 8) | (I[0] >>> 24)) + I[7]) | 0), + (t[2] = + (I[2] + + ((I[1] << 16) | (I[1] >>> 16)) + + ((I[0] << 16) | (I[0] >>> 16))) | + 0), + (t[3] = (I[3] + ((I[2] << 8) | (I[2] >>> 24)) + I[1]) | 0), + (t[4] = + (I[4] + + ((I[3] << 16) | (I[3] >>> 16)) + + ((I[2] << 16) | (I[2] >>> 16))) | + 0), + (t[5] = (I[5] + ((I[4] << 8) | (I[4] >>> 24)) + I[3]) | 0), + (t[6] = + (I[6] + + ((I[5] << 16) | (I[5] >>> 16)) + + ((I[4] << 16) | (I[4] >>> 16))) | + 0), + (t[7] = (I[7] + ((I[6] << 8) | (I[6] >>> 24)) + I[5]) | 0); + } + return ( + (F = (M = U).lib), + (n = F.Base), + (o = F.WordArray), + ((M = M.x64 = {}).Word = n.extend({ + init: function (t, e) { + (this.high = t), (this.low = e); + }, + })), + (M.WordArray = n.extend({ + init: function (t, e) { + (t = this.words = t || []), + (this.sigBytes = null != e ? e : 8 * t.length); + }, + toX32: function () { + for (var t = this.words, e = t.length, r = [], i = 0; i < e; i++) { + var n = t[i]; + r.push(n.high), r.push(n.low); + } + return o.create(r, this.sigBytes); + }, + clone: function () { + for ( + var t = n.clone.call(this), + e = (t.words = this.words.slice(0)), + r = e.length, + i = 0; + i < r; + i++ + ) + e[i] = e[i].clone(); + return t; + }, + })), + "function" == typeof ArrayBuffer && + ((P = U.lib.WordArray), + (s = P.init), + ((P.init = function (t) { + if ( + (t = + (t = t instanceof ArrayBuffer ? new Uint8Array(t) : t) instanceof + Int8Array || + ("undefined" != typeof Uint8ClampedArray && + t instanceof Uint8ClampedArray) || + t instanceof Int16Array || + t instanceof Uint16Array || + t instanceof Int32Array || + t instanceof Uint32Array || + t instanceof Float32Array || + t instanceof Float64Array + ? new Uint8Array(t.buffer, t.byteOffset, t.byteLength) + : t) instanceof Uint8Array + ) { + for (var e = t.byteLength, r = [], i = 0; i < e; i++) + r[i >>> 2] |= t[i] << (24 - (i % 4) * 8); + s.call(this, r, e); + } else s.apply(this, arguments); + }).prototype = P)), + (function () { + var t = U, + n = t.lib.WordArray, + t = t.enc; + t.Utf16 = t.Utf16BE = { + stringify: function (t) { + for (var e = t.words, r = t.sigBytes, i = [], n = 0; n < r; n += 2) { + var o = (e[n >>> 2] >>> (16 - (n % 4) * 8)) & 65535; + i.push(String.fromCharCode(o)); + } + return i.join(""); + }, + parse: function (t) { + for (var e = t.length, r = [], i = 0; i < e; i++) + r[i >>> 1] |= t.charCodeAt(i) << (16 - (i % 2) * 16); + return n.create(r, 2 * e); + }, + }; + function s(t) { + return ((t << 8) & 4278255360) | ((t >>> 8) & 16711935); + } + t.Utf16LE = { + stringify: function (t) { + for (var e = t.words, r = t.sigBytes, i = [], n = 0; n < r; n += 2) { + var o = s((e[n >>> 2] >>> (16 - (n % 4) * 8)) & 65535); + i.push(String.fromCharCode(o)); + } + return i.join(""); + }, + parse: function (t) { + for (var e = t.length, r = [], i = 0; i < e; i++) + r[i >>> 1] |= s(t.charCodeAt(i) << (16 - (i % 2) * 16)); + return n.create(r, 2 * e); + }, + }; + })(), + (a = (w = U).lib.WordArray), + (w.enc.Base64 = { + stringify: function (t) { + var e = t.words, + r = t.sigBytes, + i = this._map; + t.clamp(); + for (var n = [], o = 0; o < r; o += 3) + for ( + var s = + (((e[o >>> 2] >>> (24 - (o % 4) * 8)) & 255) << 16) | + (((e[(o + 1) >>> 2] >>> (24 - ((o + 1) % 4) * 8)) & 255) << 8) | + ((e[(o + 2) >>> 2] >>> (24 - ((o + 2) % 4) * 8)) & 255), + c = 0; + c < 4 && o + 0.75 * c < r; + c++ + ) + n.push(i.charAt((s >>> (6 * (3 - c))) & 63)); + var a = i.charAt(64); + if (a) for (; n.length % 4; ) n.push(a); + return n.join(""); + }, + parse: function (t) { + var e = t.length, + r = this._map; + if (!(i = this._reverseMap)) + for (var i = (this._reverseMap = []), n = 0; n < r.length; n++) + i[r.charCodeAt(n)] = n; + var o = r.charAt(64); + return ( + !o || (-1 !== (o = t.indexOf(o)) && (e = o)), + (function (t, e, r) { + for (var i = [], n = 0, o = 0; o < e; o++) { + var s, c; + o % 4 && + ((s = r[t.charCodeAt(o - 1)] << ((o % 4) * 2)), + (c = r[t.charCodeAt(o)] >>> (6 - (o % 4) * 2)), + (c = s | c), + (i[n >>> 2] |= c << (24 - (n % 4) * 8)), + n++); + } + return a.create(i, n); + })(t, e, i) + ); + }, + _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", + }), + (h = (F = U).lib.WordArray), + (F.enc.Base64url = { + stringify: function (t, e = !0) { + var r = t.words, + i = t.sigBytes, + n = e ? this._safe_map : this._map; + t.clamp(); + for (var o = [], s = 0; s < i; s += 3) + for ( + var c = + (((r[s >>> 2] >>> (24 - (s % 4) * 8)) & 255) << 16) | + (((r[(s + 1) >>> 2] >>> (24 - ((s + 1) % 4) * 8)) & 255) << 8) | + ((r[(s + 2) >>> 2] >>> (24 - ((s + 2) % 4) * 8)) & 255), + a = 0; + a < 4 && s + 0.75 * a < i; + a++ + ) + o.push(n.charAt((c >>> (6 * (3 - a))) & 63)); + var h = n.charAt(64); + if (h) for (; o.length % 4; ) o.push(h); + return o.join(""); + }, + parse: function (t, e = !0) { + var r = t.length, + i = e ? this._safe_map : this._map; + if (!(n = this._reverseMap)) + for (var n = (this._reverseMap = []), o = 0; o < i.length; o++) + n[i.charCodeAt(o)] = o; + e = i.charAt(64); + return ( + !e || (-1 !== (e = t.indexOf(e)) && (r = e)), + (function (t, e, r) { + for (var i = [], n = 0, o = 0; o < e; o++) { + var s, c; + o % 4 && + ((s = r[t.charCodeAt(o - 1)] << ((o % 4) * 2)), + (c = r[t.charCodeAt(o)] >>> (6 - (o % 4) * 2)), + (c = s | c), + (i[n >>> 2] |= c << (24 - (n % 4) * 8)), + n++); + } + return h.create(i, n); + })(t, r, n) + ); + }, + _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", + _safe_map: + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_", + }), + (function (a) { + var t = U, + e = t.lib, + r = e.WordArray, + i = e.Hasher, + e = t.algo, + A = []; + !(function () { + for (var t = 0; t < 64; t++) + A[t] = (4294967296 * a.abs(a.sin(t + 1))) | 0; + })(); + e = e.MD5 = i.extend({ + _doReset: function () { + this._hash = new r.init([ + 1732584193, 4023233417, 2562383102, 271733878, + ]); + }, + _doProcessBlock: function (t, e) { + for (var r = 0; r < 16; r++) { + var i = e + r, + n = t[i]; + t[i] = + (16711935 & ((n << 8) | (n >>> 24))) | + (4278255360 & ((n << 24) | (n >>> 8))); + } + var o = this._hash.words, + s = t[e + 0], + c = t[e + 1], + a = t[e + 2], + h = t[e + 3], + l = t[e + 4], + f = t[e + 5], + d = t[e + 6], + u = t[e + 7], + p = t[e + 8], + _ = t[e + 9], + y = t[e + 10], + v = t[e + 11], + g = t[e + 12], + B = t[e + 13], + w = t[e + 14], + k = t[e + 15], + m = H((m = o[0]), (b = o[1]), (x = o[2]), (S = o[3]), s, 7, A[0]), + S = H(S, m, b, x, c, 12, A[1]), + x = H(x, S, m, b, a, 17, A[2]), + b = H(b, x, S, m, h, 22, A[3]); + (m = H(m, b, x, S, l, 7, A[4])), + (S = H(S, m, b, x, f, 12, A[5])), + (x = H(x, S, m, b, d, 17, A[6])), + (b = H(b, x, S, m, u, 22, A[7])), + (m = H(m, b, x, S, p, 7, A[8])), + (S = H(S, m, b, x, _, 12, A[9])), + (x = H(x, S, m, b, y, 17, A[10])), + (b = H(b, x, S, m, v, 22, A[11])), + (m = H(m, b, x, S, g, 7, A[12])), + (S = H(S, m, b, x, B, 12, A[13])), + (x = H(x, S, m, b, w, 17, A[14])), + (m = z(m, (b = H(b, x, S, m, k, 22, A[15])), x, S, c, 5, A[16])), + (S = z(S, m, b, x, d, 9, A[17])), + (x = z(x, S, m, b, v, 14, A[18])), + (b = z(b, x, S, m, s, 20, A[19])), + (m = z(m, b, x, S, f, 5, A[20])), + (S = z(S, m, b, x, y, 9, A[21])), + (x = z(x, S, m, b, k, 14, A[22])), + (b = z(b, x, S, m, l, 20, A[23])), + (m = z(m, b, x, S, _, 5, A[24])), + (S = z(S, m, b, x, w, 9, A[25])), + (x = z(x, S, m, b, h, 14, A[26])), + (b = z(b, x, S, m, p, 20, A[27])), + (m = z(m, b, x, S, B, 5, A[28])), + (S = z(S, m, b, x, a, 9, A[29])), + (x = z(x, S, m, b, u, 14, A[30])), + (m = C(m, (b = z(b, x, S, m, g, 20, A[31])), x, S, f, 4, A[32])), + (S = C(S, m, b, x, p, 11, A[33])), + (x = C(x, S, m, b, v, 16, A[34])), + (b = C(b, x, S, m, w, 23, A[35])), + (m = C(m, b, x, S, c, 4, A[36])), + (S = C(S, m, b, x, l, 11, A[37])), + (x = C(x, S, m, b, u, 16, A[38])), + (b = C(b, x, S, m, y, 23, A[39])), + (m = C(m, b, x, S, B, 4, A[40])), + (S = C(S, m, b, x, s, 11, A[41])), + (x = C(x, S, m, b, h, 16, A[42])), + (b = C(b, x, S, m, d, 23, A[43])), + (m = C(m, b, x, S, _, 4, A[44])), + (S = C(S, m, b, x, g, 11, A[45])), + (x = C(x, S, m, b, k, 16, A[46])), + (m = D(m, (b = C(b, x, S, m, a, 23, A[47])), x, S, s, 6, A[48])), + (S = D(S, m, b, x, u, 10, A[49])), + (x = D(x, S, m, b, w, 15, A[50])), + (b = D(b, x, S, m, f, 21, A[51])), + (m = D(m, b, x, S, g, 6, A[52])), + (S = D(S, m, b, x, h, 10, A[53])), + (x = D(x, S, m, b, y, 15, A[54])), + (b = D(b, x, S, m, c, 21, A[55])), + (m = D(m, b, x, S, p, 6, A[56])), + (S = D(S, m, b, x, k, 10, A[57])), + (x = D(x, S, m, b, d, 15, A[58])), + (b = D(b, x, S, m, B, 21, A[59])), + (m = D(m, b, x, S, l, 6, A[60])), + (S = D(S, m, b, x, v, 10, A[61])), + (x = D(x, S, m, b, a, 15, A[62])), + (b = D(b, x, S, m, _, 21, A[63])), + (o[0] = (o[0] + m) | 0), + (o[1] = (o[1] + b) | 0), + (o[2] = (o[2] + x) | 0), + (o[3] = (o[3] + S) | 0); + }, + _doFinalize: function () { + var t = this._data, + e = t.words, + r = 8 * this._nDataBytes, + i = 8 * t.sigBytes; + e[i >>> 5] |= 128 << (24 - (i % 32)); + var n = a.floor(r / 4294967296), + r = r; + (e[15 + (((64 + i) >>> 9) << 4)] = + (16711935 & ((n << 8) | (n >>> 24))) | + (4278255360 & ((n << 24) | (n >>> 8)))), + (e[14 + (((64 + i) >>> 9) << 4)] = + (16711935 & ((r << 8) | (r >>> 24))) | + (4278255360 & ((r << 24) | (r >>> 8)))), + (t.sigBytes = 4 * (e.length + 1)), + this._process(); + for (var e = this._hash, o = e.words, s = 0; s < 4; s++) { + var c = o[s]; + o[s] = + (16711935 & ((c << 8) | (c >>> 24))) | + (4278255360 & ((c << 24) | (c >>> 8))); + } + return e; + }, + clone: function () { + var t = i.clone.call(this); + return (t._hash = this._hash.clone()), t; + }, + }); + function H(t, e, r, i, n, o, s) { + s = t + ((e & r) | (~e & i)) + n + s; + return ((s << o) | (s >>> (32 - o))) + e; + } + function z(t, e, r, i, n, o, s) { + s = t + ((e & i) | (r & ~i)) + n + s; + return ((s << o) | (s >>> (32 - o))) + e; + } + function C(t, e, r, i, n, o, s) { + s = t + (e ^ r ^ i) + n + s; + return ((s << o) | (s >>> (32 - o))) + e; + } + function D(t, e, r, i, n, o, s) { + s = t + (r ^ (e | ~i)) + n + s; + return ((s << o) | (s >>> (32 - o))) + e; + } + (t.MD5 = i._createHelper(e)), (t.HmacMD5 = i._createHmacHelper(e)); + })(Math), + (P = (M = U).lib), + (t = P.WordArray), + (e = P.Hasher), + (P = M.algo), + (l = []), + (P = P.SHA1 = + e.extend({ + _doReset: function () { + this._hash = new t.init([ + 1732584193, 4023233417, 2562383102, 271733878, 3285377520, + ]); + }, + _doProcessBlock: function (t, e) { + for ( + var r = this._hash.words, + i = r[0], + n = r[1], + o = r[2], + s = r[3], + c = r[4], + a = 0; + a < 80; + a++ + ) { + a < 16 + ? (l[a] = 0 | t[e + a]) + : ((h = l[a - 3] ^ l[a - 8] ^ l[a - 14] ^ l[a - 16]), + (l[a] = (h << 1) | (h >>> 31))); + var h = ((i << 5) | (i >>> 27)) + c + l[a]; + (h += + a < 20 + ? 1518500249 + ((n & o) | (~n & s)) + : a < 40 + ? 1859775393 + (n ^ o ^ s) + : a < 60 + ? ((n & o) | (n & s) | (o & s)) - 1894007588 + : (n ^ o ^ s) - 899497514), + (c = s), + (s = o), + (o = (n << 30) | (n >>> 2)), + (n = i), + (i = h); + } + (r[0] = (r[0] + i) | 0), + (r[1] = (r[1] + n) | 0), + (r[2] = (r[2] + o) | 0), + (r[3] = (r[3] + s) | 0), + (r[4] = (r[4] + c) | 0); + }, + _doFinalize: function () { + var t = this._data, + e = t.words, + r = 8 * this._nDataBytes, + i = 8 * t.sigBytes; + return ( + (e[i >>> 5] |= 128 << (24 - (i % 32))), + (e[14 + (((64 + i) >>> 9) << 4)] = Math.floor(r / 4294967296)), + (e[15 + (((64 + i) >>> 9) << 4)] = r), + (t.sigBytes = 4 * e.length), + this._process(), + this._hash + ); + }, + clone: function () { + var t = e.clone.call(this); + return (t._hash = this._hash.clone()), t; + }, + })), + (M.SHA1 = e._createHelper(P)), + (M.HmacSHA1 = e._createHmacHelper(P)), + (function (n) { + var t = U, + e = t.lib, + r = e.WordArray, + i = e.Hasher, + e = t.algo, + o = [], + p = []; + !(function () { + function t(t) { + return (4294967296 * (t - (0 | t))) | 0; + } + for (var e = 2, r = 0; r < 64; ) + !(function (t) { + for (var e = n.sqrt(t), r = 2; r <= e; r++) if (!(t % r)) return; + return 1; + })(e) || + (r < 8 && (o[r] = t(n.pow(e, 0.5))), + (p[r] = t(n.pow(e, 1 / 3))), + r++), + e++; + })(); + var _ = [], + e = (e.SHA256 = i.extend({ + _doReset: function () { + this._hash = new r.init(o.slice(0)); + }, + _doProcessBlock: function (t, e) { + for ( + var r = this._hash.words, + i = r[0], + n = r[1], + o = r[2], + s = r[3], + c = r[4], + a = r[5], + h = r[6], + l = r[7], + f = 0; + f < 64; + f++ + ) { + f < 16 + ? (_[f] = 0 | t[e + f]) + : ((d = _[f - 15]), + (u = _[f - 2]), + (_[f] = + (((d << 25) | (d >>> 7)) ^ + ((d << 14) | (d >>> 18)) ^ + (d >>> 3)) + + _[f - 7] + + (((u << 15) | (u >>> 17)) ^ + ((u << 13) | (u >>> 19)) ^ + (u >>> 10)) + + _[f - 16])); + var d = (i & n) ^ (i & o) ^ (n & o), + u = + l + + (((c << 26) | (c >>> 6)) ^ + ((c << 21) | (c >>> 11)) ^ + ((c << 7) | (c >>> 25))) + + ((c & a) ^ (~c & h)) + + p[f] + + _[f], + l = h, + h = a, + a = c, + c = (s + u) | 0, + s = o, + o = n, + n = i, + i = + (u + + ((((i << 30) | (i >>> 2)) ^ + ((i << 19) | (i >>> 13)) ^ + ((i << 10) | (i >>> 22))) + + d)) | + 0; + } + (r[0] = (r[0] + i) | 0), + (r[1] = (r[1] + n) | 0), + (r[2] = (r[2] + o) | 0), + (r[3] = (r[3] + s) | 0), + (r[4] = (r[4] + c) | 0), + (r[5] = (r[5] + a) | 0), + (r[6] = (r[6] + h) | 0), + (r[7] = (r[7] + l) | 0); + }, + _doFinalize: function () { + var t = this._data, + e = t.words, + r = 8 * this._nDataBytes, + i = 8 * t.sigBytes; + return ( + (e[i >>> 5] |= 128 << (24 - (i % 32))), + (e[14 + (((64 + i) >>> 9) << 4)] = n.floor(r / 4294967296)), + (e[15 + (((64 + i) >>> 9) << 4)] = r), + (t.sigBytes = 4 * e.length), + this._process(), + this._hash + ); + }, + clone: function () { + var t = i.clone.call(this); + return (t._hash = this._hash.clone()), t; + }, + })); + (t.SHA256 = i._createHelper(e)), (t.HmacSHA256 = i._createHmacHelper(e)); + })(Math), + (r = (w = U).lib.WordArray), + (F = w.algo), + (i = F.SHA256), + (F = F.SHA224 = + i.extend({ + _doReset: function () { + this._hash = new r.init([ + 3238371032, 914150663, 812702999, 4144912697, 4290775857, + 1750603025, 1694076839, 3204075428, + ]); + }, + _doFinalize: function () { + var t = i._doFinalize.call(this); + return (t.sigBytes -= 4), t; + }, + })), + (w.SHA224 = i._createHelper(F)), + (w.HmacSHA224 = i._createHmacHelper(F)), + (function () { + var t = U, + e = t.lib.Hasher, + r = t.x64, + i = r.Word, + n = r.WordArray, + r = t.algo; + function o() { + return i.create.apply(i, arguments); + } + var t1 = [ + o(1116352408, 3609767458), + o(1899447441, 602891725), + o(3049323471, 3964484399), + o(3921009573, 2173295548), + o(961987163, 4081628472), + o(1508970993, 3053834265), + o(2453635748, 2937671579), + o(2870763221, 3664609560), + o(3624381080, 2734883394), + o(310598401, 1164996542), + o(607225278, 1323610764), + o(1426881987, 3590304994), + o(1925078388, 4068182383), + o(2162078206, 991336113), + o(2614888103, 633803317), + o(3248222580, 3479774868), + o(3835390401, 2666613458), + o(4022224774, 944711139), + o(264347078, 2341262773), + o(604807628, 2007800933), + o(770255983, 1495990901), + o(1249150122, 1856431235), + o(1555081692, 3175218132), + o(1996064986, 2198950837), + o(2554220882, 3999719339), + o(2821834349, 766784016), + o(2952996808, 2566594879), + o(3210313671, 3203337956), + o(3336571891, 1034457026), + o(3584528711, 2466948901), + o(113926993, 3758326383), + o(338241895, 168717936), + o(666307205, 1188179964), + o(773529912, 1546045734), + o(1294757372, 1522805485), + o(1396182291, 2643833823), + o(1695183700, 2343527390), + o(1986661051, 1014477480), + o(2177026350, 1206759142), + o(2456956037, 344077627), + o(2730485921, 1290863460), + o(2820302411, 3158454273), + o(3259730800, 3505952657), + o(3345764771, 106217008), + o(3516065817, 3606008344), + o(3600352804, 1432725776), + o(4094571909, 1467031594), + o(275423344, 851169720), + o(430227734, 3100823752), + o(506948616, 1363258195), + o(659060556, 3750685593), + o(883997877, 3785050280), + o(958139571, 3318307427), + o(1322822218, 3812723403), + o(1537002063, 2003034995), + o(1747873779, 3602036899), + o(1955562222, 1575990012), + o(2024104815, 1125592928), + o(2227730452, 2716904306), + o(2361852424, 442776044), + o(2428436474, 593698344), + o(2756734187, 3733110249), + o(3204031479, 2999351573), + o(3329325298, 3815920427), + o(3391569614, 3928383900), + o(3515267271, 566280711), + o(3940187606, 3454069534), + o(4118630271, 4000239992), + o(116418474, 1914138554), + o(174292421, 2731055270), + o(289380356, 3203993006), + o(460393269, 320620315), + o(685471733, 587496836), + o(852142971, 1086792851), + o(1017036298, 365543100), + o(1126000580, 2618297676), + o(1288033470, 3409855158), + o(1501505948, 4234509866), + o(1607167915, 987167468), + o(1816402316, 1246189591), + ], + e1 = []; + !(function () { + for (var t = 0; t < 80; t++) e1[t] = o(); + })(); + r = r.SHA512 = e.extend({ + _doReset: function () { + this._hash = new n.init([ + new i.init(1779033703, 4089235720), + new i.init(3144134277, 2227873595), + new i.init(1013904242, 4271175723), + new i.init(2773480762, 1595750129), + new i.init(1359893119, 2917565137), + new i.init(2600822924, 725511199), + new i.init(528734635, 4215389547), + new i.init(1541459225, 327033209), + ]); + }, + _doProcessBlock: function (t, e) { + for ( + var r = this._hash.words, + i = r[0], + n = r[1], + o = r[2], + s = r[3], + c = r[4], + a = r[5], + h = r[6], + l = r[7], + f = i.high, + d = i.low, + u = n.high, + p = n.low, + _ = o.high, + y = o.low, + v = s.high, + g = s.low, + B = c.high, + w = c.low, + k = a.high, + m = a.low, + S = h.high, + x = h.low, + b = l.high, + r = l.low, + A = f, + H = d, + z = u, + C = p, + D = _, + E = y, + R = v, + M = g, + F = B, + P = w, + W = k, + O = m, + I = S, + U = x, + K = b, + X = r, + L = 0; + L < 80; + L++ + ) { + var j, + T, + N = e1[L]; + L < 16 + ? ((T = N.high = 0 | t[e + 2 * L]), + (j = N.low = 0 | t[e + 2 * L + 1])) + : (($ = (q = e1[L - 15]).high), + (J = q.low), + (G = (Q = e1[L - 2]).high), + (V = Q.low), + (Z = (Y = e1[L - 7]).high), + (q = Y.low), + (Y = (Q = e1[L - 16]).high), + (T = + (T = + ((($ >>> 1) | (J << 31)) ^ + (($ >>> 8) | (J << 24)) ^ + ($ >>> 7)) + + Z + + ((j = + (Z = + ((J >>> 1) | ($ << 31)) ^ + ((J >>> 8) | ($ << 24)) ^ + ((J >>> 7) | ($ << 25))) + q) >>> + 0 < + Z >>> 0 + ? 1 + : 0)) + + (((G >>> 19) | (V << 13)) ^ + ((G << 3) | (V >>> 29)) ^ + (G >>> 6)) + + ((j += J = + ((V >>> 19) | (G << 13)) ^ + ((V << 3) | (G >>> 29)) ^ + ((V >>> 6) | (G << 26))) >>> + 0 < + J >>> 0 + ? 1 + : 0)), + (j += $ = Q.low), + (N.high = T = T + Y + (j >>> 0 < $ >>> 0 ? 1 : 0)), + (N.low = j)); + var q = (F & W) ^ (~F & I), + Z = (P & O) ^ (~P & U), + V = (A & z) ^ (A & D) ^ (z & D), + G = + ((H >>> 28) | (A << 4)) ^ + ((H << 30) | (A >>> 2)) ^ + ((H << 25) | (A >>> 7)), + J = t1[L], + Q = J.high, + Y = J.low, + $ = + X + + (((P >>> 14) | (F << 18)) ^ + ((P >>> 18) | (F << 14)) ^ + ((P << 23) | (F >>> 9))), + N = + K + + (((F >>> 14) | (P << 18)) ^ + ((F >>> 18) | (P << 14)) ^ + ((F << 23) | (P >>> 9))) + + ($ >>> 0 < X >>> 0 ? 1 : 0), + J = G + ((H & C) ^ (H & E) ^ (C & E)), + K = I, + X = U, + I = W, + U = O, + W = F, + O = P, + F = + (R + + (N = + (N = + (N = N + q + (($ = $ + Z) >>> 0 < Z >>> 0 ? 1 : 0)) + + Q + + (($ = $ + Y) >>> 0 < Y >>> 0 ? 1 : 0)) + + T + + (($ = $ + j) >>> 0 < j >>> 0 ? 1 : 0)) + + ((P = (M + $) | 0) >>> 0 < M >>> 0 ? 1 : 0)) | + 0, + R = D, + M = E, + D = z, + E = C, + z = A, + C = H, + A = + (N + + ((((A >>> 28) | (H << 4)) ^ + ((A << 30) | (H >>> 2)) ^ + ((A << 25) | (H >>> 7))) + + V + + (J >>> 0 < G >>> 0 ? 1 : 0)) + + ((H = ($ + J) | 0) >>> 0 < $ >>> 0 ? 1 : 0)) | + 0; + } + (d = i.low = d + H), + (i.high = f + A + (d >>> 0 < H >>> 0 ? 1 : 0)), + (p = n.low = p + C), + (n.high = u + z + (p >>> 0 < C >>> 0 ? 1 : 0)), + (y = o.low = y + E), + (o.high = _ + D + (y >>> 0 < E >>> 0 ? 1 : 0)), + (g = s.low = g + M), + (s.high = v + R + (g >>> 0 < M >>> 0 ? 1 : 0)), + (w = c.low = w + P), + (c.high = B + F + (w >>> 0 < P >>> 0 ? 1 : 0)), + (m = a.low = m + O), + (a.high = k + W + (m >>> 0 < O >>> 0 ? 1 : 0)), + (x = h.low = x + U), + (h.high = S + I + (x >>> 0 < U >>> 0 ? 1 : 0)), + (r = l.low = r + X), + (l.high = b + K + (r >>> 0 < X >>> 0 ? 1 : 0)); + }, + _doFinalize: function () { + var t = this._data, + e = t.words, + r = 8 * this._nDataBytes, + i = 8 * t.sigBytes; + return ( + (e[i >>> 5] |= 128 << (24 - (i % 32))), + (e[30 + (((128 + i) >>> 10) << 5)] = Math.floor(r / 4294967296)), + (e[31 + (((128 + i) >>> 10) << 5)] = r), + (t.sigBytes = 4 * e.length), + this._process(), + this._hash.toX32() + ); + }, + clone: function () { + var t = e.clone.call(this); + return (t._hash = this._hash.clone()), t; + }, + blockSize: 32, + }); + (t.SHA512 = e._createHelper(r)), (t.HmacSHA512 = e._createHmacHelper(r)); + })(), + (P = (M = U).x64), + (c = P.Word), + (f = P.WordArray), + (P = M.algo), + (d = P.SHA512), + (P = P.SHA384 = + d.extend({ + _doReset: function () { + this._hash = new f.init([ + new c.init(3418070365, 3238371032), + new c.init(1654270250, 914150663), + new c.init(2438529370, 812702999), + new c.init(355462360, 4144912697), + new c.init(1731405415, 4290775857), + new c.init(2394180231, 1750603025), + new c.init(3675008525, 1694076839), + new c.init(1203062813, 3204075428), + ]); + }, + _doFinalize: function () { + var t = d._doFinalize.call(this); + return (t.sigBytes -= 16), t; + }, + })), + (M.SHA384 = d._createHelper(P)), + (M.HmacSHA384 = d._createHmacHelper(P)), + (function (l) { + var t = U, + e = t.lib, + f = e.WordArray, + i = e.Hasher, + d = t.x64.Word, + e = t.algo, + A = [], + H = [], + z = []; + !(function () { + for (var t = 1, e = 0, r = 0; r < 24; r++) { + A[t + 5 * e] = (((r + 1) * (r + 2)) / 2) % 64; + var i = (2 * t + 3 * e) % 5; + (t = e % 5), (e = i); + } + for (t = 0; t < 5; t++) + for (e = 0; e < 5; e++) H[t + 5 * e] = e + ((2 * t + 3 * e) % 5) * 5; + for (var n = 1, o = 0; o < 24; o++) { + for (var s, c = 0, a = 0, h = 0; h < 7; h++) + 1 & n && + ((s = (1 << h) - 1) < 32 ? (a ^= 1 << s) : (c ^= 1 << (s - 32))), + 128 & n ? (n = (n << 1) ^ 113) : (n <<= 1); + z[o] = d.create(c, a); + } + })(); + var C = []; + !(function () { + for (var t = 0; t < 25; t++) C[t] = d.create(); + })(); + e = e.SHA3 = i.extend({ + cfg: i.cfg.extend({ outputLength: 512 }), + _doReset: function () { + for (var t = (this._state = []), e = 0; e < 25; e++) + t[e] = new d.init(); + this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32; + }, + _doProcessBlock: function (t, e) { + for (var r = this._state, i = this.blockSize / 2, n = 0; n < i; n++) { + var o = t[e + 2 * n], + s = t[e + 2 * n + 1], + o = + (16711935 & ((o << 8) | (o >>> 24))) | + (4278255360 & ((o << 24) | (o >>> 8))); + ((m = r[n]).high ^= s = + (16711935 & ((s << 8) | (s >>> 24))) | + (4278255360 & ((s << 24) | (s >>> 8)))), + (m.low ^= o); + } + for (var c = 0; c < 24; c++) { + for (var a = 0; a < 5; a++) { + for (var h = 0, l = 0, f = 0; f < 5; f++) + (h ^= (m = r[a + 5 * f]).high), (l ^= m.low); + var d = C[a]; + (d.high = h), (d.low = l); + } + for (a = 0; a < 5; a++) + for ( + var u = C[(a + 4) % 5], + p = C[(a + 1) % 5], + _ = p.high, + p = p.low, + h = u.high ^ ((_ << 1) | (p >>> 31)), + l = u.low ^ ((p << 1) | (_ >>> 31)), + f = 0; + f < 5; + f++ + ) + ((m = r[a + 5 * f]).high ^= h), (m.low ^= l); + for (var y = 1; y < 25; y++) { + var v = (m = r[y]).high, + g = m.low, + B = A[y]; + l = + B < 32 + ? ((h = (v << B) | (g >>> (32 - B))), + (g << B) | (v >>> (32 - B))) + : ((h = (g << (B - 32)) | (v >>> (64 - B))), + (v << (B - 32)) | (g >>> (64 - B))); + B = C[H[y]]; + (B.high = h), (B.low = l); + } + var w = C[0], + k = r[0]; + (w.high = k.high), (w.low = k.low); + for (a = 0; a < 5; a++) + for (f = 0; f < 5; f++) { + var m = r[(y = a + 5 * f)], + S = C[y], + x = C[((a + 1) % 5) + 5 * f], + b = C[((a + 2) % 5) + 5 * f]; + (m.high = S.high ^ (~x.high & b.high)), + (m.low = S.low ^ (~x.low & b.low)); + } + (m = r[0]), (k = z[c]); + (m.high ^= k.high), (m.low ^= k.low); + } + }, + _doFinalize: function () { + var t = this._data, + e = t.words, + r = (this._nDataBytes, 8 * t.sigBytes), + i = 32 * this.blockSize; + (e[r >>> 5] |= 1 << (24 - (r % 32))), + (e[((l.ceil((1 + r) / i) * i) >>> 5) - 1] |= 128), + (t.sigBytes = 4 * e.length), + this._process(); + for ( + var n = this._state, + e = this.cfg.outputLength / 8, + o = e / 8, + s = [], + c = 0; + c < o; + c++ + ) { + var a = n[c], + h = a.high, + a = a.low, + h = + (16711935 & ((h << 8) | (h >>> 24))) | + (4278255360 & ((h << 24) | (h >>> 8))); + s.push( + (a = + (16711935 & ((a << 8) | (a >>> 24))) | + (4278255360 & ((a << 24) | (a >>> 8)))), + ), + s.push(h); + } + return new f.init(s, e); + }, + clone: function () { + for ( + var t = i.clone.call(this), + e = (t._state = this._state.slice(0)), + r = 0; + r < 25; + r++ + ) + e[r] = e[r].clone(); + return t; + }, + }); + (t.SHA3 = i._createHelper(e)), (t.HmacSHA3 = i._createHmacHelper(e)); + })(Math), + Math, + (F = (w = U).lib), + (u = F.WordArray), + (p = F.Hasher), + (F = w.algo), + (S = u.create([ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, + 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, + 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, + 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13, + ])), + (x = u.create([ + 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, + 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, + 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, + 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11, + ])), + (b = u.create([ + 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, + 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, + 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, + 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6, + ])), + (A = u.create([ + 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, + 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, + 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, + 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11, + ])), + (H = u.create([0, 1518500249, 1859775393, 2400959708, 2840853838])), + (z = u.create([1352829926, 1548603684, 1836072691, 2053994217, 0])), + (F = F.RIPEMD160 = + p.extend({ + _doReset: function () { + this._hash = u.create([ + 1732584193, 4023233417, 2562383102, 271733878, 3285377520, + ]); + }, + _doProcessBlock: function (t, e) { + for (var r = 0; r < 16; r++) { + var i = e + r, + n = t[i]; + t[i] = + (16711935 & ((n << 8) | (n >>> 24))) | + (4278255360 & ((n << 24) | (n >>> 8))); + } + for ( + var o, + s, + c, + a, + h, + l, + f = this._hash.words, + d = H.words, + u = z.words, + p = S.words, + _ = x.words, + y = b.words, + v = A.words, + g = (o = f[0]), + B = (s = f[1]), + w = (c = f[2]), + k = (a = f[3]), + m = (h = f[4]), + r = 0; + r < 80; + r += 1 + ) + (l = (o + t[e + p[r]]) | 0), + (l += + r < 16 + ? (s ^ c ^ a) + d[0] + : r < 32 + ? K(s, c, a) + d[1] + : r < 48 + ? ((s | ~c) ^ a) + d[2] + : r < 64 + ? X(s, c, a) + d[3] + : (s ^ (c | ~a)) + d[4]), + (l = ((l = L((l |= 0), y[r])) + h) | 0), + (o = h), + (h = a), + (a = L(c, 10)), + (c = s), + (s = l), + (l = (g + t[e + _[r]]) | 0), + (l += + r < 16 + ? (B ^ (w | ~k)) + u[0] + : r < 32 + ? X(B, w, k) + u[1] + : r < 48 + ? ((B | ~w) ^ k) + u[2] + : r < 64 + ? K(B, w, k) + u[3] + : (B ^ w ^ k) + u[4]), + (l = ((l = L((l |= 0), v[r])) + m) | 0), + (g = m), + (m = k), + (k = L(w, 10)), + (w = B), + (B = l); + (l = (f[1] + c + k) | 0), + (f[1] = (f[2] + a + m) | 0), + (f[2] = (f[3] + h + g) | 0), + (f[3] = (f[4] + o + B) | 0), + (f[4] = (f[0] + s + w) | 0), + (f[0] = l); + }, + _doFinalize: function () { + var t = this._data, + e = t.words, + r = 8 * this._nDataBytes, + i = 8 * t.sigBytes; + (e[i >>> 5] |= 128 << (24 - (i % 32))), + (e[14 + (((64 + i) >>> 9) << 4)] = + (16711935 & ((r << 8) | (r >>> 24))) | + (4278255360 & ((r << 24) | (r >>> 8)))), + (t.sigBytes = 4 * (e.length + 1)), + this._process(); + for (var e = this._hash, n = e.words, o = 0; o < 5; o++) { + var s = n[o]; + n[o] = + (16711935 & ((s << 8) | (s >>> 24))) | + (4278255360 & ((s << 24) | (s >>> 8))); + } + return e; + }, + clone: function () { + var t = p.clone.call(this); + return (t._hash = this._hash.clone()), t; + }, + })), + (w.RIPEMD160 = p._createHelper(F)), + (w.HmacRIPEMD160 = p._createHmacHelper(F)), + (P = (M = U).lib.Base), + (_ = M.enc.Utf8), + (M.algo.HMAC = P.extend({ + init: function (t, e) { + (t = this._hasher = new t.init()), + "string" == typeof e && (e = _.parse(e)); + var r = t.blockSize, + i = 4 * r; + (e = e.sigBytes > i ? t.finalize(e) : e).clamp(); + for ( + var t = (this._oKey = e.clone()), + e = (this._iKey = e.clone()), + n = t.words, + o = e.words, + s = 0; + s < r; + s++ + ) + (n[s] ^= 1549556828), (o[s] ^= 909522486); + (t.sigBytes = e.sigBytes = i), this.reset(); + }, + reset: function () { + var t = this._hasher; + t.reset(), t.update(this._iKey); + }, + update: function (t) { + return this._hasher.update(t), this; + }, + finalize: function (t) { + var e = this._hasher, + t = e.finalize(t); + return e.reset(), e.finalize(this._oKey.clone().concat(t)); + }, + })), + (F = (w = U).lib), + (M = F.Base), + (v = F.WordArray), + (P = w.algo), + (F = P.SHA1), + (g = P.HMAC), + (y = P.PBKDF2 = + M.extend({ + cfg: M.extend({ keySize: 4, hasher: F, iterations: 1 }), + init: function (t) { + this.cfg = this.cfg.extend(t); + }, + compute: function (t, e) { + for ( + var r = this.cfg, + i = g.create(r.hasher, t), + n = v.create(), + o = v.create([1]), + s = n.words, + c = o.words, + a = r.keySize, + h = r.iterations; + s.length < a; + + ) { + var l = i.update(e).finalize(o); + i.reset(); + for (var f = l.words, d = f.length, u = l, p = 1; p < h; p++) { + (u = i.finalize(u)), i.reset(); + for (var _ = u.words, y = 0; y < d; y++) f[y] ^= _[y]; + } + n.concat(l), c[0]++; + } + return (n.sigBytes = 4 * a), n; + }, + })), + (w.PBKDF2 = function (t, e, r) { + return y.create(r).compute(t, e); + }), + (M = (P = U).lib), + (F = M.Base), + (B = M.WordArray), + (w = P.algo), + (M = w.MD5), + (k = w.EvpKDF = + F.extend({ + cfg: F.extend({ keySize: 4, hasher: M, iterations: 1 }), + init: function (t) { + this.cfg = this.cfg.extend(t); + }, + compute: function (t, e) { + for ( + var r, + i = this.cfg, + n = i.hasher.create(), + o = B.create(), + s = o.words, + c = i.keySize, + a = i.iterations; + s.length < c; + + ) { + r && n.update(r), (r = n.update(t).finalize(e)), n.reset(); + for (var h = 1; h < a; h++) (r = n.finalize(r)), n.reset(); + o.concat(r); + } + return (o.sigBytes = 4 * c), o; + }, + })), + (P.EvpKDF = function (t, e, r) { + return k.create(r).compute(t, e); + }), + U.lib.Cipher || + (function () { + var t = U, + e = t.lib, + r = e.Base, + s = e.WordArray, + i = e.BufferedBlockAlgorithm, + n = t.enc, + o = (n.Utf8, n.Base64), + c = t.algo.EvpKDF, + a = (e.Cipher = i.extend({ + cfg: r.extend(), + createEncryptor: function (t, e) { + return this.create(this._ENC_XFORM_MODE, t, e); + }, + createDecryptor: function (t, e) { + return this.create(this._DEC_XFORM_MODE, t, e); + }, + init: function (t, e, r) { + (this.cfg = this.cfg.extend(r)), + (this._xformMode = t), + (this._key = e), + this.reset(); + }, + reset: function () { + i.reset.call(this), this._doReset(); + }, + process: function (t) { + return this._append(t), this._process(); + }, + finalize: function (t) { + return t && this._append(t), this._doFinalize(); + }, + keySize: 4, + ivSize: 4, + _ENC_XFORM_MODE: 1, + _DEC_XFORM_MODE: 2, + _createHelper: function (i) { + return { + encrypt: function (t, e, r) { + return h(e).encrypt(i, t, e, r); + }, + decrypt: function (t, e, r) { + return h(e).decrypt(i, t, e, r); + }, + }; + }, + })); + function h(t) { + return "string" == typeof t ? p : u; + } + e.StreamCipher = a.extend({ + _doFinalize: function () { + return this._process(!0); + }, + blockSize: 1, + }); + var l = (t.mode = {}), + n = (e.BlockCipherMode = r.extend({ + createEncryptor: function (t, e) { + return this.Encryptor.create(t, e); + }, + createDecryptor: function (t, e) { + return this.Decryptor.create(t, e); + }, + init: function (t, e) { + (this._cipher = t), (this._iv = e); + }, + })), + n = (l.CBC = + (((l = n.extend()).Encryptor = l.extend({ + processBlock: function (t, e) { + var r = this._cipher, + i = r.blockSize; + f.call(this, t, e, i), + r.encryptBlock(t, e), + (this._prevBlock = t.slice(e, e + i)); + }, + })), + (l.Decryptor = l.extend({ + processBlock: function (t, e) { + var r = this._cipher, + i = r.blockSize, + n = t.slice(e, e + i); + r.decryptBlock(t, e), + f.call(this, t, e, i), + (this._prevBlock = n); + }, + })), + l)); + function f(t, e, r) { + var i, + n = this._iv; + n ? ((i = n), (this._iv = void 0)) : (i = this._prevBlock); + for (var o = 0; o < r; o++) t[e + o] ^= i[o]; + } + var l = ((t.pad = {}).Pkcs7 = { + pad: function (t, e) { + for ( + var e = 4 * e, + r = e - (t.sigBytes % e), + i = (r << 24) | (r << 16) | (r << 8) | r, + n = [], + o = 0; + o < r; + o += 4 + ) + n.push(i); + e = s.create(n, r); + t.concat(e); + }, + unpad: function (t) { + var e = 255 & t.words[(t.sigBytes - 1) >>> 2]; + t.sigBytes -= e; + }, + }), + d = + ((e.BlockCipher = a.extend({ + cfg: a.cfg.extend({ mode: n, padding: l }), + reset: function () { + var t; + a.reset.call(this); + var e = this.cfg, + r = e.iv, + e = e.mode; + this._xformMode == this._ENC_XFORM_MODE + ? (t = e.createEncryptor) + : ((t = e.createDecryptor), (this._minBufferSize = 1)), + this._mode && this._mode.__creator == t + ? this._mode.init(this, r && r.words) + : ((this._mode = t.call(e, this, r && r.words)), + (this._mode.__creator = t)); + }, + _doProcessBlock: function (t, e) { + this._mode.processBlock(t, e); + }, + _doFinalize: function () { + var t, + e = this.cfg.padding; + return ( + this._xformMode == this._ENC_XFORM_MODE + ? (e.pad(this._data, this.blockSize), + (t = this._process(!0))) + : ((t = this._process(!0)), e.unpad(t)), + t + ); + }, + blockSize: 4, + })), + (e.CipherParams = r.extend({ + init: function (t) { + this.mixIn(t); + }, + toString: function (t) { + return (t || this.formatter).stringify(this); + }, + }))), + l = ((t.format = {}).OpenSSL = { + stringify: function (t) { + var e = t.ciphertext, + t = t.salt, + e = t + ? s.create([1398893684, 1701076831]).concat(t).concat(e) + : e; + return e.toString(o); + }, + parse: function (t) { + var e, + r = o.parse(t), + t = r.words; + return ( + 1398893684 == t[0] && + 1701076831 == t[1] && + ((e = s.create(t.slice(2, 4))), + t.splice(0, 4), + (r.sigBytes -= 16)), + d.create({ ciphertext: r, salt: e }) + ); + }, + }), + u = (e.SerializableCipher = r.extend({ + cfg: r.extend({ format: l }), + encrypt: function (t, e, r, i) { + i = this.cfg.extend(i); + var n = t.createEncryptor(r, i), + e = n.finalize(e), + n = n.cfg; + return d.create({ + ciphertext: e, + key: r, + iv: n.iv, + algorithm: t, + mode: n.mode, + padding: n.padding, + blockSize: t.blockSize, + formatter: i.format, + }); + }, + decrypt: function (t, e, r, i) { + return ( + (i = this.cfg.extend(i)), + (e = this._parse(e, i.format)), + t.createDecryptor(r, i).finalize(e.ciphertext) + ); + }, + _parse: function (t, e) { + return "string" == typeof t ? e.parse(t, this) : t; + }, + })), + t = ((t.kdf = {}).OpenSSL = { + execute: function (t, e, r, i) { + i = i || s.random(8); + (t = c.create({ keySize: e + r }).compute(t, i)), + (r = s.create(t.words.slice(e), 4 * r)); + return (t.sigBytes = 4 * e), d.create({ key: t, iv: r, salt: i }); + }, + }), + p = (e.PasswordBasedCipher = u.extend({ + cfg: u.cfg.extend({ kdf: t }), + encrypt: function (t, e, r, i) { + r = (i = this.cfg.extend(i)).kdf.execute(r, t.keySize, t.ivSize); + i.iv = r.iv; + i = u.encrypt.call(this, t, e, r.key, i); + return i.mixIn(r), i; + }, + decrypt: function (t, e, r, i) { + (i = this.cfg.extend(i)), (e = this._parse(e, i.format)); + r = i.kdf.execute(r, t.keySize, t.ivSize, e.salt); + return (i.iv = r.iv), u.decrypt.call(this, t, e, r.key, i); + }, + })); + })(), + (U.mode.CFB = + (((F = U.lib.BlockCipherMode.extend()).Encryptor = F.extend({ + processBlock: function (t, e) { + var r = this._cipher, + i = r.blockSize; + j.call(this, t, e, i, r), (this._prevBlock = t.slice(e, e + i)); + }, + })), + (F.Decryptor = F.extend({ + processBlock: function (t, e) { + var r = this._cipher, + i = r.blockSize, + n = t.slice(e, e + i); + j.call(this, t, e, i, r), (this._prevBlock = n); + }, + })), + F)), + (U.mode.CTR = + ((M = U.lib.BlockCipherMode.extend()), + (P = M.Encryptor = + M.extend({ + processBlock: function (t, e) { + var r = this._cipher, + i = r.blockSize, + n = this._iv, + o = this._counter; + n && ((o = this._counter = n.slice(0)), (this._iv = void 0)); + var s = o.slice(0); + r.encryptBlock(s, 0), (o[i - 1] = (o[i - 1] + 1) | 0); + for (var c = 0; c < i; c++) t[e + c] ^= s[c]; + }, + })), + (M.Decryptor = P), + M)), + (U.mode.CTRGladman = + ((F = U.lib.BlockCipherMode.extend()), + (P = F.Encryptor = + F.extend({ + processBlock: function (t, e) { + var r = this._cipher, + i = r.blockSize, + n = this._iv, + o = this._counter; + n && ((o = this._counter = n.slice(0)), (this._iv = void 0)), + 0 === ((n = o)[0] = T(n[0])) && (n[1] = T(n[1])); + var s = o.slice(0); + r.encryptBlock(s, 0); + for (var c = 0; c < i; c++) t[e + c] ^= s[c]; + }, + })), + (F.Decryptor = P), + F)), + (U.mode.OFB = + ((M = U.lib.BlockCipherMode.extend()), + (P = M.Encryptor = + M.extend({ + processBlock: function (t, e) { + var r = this._cipher, + i = r.blockSize, + n = this._iv, + o = this._keystream; + n && ((o = this._keystream = n.slice(0)), (this._iv = void 0)), + r.encryptBlock(o, 0); + for (var s = 0; s < i; s++) t[e + s] ^= o[s]; + }, + })), + (M.Decryptor = P), + M)), + (U.mode.ECB = + (((F = U.lib.BlockCipherMode.extend()).Encryptor = F.extend({ + processBlock: function (t, e) { + this._cipher.encryptBlock(t, e); + }, + })), + (F.Decryptor = F.extend({ + processBlock: function (t, e) { + this._cipher.decryptBlock(t, e); + }, + })), + F)), + (U.pad.AnsiX923 = { + pad: function (t, e) { + var r = t.sigBytes, + e = 4 * e, + e = e - (r % e), + r = r + e - 1; + t.clamp(), + (t.words[r >>> 2] |= e << (24 - (r % 4) * 8)), + (t.sigBytes += e); + }, + unpad: function (t) { + var e = 255 & t.words[(t.sigBytes - 1) >>> 2]; + t.sigBytes -= e; + }, + }), + (U.pad.Iso10126 = { + pad: function (t, e) { + (e *= 4), (e -= t.sigBytes % e); + t.concat(U.lib.WordArray.random(e - 1)).concat( + U.lib.WordArray.create([e << 24], 1), + ); + }, + unpad: function (t) { + var e = 255 & t.words[(t.sigBytes - 1) >>> 2]; + t.sigBytes -= e; + }, + }), + (U.pad.Iso97971 = { + pad: function (t, e) { + t.concat(U.lib.WordArray.create([2147483648], 1)), + U.pad.ZeroPadding.pad(t, e); + }, + unpad: function (t) { + U.pad.ZeroPadding.unpad(t), t.sigBytes--; + }, + }), + (U.pad.ZeroPadding = { + pad: function (t, e) { + e *= 4; + t.clamp(), (t.sigBytes += e - (t.sigBytes % e || e)); + }, + unpad: function (t) { + for ( + var e = t.words, r = t.sigBytes - 1, r = t.sigBytes - 1; + 0 <= r; + r-- + ) + if ((e[r >>> 2] >>> (24 - (r % 4) * 8)) & 255) { + t.sigBytes = r + 1; + break; + } + }, + }), + (U.pad.NoPadding = { pad: function () {}, unpad: function () {} }), + (m = (P = U).lib.CipherParams), + (C = P.enc.Hex), + (P.format.Hex = { + stringify: function (t) { + return t.ciphertext.toString(C); + }, + parse: function (t) { + t = C.parse(t); + return m.create({ ciphertext: t }); + }, + }), + (function () { + var t = U, + e = t.lib.BlockCipher, + r = t.algo, + h = [], + l = [], + f = [], + d = [], + u = [], + p = [], + _ = [], + y = [], + v = [], + g = []; + !(function () { + for (var t = [], e = 0; e < 256; e++) + t[e] = e < 128 ? e << 1 : (e << 1) ^ 283; + for (var r = 0, i = 0, e = 0; e < 256; e++) { + var n = i ^ (i << 1) ^ (i << 2) ^ (i << 3) ^ (i << 4); + h[r] = n = (n >>> 8) ^ (255 & n) ^ 99; + var o = t[(l[n] = r)], + s = t[o], + c = t[s], + a = (257 * t[n]) ^ (16843008 * n); + (f[r] = (a << 24) | (a >>> 8)), + (d[r] = (a << 16) | (a >>> 16)), + (u[r] = (a << 8) | (a >>> 24)), + (p[r] = a), + (_[n] = + ((a = + (16843009 * c) ^ (65537 * s) ^ (257 * o) ^ (16843008 * r)) << + 24) | + (a >>> 8)), + (y[n] = (a << 16) | (a >>> 16)), + (v[n] = (a << 8) | (a >>> 24)), + (g[n] = a), + r ? ((r = o ^ t[t[t[c ^ o]]]), (i ^= t[t[i]])) : (r = i = 1); + } + })(); + var B = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54], + r = (r.AES = e.extend({ + _doReset: function () { + if (!this._nRounds || this._keyPriorReset !== this._key) { + for ( + var t = (this._keyPriorReset = this._key), + e = t.words, + r = t.sigBytes / 4, + i = 4 * (1 + (this._nRounds = 6 + r)), + n = (this._keySchedule = []), + o = 0; + o < i; + o++ + ) + o < r + ? (n[o] = e[o]) + : ((a = n[o - 1]), + o % r + ? 6 < r && + o % r == 4 && + (a = + (h[a >>> 24] << 24) | + (h[(a >>> 16) & 255] << 16) | + (h[(a >>> 8) & 255] << 8) | + h[255 & a]) + : ((a = + (h[(a = (a << 8) | (a >>> 24)) >>> 24] << 24) | + (h[(a >>> 16) & 255] << 16) | + (h[(a >>> 8) & 255] << 8) | + h[255 & a]), + (a ^= B[(o / r) | 0] << 24)), + (n[o] = n[o - r] ^ a)); + for (var s = (this._invKeySchedule = []), c = 0; c < i; c++) { + var a, + o = i - c; + (a = c % 4 ? n[o] : n[o - 4]), + (s[c] = + c < 4 || o <= 4 + ? a + : _[h[a >>> 24]] ^ + y[h[(a >>> 16) & 255]] ^ + v[h[(a >>> 8) & 255]] ^ + g[h[255 & a]]); + } + } + }, + encryptBlock: function (t, e) { + this._doCryptBlock(t, e, this._keySchedule, f, d, u, p, h); + }, + decryptBlock: function (t, e) { + var r = t[e + 1]; + (t[e + 1] = t[e + 3]), + (t[e + 3] = r), + this._doCryptBlock(t, e, this._invKeySchedule, _, y, v, g, l); + r = t[e + 1]; + (t[e + 1] = t[e + 3]), (t[e + 3] = r); + }, + _doCryptBlock: function (t, e, r, i, n, o, s, c) { + for ( + var a = this._nRounds, + h = t[e] ^ r[0], + l = t[e + 1] ^ r[1], + f = t[e + 2] ^ r[2], + d = t[e + 3] ^ r[3], + u = 4, + p = 1; + p < a; + p++ + ) + var _ = + i[h >>> 24] ^ + n[(l >>> 16) & 255] ^ + o[(f >>> 8) & 255] ^ + s[255 & d] ^ + r[u++], + y = + i[l >>> 24] ^ + n[(f >>> 16) & 255] ^ + o[(d >>> 8) & 255] ^ + s[255 & h] ^ + r[u++], + v = + i[f >>> 24] ^ + n[(d >>> 16) & 255] ^ + o[(h >>> 8) & 255] ^ + s[255 & l] ^ + r[u++], + g = + i[d >>> 24] ^ + n[(h >>> 16) & 255] ^ + o[(l >>> 8) & 255] ^ + s[255 & f] ^ + r[u++], + h = _, + l = y, + f = v, + d = g; + (_ = + ((c[h >>> 24] << 24) | + (c[(l >>> 16) & 255] << 16) | + (c[(f >>> 8) & 255] << 8) | + c[255 & d]) ^ + r[u++]), + (y = + ((c[l >>> 24] << 24) | + (c[(f >>> 16) & 255] << 16) | + (c[(d >>> 8) & 255] << 8) | + c[255 & h]) ^ + r[u++]), + (v = + ((c[f >>> 24] << 24) | + (c[(d >>> 16) & 255] << 16) | + (c[(h >>> 8) & 255] << 8) | + c[255 & l]) ^ + r[u++]), + (g = + ((c[d >>> 24] << 24) | + (c[(h >>> 16) & 255] << 16) | + (c[(l >>> 8) & 255] << 8) | + c[255 & f]) ^ + r[u++]); + (t[e] = _), (t[e + 1] = y), (t[e + 2] = v), (t[e + 3] = g); + }, + keySize: 8, + })); + t.AES = e._createHelper(r); + })(), + (function () { + var t = U, + e = t.lib, + i = e.WordArray, + r = e.BlockCipher, + e = t.algo, + h = [ + 57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, + 43, 35, 27, 19, 11, 3, 60, 52, 44, 36, 63, 55, 47, 39, 31, 23, 15, 7, + 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, + 12, 4, + ], + l = [ + 14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10, 23, 19, 12, 4, 26, 8, 16, + 7, 27, 20, 13, 2, 41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48, 44, + 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32, + ], + f = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28], + d = [ + { + 0: 8421888, + 268435456: 32768, + 536870912: 8421378, + 805306368: 2, + 1073741824: 512, + 1342177280: 8421890, + 1610612736: 8389122, + 1879048192: 8388608, + 2147483648: 514, + 2415919104: 8389120, + 2684354560: 33280, + 2952790016: 8421376, + 3221225472: 32770, + 3489660928: 8388610, + 3758096384: 0, + 4026531840: 33282, + 134217728: 0, + 402653184: 8421890, + 671088640: 33282, + 939524096: 32768, + 1207959552: 8421888, + 1476395008: 512, + 1744830464: 8421378, + 2013265920: 2, + 2281701376: 8389120, + 2550136832: 33280, + 2818572288: 8421376, + 3087007744: 8389122, + 3355443200: 8388610, + 3623878656: 32770, + 3892314112: 514, + 4160749568: 8388608, + 1: 32768, + 268435457: 2, + 536870913: 8421888, + 805306369: 8388608, + 1073741825: 8421378, + 1342177281: 33280, + 1610612737: 512, + 1879048193: 8389122, + 2147483649: 8421890, + 2415919105: 8421376, + 2684354561: 8388610, + 2952790017: 33282, + 3221225473: 514, + 3489660929: 8389120, + 3758096385: 32770, + 4026531841: 0, + 134217729: 8421890, + 402653185: 8421376, + 671088641: 8388608, + 939524097: 512, + 1207959553: 32768, + 1476395009: 8388610, + 1744830465: 2, + 2013265921: 33282, + 2281701377: 32770, + 2550136833: 8389122, + 2818572289: 514, + 3087007745: 8421888, + 3355443201: 8389120, + 3623878657: 0, + 3892314113: 33280, + 4160749569: 8421378, + }, + { + 0: 1074282512, + 16777216: 16384, + 33554432: 524288, + 50331648: 1074266128, + 67108864: 1073741840, + 83886080: 1074282496, + 100663296: 1073758208, + 117440512: 16, + 134217728: 540672, + 150994944: 1073758224, + 167772160: 1073741824, + 184549376: 540688, + 201326592: 524304, + 218103808: 0, + 234881024: 16400, + 251658240: 1074266112, + 8388608: 1073758208, + 25165824: 540688, + 41943040: 16, + 58720256: 1073758224, + 75497472: 1074282512, + 92274688: 1073741824, + 109051904: 524288, + 125829120: 1074266128, + 142606336: 524304, + 159383552: 0, + 176160768: 16384, + 192937984: 1074266112, + 209715200: 1073741840, + 226492416: 540672, + 243269632: 1074282496, + 260046848: 16400, + 268435456: 0, + 285212672: 1074266128, + 301989888: 1073758224, + 318767104: 1074282496, + 335544320: 1074266112, + 352321536: 16, + 369098752: 540688, + 385875968: 16384, + 402653184: 16400, + 419430400: 524288, + 436207616: 524304, + 452984832: 1073741840, + 469762048: 540672, + 486539264: 1073758208, + 503316480: 1073741824, + 520093696: 1074282512, + 276824064: 540688, + 293601280: 524288, + 310378496: 1074266112, + 327155712: 16384, + 343932928: 1073758208, + 360710144: 1074282512, + 377487360: 16, + 394264576: 1073741824, + 411041792: 1074282496, + 427819008: 1073741840, + 444596224: 1073758224, + 461373440: 524304, + 478150656: 0, + 494927872: 16400, + 511705088: 1074266128, + 528482304: 540672, + }, + { + 0: 260, + 1048576: 0, + 2097152: 67109120, + 3145728: 65796, + 4194304: 65540, + 5242880: 67108868, + 6291456: 67174660, + 7340032: 67174400, + 8388608: 67108864, + 9437184: 67174656, + 10485760: 65792, + 11534336: 67174404, + 12582912: 67109124, + 13631488: 65536, + 14680064: 4, + 15728640: 256, + 524288: 67174656, + 1572864: 67174404, + 2621440: 0, + 3670016: 67109120, + 4718592: 67108868, + 5767168: 65536, + 6815744: 65540, + 7864320: 260, + 8912896: 4, + 9961472: 256, + 11010048: 67174400, + 12058624: 65796, + 13107200: 65792, + 14155776: 67109124, + 15204352: 67174660, + 16252928: 67108864, + 16777216: 67174656, + 17825792: 65540, + 18874368: 65536, + 19922944: 67109120, + 20971520: 256, + 22020096: 67174660, + 23068672: 67108868, + 24117248: 0, + 25165824: 67109124, + 26214400: 67108864, + 27262976: 4, + 28311552: 65792, + 29360128: 67174400, + 30408704: 260, + 31457280: 65796, + 32505856: 67174404, + 17301504: 67108864, + 18350080: 260, + 19398656: 67174656, + 20447232: 0, + 21495808: 65540, + 22544384: 67109120, + 23592960: 256, + 24641536: 67174404, + 25690112: 65536, + 26738688: 67174660, + 27787264: 65796, + 28835840: 67108868, + 29884416: 67109124, + 30932992: 67174400, + 31981568: 4, + 33030144: 65792, + }, + { + 0: 2151682048, + 65536: 2147487808, + 131072: 4198464, + 196608: 2151677952, + 262144: 0, + 327680: 4198400, + 393216: 2147483712, + 458752: 4194368, + 524288: 2147483648, + 589824: 4194304, + 655360: 64, + 720896: 2147487744, + 786432: 2151678016, + 851968: 4160, + 917504: 4096, + 983040: 2151682112, + 32768: 2147487808, + 98304: 64, + 163840: 2151678016, + 229376: 2147487744, + 294912: 4198400, + 360448: 2151682112, + 425984: 0, + 491520: 2151677952, + 557056: 4096, + 622592: 2151682048, + 688128: 4194304, + 753664: 4160, + 819200: 2147483648, + 884736: 4194368, + 950272: 4198464, + 1015808: 2147483712, + 1048576: 4194368, + 1114112: 4198400, + 1179648: 2147483712, + 1245184: 0, + 1310720: 4160, + 1376256: 2151678016, + 1441792: 2151682048, + 1507328: 2147487808, + 1572864: 2151682112, + 1638400: 2147483648, + 1703936: 2151677952, + 1769472: 4198464, + 1835008: 2147487744, + 1900544: 4194304, + 1966080: 64, + 2031616: 4096, + 1081344: 2151677952, + 1146880: 2151682112, + 1212416: 0, + 1277952: 4198400, + 1343488: 4194368, + 1409024: 2147483648, + 1474560: 2147487808, + 1540096: 64, + 1605632: 2147483712, + 1671168: 4096, + 1736704: 2147487744, + 1802240: 2151678016, + 1867776: 4160, + 1933312: 2151682048, + 1998848: 4194304, + 2064384: 4198464, + }, + { + 0: 128, + 4096: 17039360, + 8192: 262144, + 12288: 536870912, + 16384: 537133184, + 20480: 16777344, + 24576: 553648256, + 28672: 262272, + 32768: 16777216, + 36864: 537133056, + 40960: 536871040, + 45056: 553910400, + 49152: 553910272, + 53248: 0, + 57344: 17039488, + 61440: 553648128, + 2048: 17039488, + 6144: 553648256, + 10240: 128, + 14336: 17039360, + 18432: 262144, + 22528: 537133184, + 26624: 553910272, + 30720: 536870912, + 34816: 537133056, + 38912: 0, + 43008: 553910400, + 47104: 16777344, + 51200: 536871040, + 55296: 553648128, + 59392: 16777216, + 63488: 262272, + 65536: 262144, + 69632: 128, + 73728: 536870912, + 77824: 553648256, + 81920: 16777344, + 86016: 553910272, + 90112: 537133184, + 94208: 16777216, + 98304: 553910400, + 102400: 553648128, + 106496: 17039360, + 110592: 537133056, + 114688: 262272, + 118784: 536871040, + 122880: 0, + 126976: 17039488, + 67584: 553648256, + 71680: 16777216, + 75776: 17039360, + 79872: 537133184, + 83968: 536870912, + 88064: 17039488, + 92160: 128, + 96256: 553910272, + 100352: 262272, + 104448: 553910400, + 108544: 0, + 112640: 553648128, + 116736: 16777344, + 120832: 262144, + 124928: 537133056, + 129024: 536871040, + }, + { + 0: 268435464, + 256: 8192, + 512: 270532608, + 768: 270540808, + 1024: 268443648, + 1280: 2097152, + 1536: 2097160, + 1792: 268435456, + 2048: 0, + 2304: 268443656, + 2560: 2105344, + 2816: 8, + 3072: 270532616, + 3328: 2105352, + 3584: 8200, + 3840: 270540800, + 128: 270532608, + 384: 270540808, + 640: 8, + 896: 2097152, + 1152: 2105352, + 1408: 268435464, + 1664: 268443648, + 1920: 8200, + 2176: 2097160, + 2432: 8192, + 2688: 268443656, + 2944: 270532616, + 3200: 0, + 3456: 270540800, + 3712: 2105344, + 3968: 268435456, + 4096: 268443648, + 4352: 270532616, + 4608: 270540808, + 4864: 8200, + 5120: 2097152, + 5376: 268435456, + 5632: 268435464, + 5888: 2105344, + 6144: 2105352, + 6400: 0, + 6656: 8, + 6912: 270532608, + 7168: 8192, + 7424: 268443656, + 7680: 270540800, + 7936: 2097160, + 4224: 8, + 4480: 2105344, + 4736: 2097152, + 4992: 268435464, + 5248: 268443648, + 5504: 8200, + 5760: 270540808, + 6016: 270532608, + 6272: 270540800, + 6528: 270532616, + 6784: 8192, + 7040: 2105352, + 7296: 2097160, + 7552: 0, + 7808: 268435456, + 8064: 268443656, + }, + { + 0: 1048576, + 16: 33555457, + 32: 1024, + 48: 1049601, + 64: 34604033, + 80: 0, + 96: 1, + 112: 34603009, + 128: 33555456, + 144: 1048577, + 160: 33554433, + 176: 34604032, + 192: 34603008, + 208: 1025, + 224: 1049600, + 240: 33554432, + 8: 34603009, + 24: 0, + 40: 33555457, + 56: 34604032, + 72: 1048576, + 88: 33554433, + 104: 33554432, + 120: 1025, + 136: 1049601, + 152: 33555456, + 168: 34603008, + 184: 1048577, + 200: 1024, + 216: 34604033, + 232: 1, + 248: 1049600, + 256: 33554432, + 272: 1048576, + 288: 33555457, + 304: 34603009, + 320: 1048577, + 336: 33555456, + 352: 34604032, + 368: 1049601, + 384: 1025, + 400: 34604033, + 416: 1049600, + 432: 1, + 448: 0, + 464: 34603008, + 480: 33554433, + 496: 1024, + 264: 1049600, + 280: 33555457, + 296: 34603009, + 312: 1, + 328: 33554432, + 344: 1048576, + 360: 1025, + 376: 34604032, + 392: 33554433, + 408: 34603008, + 424: 0, + 440: 34604033, + 456: 1049601, + 472: 1024, + 488: 33555456, + 504: 1048577, + }, + { + 0: 134219808, + 1: 131072, + 2: 134217728, + 3: 32, + 4: 131104, + 5: 134350880, + 6: 134350848, + 7: 2048, + 8: 134348800, + 9: 134219776, + 10: 133120, + 11: 134348832, + 12: 2080, + 13: 0, + 14: 134217760, + 15: 133152, + 2147483648: 2048, + 2147483649: 134350880, + 2147483650: 134219808, + 2147483651: 134217728, + 2147483652: 134348800, + 2147483653: 133120, + 2147483654: 133152, + 2147483655: 32, + 2147483656: 134217760, + 2147483657: 2080, + 2147483658: 131104, + 2147483659: 134350848, + 2147483660: 0, + 2147483661: 134348832, + 2147483662: 134219776, + 2147483663: 131072, + 16: 133152, + 17: 134350848, + 18: 32, + 19: 2048, + 20: 134219776, + 21: 134217760, + 22: 134348832, + 23: 131072, + 24: 0, + 25: 131104, + 26: 134348800, + 27: 134219808, + 28: 134350880, + 29: 133120, + 30: 2080, + 31: 134217728, + 2147483664: 131072, + 2147483665: 2048, + 2147483666: 134348832, + 2147483667: 133152, + 2147483668: 32, + 2147483669: 134348800, + 2147483670: 134217728, + 2147483671: 134219808, + 2147483672: 134350880, + 2147483673: 134217760, + 2147483674: 134219776, + 2147483675: 0, + 2147483676: 133120, + 2147483677: 2080, + 2147483678: 131104, + 2147483679: 134350848, + }, + ], + u = [ + 4160749569, 528482304, 33030144, 2064384, 129024, 8064, 504, + 2147483679, + ], + n = (e.DES = r.extend({ + _doReset: function () { + for (var t = this._key.words, e = [], r = 0; r < 56; r++) { + var i = h[r] - 1; + e[r] = (t[i >>> 5] >>> (31 - (i % 32))) & 1; + } + for (var n = (this._subKeys = []), o = 0; o < 16; o++) { + for (var s = (n[o] = []), c = f[o], r = 0; r < 24; r++) + (s[(r / 6) | 0] |= e[(l[r] - 1 + c) % 28] << (31 - (r % 6))), + (s[4 + ((r / 6) | 0)] |= + e[28 + ((l[r + 24] - 1 + c) % 28)] << (31 - (r % 6))); + s[0] = (s[0] << 1) | (s[0] >>> 31); + for (r = 1; r < 7; r++) s[r] = s[r] >>> (4 * (r - 1) + 3); + s[7] = (s[7] << 5) | (s[7] >>> 27); + } + for (var a = (this._invSubKeys = []), r = 0; r < 16; r++) + a[r] = n[15 - r]; + }, + encryptBlock: function (t, e) { + this._doCryptBlock(t, e, this._subKeys); + }, + decryptBlock: function (t, e) { + this._doCryptBlock(t, e, this._invSubKeys); + }, + _doCryptBlock: function (t, e, r) { + (this._lBlock = t[e]), + (this._rBlock = t[e + 1]), + p.call(this, 4, 252645135), + p.call(this, 16, 65535), + _.call(this, 2, 858993459), + _.call(this, 8, 16711935), + p.call(this, 1, 1431655765); + for (var i = 0; i < 16; i++) { + for ( + var n = r[i], o = this._lBlock, s = this._rBlock, c = 0, a = 0; + a < 8; + a++ + ) + c |= d[a][((s ^ n[a]) & u[a]) >>> 0]; + (this._lBlock = s), (this._rBlock = o ^ c); + } + var h = this._lBlock; + (this._lBlock = this._rBlock), + (this._rBlock = h), + p.call(this, 1, 1431655765), + _.call(this, 8, 16711935), + _.call(this, 2, 858993459), + p.call(this, 16, 65535), + p.call(this, 4, 252645135), + (t[e] = this._lBlock), + (t[e + 1] = this._rBlock); + }, + keySize: 2, + ivSize: 2, + blockSize: 2, + })); + function p(t, e) { + e = ((this._lBlock >>> t) ^ this._rBlock) & e; + (this._rBlock ^= e), (this._lBlock ^= e << t); + } + function _(t, e) { + e = ((this._rBlock >>> t) ^ this._lBlock) & e; + (this._lBlock ^= e), (this._rBlock ^= e << t); + } + t.DES = r._createHelper(n); + e = e.TripleDES = r.extend({ + _doReset: function () { + var t = this._key.words; + if (2 !== t.length && 4 !== t.length && t.length < 6) + throw new Error( + "Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.", + ); + var e = t.slice(0, 2), + r = t.length < 4 ? t.slice(0, 2) : t.slice(2, 4), + t = t.length < 6 ? t.slice(0, 2) : t.slice(4, 6); + (this._des1 = n.createEncryptor(i.create(e))), + (this._des2 = n.createEncryptor(i.create(r))), + (this._des3 = n.createEncryptor(i.create(t))); + }, + encryptBlock: function (t, e) { + this._des1.encryptBlock(t, e), + this._des2.decryptBlock(t, e), + this._des3.encryptBlock(t, e); + }, + decryptBlock: function (t, e) { + this._des3.decryptBlock(t, e), + this._des2.encryptBlock(t, e), + this._des1.decryptBlock(t, e); + }, + keySize: 6, + ivSize: 2, + blockSize: 2, + }); + t.TripleDES = r._createHelper(e); + })(), + (function () { + var t = U, + e = t.lib.StreamCipher, + r = t.algo, + i = (r.RC4 = e.extend({ + _doReset: function () { + for ( + var t = this._key, + e = t.words, + r = t.sigBytes, + i = (this._S = []), + n = 0; + n < 256; + n++ + ) + i[n] = n; + for (var n = 0, o = 0; n < 256; n++) { + var s = n % r, + s = (e[s >>> 2] >>> (24 - (s % 4) * 8)) & 255, + o = (o + i[n] + s) % 256, + s = i[n]; + (i[n] = i[o]), (i[o] = s); + } + this._i = this._j = 0; + }, + _doProcessBlock: function (t, e) { + t[e] ^= n.call(this); + }, + keySize: 8, + ivSize: 0, + })); + function n() { + for ( + var t = this._S, e = this._i, r = this._j, i = 0, n = 0; + n < 4; + n++ + ) { + var r = (r + t[(e = (e + 1) % 256)]) % 256, + o = t[e]; + (t[e] = t[r]), + (t[r] = o), + (i |= t[(t[e] + t[r]) % 256] << (24 - 8 * n)); + } + return (this._i = e), (this._j = r), i; + } + t.RC4 = e._createHelper(i); + r = r.RC4Drop = i.extend({ + cfg: i.cfg.extend({ drop: 192 }), + _doReset: function () { + i._doReset.call(this); + for (var t = this.cfg.drop; 0 < t; t--) n.call(this); + }, + }); + t.RC4Drop = e._createHelper(r); + })(), + (F = (M = U).lib.StreamCipher), + (P = M.algo), + (D = []), + (E = []), + (R = []), + (P = P.Rabbit = + F.extend({ + _doReset: function () { + for (var t = this._key.words, e = this.cfg.iv, r = 0; r < 4; r++) + t[r] = + (16711935 & ((t[r] << 8) | (t[r] >>> 24))) | + (4278255360 & ((t[r] << 24) | (t[r] >>> 8))); + for ( + var i = (this._X = [ + t[0], + (t[3] << 16) | (t[2] >>> 16), + t[1], + (t[0] << 16) | (t[3] >>> 16), + t[2], + (t[1] << 16) | (t[0] >>> 16), + t[3], + (t[2] << 16) | (t[1] >>> 16), + ]), + n = (this._C = [ + (t[2] << 16) | (t[2] >>> 16), + (4294901760 & t[0]) | (65535 & t[1]), + (t[3] << 16) | (t[3] >>> 16), + (4294901760 & t[1]) | (65535 & t[2]), + (t[0] << 16) | (t[0] >>> 16), + (4294901760 & t[2]) | (65535 & t[3]), + (t[1] << 16) | (t[1] >>> 16), + (4294901760 & t[3]) | (65535 & t[0]), + ]), + r = (this._b = 0); + r < 4; + r++ + ) + N.call(this); + for (r = 0; r < 8; r++) n[r] ^= i[(r + 4) & 7]; + if (e) { + var o = e.words, + s = o[0], + c = o[1], + e = + (16711935 & ((s << 8) | (s >>> 24))) | + (4278255360 & ((s << 24) | (s >>> 8))), + o = + (16711935 & ((c << 8) | (c >>> 24))) | + (4278255360 & ((c << 24) | (c >>> 8))), + s = (e >>> 16) | (4294901760 & o), + c = (o << 16) | (65535 & e); + (n[0] ^= e), + (n[1] ^= s), + (n[2] ^= o), + (n[3] ^= c), + (n[4] ^= e), + (n[5] ^= s), + (n[6] ^= o), + (n[7] ^= c); + for (r = 0; r < 4; r++) N.call(this); + } + }, + _doProcessBlock: function (t, e) { + var r = this._X; + N.call(this), + (D[0] = r[0] ^ (r[5] >>> 16) ^ (r[3] << 16)), + (D[1] = r[2] ^ (r[7] >>> 16) ^ (r[5] << 16)), + (D[2] = r[4] ^ (r[1] >>> 16) ^ (r[7] << 16)), + (D[3] = r[6] ^ (r[3] >>> 16) ^ (r[1] << 16)); + for (var i = 0; i < 4; i++) + (D[i] = + (16711935 & ((D[i] << 8) | (D[i] >>> 24))) | + (4278255360 & ((D[i] << 24) | (D[i] >>> 8)))), + (t[e + i] ^= D[i]); + }, + blockSize: 4, + ivSize: 2, + })), + (M.Rabbit = F._createHelper(P)), + (F = (M = U).lib.StreamCipher), + (P = M.algo), + (W = []), + (O = []), + (I = []), + (P = P.RabbitLegacy = + F.extend({ + _doReset: function () { + for ( + var t = this._key.words, + e = this.cfg.iv, + r = (this._X = [ + t[0], + (t[3] << 16) | (t[2] >>> 16), + t[1], + (t[0] << 16) | (t[3] >>> 16), + t[2], + (t[1] << 16) | (t[0] >>> 16), + t[3], + (t[2] << 16) | (t[1] >>> 16), + ]), + i = (this._C = [ + (t[2] << 16) | (t[2] >>> 16), + (4294901760 & t[0]) | (65535 & t[1]), + (t[3] << 16) | (t[3] >>> 16), + (4294901760 & t[1]) | (65535 & t[2]), + (t[0] << 16) | (t[0] >>> 16), + (4294901760 & t[2]) | (65535 & t[3]), + (t[1] << 16) | (t[1] >>> 16), + (4294901760 & t[3]) | (65535 & t[0]), + ]), + n = (this._b = 0); + n < 4; + n++ + ) + q.call(this); + for (n = 0; n < 8; n++) i[n] ^= r[(n + 4) & 7]; + if (e) { + var o = e.words, + s = o[0], + t = o[1], + e = + (16711935 & ((s << 8) | (s >>> 24))) | + (4278255360 & ((s << 24) | (s >>> 8))), + o = + (16711935 & ((t << 8) | (t >>> 24))) | + (4278255360 & ((t << 24) | (t >>> 8))), + s = (e >>> 16) | (4294901760 & o), + t = (o << 16) | (65535 & e); + (i[0] ^= e), + (i[1] ^= s), + (i[2] ^= o), + (i[3] ^= t), + (i[4] ^= e), + (i[5] ^= s), + (i[6] ^= o), + (i[7] ^= t); + for (n = 0; n < 4; n++) q.call(this); + } + }, + _doProcessBlock: function (t, e) { + var r = this._X; + q.call(this), + (W[0] = r[0] ^ (r[5] >>> 16) ^ (r[3] << 16)), + (W[1] = r[2] ^ (r[7] >>> 16) ^ (r[5] << 16)), + (W[2] = r[4] ^ (r[1] >>> 16) ^ (r[7] << 16)), + (W[3] = r[6] ^ (r[3] >>> 16) ^ (r[1] << 16)); + for (var i = 0; i < 4; i++) + (W[i] = + (16711935 & ((W[i] << 8) | (W[i] >>> 24))) | + (4278255360 & ((W[i] << 24) | (W[i] >>> 8)))), + (t[e + i] ^= W[i]); + }, + blockSize: 4, + ivSize: 2, + })), + (M.RabbitLegacy = F._createHelper(P)), + U + ); +}); diff --git a/libs/httpjsutils.js b/libs/httpjsutils.js index c8791af..b4baa9d 100644 --- a/libs/httpjsutils.js +++ b/libs/httpjsutils.js @@ -1,44 +1,44 @@ function _changeOpacity(e) { - const divId = e.target.id.split("-")[0] - const div = document.getElementById(divId) - _wrapperDivPositions[divId].opacity = e.target.value - div.style.opacity = `${e.target.value / 100}` + const divId = e.target.id.split("-")[0]; + const div = document.getElementById(divId); + _wrapperDivPositions[divId].opacity = e.target.value; + div.style.opacity = `${e.target.value / 100}`; } function _changePage(click) { - const buttonId = click.target.id - const divId = buttonId.split("-")[0] - const direction = buttonId.split("-")[1] - if (direction === 'up') { - if (divId === 'enemies') { - if (_currentEnemyPage > 0) { - _currentEnemyPage -= 1 - } else { - _currentEnemyPage = _enemiesPokemon.length - 1 - } - } else if (divId === 'allies') { - if (_currentAllyPage > 0) { - _currentAllyPage -= 1 - } else { - _currentAllyPage = _alliesPokemon.length - 1 - } - } - } else if (direction === 'down') { - if (divId === 'enemies') { - if ((_currentEnemyPage + 1) < _enemiesPokemon.length) { - _currentEnemyPage += 1 - } else { - _currentEnemyPage = 0 - } - } else if (divId === 'allies') { - if ((_currentAllyPage + 1) < _alliesPokemon.length) { - _currentAllyPage += 1 - } else { - _currentAllyPage = 0 - } - } - } - HttpUtils.createCardsDiv(divId) + const buttonId = click.target.id; + const divId = buttonId.split("-")[0]; + const direction = buttonId.split("-")[1]; + if (direction === "up") { + if (divId === "enemies") { + if (_currentEnemyPage > 0) { + _currentEnemyPage -= 1; + } else { + _currentEnemyPage = _enemiesPokemon.length - 1; + } + } else if (divId === "allies") { + if (_currentAllyPage > 0) { + _currentAllyPage -= 1; + } else { + _currentAllyPage = _alliesPokemon.length - 1; + } + } + } else if (direction === "down") { + if (divId === "enemies") { + if (_currentEnemyPage + 1 < _enemiesPokemon.length) { + _currentEnemyPage += 1; + } else { + _currentEnemyPage = 0; + } + } else if (divId === "allies") { + if (_currentAllyPage + 1 < _alliesPokemon.length) { + _currentAllyPage += 1; + } else { + _currentAllyPage = 0; + } + } + } + HttpUtils.createCardsDiv(divId); } // Enables drag-and-drop functionality on an element @@ -53,7 +53,7 @@ function _enableDragElement(elmnt) { dragStartElement.onpointerdown = dragMouseDown; function dragMouseDown(e) { e = e || window.event; - if (e.target.type === 'submit' || e.target.type === 'range') return + if (e.target.type === "submit" || e.target.type === "range") return; e.preventDefault(); pos3 = e.clientX; pos4 = e.clientY; @@ -64,7 +64,7 @@ function _enableDragElement(elmnt) { // Handles dragging movement function dragElement(e) { e = e || window.event; - if (e.target.type === 'submit' || e.target.type === 'range') return + if (e.target.type === "submit" || e.target.type === "range") return; e.preventDefault(); pos1 = pos3 - e.clientX; pos2 = pos4 - e.clientY; @@ -79,4 +79,4 @@ function _enableDragElement(elmnt) { document.onpointerup = null; document.onpointermove = null; } -} \ No newline at end of file +} diff --git a/libs/httputils.js b/libs/httputils.js index 77157ba..2d4961f 100644 --- a/libs/httputils.js +++ b/libs/httputils.js @@ -2,9 +2,16 @@ function _createPokemonCardDiv(cardclass, cardId, pokemon) { let opacityRangeMin = 10; let opacityRangeMax = 100; let pokemonImageUrl = `https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/${pokemon.id}.png`; - - const opacitySlider = _createOpacitySliderDiv(cardId, _wrapperDivPositions[cardId].opacity, opacityRangeMin, opacityRangeMax) - const typeEffectivenessHTML = _createTypeEffectivenessWrapper(pokemon.typeEffectiveness) + + const opacitySlider = _createOpacitySliderDiv( + cardId, + _wrapperDivPositions[cardId].opacity, + opacityRangeMin, + opacityRangeMax, + ); + const typeEffectivenessHTML = _createTypeEffectivenessWrapper( + pokemon.typeEffectiveness, + ); let cardHTML = `

@@ -15,13 +22,13 @@ function _createPokemonCardDiv(cardclass, cardId, pokemon) {
- ${/* Displays the 3 type effectiveness segemtns (weaknesses, resistances, immunities). */''} + ${/* Displays the 3 type effectiveness segemtns (weaknesses, resistances, immunities). */ ""} ${typeEffectivenessHTML}
-
+
Ability: ${pokemon.ability.name} ${_createTooltipDiv(pokemon.ability.description)}
@@ -38,144 +45,159 @@ function _createPokemonCardDiv(cardclass, cardId, pokemon) { SPE: ${pokemon.ivs[Stat["SPD"]]}, SPD: ${pokemon.ivs[Stat["SPDEF"]]}, SPA: ${pokemon.ivs[Stat["SPATK"]]}
- ${(_weather.type && _weather.turnsLeft) ? - `
_weather: ${_weather.type}, Turns Left: ${_weather.turnsLeft}
` - : ''} + ${ + _weather.type && _weather.turnsLeft + ? `
_weather: ${_weather.type}, Turns Left: ${_weather.turnsLeft}
` + : "" + }
- ` + `; - const cardObj = {} + const cardObj = {}; cardObj.html = cardHTML; cardObj.slider = opacitySlider.id; - return cardObj + return cardObj; } // Current values: weaknesses, resistances, immunities function _createTypeEffectivenessWrapper(typeEffectivenesses) { - let typesHTML = ` - ${Object.keys(typeEffectivenesses).map((effectiveness) => { - if (typeEffectivenesses[effectiveness].length === 0) return '' - const tooltipMap = { - weaknesses: "Weak to", - resistances: "Resists", - immunities: "Immune to" - }; - return ` + let typesHTML = ` + ${Object.keys(typeEffectivenesses) + .map((effectiveness) => { + if (typeEffectivenesses[effectiveness].length === 0) return ""; + const tooltipMap = { + weaknesses: "Weak to", + resistances: "Resists", + immunities: "Immune to", + }; + return `
- ${typeEffectivenesses[effectiveness].map((type, counter) => ` - ${/* The current html structure requires to wrap every third element in a div, the implementation here gets a bit ugly. */''} - ${ ((counter + 1) % 3 === 1) ? - `
` - : ''} + ${typeEffectivenesses[effectiveness] + .map( + (type, counter) => ` + ${/* The current html structure requires to wrap every third element in a div, the implementation here gets a bit ugly. */ ""} + ${(counter + 1) % 3 === 1 ? `
` : ""}
- ${/* Closing div, after every third element or when the arrays max length is reached. */''} - ${ ((counter + 1) % 3 === 0) || ((counter + 1) === typeEffectivenesses[effectiveness].length) ? - `
` - : ''} - `).join('')} + ${/* Closing div, after every third element or when the arrays max length is reached. */ ""} + ${ + (counter + 1) % 3 === 0 || + counter + 1 === typeEffectivenesses[effectiveness].length + ? `
` + : "" + } + `, + ) + .join("")} ${_createTooltipDiv(tooltipMap[effectiveness] || "")}
- `}).join('')} - ` + `; + }) + .join("")} + `; - return typesHTML + return typesHTML; } -function _createOpacitySliderDiv(divId, initialValue = "100", min = "10", max = "100") { - let result = {}; - result.id = `${divId}-slider` +function _createOpacitySliderDiv( + divId, + initialValue = "100", + min = "10", + max = "100", +) { + let result = {}; + result.id = `${divId}-slider`; - result.html = ` + result.html = `
Opacity:
- ` - return result + `; + return result; } function _updateWrapperDivPositions(oldDiv, divId) { - _wrapperDivPositions[divId].top = oldDiv.style.top; - _wrapperDivPositions[divId].left = oldDiv.style.left; + _wrapperDivPositions[divId].top = oldDiv.style.top; + _wrapperDivPositions[divId].left = oldDiv.style.left; } function _createWrapperDiv(divId) { - const oldDiv = document.getElementById(divId) - if (oldDiv) { - _updateWrapperDivPositions(oldDiv, divId) - oldDiv.remove(); - } - const newDiv = divId === 'enemies' ? _createEnemyDiv() : _createAlliesDiv() - _enableDragElement(newDiv) - newDiv.style.top = _wrapperDivPositions[divId].top - newDiv.style.left = _wrapperDivPositions[divId].left - newDiv.style.opacity = "" + (Number(_wrapperDivPositions[divId].opacity) / 100) - return newDiv; + const oldDiv = document.getElementById(divId); + if (oldDiv) { + _updateWrapperDivPositions(oldDiv, divId); + oldDiv.remove(); + } + const newDiv = divId === "enemies" ? _createEnemyDiv() : _createAlliesDiv(); + _enableDragElement(newDiv); + newDiv.style.top = _wrapperDivPositions[divId].top; + newDiv.style.left = _wrapperDivPositions[divId].left; + newDiv.style.opacity = "" + Number(_wrapperDivPositions[divId].opacity) / 100; + return newDiv; } function _createArrowButtonsDiv(divId, upString, downString) { - let result = {}; - result.idUp = `${divId}-up` - result.idDown = `${divId}-down` - result.html = ` + let result = {}; + result.idUp = `${divId}-up`; + result.idDown = `${divId}-down`; + result.html = `
- ` - return result + `; + return result; } function _createTooltipDiv(tip) { - const tooltipHtml = ` + const tooltipHtml = `
${tip}
- ` - return tooltipHtml + `; + return tooltipHtml; } function _createEnemyDiv() { - const divId = "enemies" - const div = document.createElement("div") - div.className = `${divId}-team` - div.id = divId - _enableDragElement(div) - document.body.appendChild(div) - return div + const divId = "enemies"; + const div = document.createElement("div"); + div.className = `${divId}-team`; + div.id = divId; + _enableDragElement(div); + document.body.appendChild(div); + return div; } function _createAlliesDiv() { - const divId = "allies" - const div = document.createElement("div") - div.className = `${divId}-team` - div.id = divId - _enableDragElement(div) - document.body.appendChild(div) - return div + const divId = "allies"; + const div = document.createElement("div"); + div.className = `${divId}-team`; + div.id = divId; + _enableDragElement(div); + document.body.appendChild(div); + return div; } function _updatePokemonArray(oldParty, newParty) { - if (!_.isEqual(oldParty, newParty)) { - oldParty = newParty - } + if (!_.isEqual(oldParty, newParty)) { + oldParty = newParty; + } } let _wrapperDivPositions = { - 'enemies': { - 'top' : '0', - 'left': '0', - 'opacity': '100' - }, - 'allies': { - 'top': '0', - 'left': '0', - 'opacity': '100' - } -} + enemies: { + top: "0", + left: "0", + opacity: "100", + }, + allies: { + top: "0", + left: "0", + opacity: "100", + }, +}; let _currentEnemyPage = 0; let _currentAllyPage = 0; @@ -184,96 +206,99 @@ let _alliesPokemon = []; let _weather = {}; class HttpUtils { - - static updateFromMessage(message) { - if (message.type === 'UPDATE_ENEMIES_DIV') { - if (!_.isEqual(_enemiesPokemon, message.pokemon)) { - _enemiesPokemon = message.pokemon - } - } - else { - if (!_.isEqual(_alliesPokemon, message.pokemon)) { - _alliesPokemon = message.pokemon - } - } - _weather = message.weather; - if (_weather.turnsLeft === 0) _weather.turnsLeft = 'N/A' - } - - static createTopBannerDiv() { - const div = document.createElement('div') - div.textContent = 'RogueDex is running!' - div.classList.add('text-base') - div.classList.add('running-status') - document.body.insertBefore(div, document.body.firstChild) - } - - static createCardsDiv(divId) { - let newDiv = _createWrapperDiv(divId) - let pokemon = {} - if (divId === 'enemies') { - if (_currentEnemyPage >= _enemiesPokemon.length) _currentEnemyPage = 0 - pokemon = _enemiesPokemon[_currentEnemyPage] - } - else { - if (_currentAllyPage >= _alliesPokemon.length) _currentAllyPage = 0 - pokemon = _alliesPokemon[_currentAllyPage] - } - - let divClass = `${divId}-team` - - const cardObj = _createPokemonCardDiv(divClass, divId, pokemon) - const buttonsObj = _createArrowButtonsDiv(divId, "↑", "↓") - - /* + static updateFromMessage(message) { + if (message.type === "UPDATE_ENEMIES_DIV") { + if (!_.isEqual(_enemiesPokemon, message.pokemon)) { + _enemiesPokemon = message.pokemon; + } + } else { + if (!_.isEqual(_alliesPokemon, message.pokemon)) { + _alliesPokemon = message.pokemon; + } + } + _weather = message.weather; + if (_weather.turnsLeft === 0) _weather.turnsLeft = "N/A"; + } + + static createTopBannerDiv() { + const div = document.createElement("div"); + div.textContent = "RogueDex is running!"; + div.classList.add("text-base"); + div.classList.add("running-status"); + document.body.insertBefore(div, document.body.firstChild); + } + + static createCardsDiv(divId) { + let newDiv = _createWrapperDiv(divId); + let pokemon = {}; + if (divId === "enemies") { + if (_currentEnemyPage >= _enemiesPokemon.length) _currentEnemyPage = 0; + pokemon = _enemiesPokemon[_currentEnemyPage]; + } else { + if (_currentAllyPage >= _alliesPokemon.length) _currentAllyPage = 0; + pokemon = _alliesPokemon[_currentAllyPage]; + } + + let divClass = `${divId}-team`; + + const cardObj = _createPokemonCardDiv(divClass, divId, pokemon); + const buttonsObj = _createArrowButtonsDiv(divId, "↑", "↓"); + + /* Assemble the wrapper DIVs inner html. */ - const cardsHTML = ` + const cardsHTML = ` ${buttonsObj.html} ${cardObj.html} - ` + `; - /* + /* Insert the parsed nodes into the DOM tree just inside the element, before its first child. "newDiv.innerHTML = cardsHTML" also works instead of using ".insertAdjacentHTML()" */ - newDiv.insertAdjacentHTML("afterbegin", cardsHTML) - document.body.appendChild(newDiv) + newDiv.insertAdjacentHTML("afterbegin", cardsHTML); + document.body.appendChild(newDiv); - /* + /* Add event listeners after all elements are properly added to the DOM and initialized. */ - document.getElementById(cardObj.slider).addEventListener('input', _changeOpacity) - document.getElementById(buttonsObj.idUp).addEventListener('click', _changePage) - document.getElementById(buttonsObj.idDown).addEventListener('click', _changePage) - - return newDiv - } - - static createWrapperDivs() { - try { - ['allies', 'enemies'].forEach((divId) => { - const div = document.createElement("div") - div.className = `${divId}-team` - div.id = divId - _enableDragElement(div) - document.body.appendChild(div) - }) - } catch (e) { - console.error("Error while creating wrapper divs: ", e) - } - } - - static deleteWrapperDivs() { - try { - ['allies', 'enemies'].forEach((divId) => { - const div = document.getElementById(divId) - if (div === null) return - _updateWrapperDivPositions(div, divId) - document.body.removeChild(div) - }) - } catch (e) { - console.error("Error while deleting wrapper divs: ", e) - } - } -} \ No newline at end of file + document + .getElementById(cardObj.slider) + .addEventListener("input", _changeOpacity); + document + .getElementById(buttonsObj.idUp) + .addEventListener("click", _changePage); + document + .getElementById(buttonsObj.idDown) + .addEventListener("click", _changePage); + + return newDiv; + } + + static createWrapperDivs() { + try { + ["allies", "enemies"].forEach((divId) => { + const div = document.createElement("div"); + div.className = `${divId}-team`; + div.id = divId; + _enableDragElement(div); + document.body.appendChild(div); + }); + } catch (e) { + console.error("Error while creating wrapper divs: ", e); + } + } + + static deleteWrapperDivs() { + try { + ["allies", "enemies"].forEach((divId) => { + const div = document.getElementById(divId); + if (div === null) return; + _updateWrapperDivPositions(div, divId); + document.body.removeChild(div); + }); + } catch (e) { + console.error("Error while deleting wrapper divs: ", e); + } + } +} diff --git a/libs/localstorageutils.js b/libs/localstorageutils.js index aacb0f5..1da9d9a 100644 --- a/libs/localstorageutils.js +++ b/libs/localstorageutils.js @@ -1,29 +1,35 @@ -const saveKey = 'x0i2O7WRiANTqPmZ' -let currentSessionData = {} +const saveKey = "x0i2O7WRiANTqPmZ"; +let currentSessionData = {}; class LocalStorageUtils { - static slotId = -1 + static slotId = -1; - static getCurrentSessionData(localStorage) { - Object.keys(localStorage).some((key) => { - if ((this.slotId > 0 && key.includes(`sessionData${this.slotId}`)) || key.includes('sessionData')) { - currentSessionData = localStorage.getItem(key) - } - }) - return JSON.parse(CryptoJS.AES.decrypt(currentSessionData, saveKey).toString(CryptoJS.enc.Utf8)) - } + static getCurrentSessionData(localStorage) { + Object.keys(localStorage).some((key) => { + if ( + (this.slotId > 0 && key.includes(`sessionData${this.slotId}`)) || + key.includes("sessionData") + ) { + currentSessionData = localStorage.getItem(key); + } + }); + return JSON.parse( + CryptoJS.AES.decrypt(currentSessionData, saveKey).toString( + CryptoJS.enc.Utf8, + ), + ); + } - static cleanSessionData() { - let removeKeys = [] - Object.keys(localStorage).some((key) => { - if (key.includes('sessionData')) - removeKeys.push(key) - }) - console.log("Found the following keys in localStorage:", removeKeys) - Object.keys(removeKeys).some((key) => { - console.log("Removing key", removeKeys[key]) - localStorage.removeItem(removeKeys[key]) - }) - return removeKeys.length > 0 - } -} \ No newline at end of file + static cleanSessionData() { + let removeKeys = []; + Object.keys(localStorage).some((key) => { + if (key.includes("sessionData")) removeKeys.push(key); + }); + console.log("Found the following keys in localStorage:", removeKeys); + Object.keys(removeKeys).some((key) => { + console.log("Removing key", removeKeys[key]); + localStorage.removeItem(removeKeys[key]); + }); + return removeKeys.length > 0; + } +} diff --git a/libs/lodash.js b/libs/lodash.js index 89c77de..ae985d5 100644 --- a/libs/lodash.js +++ b/libs/lodash.js @@ -7,74 +7,81 @@ * Based on Underscore.js 1.8.3 * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors */ -;(function() { - +(function () { /** Used as a safe reference for `undefined` in pre-ES5 environments. */ var undefined; /** Used as the semantic version number. */ - var VERSION = '4.17.15'; + var VERSION = "4.17.15"; /** Error message constants. */ - var FUNC_ERROR_TEXT = 'Expected a function'; + var FUNC_ERROR_TEXT = "Expected a function"; /** Used to compose bitmasks for value comparisons. */ var COMPARE_PARTIAL_FLAG = 1, - COMPARE_UNORDERED_FLAG = 2; + COMPARE_UNORDERED_FLAG = 2; /** Used to compose bitmasks for function metadata. */ var WRAP_BIND_FLAG = 1, - WRAP_PARTIAL_FLAG = 32; + WRAP_PARTIAL_FLAG = 32; /** Used as references for various `Number` constants. */ var INFINITY = 1 / 0, - MAX_SAFE_INTEGER = 9007199254740991; + MAX_SAFE_INTEGER = 9007199254740991; /** `Object#toString` result references. */ - var argsTag = '[object Arguments]', - arrayTag = '[object Array]', - asyncTag = '[object AsyncFunction]', - boolTag = '[object Boolean]', - dateTag = '[object Date]', - errorTag = '[object Error]', - funcTag = '[object Function]', - genTag = '[object GeneratorFunction]', - numberTag = '[object Number]', - objectTag = '[object Object]', - proxyTag = '[object Proxy]', - regexpTag = '[object RegExp]', - stringTag = '[object String]'; + var argsTag = "[object Arguments]", + arrayTag = "[object Array]", + asyncTag = "[object AsyncFunction]", + boolTag = "[object Boolean]", + dateTag = "[object Date]", + errorTag = "[object Error]", + funcTag = "[object Function]", + genTag = "[object GeneratorFunction]", + numberTag = "[object Number]", + objectTag = "[object Object]", + proxyTag = "[object Proxy]", + regexpTag = "[object RegExp]", + stringTag = "[object String]"; /** Used to match HTML entities and HTML characters. */ var reUnescapedHtml = /[&<>"']/g, - reHasUnescapedHtml = RegExp(reUnescapedHtml.source); + reHasUnescapedHtml = RegExp(reUnescapedHtml.source); /** Used to detect unsigned integer values. */ var reIsUint = /^(?:0|[1-9]\d*)$/; /** Used to map characters to HTML entities. */ var htmlEscapes = { - '&': '&', - '<': '<', - '>': '>', - '"': '"', - "'": ''' + "&": "&", + "<": "<", + ">": ">", + '"': """, + "'": "'", }; /** Detect free variable `global` from Node.js. */ - var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; + var freeGlobal = + typeof global == "object" && global && global.Object === Object && global; /** Detect free variable `self`. */ - var freeSelf = typeof self == 'object' && self && self.Object === Object && self; + var freeSelf = + typeof self == "object" && self && self.Object === Object && self; /** Used as a reference to the global object. */ - var root = freeGlobal || freeSelf || Function('return this')(); + var root = freeGlobal || freeSelf || Function("return this")(); /** Detect free variable `exports`. */ - var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports; + var freeExports = + typeof exports == "object" && exports && !exports.nodeType && exports; /** Detect free variable `module`. */ - var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; + var freeModule = + freeExports && + typeof module == "object" && + module && + !module.nodeType && + module; /*--------------------------------------------------------------------------*/ @@ -104,9 +111,9 @@ */ function baseFindIndex(array, predicate, fromIndex, fromRight) { var length = array.length, - index = fromIndex + (fromRight ? 1 : -1); + index = fromIndex + (fromRight ? 1 : -1); - while ((fromRight ? index-- : ++index < length)) { + while (fromRight ? index-- : ++index < length) { if (predicate(array[index], index, array)) { return index; } @@ -122,7 +129,7 @@ * @returns {Function} Returns the new accessor function. */ function baseProperty(key) { - return function(object) { + return function (object) { return object == null ? undefined : object[key]; }; } @@ -135,7 +142,7 @@ * @returns {Function} Returns the new accessor function. */ function basePropertyOf(object) { - return function(key) { + return function (key) { return object == null ? undefined : object[key]; }; } @@ -154,9 +161,9 @@ * @returns {*} Returns the accumulated value. */ function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) { - eachFunc(collection, function(value, index, collection) { + eachFunc(collection, function (value, index, collection) { accumulator = initAccum - ? (initAccum = false, value) + ? ((initAccum = false), value) : iteratee(accumulator, value, index, collection); }); return accumulator; @@ -173,7 +180,7 @@ * @returns {Object} Returns the array of property values. */ function baseValues(object, props) { - return baseMap(props, function(key) { + return baseMap(props, function (key) { return object[key]; }); } @@ -196,7 +203,7 @@ * @returns {Function} Returns the new function. */ function overArg(func, transform) { - return function(arg) { + return function (arg) { return func(transform(arg)); }; } @@ -205,7 +212,7 @@ /** Used for built-in method references. */ var arrayProto = Array.prototype, - objectProto = Object.prototype; + objectProto = Object.prototype; /** Used to check objects for own properties. */ var hasOwnProperty = objectProto.hasOwnProperty; @@ -225,12 +232,12 @@ /** Built-in value references. */ var objectCreate = Object.create, - propertyIsEnumerable = objectProto.propertyIsEnumerable; + propertyIsEnumerable = objectProto.propertyIsEnumerable; /* Built-in method references for those with the same name as other `lodash` methods. */ var nativeIsFinite = root.isFinite, - nativeKeys = overArg(Object.keys, Object), - nativeMax = Math.max; + nativeKeys = overArg(Object.keys, Object), + nativeMax = Math.max; /*------------------------------------------------------------------------*/ @@ -352,9 +359,7 @@ * // => true */ function lodash(value) { - return value instanceof LodashWrapper - ? value - : new LodashWrapper(value); + return value instanceof LodashWrapper ? value : new LodashWrapper(value); } /** @@ -365,9 +370,9 @@ * @param {Object} proto The object to inherit from. * @returns {Object} Returns the new object. */ - var baseCreate = (function() { + var baseCreate = (function () { function object() {} - return function(proto) { + return function (proto) { if (!isObject(proto)) { return {}; } @@ -375,11 +380,11 @@ return objectCreate(proto); } object.prototype = proto; - var result = new object; + var result = new object(); object.prototype = undefined; return result; }; - }()); + })(); /** * The base constructor for creating `lodash` wrapper objects. @@ -411,8 +416,10 @@ */ function assignValue(object, key, value) { var objValue = object[key]; - if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || - (value === undefined && !(key in object))) { + if ( + !(hasOwnProperty.call(object, key) && eq(objValue, value)) || + (value === undefined && !(key in object)) + ) { baseAssignValue(object, key, value); } } @@ -441,10 +448,12 @@ * @returns {number|Object} Returns the timer id or timeout object. */ function baseDelay(func, wait, args) { - if (typeof func != 'function') { + if (typeof func != "function") { throw new TypeError(FUNC_ERROR_TEXT); } - return setTimeout(function() { func.apply(undefined, args); }, wait); + return setTimeout(function () { + func.apply(undefined, args); + }, wait); } /** @@ -468,7 +477,7 @@ */ function baseEvery(collection, predicate) { var result = true; - baseEach(collection, function(value, index, collection) { + baseEach(collection, function (value, index, collection) { result = !!predicate(value, index, collection); return result; }); @@ -487,18 +496,20 @@ */ function baseExtremum(array, iteratee, comparator) { var index = -1, - length = array.length; + length = array.length; while (++index < length) { var value = array[index], - current = iteratee(value); - - if (current != null && (computed === undefined - ? (current === current && !false) - : comparator(current, computed) - )) { + current = iteratee(value); + + if ( + current != null && + (computed === undefined + ? current === current && !false + : comparator(current, computed)) + ) { var computed = current, - result = value; + result = value; } } return result; @@ -514,7 +525,7 @@ */ function baseFilter(collection, predicate) { var result = []; - baseEach(collection, function(value, index, collection) { + baseEach(collection, function (value, index, collection) { if (predicate(value, index, collection)) { result.push(value); } @@ -535,7 +546,7 @@ */ function baseFlatten(array, depth, predicate, isStrict, result) { var index = -1, - length = array.length; + length = array.length; predicate || (predicate = isFlattenable); result || (result = []); @@ -591,7 +602,7 @@ * @returns {Array} Returns the function names. */ function baseFunctions(object, props) { - return baseFilter(props, function(key) { + return baseFilter(props, function (key) { return isFunction(object[key]); }); } @@ -658,10 +669,21 @@ if (value === other) { return true; } - if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) { + if ( + value == null || + other == null || + (!isObjectLike(value) && !isObjectLike(other)) + ) { return value !== value && other !== other; } - return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack); + return baseIsEqualDeep( + value, + other, + bitmask, + customizer, + baseIsEqual, + stack, + ); } /** @@ -678,24 +700,31 @@ * @param {Object} [stack] Tracks traversed `object` and `other` objects. * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. */ - function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) { + function baseIsEqualDeep( + object, + other, + bitmask, + customizer, + equalFunc, + stack, + ) { var objIsArr = isArray(object), - othIsArr = isArray(other), - objTag = objIsArr ? arrayTag : baseGetTag(object), - othTag = othIsArr ? arrayTag : baseGetTag(other); + othIsArr = isArray(other), + objTag = objIsArr ? arrayTag : baseGetTag(object), + othTag = othIsArr ? arrayTag : baseGetTag(other); objTag = objTag == argsTag ? objectTag : objTag; othTag = othTag == argsTag ? objectTag : othTag; var objIsObj = objTag == objectTag, - othIsObj = othTag == objectTag, - isSameTag = objTag == othTag; + othIsObj = othTag == objectTag, + isSameTag = objTag == othTag; stack || (stack = []); - var objStack = find(stack, function(entry) { + var objStack = find(stack, function (entry) { return entry[0] == object; }); - var othStack = find(stack, function(entry) { + var othStack = find(stack, function (entry) { return entry[0] == other; }); if (objStack && othStack) { @@ -704,21 +733,35 @@ stack.push([object, other]); stack.push([other, object]); if (isSameTag && !objIsObj) { - var result = (objIsArr) + var result = objIsArr ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) - : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); + : equalByTag( + object, + other, + objTag, + bitmask, + customizer, + equalFunc, + stack, + ); stack.pop(); return result; } if (!(bitmask & COMPARE_PARTIAL_FLAG)) { - var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'), - othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__'); + 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; - - var result = equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); + othUnwrapped = othIsWrapped ? other.value() : other; + + var result = equalFunc( + objUnwrapped, + othUnwrapped, + bitmask, + customizer, + stack, + ); stack.pop(); return result; } @@ -726,7 +769,14 @@ if (!isSameTag) { return false; } - var result = equalObjects(object, other, bitmask, customizer, equalFunc, stack); + var result = equalObjects( + object, + other, + bitmask, + customizer, + equalFunc, + stack, + ); stack.pop(); return result; } @@ -750,13 +800,13 @@ * @returns {Function} Returns the iteratee. */ function baseIteratee(func) { - if (typeof func == 'function') { + if (typeof func == "function") { return func; } if (func == null) { return identity; } - return (typeof func == 'object' ? baseMatches : baseProperty)(func); + return (typeof func == "object" ? baseMatches : baseProperty)(func); } /** @@ -782,9 +832,9 @@ */ function baseMap(collection, iteratee) { var index = -1, - result = isArrayLike(collection) ? Array(collection.length) : []; + result = isArrayLike(collection) ? Array(collection.length) : []; - baseEach(collection, function(value, key, collection) { + baseEach(collection, function (value, key, collection) { result[++index] = iteratee(value, key, collection); }); return result; @@ -799,7 +849,7 @@ */ function baseMatches(source) { var props = nativeKeys(source); - return function(object) { + return function (object) { var length = props.length; if (object == null) { return !length; @@ -807,9 +857,16 @@ object = Object(object); while (length--) { var key = props[length]; - if (!(key in object && - baseIsEqual(source[key], object[key], COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG) - )) { + if ( + !( + key in object && + baseIsEqual( + source[key], + object[key], + COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, + ) + ) + ) { return false; } } @@ -828,12 +885,16 @@ */ function basePick(object, props) { object = Object(object); - return reduce(props, function(result, key) { - if (key in object) { - result[key] = object[key]; - } - return result; - }, {}); + return reduce( + props, + function (result, key) { + if (key in object) { + result[key] = object[key]; + } + return result; + }, + {}, + ); } /** @@ -845,7 +906,7 @@ * @returns {Function} Returns the new function. */ function baseRest(func, start) { - return setToString(overRest(func, start, identity), func + ''); + return setToString(overRest(func, start, identity), func + ""); } /** @@ -859,16 +920,16 @@ */ function baseSlice(array, start, end) { var index = -1, - length = array.length; + length = array.length; if (start < 0) { - start = -start > length ? 0 : (length + start); + start = -start > length ? 0 : length + start; } end = end > length ? length : end; if (end < 0) { end += length; } - length = start > end ? 0 : ((end - start) >>> 0); + length = start > end ? 0 : (end - start) >>> 0; start >>>= 0; var result = Array(length); @@ -902,7 +963,7 @@ function baseSome(collection, predicate) { var result; - baseEach(collection, function(value, index, collection) { + baseEach(collection, function (value, index, collection) { result = predicate(value, index, collection); return !result; }); @@ -921,9 +982,16 @@ */ function baseWrapperValue(value, actions) { var result = value; - return reduce(actions, function(result, action) { - return action.func.apply(action.thisArg, arrayPush([result], action.args)); - }, result); + return reduce( + actions, + function (result, action) { + return action.func.apply( + action.thisArg, + arrayPush([result], action.args), + ); + }, + result, + ); } /** @@ -937,27 +1005,39 @@ function compareAscending(value, other) { if (value !== other) { var valIsDefined = value !== undefined, - valIsNull = value === null, - valIsReflexive = value === value, - valIsSymbol = false; + valIsNull = value === null, + valIsReflexive = value === value, + valIsSymbol = false; var othIsDefined = other !== undefined, - othIsNull = other === null, - othIsReflexive = other === other, - othIsSymbol = false; - - if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) || - (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) || - (valIsNull && othIsDefined && othIsReflexive) || - (!valIsDefined && othIsReflexive) || - !valIsReflexive) { + othIsNull = other === null, + othIsReflexive = other === other, + othIsSymbol = false; + + 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) { + if ( + (!valIsNull && !valIsSymbol && !othIsSymbol && value < other) || + (othIsSymbol && + valIsDefined && + valIsReflexive && + !valIsNull && + !valIsSymbol) || + (othIsNull && valIsDefined && valIsReflexive) || + (!othIsDefined && valIsReflexive) || + !othIsReflexive + ) { return -1; } } @@ -979,7 +1059,7 @@ object || (object = {}); var index = -1, - length = props.length; + length = props.length; while (++index < length) { var key = props[index]; @@ -1008,14 +1088,15 @@ * @returns {Function} Returns the new assigner function. */ function createAssigner(assigner) { - return baseRest(function(object, sources) { + return baseRest(function (object, sources) { var index = -1, - length = sources.length, - customizer = length > 1 ? sources[length - 1] : undefined; + length = sources.length, + customizer = length > 1 ? sources[length - 1] : undefined; - customizer = (assigner.length > 3 && typeof customizer == 'function') - ? (length--, customizer) - : undefined; + customizer = + assigner.length > 3 && typeof customizer == "function" + ? (length--, customizer) + : undefined; object = Object(object); while (++index < length) { @@ -1037,7 +1118,7 @@ * @returns {Function} Returns the new base function. */ function createBaseEach(eachFunc, fromRight) { - return function(collection, iteratee) { + return function (collection, iteratee) { if (collection == null) { return collection; } @@ -1045,10 +1126,10 @@ return eachFunc(collection, iteratee); } var length = collection.length, - index = fromRight ? length : -1, - iterable = Object(collection); + index = fromRight ? length : -1, + iterable = Object(collection); - while ((fromRight ? index-- : ++index < length)) { + while (fromRight ? index-- : ++index < length) { if (iteratee(iterable[index], index, iterable) === false) { break; } @@ -1065,11 +1146,11 @@ * @returns {Function} Returns the new base function. */ function createBaseFor(fromRight) { - return function(object, iteratee, keysFunc) { + return function (object, iteratee, keysFunc) { var index = -1, - iterable = Object(object), - props = keysFunc(object), - length = props.length; + iterable = Object(object), + props = keysFunc(object), + length = props.length; while (length--) { var key = props[fromRight ? length : ++index]; @@ -1090,13 +1171,13 @@ * @returns {Function} Returns the new wrapped function. */ function createCtor(Ctor) { - return function() { + return function () { // Use a `switch` statement to work with class constructors. See // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist // for more details. var args = arguments; var thisBinding = baseCreate(Ctor.prototype), - result = Ctor.apply(thisBinding, args); + result = Ctor.apply(thisBinding, args); // Mimic the constructor's `return` behavior. // See https://es5.github.io/#x13.2.2 for more details. @@ -1112,15 +1193,19 @@ * @returns {Function} Returns the new find function. */ function createFind(findIndexFunc) { - return function(collection, predicate, fromIndex) { + return function (collection, predicate, fromIndex) { var iterable = Object(collection); if (!isArrayLike(collection)) { var iteratee = baseIteratee(predicate, 3); collection = keys(collection); - predicate = function(key) { return iteratee(iterable[key], key, iterable); }; + predicate = function (key) { + return iteratee(iterable[key], key, iterable); + }; } var index = findIndexFunc(collection, predicate, fromIndex); - return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined; + return index > -1 + ? iterable[iteratee ? collection[index] : index] + : undefined; }; } @@ -1137,19 +1222,19 @@ * @returns {Function} Returns the new wrapped function. */ function createPartial(func, bitmask, thisArg, partials) { - if (typeof func != 'function') { + if (typeof func != "function") { throw new TypeError(FUNC_ERROR_TEXT); } var isBind = bitmask & WRAP_BIND_FLAG, - Ctor = createCtor(func); + Ctor = createCtor(func); function wrapper() { var argsIndex = -1, - argsLength = arguments.length, - leftIndex = -1, - leftLength = partials.length, - args = Array(leftLength + argsLength), - fn = (this && this !== root && this instanceof wrapper) ? Ctor : func; + argsLength = arguments.length, + leftIndex = -1, + leftLength = partials.length, + args = Array(leftLength + argsLength), + fn = this && this !== root && this instanceof wrapper ? Ctor : func; while (++leftIndex < leftLength) { args[leftIndex] = partials[leftIndex]; @@ -1177,20 +1262,20 @@ */ function equalArrays(array, other, bitmask, customizer, equalFunc, stack) { var isPartial = bitmask & COMPARE_PARTIAL_FLAG, - arrLength = array.length, - othLength = other.length; + arrLength = array.length, + othLength = other.length; if (arrLength != othLength && !(isPartial && othLength > arrLength)) { return false; } var index = -1, - result = true, - seen = (bitmask & COMPARE_UNORDERED_FLAG) ? [] : undefined; + result = true, + seen = bitmask & COMPARE_UNORDERED_FLAG ? [] : undefined; // Ignore non-index properties. while (++index < arrLength) { var arrValue = array[index], - othValue = other[index]; + othValue = other[index]; var compared; if (compared !== undefined) { @@ -1202,19 +1287,26 @@ } // Recursively compare arrays (susceptible to call stack limits). if (seen) { - if (!baseSome(other, function(othValue, othIndex) { - if (!indexOf(seen, othIndex) && - (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { - return seen.push(othIndex); - } - })) { + if ( + !baseSome(other, function (othValue, othIndex) { + if ( + !indexOf(seen, othIndex) && + (arrValue === othValue || + equalFunc(arrValue, othValue, bitmask, customizer, stack)) + ) { + return seen.push(othIndex); + } + }) + ) { result = false; break; } - } else if (!( - arrValue === othValue || - equalFunc(arrValue, othValue, bitmask, customizer, stack) - )) { + } else if ( + !( + arrValue === othValue || + equalFunc(arrValue, othValue, bitmask, customizer, stack) + ) + ) { result = false; break; } @@ -1239,9 +1331,16 @@ * @param {Object} stack Tracks traversed `object` and `other` objects. * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. */ - function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) { + function equalByTag( + object, + other, + tag, + bitmask, + customizer, + equalFunc, + stack, + ) { switch (tag) { - case boolTag: case dateTag: case numberTag: @@ -1257,8 +1356,7 @@ // Coerce regexes to strings and treat strings, primitives and objects, // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring // for more details. - return object == (other + ''); - + return object == other + ""; } return false; } @@ -1278,10 +1376,10 @@ */ function equalObjects(object, other, bitmask, customizer, equalFunc, stack) { var isPartial = bitmask & COMPARE_PARTIAL_FLAG, - objProps = keys(object), - objLength = objProps.length, - othProps = keys(other), - othLength = othProps.length; + objProps = keys(object), + objLength = objProps.length, + othProps = keys(other), + othLength = othProps.length; if (objLength != othLength && !isPartial) { return false; @@ -1299,28 +1397,37 @@ while (++index < objLength) { key = objProps[index]; var objValue = object[key], - othValue = other[key]; + othValue = other[key]; var compared; // Recursively compare objects (susceptible to call stack limits). - if (!(compared === undefined - ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack)) - : compared - )) { + if ( + !(compared === undefined + ? objValue === othValue || + equalFunc(objValue, othValue, bitmask, customizer, stack) + : compared) + ) { result = false; break; } - skipCtor || (skipCtor = key == 'constructor'); + skipCtor || (skipCtor = key == "constructor"); } if (result && !skipCtor) { var objCtor = object.constructor, - othCtor = other.constructor; + othCtor = other.constructor; // Non `Object` object instances with different constructors are not equal. - if (objCtor != othCtor && - ('constructor' in object && 'constructor' in other) && - !(typeof objCtor == 'function' && objCtor instanceof objCtor && - typeof othCtor == 'function' && othCtor instanceof othCtor)) { + if ( + objCtor != othCtor && + "constructor" in object && + "constructor" in other && + !( + typeof objCtor == "function" && + objCtor instanceof objCtor && + typeof othCtor == "function" && + othCtor instanceof othCtor + ) + ) { result = false; } } @@ -1335,7 +1442,7 @@ * @returns {Function} Returns the new function. */ function flatRest(func) { - return setToString(overRest(func, undefined, flatten), func + ''); + return setToString(overRest(func, undefined, flatten), func + ""); } /** @@ -1361,10 +1468,13 @@ 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); + return ( + !!length && + (type == "number" || (type != "symbol" && reIsUint.test(value))) && + value > -1 && + value % 1 == 0 && + value < length + ); } /** @@ -1382,10 +1492,11 @@ return false; } var type = typeof index; - if (type == 'number' - ? (isArrayLike(object) && isIndex(index, object.length)) - : (type == 'string' && index in object) - ) { + if ( + type == "number" + ? isArrayLike(object) && isIndex(index, object.length) + : type == "string" && index in object + ) { return eq(object[index], value); } return false; @@ -1431,12 +1542,12 @@ * @returns {Function} Returns the new function. */ function overRest(func, start, transform) { - start = nativeMax(start === undefined ? (func.length - 1) : start, 0); - return function() { + start = nativeMax(start === undefined ? func.length - 1 : start, 0); + return function () { var args = arguments, - index = -1, - length = nativeMax(args.length - start, 0), - array = Array(length); + index = -1, + length = nativeMax(args.length - start, 0), + array = Array(length); while (++index < length) { array[index] = args[start + index]; @@ -1510,13 +1621,16 @@ return []; } var args = Array(length - 1), - array = arguments[0], - index = length; + array = arguments[0], + index = length; while (index--) { args[index - 1] = arguments[index]; } - return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1)); + return arrayPush( + isArray(array) ? copyArray(array) : [array], + baseFlatten(args, 1), + ); } /** @@ -1623,7 +1737,7 @@ * // => undefined */ function head(array) { - return (array && array.length) ? array[0] : undefined; + return array && array.length ? array[0] : undefined; } /** @@ -1651,17 +1765,17 @@ */ function indexOf(array, value, fromIndex) { var length = array == null ? 0 : array.length; - if (typeof fromIndex == 'number') { + if (typeof fromIndex == "number") { fromIndex = fromIndex < 0 ? nativeMax(length + fromIndex, 0) : fromIndex; } else { fromIndex = 0; } var index = (fromIndex || 0) - 1, - isReflexive = value === value; + isReflexive = value === value; while (++index < length) { var other = array[index]; - if ((isReflexive ? other === value : other !== other)) { + if (isReflexive ? other === value : other !== other) { return index; } } @@ -2096,7 +2210,13 @@ * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed) */ function reduce(collection, iteratee, accumulator) { - return baseReduce(collection, baseIteratee(iteratee), accumulator, arguments.length < 3, baseEach); + return baseReduce( + collection, + baseIteratee(iteratee), + accumulator, + arguments.length < 3, + baseEach, + ); } /** @@ -2202,11 +2322,21 @@ var index = 0; iteratee = baseIteratee(iteratee); - return baseMap(baseMap(collection, function(value, key, collection) { - return { 'value': value, 'index': index++, 'criteria': iteratee(value, key, collection) }; - }).sort(function(object, other) { - return compareAscending(object.criteria, other.criteria) || (object.index - other.index); - }), baseProperty('value')); + return baseMap( + baseMap(collection, function (value, key, collection) { + return { + value: value, + index: index++, + criteria: iteratee(value, key, collection), + }; + }).sort(function (object, other) { + return ( + compareAscending(object.criteria, other.criteria) || + object.index - other.index + ); + }), + baseProperty("value"), + ); } /*------------------------------------------------------------------------*/ @@ -2230,11 +2360,11 @@ */ function before(n, func) { var result; - if (typeof func != 'function') { + if (typeof func != "function") { throw new TypeError(FUNC_ERROR_TEXT); } n = toInteger(n); - return function() { + return function () { if (--n > 0) { result = func.apply(this, arguments); } @@ -2280,8 +2410,13 @@ * bound('hi'); * // => 'hi fred!' */ - var bind = baseRest(function(func, thisArg, partials) { - return createPartial(func, WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG, thisArg, partials); + var bind = baseRest(function (func, thisArg, partials) { + return createPartial( + func, + WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG, + thisArg, + partials, + ); }); /** @@ -2302,7 +2437,7 @@ * }, 'deferred'); * // => Logs 'deferred' after one millisecond. */ - var defer = baseRest(function(func, args) { + var defer = baseRest(function (func, args) { return baseDelay(func, 1, args); }); @@ -2325,7 +2460,7 @@ * }, 1000, 'later'); * // => Logs 'later' after one second. */ - var delay = baseRest(function(func, wait, args) { + var delay = baseRest(function (func, wait, args) { return baseDelay(func, toNumber(wait) || 0, args); }); @@ -2350,10 +2485,10 @@ * // => [1, 3, 5] */ function negate(predicate) { - if (typeof predicate != 'function') { + if (typeof predicate != "function") { throw new TypeError(FUNC_ERROR_TEXT); } - return function() { + return function () { var args = arguments; return !predicate.apply(this, args); }; @@ -2413,7 +2548,9 @@ if (!isObject(value)) { return value; } - return isArray(value) ? copyArray(value) : copyObject(value, nativeKeys(value)); + return isArray(value) + ? copyArray(value) + : copyObject(value, nativeKeys(value)); } /** @@ -2470,10 +2607,19 @@ * _.isArguments([1, 2, 3]); * // => false */ - var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) { - return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && - !propertyIsEnumerable.call(value, 'callee'); - }; + var isArguments = baseIsArguments( + (function () { + return arguments; + })(), + ) + ? baseIsArguments + : function (value) { + return ( + isObjectLike(value) && + hasOwnProperty.call(value, "callee") && + !propertyIsEnumerable.call(value, "callee") + ); + }; /** * Checks if `value` is classified as an `Array` object. @@ -2547,8 +2693,11 @@ * // => false */ function isBoolean(value) { - return value === true || value === false || - (isObjectLike(value) && baseGetTag(value) == boolTag); + return ( + value === true || + value === false || + (isObjectLike(value) && baseGetTag(value) == boolTag) + ); } /** @@ -2604,9 +2753,13 @@ * // => false */ function isEmpty(value) { - if (isArrayLike(value) && - (isArray(value) || isString(value) || - isFunction(value.splice) || isArguments(value))) { + if ( + isArrayLike(value) && + (isArray(value) || + isString(value) || + isFunction(value.splice) || + isArguments(value)) + ) { return !value.length; } return !nativeKeys(value).length; @@ -2671,7 +2824,7 @@ * // => false */ function isFinite(value) { - return typeof value == 'number' && nativeIsFinite(value); + return typeof value == "number" && nativeIsFinite(value); } /** @@ -2698,7 +2851,9 @@ // The use of `Object#toString` avoids issues with the `typeof` operator // in Safari 9 which returns 'object' for typed arrays and other constructors. var tag = baseGetTag(value); - return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; + return ( + tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag + ); } /** @@ -2728,8 +2883,12 @@ * // => false */ function isLength(value) { - return typeof value == 'number' && - value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; + return ( + typeof value == "number" && + value > -1 && + value % 1 == 0 && + value <= MAX_SAFE_INTEGER + ); } /** @@ -2759,7 +2918,7 @@ */ function isObject(value) { var type = typeof value; - return value != null && (type == 'object' || type == 'function'); + return value != null && (type == "object" || type == "function"); } /** @@ -2787,7 +2946,7 @@ * // => false */ function isObjectLike(value) { - return value != null && typeof value == 'object'; + return value != null && typeof value == "object"; } /** @@ -2873,8 +3032,10 @@ * // => false */ function isNumber(value) { - return typeof value == 'number' || - (isObjectLike(value) && baseGetTag(value) == numberTag); + return ( + typeof value == "number" || + (isObjectLike(value) && baseGetTag(value) == numberTag) + ); } /** @@ -2914,8 +3075,10 @@ * // => false */ function isString(value) { - return typeof value == 'string' || - (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag); + return ( + typeof value == "string" || + (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag) + ); } /** @@ -3044,10 +3207,10 @@ * // => '1,2,3' */ function toString(value) { - if (typeof value == 'string') { + if (typeof value == "string") { return value; } - return value == null ? '' : (value + ''); + return value == null ? "" : value + ""; } /*------------------------------------------------------------------------*/ @@ -3084,7 +3247,7 @@ * _.assign({ 'a': 0 }, new Foo, new Bar); * // => { 'a': 1, 'c': 3 } */ - var assign = createAssigner(function(object, source) { + var assign = createAssigner(function (object, source) { copyObject(source, nativeKeys(source), object); }); @@ -3119,7 +3282,7 @@ * _.assignIn({ 'a': 0 }, new Foo, new Bar); * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 } */ - var assignIn = createAssigner(function(object, source) { + var assignIn = createAssigner(function (object, source) { copyObject(source, nativeKeysIn(source), object); }); @@ -3183,7 +3346,7 @@ * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 }); * // => { 'a': 1, 'b': 2 } */ - var defaults = baseRest(function(object, sources) { + var defaults = baseRest(function (object, sources) { object = Object(object); var index = -1; @@ -3204,8 +3367,10 @@ var key = props[propsIndex]; var value = object[key]; - if (value === undefined || - (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) { + if ( + value === undefined || + (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key)) + ) { object[key] = source[key]; } } @@ -3317,7 +3482,7 @@ * _.pick(object, ['a', 'c']); * // => { 'a': 1, 'c': 3 } */ - var pick = flatRest(function(object, paths) { + var pick = flatRest(function (object, paths) { return object == null ? {} : basePick(object, paths); }); @@ -3420,7 +3585,7 @@ */ function escape(string) { string = toString(string); - return (string && reHasUnescapedHtml.test(string)) + return string && reHasUnescapedHtml.test(string) ? string.replace(reUnescapedHtml, escapeHtmlChar) : string; } @@ -3561,29 +3726,31 @@ */ function mixin(object, source, options) { var props = keys(source), - methodNames = baseFunctions(source, props); + methodNames = baseFunctions(source, props); - if (options == null && - !(isObject(source) && (methodNames.length || !props.length))) { + if ( + options == null && + !(isObject(source) && (methodNames.length || !props.length)) + ) { options = source; source = object; object = this; methodNames = baseFunctions(source, keys(source)); } - var chain = !(isObject(options) && 'chain' in options) || !!options.chain, - isFunc = isFunction(object); + var chain = !(isObject(options) && "chain" in options) || !!options.chain, + isFunc = isFunction(object); - baseEach(methodNames, function(methodName) { + baseEach(methodNames, function (methodName) { var func = source[methodName]; object[methodName] = func; if (isFunc) { - object.prototype[methodName] = function() { + object.prototype[methodName] = function () { var chainAll = this.__chain__; if (chain || chainAll) { var result = object(this.__wrapped__), - actions = result.__actions__ = copyArray(this.__actions__); + actions = (result.__actions__ = copyArray(this.__actions__)); - actions.push({ 'func': func, 'args': arguments, 'thisArg': object }); + actions.push({ func: func, args: arguments, thisArg: object }); result.__chain__ = chainAll; return result; } @@ -3674,7 +3841,7 @@ * // => undefined */ function max(array) { - return (array && array.length) + return array && array.length ? baseExtremum(array, identity, baseGt) : undefined; } @@ -3698,7 +3865,7 @@ * // => undefined */ function min(array) { - return (array && array.length) + return array && array.length ? baseExtremum(array, identity, baseLt) : undefined; } @@ -3782,15 +3949,19 @@ lodash.each = forEach; 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 }); + mixin( + lodash, + (function () { + var source = {}; + baseForOwn(lodash, function (func, methodName) { + if (!hasOwnProperty.call(lodash.prototype, methodName)) { + source[methodName] = func; + } + }); + return source; + })(), + { chain: false }, + ); /*------------------------------------------------------------------------*/ @@ -3804,30 +3975,53 @@ lodash.VERSION = VERSION; // Add `Array` methods to `lodash.prototype`. - baseEach(['pop', 'join', 'replace', 'reverse', 'split', 'push', 'shift', 'sort', 'splice', 'unshift'], function(methodName) { - var func = (/^(?:replace|split)$/.test(methodName) ? String.prototype : arrayProto)[methodName], - chainName = /^(?:push|sort|unshift)$/.test(methodName) ? 'tap' : 'thru', + baseEach( + [ + "pop", + "join", + "replace", + "reverse", + "split", + "push", + "shift", + "sort", + "splice", + "unshift", + ], + function (methodName) { + var func = ( + /^(?:replace|split)$/.test(methodName) ? String.prototype : arrayProto + )[methodName], + chainName = /^(?:push|sort|unshift)$/.test(methodName) ? "tap" : "thru", retUnwrapped = /^(?:pop|join|replace|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(value) { - return func.apply(isArray(value) ? value : [], args); - }); - }; - }); + 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 (value) { + return func.apply(isArray(value) ? value : [], args); + }); + }; + }, + ); // Add chain sequence methods to the `lodash` wrapper. - lodash.prototype.toJSON = lodash.prototype.valueOf = lodash.prototype.value = wrapperValue; + lodash.prototype.toJSON = + lodash.prototype.valueOf = + lodash.prototype.value = + wrapperValue; /*--------------------------------------------------------------------------*/ // Some AMD build optimizers, like r.js, check for condition patterns like: - if (typeof define == 'function' && typeof define.amd == 'object' && define.amd) { + if ( + typeof define == "function" && + typeof define.amd == "object" && + define.amd + ) { // Expose Lodash on the global object to prevent errors when Lodash is // loaded by a script tag in the presence of an AMD loader. // See http://requirejs.org/docs/errors.html#mismatch for more details. @@ -3836,7 +4030,7 @@ // Define as an anonymous module so, through path mapping, it can be // referenced as the "underscore" module. - define(function() { + define(function () { return lodash; }); } @@ -3846,9 +4040,8 @@ (freeModule.exports = lodash)._ = lodash; // Export for CommonJS support. freeExports._ = lodash; - } - else { + } else { // Export to the global object. root._ = lodash; } -}.call(this)); +}).call(this); diff --git a/libs/pokeapi.js b/libs/pokeapi.js index e0d1b66..d363e8c 100644 --- a/libs/pokeapi.js +++ b/libs/pokeapi.js @@ -1,61 +1,70 @@ class PokeApi { - static async getTypeEffectiveness(type) { - try { - const response = await fetch(`https://pokeapi.co/api/v2/type/${type}`); - const data = await response.json(); - return data.damage_relations; - } catch (error) { - console.error(`Error fetching type effectiveness for ${type}:`, error); - return null; - } - } + static async getTypeEffectiveness(type) { + try { + const response = await fetch(`https://pokeapi.co/api/v2/type/${type}`); + const data = await response.json(); + return data.damage_relations; + } catch (error) { + console.error(`Error fetching type effectiveness for ${type}:`, error); + return null; + } + } - static async getAbility(pokemonId, abilityIndex) { - try { - const pokemonInfo = await fetch(`https://pokeapi.co/api/v2/pokemon/${pokemonId}`); - const data = await pokemonInfo.json(); + static async getAbility(pokemonId, abilityIndex) { + try { + const pokemonInfo = await fetch( + `https://pokeapi.co/api/v2/pokemon/${pokemonId}`, + ); + const data = await pokemonInfo.json(); - const abilityLength = data.abilities.length + const abilityLength = data.abilities.length; - if (abilityIndex >= abilityLength) { - abilityIndex = abilityLength - 1 // Pokerogue uses a "None" ability as padding when pokémon have less than 3. - } - - const abilityName = data.abilities[abilityIndex].ability.name - const abilityInfo = await fetch(`https://pokeapi.co/api/v2/ability/${abilityName}`); - const abilityData = await abilityInfo.json(); - const description = abilityData.flavor_text_entries.find((entry) => entry.language.name === "en") || "No description found" - return { - 'name': abilityName.toUpperCase().replace('-', ' '), - 'description': description.flavor_text, - 'isHidden': data.abilities[abilityIndex].is_hidden - } - } catch (error) { - console.error('Error fetching Pokémons ability:', error); - return null; - } - } + if (abilityIndex >= abilityLength) { + abilityIndex = abilityLength - 1; // Pokerogue uses a "None" ability as padding when pokémon have less than 3. + } - static async getNature(nature) { - try { - const natureInfo = await fetch(`https://pokeapi.co/api/v2/nature/${nature}`) - const data = await natureInfo.json(); - } catch (error) { - console.error("Error fetching Nature details:", error) - return null; - } - } + const abilityName = data.abilities[abilityIndex].ability.name; + const abilityInfo = await fetch( + `https://pokeapi.co/api/v2/ability/${abilityName}`, + ); + const abilityData = await abilityInfo.json(); + const description = + abilityData.flavor_text_entries.find( + (entry) => entry.language.name === "en", + ) || "No description found"; + return { + name: abilityName.toUpperCase().replace("-", " "), + description: description.flavor_text, + isHidden: data.abilities[abilityIndex].is_hidden, + }; + } catch (error) { + console.error("Error fetching Pokémons ability:", error); + return null; + } + } - // Function to get Pokémon type - static async getPokemonType(id) { - try { - const response = await fetch(`https://pokeapi.co/api/v2/pokemon/${id}`); - const data = await response.json(); - const types = data.types.map(type => type.type.name); - return types; - } catch (error) { - console.error('Error fetching Pokémon type:', error); - return null; - } - } -} \ No newline at end of file + static async getNature(nature) { + try { + const natureInfo = await fetch( + `https://pokeapi.co/api/v2/nature/${nature}`, + ); + const data = await natureInfo.json(); + } catch (error) { + console.error("Error fetching Nature details:", error); + return null; + } + } + + // Function to get Pokémon type + static async getPokemonType(id) { + try { + const response = await fetch(`https://pokeapi.co/api/v2/pokemon/${id}`); + const data = await response.json(); + const types = data.types.map((type) => type.type.name); + return types; + } catch (error) { + console.error("Error fetching Pokémon type:", error); + return null; + } + } +} diff --git a/libs/pokerogueutils.js b/libs/pokerogueutils.js index 96f8be5..c122dea 100644 --- a/libs/pokerogueutils.js +++ b/libs/pokerogueutils.js @@ -1,97 +1,95 @@ function _getNatureStatMultiplier(nature, stat) { - switch (stat) { - case Stat.ATK: - switch (nature) { - case Nature.LONELY: - case Nature.BRAVE: - case Nature.ADAMANT: - case Nature.NAUGHTY: - return 1.1; - case Nature.BOLD: - case Nature.TIMID: - case Nature.MODEST: - case Nature.CALM: - return 0.9; - } - break; - case Stat.DEF: - switch (nature) { - case Nature.BOLD: - case Nature.RELAXED: - case Nature.IMPISH: - case Nature.LAX: - return 1.1; - case Nature.LONELY: - case Nature.HASTY: - case Nature.MILD: - case Nature.GENTLE: - return 0.9; - } - break; - case Stat.SPATK: - switch (nature) { - case Nature.MODEST: - case Nature.MILD: - case Nature.QUIET: - case Nature.RASH: - return 1.1; - case Nature.ADAMANT: - case Nature.IMPISH: - case Nature.JOLLY: - case Nature.CAREFUL: - return 0.9; - } - break; - case Stat.SPDEF: - switch (nature) { - case Nature.CALM: - case Nature.GENTLE: - case Nature.SASSY: - case Nature.CAREFUL: - return 1.1; - case Nature.NAUGHTY: - case Nature.LAX: - case Nature.NAIVE: - case Nature.RASH: - return 0.9; - } - break; - case Stat.SPD: - switch (nature) { - case Nature.TIMID: - case Nature.HASTY: - case Nature.JOLLY: - case Nature.NAIVE: - return 1.1; - case Nature.BRAVE: - case Nature.RELAXED: - case Nature.QUIET: - case Nature.SASSY: - return 0.9; - } - break; - } - return 1; + switch (stat) { + case Stat.ATK: + switch (nature) { + case Nature.LONELY: + case Nature.BRAVE: + case Nature.ADAMANT: + case Nature.NAUGHTY: + return 1.1; + case Nature.BOLD: + case Nature.TIMID: + case Nature.MODEST: + case Nature.CALM: + return 0.9; + } + break; + case Stat.DEF: + switch (nature) { + case Nature.BOLD: + case Nature.RELAXED: + case Nature.IMPISH: + case Nature.LAX: + return 1.1; + case Nature.LONELY: + case Nature.HASTY: + case Nature.MILD: + case Nature.GENTLE: + return 0.9; + } + break; + case Stat.SPATK: + switch (nature) { + case Nature.MODEST: + case Nature.MILD: + case Nature.QUIET: + case Nature.RASH: + return 1.1; + case Nature.ADAMANT: + case Nature.IMPISH: + case Nature.JOLLY: + case Nature.CAREFUL: + return 0.9; + } + break; + case Stat.SPDEF: + switch (nature) { + case Nature.CALM: + case Nature.GENTLE: + case Nature.SASSY: + case Nature.CAREFUL: + return 1.1; + case Nature.NAUGHTY: + case Nature.LAX: + case Nature.NAIVE: + case Nature.RASH: + return 0.9; + } + break; + case Stat.SPD: + switch (nature) { + case Nature.TIMID: + case Nature.HASTY: + case Nature.JOLLY: + case Nature.NAIVE: + return 1.1; + case Nature.BRAVE: + case Nature.RELAXED: + case Nature.QUIET: + case Nature.SASSY: + return 0.9; + } + break; + } + return 1; } class PokeRogueUtils { - static getNatureDescription(natureIndex) { - let ret = "(-)"; - let increasedStat = null; - let decreasedStat = null; - for (let stat of Object.values(Stat).filter(v => !isNaN(parseInt(v.toString()))).map(v => parseInt(v.toString()))) { - const multiplier = _getNatureStatMultiplier(natureIndex, stat); - if (multiplier > 1) - increasedStat = stat; - else if (multiplier < 1) - decreasedStat = stat; - } - if (increasedStat && decreasedStat) - ret = `(+${Stat[increasedStat]}/-${Stat[decreasedStat]})`; - else if (increasedStat) - ret = `(+${Stat[increasedStat]})`; - else if (decreasedStat) - ret = `(-${Stat[decreasedStat]})`; - return ret; - } -} \ No newline at end of file + static getNatureDescription(natureIndex) { + let ret = "(-)"; + let increasedStat = null; + let decreasedStat = null; + for (let stat of Object.values(Stat) + .filter((v) => !isNaN(parseInt(v.toString()))) + .map((v) => parseInt(v.toString()))) { + const multiplier = _getNatureStatMultiplier(natureIndex, stat); + if (multiplier > 1) increasedStat = stat; + else if (multiplier < 1) decreasedStat = stat; + } + if (increasedStat && decreasedStat) + ret = `(+${Stat[increasedStat]}/-${Stat[decreasedStat]})`; + else if (increasedStat) ret = `(+${Stat[increasedStat]})`; + else if (decreasedStat) ret = `(-${Stat[decreasedStat]})`; + return ret; + } +} diff --git a/libs/utils.js b/libs/utils.js index 9ffd78c..de9fb94 100644 --- a/libs/utils.js +++ b/libs/utils.js @@ -1,6 +1,8 @@ async function _calculateTypesEffectiveness(types) { - const typeEffectiveness = await Promise.all(types.map(PokeApi.getTypeEffectiveness)); - if (typeEffectiveness.some(data => data === null)) { + const typeEffectiveness = await Promise.all( + types.map(PokeApi.getTypeEffectiveness), + ); + if (typeEffectiveness.some((data) => data === null)) { return null; } @@ -10,138 +12,147 @@ async function _calculateTypesEffectiveness(types) { if (types.length === 1) { const data = typeEffectiveness[0]; - data.double_damage_from.forEach(t => weaknesses.add(t.name)); - data.half_damage_from.forEach(t => resistances.add(t.name)); - data.no_damage_from.forEach(t => immunities.add(t.name)); + data.double_damage_from.forEach((t) => weaknesses.add(t.name)); + data.half_damage_from.forEach((t) => resistances.add(t.name)); + data.no_damage_from.forEach((t) => immunities.add(t.name)); } else if (types.length === 2) { const [type1, type2] = types; const type1Effectiveness = typeEffectiveness[0]; const type2Effectiveness = typeEffectiveness[1]; // Calculate weaknesses - type1Effectiveness.double_damage_from.forEach(t => { - if (!type2Effectiveness.half_damage_from.some(r => r.name === t.name)) { - weaknesses.add(t.name) + type1Effectiveness.double_damage_from.forEach((t) => { + if (!type2Effectiveness.half_damage_from.some((r) => r.name === t.name)) { + weaknesses.add(t.name); } }); - type2Effectiveness.double_damage_from.forEach(t => { - if (!type1Effectiveness.half_damage_from.some(r => r.name === t.name)) { - weaknesses.add(t.name) + type2Effectiveness.double_damage_from.forEach((t) => { + if (!type1Effectiveness.half_damage_from.some((r) => r.name === t.name)) { + weaknesses.add(t.name); } }); // Calculate resistances - type1Effectiveness.half_damage_from.forEach(t => { - if (!type2Effectiveness.double_damage_from.some(r => r.name === t.name)) { - resistances.add(t.name) + type1Effectiveness.half_damage_from.forEach((t) => { + if ( + !type2Effectiveness.double_damage_from.some((r) => r.name === t.name) + ) { + resistances.add(t.name); } }); - type2Effectiveness.half_damage_from.forEach(t => { - if (!type1Effectiveness.double_damage_from.some(r => r.name === t.name)) { - resistances.add(t.name) + type2Effectiveness.half_damage_from.forEach((t) => { + if ( + !type1Effectiveness.double_damage_from.some((r) => r.name === t.name) + ) { + resistances.add(t.name); } }); // Calculate immunities - type1Effectiveness.no_damage_from.forEach(t => immunities.add(t.name)) - type2Effectiveness.no_damage_from.forEach(t => immunities.add(t.name)) + type1Effectiveness.no_damage_from.forEach((t) => immunities.add(t.name)); + type2Effectiveness.no_damage_from.forEach((t) => immunities.add(t.name)); - immunities.forEach(immunity => { - weaknesses.delete(immunity); - resistances.delete(immunity); - }) + immunities.forEach((immunity) => { + weaknesses.delete(immunity); + resistances.delete(immunity); + }); } return { weaknesses, resistances, immunities }; } class Utils { - // Function that converts PokeRogue pokemon ID to pokeAPI pokemon ID - static convertPokemonId(pokemonId) { - const conversionList = { - 2019: 10091, - 2020: 10092, - 2026: 10100, - 2027: 10101, - 2028: 10102, - 2037: 10103, - 2038: 10104, - 2050: 10105, - 2051: 10106, - 2052: 10107, - 2053: 10108, - 2074: 10109, - 2075: 10110, - 2076: 10111, - 2088: 10112, - 2089: 10113, - 2103: 10114, - 2105: 10115, - 2670: 10061, - 4052: 10162, - 4077: 10163, - 4078: 10164, - 4079: 10165, - 4080: 10166, - 4083: 10167, - 4110: 10168, - 4122: 10169, - 4144: 10170, - 4145: 10171, - 4146: 10172, - 4199: 10173, - 4222: 10174, - 4263: 10175, - 4264: 10176, - 4554: 10177, - 4555: 10178, - 4562: 10179, - 4618: 10180, - 6058: 10229, - 6059: 10230, - 6100: 10231, - 6101: 10232, - 6157: 10233, - 6211: 10234, - 6215: 10235, - 6503: 10236, - 6549: 10237, - 6570: 10238, - 6571: 10239, - 6628: 10240, - 6705: 10241, - 6706: 10242, - 6713: 10243, - 6724: 10244, - 8128: 10252, - 8194: 10253, - 8901: 10272 - } - if (pokemonId in conversionList) { - return conversionList[pokemonId] - } else { - return pokemonId - } - } + // Function that converts PokeRogue pokemon ID to pokeAPI pokemon ID + static convertPokemonId(pokemonId) { + const conversionList = { + 2019: 10091, + 2020: 10092, + 2026: 10100, + 2027: 10101, + 2028: 10102, + 2037: 10103, + 2038: 10104, + 2050: 10105, + 2051: 10106, + 2052: 10107, + 2053: 10108, + 2074: 10109, + 2075: 10110, + 2076: 10111, + 2088: 10112, + 2089: 10113, + 2103: 10114, + 2105: 10115, + 2670: 10061, + 4052: 10162, + 4077: 10163, + 4078: 10164, + 4079: 10165, + 4080: 10166, + 4083: 10167, + 4110: 10168, + 4122: 10169, + 4144: 10170, + 4145: 10171, + 4146: 10172, + 4199: 10173, + 4222: 10174, + 4263: 10175, + 4264: 10176, + 4554: 10177, + 4555: 10178, + 4562: 10179, + 4618: 10180, + 6058: 10229, + 6059: 10230, + 6100: 10231, + 6101: 10232, + 6157: 10233, + 6211: 10234, + 6215: 10235, + 6503: 10236, + 6549: 10237, + 6570: 10238, + 6571: 10239, + 6628: 10240, + 6705: 10241, + 6706: 10242, + 6713: 10243, + 6724: 10244, + 8128: 10252, + 8194: 10253, + 8901: 10272, + }; + if (pokemonId in conversionList) { + return conversionList[pokemonId]; + } else { + return pokemonId; + } + } - // Function to calculate weaknesses, resistances, and immunities - + // Function to calculate weaknesses, resistances, and immunities - static async getPokemonTypeEffectiveness(id) { - const types = await PokeApi.getPokemonType(id); - if (types) { - const { weaknesses, resistances, immunities } = await _calculateTypesEffectiveness(types); - return { - 'weaknesses': weaknesses, - 'resistances': resistances, - 'immunities': immunities - } - } - return {} - } + static async getPokemonTypeEffectiveness(id) { + const types = await PokeApi.getPokemonType(id); + if (types) { + const { weaknesses, resistances, immunities } = + await _calculateTypesEffectiveness(types); + return { + weaknesses: weaknesses, + resistances: resistances, + immunities: immunities, + }; + } + return {}; + } - static mapPartyToPokemonArray(party) { - return party.map(({ species, abilityIndex, nature, ivs }) => ({ species, abilityIndex, nature, ivs })) - } -} \ No newline at end of file + static mapPartyToPokemonArray(party) { + return party.map(({ species, abilityIndex, nature, ivs }) => ({ + species, + abilityIndex, + nature, + ivs, + })); + } +} From b4b828687de09c9f012d42b3c047d49d08ca3088 Mon Sep 17 00:00:00 2001 From: Alistair Bahr Date: Sat, 11 Jan 2025 12:50:30 +0100 Subject: [PATCH 3/4] limit formatting to main branch to not have formatting in pull request --- .github/workflows/prettier.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/prettier.yml b/.github/workflows/prettier.yml index b800960..d426200 100644 --- a/.github/workflows/prettier.yml +++ b/.github/workflows/prettier.yml @@ -2,7 +2,9 @@ name: Format the code on: push: + branches: ["main"] pull_request: + branches: ["main"] jobs: format: @@ -21,4 +23,4 @@ jobs: - uses: stefanzweifel/git-auto-commit-action@v4 if: ${{ github.event_name == 'push' || github.event_name == 'workflow_dispatch' }} with: - commit_message: "style: format files" \ No newline at end of file + commit_message: "style: format files" From aa7983a011ceaa39f551003beed37b28b82793f7 Mon Sep 17 00:00:00 2001 From: Alistair Bahr Date: Sat, 11 Jan 2025 12:50:59 +0100 Subject: [PATCH 4/4] Revert "style: format files" This reverts commit c3f0c4ff1344df00f0696562e941e81dbd56d4da. --- libs/crypto-js.min.js | 3032 +------------------------------------ libs/httpjsutils.js | 80 +- libs/httputils.js | 367 +++-- libs/localstorageutils.js | 56 +- libs/lodash.js | 769 ++++------ libs/pokeapi.js | 119 +- libs/pokerogueutils.js | 184 +-- libs/utils.js | 227 ++- 8 files changed, 781 insertions(+), 4053 deletions(-) diff --git a/libs/crypto-js.min.js b/libs/crypto-js.min.js index 086189e..20b3099 100644 --- a/libs/crypto-js.min.js +++ b/libs/crypto-js.min.js @@ -1,3031 +1 @@ -!(function (t, e) { - "object" == typeof exports - ? (module.exports = exports = e()) - : "function" == typeof define && define.amd - ? define([], e) - : (t.CryptoJS = e()); -})(this, function () { - var n, - o, - s, - a, - h, - t, - e, - l, - r, - i, - c, - f, - d, - u, - p, - S, - x, - b, - A, - H, - z, - _, - v, - g, - y, - B, - w, - k, - m, - C, - D, - E, - R, - M, - F, - P, - W, - O, - I, - U = - U || - (function (h) { - var i; - if ( - ("undefined" != typeof window && window.crypto && (i = window.crypto), - "undefined" != typeof self && self.crypto && (i = self.crypto), - !(i = - !(i = - !(i = - "undefined" != typeof globalThis && globalThis.crypto - ? globalThis.crypto - : i) && - "undefined" != typeof window && - window.msCrypto - ? window.msCrypto - : i) && - "undefined" != typeof global && - global.crypto - ? global.crypto - : i) && "function" == typeof require) - ) - try { - i = require("crypto"); - } catch (t) {} - var r = - Object.create || - function (t) { - return (e.prototype = t), (t = new e()), (e.prototype = null), t; - }; - function e() {} - var t = {}, - n = (t.lib = {}), - o = (n.Base = { - extend: function (t) { - var e = r(this); - return ( - t && e.mixIn(t), - (e.hasOwnProperty("init") && this.init !== e.init) || - (e.init = function () { - e.$super.init.apply(this, arguments); - }), - ((e.init.prototype = e).$super = this), - e - ); - }, - create: function () { - var t = this.extend(); - return t.init.apply(t, arguments), t; - }, - init: function () {}, - mixIn: function (t) { - for (var e in t) t.hasOwnProperty(e) && (this[e] = t[e]); - t.hasOwnProperty("toString") && (this.toString = t.toString); - }, - clone: function () { - return this.init.prototype.extend(this); - }, - }), - l = (n.WordArray = o.extend({ - init: function (t, e) { - (t = this.words = t || []), - (this.sigBytes = null != e ? e : 4 * t.length); - }, - toString: function (t) { - return (t || c).stringify(this); - }, - concat: function (t) { - var e = this.words, - r = t.words, - i = this.sigBytes, - n = t.sigBytes; - if ((this.clamp(), i % 4)) - for (var o = 0; o < n; o++) { - var s = (r[o >>> 2] >>> (24 - (o % 4) * 8)) & 255; - e[(i + o) >>> 2] |= s << (24 - ((i + o) % 4) * 8); - } - else for (var c = 0; c < n; c += 4) e[(i + c) >>> 2] = r[c >>> 2]; - return (this.sigBytes += n), this; - }, - clamp: function () { - var t = this.words, - e = this.sigBytes; - (t[e >>> 2] &= 4294967295 << (32 - (e % 4) * 8)), - (t.length = h.ceil(e / 4)); - }, - clone: function () { - var t = o.clone.call(this); - return (t.words = this.words.slice(0)), t; - }, - random: function (t) { - for (var e = [], r = 0; r < t; r += 4) - e.push( - (function () { - if (i) { - if ("function" == typeof i.getRandomValues) - try { - return i.getRandomValues(new Uint32Array(1))[0]; - } catch (t) {} - if ("function" == typeof i.randomBytes) - try { - return i.randomBytes(4).readInt32LE(); - } catch (t) {} - } - throw new Error( - "Native crypto module could not be used to get secure random number.", - ); - })(), - ); - return new l.init(e, t); - }, - })), - s = (t.enc = {}), - c = (s.Hex = { - stringify: function (t) { - for (var e = t.words, r = t.sigBytes, i = [], n = 0; n < r; n++) { - var o = (e[n >>> 2] >>> (24 - (n % 4) * 8)) & 255; - i.push((o >>> 4).toString(16)), i.push((15 & o).toString(16)); - } - return i.join(""); - }, - parse: function (t) { - for (var e = t.length, r = [], i = 0; i < e; i += 2) - r[i >>> 3] |= - parseInt(t.substr(i, 2), 16) << (24 - (i % 8) * 4); - return new l.init(r, e / 2); - }, - }), - a = (s.Latin1 = { - stringify: function (t) { - for (var e = t.words, r = t.sigBytes, i = [], n = 0; n < r; n++) { - var o = (e[n >>> 2] >>> (24 - (n % 4) * 8)) & 255; - i.push(String.fromCharCode(o)); - } - return i.join(""); - }, - parse: function (t) { - for (var e = t.length, r = [], i = 0; i < e; i++) - r[i >>> 2] |= (255 & t.charCodeAt(i)) << (24 - (i % 4) * 8); - return new l.init(r, e); - }, - }), - f = (s.Utf8 = { - stringify: function (t) { - try { - return decodeURIComponent(escape(a.stringify(t))); - } catch (t) { - throw new Error("Malformed UTF-8 data"); - } - }, - parse: function (t) { - return a.parse(unescape(encodeURIComponent(t))); - }, - }), - d = (n.BufferedBlockAlgorithm = o.extend({ - reset: function () { - (this._data = new l.init()), (this._nDataBytes = 0); - }, - _append: function (t) { - "string" == typeof t && (t = f.parse(t)), - this._data.concat(t), - (this._nDataBytes += t.sigBytes); - }, - _process: function (t) { - var e, - r = this._data, - i = r.words, - n = r.sigBytes, - o = this.blockSize, - s = n / (4 * o), - c = - (s = t - ? h.ceil(s) - : h.max((0 | s) - this._minBufferSize, 0)) * o, - n = h.min(4 * c, n); - if (c) { - for (var a = 0; a < c; a += o) this._doProcessBlock(i, a); - (e = i.splice(0, c)), (r.sigBytes -= n); - } - return new l.init(e, n); - }, - clone: function () { - var t = o.clone.call(this); - return (t._data = this._data.clone()), t; - }, - _minBufferSize: 0, - })), - u = - ((n.Hasher = d.extend({ - cfg: o.extend(), - init: function (t) { - (this.cfg = this.cfg.extend(t)), this.reset(); - }, - reset: function () { - d.reset.call(this), this._doReset(); - }, - update: function (t) { - return this._append(t), this._process(), this; - }, - finalize: function (t) { - return t && this._append(t), this._doFinalize(); - }, - blockSize: 16, - _createHelper: function (r) { - return function (t, e) { - return new r.init(e).finalize(t); - }; - }, - _createHmacHelper: function (r) { - return function (t, e) { - return new u.HMAC.init(r, e).finalize(t); - }; - }, - })), - (t.algo = {})); - return t; - })(Math); - function K(t, e, r) { - return (t & e) | (~t & r); - } - function X(t, e, r) { - return (t & r) | (e & ~r); - } - function L(t, e) { - return (t << e) | (t >>> (32 - e)); - } - function j(t, e, r, i) { - var n, - o = this._iv; - o ? ((n = o.slice(0)), (this._iv = void 0)) : (n = this._prevBlock), - i.encryptBlock(n, 0); - for (var s = 0; s < r; s++) t[e + s] ^= n[s]; - } - function T(t) { - var e, r, i; - return ( - 255 == ((t >> 24) & 255) - ? ((r = (t >> 8) & 255), - (i = 255 & t), - 255 === (e = (t >> 16) & 255) - ? ((e = 0), 255 === r ? ((r = 0), 255 === i ? (i = 0) : ++i) : ++r) - : ++e, - (t = 0), - (t += e << 16), - (t += r << 8), - (t += i)) - : (t += 1 << 24), - t - ); - } - function N() { - for (var t = this._X, e = this._C, r = 0; r < 8; r++) E[r] = e[r]; - (e[0] = (e[0] + 1295307597 + this._b) | 0), - (e[1] = (e[1] + 3545052371 + (e[0] >>> 0 < E[0] >>> 0 ? 1 : 0)) | 0), - (e[2] = (e[2] + 886263092 + (e[1] >>> 0 < E[1] >>> 0 ? 1 : 0)) | 0), - (e[3] = (e[3] + 1295307597 + (e[2] >>> 0 < E[2] >>> 0 ? 1 : 0)) | 0), - (e[4] = (e[4] + 3545052371 + (e[3] >>> 0 < E[3] >>> 0 ? 1 : 0)) | 0), - (e[5] = (e[5] + 886263092 + (e[4] >>> 0 < E[4] >>> 0 ? 1 : 0)) | 0), - (e[6] = (e[6] + 1295307597 + (e[5] >>> 0 < E[5] >>> 0 ? 1 : 0)) | 0), - (e[7] = (e[7] + 3545052371 + (e[6] >>> 0 < E[6] >>> 0 ? 1 : 0)) | 0), - (this._b = e[7] >>> 0 < E[7] >>> 0 ? 1 : 0); - for (r = 0; r < 8; r++) { - var i = t[r] + e[r], - n = 65535 & i, - o = i >>> 16; - R[r] = - (((((n * n) >>> 17) + n * o) >>> 15) + o * o) ^ - ((((4294901760 & i) * i) | 0) + (((65535 & i) * i) | 0)); - } - (t[0] = - (R[0] + ((R[7] << 16) | (R[7] >>> 16)) + ((R[6] << 16) | (R[6] >>> 16))) | - 0), - (t[1] = (R[1] + ((R[0] << 8) | (R[0] >>> 24)) + R[7]) | 0), - (t[2] = - (R[2] + - ((R[1] << 16) | (R[1] >>> 16)) + - ((R[0] << 16) | (R[0] >>> 16))) | - 0), - (t[3] = (R[3] + ((R[2] << 8) | (R[2] >>> 24)) + R[1]) | 0), - (t[4] = - (R[4] + - ((R[3] << 16) | (R[3] >>> 16)) + - ((R[2] << 16) | (R[2] >>> 16))) | - 0), - (t[5] = (R[5] + ((R[4] << 8) | (R[4] >>> 24)) + R[3]) | 0), - (t[6] = - (R[6] + - ((R[5] << 16) | (R[5] >>> 16)) + - ((R[4] << 16) | (R[4] >>> 16))) | - 0), - (t[7] = (R[7] + ((R[6] << 8) | (R[6] >>> 24)) + R[5]) | 0); - } - function q() { - for (var t = this._X, e = this._C, r = 0; r < 8; r++) O[r] = e[r]; - (e[0] = (e[0] + 1295307597 + this._b) | 0), - (e[1] = (e[1] + 3545052371 + (e[0] >>> 0 < O[0] >>> 0 ? 1 : 0)) | 0), - (e[2] = (e[2] + 886263092 + (e[1] >>> 0 < O[1] >>> 0 ? 1 : 0)) | 0), - (e[3] = (e[3] + 1295307597 + (e[2] >>> 0 < O[2] >>> 0 ? 1 : 0)) | 0), - (e[4] = (e[4] + 3545052371 + (e[3] >>> 0 < O[3] >>> 0 ? 1 : 0)) | 0), - (e[5] = (e[5] + 886263092 + (e[4] >>> 0 < O[4] >>> 0 ? 1 : 0)) | 0), - (e[6] = (e[6] + 1295307597 + (e[5] >>> 0 < O[5] >>> 0 ? 1 : 0)) | 0), - (e[7] = (e[7] + 3545052371 + (e[6] >>> 0 < O[6] >>> 0 ? 1 : 0)) | 0), - (this._b = e[7] >>> 0 < O[7] >>> 0 ? 1 : 0); - for (r = 0; r < 8; r++) { - var i = t[r] + e[r], - n = 65535 & i, - o = i >>> 16; - I[r] = - (((((n * n) >>> 17) + n * o) >>> 15) + o * o) ^ - ((((4294901760 & i) * i) | 0) + (((65535 & i) * i) | 0)); - } - (t[0] = - (I[0] + ((I[7] << 16) | (I[7] >>> 16)) + ((I[6] << 16) | (I[6] >>> 16))) | - 0), - (t[1] = (I[1] + ((I[0] << 8) | (I[0] >>> 24)) + I[7]) | 0), - (t[2] = - (I[2] + - ((I[1] << 16) | (I[1] >>> 16)) + - ((I[0] << 16) | (I[0] >>> 16))) | - 0), - (t[3] = (I[3] + ((I[2] << 8) | (I[2] >>> 24)) + I[1]) | 0), - (t[4] = - (I[4] + - ((I[3] << 16) | (I[3] >>> 16)) + - ((I[2] << 16) | (I[2] >>> 16))) | - 0), - (t[5] = (I[5] + ((I[4] << 8) | (I[4] >>> 24)) + I[3]) | 0), - (t[6] = - (I[6] + - ((I[5] << 16) | (I[5] >>> 16)) + - ((I[4] << 16) | (I[4] >>> 16))) | - 0), - (t[7] = (I[7] + ((I[6] << 8) | (I[6] >>> 24)) + I[5]) | 0); - } - return ( - (F = (M = U).lib), - (n = F.Base), - (o = F.WordArray), - ((M = M.x64 = {}).Word = n.extend({ - init: function (t, e) { - (this.high = t), (this.low = e); - }, - })), - (M.WordArray = n.extend({ - init: function (t, e) { - (t = this.words = t || []), - (this.sigBytes = null != e ? e : 8 * t.length); - }, - toX32: function () { - for (var t = this.words, e = t.length, r = [], i = 0; i < e; i++) { - var n = t[i]; - r.push(n.high), r.push(n.low); - } - return o.create(r, this.sigBytes); - }, - clone: function () { - for ( - var t = n.clone.call(this), - e = (t.words = this.words.slice(0)), - r = e.length, - i = 0; - i < r; - i++ - ) - e[i] = e[i].clone(); - return t; - }, - })), - "function" == typeof ArrayBuffer && - ((P = U.lib.WordArray), - (s = P.init), - ((P.init = function (t) { - if ( - (t = - (t = t instanceof ArrayBuffer ? new Uint8Array(t) : t) instanceof - Int8Array || - ("undefined" != typeof Uint8ClampedArray && - t instanceof Uint8ClampedArray) || - t instanceof Int16Array || - t instanceof Uint16Array || - t instanceof Int32Array || - t instanceof Uint32Array || - t instanceof Float32Array || - t instanceof Float64Array - ? new Uint8Array(t.buffer, t.byteOffset, t.byteLength) - : t) instanceof Uint8Array - ) { - for (var e = t.byteLength, r = [], i = 0; i < e; i++) - r[i >>> 2] |= t[i] << (24 - (i % 4) * 8); - s.call(this, r, e); - } else s.apply(this, arguments); - }).prototype = P)), - (function () { - var t = U, - n = t.lib.WordArray, - t = t.enc; - t.Utf16 = t.Utf16BE = { - stringify: function (t) { - for (var e = t.words, r = t.sigBytes, i = [], n = 0; n < r; n += 2) { - var o = (e[n >>> 2] >>> (16 - (n % 4) * 8)) & 65535; - i.push(String.fromCharCode(o)); - } - return i.join(""); - }, - parse: function (t) { - for (var e = t.length, r = [], i = 0; i < e; i++) - r[i >>> 1] |= t.charCodeAt(i) << (16 - (i % 2) * 16); - return n.create(r, 2 * e); - }, - }; - function s(t) { - return ((t << 8) & 4278255360) | ((t >>> 8) & 16711935); - } - t.Utf16LE = { - stringify: function (t) { - for (var e = t.words, r = t.sigBytes, i = [], n = 0; n < r; n += 2) { - var o = s((e[n >>> 2] >>> (16 - (n % 4) * 8)) & 65535); - i.push(String.fromCharCode(o)); - } - return i.join(""); - }, - parse: function (t) { - for (var e = t.length, r = [], i = 0; i < e; i++) - r[i >>> 1] |= s(t.charCodeAt(i) << (16 - (i % 2) * 16)); - return n.create(r, 2 * e); - }, - }; - })(), - (a = (w = U).lib.WordArray), - (w.enc.Base64 = { - stringify: function (t) { - var e = t.words, - r = t.sigBytes, - i = this._map; - t.clamp(); - for (var n = [], o = 0; o < r; o += 3) - for ( - var s = - (((e[o >>> 2] >>> (24 - (o % 4) * 8)) & 255) << 16) | - (((e[(o + 1) >>> 2] >>> (24 - ((o + 1) % 4) * 8)) & 255) << 8) | - ((e[(o + 2) >>> 2] >>> (24 - ((o + 2) % 4) * 8)) & 255), - c = 0; - c < 4 && o + 0.75 * c < r; - c++ - ) - n.push(i.charAt((s >>> (6 * (3 - c))) & 63)); - var a = i.charAt(64); - if (a) for (; n.length % 4; ) n.push(a); - return n.join(""); - }, - parse: function (t) { - var e = t.length, - r = this._map; - if (!(i = this._reverseMap)) - for (var i = (this._reverseMap = []), n = 0; n < r.length; n++) - i[r.charCodeAt(n)] = n; - var o = r.charAt(64); - return ( - !o || (-1 !== (o = t.indexOf(o)) && (e = o)), - (function (t, e, r) { - for (var i = [], n = 0, o = 0; o < e; o++) { - var s, c; - o % 4 && - ((s = r[t.charCodeAt(o - 1)] << ((o % 4) * 2)), - (c = r[t.charCodeAt(o)] >>> (6 - (o % 4) * 2)), - (c = s | c), - (i[n >>> 2] |= c << (24 - (n % 4) * 8)), - n++); - } - return a.create(i, n); - })(t, e, i) - ); - }, - _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", - }), - (h = (F = U).lib.WordArray), - (F.enc.Base64url = { - stringify: function (t, e = !0) { - var r = t.words, - i = t.sigBytes, - n = e ? this._safe_map : this._map; - t.clamp(); - for (var o = [], s = 0; s < i; s += 3) - for ( - var c = - (((r[s >>> 2] >>> (24 - (s % 4) * 8)) & 255) << 16) | - (((r[(s + 1) >>> 2] >>> (24 - ((s + 1) % 4) * 8)) & 255) << 8) | - ((r[(s + 2) >>> 2] >>> (24 - ((s + 2) % 4) * 8)) & 255), - a = 0; - a < 4 && s + 0.75 * a < i; - a++ - ) - o.push(n.charAt((c >>> (6 * (3 - a))) & 63)); - var h = n.charAt(64); - if (h) for (; o.length % 4; ) o.push(h); - return o.join(""); - }, - parse: function (t, e = !0) { - var r = t.length, - i = e ? this._safe_map : this._map; - if (!(n = this._reverseMap)) - for (var n = (this._reverseMap = []), o = 0; o < i.length; o++) - n[i.charCodeAt(o)] = o; - e = i.charAt(64); - return ( - !e || (-1 !== (e = t.indexOf(e)) && (r = e)), - (function (t, e, r) { - for (var i = [], n = 0, o = 0; o < e; o++) { - var s, c; - o % 4 && - ((s = r[t.charCodeAt(o - 1)] << ((o % 4) * 2)), - (c = r[t.charCodeAt(o)] >>> (6 - (o % 4) * 2)), - (c = s | c), - (i[n >>> 2] |= c << (24 - (n % 4) * 8)), - n++); - } - return h.create(i, n); - })(t, r, n) - ); - }, - _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", - _safe_map: - "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_", - }), - (function (a) { - var t = U, - e = t.lib, - r = e.WordArray, - i = e.Hasher, - e = t.algo, - A = []; - !(function () { - for (var t = 0; t < 64; t++) - A[t] = (4294967296 * a.abs(a.sin(t + 1))) | 0; - })(); - e = e.MD5 = i.extend({ - _doReset: function () { - this._hash = new r.init([ - 1732584193, 4023233417, 2562383102, 271733878, - ]); - }, - _doProcessBlock: function (t, e) { - for (var r = 0; r < 16; r++) { - var i = e + r, - n = t[i]; - t[i] = - (16711935 & ((n << 8) | (n >>> 24))) | - (4278255360 & ((n << 24) | (n >>> 8))); - } - var o = this._hash.words, - s = t[e + 0], - c = t[e + 1], - a = t[e + 2], - h = t[e + 3], - l = t[e + 4], - f = t[e + 5], - d = t[e + 6], - u = t[e + 7], - p = t[e + 8], - _ = t[e + 9], - y = t[e + 10], - v = t[e + 11], - g = t[e + 12], - B = t[e + 13], - w = t[e + 14], - k = t[e + 15], - m = H((m = o[0]), (b = o[1]), (x = o[2]), (S = o[3]), s, 7, A[0]), - S = H(S, m, b, x, c, 12, A[1]), - x = H(x, S, m, b, a, 17, A[2]), - b = H(b, x, S, m, h, 22, A[3]); - (m = H(m, b, x, S, l, 7, A[4])), - (S = H(S, m, b, x, f, 12, A[5])), - (x = H(x, S, m, b, d, 17, A[6])), - (b = H(b, x, S, m, u, 22, A[7])), - (m = H(m, b, x, S, p, 7, A[8])), - (S = H(S, m, b, x, _, 12, A[9])), - (x = H(x, S, m, b, y, 17, A[10])), - (b = H(b, x, S, m, v, 22, A[11])), - (m = H(m, b, x, S, g, 7, A[12])), - (S = H(S, m, b, x, B, 12, A[13])), - (x = H(x, S, m, b, w, 17, A[14])), - (m = z(m, (b = H(b, x, S, m, k, 22, A[15])), x, S, c, 5, A[16])), - (S = z(S, m, b, x, d, 9, A[17])), - (x = z(x, S, m, b, v, 14, A[18])), - (b = z(b, x, S, m, s, 20, A[19])), - (m = z(m, b, x, S, f, 5, A[20])), - (S = z(S, m, b, x, y, 9, A[21])), - (x = z(x, S, m, b, k, 14, A[22])), - (b = z(b, x, S, m, l, 20, A[23])), - (m = z(m, b, x, S, _, 5, A[24])), - (S = z(S, m, b, x, w, 9, A[25])), - (x = z(x, S, m, b, h, 14, A[26])), - (b = z(b, x, S, m, p, 20, A[27])), - (m = z(m, b, x, S, B, 5, A[28])), - (S = z(S, m, b, x, a, 9, A[29])), - (x = z(x, S, m, b, u, 14, A[30])), - (m = C(m, (b = z(b, x, S, m, g, 20, A[31])), x, S, f, 4, A[32])), - (S = C(S, m, b, x, p, 11, A[33])), - (x = C(x, S, m, b, v, 16, A[34])), - (b = C(b, x, S, m, w, 23, A[35])), - (m = C(m, b, x, S, c, 4, A[36])), - (S = C(S, m, b, x, l, 11, A[37])), - (x = C(x, S, m, b, u, 16, A[38])), - (b = C(b, x, S, m, y, 23, A[39])), - (m = C(m, b, x, S, B, 4, A[40])), - (S = C(S, m, b, x, s, 11, A[41])), - (x = C(x, S, m, b, h, 16, A[42])), - (b = C(b, x, S, m, d, 23, A[43])), - (m = C(m, b, x, S, _, 4, A[44])), - (S = C(S, m, b, x, g, 11, A[45])), - (x = C(x, S, m, b, k, 16, A[46])), - (m = D(m, (b = C(b, x, S, m, a, 23, A[47])), x, S, s, 6, A[48])), - (S = D(S, m, b, x, u, 10, A[49])), - (x = D(x, S, m, b, w, 15, A[50])), - (b = D(b, x, S, m, f, 21, A[51])), - (m = D(m, b, x, S, g, 6, A[52])), - (S = D(S, m, b, x, h, 10, A[53])), - (x = D(x, S, m, b, y, 15, A[54])), - (b = D(b, x, S, m, c, 21, A[55])), - (m = D(m, b, x, S, p, 6, A[56])), - (S = D(S, m, b, x, k, 10, A[57])), - (x = D(x, S, m, b, d, 15, A[58])), - (b = D(b, x, S, m, B, 21, A[59])), - (m = D(m, b, x, S, l, 6, A[60])), - (S = D(S, m, b, x, v, 10, A[61])), - (x = D(x, S, m, b, a, 15, A[62])), - (b = D(b, x, S, m, _, 21, A[63])), - (o[0] = (o[0] + m) | 0), - (o[1] = (o[1] + b) | 0), - (o[2] = (o[2] + x) | 0), - (o[3] = (o[3] + S) | 0); - }, - _doFinalize: function () { - var t = this._data, - e = t.words, - r = 8 * this._nDataBytes, - i = 8 * t.sigBytes; - e[i >>> 5] |= 128 << (24 - (i % 32)); - var n = a.floor(r / 4294967296), - r = r; - (e[15 + (((64 + i) >>> 9) << 4)] = - (16711935 & ((n << 8) | (n >>> 24))) | - (4278255360 & ((n << 24) | (n >>> 8)))), - (e[14 + (((64 + i) >>> 9) << 4)] = - (16711935 & ((r << 8) | (r >>> 24))) | - (4278255360 & ((r << 24) | (r >>> 8)))), - (t.sigBytes = 4 * (e.length + 1)), - this._process(); - for (var e = this._hash, o = e.words, s = 0; s < 4; s++) { - var c = o[s]; - o[s] = - (16711935 & ((c << 8) | (c >>> 24))) | - (4278255360 & ((c << 24) | (c >>> 8))); - } - return e; - }, - clone: function () { - var t = i.clone.call(this); - return (t._hash = this._hash.clone()), t; - }, - }); - function H(t, e, r, i, n, o, s) { - s = t + ((e & r) | (~e & i)) + n + s; - return ((s << o) | (s >>> (32 - o))) + e; - } - function z(t, e, r, i, n, o, s) { - s = t + ((e & i) | (r & ~i)) + n + s; - return ((s << o) | (s >>> (32 - o))) + e; - } - function C(t, e, r, i, n, o, s) { - s = t + (e ^ r ^ i) + n + s; - return ((s << o) | (s >>> (32 - o))) + e; - } - function D(t, e, r, i, n, o, s) { - s = t + (r ^ (e | ~i)) + n + s; - return ((s << o) | (s >>> (32 - o))) + e; - } - (t.MD5 = i._createHelper(e)), (t.HmacMD5 = i._createHmacHelper(e)); - })(Math), - (P = (M = U).lib), - (t = P.WordArray), - (e = P.Hasher), - (P = M.algo), - (l = []), - (P = P.SHA1 = - e.extend({ - _doReset: function () { - this._hash = new t.init([ - 1732584193, 4023233417, 2562383102, 271733878, 3285377520, - ]); - }, - _doProcessBlock: function (t, e) { - for ( - var r = this._hash.words, - i = r[0], - n = r[1], - o = r[2], - s = r[3], - c = r[4], - a = 0; - a < 80; - a++ - ) { - a < 16 - ? (l[a] = 0 | t[e + a]) - : ((h = l[a - 3] ^ l[a - 8] ^ l[a - 14] ^ l[a - 16]), - (l[a] = (h << 1) | (h >>> 31))); - var h = ((i << 5) | (i >>> 27)) + c + l[a]; - (h += - a < 20 - ? 1518500249 + ((n & o) | (~n & s)) - : a < 40 - ? 1859775393 + (n ^ o ^ s) - : a < 60 - ? ((n & o) | (n & s) | (o & s)) - 1894007588 - : (n ^ o ^ s) - 899497514), - (c = s), - (s = o), - (o = (n << 30) | (n >>> 2)), - (n = i), - (i = h); - } - (r[0] = (r[0] + i) | 0), - (r[1] = (r[1] + n) | 0), - (r[2] = (r[2] + o) | 0), - (r[3] = (r[3] + s) | 0), - (r[4] = (r[4] + c) | 0); - }, - _doFinalize: function () { - var t = this._data, - e = t.words, - r = 8 * this._nDataBytes, - i = 8 * t.sigBytes; - return ( - (e[i >>> 5] |= 128 << (24 - (i % 32))), - (e[14 + (((64 + i) >>> 9) << 4)] = Math.floor(r / 4294967296)), - (e[15 + (((64 + i) >>> 9) << 4)] = r), - (t.sigBytes = 4 * e.length), - this._process(), - this._hash - ); - }, - clone: function () { - var t = e.clone.call(this); - return (t._hash = this._hash.clone()), t; - }, - })), - (M.SHA1 = e._createHelper(P)), - (M.HmacSHA1 = e._createHmacHelper(P)), - (function (n) { - var t = U, - e = t.lib, - r = e.WordArray, - i = e.Hasher, - e = t.algo, - o = [], - p = []; - !(function () { - function t(t) { - return (4294967296 * (t - (0 | t))) | 0; - } - for (var e = 2, r = 0; r < 64; ) - !(function (t) { - for (var e = n.sqrt(t), r = 2; r <= e; r++) if (!(t % r)) return; - return 1; - })(e) || - (r < 8 && (o[r] = t(n.pow(e, 0.5))), - (p[r] = t(n.pow(e, 1 / 3))), - r++), - e++; - })(); - var _ = [], - e = (e.SHA256 = i.extend({ - _doReset: function () { - this._hash = new r.init(o.slice(0)); - }, - _doProcessBlock: function (t, e) { - for ( - var r = this._hash.words, - i = r[0], - n = r[1], - o = r[2], - s = r[3], - c = r[4], - a = r[5], - h = r[6], - l = r[7], - f = 0; - f < 64; - f++ - ) { - f < 16 - ? (_[f] = 0 | t[e + f]) - : ((d = _[f - 15]), - (u = _[f - 2]), - (_[f] = - (((d << 25) | (d >>> 7)) ^ - ((d << 14) | (d >>> 18)) ^ - (d >>> 3)) + - _[f - 7] + - (((u << 15) | (u >>> 17)) ^ - ((u << 13) | (u >>> 19)) ^ - (u >>> 10)) + - _[f - 16])); - var d = (i & n) ^ (i & o) ^ (n & o), - u = - l + - (((c << 26) | (c >>> 6)) ^ - ((c << 21) | (c >>> 11)) ^ - ((c << 7) | (c >>> 25))) + - ((c & a) ^ (~c & h)) + - p[f] + - _[f], - l = h, - h = a, - a = c, - c = (s + u) | 0, - s = o, - o = n, - n = i, - i = - (u + - ((((i << 30) | (i >>> 2)) ^ - ((i << 19) | (i >>> 13)) ^ - ((i << 10) | (i >>> 22))) + - d)) | - 0; - } - (r[0] = (r[0] + i) | 0), - (r[1] = (r[1] + n) | 0), - (r[2] = (r[2] + o) | 0), - (r[3] = (r[3] + s) | 0), - (r[4] = (r[4] + c) | 0), - (r[5] = (r[5] + a) | 0), - (r[6] = (r[6] + h) | 0), - (r[7] = (r[7] + l) | 0); - }, - _doFinalize: function () { - var t = this._data, - e = t.words, - r = 8 * this._nDataBytes, - i = 8 * t.sigBytes; - return ( - (e[i >>> 5] |= 128 << (24 - (i % 32))), - (e[14 + (((64 + i) >>> 9) << 4)] = n.floor(r / 4294967296)), - (e[15 + (((64 + i) >>> 9) << 4)] = r), - (t.sigBytes = 4 * e.length), - this._process(), - this._hash - ); - }, - clone: function () { - var t = i.clone.call(this); - return (t._hash = this._hash.clone()), t; - }, - })); - (t.SHA256 = i._createHelper(e)), (t.HmacSHA256 = i._createHmacHelper(e)); - })(Math), - (r = (w = U).lib.WordArray), - (F = w.algo), - (i = F.SHA256), - (F = F.SHA224 = - i.extend({ - _doReset: function () { - this._hash = new r.init([ - 3238371032, 914150663, 812702999, 4144912697, 4290775857, - 1750603025, 1694076839, 3204075428, - ]); - }, - _doFinalize: function () { - var t = i._doFinalize.call(this); - return (t.sigBytes -= 4), t; - }, - })), - (w.SHA224 = i._createHelper(F)), - (w.HmacSHA224 = i._createHmacHelper(F)), - (function () { - var t = U, - e = t.lib.Hasher, - r = t.x64, - i = r.Word, - n = r.WordArray, - r = t.algo; - function o() { - return i.create.apply(i, arguments); - } - var t1 = [ - o(1116352408, 3609767458), - o(1899447441, 602891725), - o(3049323471, 3964484399), - o(3921009573, 2173295548), - o(961987163, 4081628472), - o(1508970993, 3053834265), - o(2453635748, 2937671579), - o(2870763221, 3664609560), - o(3624381080, 2734883394), - o(310598401, 1164996542), - o(607225278, 1323610764), - o(1426881987, 3590304994), - o(1925078388, 4068182383), - o(2162078206, 991336113), - o(2614888103, 633803317), - o(3248222580, 3479774868), - o(3835390401, 2666613458), - o(4022224774, 944711139), - o(264347078, 2341262773), - o(604807628, 2007800933), - o(770255983, 1495990901), - o(1249150122, 1856431235), - o(1555081692, 3175218132), - o(1996064986, 2198950837), - o(2554220882, 3999719339), - o(2821834349, 766784016), - o(2952996808, 2566594879), - o(3210313671, 3203337956), - o(3336571891, 1034457026), - o(3584528711, 2466948901), - o(113926993, 3758326383), - o(338241895, 168717936), - o(666307205, 1188179964), - o(773529912, 1546045734), - o(1294757372, 1522805485), - o(1396182291, 2643833823), - o(1695183700, 2343527390), - o(1986661051, 1014477480), - o(2177026350, 1206759142), - o(2456956037, 344077627), - o(2730485921, 1290863460), - o(2820302411, 3158454273), - o(3259730800, 3505952657), - o(3345764771, 106217008), - o(3516065817, 3606008344), - o(3600352804, 1432725776), - o(4094571909, 1467031594), - o(275423344, 851169720), - o(430227734, 3100823752), - o(506948616, 1363258195), - o(659060556, 3750685593), - o(883997877, 3785050280), - o(958139571, 3318307427), - o(1322822218, 3812723403), - o(1537002063, 2003034995), - o(1747873779, 3602036899), - o(1955562222, 1575990012), - o(2024104815, 1125592928), - o(2227730452, 2716904306), - o(2361852424, 442776044), - o(2428436474, 593698344), - o(2756734187, 3733110249), - o(3204031479, 2999351573), - o(3329325298, 3815920427), - o(3391569614, 3928383900), - o(3515267271, 566280711), - o(3940187606, 3454069534), - o(4118630271, 4000239992), - o(116418474, 1914138554), - o(174292421, 2731055270), - o(289380356, 3203993006), - o(460393269, 320620315), - o(685471733, 587496836), - o(852142971, 1086792851), - o(1017036298, 365543100), - o(1126000580, 2618297676), - o(1288033470, 3409855158), - o(1501505948, 4234509866), - o(1607167915, 987167468), - o(1816402316, 1246189591), - ], - e1 = []; - !(function () { - for (var t = 0; t < 80; t++) e1[t] = o(); - })(); - r = r.SHA512 = e.extend({ - _doReset: function () { - this._hash = new n.init([ - new i.init(1779033703, 4089235720), - new i.init(3144134277, 2227873595), - new i.init(1013904242, 4271175723), - new i.init(2773480762, 1595750129), - new i.init(1359893119, 2917565137), - new i.init(2600822924, 725511199), - new i.init(528734635, 4215389547), - new i.init(1541459225, 327033209), - ]); - }, - _doProcessBlock: function (t, e) { - for ( - var r = this._hash.words, - i = r[0], - n = r[1], - o = r[2], - s = r[3], - c = r[4], - a = r[5], - h = r[6], - l = r[7], - f = i.high, - d = i.low, - u = n.high, - p = n.low, - _ = o.high, - y = o.low, - v = s.high, - g = s.low, - B = c.high, - w = c.low, - k = a.high, - m = a.low, - S = h.high, - x = h.low, - b = l.high, - r = l.low, - A = f, - H = d, - z = u, - C = p, - D = _, - E = y, - R = v, - M = g, - F = B, - P = w, - W = k, - O = m, - I = S, - U = x, - K = b, - X = r, - L = 0; - L < 80; - L++ - ) { - var j, - T, - N = e1[L]; - L < 16 - ? ((T = N.high = 0 | t[e + 2 * L]), - (j = N.low = 0 | t[e + 2 * L + 1])) - : (($ = (q = e1[L - 15]).high), - (J = q.low), - (G = (Q = e1[L - 2]).high), - (V = Q.low), - (Z = (Y = e1[L - 7]).high), - (q = Y.low), - (Y = (Q = e1[L - 16]).high), - (T = - (T = - ((($ >>> 1) | (J << 31)) ^ - (($ >>> 8) | (J << 24)) ^ - ($ >>> 7)) + - Z + - ((j = - (Z = - ((J >>> 1) | ($ << 31)) ^ - ((J >>> 8) | ($ << 24)) ^ - ((J >>> 7) | ($ << 25))) + q) >>> - 0 < - Z >>> 0 - ? 1 - : 0)) + - (((G >>> 19) | (V << 13)) ^ - ((G << 3) | (V >>> 29)) ^ - (G >>> 6)) + - ((j += J = - ((V >>> 19) | (G << 13)) ^ - ((V << 3) | (G >>> 29)) ^ - ((V >>> 6) | (G << 26))) >>> - 0 < - J >>> 0 - ? 1 - : 0)), - (j += $ = Q.low), - (N.high = T = T + Y + (j >>> 0 < $ >>> 0 ? 1 : 0)), - (N.low = j)); - var q = (F & W) ^ (~F & I), - Z = (P & O) ^ (~P & U), - V = (A & z) ^ (A & D) ^ (z & D), - G = - ((H >>> 28) | (A << 4)) ^ - ((H << 30) | (A >>> 2)) ^ - ((H << 25) | (A >>> 7)), - J = t1[L], - Q = J.high, - Y = J.low, - $ = - X + - (((P >>> 14) | (F << 18)) ^ - ((P >>> 18) | (F << 14)) ^ - ((P << 23) | (F >>> 9))), - N = - K + - (((F >>> 14) | (P << 18)) ^ - ((F >>> 18) | (P << 14)) ^ - ((F << 23) | (P >>> 9))) + - ($ >>> 0 < X >>> 0 ? 1 : 0), - J = G + ((H & C) ^ (H & E) ^ (C & E)), - K = I, - X = U, - I = W, - U = O, - W = F, - O = P, - F = - (R + - (N = - (N = - (N = N + q + (($ = $ + Z) >>> 0 < Z >>> 0 ? 1 : 0)) + - Q + - (($ = $ + Y) >>> 0 < Y >>> 0 ? 1 : 0)) + - T + - (($ = $ + j) >>> 0 < j >>> 0 ? 1 : 0)) + - ((P = (M + $) | 0) >>> 0 < M >>> 0 ? 1 : 0)) | - 0, - R = D, - M = E, - D = z, - E = C, - z = A, - C = H, - A = - (N + - ((((A >>> 28) | (H << 4)) ^ - ((A << 30) | (H >>> 2)) ^ - ((A << 25) | (H >>> 7))) + - V + - (J >>> 0 < G >>> 0 ? 1 : 0)) + - ((H = ($ + J) | 0) >>> 0 < $ >>> 0 ? 1 : 0)) | - 0; - } - (d = i.low = d + H), - (i.high = f + A + (d >>> 0 < H >>> 0 ? 1 : 0)), - (p = n.low = p + C), - (n.high = u + z + (p >>> 0 < C >>> 0 ? 1 : 0)), - (y = o.low = y + E), - (o.high = _ + D + (y >>> 0 < E >>> 0 ? 1 : 0)), - (g = s.low = g + M), - (s.high = v + R + (g >>> 0 < M >>> 0 ? 1 : 0)), - (w = c.low = w + P), - (c.high = B + F + (w >>> 0 < P >>> 0 ? 1 : 0)), - (m = a.low = m + O), - (a.high = k + W + (m >>> 0 < O >>> 0 ? 1 : 0)), - (x = h.low = x + U), - (h.high = S + I + (x >>> 0 < U >>> 0 ? 1 : 0)), - (r = l.low = r + X), - (l.high = b + K + (r >>> 0 < X >>> 0 ? 1 : 0)); - }, - _doFinalize: function () { - var t = this._data, - e = t.words, - r = 8 * this._nDataBytes, - i = 8 * t.sigBytes; - return ( - (e[i >>> 5] |= 128 << (24 - (i % 32))), - (e[30 + (((128 + i) >>> 10) << 5)] = Math.floor(r / 4294967296)), - (e[31 + (((128 + i) >>> 10) << 5)] = r), - (t.sigBytes = 4 * e.length), - this._process(), - this._hash.toX32() - ); - }, - clone: function () { - var t = e.clone.call(this); - return (t._hash = this._hash.clone()), t; - }, - blockSize: 32, - }); - (t.SHA512 = e._createHelper(r)), (t.HmacSHA512 = e._createHmacHelper(r)); - })(), - (P = (M = U).x64), - (c = P.Word), - (f = P.WordArray), - (P = M.algo), - (d = P.SHA512), - (P = P.SHA384 = - d.extend({ - _doReset: function () { - this._hash = new f.init([ - new c.init(3418070365, 3238371032), - new c.init(1654270250, 914150663), - new c.init(2438529370, 812702999), - new c.init(355462360, 4144912697), - new c.init(1731405415, 4290775857), - new c.init(2394180231, 1750603025), - new c.init(3675008525, 1694076839), - new c.init(1203062813, 3204075428), - ]); - }, - _doFinalize: function () { - var t = d._doFinalize.call(this); - return (t.sigBytes -= 16), t; - }, - })), - (M.SHA384 = d._createHelper(P)), - (M.HmacSHA384 = d._createHmacHelper(P)), - (function (l) { - var t = U, - e = t.lib, - f = e.WordArray, - i = e.Hasher, - d = t.x64.Word, - e = t.algo, - A = [], - H = [], - z = []; - !(function () { - for (var t = 1, e = 0, r = 0; r < 24; r++) { - A[t + 5 * e] = (((r + 1) * (r + 2)) / 2) % 64; - var i = (2 * t + 3 * e) % 5; - (t = e % 5), (e = i); - } - for (t = 0; t < 5; t++) - for (e = 0; e < 5; e++) H[t + 5 * e] = e + ((2 * t + 3 * e) % 5) * 5; - for (var n = 1, o = 0; o < 24; o++) { - for (var s, c = 0, a = 0, h = 0; h < 7; h++) - 1 & n && - ((s = (1 << h) - 1) < 32 ? (a ^= 1 << s) : (c ^= 1 << (s - 32))), - 128 & n ? (n = (n << 1) ^ 113) : (n <<= 1); - z[o] = d.create(c, a); - } - })(); - var C = []; - !(function () { - for (var t = 0; t < 25; t++) C[t] = d.create(); - })(); - e = e.SHA3 = i.extend({ - cfg: i.cfg.extend({ outputLength: 512 }), - _doReset: function () { - for (var t = (this._state = []), e = 0; e < 25; e++) - t[e] = new d.init(); - this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32; - }, - _doProcessBlock: function (t, e) { - for (var r = this._state, i = this.blockSize / 2, n = 0; n < i; n++) { - var o = t[e + 2 * n], - s = t[e + 2 * n + 1], - o = - (16711935 & ((o << 8) | (o >>> 24))) | - (4278255360 & ((o << 24) | (o >>> 8))); - ((m = r[n]).high ^= s = - (16711935 & ((s << 8) | (s >>> 24))) | - (4278255360 & ((s << 24) | (s >>> 8)))), - (m.low ^= o); - } - for (var c = 0; c < 24; c++) { - for (var a = 0; a < 5; a++) { - for (var h = 0, l = 0, f = 0; f < 5; f++) - (h ^= (m = r[a + 5 * f]).high), (l ^= m.low); - var d = C[a]; - (d.high = h), (d.low = l); - } - for (a = 0; a < 5; a++) - for ( - var u = C[(a + 4) % 5], - p = C[(a + 1) % 5], - _ = p.high, - p = p.low, - h = u.high ^ ((_ << 1) | (p >>> 31)), - l = u.low ^ ((p << 1) | (_ >>> 31)), - f = 0; - f < 5; - f++ - ) - ((m = r[a + 5 * f]).high ^= h), (m.low ^= l); - for (var y = 1; y < 25; y++) { - var v = (m = r[y]).high, - g = m.low, - B = A[y]; - l = - B < 32 - ? ((h = (v << B) | (g >>> (32 - B))), - (g << B) | (v >>> (32 - B))) - : ((h = (g << (B - 32)) | (v >>> (64 - B))), - (v << (B - 32)) | (g >>> (64 - B))); - B = C[H[y]]; - (B.high = h), (B.low = l); - } - var w = C[0], - k = r[0]; - (w.high = k.high), (w.low = k.low); - for (a = 0; a < 5; a++) - for (f = 0; f < 5; f++) { - var m = r[(y = a + 5 * f)], - S = C[y], - x = C[((a + 1) % 5) + 5 * f], - b = C[((a + 2) % 5) + 5 * f]; - (m.high = S.high ^ (~x.high & b.high)), - (m.low = S.low ^ (~x.low & b.low)); - } - (m = r[0]), (k = z[c]); - (m.high ^= k.high), (m.low ^= k.low); - } - }, - _doFinalize: function () { - var t = this._data, - e = t.words, - r = (this._nDataBytes, 8 * t.sigBytes), - i = 32 * this.blockSize; - (e[r >>> 5] |= 1 << (24 - (r % 32))), - (e[((l.ceil((1 + r) / i) * i) >>> 5) - 1] |= 128), - (t.sigBytes = 4 * e.length), - this._process(); - for ( - var n = this._state, - e = this.cfg.outputLength / 8, - o = e / 8, - s = [], - c = 0; - c < o; - c++ - ) { - var a = n[c], - h = a.high, - a = a.low, - h = - (16711935 & ((h << 8) | (h >>> 24))) | - (4278255360 & ((h << 24) | (h >>> 8))); - s.push( - (a = - (16711935 & ((a << 8) | (a >>> 24))) | - (4278255360 & ((a << 24) | (a >>> 8)))), - ), - s.push(h); - } - return new f.init(s, e); - }, - clone: function () { - for ( - var t = i.clone.call(this), - e = (t._state = this._state.slice(0)), - r = 0; - r < 25; - r++ - ) - e[r] = e[r].clone(); - return t; - }, - }); - (t.SHA3 = i._createHelper(e)), (t.HmacSHA3 = i._createHmacHelper(e)); - })(Math), - Math, - (F = (w = U).lib), - (u = F.WordArray), - (p = F.Hasher), - (F = w.algo), - (S = u.create([ - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, - 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, - 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, - 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13, - ])), - (x = u.create([ - 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, - 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, - 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, - 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11, - ])), - (b = u.create([ - 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, - 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, - 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, - 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6, - ])), - (A = u.create([ - 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, - 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, - 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, - 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11, - ])), - (H = u.create([0, 1518500249, 1859775393, 2400959708, 2840853838])), - (z = u.create([1352829926, 1548603684, 1836072691, 2053994217, 0])), - (F = F.RIPEMD160 = - p.extend({ - _doReset: function () { - this._hash = u.create([ - 1732584193, 4023233417, 2562383102, 271733878, 3285377520, - ]); - }, - _doProcessBlock: function (t, e) { - for (var r = 0; r < 16; r++) { - var i = e + r, - n = t[i]; - t[i] = - (16711935 & ((n << 8) | (n >>> 24))) | - (4278255360 & ((n << 24) | (n >>> 8))); - } - for ( - var o, - s, - c, - a, - h, - l, - f = this._hash.words, - d = H.words, - u = z.words, - p = S.words, - _ = x.words, - y = b.words, - v = A.words, - g = (o = f[0]), - B = (s = f[1]), - w = (c = f[2]), - k = (a = f[3]), - m = (h = f[4]), - r = 0; - r < 80; - r += 1 - ) - (l = (o + t[e + p[r]]) | 0), - (l += - r < 16 - ? (s ^ c ^ a) + d[0] - : r < 32 - ? K(s, c, a) + d[1] - : r < 48 - ? ((s | ~c) ^ a) + d[2] - : r < 64 - ? X(s, c, a) + d[3] - : (s ^ (c | ~a)) + d[4]), - (l = ((l = L((l |= 0), y[r])) + h) | 0), - (o = h), - (h = a), - (a = L(c, 10)), - (c = s), - (s = l), - (l = (g + t[e + _[r]]) | 0), - (l += - r < 16 - ? (B ^ (w | ~k)) + u[0] - : r < 32 - ? X(B, w, k) + u[1] - : r < 48 - ? ((B | ~w) ^ k) + u[2] - : r < 64 - ? K(B, w, k) + u[3] - : (B ^ w ^ k) + u[4]), - (l = ((l = L((l |= 0), v[r])) + m) | 0), - (g = m), - (m = k), - (k = L(w, 10)), - (w = B), - (B = l); - (l = (f[1] + c + k) | 0), - (f[1] = (f[2] + a + m) | 0), - (f[2] = (f[3] + h + g) | 0), - (f[3] = (f[4] + o + B) | 0), - (f[4] = (f[0] + s + w) | 0), - (f[0] = l); - }, - _doFinalize: function () { - var t = this._data, - e = t.words, - r = 8 * this._nDataBytes, - i = 8 * t.sigBytes; - (e[i >>> 5] |= 128 << (24 - (i % 32))), - (e[14 + (((64 + i) >>> 9) << 4)] = - (16711935 & ((r << 8) | (r >>> 24))) | - (4278255360 & ((r << 24) | (r >>> 8)))), - (t.sigBytes = 4 * (e.length + 1)), - this._process(); - for (var e = this._hash, n = e.words, o = 0; o < 5; o++) { - var s = n[o]; - n[o] = - (16711935 & ((s << 8) | (s >>> 24))) | - (4278255360 & ((s << 24) | (s >>> 8))); - } - return e; - }, - clone: function () { - var t = p.clone.call(this); - return (t._hash = this._hash.clone()), t; - }, - })), - (w.RIPEMD160 = p._createHelper(F)), - (w.HmacRIPEMD160 = p._createHmacHelper(F)), - (P = (M = U).lib.Base), - (_ = M.enc.Utf8), - (M.algo.HMAC = P.extend({ - init: function (t, e) { - (t = this._hasher = new t.init()), - "string" == typeof e && (e = _.parse(e)); - var r = t.blockSize, - i = 4 * r; - (e = e.sigBytes > i ? t.finalize(e) : e).clamp(); - for ( - var t = (this._oKey = e.clone()), - e = (this._iKey = e.clone()), - n = t.words, - o = e.words, - s = 0; - s < r; - s++ - ) - (n[s] ^= 1549556828), (o[s] ^= 909522486); - (t.sigBytes = e.sigBytes = i), this.reset(); - }, - reset: function () { - var t = this._hasher; - t.reset(), t.update(this._iKey); - }, - update: function (t) { - return this._hasher.update(t), this; - }, - finalize: function (t) { - var e = this._hasher, - t = e.finalize(t); - return e.reset(), e.finalize(this._oKey.clone().concat(t)); - }, - })), - (F = (w = U).lib), - (M = F.Base), - (v = F.WordArray), - (P = w.algo), - (F = P.SHA1), - (g = P.HMAC), - (y = P.PBKDF2 = - M.extend({ - cfg: M.extend({ keySize: 4, hasher: F, iterations: 1 }), - init: function (t) { - this.cfg = this.cfg.extend(t); - }, - compute: function (t, e) { - for ( - var r = this.cfg, - i = g.create(r.hasher, t), - n = v.create(), - o = v.create([1]), - s = n.words, - c = o.words, - a = r.keySize, - h = r.iterations; - s.length < a; - - ) { - var l = i.update(e).finalize(o); - i.reset(); - for (var f = l.words, d = f.length, u = l, p = 1; p < h; p++) { - (u = i.finalize(u)), i.reset(); - for (var _ = u.words, y = 0; y < d; y++) f[y] ^= _[y]; - } - n.concat(l), c[0]++; - } - return (n.sigBytes = 4 * a), n; - }, - })), - (w.PBKDF2 = function (t, e, r) { - return y.create(r).compute(t, e); - }), - (M = (P = U).lib), - (F = M.Base), - (B = M.WordArray), - (w = P.algo), - (M = w.MD5), - (k = w.EvpKDF = - F.extend({ - cfg: F.extend({ keySize: 4, hasher: M, iterations: 1 }), - init: function (t) { - this.cfg = this.cfg.extend(t); - }, - compute: function (t, e) { - for ( - var r, - i = this.cfg, - n = i.hasher.create(), - o = B.create(), - s = o.words, - c = i.keySize, - a = i.iterations; - s.length < c; - - ) { - r && n.update(r), (r = n.update(t).finalize(e)), n.reset(); - for (var h = 1; h < a; h++) (r = n.finalize(r)), n.reset(); - o.concat(r); - } - return (o.sigBytes = 4 * c), o; - }, - })), - (P.EvpKDF = function (t, e, r) { - return k.create(r).compute(t, e); - }), - U.lib.Cipher || - (function () { - var t = U, - e = t.lib, - r = e.Base, - s = e.WordArray, - i = e.BufferedBlockAlgorithm, - n = t.enc, - o = (n.Utf8, n.Base64), - c = t.algo.EvpKDF, - a = (e.Cipher = i.extend({ - cfg: r.extend(), - createEncryptor: function (t, e) { - return this.create(this._ENC_XFORM_MODE, t, e); - }, - createDecryptor: function (t, e) { - return this.create(this._DEC_XFORM_MODE, t, e); - }, - init: function (t, e, r) { - (this.cfg = this.cfg.extend(r)), - (this._xformMode = t), - (this._key = e), - this.reset(); - }, - reset: function () { - i.reset.call(this), this._doReset(); - }, - process: function (t) { - return this._append(t), this._process(); - }, - finalize: function (t) { - return t && this._append(t), this._doFinalize(); - }, - keySize: 4, - ivSize: 4, - _ENC_XFORM_MODE: 1, - _DEC_XFORM_MODE: 2, - _createHelper: function (i) { - return { - encrypt: function (t, e, r) { - return h(e).encrypt(i, t, e, r); - }, - decrypt: function (t, e, r) { - return h(e).decrypt(i, t, e, r); - }, - }; - }, - })); - function h(t) { - return "string" == typeof t ? p : u; - } - e.StreamCipher = a.extend({ - _doFinalize: function () { - return this._process(!0); - }, - blockSize: 1, - }); - var l = (t.mode = {}), - n = (e.BlockCipherMode = r.extend({ - createEncryptor: function (t, e) { - return this.Encryptor.create(t, e); - }, - createDecryptor: function (t, e) { - return this.Decryptor.create(t, e); - }, - init: function (t, e) { - (this._cipher = t), (this._iv = e); - }, - })), - n = (l.CBC = - (((l = n.extend()).Encryptor = l.extend({ - processBlock: function (t, e) { - var r = this._cipher, - i = r.blockSize; - f.call(this, t, e, i), - r.encryptBlock(t, e), - (this._prevBlock = t.slice(e, e + i)); - }, - })), - (l.Decryptor = l.extend({ - processBlock: function (t, e) { - var r = this._cipher, - i = r.blockSize, - n = t.slice(e, e + i); - r.decryptBlock(t, e), - f.call(this, t, e, i), - (this._prevBlock = n); - }, - })), - l)); - function f(t, e, r) { - var i, - n = this._iv; - n ? ((i = n), (this._iv = void 0)) : (i = this._prevBlock); - for (var o = 0; o < r; o++) t[e + o] ^= i[o]; - } - var l = ((t.pad = {}).Pkcs7 = { - pad: function (t, e) { - for ( - var e = 4 * e, - r = e - (t.sigBytes % e), - i = (r << 24) | (r << 16) | (r << 8) | r, - n = [], - o = 0; - o < r; - o += 4 - ) - n.push(i); - e = s.create(n, r); - t.concat(e); - }, - unpad: function (t) { - var e = 255 & t.words[(t.sigBytes - 1) >>> 2]; - t.sigBytes -= e; - }, - }), - d = - ((e.BlockCipher = a.extend({ - cfg: a.cfg.extend({ mode: n, padding: l }), - reset: function () { - var t; - a.reset.call(this); - var e = this.cfg, - r = e.iv, - e = e.mode; - this._xformMode == this._ENC_XFORM_MODE - ? (t = e.createEncryptor) - : ((t = e.createDecryptor), (this._minBufferSize = 1)), - this._mode && this._mode.__creator == t - ? this._mode.init(this, r && r.words) - : ((this._mode = t.call(e, this, r && r.words)), - (this._mode.__creator = t)); - }, - _doProcessBlock: function (t, e) { - this._mode.processBlock(t, e); - }, - _doFinalize: function () { - var t, - e = this.cfg.padding; - return ( - this._xformMode == this._ENC_XFORM_MODE - ? (e.pad(this._data, this.blockSize), - (t = this._process(!0))) - : ((t = this._process(!0)), e.unpad(t)), - t - ); - }, - blockSize: 4, - })), - (e.CipherParams = r.extend({ - init: function (t) { - this.mixIn(t); - }, - toString: function (t) { - return (t || this.formatter).stringify(this); - }, - }))), - l = ((t.format = {}).OpenSSL = { - stringify: function (t) { - var e = t.ciphertext, - t = t.salt, - e = t - ? s.create([1398893684, 1701076831]).concat(t).concat(e) - : e; - return e.toString(o); - }, - parse: function (t) { - var e, - r = o.parse(t), - t = r.words; - return ( - 1398893684 == t[0] && - 1701076831 == t[1] && - ((e = s.create(t.slice(2, 4))), - t.splice(0, 4), - (r.sigBytes -= 16)), - d.create({ ciphertext: r, salt: e }) - ); - }, - }), - u = (e.SerializableCipher = r.extend({ - cfg: r.extend({ format: l }), - encrypt: function (t, e, r, i) { - i = this.cfg.extend(i); - var n = t.createEncryptor(r, i), - e = n.finalize(e), - n = n.cfg; - return d.create({ - ciphertext: e, - key: r, - iv: n.iv, - algorithm: t, - mode: n.mode, - padding: n.padding, - blockSize: t.blockSize, - formatter: i.format, - }); - }, - decrypt: function (t, e, r, i) { - return ( - (i = this.cfg.extend(i)), - (e = this._parse(e, i.format)), - t.createDecryptor(r, i).finalize(e.ciphertext) - ); - }, - _parse: function (t, e) { - return "string" == typeof t ? e.parse(t, this) : t; - }, - })), - t = ((t.kdf = {}).OpenSSL = { - execute: function (t, e, r, i) { - i = i || s.random(8); - (t = c.create({ keySize: e + r }).compute(t, i)), - (r = s.create(t.words.slice(e), 4 * r)); - return (t.sigBytes = 4 * e), d.create({ key: t, iv: r, salt: i }); - }, - }), - p = (e.PasswordBasedCipher = u.extend({ - cfg: u.cfg.extend({ kdf: t }), - encrypt: function (t, e, r, i) { - r = (i = this.cfg.extend(i)).kdf.execute(r, t.keySize, t.ivSize); - i.iv = r.iv; - i = u.encrypt.call(this, t, e, r.key, i); - return i.mixIn(r), i; - }, - decrypt: function (t, e, r, i) { - (i = this.cfg.extend(i)), (e = this._parse(e, i.format)); - r = i.kdf.execute(r, t.keySize, t.ivSize, e.salt); - return (i.iv = r.iv), u.decrypt.call(this, t, e, r.key, i); - }, - })); - })(), - (U.mode.CFB = - (((F = U.lib.BlockCipherMode.extend()).Encryptor = F.extend({ - processBlock: function (t, e) { - var r = this._cipher, - i = r.blockSize; - j.call(this, t, e, i, r), (this._prevBlock = t.slice(e, e + i)); - }, - })), - (F.Decryptor = F.extend({ - processBlock: function (t, e) { - var r = this._cipher, - i = r.blockSize, - n = t.slice(e, e + i); - j.call(this, t, e, i, r), (this._prevBlock = n); - }, - })), - F)), - (U.mode.CTR = - ((M = U.lib.BlockCipherMode.extend()), - (P = M.Encryptor = - M.extend({ - processBlock: function (t, e) { - var r = this._cipher, - i = r.blockSize, - n = this._iv, - o = this._counter; - n && ((o = this._counter = n.slice(0)), (this._iv = void 0)); - var s = o.slice(0); - r.encryptBlock(s, 0), (o[i - 1] = (o[i - 1] + 1) | 0); - for (var c = 0; c < i; c++) t[e + c] ^= s[c]; - }, - })), - (M.Decryptor = P), - M)), - (U.mode.CTRGladman = - ((F = U.lib.BlockCipherMode.extend()), - (P = F.Encryptor = - F.extend({ - processBlock: function (t, e) { - var r = this._cipher, - i = r.blockSize, - n = this._iv, - o = this._counter; - n && ((o = this._counter = n.slice(0)), (this._iv = void 0)), - 0 === ((n = o)[0] = T(n[0])) && (n[1] = T(n[1])); - var s = o.slice(0); - r.encryptBlock(s, 0); - for (var c = 0; c < i; c++) t[e + c] ^= s[c]; - }, - })), - (F.Decryptor = P), - F)), - (U.mode.OFB = - ((M = U.lib.BlockCipherMode.extend()), - (P = M.Encryptor = - M.extend({ - processBlock: function (t, e) { - var r = this._cipher, - i = r.blockSize, - n = this._iv, - o = this._keystream; - n && ((o = this._keystream = n.slice(0)), (this._iv = void 0)), - r.encryptBlock(o, 0); - for (var s = 0; s < i; s++) t[e + s] ^= o[s]; - }, - })), - (M.Decryptor = P), - M)), - (U.mode.ECB = - (((F = U.lib.BlockCipherMode.extend()).Encryptor = F.extend({ - processBlock: function (t, e) { - this._cipher.encryptBlock(t, e); - }, - })), - (F.Decryptor = F.extend({ - processBlock: function (t, e) { - this._cipher.decryptBlock(t, e); - }, - })), - F)), - (U.pad.AnsiX923 = { - pad: function (t, e) { - var r = t.sigBytes, - e = 4 * e, - e = e - (r % e), - r = r + e - 1; - t.clamp(), - (t.words[r >>> 2] |= e << (24 - (r % 4) * 8)), - (t.sigBytes += e); - }, - unpad: function (t) { - var e = 255 & t.words[(t.sigBytes - 1) >>> 2]; - t.sigBytes -= e; - }, - }), - (U.pad.Iso10126 = { - pad: function (t, e) { - (e *= 4), (e -= t.sigBytes % e); - t.concat(U.lib.WordArray.random(e - 1)).concat( - U.lib.WordArray.create([e << 24], 1), - ); - }, - unpad: function (t) { - var e = 255 & t.words[(t.sigBytes - 1) >>> 2]; - t.sigBytes -= e; - }, - }), - (U.pad.Iso97971 = { - pad: function (t, e) { - t.concat(U.lib.WordArray.create([2147483648], 1)), - U.pad.ZeroPadding.pad(t, e); - }, - unpad: function (t) { - U.pad.ZeroPadding.unpad(t), t.sigBytes--; - }, - }), - (U.pad.ZeroPadding = { - pad: function (t, e) { - e *= 4; - t.clamp(), (t.sigBytes += e - (t.sigBytes % e || e)); - }, - unpad: function (t) { - for ( - var e = t.words, r = t.sigBytes - 1, r = t.sigBytes - 1; - 0 <= r; - r-- - ) - if ((e[r >>> 2] >>> (24 - (r % 4) * 8)) & 255) { - t.sigBytes = r + 1; - break; - } - }, - }), - (U.pad.NoPadding = { pad: function () {}, unpad: function () {} }), - (m = (P = U).lib.CipherParams), - (C = P.enc.Hex), - (P.format.Hex = { - stringify: function (t) { - return t.ciphertext.toString(C); - }, - parse: function (t) { - t = C.parse(t); - return m.create({ ciphertext: t }); - }, - }), - (function () { - var t = U, - e = t.lib.BlockCipher, - r = t.algo, - h = [], - l = [], - f = [], - d = [], - u = [], - p = [], - _ = [], - y = [], - v = [], - g = []; - !(function () { - for (var t = [], e = 0; e < 256; e++) - t[e] = e < 128 ? e << 1 : (e << 1) ^ 283; - for (var r = 0, i = 0, e = 0; e < 256; e++) { - var n = i ^ (i << 1) ^ (i << 2) ^ (i << 3) ^ (i << 4); - h[r] = n = (n >>> 8) ^ (255 & n) ^ 99; - var o = t[(l[n] = r)], - s = t[o], - c = t[s], - a = (257 * t[n]) ^ (16843008 * n); - (f[r] = (a << 24) | (a >>> 8)), - (d[r] = (a << 16) | (a >>> 16)), - (u[r] = (a << 8) | (a >>> 24)), - (p[r] = a), - (_[n] = - ((a = - (16843009 * c) ^ (65537 * s) ^ (257 * o) ^ (16843008 * r)) << - 24) | - (a >>> 8)), - (y[n] = (a << 16) | (a >>> 16)), - (v[n] = (a << 8) | (a >>> 24)), - (g[n] = a), - r ? ((r = o ^ t[t[t[c ^ o]]]), (i ^= t[t[i]])) : (r = i = 1); - } - })(); - var B = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54], - r = (r.AES = e.extend({ - _doReset: function () { - if (!this._nRounds || this._keyPriorReset !== this._key) { - for ( - var t = (this._keyPriorReset = this._key), - e = t.words, - r = t.sigBytes / 4, - i = 4 * (1 + (this._nRounds = 6 + r)), - n = (this._keySchedule = []), - o = 0; - o < i; - o++ - ) - o < r - ? (n[o] = e[o]) - : ((a = n[o - 1]), - o % r - ? 6 < r && - o % r == 4 && - (a = - (h[a >>> 24] << 24) | - (h[(a >>> 16) & 255] << 16) | - (h[(a >>> 8) & 255] << 8) | - h[255 & a]) - : ((a = - (h[(a = (a << 8) | (a >>> 24)) >>> 24] << 24) | - (h[(a >>> 16) & 255] << 16) | - (h[(a >>> 8) & 255] << 8) | - h[255 & a]), - (a ^= B[(o / r) | 0] << 24)), - (n[o] = n[o - r] ^ a)); - for (var s = (this._invKeySchedule = []), c = 0; c < i; c++) { - var a, - o = i - c; - (a = c % 4 ? n[o] : n[o - 4]), - (s[c] = - c < 4 || o <= 4 - ? a - : _[h[a >>> 24]] ^ - y[h[(a >>> 16) & 255]] ^ - v[h[(a >>> 8) & 255]] ^ - g[h[255 & a]]); - } - } - }, - encryptBlock: function (t, e) { - this._doCryptBlock(t, e, this._keySchedule, f, d, u, p, h); - }, - decryptBlock: function (t, e) { - var r = t[e + 1]; - (t[e + 1] = t[e + 3]), - (t[e + 3] = r), - this._doCryptBlock(t, e, this._invKeySchedule, _, y, v, g, l); - r = t[e + 1]; - (t[e + 1] = t[e + 3]), (t[e + 3] = r); - }, - _doCryptBlock: function (t, e, r, i, n, o, s, c) { - for ( - var a = this._nRounds, - h = t[e] ^ r[0], - l = t[e + 1] ^ r[1], - f = t[e + 2] ^ r[2], - d = t[e + 3] ^ r[3], - u = 4, - p = 1; - p < a; - p++ - ) - var _ = - i[h >>> 24] ^ - n[(l >>> 16) & 255] ^ - o[(f >>> 8) & 255] ^ - s[255 & d] ^ - r[u++], - y = - i[l >>> 24] ^ - n[(f >>> 16) & 255] ^ - o[(d >>> 8) & 255] ^ - s[255 & h] ^ - r[u++], - v = - i[f >>> 24] ^ - n[(d >>> 16) & 255] ^ - o[(h >>> 8) & 255] ^ - s[255 & l] ^ - r[u++], - g = - i[d >>> 24] ^ - n[(h >>> 16) & 255] ^ - o[(l >>> 8) & 255] ^ - s[255 & f] ^ - r[u++], - h = _, - l = y, - f = v, - d = g; - (_ = - ((c[h >>> 24] << 24) | - (c[(l >>> 16) & 255] << 16) | - (c[(f >>> 8) & 255] << 8) | - c[255 & d]) ^ - r[u++]), - (y = - ((c[l >>> 24] << 24) | - (c[(f >>> 16) & 255] << 16) | - (c[(d >>> 8) & 255] << 8) | - c[255 & h]) ^ - r[u++]), - (v = - ((c[f >>> 24] << 24) | - (c[(d >>> 16) & 255] << 16) | - (c[(h >>> 8) & 255] << 8) | - c[255 & l]) ^ - r[u++]), - (g = - ((c[d >>> 24] << 24) | - (c[(h >>> 16) & 255] << 16) | - (c[(l >>> 8) & 255] << 8) | - c[255 & f]) ^ - r[u++]); - (t[e] = _), (t[e + 1] = y), (t[e + 2] = v), (t[e + 3] = g); - }, - keySize: 8, - })); - t.AES = e._createHelper(r); - })(), - (function () { - var t = U, - e = t.lib, - i = e.WordArray, - r = e.BlockCipher, - e = t.algo, - h = [ - 57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, - 43, 35, 27, 19, 11, 3, 60, 52, 44, 36, 63, 55, 47, 39, 31, 23, 15, 7, - 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, - 12, 4, - ], - l = [ - 14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10, 23, 19, 12, 4, 26, 8, 16, - 7, 27, 20, 13, 2, 41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48, 44, - 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32, - ], - f = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28], - d = [ - { - 0: 8421888, - 268435456: 32768, - 536870912: 8421378, - 805306368: 2, - 1073741824: 512, - 1342177280: 8421890, - 1610612736: 8389122, - 1879048192: 8388608, - 2147483648: 514, - 2415919104: 8389120, - 2684354560: 33280, - 2952790016: 8421376, - 3221225472: 32770, - 3489660928: 8388610, - 3758096384: 0, - 4026531840: 33282, - 134217728: 0, - 402653184: 8421890, - 671088640: 33282, - 939524096: 32768, - 1207959552: 8421888, - 1476395008: 512, - 1744830464: 8421378, - 2013265920: 2, - 2281701376: 8389120, - 2550136832: 33280, - 2818572288: 8421376, - 3087007744: 8389122, - 3355443200: 8388610, - 3623878656: 32770, - 3892314112: 514, - 4160749568: 8388608, - 1: 32768, - 268435457: 2, - 536870913: 8421888, - 805306369: 8388608, - 1073741825: 8421378, - 1342177281: 33280, - 1610612737: 512, - 1879048193: 8389122, - 2147483649: 8421890, - 2415919105: 8421376, - 2684354561: 8388610, - 2952790017: 33282, - 3221225473: 514, - 3489660929: 8389120, - 3758096385: 32770, - 4026531841: 0, - 134217729: 8421890, - 402653185: 8421376, - 671088641: 8388608, - 939524097: 512, - 1207959553: 32768, - 1476395009: 8388610, - 1744830465: 2, - 2013265921: 33282, - 2281701377: 32770, - 2550136833: 8389122, - 2818572289: 514, - 3087007745: 8421888, - 3355443201: 8389120, - 3623878657: 0, - 3892314113: 33280, - 4160749569: 8421378, - }, - { - 0: 1074282512, - 16777216: 16384, - 33554432: 524288, - 50331648: 1074266128, - 67108864: 1073741840, - 83886080: 1074282496, - 100663296: 1073758208, - 117440512: 16, - 134217728: 540672, - 150994944: 1073758224, - 167772160: 1073741824, - 184549376: 540688, - 201326592: 524304, - 218103808: 0, - 234881024: 16400, - 251658240: 1074266112, - 8388608: 1073758208, - 25165824: 540688, - 41943040: 16, - 58720256: 1073758224, - 75497472: 1074282512, - 92274688: 1073741824, - 109051904: 524288, - 125829120: 1074266128, - 142606336: 524304, - 159383552: 0, - 176160768: 16384, - 192937984: 1074266112, - 209715200: 1073741840, - 226492416: 540672, - 243269632: 1074282496, - 260046848: 16400, - 268435456: 0, - 285212672: 1074266128, - 301989888: 1073758224, - 318767104: 1074282496, - 335544320: 1074266112, - 352321536: 16, - 369098752: 540688, - 385875968: 16384, - 402653184: 16400, - 419430400: 524288, - 436207616: 524304, - 452984832: 1073741840, - 469762048: 540672, - 486539264: 1073758208, - 503316480: 1073741824, - 520093696: 1074282512, - 276824064: 540688, - 293601280: 524288, - 310378496: 1074266112, - 327155712: 16384, - 343932928: 1073758208, - 360710144: 1074282512, - 377487360: 16, - 394264576: 1073741824, - 411041792: 1074282496, - 427819008: 1073741840, - 444596224: 1073758224, - 461373440: 524304, - 478150656: 0, - 494927872: 16400, - 511705088: 1074266128, - 528482304: 540672, - }, - { - 0: 260, - 1048576: 0, - 2097152: 67109120, - 3145728: 65796, - 4194304: 65540, - 5242880: 67108868, - 6291456: 67174660, - 7340032: 67174400, - 8388608: 67108864, - 9437184: 67174656, - 10485760: 65792, - 11534336: 67174404, - 12582912: 67109124, - 13631488: 65536, - 14680064: 4, - 15728640: 256, - 524288: 67174656, - 1572864: 67174404, - 2621440: 0, - 3670016: 67109120, - 4718592: 67108868, - 5767168: 65536, - 6815744: 65540, - 7864320: 260, - 8912896: 4, - 9961472: 256, - 11010048: 67174400, - 12058624: 65796, - 13107200: 65792, - 14155776: 67109124, - 15204352: 67174660, - 16252928: 67108864, - 16777216: 67174656, - 17825792: 65540, - 18874368: 65536, - 19922944: 67109120, - 20971520: 256, - 22020096: 67174660, - 23068672: 67108868, - 24117248: 0, - 25165824: 67109124, - 26214400: 67108864, - 27262976: 4, - 28311552: 65792, - 29360128: 67174400, - 30408704: 260, - 31457280: 65796, - 32505856: 67174404, - 17301504: 67108864, - 18350080: 260, - 19398656: 67174656, - 20447232: 0, - 21495808: 65540, - 22544384: 67109120, - 23592960: 256, - 24641536: 67174404, - 25690112: 65536, - 26738688: 67174660, - 27787264: 65796, - 28835840: 67108868, - 29884416: 67109124, - 30932992: 67174400, - 31981568: 4, - 33030144: 65792, - }, - { - 0: 2151682048, - 65536: 2147487808, - 131072: 4198464, - 196608: 2151677952, - 262144: 0, - 327680: 4198400, - 393216: 2147483712, - 458752: 4194368, - 524288: 2147483648, - 589824: 4194304, - 655360: 64, - 720896: 2147487744, - 786432: 2151678016, - 851968: 4160, - 917504: 4096, - 983040: 2151682112, - 32768: 2147487808, - 98304: 64, - 163840: 2151678016, - 229376: 2147487744, - 294912: 4198400, - 360448: 2151682112, - 425984: 0, - 491520: 2151677952, - 557056: 4096, - 622592: 2151682048, - 688128: 4194304, - 753664: 4160, - 819200: 2147483648, - 884736: 4194368, - 950272: 4198464, - 1015808: 2147483712, - 1048576: 4194368, - 1114112: 4198400, - 1179648: 2147483712, - 1245184: 0, - 1310720: 4160, - 1376256: 2151678016, - 1441792: 2151682048, - 1507328: 2147487808, - 1572864: 2151682112, - 1638400: 2147483648, - 1703936: 2151677952, - 1769472: 4198464, - 1835008: 2147487744, - 1900544: 4194304, - 1966080: 64, - 2031616: 4096, - 1081344: 2151677952, - 1146880: 2151682112, - 1212416: 0, - 1277952: 4198400, - 1343488: 4194368, - 1409024: 2147483648, - 1474560: 2147487808, - 1540096: 64, - 1605632: 2147483712, - 1671168: 4096, - 1736704: 2147487744, - 1802240: 2151678016, - 1867776: 4160, - 1933312: 2151682048, - 1998848: 4194304, - 2064384: 4198464, - }, - { - 0: 128, - 4096: 17039360, - 8192: 262144, - 12288: 536870912, - 16384: 537133184, - 20480: 16777344, - 24576: 553648256, - 28672: 262272, - 32768: 16777216, - 36864: 537133056, - 40960: 536871040, - 45056: 553910400, - 49152: 553910272, - 53248: 0, - 57344: 17039488, - 61440: 553648128, - 2048: 17039488, - 6144: 553648256, - 10240: 128, - 14336: 17039360, - 18432: 262144, - 22528: 537133184, - 26624: 553910272, - 30720: 536870912, - 34816: 537133056, - 38912: 0, - 43008: 553910400, - 47104: 16777344, - 51200: 536871040, - 55296: 553648128, - 59392: 16777216, - 63488: 262272, - 65536: 262144, - 69632: 128, - 73728: 536870912, - 77824: 553648256, - 81920: 16777344, - 86016: 553910272, - 90112: 537133184, - 94208: 16777216, - 98304: 553910400, - 102400: 553648128, - 106496: 17039360, - 110592: 537133056, - 114688: 262272, - 118784: 536871040, - 122880: 0, - 126976: 17039488, - 67584: 553648256, - 71680: 16777216, - 75776: 17039360, - 79872: 537133184, - 83968: 536870912, - 88064: 17039488, - 92160: 128, - 96256: 553910272, - 100352: 262272, - 104448: 553910400, - 108544: 0, - 112640: 553648128, - 116736: 16777344, - 120832: 262144, - 124928: 537133056, - 129024: 536871040, - }, - { - 0: 268435464, - 256: 8192, - 512: 270532608, - 768: 270540808, - 1024: 268443648, - 1280: 2097152, - 1536: 2097160, - 1792: 268435456, - 2048: 0, - 2304: 268443656, - 2560: 2105344, - 2816: 8, - 3072: 270532616, - 3328: 2105352, - 3584: 8200, - 3840: 270540800, - 128: 270532608, - 384: 270540808, - 640: 8, - 896: 2097152, - 1152: 2105352, - 1408: 268435464, - 1664: 268443648, - 1920: 8200, - 2176: 2097160, - 2432: 8192, - 2688: 268443656, - 2944: 270532616, - 3200: 0, - 3456: 270540800, - 3712: 2105344, - 3968: 268435456, - 4096: 268443648, - 4352: 270532616, - 4608: 270540808, - 4864: 8200, - 5120: 2097152, - 5376: 268435456, - 5632: 268435464, - 5888: 2105344, - 6144: 2105352, - 6400: 0, - 6656: 8, - 6912: 270532608, - 7168: 8192, - 7424: 268443656, - 7680: 270540800, - 7936: 2097160, - 4224: 8, - 4480: 2105344, - 4736: 2097152, - 4992: 268435464, - 5248: 268443648, - 5504: 8200, - 5760: 270540808, - 6016: 270532608, - 6272: 270540800, - 6528: 270532616, - 6784: 8192, - 7040: 2105352, - 7296: 2097160, - 7552: 0, - 7808: 268435456, - 8064: 268443656, - }, - { - 0: 1048576, - 16: 33555457, - 32: 1024, - 48: 1049601, - 64: 34604033, - 80: 0, - 96: 1, - 112: 34603009, - 128: 33555456, - 144: 1048577, - 160: 33554433, - 176: 34604032, - 192: 34603008, - 208: 1025, - 224: 1049600, - 240: 33554432, - 8: 34603009, - 24: 0, - 40: 33555457, - 56: 34604032, - 72: 1048576, - 88: 33554433, - 104: 33554432, - 120: 1025, - 136: 1049601, - 152: 33555456, - 168: 34603008, - 184: 1048577, - 200: 1024, - 216: 34604033, - 232: 1, - 248: 1049600, - 256: 33554432, - 272: 1048576, - 288: 33555457, - 304: 34603009, - 320: 1048577, - 336: 33555456, - 352: 34604032, - 368: 1049601, - 384: 1025, - 400: 34604033, - 416: 1049600, - 432: 1, - 448: 0, - 464: 34603008, - 480: 33554433, - 496: 1024, - 264: 1049600, - 280: 33555457, - 296: 34603009, - 312: 1, - 328: 33554432, - 344: 1048576, - 360: 1025, - 376: 34604032, - 392: 33554433, - 408: 34603008, - 424: 0, - 440: 34604033, - 456: 1049601, - 472: 1024, - 488: 33555456, - 504: 1048577, - }, - { - 0: 134219808, - 1: 131072, - 2: 134217728, - 3: 32, - 4: 131104, - 5: 134350880, - 6: 134350848, - 7: 2048, - 8: 134348800, - 9: 134219776, - 10: 133120, - 11: 134348832, - 12: 2080, - 13: 0, - 14: 134217760, - 15: 133152, - 2147483648: 2048, - 2147483649: 134350880, - 2147483650: 134219808, - 2147483651: 134217728, - 2147483652: 134348800, - 2147483653: 133120, - 2147483654: 133152, - 2147483655: 32, - 2147483656: 134217760, - 2147483657: 2080, - 2147483658: 131104, - 2147483659: 134350848, - 2147483660: 0, - 2147483661: 134348832, - 2147483662: 134219776, - 2147483663: 131072, - 16: 133152, - 17: 134350848, - 18: 32, - 19: 2048, - 20: 134219776, - 21: 134217760, - 22: 134348832, - 23: 131072, - 24: 0, - 25: 131104, - 26: 134348800, - 27: 134219808, - 28: 134350880, - 29: 133120, - 30: 2080, - 31: 134217728, - 2147483664: 131072, - 2147483665: 2048, - 2147483666: 134348832, - 2147483667: 133152, - 2147483668: 32, - 2147483669: 134348800, - 2147483670: 134217728, - 2147483671: 134219808, - 2147483672: 134350880, - 2147483673: 134217760, - 2147483674: 134219776, - 2147483675: 0, - 2147483676: 133120, - 2147483677: 2080, - 2147483678: 131104, - 2147483679: 134350848, - }, - ], - u = [ - 4160749569, 528482304, 33030144, 2064384, 129024, 8064, 504, - 2147483679, - ], - n = (e.DES = r.extend({ - _doReset: function () { - for (var t = this._key.words, e = [], r = 0; r < 56; r++) { - var i = h[r] - 1; - e[r] = (t[i >>> 5] >>> (31 - (i % 32))) & 1; - } - for (var n = (this._subKeys = []), o = 0; o < 16; o++) { - for (var s = (n[o] = []), c = f[o], r = 0; r < 24; r++) - (s[(r / 6) | 0] |= e[(l[r] - 1 + c) % 28] << (31 - (r % 6))), - (s[4 + ((r / 6) | 0)] |= - e[28 + ((l[r + 24] - 1 + c) % 28)] << (31 - (r % 6))); - s[0] = (s[0] << 1) | (s[0] >>> 31); - for (r = 1; r < 7; r++) s[r] = s[r] >>> (4 * (r - 1) + 3); - s[7] = (s[7] << 5) | (s[7] >>> 27); - } - for (var a = (this._invSubKeys = []), r = 0; r < 16; r++) - a[r] = n[15 - r]; - }, - encryptBlock: function (t, e) { - this._doCryptBlock(t, e, this._subKeys); - }, - decryptBlock: function (t, e) { - this._doCryptBlock(t, e, this._invSubKeys); - }, - _doCryptBlock: function (t, e, r) { - (this._lBlock = t[e]), - (this._rBlock = t[e + 1]), - p.call(this, 4, 252645135), - p.call(this, 16, 65535), - _.call(this, 2, 858993459), - _.call(this, 8, 16711935), - p.call(this, 1, 1431655765); - for (var i = 0; i < 16; i++) { - for ( - var n = r[i], o = this._lBlock, s = this._rBlock, c = 0, a = 0; - a < 8; - a++ - ) - c |= d[a][((s ^ n[a]) & u[a]) >>> 0]; - (this._lBlock = s), (this._rBlock = o ^ c); - } - var h = this._lBlock; - (this._lBlock = this._rBlock), - (this._rBlock = h), - p.call(this, 1, 1431655765), - _.call(this, 8, 16711935), - _.call(this, 2, 858993459), - p.call(this, 16, 65535), - p.call(this, 4, 252645135), - (t[e] = this._lBlock), - (t[e + 1] = this._rBlock); - }, - keySize: 2, - ivSize: 2, - blockSize: 2, - })); - function p(t, e) { - e = ((this._lBlock >>> t) ^ this._rBlock) & e; - (this._rBlock ^= e), (this._lBlock ^= e << t); - } - function _(t, e) { - e = ((this._rBlock >>> t) ^ this._lBlock) & e; - (this._lBlock ^= e), (this._rBlock ^= e << t); - } - t.DES = r._createHelper(n); - e = e.TripleDES = r.extend({ - _doReset: function () { - var t = this._key.words; - if (2 !== t.length && 4 !== t.length && t.length < 6) - throw new Error( - "Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.", - ); - var e = t.slice(0, 2), - r = t.length < 4 ? t.slice(0, 2) : t.slice(2, 4), - t = t.length < 6 ? t.slice(0, 2) : t.slice(4, 6); - (this._des1 = n.createEncryptor(i.create(e))), - (this._des2 = n.createEncryptor(i.create(r))), - (this._des3 = n.createEncryptor(i.create(t))); - }, - encryptBlock: function (t, e) { - this._des1.encryptBlock(t, e), - this._des2.decryptBlock(t, e), - this._des3.encryptBlock(t, e); - }, - decryptBlock: function (t, e) { - this._des3.decryptBlock(t, e), - this._des2.encryptBlock(t, e), - this._des1.decryptBlock(t, e); - }, - keySize: 6, - ivSize: 2, - blockSize: 2, - }); - t.TripleDES = r._createHelper(e); - })(), - (function () { - var t = U, - e = t.lib.StreamCipher, - r = t.algo, - i = (r.RC4 = e.extend({ - _doReset: function () { - for ( - var t = this._key, - e = t.words, - r = t.sigBytes, - i = (this._S = []), - n = 0; - n < 256; - n++ - ) - i[n] = n; - for (var n = 0, o = 0; n < 256; n++) { - var s = n % r, - s = (e[s >>> 2] >>> (24 - (s % 4) * 8)) & 255, - o = (o + i[n] + s) % 256, - s = i[n]; - (i[n] = i[o]), (i[o] = s); - } - this._i = this._j = 0; - }, - _doProcessBlock: function (t, e) { - t[e] ^= n.call(this); - }, - keySize: 8, - ivSize: 0, - })); - function n() { - for ( - var t = this._S, e = this._i, r = this._j, i = 0, n = 0; - n < 4; - n++ - ) { - var r = (r + t[(e = (e + 1) % 256)]) % 256, - o = t[e]; - (t[e] = t[r]), - (t[r] = o), - (i |= t[(t[e] + t[r]) % 256] << (24 - 8 * n)); - } - return (this._i = e), (this._j = r), i; - } - t.RC4 = e._createHelper(i); - r = r.RC4Drop = i.extend({ - cfg: i.cfg.extend({ drop: 192 }), - _doReset: function () { - i._doReset.call(this); - for (var t = this.cfg.drop; 0 < t; t--) n.call(this); - }, - }); - t.RC4Drop = e._createHelper(r); - })(), - (F = (M = U).lib.StreamCipher), - (P = M.algo), - (D = []), - (E = []), - (R = []), - (P = P.Rabbit = - F.extend({ - _doReset: function () { - for (var t = this._key.words, e = this.cfg.iv, r = 0; r < 4; r++) - t[r] = - (16711935 & ((t[r] << 8) | (t[r] >>> 24))) | - (4278255360 & ((t[r] << 24) | (t[r] >>> 8))); - for ( - var i = (this._X = [ - t[0], - (t[3] << 16) | (t[2] >>> 16), - t[1], - (t[0] << 16) | (t[3] >>> 16), - t[2], - (t[1] << 16) | (t[0] >>> 16), - t[3], - (t[2] << 16) | (t[1] >>> 16), - ]), - n = (this._C = [ - (t[2] << 16) | (t[2] >>> 16), - (4294901760 & t[0]) | (65535 & t[1]), - (t[3] << 16) | (t[3] >>> 16), - (4294901760 & t[1]) | (65535 & t[2]), - (t[0] << 16) | (t[0] >>> 16), - (4294901760 & t[2]) | (65535 & t[3]), - (t[1] << 16) | (t[1] >>> 16), - (4294901760 & t[3]) | (65535 & t[0]), - ]), - r = (this._b = 0); - r < 4; - r++ - ) - N.call(this); - for (r = 0; r < 8; r++) n[r] ^= i[(r + 4) & 7]; - if (e) { - var o = e.words, - s = o[0], - c = o[1], - e = - (16711935 & ((s << 8) | (s >>> 24))) | - (4278255360 & ((s << 24) | (s >>> 8))), - o = - (16711935 & ((c << 8) | (c >>> 24))) | - (4278255360 & ((c << 24) | (c >>> 8))), - s = (e >>> 16) | (4294901760 & o), - c = (o << 16) | (65535 & e); - (n[0] ^= e), - (n[1] ^= s), - (n[2] ^= o), - (n[3] ^= c), - (n[4] ^= e), - (n[5] ^= s), - (n[6] ^= o), - (n[7] ^= c); - for (r = 0; r < 4; r++) N.call(this); - } - }, - _doProcessBlock: function (t, e) { - var r = this._X; - N.call(this), - (D[0] = r[0] ^ (r[5] >>> 16) ^ (r[3] << 16)), - (D[1] = r[2] ^ (r[7] >>> 16) ^ (r[5] << 16)), - (D[2] = r[4] ^ (r[1] >>> 16) ^ (r[7] << 16)), - (D[3] = r[6] ^ (r[3] >>> 16) ^ (r[1] << 16)); - for (var i = 0; i < 4; i++) - (D[i] = - (16711935 & ((D[i] << 8) | (D[i] >>> 24))) | - (4278255360 & ((D[i] << 24) | (D[i] >>> 8)))), - (t[e + i] ^= D[i]); - }, - blockSize: 4, - ivSize: 2, - })), - (M.Rabbit = F._createHelper(P)), - (F = (M = U).lib.StreamCipher), - (P = M.algo), - (W = []), - (O = []), - (I = []), - (P = P.RabbitLegacy = - F.extend({ - _doReset: function () { - for ( - var t = this._key.words, - e = this.cfg.iv, - r = (this._X = [ - t[0], - (t[3] << 16) | (t[2] >>> 16), - t[1], - (t[0] << 16) | (t[3] >>> 16), - t[2], - (t[1] << 16) | (t[0] >>> 16), - t[3], - (t[2] << 16) | (t[1] >>> 16), - ]), - i = (this._C = [ - (t[2] << 16) | (t[2] >>> 16), - (4294901760 & t[0]) | (65535 & t[1]), - (t[3] << 16) | (t[3] >>> 16), - (4294901760 & t[1]) | (65535 & t[2]), - (t[0] << 16) | (t[0] >>> 16), - (4294901760 & t[2]) | (65535 & t[3]), - (t[1] << 16) | (t[1] >>> 16), - (4294901760 & t[3]) | (65535 & t[0]), - ]), - n = (this._b = 0); - n < 4; - n++ - ) - q.call(this); - for (n = 0; n < 8; n++) i[n] ^= r[(n + 4) & 7]; - if (e) { - var o = e.words, - s = o[0], - t = o[1], - e = - (16711935 & ((s << 8) | (s >>> 24))) | - (4278255360 & ((s << 24) | (s >>> 8))), - o = - (16711935 & ((t << 8) | (t >>> 24))) | - (4278255360 & ((t << 24) | (t >>> 8))), - s = (e >>> 16) | (4294901760 & o), - t = (o << 16) | (65535 & e); - (i[0] ^= e), - (i[1] ^= s), - (i[2] ^= o), - (i[3] ^= t), - (i[4] ^= e), - (i[5] ^= s), - (i[6] ^= o), - (i[7] ^= t); - for (n = 0; n < 4; n++) q.call(this); - } - }, - _doProcessBlock: function (t, e) { - var r = this._X; - q.call(this), - (W[0] = r[0] ^ (r[5] >>> 16) ^ (r[3] << 16)), - (W[1] = r[2] ^ (r[7] >>> 16) ^ (r[5] << 16)), - (W[2] = r[4] ^ (r[1] >>> 16) ^ (r[7] << 16)), - (W[3] = r[6] ^ (r[3] >>> 16) ^ (r[1] << 16)); - for (var i = 0; i < 4; i++) - (W[i] = - (16711935 & ((W[i] << 8) | (W[i] >>> 24))) | - (4278255360 & ((W[i] << 24) | (W[i] >>> 8)))), - (t[e + i] ^= W[i]); - }, - blockSize: 4, - ivSize: 2, - })), - (M.RabbitLegacy = F._createHelper(P)), - U - ); -}); +!function(t,e){"object"==typeof exports?module.exports=exports=e():"function"==typeof define&&define.amd?define([],e):t.CryptoJS=e()}(this,function(){var n,o,s,a,h,t,e,l,r,i,c,f,d,u,p,S,x,b,A,H,z,_,v,g,y,B,w,k,m,C,D,E,R,M,F,P,W,O,I,U=U||function(h){var i;if("undefined"!=typeof window&&window.crypto&&(i=window.crypto),"undefined"!=typeof self&&self.crypto&&(i=self.crypto),!(i=!(i=!(i="undefined"!=typeof globalThis&&globalThis.crypto?globalThis.crypto:i)&&"undefined"!=typeof window&&window.msCrypto?window.msCrypto:i)&&"undefined"!=typeof global&&global.crypto?global.crypto:i)&&"function"==typeof require)try{i=require("crypto")}catch(t){}var r=Object.create||function(t){return e.prototype=t,t=new e,e.prototype=null,t};function e(){}var t={},n=t.lib={},o=n.Base={extend:function(t){var e=r(this);return t&&e.mixIn(t),e.hasOwnProperty("init")&&this.init!==e.init||(e.init=function(){e.$super.init.apply(this,arguments)}),(e.init.prototype=e).$super=this,e},create:function(){var t=this.extend();return t.init.apply(t,arguments),t},init:function(){},mixIn:function(t){for(var e in t)t.hasOwnProperty(e)&&(this[e]=t[e]);t.hasOwnProperty("toString")&&(this.toString=t.toString)},clone:function(){return this.init.prototype.extend(this)}},l=n.WordArray=o.extend({init:function(t,e){t=this.words=t||[],this.sigBytes=null!=e?e:4*t.length},toString:function(t){return(t||c).stringify(this)},concat:function(t){var e=this.words,r=t.words,i=this.sigBytes,n=t.sigBytes;if(this.clamp(),i%4)for(var o=0;o>>2]>>>24-o%4*8&255;e[i+o>>>2]|=s<<24-(i+o)%4*8}else for(var c=0;c>>2]=r[c>>>2];return this.sigBytes+=n,this},clamp:function(){var t=this.words,e=this.sigBytes;t[e>>>2]&=4294967295<<32-e%4*8,t.length=h.ceil(e/4)},clone:function(){var t=o.clone.call(this);return t.words=this.words.slice(0),t},random:function(t){for(var e=[],r=0;r>>2]>>>24-n%4*8&255;i.push((o>>>4).toString(16)),i.push((15&o).toString(16))}return i.join("")},parse:function(t){for(var e=t.length,r=[],i=0;i>>3]|=parseInt(t.substr(i,2),16)<<24-i%8*4;return new l.init(r,e/2)}},a=s.Latin1={stringify:function(t){for(var e=t.words,r=t.sigBytes,i=[],n=0;n>>2]>>>24-n%4*8&255;i.push(String.fromCharCode(o))}return i.join("")},parse:function(t){for(var e=t.length,r=[],i=0;i>>2]|=(255&t.charCodeAt(i))<<24-i%4*8;return new l.init(r,e)}},f=s.Utf8={stringify:function(t){try{return decodeURIComponent(escape(a.stringify(t)))}catch(t){throw new Error("Malformed UTF-8 data")}},parse:function(t){return a.parse(unescape(encodeURIComponent(t)))}},d=n.BufferedBlockAlgorithm=o.extend({reset:function(){this._data=new l.init,this._nDataBytes=0},_append:function(t){"string"==typeof t&&(t=f.parse(t)),this._data.concat(t),this._nDataBytes+=t.sigBytes},_process:function(t){var e,r=this._data,i=r.words,n=r.sigBytes,o=this.blockSize,s=n/(4*o),c=(s=t?h.ceil(s):h.max((0|s)-this._minBufferSize,0))*o,n=h.min(4*c,n);if(c){for(var a=0;a>>32-e}function j(t,e,r,i){var n,o=this._iv;o?(n=o.slice(0),this._iv=void 0):n=this._prevBlock,i.encryptBlock(n,0);for(var s=0;s>24&255)?(r=t>>8&255,i=255&t,255===(e=t>>16&255)?(e=0,255===r?(r=0,255===i?i=0:++i):++r):++e,t=0,t+=e<<16,t+=r<<8,t+=i):t+=1<<24,t}function N(){for(var t=this._X,e=this._C,r=0;r<8;r++)E[r]=e[r];e[0]=e[0]+1295307597+this._b|0,e[1]=e[1]+3545052371+(e[0]>>>0>>0?1:0)|0,e[2]=e[2]+886263092+(e[1]>>>0>>0?1:0)|0,e[3]=e[3]+1295307597+(e[2]>>>0>>0?1:0)|0,e[4]=e[4]+3545052371+(e[3]>>>0>>0?1:0)|0,e[5]=e[5]+886263092+(e[4]>>>0>>0?1:0)|0,e[6]=e[6]+1295307597+(e[5]>>>0>>0?1:0)|0,e[7]=e[7]+3545052371+(e[6]>>>0>>0?1:0)|0,this._b=e[7]>>>0>>0?1:0;for(r=0;r<8;r++){var i=t[r]+e[r],n=65535&i,o=i>>>16;R[r]=((n*n>>>17)+n*o>>>15)+o*o^((4294901760&i)*i|0)+((65535&i)*i|0)}t[0]=R[0]+(R[7]<<16|R[7]>>>16)+(R[6]<<16|R[6]>>>16)|0,t[1]=R[1]+(R[0]<<8|R[0]>>>24)+R[7]|0,t[2]=R[2]+(R[1]<<16|R[1]>>>16)+(R[0]<<16|R[0]>>>16)|0,t[3]=R[3]+(R[2]<<8|R[2]>>>24)+R[1]|0,t[4]=R[4]+(R[3]<<16|R[3]>>>16)+(R[2]<<16|R[2]>>>16)|0,t[5]=R[5]+(R[4]<<8|R[4]>>>24)+R[3]|0,t[6]=R[6]+(R[5]<<16|R[5]>>>16)+(R[4]<<16|R[4]>>>16)|0,t[7]=R[7]+(R[6]<<8|R[6]>>>24)+R[5]|0}function q(){for(var t=this._X,e=this._C,r=0;r<8;r++)O[r]=e[r];e[0]=e[0]+1295307597+this._b|0,e[1]=e[1]+3545052371+(e[0]>>>0>>0?1:0)|0,e[2]=e[2]+886263092+(e[1]>>>0>>0?1:0)|0,e[3]=e[3]+1295307597+(e[2]>>>0>>0?1:0)|0,e[4]=e[4]+3545052371+(e[3]>>>0>>0?1:0)|0,e[5]=e[5]+886263092+(e[4]>>>0>>0?1:0)|0,e[6]=e[6]+1295307597+(e[5]>>>0>>0?1:0)|0,e[7]=e[7]+3545052371+(e[6]>>>0>>0?1:0)|0,this._b=e[7]>>>0>>0?1:0;for(r=0;r<8;r++){var i=t[r]+e[r],n=65535&i,o=i>>>16;I[r]=((n*n>>>17)+n*o>>>15)+o*o^((4294901760&i)*i|0)+((65535&i)*i|0)}t[0]=I[0]+(I[7]<<16|I[7]>>>16)+(I[6]<<16|I[6]>>>16)|0,t[1]=I[1]+(I[0]<<8|I[0]>>>24)+I[7]|0,t[2]=I[2]+(I[1]<<16|I[1]>>>16)+(I[0]<<16|I[0]>>>16)|0,t[3]=I[3]+(I[2]<<8|I[2]>>>24)+I[1]|0,t[4]=I[4]+(I[3]<<16|I[3]>>>16)+(I[2]<<16|I[2]>>>16)|0,t[5]=I[5]+(I[4]<<8|I[4]>>>24)+I[3]|0,t[6]=I[6]+(I[5]<<16|I[5]>>>16)+(I[4]<<16|I[4]>>>16)|0,t[7]=I[7]+(I[6]<<8|I[6]>>>24)+I[5]|0}return F=(M=U).lib,n=F.Base,o=F.WordArray,(M=M.x64={}).Word=n.extend({init:function(t,e){this.high=t,this.low=e}}),M.WordArray=n.extend({init:function(t,e){t=this.words=t||[],this.sigBytes=null!=e?e:8*t.length},toX32:function(){for(var t=this.words,e=t.length,r=[],i=0;i>>2]|=t[i]<<24-i%4*8;s.call(this,r,e)}else s.apply(this,arguments)}).prototype=P),function(){var t=U,n=t.lib.WordArray,t=t.enc;t.Utf16=t.Utf16BE={stringify:function(t){for(var e=t.words,r=t.sigBytes,i=[],n=0;n>>2]>>>16-n%4*8&65535;i.push(String.fromCharCode(o))}return i.join("")},parse:function(t){for(var e=t.length,r=[],i=0;i>>1]|=t.charCodeAt(i)<<16-i%2*16;return n.create(r,2*e)}};function s(t){return t<<8&4278255360|t>>>8&16711935}t.Utf16LE={stringify:function(t){for(var e=t.words,r=t.sigBytes,i=[],n=0;n>>2]>>>16-n%4*8&65535);i.push(String.fromCharCode(o))}return i.join("")},parse:function(t){for(var e=t.length,r=[],i=0;i>>1]|=s(t.charCodeAt(i)<<16-i%2*16);return n.create(r,2*e)}}}(),a=(w=U).lib.WordArray,w.enc.Base64={stringify:function(t){var e=t.words,r=t.sigBytes,i=this._map;t.clamp();for(var n=[],o=0;o>>2]>>>24-o%4*8&255)<<16|(e[o+1>>>2]>>>24-(o+1)%4*8&255)<<8|e[o+2>>>2]>>>24-(o+2)%4*8&255,c=0;c<4&&o+.75*c>>6*(3-c)&63));var a=i.charAt(64);if(a)for(;n.length%4;)n.push(a);return n.join("")},parse:function(t){var e=t.length,r=this._map;if(!(i=this._reverseMap))for(var i=this._reverseMap=[],n=0;n>>6-o%4*2,c=s|c,i[n>>>2]|=c<<24-n%4*8,n++)}return a.create(i,n)}(t,e,i)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="},h=(F=U).lib.WordArray,F.enc.Base64url={stringify:function(t,e=!0){var r=t.words,i=t.sigBytes,n=e?this._safe_map:this._map;t.clamp();for(var o=[],s=0;s>>2]>>>24-s%4*8&255)<<16|(r[s+1>>>2]>>>24-(s+1)%4*8&255)<<8|r[s+2>>>2]>>>24-(s+2)%4*8&255,a=0;a<4&&s+.75*a>>6*(3-a)&63));var h=n.charAt(64);if(h)for(;o.length%4;)o.push(h);return o.join("")},parse:function(t,e=!0){var r=t.length,i=e?this._safe_map:this._map;if(!(n=this._reverseMap))for(var n=this._reverseMap=[],o=0;o>>6-o%4*2,c=s|c,i[n>>>2]|=c<<24-n%4*8,n++)}return h.create(i,n)}(t,r,n)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",_safe_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"},function(a){var t=U,e=t.lib,r=e.WordArray,i=e.Hasher,e=t.algo,A=[];!function(){for(var t=0;t<64;t++)A[t]=4294967296*a.abs(a.sin(t+1))|0}();e=e.MD5=i.extend({_doReset:function(){this._hash=new r.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(t,e){for(var r=0;r<16;r++){var i=e+r,n=t[i];t[i]=16711935&(n<<8|n>>>24)|4278255360&(n<<24|n>>>8)}var o=this._hash.words,s=t[e+0],c=t[e+1],a=t[e+2],h=t[e+3],l=t[e+4],f=t[e+5],d=t[e+6],u=t[e+7],p=t[e+8],_=t[e+9],y=t[e+10],v=t[e+11],g=t[e+12],B=t[e+13],w=t[e+14],k=t[e+15],m=H(m=o[0],b=o[1],x=o[2],S=o[3],s,7,A[0]),S=H(S,m,b,x,c,12,A[1]),x=H(x,S,m,b,a,17,A[2]),b=H(b,x,S,m,h,22,A[3]);m=H(m,b,x,S,l,7,A[4]),S=H(S,m,b,x,f,12,A[5]),x=H(x,S,m,b,d,17,A[6]),b=H(b,x,S,m,u,22,A[7]),m=H(m,b,x,S,p,7,A[8]),S=H(S,m,b,x,_,12,A[9]),x=H(x,S,m,b,y,17,A[10]),b=H(b,x,S,m,v,22,A[11]),m=H(m,b,x,S,g,7,A[12]),S=H(S,m,b,x,B,12,A[13]),x=H(x,S,m,b,w,17,A[14]),m=z(m,b=H(b,x,S,m,k,22,A[15]),x,S,c,5,A[16]),S=z(S,m,b,x,d,9,A[17]),x=z(x,S,m,b,v,14,A[18]),b=z(b,x,S,m,s,20,A[19]),m=z(m,b,x,S,f,5,A[20]),S=z(S,m,b,x,y,9,A[21]),x=z(x,S,m,b,k,14,A[22]),b=z(b,x,S,m,l,20,A[23]),m=z(m,b,x,S,_,5,A[24]),S=z(S,m,b,x,w,9,A[25]),x=z(x,S,m,b,h,14,A[26]),b=z(b,x,S,m,p,20,A[27]),m=z(m,b,x,S,B,5,A[28]),S=z(S,m,b,x,a,9,A[29]),x=z(x,S,m,b,u,14,A[30]),m=C(m,b=z(b,x,S,m,g,20,A[31]),x,S,f,4,A[32]),S=C(S,m,b,x,p,11,A[33]),x=C(x,S,m,b,v,16,A[34]),b=C(b,x,S,m,w,23,A[35]),m=C(m,b,x,S,c,4,A[36]),S=C(S,m,b,x,l,11,A[37]),x=C(x,S,m,b,u,16,A[38]),b=C(b,x,S,m,y,23,A[39]),m=C(m,b,x,S,B,4,A[40]),S=C(S,m,b,x,s,11,A[41]),x=C(x,S,m,b,h,16,A[42]),b=C(b,x,S,m,d,23,A[43]),m=C(m,b,x,S,_,4,A[44]),S=C(S,m,b,x,g,11,A[45]),x=C(x,S,m,b,k,16,A[46]),m=D(m,b=C(b,x,S,m,a,23,A[47]),x,S,s,6,A[48]),S=D(S,m,b,x,u,10,A[49]),x=D(x,S,m,b,w,15,A[50]),b=D(b,x,S,m,f,21,A[51]),m=D(m,b,x,S,g,6,A[52]),S=D(S,m,b,x,h,10,A[53]),x=D(x,S,m,b,y,15,A[54]),b=D(b,x,S,m,c,21,A[55]),m=D(m,b,x,S,p,6,A[56]),S=D(S,m,b,x,k,10,A[57]),x=D(x,S,m,b,d,15,A[58]),b=D(b,x,S,m,B,21,A[59]),m=D(m,b,x,S,l,6,A[60]),S=D(S,m,b,x,v,10,A[61]),x=D(x,S,m,b,a,15,A[62]),b=D(b,x,S,m,_,21,A[63]),o[0]=o[0]+m|0,o[1]=o[1]+b|0,o[2]=o[2]+x|0,o[3]=o[3]+S|0},_doFinalize:function(){var t=this._data,e=t.words,r=8*this._nDataBytes,i=8*t.sigBytes;e[i>>>5]|=128<<24-i%32;var n=a.floor(r/4294967296),r=r;e[15+(64+i>>>9<<4)]=16711935&(n<<8|n>>>24)|4278255360&(n<<24|n>>>8),e[14+(64+i>>>9<<4)]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8),t.sigBytes=4*(e.length+1),this._process();for(var e=this._hash,o=e.words,s=0;s<4;s++){var c=o[s];o[s]=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8)}return e},clone:function(){var t=i.clone.call(this);return t._hash=this._hash.clone(),t}});function H(t,e,r,i,n,o,s){s=t+(e&r|~e&i)+n+s;return(s<>>32-o)+e}function z(t,e,r,i,n,o,s){s=t+(e&i|r&~i)+n+s;return(s<>>32-o)+e}function C(t,e,r,i,n,o,s){s=t+(e^r^i)+n+s;return(s<>>32-o)+e}function D(t,e,r,i,n,o,s){s=t+(r^(e|~i))+n+s;return(s<>>32-o)+e}t.MD5=i._createHelper(e),t.HmacMD5=i._createHmacHelper(e)}(Math),P=(M=U).lib,t=P.WordArray,e=P.Hasher,P=M.algo,l=[],P=P.SHA1=e.extend({_doReset:function(){this._hash=new t.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,e){for(var r=this._hash.words,i=r[0],n=r[1],o=r[2],s=r[3],c=r[4],a=0;a<80;a++){a<16?l[a]=0|t[e+a]:(h=l[a-3]^l[a-8]^l[a-14]^l[a-16],l[a]=h<<1|h>>>31);var h=(i<<5|i>>>27)+c+l[a];h+=a<20?1518500249+(n&o|~n&s):a<40?1859775393+(n^o^s):a<60?(n&o|n&s|o&s)-1894007588:(n^o^s)-899497514,c=s,s=o,o=n<<30|n>>>2,n=i,i=h}r[0]=r[0]+i|0,r[1]=r[1]+n|0,r[2]=r[2]+o|0,r[3]=r[3]+s|0,r[4]=r[4]+c|0},_doFinalize:function(){var t=this._data,e=t.words,r=8*this._nDataBytes,i=8*t.sigBytes;return e[i>>>5]|=128<<24-i%32,e[14+(64+i>>>9<<4)]=Math.floor(r/4294967296),e[15+(64+i>>>9<<4)]=r,t.sigBytes=4*e.length,this._process(),this._hash},clone:function(){var t=e.clone.call(this);return t._hash=this._hash.clone(),t}}),M.SHA1=e._createHelper(P),M.HmacSHA1=e._createHmacHelper(P),function(n){var t=U,e=t.lib,r=e.WordArray,i=e.Hasher,e=t.algo,o=[],p=[];!function(){function t(t){return 4294967296*(t-(0|t))|0}for(var e=2,r=0;r<64;)!function(t){for(var e=n.sqrt(t),r=2;r<=e;r++)if(!(t%r))return;return 1}(e)||(r<8&&(o[r]=t(n.pow(e,.5))),p[r]=t(n.pow(e,1/3)),r++),e++}();var _=[],e=e.SHA256=i.extend({_doReset:function(){this._hash=new r.init(o.slice(0))},_doProcessBlock:function(t,e){for(var r=this._hash.words,i=r[0],n=r[1],o=r[2],s=r[3],c=r[4],a=r[5],h=r[6],l=r[7],f=0;f<64;f++){f<16?_[f]=0|t[e+f]:(d=_[f-15],u=_[f-2],_[f]=((d<<25|d>>>7)^(d<<14|d>>>18)^d>>>3)+_[f-7]+((u<<15|u>>>17)^(u<<13|u>>>19)^u>>>10)+_[f-16]);var d=i&n^i&o^n&o,u=l+((c<<26|c>>>6)^(c<<21|c>>>11)^(c<<7|c>>>25))+(c&a^~c&h)+p[f]+_[f],l=h,h=a,a=c,c=s+u|0,s=o,o=n,n=i,i=u+(((i<<30|i>>>2)^(i<<19|i>>>13)^(i<<10|i>>>22))+d)|0}r[0]=r[0]+i|0,r[1]=r[1]+n|0,r[2]=r[2]+o|0,r[3]=r[3]+s|0,r[4]=r[4]+c|0,r[5]=r[5]+a|0,r[6]=r[6]+h|0,r[7]=r[7]+l|0},_doFinalize:function(){var t=this._data,e=t.words,r=8*this._nDataBytes,i=8*t.sigBytes;return e[i>>>5]|=128<<24-i%32,e[14+(64+i>>>9<<4)]=n.floor(r/4294967296),e[15+(64+i>>>9<<4)]=r,t.sigBytes=4*e.length,this._process(),this._hash},clone:function(){var t=i.clone.call(this);return t._hash=this._hash.clone(),t}});t.SHA256=i._createHelper(e),t.HmacSHA256=i._createHmacHelper(e)}(Math),r=(w=U).lib.WordArray,F=w.algo,i=F.SHA256,F=F.SHA224=i.extend({_doReset:function(){this._hash=new r.init([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},_doFinalize:function(){var t=i._doFinalize.call(this);return t.sigBytes-=4,t}}),w.SHA224=i._createHelper(F),w.HmacSHA224=i._createHmacHelper(F),function(){var t=U,e=t.lib.Hasher,r=t.x64,i=r.Word,n=r.WordArray,r=t.algo;function o(){return i.create.apply(i,arguments)}var t1=[o(1116352408,3609767458),o(1899447441,602891725),o(3049323471,3964484399),o(3921009573,2173295548),o(961987163,4081628472),o(1508970993,3053834265),o(2453635748,2937671579),o(2870763221,3664609560),o(3624381080,2734883394),o(310598401,1164996542),o(607225278,1323610764),o(1426881987,3590304994),o(1925078388,4068182383),o(2162078206,991336113),o(2614888103,633803317),o(3248222580,3479774868),o(3835390401,2666613458),o(4022224774,944711139),o(264347078,2341262773),o(604807628,2007800933),o(770255983,1495990901),o(1249150122,1856431235),o(1555081692,3175218132),o(1996064986,2198950837),o(2554220882,3999719339),o(2821834349,766784016),o(2952996808,2566594879),o(3210313671,3203337956),o(3336571891,1034457026),o(3584528711,2466948901),o(113926993,3758326383),o(338241895,168717936),o(666307205,1188179964),o(773529912,1546045734),o(1294757372,1522805485),o(1396182291,2643833823),o(1695183700,2343527390),o(1986661051,1014477480),o(2177026350,1206759142),o(2456956037,344077627),o(2730485921,1290863460),o(2820302411,3158454273),o(3259730800,3505952657),o(3345764771,106217008),o(3516065817,3606008344),o(3600352804,1432725776),o(4094571909,1467031594),o(275423344,851169720),o(430227734,3100823752),o(506948616,1363258195),o(659060556,3750685593),o(883997877,3785050280),o(958139571,3318307427),o(1322822218,3812723403),o(1537002063,2003034995),o(1747873779,3602036899),o(1955562222,1575990012),o(2024104815,1125592928),o(2227730452,2716904306),o(2361852424,442776044),o(2428436474,593698344),o(2756734187,3733110249),o(3204031479,2999351573),o(3329325298,3815920427),o(3391569614,3928383900),o(3515267271,566280711),o(3940187606,3454069534),o(4118630271,4000239992),o(116418474,1914138554),o(174292421,2731055270),o(289380356,3203993006),o(460393269,320620315),o(685471733,587496836),o(852142971,1086792851),o(1017036298,365543100),o(1126000580,2618297676),o(1288033470,3409855158),o(1501505948,4234509866),o(1607167915,987167468),o(1816402316,1246189591)],e1=[];!function(){for(var t=0;t<80;t++)e1[t]=o()}();r=r.SHA512=e.extend({_doReset:function(){this._hash=new n.init([new i.init(1779033703,4089235720),new i.init(3144134277,2227873595),new i.init(1013904242,4271175723),new i.init(2773480762,1595750129),new i.init(1359893119,2917565137),new i.init(2600822924,725511199),new i.init(528734635,4215389547),new i.init(1541459225,327033209)])},_doProcessBlock:function(t,e){for(var r=this._hash.words,i=r[0],n=r[1],o=r[2],s=r[3],c=r[4],a=r[5],h=r[6],l=r[7],f=i.high,d=i.low,u=n.high,p=n.low,_=o.high,y=o.low,v=s.high,g=s.low,B=c.high,w=c.low,k=a.high,m=a.low,S=h.high,x=h.low,b=l.high,r=l.low,A=f,H=d,z=u,C=p,D=_,E=y,R=v,M=g,F=B,P=w,W=k,O=m,I=S,U=x,K=b,X=r,L=0;L<80;L++){var j,T,N=e1[L];L<16?(T=N.high=0|t[e+2*L],j=N.low=0|t[e+2*L+1]):($=(q=e1[L-15]).high,J=q.low,G=(Q=e1[L-2]).high,V=Q.low,Z=(Y=e1[L-7]).high,q=Y.low,Y=(Q=e1[L-16]).high,T=(T=(($>>>1|J<<31)^($>>>8|J<<24)^$>>>7)+Z+((j=(Z=(J>>>1|$<<31)^(J>>>8|$<<24)^(J>>>7|$<<25))+q)>>>0>>0?1:0))+((G>>>19|V<<13)^(G<<3|V>>>29)^G>>>6)+((j+=J=(V>>>19|G<<13)^(V<<3|G>>>29)^(V>>>6|G<<26))>>>0>>0?1:0),j+=$=Q.low,N.high=T=T+Y+(j>>>0<$>>>0?1:0),N.low=j);var q=F&W^~F&I,Z=P&O^~P&U,V=A&z^A&D^z&D,G=(H>>>28|A<<4)^(H<<30|A>>>2)^(H<<25|A>>>7),J=t1[L],Q=J.high,Y=J.low,$=X+((P>>>14|F<<18)^(P>>>18|F<<14)^(P<<23|F>>>9)),N=K+((F>>>14|P<<18)^(F>>>18|P<<14)^(F<<23|P>>>9))+($>>>0>>0?1:0),J=G+(H&C^H&E^C&E),K=I,X=U,I=W,U=O,W=F,O=P,F=R+(N=(N=(N=N+q+(($=$+Z)>>>0>>0?1:0))+Q+(($=$+Y)>>>0>>0?1:0))+T+(($=$+j)>>>0>>0?1:0))+((P=M+$|0)>>>0>>0?1:0)|0,R=D,M=E,D=z,E=C,z=A,C=H,A=N+(((A>>>28|H<<4)^(A<<30|H>>>2)^(A<<25|H>>>7))+V+(J>>>0>>0?1:0))+((H=$+J|0)>>>0<$>>>0?1:0)|0}d=i.low=d+H,i.high=f+A+(d>>>0>>0?1:0),p=n.low=p+C,n.high=u+z+(p>>>0>>0?1:0),y=o.low=y+E,o.high=_+D+(y>>>0>>0?1:0),g=s.low=g+M,s.high=v+R+(g>>>0>>0?1:0),w=c.low=w+P,c.high=B+F+(w>>>0

>>0?1:0),m=a.low=m+O,a.high=k+W+(m>>>0>>0?1:0),x=h.low=x+U,h.high=S+I+(x>>>0>>0?1:0),r=l.low=r+X,l.high=b+K+(r>>>0>>0?1:0)},_doFinalize:function(){var t=this._data,e=t.words,r=8*this._nDataBytes,i=8*t.sigBytes;return e[i>>>5]|=128<<24-i%32,e[30+(128+i>>>10<<5)]=Math.floor(r/4294967296),e[31+(128+i>>>10<<5)]=r,t.sigBytes=4*e.length,this._process(),this._hash.toX32()},clone:function(){var t=e.clone.call(this);return t._hash=this._hash.clone(),t},blockSize:32});t.SHA512=e._createHelper(r),t.HmacSHA512=e._createHmacHelper(r)}(),P=(M=U).x64,c=P.Word,f=P.WordArray,P=M.algo,d=P.SHA512,P=P.SHA384=d.extend({_doReset:function(){this._hash=new f.init([new c.init(3418070365,3238371032),new c.init(1654270250,914150663),new c.init(2438529370,812702999),new c.init(355462360,4144912697),new c.init(1731405415,4290775857),new c.init(2394180231,1750603025),new c.init(3675008525,1694076839),new c.init(1203062813,3204075428)])},_doFinalize:function(){var t=d._doFinalize.call(this);return t.sigBytes-=16,t}}),M.SHA384=d._createHelper(P),M.HmacSHA384=d._createHmacHelper(P),function(l){var t=U,e=t.lib,f=e.WordArray,i=e.Hasher,d=t.x64.Word,e=t.algo,A=[],H=[],z=[];!function(){for(var t=1,e=0,r=0;r<24;r++){A[t+5*e]=(r+1)*(r+2)/2%64;var i=(2*t+3*e)%5;t=e%5,e=i}for(t=0;t<5;t++)for(e=0;e<5;e++)H[t+5*e]=e+(2*t+3*e)%5*5;for(var n=1,o=0;o<24;o++){for(var s,c=0,a=0,h=0;h<7;h++)1&n&&((s=(1<>>24)|4278255360&(o<<24|o>>>8);(m=r[n]).high^=s=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),m.low^=o}for(var c=0;c<24;c++){for(var a=0;a<5;a++){for(var h=0,l=0,f=0;f<5;f++)h^=(m=r[a+5*f]).high,l^=m.low;var d=C[a];d.high=h,d.low=l}for(a=0;a<5;a++)for(var u=C[(a+4)%5],p=C[(a+1)%5],_=p.high,p=p.low,h=u.high^(_<<1|p>>>31),l=u.low^(p<<1|_>>>31),f=0;f<5;f++)(m=r[a+5*f]).high^=h,m.low^=l;for(var y=1;y<25;y++){var v=(m=r[y]).high,g=m.low,B=A[y];l=B<32?(h=v<>>32-B,g<>>32-B):(h=g<>>64-B,v<>>64-B);B=C[H[y]];B.high=h,B.low=l}var w=C[0],k=r[0];w.high=k.high,w.low=k.low;for(a=0;a<5;a++)for(f=0;f<5;f++){var m=r[y=a+5*f],S=C[y],x=C[(a+1)%5+5*f],b=C[(a+2)%5+5*f];m.high=S.high^~x.high&b.high,m.low=S.low^~x.low&b.low}m=r[0],k=z[c];m.high^=k.high,m.low^=k.low}},_doFinalize:function(){var t=this._data,e=t.words,r=(this._nDataBytes,8*t.sigBytes),i=32*this.blockSize;e[r>>>5]|=1<<24-r%32,e[(l.ceil((1+r)/i)*i>>>5)-1]|=128,t.sigBytes=4*e.length,this._process();for(var n=this._state,e=this.cfg.outputLength/8,o=e/8,s=[],c=0;c>>24)|4278255360&(h<<24|h>>>8);s.push(a=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8)),s.push(h)}return new f.init(s,e)},clone:function(){for(var t=i.clone.call(this),e=t._state=this._state.slice(0),r=0;r<25;r++)e[r]=e[r].clone();return t}});t.SHA3=i._createHelper(e),t.HmacSHA3=i._createHmacHelper(e)}(Math),Math,F=(w=U).lib,u=F.WordArray,p=F.Hasher,F=w.algo,S=u.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),x=u.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),b=u.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),A=u.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),H=u.create([0,1518500249,1859775393,2400959708,2840853838]),z=u.create([1352829926,1548603684,1836072691,2053994217,0]),F=F.RIPEMD160=p.extend({_doReset:function(){this._hash=u.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,e){for(var r=0;r<16;r++){var i=e+r,n=t[i];t[i]=16711935&(n<<8|n>>>24)|4278255360&(n<<24|n>>>8)}for(var o,s,c,a,h,l,f=this._hash.words,d=H.words,u=z.words,p=S.words,_=x.words,y=b.words,v=A.words,g=o=f[0],B=s=f[1],w=c=f[2],k=a=f[3],m=h=f[4],r=0;r<80;r+=1)l=o+t[e+p[r]]|0,l+=r<16?(s^c^a)+d[0]:r<32?K(s,c,a)+d[1]:r<48?((s|~c)^a)+d[2]:r<64?X(s,c,a)+d[3]:(s^(c|~a))+d[4],l=(l=L(l|=0,y[r]))+h|0,o=h,h=a,a=L(c,10),c=s,s=l,l=g+t[e+_[r]]|0,l+=r<16?(B^(w|~k))+u[0]:r<32?X(B,w,k)+u[1]:r<48?((B|~w)^k)+u[2]:r<64?K(B,w,k)+u[3]:(B^w^k)+u[4],l=(l=L(l|=0,v[r]))+m|0,g=m,m=k,k=L(w,10),w=B,B=l;l=f[1]+c+k|0,f[1]=f[2]+a+m|0,f[2]=f[3]+h+g|0,f[3]=f[4]+o+B|0,f[4]=f[0]+s+w|0,f[0]=l},_doFinalize:function(){var t=this._data,e=t.words,r=8*this._nDataBytes,i=8*t.sigBytes;e[i>>>5]|=128<<24-i%32,e[14+(64+i>>>9<<4)]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8),t.sigBytes=4*(e.length+1),this._process();for(var e=this._hash,n=e.words,o=0;o<5;o++){var s=n[o];n[o]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8)}return e},clone:function(){var t=p.clone.call(this);return t._hash=this._hash.clone(),t}}),w.RIPEMD160=p._createHelper(F),w.HmacRIPEMD160=p._createHmacHelper(F),P=(M=U).lib.Base,_=M.enc.Utf8,M.algo.HMAC=P.extend({init:function(t,e){t=this._hasher=new t.init,"string"==typeof e&&(e=_.parse(e));var r=t.blockSize,i=4*r;(e=e.sigBytes>i?t.finalize(e):e).clamp();for(var t=this._oKey=e.clone(),e=this._iKey=e.clone(),n=t.words,o=e.words,s=0;s>>2];t.sigBytes-=e}},d=(e.BlockCipher=a.extend({cfg:a.cfg.extend({mode:n,padding:l}),reset:function(){var t;a.reset.call(this);var e=this.cfg,r=e.iv,e=e.mode;this._xformMode==this._ENC_XFORM_MODE?t=e.createEncryptor:(t=e.createDecryptor,this._minBufferSize=1),this._mode&&this._mode.__creator==t?this._mode.init(this,r&&r.words):(this._mode=t.call(e,this,r&&r.words),this._mode.__creator=t)},_doProcessBlock:function(t,e){this._mode.processBlock(t,e)},_doFinalize:function(){var t,e=this.cfg.padding;return this._xformMode==this._ENC_XFORM_MODE?(e.pad(this._data,this.blockSize),t=this._process(!0)):(t=this._process(!0),e.unpad(t)),t},blockSize:4}),e.CipherParams=r.extend({init:function(t){this.mixIn(t)},toString:function(t){return(t||this.formatter).stringify(this)}})),l=(t.format={}).OpenSSL={stringify:function(t){var e=t.ciphertext,t=t.salt,e=t?s.create([1398893684,1701076831]).concat(t).concat(e):e;return e.toString(o)},parse:function(t){var e,r=o.parse(t),t=r.words;return 1398893684==t[0]&&1701076831==t[1]&&(e=s.create(t.slice(2,4)),t.splice(0,4),r.sigBytes-=16),d.create({ciphertext:r,salt:e})}},u=e.SerializableCipher=r.extend({cfg:r.extend({format:l}),encrypt:function(t,e,r,i){i=this.cfg.extend(i);var n=t.createEncryptor(r,i),e=n.finalize(e),n=n.cfg;return d.create({ciphertext:e,key:r,iv:n.iv,algorithm:t,mode:n.mode,padding:n.padding,blockSize:t.blockSize,formatter:i.format})},decrypt:function(t,e,r,i){return i=this.cfg.extend(i),e=this._parse(e,i.format),t.createDecryptor(r,i).finalize(e.ciphertext)},_parse:function(t,e){return"string"==typeof t?e.parse(t,this):t}}),t=(t.kdf={}).OpenSSL={execute:function(t,e,r,i){i=i||s.random(8);t=c.create({keySize:e+r}).compute(t,i),r=s.create(t.words.slice(e),4*r);return t.sigBytes=4*e,d.create({key:t,iv:r,salt:i})}},p=e.PasswordBasedCipher=u.extend({cfg:u.cfg.extend({kdf:t}),encrypt:function(t,e,r,i){r=(i=this.cfg.extend(i)).kdf.execute(r,t.keySize,t.ivSize);i.iv=r.iv;i=u.encrypt.call(this,t,e,r.key,i);return i.mixIn(r),i},decrypt:function(t,e,r,i){i=this.cfg.extend(i),e=this._parse(e,i.format);r=i.kdf.execute(r,t.keySize,t.ivSize,e.salt);return i.iv=r.iv,u.decrypt.call(this,t,e,r.key,i)}})}(),U.mode.CFB=((F=U.lib.BlockCipherMode.extend()).Encryptor=F.extend({processBlock:function(t,e){var r=this._cipher,i=r.blockSize;j.call(this,t,e,i,r),this._prevBlock=t.slice(e,e+i)}}),F.Decryptor=F.extend({processBlock:function(t,e){var r=this._cipher,i=r.blockSize,n=t.slice(e,e+i);j.call(this,t,e,i,r),this._prevBlock=n}}),F),U.mode.CTR=(M=U.lib.BlockCipherMode.extend(),P=M.Encryptor=M.extend({processBlock:function(t,e){var r=this._cipher,i=r.blockSize,n=this._iv,o=this._counter;n&&(o=this._counter=n.slice(0),this._iv=void 0);var s=o.slice(0);r.encryptBlock(s,0),o[i-1]=o[i-1]+1|0;for(var c=0;c>>2]|=e<<24-r%4*8,t.sigBytes+=e},unpad:function(t){var e=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=e}},U.pad.Iso10126={pad:function(t,e){e*=4,e-=t.sigBytes%e;t.concat(U.lib.WordArray.random(e-1)).concat(U.lib.WordArray.create([e<<24],1))},unpad:function(t){var e=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=e}},U.pad.Iso97971={pad:function(t,e){t.concat(U.lib.WordArray.create([2147483648],1)),U.pad.ZeroPadding.pad(t,e)},unpad:function(t){U.pad.ZeroPadding.unpad(t),t.sigBytes--}},U.pad.ZeroPadding={pad:function(t,e){e*=4;t.clamp(),t.sigBytes+=e-(t.sigBytes%e||e)},unpad:function(t){for(var e=t.words,r=t.sigBytes-1,r=t.sigBytes-1;0<=r;r--)if(e[r>>>2]>>>24-r%4*8&255){t.sigBytes=r+1;break}}},U.pad.NoPadding={pad:function(){},unpad:function(){}},m=(P=U).lib.CipherParams,C=P.enc.Hex,P.format.Hex={stringify:function(t){return t.ciphertext.toString(C)},parse:function(t){t=C.parse(t);return m.create({ciphertext:t})}},function(){var t=U,e=t.lib.BlockCipher,r=t.algo,h=[],l=[],f=[],d=[],u=[],p=[],_=[],y=[],v=[],g=[];!function(){for(var t=[],e=0;e<256;e++)t[e]=e<128?e<<1:e<<1^283;for(var r=0,i=0,e=0;e<256;e++){var n=i^i<<1^i<<2^i<<3^i<<4;h[r]=n=n>>>8^255&n^99;var o=t[l[n]=r],s=t[o],c=t[s],a=257*t[n]^16843008*n;f[r]=a<<24|a>>>8,d[r]=a<<16|a>>>16,u[r]=a<<8|a>>>24,p[r]=a,_[n]=(a=16843009*c^65537*s^257*o^16843008*r)<<24|a>>>8,y[n]=a<<16|a>>>16,v[n]=a<<8|a>>>24,g[n]=a,r?(r=o^t[t[t[c^o]]],i^=t[t[i]]):r=i=1}}();var B=[0,1,2,4,8,16,32,64,128,27,54],r=r.AES=e.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var t=this._keyPriorReset=this._key,e=t.words,r=t.sigBytes/4,i=4*(1+(this._nRounds=6+r)),n=this._keySchedule=[],o=0;o>>24]<<24|h[a>>>16&255]<<16|h[a>>>8&255]<<8|h[255&a]):(a=h[(a=a<<8|a>>>24)>>>24]<<24|h[a>>>16&255]<<16|h[a>>>8&255]<<8|h[255&a],a^=B[o/r|0]<<24),n[o]=n[o-r]^a);for(var s=this._invKeySchedule=[],c=0;c>>24]]^y[h[a>>>16&255]]^v[h[a>>>8&255]]^g[h[255&a]]}}},encryptBlock:function(t,e){this._doCryptBlock(t,e,this._keySchedule,f,d,u,p,h)},decryptBlock:function(t,e){var r=t[e+1];t[e+1]=t[e+3],t[e+3]=r,this._doCryptBlock(t,e,this._invKeySchedule,_,y,v,g,l);r=t[e+1];t[e+1]=t[e+3],t[e+3]=r},_doCryptBlock:function(t,e,r,i,n,o,s,c){for(var a=this._nRounds,h=t[e]^r[0],l=t[e+1]^r[1],f=t[e+2]^r[2],d=t[e+3]^r[3],u=4,p=1;p>>24]^n[l>>>16&255]^o[f>>>8&255]^s[255&d]^r[u++],y=i[l>>>24]^n[f>>>16&255]^o[d>>>8&255]^s[255&h]^r[u++],v=i[f>>>24]^n[d>>>16&255]^o[h>>>8&255]^s[255&l]^r[u++],g=i[d>>>24]^n[h>>>16&255]^o[l>>>8&255]^s[255&f]^r[u++],h=_,l=y,f=v,d=g;_=(c[h>>>24]<<24|c[l>>>16&255]<<16|c[f>>>8&255]<<8|c[255&d])^r[u++],y=(c[l>>>24]<<24|c[f>>>16&255]<<16|c[d>>>8&255]<<8|c[255&h])^r[u++],v=(c[f>>>24]<<24|c[d>>>16&255]<<16|c[h>>>8&255]<<8|c[255&l])^r[u++],g=(c[d>>>24]<<24|c[h>>>16&255]<<16|c[l>>>8&255]<<8|c[255&f])^r[u++];t[e]=_,t[e+1]=y,t[e+2]=v,t[e+3]=g},keySize:8});t.AES=e._createHelper(r)}(),function(){var t=U,e=t.lib,i=e.WordArray,r=e.BlockCipher,e=t.algo,h=[57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4],l=[14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32],f=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28],d=[{0:8421888,268435456:32768,536870912:8421378,805306368:2,1073741824:512,1342177280:8421890,1610612736:8389122,1879048192:8388608,2147483648:514,2415919104:8389120,2684354560:33280,2952790016:8421376,3221225472:32770,3489660928:8388610,3758096384:0,4026531840:33282,134217728:0,402653184:8421890,671088640:33282,939524096:32768,1207959552:8421888,1476395008:512,1744830464:8421378,2013265920:2,2281701376:8389120,2550136832:33280,2818572288:8421376,3087007744:8389122,3355443200:8388610,3623878656:32770,3892314112:514,4160749568:8388608,1:32768,268435457:2,536870913:8421888,805306369:8388608,1073741825:8421378,1342177281:33280,1610612737:512,1879048193:8389122,2147483649:8421890,2415919105:8421376,2684354561:8388610,2952790017:33282,3221225473:514,3489660929:8389120,3758096385:32770,4026531841:0,134217729:8421890,402653185:8421376,671088641:8388608,939524097:512,1207959553:32768,1476395009:8388610,1744830465:2,2013265921:33282,2281701377:32770,2550136833:8389122,2818572289:514,3087007745:8421888,3355443201:8389120,3623878657:0,3892314113:33280,4160749569:8421378},{0:1074282512,16777216:16384,33554432:524288,50331648:1074266128,67108864:1073741840,83886080:1074282496,100663296:1073758208,117440512:16,134217728:540672,150994944:1073758224,167772160:1073741824,184549376:540688,201326592:524304,218103808:0,234881024:16400,251658240:1074266112,8388608:1073758208,25165824:540688,41943040:16,58720256:1073758224,75497472:1074282512,92274688:1073741824,109051904:524288,125829120:1074266128,142606336:524304,159383552:0,176160768:16384,192937984:1074266112,209715200:1073741840,226492416:540672,243269632:1074282496,260046848:16400,268435456:0,285212672:1074266128,301989888:1073758224,318767104:1074282496,335544320:1074266112,352321536:16,369098752:540688,385875968:16384,402653184:16400,419430400:524288,436207616:524304,452984832:1073741840,469762048:540672,486539264:1073758208,503316480:1073741824,520093696:1074282512,276824064:540688,293601280:524288,310378496:1074266112,327155712:16384,343932928:1073758208,360710144:1074282512,377487360:16,394264576:1073741824,411041792:1074282496,427819008:1073741840,444596224:1073758224,461373440:524304,478150656:0,494927872:16400,511705088:1074266128,528482304:540672},{0:260,1048576:0,2097152:67109120,3145728:65796,4194304:65540,5242880:67108868,6291456:67174660,7340032:67174400,8388608:67108864,9437184:67174656,10485760:65792,11534336:67174404,12582912:67109124,13631488:65536,14680064:4,15728640:256,524288:67174656,1572864:67174404,2621440:0,3670016:67109120,4718592:67108868,5767168:65536,6815744:65540,7864320:260,8912896:4,9961472:256,11010048:67174400,12058624:65796,13107200:65792,14155776:67109124,15204352:67174660,16252928:67108864,16777216:67174656,17825792:65540,18874368:65536,19922944:67109120,20971520:256,22020096:67174660,23068672:67108868,24117248:0,25165824:67109124,26214400:67108864,27262976:4,28311552:65792,29360128:67174400,30408704:260,31457280:65796,32505856:67174404,17301504:67108864,18350080:260,19398656:67174656,20447232:0,21495808:65540,22544384:67109120,23592960:256,24641536:67174404,25690112:65536,26738688:67174660,27787264:65796,28835840:67108868,29884416:67109124,30932992:67174400,31981568:4,33030144:65792},{0:2151682048,65536:2147487808,131072:4198464,196608:2151677952,262144:0,327680:4198400,393216:2147483712,458752:4194368,524288:2147483648,589824:4194304,655360:64,720896:2147487744,786432:2151678016,851968:4160,917504:4096,983040:2151682112,32768:2147487808,98304:64,163840:2151678016,229376:2147487744,294912:4198400,360448:2151682112,425984:0,491520:2151677952,557056:4096,622592:2151682048,688128:4194304,753664:4160,819200:2147483648,884736:4194368,950272:4198464,1015808:2147483712,1048576:4194368,1114112:4198400,1179648:2147483712,1245184:0,1310720:4160,1376256:2151678016,1441792:2151682048,1507328:2147487808,1572864:2151682112,1638400:2147483648,1703936:2151677952,1769472:4198464,1835008:2147487744,1900544:4194304,1966080:64,2031616:4096,1081344:2151677952,1146880:2151682112,1212416:0,1277952:4198400,1343488:4194368,1409024:2147483648,1474560:2147487808,1540096:64,1605632:2147483712,1671168:4096,1736704:2147487744,1802240:2151678016,1867776:4160,1933312:2151682048,1998848:4194304,2064384:4198464},{0:128,4096:17039360,8192:262144,12288:536870912,16384:537133184,20480:16777344,24576:553648256,28672:262272,32768:16777216,36864:537133056,40960:536871040,45056:553910400,49152:553910272,53248:0,57344:17039488,61440:553648128,2048:17039488,6144:553648256,10240:128,14336:17039360,18432:262144,22528:537133184,26624:553910272,30720:536870912,34816:537133056,38912:0,43008:553910400,47104:16777344,51200:536871040,55296:553648128,59392:16777216,63488:262272,65536:262144,69632:128,73728:536870912,77824:553648256,81920:16777344,86016:553910272,90112:537133184,94208:16777216,98304:553910400,102400:553648128,106496:17039360,110592:537133056,114688:262272,118784:536871040,122880:0,126976:17039488,67584:553648256,71680:16777216,75776:17039360,79872:537133184,83968:536870912,88064:17039488,92160:128,96256:553910272,100352:262272,104448:553910400,108544:0,112640:553648128,116736:16777344,120832:262144,124928:537133056,129024:536871040},{0:268435464,256:8192,512:270532608,768:270540808,1024:268443648,1280:2097152,1536:2097160,1792:268435456,2048:0,2304:268443656,2560:2105344,2816:8,3072:270532616,3328:2105352,3584:8200,3840:270540800,128:270532608,384:270540808,640:8,896:2097152,1152:2105352,1408:268435464,1664:268443648,1920:8200,2176:2097160,2432:8192,2688:268443656,2944:270532616,3200:0,3456:270540800,3712:2105344,3968:268435456,4096:268443648,4352:270532616,4608:270540808,4864:8200,5120:2097152,5376:268435456,5632:268435464,5888:2105344,6144:2105352,6400:0,6656:8,6912:270532608,7168:8192,7424:268443656,7680:270540800,7936:2097160,4224:8,4480:2105344,4736:2097152,4992:268435464,5248:268443648,5504:8200,5760:270540808,6016:270532608,6272:270540800,6528:270532616,6784:8192,7040:2105352,7296:2097160,7552:0,7808:268435456,8064:268443656},{0:1048576,16:33555457,32:1024,48:1049601,64:34604033,80:0,96:1,112:34603009,128:33555456,144:1048577,160:33554433,176:34604032,192:34603008,208:1025,224:1049600,240:33554432,8:34603009,24:0,40:33555457,56:34604032,72:1048576,88:33554433,104:33554432,120:1025,136:1049601,152:33555456,168:34603008,184:1048577,200:1024,216:34604033,232:1,248:1049600,256:33554432,272:1048576,288:33555457,304:34603009,320:1048577,336:33555456,352:34604032,368:1049601,384:1025,400:34604033,416:1049600,432:1,448:0,464:34603008,480:33554433,496:1024,264:1049600,280:33555457,296:34603009,312:1,328:33554432,344:1048576,360:1025,376:34604032,392:33554433,408:34603008,424:0,440:34604033,456:1049601,472:1024,488:33555456,504:1048577},{0:134219808,1:131072,2:134217728,3:32,4:131104,5:134350880,6:134350848,7:2048,8:134348800,9:134219776,10:133120,11:134348832,12:2080,13:0,14:134217760,15:133152,2147483648:2048,2147483649:134350880,2147483650:134219808,2147483651:134217728,2147483652:134348800,2147483653:133120,2147483654:133152,2147483655:32,2147483656:134217760,2147483657:2080,2147483658:131104,2147483659:134350848,2147483660:0,2147483661:134348832,2147483662:134219776,2147483663:131072,16:133152,17:134350848,18:32,19:2048,20:134219776,21:134217760,22:134348832,23:131072,24:0,25:131104,26:134348800,27:134219808,28:134350880,29:133120,30:2080,31:134217728,2147483664:131072,2147483665:2048,2147483666:134348832,2147483667:133152,2147483668:32,2147483669:134348800,2147483670:134217728,2147483671:134219808,2147483672:134350880,2147483673:134217760,2147483674:134219776,2147483675:0,2147483676:133120,2147483677:2080,2147483678:131104,2147483679:134350848}],u=[4160749569,528482304,33030144,2064384,129024,8064,504,2147483679],n=e.DES=r.extend({_doReset:function(){for(var t=this._key.words,e=[],r=0;r<56;r++){var i=h[r]-1;e[r]=t[i>>>5]>>>31-i%32&1}for(var n=this._subKeys=[],o=0;o<16;o++){for(var s=n[o]=[],c=f[o],r=0;r<24;r++)s[r/6|0]|=e[(l[r]-1+c)%28]<<31-r%6,s[4+(r/6|0)]|=e[28+(l[r+24]-1+c)%28]<<31-r%6;s[0]=s[0]<<1|s[0]>>>31;for(r=1;r<7;r++)s[r]=s[r]>>>4*(r-1)+3;s[7]=s[7]<<5|s[7]>>>27}for(var a=this._invSubKeys=[],r=0;r<16;r++)a[r]=n[15-r]},encryptBlock:function(t,e){this._doCryptBlock(t,e,this._subKeys)},decryptBlock:function(t,e){this._doCryptBlock(t,e,this._invSubKeys)},_doCryptBlock:function(t,e,r){this._lBlock=t[e],this._rBlock=t[e+1],p.call(this,4,252645135),p.call(this,16,65535),_.call(this,2,858993459),_.call(this,8,16711935),p.call(this,1,1431655765);for(var i=0;i<16;i++){for(var n=r[i],o=this._lBlock,s=this._rBlock,c=0,a=0;a<8;a++)c|=d[a][((s^n[a])&u[a])>>>0];this._lBlock=s,this._rBlock=o^c}var h=this._lBlock;this._lBlock=this._rBlock,this._rBlock=h,p.call(this,1,1431655765),_.call(this,8,16711935),_.call(this,2,858993459),p.call(this,16,65535),p.call(this,4,252645135),t[e]=this._lBlock,t[e+1]=this._rBlock},keySize:2,ivSize:2,blockSize:2});function p(t,e){e=(this._lBlock>>>t^this._rBlock)&e;this._rBlock^=e,this._lBlock^=e<>>t^this._lBlock)&e;this._lBlock^=e,this._rBlock^=e<192.");var e=t.slice(0,2),r=t.length<4?t.slice(0,2):t.slice(2,4),t=t.length<6?t.slice(0,2):t.slice(4,6);this._des1=n.createEncryptor(i.create(e)),this._des2=n.createEncryptor(i.create(r)),this._des3=n.createEncryptor(i.create(t))},encryptBlock:function(t,e){this._des1.encryptBlock(t,e),this._des2.decryptBlock(t,e),this._des3.encryptBlock(t,e)},decryptBlock:function(t,e){this._des3.decryptBlock(t,e),this._des2.encryptBlock(t,e),this._des1.decryptBlock(t,e)},keySize:6,ivSize:2,blockSize:2});t.TripleDES=r._createHelper(e)}(),function(){var t=U,e=t.lib.StreamCipher,r=t.algo,i=r.RC4=e.extend({_doReset:function(){for(var t=this._key,e=t.words,r=t.sigBytes,i=this._S=[],n=0;n<256;n++)i[n]=n;for(var n=0,o=0;n<256;n++){var s=n%r,s=e[s>>>2]>>>24-s%4*8&255,o=(o+i[n]+s)%256,s=i[n];i[n]=i[o],i[o]=s}this._i=this._j=0},_doProcessBlock:function(t,e){t[e]^=n.call(this)},keySize:8,ivSize:0});function n(){for(var t=this._S,e=this._i,r=this._j,i=0,n=0;n<4;n++){var r=(r+t[e=(e+1)%256])%256,o=t[e];t[e]=t[r],t[r]=o,i|=t[(t[e]+t[r])%256]<<24-8*n}return this._i=e,this._j=r,i}t.RC4=e._createHelper(i);r=r.RC4Drop=i.extend({cfg:i.cfg.extend({drop:192}),_doReset:function(){i._doReset.call(this);for(var t=this.cfg.drop;0>>24)|4278255360&(t[r]<<24|t[r]>>>8);for(var i=this._X=[t[0],t[3]<<16|t[2]>>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],n=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]],r=this._b=0;r<4;r++)N.call(this);for(r=0;r<8;r++)n[r]^=i[r+4&7];if(e){var o=e.words,s=o[0],c=o[1],e=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),o=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8),s=e>>>16|4294901760&o,c=o<<16|65535&e;n[0]^=e,n[1]^=s,n[2]^=o,n[3]^=c,n[4]^=e,n[5]^=s,n[6]^=o,n[7]^=c;for(r=0;r<4;r++)N.call(this)}},_doProcessBlock:function(t,e){var r=this._X;N.call(this),D[0]=r[0]^r[5]>>>16^r[3]<<16,D[1]=r[2]^r[7]>>>16^r[5]<<16,D[2]=r[4]^r[1]>>>16^r[7]<<16,D[3]=r[6]^r[3]>>>16^r[1]<<16;for(var i=0;i<4;i++)D[i]=16711935&(D[i]<<8|D[i]>>>24)|4278255360&(D[i]<<24|D[i]>>>8),t[e+i]^=D[i]},blockSize:4,ivSize:2}),M.Rabbit=F._createHelper(P),F=(M=U).lib.StreamCipher,P=M.algo,W=[],O=[],I=[],P=P.RabbitLegacy=F.extend({_doReset:function(){for(var t=this._key.words,e=this.cfg.iv,r=this._X=[t[0],t[3]<<16|t[2]>>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],i=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]],n=this._b=0;n<4;n++)q.call(this);for(n=0;n<8;n++)i[n]^=r[n+4&7];if(e){var o=e.words,s=o[0],t=o[1],e=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),o=16711935&(t<<8|t>>>24)|4278255360&(t<<24|t>>>8),s=e>>>16|4294901760&o,t=o<<16|65535&e;i[0]^=e,i[1]^=s,i[2]^=o,i[3]^=t,i[4]^=e,i[5]^=s,i[6]^=o,i[7]^=t;for(n=0;n<4;n++)q.call(this)}},_doProcessBlock:function(t,e){var r=this._X;q.call(this),W[0]=r[0]^r[5]>>>16^r[3]<<16,W[1]=r[2]^r[7]>>>16^r[5]<<16,W[2]=r[4]^r[1]>>>16^r[7]<<16,W[3]=r[6]^r[3]>>>16^r[1]<<16;for(var i=0;i<4;i++)W[i]=16711935&(W[i]<<8|W[i]>>>24)|4278255360&(W[i]<<24|W[i]>>>8),t[e+i]^=W[i]},blockSize:4,ivSize:2}),M.RabbitLegacy=F._createHelper(P),U}); \ No newline at end of file diff --git a/libs/httpjsutils.js b/libs/httpjsutils.js index b4baa9d..c8791af 100644 --- a/libs/httpjsutils.js +++ b/libs/httpjsutils.js @@ -1,44 +1,44 @@ function _changeOpacity(e) { - const divId = e.target.id.split("-")[0]; - const div = document.getElementById(divId); - _wrapperDivPositions[divId].opacity = e.target.value; - div.style.opacity = `${e.target.value / 100}`; + const divId = e.target.id.split("-")[0] + const div = document.getElementById(divId) + _wrapperDivPositions[divId].opacity = e.target.value + div.style.opacity = `${e.target.value / 100}` } function _changePage(click) { - const buttonId = click.target.id; - const divId = buttonId.split("-")[0]; - const direction = buttonId.split("-")[1]; - if (direction === "up") { - if (divId === "enemies") { - if (_currentEnemyPage > 0) { - _currentEnemyPage -= 1; - } else { - _currentEnemyPage = _enemiesPokemon.length - 1; - } - } else if (divId === "allies") { - if (_currentAllyPage > 0) { - _currentAllyPage -= 1; - } else { - _currentAllyPage = _alliesPokemon.length - 1; - } - } - } else if (direction === "down") { - if (divId === "enemies") { - if (_currentEnemyPage + 1 < _enemiesPokemon.length) { - _currentEnemyPage += 1; - } else { - _currentEnemyPage = 0; - } - } else if (divId === "allies") { - if (_currentAllyPage + 1 < _alliesPokemon.length) { - _currentAllyPage += 1; - } else { - _currentAllyPage = 0; - } - } - } - HttpUtils.createCardsDiv(divId); + const buttonId = click.target.id + const divId = buttonId.split("-")[0] + const direction = buttonId.split("-")[1] + if (direction === 'up') { + if (divId === 'enemies') { + if (_currentEnemyPage > 0) { + _currentEnemyPage -= 1 + } else { + _currentEnemyPage = _enemiesPokemon.length - 1 + } + } else if (divId === 'allies') { + if (_currentAllyPage > 0) { + _currentAllyPage -= 1 + } else { + _currentAllyPage = _alliesPokemon.length - 1 + } + } + } else if (direction === 'down') { + if (divId === 'enemies') { + if ((_currentEnemyPage + 1) < _enemiesPokemon.length) { + _currentEnemyPage += 1 + } else { + _currentEnemyPage = 0 + } + } else if (divId === 'allies') { + if ((_currentAllyPage + 1) < _alliesPokemon.length) { + _currentAllyPage += 1 + } else { + _currentAllyPage = 0 + } + } + } + HttpUtils.createCardsDiv(divId) } // Enables drag-and-drop functionality on an element @@ -53,7 +53,7 @@ function _enableDragElement(elmnt) { dragStartElement.onpointerdown = dragMouseDown; function dragMouseDown(e) { e = e || window.event; - if (e.target.type === "submit" || e.target.type === "range") return; + if (e.target.type === 'submit' || e.target.type === 'range') return e.preventDefault(); pos3 = e.clientX; pos4 = e.clientY; @@ -64,7 +64,7 @@ function _enableDragElement(elmnt) { // Handles dragging movement function dragElement(e) { e = e || window.event; - if (e.target.type === "submit" || e.target.type === "range") return; + if (e.target.type === 'submit' || e.target.type === 'range') return e.preventDefault(); pos1 = pos3 - e.clientX; pos2 = pos4 - e.clientY; @@ -79,4 +79,4 @@ function _enableDragElement(elmnt) { document.onpointerup = null; document.onpointermove = null; } -} +} \ No newline at end of file diff --git a/libs/httputils.js b/libs/httputils.js index 2d4961f..77157ba 100644 --- a/libs/httputils.js +++ b/libs/httputils.js @@ -2,16 +2,9 @@ function _createPokemonCardDiv(cardclass, cardId, pokemon) { let opacityRangeMin = 10; let opacityRangeMax = 100; let pokemonImageUrl = `https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/${pokemon.id}.png`; - - const opacitySlider = _createOpacitySliderDiv( - cardId, - _wrapperDivPositions[cardId].opacity, - opacityRangeMin, - opacityRangeMax, - ); - const typeEffectivenessHTML = _createTypeEffectivenessWrapper( - pokemon.typeEffectiveness, - ); + + const opacitySlider = _createOpacitySliderDiv(cardId, _wrapperDivPositions[cardId].opacity, opacityRangeMin, opacityRangeMax) + const typeEffectivenessHTML = _createTypeEffectivenessWrapper(pokemon.typeEffectiveness) let cardHTML = `

@@ -22,13 +15,13 @@ function _createPokemonCardDiv(cardclass, cardId, pokemon) {
- ${/* Displays the 3 type effectiveness segemtns (weaknesses, resistances, immunities). */ ""} + ${/* Displays the 3 type effectiveness segemtns (weaknesses, resistances, immunities). */''} ${typeEffectivenessHTML}
-
+
Ability: ${pokemon.ability.name} ${_createTooltipDiv(pokemon.ability.description)}
@@ -45,159 +38,144 @@ function _createPokemonCardDiv(cardclass, cardId, pokemon) { SPE: ${pokemon.ivs[Stat["SPD"]]}, SPD: ${pokemon.ivs[Stat["SPDEF"]]}, SPA: ${pokemon.ivs[Stat["SPATK"]]}
- ${ - _weather.type && _weather.turnsLeft - ? `
_weather: ${_weather.type}, Turns Left: ${_weather.turnsLeft}
` - : "" - } + ${(_weather.type && _weather.turnsLeft) ? + `
_weather: ${_weather.type}, Turns Left: ${_weather.turnsLeft}
` + : ''}
- `; + ` - const cardObj = {}; + const cardObj = {} cardObj.html = cardHTML; cardObj.slider = opacitySlider.id; - return cardObj; + return cardObj } // Current values: weaknesses, resistances, immunities function _createTypeEffectivenessWrapper(typeEffectivenesses) { - let typesHTML = ` - ${Object.keys(typeEffectivenesses) - .map((effectiveness) => { - if (typeEffectivenesses[effectiveness].length === 0) return ""; - const tooltipMap = { - weaknesses: "Weak to", - resistances: "Resists", - immunities: "Immune to", - }; - return ` + let typesHTML = ` + ${Object.keys(typeEffectivenesses).map((effectiveness) => { + if (typeEffectivenesses[effectiveness].length === 0) return '' + const tooltipMap = { + weaknesses: "Weak to", + resistances: "Resists", + immunities: "Immune to" + }; + return `
- ${typeEffectivenesses[effectiveness] - .map( - (type, counter) => ` - ${/* The current html structure requires to wrap every third element in a div, the implementation here gets a bit ugly. */ ""} - ${(counter + 1) % 3 === 1 ? `
` : ""} + ${typeEffectivenesses[effectiveness].map((type, counter) => ` + ${/* The current html structure requires to wrap every third element in a div, the implementation here gets a bit ugly. */''} + ${ ((counter + 1) % 3 === 1) ? + `
` + : ''}
- ${/* Closing div, after every third element or when the arrays max length is reached. */ ""} - ${ - (counter + 1) % 3 === 0 || - counter + 1 === typeEffectivenesses[effectiveness].length - ? `
` - : "" - } - `, - ) - .join("")} + ${/* Closing div, after every third element or when the arrays max length is reached. */''} + ${ ((counter + 1) % 3 === 0) || ((counter + 1) === typeEffectivenesses[effectiveness].length) ? + `
` + : ''} + `).join('')} ${_createTooltipDiv(tooltipMap[effectiveness] || "")}
- `; - }) - .join("")} - `; + `}).join('')} + ` - return typesHTML; + return typesHTML } -function _createOpacitySliderDiv( - divId, - initialValue = "100", - min = "10", - max = "100", -) { - let result = {}; - result.id = `${divId}-slider`; +function _createOpacitySliderDiv(divId, initialValue = "100", min = "10", max = "100") { + let result = {}; + result.id = `${divId}-slider` - result.html = ` + result.html = `
Opacity:
- `; - return result; + ` + return result } function _updateWrapperDivPositions(oldDiv, divId) { - _wrapperDivPositions[divId].top = oldDiv.style.top; - _wrapperDivPositions[divId].left = oldDiv.style.left; + _wrapperDivPositions[divId].top = oldDiv.style.top; + _wrapperDivPositions[divId].left = oldDiv.style.left; } function _createWrapperDiv(divId) { - const oldDiv = document.getElementById(divId); - if (oldDiv) { - _updateWrapperDivPositions(oldDiv, divId); - oldDiv.remove(); - } - const newDiv = divId === "enemies" ? _createEnemyDiv() : _createAlliesDiv(); - _enableDragElement(newDiv); - newDiv.style.top = _wrapperDivPositions[divId].top; - newDiv.style.left = _wrapperDivPositions[divId].left; - newDiv.style.opacity = "" + Number(_wrapperDivPositions[divId].opacity) / 100; - return newDiv; + const oldDiv = document.getElementById(divId) + if (oldDiv) { + _updateWrapperDivPositions(oldDiv, divId) + oldDiv.remove(); + } + const newDiv = divId === 'enemies' ? _createEnemyDiv() : _createAlliesDiv() + _enableDragElement(newDiv) + newDiv.style.top = _wrapperDivPositions[divId].top + newDiv.style.left = _wrapperDivPositions[divId].left + newDiv.style.opacity = "" + (Number(_wrapperDivPositions[divId].opacity) / 100) + return newDiv; } function _createArrowButtonsDiv(divId, upString, downString) { - let result = {}; - result.idUp = `${divId}-up`; - result.idDown = `${divId}-down`; - result.html = ` + let result = {}; + result.idUp = `${divId}-up` + result.idDown = `${divId}-down` + result.html = `
- `; - return result; + ` + return result } function _createTooltipDiv(tip) { - const tooltipHtml = ` + const tooltipHtml = `
${tip}
- `; - return tooltipHtml; + ` + return tooltipHtml } function _createEnemyDiv() { - const divId = "enemies"; - const div = document.createElement("div"); - div.className = `${divId}-team`; - div.id = divId; - _enableDragElement(div); - document.body.appendChild(div); - return div; + const divId = "enemies" + const div = document.createElement("div") + div.className = `${divId}-team` + div.id = divId + _enableDragElement(div) + document.body.appendChild(div) + return div } function _createAlliesDiv() { - const divId = "allies"; - const div = document.createElement("div"); - div.className = `${divId}-team`; - div.id = divId; - _enableDragElement(div); - document.body.appendChild(div); - return div; + const divId = "allies" + const div = document.createElement("div") + div.className = `${divId}-team` + div.id = divId + _enableDragElement(div) + document.body.appendChild(div) + return div } function _updatePokemonArray(oldParty, newParty) { - if (!_.isEqual(oldParty, newParty)) { - oldParty = newParty; - } + if (!_.isEqual(oldParty, newParty)) { + oldParty = newParty + } } let _wrapperDivPositions = { - enemies: { - top: "0", - left: "0", - opacity: "100", - }, - allies: { - top: "0", - left: "0", - opacity: "100", - }, -}; + 'enemies': { + 'top' : '0', + 'left': '0', + 'opacity': '100' + }, + 'allies': { + 'top': '0', + 'left': '0', + 'opacity': '100' + } +} let _currentEnemyPage = 0; let _currentAllyPage = 0; @@ -206,99 +184,96 @@ let _alliesPokemon = []; let _weather = {}; class HttpUtils { - static updateFromMessage(message) { - if (message.type === "UPDATE_ENEMIES_DIV") { - if (!_.isEqual(_enemiesPokemon, message.pokemon)) { - _enemiesPokemon = message.pokemon; - } - } else { - if (!_.isEqual(_alliesPokemon, message.pokemon)) { - _alliesPokemon = message.pokemon; - } - } - _weather = message.weather; - if (_weather.turnsLeft === 0) _weather.turnsLeft = "N/A"; - } - - static createTopBannerDiv() { - const div = document.createElement("div"); - div.textContent = "RogueDex is running!"; - div.classList.add("text-base"); - div.classList.add("running-status"); - document.body.insertBefore(div, document.body.firstChild); - } - - static createCardsDiv(divId) { - let newDiv = _createWrapperDiv(divId); - let pokemon = {}; - if (divId === "enemies") { - if (_currentEnemyPage >= _enemiesPokemon.length) _currentEnemyPage = 0; - pokemon = _enemiesPokemon[_currentEnemyPage]; - } else { - if (_currentAllyPage >= _alliesPokemon.length) _currentAllyPage = 0; - pokemon = _alliesPokemon[_currentAllyPage]; - } - - let divClass = `${divId}-team`; - - const cardObj = _createPokemonCardDiv(divClass, divId, pokemon); - const buttonsObj = _createArrowButtonsDiv(divId, "↑", "↓"); - - /* + + static updateFromMessage(message) { + if (message.type === 'UPDATE_ENEMIES_DIV') { + if (!_.isEqual(_enemiesPokemon, message.pokemon)) { + _enemiesPokemon = message.pokemon + } + } + else { + if (!_.isEqual(_alliesPokemon, message.pokemon)) { + _alliesPokemon = message.pokemon + } + } + _weather = message.weather; + if (_weather.turnsLeft === 0) _weather.turnsLeft = 'N/A' + } + + static createTopBannerDiv() { + const div = document.createElement('div') + div.textContent = 'RogueDex is running!' + div.classList.add('text-base') + div.classList.add('running-status') + document.body.insertBefore(div, document.body.firstChild) + } + + static createCardsDiv(divId) { + let newDiv = _createWrapperDiv(divId) + let pokemon = {} + if (divId === 'enemies') { + if (_currentEnemyPage >= _enemiesPokemon.length) _currentEnemyPage = 0 + pokemon = _enemiesPokemon[_currentEnemyPage] + } + else { + if (_currentAllyPage >= _alliesPokemon.length) _currentAllyPage = 0 + pokemon = _alliesPokemon[_currentAllyPage] + } + + let divClass = `${divId}-team` + + const cardObj = _createPokemonCardDiv(divClass, divId, pokemon) + const buttonsObj = _createArrowButtonsDiv(divId, "↑", "↓") + + /* Assemble the wrapper DIVs inner html. */ - const cardsHTML = ` + const cardsHTML = ` ${buttonsObj.html} ${cardObj.html} - `; + ` - /* + /* Insert the parsed nodes into the DOM tree just inside the element, before its first child. "newDiv.innerHTML = cardsHTML" also works instead of using ".insertAdjacentHTML()" */ - newDiv.insertAdjacentHTML("afterbegin", cardsHTML); - document.body.appendChild(newDiv); + newDiv.insertAdjacentHTML("afterbegin", cardsHTML) + document.body.appendChild(newDiv) - /* + /* Add event listeners after all elements are properly added to the DOM and initialized. */ - document - .getElementById(cardObj.slider) - .addEventListener("input", _changeOpacity); - document - .getElementById(buttonsObj.idUp) - .addEventListener("click", _changePage); - document - .getElementById(buttonsObj.idDown) - .addEventListener("click", _changePage); - - return newDiv; - } - - static createWrapperDivs() { - try { - ["allies", "enemies"].forEach((divId) => { - const div = document.createElement("div"); - div.className = `${divId}-team`; - div.id = divId; - _enableDragElement(div); - document.body.appendChild(div); - }); - } catch (e) { - console.error("Error while creating wrapper divs: ", e); - } - } - - static deleteWrapperDivs() { - try { - ["allies", "enemies"].forEach((divId) => { - const div = document.getElementById(divId); - if (div === null) return; - _updateWrapperDivPositions(div, divId); - document.body.removeChild(div); - }); - } catch (e) { - console.error("Error while deleting wrapper divs: ", e); - } - } -} + document.getElementById(cardObj.slider).addEventListener('input', _changeOpacity) + document.getElementById(buttonsObj.idUp).addEventListener('click', _changePage) + document.getElementById(buttonsObj.idDown).addEventListener('click', _changePage) + + return newDiv + } + + static createWrapperDivs() { + try { + ['allies', 'enemies'].forEach((divId) => { + const div = document.createElement("div") + div.className = `${divId}-team` + div.id = divId + _enableDragElement(div) + document.body.appendChild(div) + }) + } catch (e) { + console.error("Error while creating wrapper divs: ", e) + } + } + + static deleteWrapperDivs() { + try { + ['allies', 'enemies'].forEach((divId) => { + const div = document.getElementById(divId) + if (div === null) return + _updateWrapperDivPositions(div, divId) + document.body.removeChild(div) + }) + } catch (e) { + console.error("Error while deleting wrapper divs: ", e) + } + } +} \ No newline at end of file diff --git a/libs/localstorageutils.js b/libs/localstorageutils.js index 1da9d9a..aacb0f5 100644 --- a/libs/localstorageutils.js +++ b/libs/localstorageutils.js @@ -1,35 +1,29 @@ -const saveKey = "x0i2O7WRiANTqPmZ"; -let currentSessionData = {}; +const saveKey = 'x0i2O7WRiANTqPmZ' +let currentSessionData = {} class LocalStorageUtils { - static slotId = -1; + static slotId = -1 - static getCurrentSessionData(localStorage) { - Object.keys(localStorage).some((key) => { - if ( - (this.slotId > 0 && key.includes(`sessionData${this.slotId}`)) || - key.includes("sessionData") - ) { - currentSessionData = localStorage.getItem(key); - } - }); - return JSON.parse( - CryptoJS.AES.decrypt(currentSessionData, saveKey).toString( - CryptoJS.enc.Utf8, - ), - ); - } + static getCurrentSessionData(localStorage) { + Object.keys(localStorage).some((key) => { + if ((this.slotId > 0 && key.includes(`sessionData${this.slotId}`)) || key.includes('sessionData')) { + currentSessionData = localStorage.getItem(key) + } + }) + return JSON.parse(CryptoJS.AES.decrypt(currentSessionData, saveKey).toString(CryptoJS.enc.Utf8)) + } - static cleanSessionData() { - let removeKeys = []; - Object.keys(localStorage).some((key) => { - if (key.includes("sessionData")) removeKeys.push(key); - }); - console.log("Found the following keys in localStorage:", removeKeys); - Object.keys(removeKeys).some((key) => { - console.log("Removing key", removeKeys[key]); - localStorage.removeItem(removeKeys[key]); - }); - return removeKeys.length > 0; - } -} + static cleanSessionData() { + let removeKeys = [] + Object.keys(localStorage).some((key) => { + if (key.includes('sessionData')) + removeKeys.push(key) + }) + console.log("Found the following keys in localStorage:", removeKeys) + Object.keys(removeKeys).some((key) => { + console.log("Removing key", removeKeys[key]) + localStorage.removeItem(removeKeys[key]) + }) + return removeKeys.length > 0 + } +} \ No newline at end of file diff --git a/libs/lodash.js b/libs/lodash.js index ae985d5..89c77de 100644 --- a/libs/lodash.js +++ b/libs/lodash.js @@ -7,81 +7,74 @@ * Based on Underscore.js 1.8.3 * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors */ -(function () { +;(function() { + /** Used as a safe reference for `undefined` in pre-ES5 environments. */ var undefined; /** Used as the semantic version number. */ - var VERSION = "4.17.15"; + var VERSION = '4.17.15'; /** Error message constants. */ - var FUNC_ERROR_TEXT = "Expected a function"; + var FUNC_ERROR_TEXT = 'Expected a function'; /** Used to compose bitmasks for value comparisons. */ var COMPARE_PARTIAL_FLAG = 1, - COMPARE_UNORDERED_FLAG = 2; + COMPARE_UNORDERED_FLAG = 2; /** Used to compose bitmasks for function metadata. */ var WRAP_BIND_FLAG = 1, - WRAP_PARTIAL_FLAG = 32; + WRAP_PARTIAL_FLAG = 32; /** Used as references for various `Number` constants. */ var INFINITY = 1 / 0, - MAX_SAFE_INTEGER = 9007199254740991; + MAX_SAFE_INTEGER = 9007199254740991; /** `Object#toString` result references. */ - var argsTag = "[object Arguments]", - arrayTag = "[object Array]", - asyncTag = "[object AsyncFunction]", - boolTag = "[object Boolean]", - dateTag = "[object Date]", - errorTag = "[object Error]", - funcTag = "[object Function]", - genTag = "[object GeneratorFunction]", - numberTag = "[object Number]", - objectTag = "[object Object]", - proxyTag = "[object Proxy]", - regexpTag = "[object RegExp]", - stringTag = "[object String]"; + var argsTag = '[object Arguments]', + arrayTag = '[object Array]', + asyncTag = '[object AsyncFunction]', + boolTag = '[object Boolean]', + dateTag = '[object Date]', + errorTag = '[object Error]', + funcTag = '[object Function]', + genTag = '[object GeneratorFunction]', + numberTag = '[object Number]', + objectTag = '[object Object]', + proxyTag = '[object Proxy]', + regexpTag = '[object RegExp]', + stringTag = '[object String]'; /** Used to match HTML entities and HTML characters. */ var reUnescapedHtml = /[&<>"']/g, - reHasUnescapedHtml = RegExp(reUnescapedHtml.source); + reHasUnescapedHtml = RegExp(reUnescapedHtml.source); /** Used to detect unsigned integer values. */ var reIsUint = /^(?:0|[1-9]\d*)$/; /** Used to map characters to HTML entities. */ var htmlEscapes = { - "&": "&", - "<": "<", - ">": ">", - '"': """, - "'": "'", + '&': '&', + '<': '<', + '>': '>', + '"': '"', + "'": ''' }; /** Detect free variable `global` from Node.js. */ - var freeGlobal = - typeof global == "object" && global && global.Object === Object && global; + var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; /** Detect free variable `self`. */ - var freeSelf = - typeof self == "object" && self && self.Object === Object && self; + var freeSelf = typeof self == 'object' && self && self.Object === Object && self; /** Used as a reference to the global object. */ - var root = freeGlobal || freeSelf || Function("return this")(); + var root = freeGlobal || freeSelf || Function('return this')(); /** Detect free variable `exports`. */ - var freeExports = - typeof exports == "object" && exports && !exports.nodeType && exports; + var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports; /** Detect free variable `module`. */ - var freeModule = - freeExports && - typeof module == "object" && - module && - !module.nodeType && - module; + var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; /*--------------------------------------------------------------------------*/ @@ -111,9 +104,9 @@ */ function baseFindIndex(array, predicate, fromIndex, fromRight) { var length = array.length, - index = fromIndex + (fromRight ? 1 : -1); + index = fromIndex + (fromRight ? 1 : -1); - while (fromRight ? index-- : ++index < length) { + while ((fromRight ? index-- : ++index < length)) { if (predicate(array[index], index, array)) { return index; } @@ -129,7 +122,7 @@ * @returns {Function} Returns the new accessor function. */ function baseProperty(key) { - return function (object) { + return function(object) { return object == null ? undefined : object[key]; }; } @@ -142,7 +135,7 @@ * @returns {Function} Returns the new accessor function. */ function basePropertyOf(object) { - return function (key) { + return function(key) { return object == null ? undefined : object[key]; }; } @@ -161,9 +154,9 @@ * @returns {*} Returns the accumulated value. */ function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) { - eachFunc(collection, function (value, index, collection) { + eachFunc(collection, function(value, index, collection) { accumulator = initAccum - ? ((initAccum = false), value) + ? (initAccum = false, value) : iteratee(accumulator, value, index, collection); }); return accumulator; @@ -180,7 +173,7 @@ * @returns {Object} Returns the array of property values. */ function baseValues(object, props) { - return baseMap(props, function (key) { + return baseMap(props, function(key) { return object[key]; }); } @@ -203,7 +196,7 @@ * @returns {Function} Returns the new function. */ function overArg(func, transform) { - return function (arg) { + return function(arg) { return func(transform(arg)); }; } @@ -212,7 +205,7 @@ /** Used for built-in method references. */ var arrayProto = Array.prototype, - objectProto = Object.prototype; + objectProto = Object.prototype; /** Used to check objects for own properties. */ var hasOwnProperty = objectProto.hasOwnProperty; @@ -232,12 +225,12 @@ /** Built-in value references. */ var objectCreate = Object.create, - propertyIsEnumerable = objectProto.propertyIsEnumerable; + propertyIsEnumerable = objectProto.propertyIsEnumerable; /* Built-in method references for those with the same name as other `lodash` methods. */ var nativeIsFinite = root.isFinite, - nativeKeys = overArg(Object.keys, Object), - nativeMax = Math.max; + nativeKeys = overArg(Object.keys, Object), + nativeMax = Math.max; /*------------------------------------------------------------------------*/ @@ -359,7 +352,9 @@ * // => true */ function lodash(value) { - return value instanceof LodashWrapper ? value : new LodashWrapper(value); + return value instanceof LodashWrapper + ? value + : new LodashWrapper(value); } /** @@ -370,9 +365,9 @@ * @param {Object} proto The object to inherit from. * @returns {Object} Returns the new object. */ - var baseCreate = (function () { + var baseCreate = (function() { function object() {} - return function (proto) { + return function(proto) { if (!isObject(proto)) { return {}; } @@ -380,11 +375,11 @@ return objectCreate(proto); } object.prototype = proto; - var result = new object(); + var result = new object; object.prototype = undefined; return result; }; - })(); + }()); /** * The base constructor for creating `lodash` wrapper objects. @@ -416,10 +411,8 @@ */ function assignValue(object, key, value) { var objValue = object[key]; - if ( - !(hasOwnProperty.call(object, key) && eq(objValue, value)) || - (value === undefined && !(key in object)) - ) { + if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || + (value === undefined && !(key in object))) { baseAssignValue(object, key, value); } } @@ -448,12 +441,10 @@ * @returns {number|Object} Returns the timer id or timeout object. */ function baseDelay(func, wait, args) { - if (typeof func != "function") { + if (typeof func != 'function') { throw new TypeError(FUNC_ERROR_TEXT); } - return setTimeout(function () { - func.apply(undefined, args); - }, wait); + return setTimeout(function() { func.apply(undefined, args); }, wait); } /** @@ -477,7 +468,7 @@ */ function baseEvery(collection, predicate) { var result = true; - baseEach(collection, function (value, index, collection) { + baseEach(collection, function(value, index, collection) { result = !!predicate(value, index, collection); return result; }); @@ -496,20 +487,18 @@ */ function baseExtremum(array, iteratee, comparator) { var index = -1, - length = array.length; + length = array.length; while (++index < length) { var value = array[index], - current = iteratee(value); - - if ( - current != null && - (computed === undefined - ? current === current && !false - : comparator(current, computed)) - ) { + current = iteratee(value); + + if (current != null && (computed === undefined + ? (current === current && !false) + : comparator(current, computed) + )) { var computed = current, - result = value; + result = value; } } return result; @@ -525,7 +514,7 @@ */ function baseFilter(collection, predicate) { var result = []; - baseEach(collection, function (value, index, collection) { + baseEach(collection, function(value, index, collection) { if (predicate(value, index, collection)) { result.push(value); } @@ -546,7 +535,7 @@ */ function baseFlatten(array, depth, predicate, isStrict, result) { var index = -1, - length = array.length; + length = array.length; predicate || (predicate = isFlattenable); result || (result = []); @@ -602,7 +591,7 @@ * @returns {Array} Returns the function names. */ function baseFunctions(object, props) { - return baseFilter(props, function (key) { + return baseFilter(props, function(key) { return isFunction(object[key]); }); } @@ -669,21 +658,10 @@ if (value === other) { return true; } - if ( - value == null || - other == null || - (!isObjectLike(value) && !isObjectLike(other)) - ) { + if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) { return value !== value && other !== other; } - return baseIsEqualDeep( - value, - other, - bitmask, - customizer, - baseIsEqual, - stack, - ); + return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack); } /** @@ -700,31 +678,24 @@ * @param {Object} [stack] Tracks traversed `object` and `other` objects. * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. */ - function baseIsEqualDeep( - object, - other, - bitmask, - customizer, - equalFunc, - stack, - ) { + function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) { var objIsArr = isArray(object), - othIsArr = isArray(other), - objTag = objIsArr ? arrayTag : baseGetTag(object), - othTag = othIsArr ? arrayTag : baseGetTag(other); + othIsArr = isArray(other), + objTag = objIsArr ? arrayTag : baseGetTag(object), + othTag = othIsArr ? arrayTag : baseGetTag(other); objTag = objTag == argsTag ? objectTag : objTag; othTag = othTag == argsTag ? objectTag : othTag; var objIsObj = objTag == objectTag, - othIsObj = othTag == objectTag, - isSameTag = objTag == othTag; + othIsObj = othTag == objectTag, + isSameTag = objTag == othTag; stack || (stack = []); - var objStack = find(stack, function (entry) { + var objStack = find(stack, function(entry) { return entry[0] == object; }); - var othStack = find(stack, function (entry) { + var othStack = find(stack, function(entry) { return entry[0] == other; }); if (objStack && othStack) { @@ -733,35 +704,21 @@ stack.push([object, other]); stack.push([other, object]); if (isSameTag && !objIsObj) { - var result = objIsArr + var result = (objIsArr) ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) - : equalByTag( - object, - other, - objTag, - bitmask, - customizer, - equalFunc, - stack, - ); + : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); stack.pop(); return result; } if (!(bitmask & COMPARE_PARTIAL_FLAG)) { - var objIsWrapped = objIsObj && hasOwnProperty.call(object, "__wrapped__"), - othIsWrapped = othIsObj && hasOwnProperty.call(other, "__wrapped__"); + 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; - - var result = equalFunc( - objUnwrapped, - othUnwrapped, - bitmask, - customizer, - stack, - ); + othUnwrapped = othIsWrapped ? other.value() : other; + + var result = equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); stack.pop(); return result; } @@ -769,14 +726,7 @@ if (!isSameTag) { return false; } - var result = equalObjects( - object, - other, - bitmask, - customizer, - equalFunc, - stack, - ); + var result = equalObjects(object, other, bitmask, customizer, equalFunc, stack); stack.pop(); return result; } @@ -800,13 +750,13 @@ * @returns {Function} Returns the iteratee. */ function baseIteratee(func) { - if (typeof func == "function") { + if (typeof func == 'function') { return func; } if (func == null) { return identity; } - return (typeof func == "object" ? baseMatches : baseProperty)(func); + return (typeof func == 'object' ? baseMatches : baseProperty)(func); } /** @@ -832,9 +782,9 @@ */ function baseMap(collection, iteratee) { var index = -1, - result = isArrayLike(collection) ? Array(collection.length) : []; + result = isArrayLike(collection) ? Array(collection.length) : []; - baseEach(collection, function (value, key, collection) { + baseEach(collection, function(value, key, collection) { result[++index] = iteratee(value, key, collection); }); return result; @@ -849,7 +799,7 @@ */ function baseMatches(source) { var props = nativeKeys(source); - return function (object) { + return function(object) { var length = props.length; if (object == null) { return !length; @@ -857,16 +807,9 @@ object = Object(object); while (length--) { var key = props[length]; - if ( - !( - key in object && - baseIsEqual( - source[key], - object[key], - COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, - ) - ) - ) { + if (!(key in object && + baseIsEqual(source[key], object[key], COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG) + )) { return false; } } @@ -885,16 +828,12 @@ */ function basePick(object, props) { object = Object(object); - return reduce( - props, - function (result, key) { - if (key in object) { - result[key] = object[key]; - } - return result; - }, - {}, - ); + return reduce(props, function(result, key) { + if (key in object) { + result[key] = object[key]; + } + return result; + }, {}); } /** @@ -906,7 +845,7 @@ * @returns {Function} Returns the new function. */ function baseRest(func, start) { - return setToString(overRest(func, start, identity), func + ""); + return setToString(overRest(func, start, identity), func + ''); } /** @@ -920,16 +859,16 @@ */ function baseSlice(array, start, end) { var index = -1, - length = array.length; + length = array.length; if (start < 0) { - start = -start > length ? 0 : length + start; + start = -start > length ? 0 : (length + start); } end = end > length ? length : end; if (end < 0) { end += length; } - length = start > end ? 0 : (end - start) >>> 0; + length = start > end ? 0 : ((end - start) >>> 0); start >>>= 0; var result = Array(length); @@ -963,7 +902,7 @@ function baseSome(collection, predicate) { var result; - baseEach(collection, function (value, index, collection) { + baseEach(collection, function(value, index, collection) { result = predicate(value, index, collection); return !result; }); @@ -982,16 +921,9 @@ */ function baseWrapperValue(value, actions) { var result = value; - return reduce( - actions, - function (result, action) { - return action.func.apply( - action.thisArg, - arrayPush([result], action.args), - ); - }, - result, - ); + return reduce(actions, function(result, action) { + return action.func.apply(action.thisArg, arrayPush([result], action.args)); + }, result); } /** @@ -1005,39 +937,27 @@ function compareAscending(value, other) { if (value !== other) { var valIsDefined = value !== undefined, - valIsNull = value === null, - valIsReflexive = value === value, - valIsSymbol = false; + valIsNull = value === null, + valIsReflexive = value === value, + valIsSymbol = false; var othIsDefined = other !== undefined, - othIsNull = other === null, - othIsReflexive = other === other, - othIsSymbol = false; - - if ( - (!othIsNull && !othIsSymbol && !valIsSymbol && value > other) || - (valIsSymbol && - othIsDefined && - othIsReflexive && - !othIsNull && - !othIsSymbol) || - (valIsNull && othIsDefined && othIsReflexive) || - (!valIsDefined && othIsReflexive) || - !valIsReflexive - ) { + othIsNull = other === null, + othIsReflexive = other === other, + othIsSymbol = false; + + 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 - ) { + if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) || + (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) || + (othIsNull && valIsDefined && valIsReflexive) || + (!othIsDefined && valIsReflexive) || + !othIsReflexive) { return -1; } } @@ -1059,7 +979,7 @@ object || (object = {}); var index = -1, - length = props.length; + length = props.length; while (++index < length) { var key = props[index]; @@ -1088,15 +1008,14 @@ * @returns {Function} Returns the new assigner function. */ function createAssigner(assigner) { - return baseRest(function (object, sources) { + return baseRest(function(object, sources) { var index = -1, - length = sources.length, - customizer = length > 1 ? sources[length - 1] : undefined; + length = sources.length, + customizer = length > 1 ? sources[length - 1] : undefined; - customizer = - assigner.length > 3 && typeof customizer == "function" - ? (length--, customizer) - : undefined; + customizer = (assigner.length > 3 && typeof customizer == 'function') + ? (length--, customizer) + : undefined; object = Object(object); while (++index < length) { @@ -1118,7 +1037,7 @@ * @returns {Function} Returns the new base function. */ function createBaseEach(eachFunc, fromRight) { - return function (collection, iteratee) { + return function(collection, iteratee) { if (collection == null) { return collection; } @@ -1126,10 +1045,10 @@ return eachFunc(collection, iteratee); } var length = collection.length, - index = fromRight ? length : -1, - iterable = Object(collection); + index = fromRight ? length : -1, + iterable = Object(collection); - while (fromRight ? index-- : ++index < length) { + while ((fromRight ? index-- : ++index < length)) { if (iteratee(iterable[index], index, iterable) === false) { break; } @@ -1146,11 +1065,11 @@ * @returns {Function} Returns the new base function. */ function createBaseFor(fromRight) { - return function (object, iteratee, keysFunc) { + return function(object, iteratee, keysFunc) { var index = -1, - iterable = Object(object), - props = keysFunc(object), - length = props.length; + iterable = Object(object), + props = keysFunc(object), + length = props.length; while (length--) { var key = props[fromRight ? length : ++index]; @@ -1171,13 +1090,13 @@ * @returns {Function} Returns the new wrapped function. */ function createCtor(Ctor) { - return function () { + return function() { // Use a `switch` statement to work with class constructors. See // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist // for more details. var args = arguments; var thisBinding = baseCreate(Ctor.prototype), - result = Ctor.apply(thisBinding, args); + result = Ctor.apply(thisBinding, args); // Mimic the constructor's `return` behavior. // See https://es5.github.io/#x13.2.2 for more details. @@ -1193,19 +1112,15 @@ * @returns {Function} Returns the new find function. */ function createFind(findIndexFunc) { - return function (collection, predicate, fromIndex) { + return function(collection, predicate, fromIndex) { var iterable = Object(collection); if (!isArrayLike(collection)) { var iteratee = baseIteratee(predicate, 3); collection = keys(collection); - predicate = function (key) { - return iteratee(iterable[key], key, iterable); - }; + predicate = function(key) { return iteratee(iterable[key], key, iterable); }; } var index = findIndexFunc(collection, predicate, fromIndex); - return index > -1 - ? iterable[iteratee ? collection[index] : index] - : undefined; + return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined; }; } @@ -1222,19 +1137,19 @@ * @returns {Function} Returns the new wrapped function. */ function createPartial(func, bitmask, thisArg, partials) { - if (typeof func != "function") { + if (typeof func != 'function') { throw new TypeError(FUNC_ERROR_TEXT); } var isBind = bitmask & WRAP_BIND_FLAG, - Ctor = createCtor(func); + Ctor = createCtor(func); function wrapper() { var argsIndex = -1, - argsLength = arguments.length, - leftIndex = -1, - leftLength = partials.length, - args = Array(leftLength + argsLength), - fn = this && this !== root && this instanceof wrapper ? Ctor : func; + argsLength = arguments.length, + leftIndex = -1, + leftLength = partials.length, + args = Array(leftLength + argsLength), + fn = (this && this !== root && this instanceof wrapper) ? Ctor : func; while (++leftIndex < leftLength) { args[leftIndex] = partials[leftIndex]; @@ -1262,20 +1177,20 @@ */ function equalArrays(array, other, bitmask, customizer, equalFunc, stack) { var isPartial = bitmask & COMPARE_PARTIAL_FLAG, - arrLength = array.length, - othLength = other.length; + arrLength = array.length, + othLength = other.length; if (arrLength != othLength && !(isPartial && othLength > arrLength)) { return false; } var index = -1, - result = true, - seen = bitmask & COMPARE_UNORDERED_FLAG ? [] : undefined; + result = true, + seen = (bitmask & COMPARE_UNORDERED_FLAG) ? [] : undefined; // Ignore non-index properties. while (++index < arrLength) { var arrValue = array[index], - othValue = other[index]; + othValue = other[index]; var compared; if (compared !== undefined) { @@ -1287,26 +1202,19 @@ } // Recursively compare arrays (susceptible to call stack limits). if (seen) { - if ( - !baseSome(other, function (othValue, othIndex) { - if ( - !indexOf(seen, othIndex) && - (arrValue === othValue || - equalFunc(arrValue, othValue, bitmask, customizer, stack)) - ) { - return seen.push(othIndex); - } - }) - ) { + if (!baseSome(other, function(othValue, othIndex) { + if (!indexOf(seen, othIndex) && + (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { + return seen.push(othIndex); + } + })) { result = false; break; } - } else if ( - !( - arrValue === othValue || - equalFunc(arrValue, othValue, bitmask, customizer, stack) - ) - ) { + } else if (!( + arrValue === othValue || + equalFunc(arrValue, othValue, bitmask, customizer, stack) + )) { result = false; break; } @@ -1331,16 +1239,9 @@ * @param {Object} stack Tracks traversed `object` and `other` objects. * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. */ - function equalByTag( - object, - other, - tag, - bitmask, - customizer, - equalFunc, - stack, - ) { + function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) { switch (tag) { + case boolTag: case dateTag: case numberTag: @@ -1356,7 +1257,8 @@ // Coerce regexes to strings and treat strings, primitives and objects, // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring // for more details. - return object == other + ""; + return object == (other + ''); + } return false; } @@ -1376,10 +1278,10 @@ */ function equalObjects(object, other, bitmask, customizer, equalFunc, stack) { var isPartial = bitmask & COMPARE_PARTIAL_FLAG, - objProps = keys(object), - objLength = objProps.length, - othProps = keys(other), - othLength = othProps.length; + objProps = keys(object), + objLength = objProps.length, + othProps = keys(other), + othLength = othProps.length; if (objLength != othLength && !isPartial) { return false; @@ -1397,37 +1299,28 @@ while (++index < objLength) { key = objProps[index]; var objValue = object[key], - othValue = other[key]; + othValue = other[key]; var compared; // Recursively compare objects (susceptible to call stack limits). - if ( - !(compared === undefined - ? objValue === othValue || - equalFunc(objValue, othValue, bitmask, customizer, stack) - : compared) - ) { + if (!(compared === undefined + ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack)) + : compared + )) { result = false; break; } - skipCtor || (skipCtor = key == "constructor"); + skipCtor || (skipCtor = key == 'constructor'); } if (result && !skipCtor) { var objCtor = object.constructor, - othCtor = other.constructor; + othCtor = other.constructor; // Non `Object` object instances with different constructors are not equal. - if ( - objCtor != othCtor && - "constructor" in object && - "constructor" in other && - !( - typeof objCtor == "function" && - objCtor instanceof objCtor && - typeof othCtor == "function" && - othCtor instanceof othCtor - ) - ) { + if (objCtor != othCtor && + ('constructor' in object && 'constructor' in other) && + !(typeof objCtor == 'function' && objCtor instanceof objCtor && + typeof othCtor == 'function' && othCtor instanceof othCtor)) { result = false; } } @@ -1442,7 +1335,7 @@ * @returns {Function} Returns the new function. */ function flatRest(func) { - return setToString(overRest(func, undefined, flatten), func + ""); + return setToString(overRest(func, undefined, flatten), func + ''); } /** @@ -1468,13 +1361,10 @@ 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 - ); + return !!length && + (type == 'number' || + (type != 'symbol' && reIsUint.test(value))) && + (value > -1 && value % 1 == 0 && value < length); } /** @@ -1492,11 +1382,10 @@ return false; } var type = typeof index; - if ( - type == "number" - ? isArrayLike(object) && isIndex(index, object.length) - : type == "string" && index in object - ) { + if (type == 'number' + ? (isArrayLike(object) && isIndex(index, object.length)) + : (type == 'string' && index in object) + ) { return eq(object[index], value); } return false; @@ -1542,12 +1431,12 @@ * @returns {Function} Returns the new function. */ function overRest(func, start, transform) { - start = nativeMax(start === undefined ? func.length - 1 : start, 0); - return function () { + start = nativeMax(start === undefined ? (func.length - 1) : start, 0); + return function() { var args = arguments, - index = -1, - length = nativeMax(args.length - start, 0), - array = Array(length); + index = -1, + length = nativeMax(args.length - start, 0), + array = Array(length); while (++index < length) { array[index] = args[start + index]; @@ -1621,16 +1510,13 @@ return []; } var args = Array(length - 1), - array = arguments[0], - index = length; + array = arguments[0], + index = length; while (index--) { args[index - 1] = arguments[index]; } - return arrayPush( - isArray(array) ? copyArray(array) : [array], - baseFlatten(args, 1), - ); + return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1)); } /** @@ -1737,7 +1623,7 @@ * // => undefined */ function head(array) { - return array && array.length ? array[0] : undefined; + return (array && array.length) ? array[0] : undefined; } /** @@ -1765,17 +1651,17 @@ */ function indexOf(array, value, fromIndex) { var length = array == null ? 0 : array.length; - if (typeof fromIndex == "number") { + if (typeof fromIndex == 'number') { fromIndex = fromIndex < 0 ? nativeMax(length + fromIndex, 0) : fromIndex; } else { fromIndex = 0; } var index = (fromIndex || 0) - 1, - isReflexive = value === value; + isReflexive = value === value; while (++index < length) { var other = array[index]; - if (isReflexive ? other === value : other !== other) { + if ((isReflexive ? other === value : other !== other)) { return index; } } @@ -2210,13 +2096,7 @@ * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed) */ function reduce(collection, iteratee, accumulator) { - return baseReduce( - collection, - baseIteratee(iteratee), - accumulator, - arguments.length < 3, - baseEach, - ); + return baseReduce(collection, baseIteratee(iteratee), accumulator, arguments.length < 3, baseEach); } /** @@ -2322,21 +2202,11 @@ var index = 0; iteratee = baseIteratee(iteratee); - return baseMap( - baseMap(collection, function (value, key, collection) { - return { - value: value, - index: index++, - criteria: iteratee(value, key, collection), - }; - }).sort(function (object, other) { - return ( - compareAscending(object.criteria, other.criteria) || - object.index - other.index - ); - }), - baseProperty("value"), - ); + return baseMap(baseMap(collection, function(value, key, collection) { + return { 'value': value, 'index': index++, 'criteria': iteratee(value, key, collection) }; + }).sort(function(object, other) { + return compareAscending(object.criteria, other.criteria) || (object.index - other.index); + }), baseProperty('value')); } /*------------------------------------------------------------------------*/ @@ -2360,11 +2230,11 @@ */ function before(n, func) { var result; - if (typeof func != "function") { + if (typeof func != 'function') { throw new TypeError(FUNC_ERROR_TEXT); } n = toInteger(n); - return function () { + return function() { if (--n > 0) { result = func.apply(this, arguments); } @@ -2410,13 +2280,8 @@ * bound('hi'); * // => 'hi fred!' */ - var bind = baseRest(function (func, thisArg, partials) { - return createPartial( - func, - WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG, - thisArg, - partials, - ); + var bind = baseRest(function(func, thisArg, partials) { + return createPartial(func, WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG, thisArg, partials); }); /** @@ -2437,7 +2302,7 @@ * }, 'deferred'); * // => Logs 'deferred' after one millisecond. */ - var defer = baseRest(function (func, args) { + var defer = baseRest(function(func, args) { return baseDelay(func, 1, args); }); @@ -2460,7 +2325,7 @@ * }, 1000, 'later'); * // => Logs 'later' after one second. */ - var delay = baseRest(function (func, wait, args) { + var delay = baseRest(function(func, wait, args) { return baseDelay(func, toNumber(wait) || 0, args); }); @@ -2485,10 +2350,10 @@ * // => [1, 3, 5] */ function negate(predicate) { - if (typeof predicate != "function") { + if (typeof predicate != 'function') { throw new TypeError(FUNC_ERROR_TEXT); } - return function () { + return function() { var args = arguments; return !predicate.apply(this, args); }; @@ -2548,9 +2413,7 @@ if (!isObject(value)) { return value; } - return isArray(value) - ? copyArray(value) - : copyObject(value, nativeKeys(value)); + return isArray(value) ? copyArray(value) : copyObject(value, nativeKeys(value)); } /** @@ -2607,19 +2470,10 @@ * _.isArguments([1, 2, 3]); * // => false */ - var isArguments = baseIsArguments( - (function () { - return arguments; - })(), - ) - ? baseIsArguments - : function (value) { - return ( - isObjectLike(value) && - hasOwnProperty.call(value, "callee") && - !propertyIsEnumerable.call(value, "callee") - ); - }; + var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) { + return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && + !propertyIsEnumerable.call(value, 'callee'); + }; /** * Checks if `value` is classified as an `Array` object. @@ -2693,11 +2547,8 @@ * // => false */ function isBoolean(value) { - return ( - value === true || - value === false || - (isObjectLike(value) && baseGetTag(value) == boolTag) - ); + return value === true || value === false || + (isObjectLike(value) && baseGetTag(value) == boolTag); } /** @@ -2753,13 +2604,9 @@ * // => false */ function isEmpty(value) { - if ( - isArrayLike(value) && - (isArray(value) || - isString(value) || - isFunction(value.splice) || - isArguments(value)) - ) { + if (isArrayLike(value) && + (isArray(value) || isString(value) || + isFunction(value.splice) || isArguments(value))) { return !value.length; } return !nativeKeys(value).length; @@ -2824,7 +2671,7 @@ * // => false */ function isFinite(value) { - return typeof value == "number" && nativeIsFinite(value); + return typeof value == 'number' && nativeIsFinite(value); } /** @@ -2851,9 +2698,7 @@ // The use of `Object#toString` avoids issues with the `typeof` operator // in Safari 9 which returns 'object' for typed arrays and other constructors. var tag = baseGetTag(value); - return ( - tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag - ); + return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; } /** @@ -2883,12 +2728,8 @@ * // => false */ function isLength(value) { - return ( - typeof value == "number" && - value > -1 && - value % 1 == 0 && - value <= MAX_SAFE_INTEGER - ); + return typeof value == 'number' && + value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; } /** @@ -2918,7 +2759,7 @@ */ function isObject(value) { var type = typeof value; - return value != null && (type == "object" || type == "function"); + return value != null && (type == 'object' || type == 'function'); } /** @@ -2946,7 +2787,7 @@ * // => false */ function isObjectLike(value) { - return value != null && typeof value == "object"; + return value != null && typeof value == 'object'; } /** @@ -3032,10 +2873,8 @@ * // => false */ function isNumber(value) { - return ( - typeof value == "number" || - (isObjectLike(value) && baseGetTag(value) == numberTag) - ); + return typeof value == 'number' || + (isObjectLike(value) && baseGetTag(value) == numberTag); } /** @@ -3075,10 +2914,8 @@ * // => false */ function isString(value) { - return ( - typeof value == "string" || - (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag) - ); + return typeof value == 'string' || + (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag); } /** @@ -3207,10 +3044,10 @@ * // => '1,2,3' */ function toString(value) { - if (typeof value == "string") { + if (typeof value == 'string') { return value; } - return value == null ? "" : value + ""; + return value == null ? '' : (value + ''); } /*------------------------------------------------------------------------*/ @@ -3247,7 +3084,7 @@ * _.assign({ 'a': 0 }, new Foo, new Bar); * // => { 'a': 1, 'c': 3 } */ - var assign = createAssigner(function (object, source) { + var assign = createAssigner(function(object, source) { copyObject(source, nativeKeys(source), object); }); @@ -3282,7 +3119,7 @@ * _.assignIn({ 'a': 0 }, new Foo, new Bar); * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 } */ - var assignIn = createAssigner(function (object, source) { + var assignIn = createAssigner(function(object, source) { copyObject(source, nativeKeysIn(source), object); }); @@ -3346,7 +3183,7 @@ * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 }); * // => { 'a': 1, 'b': 2 } */ - var defaults = baseRest(function (object, sources) { + var defaults = baseRest(function(object, sources) { object = Object(object); var index = -1; @@ -3367,10 +3204,8 @@ var key = props[propsIndex]; var value = object[key]; - if ( - value === undefined || - (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key)) - ) { + if (value === undefined || + (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) { object[key] = source[key]; } } @@ -3482,7 +3317,7 @@ * _.pick(object, ['a', 'c']); * // => { 'a': 1, 'c': 3 } */ - var pick = flatRest(function (object, paths) { + var pick = flatRest(function(object, paths) { return object == null ? {} : basePick(object, paths); }); @@ -3585,7 +3420,7 @@ */ function escape(string) { string = toString(string); - return string && reHasUnescapedHtml.test(string) + return (string && reHasUnescapedHtml.test(string)) ? string.replace(reUnescapedHtml, escapeHtmlChar) : string; } @@ -3726,31 +3561,29 @@ */ function mixin(object, source, options) { var props = keys(source), - methodNames = baseFunctions(source, props); + methodNames = baseFunctions(source, props); - if ( - options == null && - !(isObject(source) && (methodNames.length || !props.length)) - ) { + if (options == null && + !(isObject(source) && (methodNames.length || !props.length))) { options = source; source = object; object = this; methodNames = baseFunctions(source, keys(source)); } - var chain = !(isObject(options) && "chain" in options) || !!options.chain, - isFunc = isFunction(object); + var chain = !(isObject(options) && 'chain' in options) || !!options.chain, + isFunc = isFunction(object); - baseEach(methodNames, function (methodName) { + baseEach(methodNames, function(methodName) { var func = source[methodName]; object[methodName] = func; if (isFunc) { - object.prototype[methodName] = function () { + object.prototype[methodName] = function() { var chainAll = this.__chain__; if (chain || chainAll) { var result = object(this.__wrapped__), - actions = (result.__actions__ = copyArray(this.__actions__)); + actions = result.__actions__ = copyArray(this.__actions__); - actions.push({ func: func, args: arguments, thisArg: object }); + actions.push({ 'func': func, 'args': arguments, 'thisArg': object }); result.__chain__ = chainAll; return result; } @@ -3841,7 +3674,7 @@ * // => undefined */ function max(array) { - return array && array.length + return (array && array.length) ? baseExtremum(array, identity, baseGt) : undefined; } @@ -3865,7 +3698,7 @@ * // => undefined */ function min(array) { - return array && array.length + return (array && array.length) ? baseExtremum(array, identity, baseLt) : undefined; } @@ -3949,19 +3782,15 @@ lodash.each = forEach; 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 }, - ); + mixin(lodash, (function() { + var source = {}; + baseForOwn(lodash, function(func, methodName) { + if (!hasOwnProperty.call(lodash.prototype, methodName)) { + source[methodName] = func; + } + }); + return source; + }()), { 'chain': false }); /*------------------------------------------------------------------------*/ @@ -3975,53 +3804,30 @@ lodash.VERSION = VERSION; // Add `Array` methods to `lodash.prototype`. - baseEach( - [ - "pop", - "join", - "replace", - "reverse", - "split", - "push", - "shift", - "sort", - "splice", - "unshift", - ], - function (methodName) { - var func = ( - /^(?:replace|split)$/.test(methodName) ? String.prototype : arrayProto - )[methodName], - chainName = /^(?:push|sort|unshift)$/.test(methodName) ? "tap" : "thru", + baseEach(['pop', 'join', 'replace', 'reverse', 'split', 'push', 'shift', 'sort', 'splice', 'unshift'], function(methodName) { + var func = (/^(?:replace|split)$/.test(methodName) ? String.prototype : arrayProto)[methodName], + chainName = /^(?:push|sort|unshift)$/.test(methodName) ? 'tap' : 'thru', retUnwrapped = /^(?:pop|join|replace|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 (value) { - return func.apply(isArray(value) ? value : [], args); - }); - }; - }, - ); + 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(value) { + return func.apply(isArray(value) ? value : [], args); + }); + }; + }); // Add chain sequence methods to the `lodash` wrapper. - lodash.prototype.toJSON = - lodash.prototype.valueOf = - lodash.prototype.value = - wrapperValue; + lodash.prototype.toJSON = lodash.prototype.valueOf = lodash.prototype.value = wrapperValue; /*--------------------------------------------------------------------------*/ // Some AMD build optimizers, like r.js, check for condition patterns like: - if ( - typeof define == "function" && - typeof define.amd == "object" && - define.amd - ) { + if (typeof define == 'function' && typeof define.amd == 'object' && define.amd) { // Expose Lodash on the global object to prevent errors when Lodash is // loaded by a script tag in the presence of an AMD loader. // See http://requirejs.org/docs/errors.html#mismatch for more details. @@ -4030,7 +3836,7 @@ // Define as an anonymous module so, through path mapping, it can be // referenced as the "underscore" module. - define(function () { + define(function() { return lodash; }); } @@ -4040,8 +3846,9 @@ (freeModule.exports = lodash)._ = lodash; // Export for CommonJS support. freeExports._ = lodash; - } else { + } + else { // Export to the global object. root._ = lodash; } -}).call(this); +}.call(this)); diff --git a/libs/pokeapi.js b/libs/pokeapi.js index d363e8c..e0d1b66 100644 --- a/libs/pokeapi.js +++ b/libs/pokeapi.js @@ -1,70 +1,61 @@ class PokeApi { - static async getTypeEffectiveness(type) { - try { - const response = await fetch(`https://pokeapi.co/api/v2/type/${type}`); - const data = await response.json(); - return data.damage_relations; - } catch (error) { - console.error(`Error fetching type effectiveness for ${type}:`, error); - return null; - } - } + static async getTypeEffectiveness(type) { + try { + const response = await fetch(`https://pokeapi.co/api/v2/type/${type}`); + const data = await response.json(); + return data.damage_relations; + } catch (error) { + console.error(`Error fetching type effectiveness for ${type}:`, error); + return null; + } + } - static async getAbility(pokemonId, abilityIndex) { - try { - const pokemonInfo = await fetch( - `https://pokeapi.co/api/v2/pokemon/${pokemonId}`, - ); - const data = await pokemonInfo.json(); + static async getAbility(pokemonId, abilityIndex) { + try { + const pokemonInfo = await fetch(`https://pokeapi.co/api/v2/pokemon/${pokemonId}`); + const data = await pokemonInfo.json(); - const abilityLength = data.abilities.length; + const abilityLength = data.abilities.length - if (abilityIndex >= abilityLength) { - abilityIndex = abilityLength - 1; // Pokerogue uses a "None" ability as padding when pokémon have less than 3. - } + if (abilityIndex >= abilityLength) { + abilityIndex = abilityLength - 1 // Pokerogue uses a "None" ability as padding when pokémon have less than 3. + } + + const abilityName = data.abilities[abilityIndex].ability.name + const abilityInfo = await fetch(`https://pokeapi.co/api/v2/ability/${abilityName}`); + const abilityData = await abilityInfo.json(); + const description = abilityData.flavor_text_entries.find((entry) => entry.language.name === "en") || "No description found" + return { + 'name': abilityName.toUpperCase().replace('-', ' '), + 'description': description.flavor_text, + 'isHidden': data.abilities[abilityIndex].is_hidden + } + } catch (error) { + console.error('Error fetching Pokémons ability:', error); + return null; + } + } - const abilityName = data.abilities[abilityIndex].ability.name; - const abilityInfo = await fetch( - `https://pokeapi.co/api/v2/ability/${abilityName}`, - ); - const abilityData = await abilityInfo.json(); - const description = - abilityData.flavor_text_entries.find( - (entry) => entry.language.name === "en", - ) || "No description found"; - return { - name: abilityName.toUpperCase().replace("-", " "), - description: description.flavor_text, - isHidden: data.abilities[abilityIndex].is_hidden, - }; - } catch (error) { - console.error("Error fetching Pokémons ability:", error); - return null; - } - } + static async getNature(nature) { + try { + const natureInfo = await fetch(`https://pokeapi.co/api/v2/nature/${nature}`) + const data = await natureInfo.json(); + } catch (error) { + console.error("Error fetching Nature details:", error) + return null; + } + } - static async getNature(nature) { - try { - const natureInfo = await fetch( - `https://pokeapi.co/api/v2/nature/${nature}`, - ); - const data = await natureInfo.json(); - } catch (error) { - console.error("Error fetching Nature details:", error); - return null; - } - } - - // Function to get Pokémon type - static async getPokemonType(id) { - try { - const response = await fetch(`https://pokeapi.co/api/v2/pokemon/${id}`); - const data = await response.json(); - const types = data.types.map((type) => type.type.name); - return types; - } catch (error) { - console.error("Error fetching Pokémon type:", error); - return null; - } - } -} + // Function to get Pokémon type + static async getPokemonType(id) { + try { + const response = await fetch(`https://pokeapi.co/api/v2/pokemon/${id}`); + const data = await response.json(); + const types = data.types.map(type => type.type.name); + return types; + } catch (error) { + console.error('Error fetching Pokémon type:', error); + return null; + } + } +} \ No newline at end of file diff --git a/libs/pokerogueutils.js b/libs/pokerogueutils.js index c122dea..96f8be5 100644 --- a/libs/pokerogueutils.js +++ b/libs/pokerogueutils.js @@ -1,95 +1,97 @@ function _getNatureStatMultiplier(nature, stat) { - switch (stat) { - case Stat.ATK: - switch (nature) { - case Nature.LONELY: - case Nature.BRAVE: - case Nature.ADAMANT: - case Nature.NAUGHTY: - return 1.1; - case Nature.BOLD: - case Nature.TIMID: - case Nature.MODEST: - case Nature.CALM: - return 0.9; - } - break; - case Stat.DEF: - switch (nature) { - case Nature.BOLD: - case Nature.RELAXED: - case Nature.IMPISH: - case Nature.LAX: - return 1.1; - case Nature.LONELY: - case Nature.HASTY: - case Nature.MILD: - case Nature.GENTLE: - return 0.9; - } - break; - case Stat.SPATK: - switch (nature) { - case Nature.MODEST: - case Nature.MILD: - case Nature.QUIET: - case Nature.RASH: - return 1.1; - case Nature.ADAMANT: - case Nature.IMPISH: - case Nature.JOLLY: - case Nature.CAREFUL: - return 0.9; - } - break; - case Stat.SPDEF: - switch (nature) { - case Nature.CALM: - case Nature.GENTLE: - case Nature.SASSY: - case Nature.CAREFUL: - return 1.1; - case Nature.NAUGHTY: - case Nature.LAX: - case Nature.NAIVE: - case Nature.RASH: - return 0.9; - } - break; - case Stat.SPD: - switch (nature) { - case Nature.TIMID: - case Nature.HASTY: - case Nature.JOLLY: - case Nature.NAIVE: - return 1.1; - case Nature.BRAVE: - case Nature.RELAXED: - case Nature.QUIET: - case Nature.SASSY: - return 0.9; - } - break; - } - return 1; + switch (stat) { + case Stat.ATK: + switch (nature) { + case Nature.LONELY: + case Nature.BRAVE: + case Nature.ADAMANT: + case Nature.NAUGHTY: + return 1.1; + case Nature.BOLD: + case Nature.TIMID: + case Nature.MODEST: + case Nature.CALM: + return 0.9; + } + break; + case Stat.DEF: + switch (nature) { + case Nature.BOLD: + case Nature.RELAXED: + case Nature.IMPISH: + case Nature.LAX: + return 1.1; + case Nature.LONELY: + case Nature.HASTY: + case Nature.MILD: + case Nature.GENTLE: + return 0.9; + } + break; + case Stat.SPATK: + switch (nature) { + case Nature.MODEST: + case Nature.MILD: + case Nature.QUIET: + case Nature.RASH: + return 1.1; + case Nature.ADAMANT: + case Nature.IMPISH: + case Nature.JOLLY: + case Nature.CAREFUL: + return 0.9; + } + break; + case Stat.SPDEF: + switch (nature) { + case Nature.CALM: + case Nature.GENTLE: + case Nature.SASSY: + case Nature.CAREFUL: + return 1.1; + case Nature.NAUGHTY: + case Nature.LAX: + case Nature.NAIVE: + case Nature.RASH: + return 0.9; + } + break; + case Stat.SPD: + switch (nature) { + case Nature.TIMID: + case Nature.HASTY: + case Nature.JOLLY: + case Nature.NAIVE: + return 1.1; + case Nature.BRAVE: + case Nature.RELAXED: + case Nature.QUIET: + case Nature.SASSY: + return 0.9; + } + break; + } + return 1; } class PokeRogueUtils { - static getNatureDescription(natureIndex) { - let ret = "(-)"; - let increasedStat = null; - let decreasedStat = null; - for (let stat of Object.values(Stat) - .filter((v) => !isNaN(parseInt(v.toString()))) - .map((v) => parseInt(v.toString()))) { - const multiplier = _getNatureStatMultiplier(natureIndex, stat); - if (multiplier > 1) increasedStat = stat; - else if (multiplier < 1) decreasedStat = stat; - } - if (increasedStat && decreasedStat) - ret = `(+${Stat[increasedStat]}/-${Stat[decreasedStat]})`; - else if (increasedStat) ret = `(+${Stat[increasedStat]})`; - else if (decreasedStat) ret = `(-${Stat[decreasedStat]})`; - return ret; - } -} + static getNatureDescription(natureIndex) { + let ret = "(-)"; + let increasedStat = null; + let decreasedStat = null; + for (let stat of Object.values(Stat).filter(v => !isNaN(parseInt(v.toString()))).map(v => parseInt(v.toString()))) { + const multiplier = _getNatureStatMultiplier(natureIndex, stat); + if (multiplier > 1) + increasedStat = stat; + else if (multiplier < 1) + decreasedStat = stat; + } + if (increasedStat && decreasedStat) + ret = `(+${Stat[increasedStat]}/-${Stat[decreasedStat]})`; + else if (increasedStat) + ret = `(+${Stat[increasedStat]})`; + else if (decreasedStat) + ret = `(-${Stat[decreasedStat]})`; + return ret; + } +} \ No newline at end of file diff --git a/libs/utils.js b/libs/utils.js index de9fb94..9ffd78c 100644 --- a/libs/utils.js +++ b/libs/utils.js @@ -1,8 +1,6 @@ async function _calculateTypesEffectiveness(types) { - const typeEffectiveness = await Promise.all( - types.map(PokeApi.getTypeEffectiveness), - ); - if (typeEffectiveness.some((data) => data === null)) { + const typeEffectiveness = await Promise.all(types.map(PokeApi.getTypeEffectiveness)); + if (typeEffectiveness.some(data => data === null)) { return null; } @@ -12,147 +10,138 @@ async function _calculateTypesEffectiveness(types) { if (types.length === 1) { const data = typeEffectiveness[0]; - data.double_damage_from.forEach((t) => weaknesses.add(t.name)); - data.half_damage_from.forEach((t) => resistances.add(t.name)); - data.no_damage_from.forEach((t) => immunities.add(t.name)); + data.double_damage_from.forEach(t => weaknesses.add(t.name)); + data.half_damage_from.forEach(t => resistances.add(t.name)); + data.no_damage_from.forEach(t => immunities.add(t.name)); } else if (types.length === 2) { const [type1, type2] = types; const type1Effectiveness = typeEffectiveness[0]; const type2Effectiveness = typeEffectiveness[1]; // Calculate weaknesses - type1Effectiveness.double_damage_from.forEach((t) => { - if (!type2Effectiveness.half_damage_from.some((r) => r.name === t.name)) { - weaknesses.add(t.name); + type1Effectiveness.double_damage_from.forEach(t => { + if (!type2Effectiveness.half_damage_from.some(r => r.name === t.name)) { + weaknesses.add(t.name) } }); - type2Effectiveness.double_damage_from.forEach((t) => { - if (!type1Effectiveness.half_damage_from.some((r) => r.name === t.name)) { - weaknesses.add(t.name); + type2Effectiveness.double_damage_from.forEach(t => { + if (!type1Effectiveness.half_damage_from.some(r => r.name === t.name)) { + weaknesses.add(t.name) } }); // Calculate resistances - type1Effectiveness.half_damage_from.forEach((t) => { - if ( - !type2Effectiveness.double_damage_from.some((r) => r.name === t.name) - ) { - resistances.add(t.name); + type1Effectiveness.half_damage_from.forEach(t => { + if (!type2Effectiveness.double_damage_from.some(r => r.name === t.name)) { + resistances.add(t.name) } }); - type2Effectiveness.half_damage_from.forEach((t) => { - if ( - !type1Effectiveness.double_damage_from.some((r) => r.name === t.name) - ) { - resistances.add(t.name); + type2Effectiveness.half_damage_from.forEach(t => { + if (!type1Effectiveness.double_damage_from.some(r => r.name === t.name)) { + resistances.add(t.name) } }); // Calculate immunities - type1Effectiveness.no_damage_from.forEach((t) => immunities.add(t.name)); - type2Effectiveness.no_damage_from.forEach((t) => immunities.add(t.name)); + type1Effectiveness.no_damage_from.forEach(t => immunities.add(t.name)) + type2Effectiveness.no_damage_from.forEach(t => immunities.add(t.name)) - immunities.forEach((immunity) => { - weaknesses.delete(immunity); - resistances.delete(immunity); - }); + immunities.forEach(immunity => { + weaknesses.delete(immunity); + resistances.delete(immunity); + }) } return { weaknesses, resistances, immunities }; } class Utils { - // Function that converts PokeRogue pokemon ID to pokeAPI pokemon ID - static convertPokemonId(pokemonId) { - const conversionList = { - 2019: 10091, - 2020: 10092, - 2026: 10100, - 2027: 10101, - 2028: 10102, - 2037: 10103, - 2038: 10104, - 2050: 10105, - 2051: 10106, - 2052: 10107, - 2053: 10108, - 2074: 10109, - 2075: 10110, - 2076: 10111, - 2088: 10112, - 2089: 10113, - 2103: 10114, - 2105: 10115, - 2670: 10061, - 4052: 10162, - 4077: 10163, - 4078: 10164, - 4079: 10165, - 4080: 10166, - 4083: 10167, - 4110: 10168, - 4122: 10169, - 4144: 10170, - 4145: 10171, - 4146: 10172, - 4199: 10173, - 4222: 10174, - 4263: 10175, - 4264: 10176, - 4554: 10177, - 4555: 10178, - 4562: 10179, - 4618: 10180, - 6058: 10229, - 6059: 10230, - 6100: 10231, - 6101: 10232, - 6157: 10233, - 6211: 10234, - 6215: 10235, - 6503: 10236, - 6549: 10237, - 6570: 10238, - 6571: 10239, - 6628: 10240, - 6705: 10241, - 6706: 10242, - 6713: 10243, - 6724: 10244, - 8128: 10252, - 8194: 10253, - 8901: 10272, - }; - if (pokemonId in conversionList) { - return conversionList[pokemonId]; - } else { - return pokemonId; - } - } + // Function that converts PokeRogue pokemon ID to pokeAPI pokemon ID + static convertPokemonId(pokemonId) { + const conversionList = { + 2019: 10091, + 2020: 10092, + 2026: 10100, + 2027: 10101, + 2028: 10102, + 2037: 10103, + 2038: 10104, + 2050: 10105, + 2051: 10106, + 2052: 10107, + 2053: 10108, + 2074: 10109, + 2075: 10110, + 2076: 10111, + 2088: 10112, + 2089: 10113, + 2103: 10114, + 2105: 10115, + 2670: 10061, + 4052: 10162, + 4077: 10163, + 4078: 10164, + 4079: 10165, + 4080: 10166, + 4083: 10167, + 4110: 10168, + 4122: 10169, + 4144: 10170, + 4145: 10171, + 4146: 10172, + 4199: 10173, + 4222: 10174, + 4263: 10175, + 4264: 10176, + 4554: 10177, + 4555: 10178, + 4562: 10179, + 4618: 10180, + 6058: 10229, + 6059: 10230, + 6100: 10231, + 6101: 10232, + 6157: 10233, + 6211: 10234, + 6215: 10235, + 6503: 10236, + 6549: 10237, + 6570: 10238, + 6571: 10239, + 6628: 10240, + 6705: 10241, + 6706: 10242, + 6713: 10243, + 6724: 10244, + 8128: 10252, + 8194: 10253, + 8901: 10272 + } + if (pokemonId in conversionList) { + return conversionList[pokemonId] + } else { + return pokemonId + } + } - // Function to calculate weaknesses, resistances, and immunities + // Function to calculate weaknesses, resistances, and immunities + - static async getPokemonTypeEffectiveness(id) { - const types = await PokeApi.getPokemonType(id); - if (types) { - const { weaknesses, resistances, immunities } = - await _calculateTypesEffectiveness(types); - return { - weaknesses: weaknesses, - resistances: resistances, - immunities: immunities, - }; - } - return {}; - } + static async getPokemonTypeEffectiveness(id) { + const types = await PokeApi.getPokemonType(id); + if (types) { + const { weaknesses, resistances, immunities } = await _calculateTypesEffectiveness(types); + return { + 'weaknesses': weaknesses, + 'resistances': resistances, + 'immunities': immunities + } + } + return {} + } - static mapPartyToPokemonArray(party) { - return party.map(({ species, abilityIndex, nature, ivs }) => ({ - species, - abilityIndex, - nature, - ivs, - })); - } -} + static mapPartyToPokemonArray(party) { + return party.map(({ species, abilityIndex, nature, ivs }) => ({ species, abilityIndex, nature, ivs })) + } +} \ No newline at end of file