spa
Version:
Single-page applications builder with continuous integration, granular updates and loader.
1 lines • 17.8 kB
JavaScript
(function(){"use strict";var t={cipher:{},hash:{},keyexchange:{},mode:{},misc:{},codec:{},exception:{corrupt:function(t){this.toString=function(){return"CORRUPT: "+this.message},this.message=t},invalid:function(t){this.toString=function(){return"INVALID: "+this.message},this.message=t},bug:function(t){this.toString=function(){return"BUG: "+this.message},this.message=t},notReady:function(t){this.toString=function(){return"NOT READY: "+this.message},this.message=t}}};"undefined"!=typeof module&&module.exports&&(module.exports=t),t.bitArray={bitSlice:function(e,i,r){return e=t.bitArray._shiftRight(e.slice(i/32),32-(31&i)).slice(1),void 0===r?e:t.bitArray.clamp(e,r-i)},extract:function(t,e,i){var r,n=Math.floor(-e-i&31);return r=-32&(e+i-1^e)?t[e/32|0]<<32-n^t[e/32+1|0]>>>n:t[e/32|0]>>>n,r&(1<<i)-1},concat:function(e,i){if(0===e.length||0===i.length){return e.concat(i)}var o=e[e.length-1],s=t.bitArray.getPartial(o);return 32===s?e.concat(i):t.bitArray._shiftRight(i,s,0|o,e.slice(0,e.length-1))},bitLength:function(e){var r,i=e.length;return 0===i?0:(r=e[i-1],32*(i-1)+t.bitArray.getPartial(r))},clamp:function(e,i){if(32*e.length<i){return e}e=e.slice(0,Math.ceil(i/32));var r=e.length;return i=31&i,r>0&&i&&(e[r-1]=t.bitArray.partial(i,e[r-1]&2147483648>>i-1,1)),e},partial:function(t,e,i){return 32===t?e:(i?0|e:e<<32-t)+1099511627776*t},getPartial:function(t){return Math.round(t/1099511627776)||32},equal:function(e,i){if(t.bitArray.bitLength(e)!==t.bitArray.bitLength(i)){return!1}var n,r=0;for(n=0;n<e.length;n++){r|=e[n]^i[n]}return 0===r},_shiftRight:function(e,i,r,n){var o,a,s=0;for(void 0===n&&(n=[]);i>=32;i-=32){n.push(r),r=0}if(0===i){return n.concat(e)}for(o=0;o<e.length;o++){n.push(r|e[o]>>>i),r=e[o]<<32-i}return s=e.length?e[e.length-1]:0,a=t.bitArray.getPartial(s),n.push(t.bitArray.partial(i+a&31,i+a>32?r:n.pop(),1)),n},_xor4:function(t,e){return[t[0]^e[0],t[1]^e[1],t[2]^e[2],t[3]^e[3]]}},t.codec.bytes={fromBits:function(e){var n,o,i=[],r=t.bitArray.bitLength(e);for(n=0;r/8>n;n++){0===(3&n)&&(o=e[n/4]),i.push(o>>>24),o<<=8}return i},toBits:function(e){var r,i=[],n=0;for(r=0;r<e.length;r++){n=n<<8|e[r],3===(3&r)&&(i.push(n),n=0)}return 3&r&&i.push(t.bitArray.partial(8*(3&r),n)),i}},t.codec.utf8String={fromBits:function(e){var n,o,i="",r=t.bitArray.bitLength(e);for(n=0;r/8>n;n++){0===(3&n)&&(o=e[n/4]),i+=String.fromCharCode(o>>>24),o<<=8}return decodeURIComponent(escape(i))},toBits:function(e){e=unescape(encodeURIComponent(e));var r,i=[],n=0;for(r=0;r<e.length;r++){n=n<<8|e.charCodeAt(r),3===(3&r)&&(i.push(n),n=0)}return 3&r&&i.push(t.bitArray.partial(8*(3&r),n)),i}},t.codec.hex={fromBits:function(e){var r,i="";for(r=0;r<e.length;r++){i+=((0|e[r])+0xf00000000000).toString(16).substr(4)}return i.substr(0,t.bitArray.bitLength(e)/4)},toBits:function(e){var i,n,r=[];for(e=e.replace(/\s|0x/g,""),n=e.length,e+="00000000",i=0;i<e.length;i+=8){r.push(0^parseInt(e.substr(i,8),16))}return t.bitArray.clamp(r,4*n)}},t.cipher.aes=function(e){this._tables[0][0][0]||this._precompute();var i,r,n,o,s,a=this._tables[0][4],h=this._tables[1],c=e.length,f=1;if(4!==c&&6!==c&&8!==c){throw new t.exception.invalid("invalid aes key size")}for(this._key=[o=e.slice(0),s=[]],i=c;4*c+28>i;i++){n=o[i-1],(i%c===0||8===c&&i%c===4)&&(n=a[n>>>24]<<24^a[n>>16&255]<<16^a[n>>8&255]<<8^a[255&n],i%c===0&&(n=n<<8^n>>>24^f<<24,f=f<<1^283*(f>>7))),o[i]=o[i-c]^n}for(r=0;i;r++,i--){n=o[3&r?i:i-4],s[r]=4>=i||4>r?n:h[0][a[n>>>24]]^h[1][a[n>>16&255]]^h[2][a[n>>8&255]]^h[3][a[255&n]]}},t.cipher.aes.prototype={encrypt:function(t){return this._crypt(t,0)},decrypt:function(t){return this._crypt(t,1)},_tables:[[[],[],[],[],[]],[[],[],[],[],[]]],_precompute:function(){var n,o,s,c,f,u,l,d,p,t=this._tables[0],e=this._tables[1],i=t[4],r=e[4],a=[],h=[];for(n=0;256>n;n++){h[(a[n]=n<<1^283*(n>>7))^n]=n}for(o=s=0;!i[o];o^=c||1,s=h[s]||1){for(l=s^s<<1^s<<2^s<<3^s<<4,l=l>>8^255&l^99,i[o]=l,r[l]=o,u=a[f=a[c=a[o]]],p=16843009*u^65537*f^257*c^16843008*o,d=257*a[l]^16843008*l,n=0;4>n;n++){t[n][o]=d=d<<24^d>>>8,e[n][l]=p=p<<24^p>>>8}}for(n=0;5>n;n++){t[n]=t[n].slice(0),e[n]=e[n].slice(0)}},_crypt:function(e,i){if(4!==e.length){throw new t.exception.invalid("invalid aes block size")}var h,c,f,l,r=this._key[i],n=e[0]^r[0],o=e[i?3:1]^r[1],s=e[2]^r[2],a=e[i?1:3]^r[3],u=r.length/4-2,d=4,p=[0,0,0,0],g=this._tables[i],_=g[0],y=g[1],m=g[2],v=g[3],b=g[4];for(l=0;u>l;l++){h=_[n>>>24]^y[o>>16&255]^m[s>>8&255]^v[255&a]^r[d],c=_[o>>>24]^y[s>>16&255]^m[a>>8&255]^v[255&n]^r[d+1],f=_[s>>>24]^y[a>>16&255]^m[n>>8&255]^v[255&o]^r[d+2],a=_[a>>>24]^y[n>>16&255]^m[o>>8&255]^v[255&s]^r[d+3],d+=4,n=h,o=c,s=f}for(l=0;4>l;l++){p[i?3&-l:l]=b[n>>>24]<<24^b[o>>16&255]<<16^b[s>>8&255]<<8^b[255&a]^r[d++],h=n,n=o,o=s,s=a,a=h}return p}},t.hash.sha256=function(t){this._key[0]||this._precompute(),t?(this._h=t._h.slice(0),this._buffer=t._buffer.slice(0),this._length=t._length):this.reset()},t.hash.sha256.hash=function(e){return(new t.hash.sha256).update(e).finalize()},t.hash.sha256.prototype={blockSize:512,reset:function(){return this._h=this._init.slice(0),this._buffer=[],this._length=0,this},update:function(e){"string"==typeof e&&(e=t.codec.utf8String.toBits(e));var i,r=this._buffer=t.bitArray.concat(this._buffer,e),n=this._length,o=this._length=n+t.bitArray.bitLength(e);for(i=512+n&-512;o>=i;i+=512){this._block(r.splice(0,16))}return this},finalize:function(){var e,i=this._buffer,r=this._h;for(i=t.bitArray.concat(i,[t.bitArray.partial(1,1)]),e=i.length+2;15&e;e++){i.push(0)}for(i.push(Math.floor(this._length/4294967296)),i.push(0|this._length);i.length;){this._block(i.splice(0,16))}return this.reset(),r},_init:[],_key:[],_precompute:function(){function r(t){return 4294967296*(t-Math.floor(t))|0}var i,t=0,e=2;t:for(;64>t;e++){for(i=2;e>=i*i;i++){if(e%i===0){continue t}}8>t&&(this._init[t]=r(Math.pow(e,.5))),this._key[t]=r(Math.pow(e,1/3)),t++}},_block:function(t){var e,i,r,n,o=t.slice(0),s=this._h,a=this._key,h=s[0],c=s[1],f=s[2],u=s[3],l=s[4],d=s[5],p=s[6],g=s[7];for(e=0;64>e;e++){16>e?i=o[e]:(r=o[e+1&15],n=o[e+14&15],i=o[15&e]=(r>>>7^r>>>18^r>>>3^r<<25^r<<14)+(n>>>17^n>>>19^n>>>10^n<<15^n<<13)+o[15&e]+o[e+9&15]|0),i=i+g+(l>>>6^l>>>11^l>>>25^l<<26^l<<21^l<<7)+(p^l&(d^p))+a[e],g=p,p=d,d=l,l=u+i|0,u=f,f=c,c=h,h=i+(c&f^u&(c^f))+(c>>>2^c>>>13^c>>>22^c<<30^c<<19^c<<10)|0}s[0]=s[0]+h|0,s[1]=s[1]+c|0,s[2]=s[2]+f|0,s[3]=s[3]+u|0,s[4]=s[4]+l|0,s[5]=s[5]+d|0,s[6]=s[6]+p|0,s[7]=s[7]+g|0}},t.misc.hmac=function(e,i){this._hash=i=i||t.hash.sha256;var n,r=[[],[]],o=i.prototype.blockSize/32;for(this._baseHash=[new i,new i],e.length>o&&(e=i.hash(e)),n=0;o>n;n++){r[0][n]=909522486^e[n],r[1][n]=1549556828^e[n]}this._baseHash[0].update(r[0]),this._baseHash[1].update(r[1]),this._resultHash=new i(this._baseHash[0])},t.misc.hmac.prototype.encrypt=t.misc.hmac.prototype.mac=function(e){if(this._updated){throw new t.exception.invalid("encrypt on already updated hmac called!")}return this.update(e),this.digest(e)},t.misc.hmac.prototype.reset=function(){this._resultHash=new this._hash(this._baseHash[0]),this._updated=!1},t.misc.hmac.prototype.update=function(t){this._updated=!0,this._resultHash.update(t)},t.misc.hmac.prototype.digest=function(){var t=this._resultHash.finalize(),e=new this._hash(this._baseHash[1]).update(t).finalize();return this.reset(),e},t.misc.pbkdf2=function(e,i,r,n,o){if(r=r||1e3,0>n||0>r){throw t.exception.invalid("invalid params to pbkdf2")}"string"==typeof e&&(e=t.codec.utf8String.toBits(e)),"string"==typeof i&&(i=t.codec.utf8String.toBits(i)),o=o||t.misc.hmac;var a,h,c,f,u,s=new o(e),l=[],d=t.bitArray;for(u=1;32*l.length<(n||1);u++){for(a=h=s.encrypt(d.concat(i,[u])),c=1;r>c;c++){for(h=s.encrypt(h),f=0;f<h.length;f++){a[f]^=h[f]}}l=l.concat(a)}return n&&(l=d.clamp(l,n)),l},t.prng=function(e){this._pools=[new t.hash.sha256],this._poolEntropy=[0],this._reseedCount=0,this._robins={},this._eventId=0,this._collectorIds={},this._collectorIdNext=0,this._strength=0,this._poolStrength=0,this._nextReseed=0,this._key=[0,0,0,0,0,0,0,0],this._counter=[0,0,0,0],this._cipher=void 0,this._defaultParanoia=e,this._collectorsStarted=!1,this._callbacks={progress:{},seeded:{}},this._callbackI=0,this._NOT_READY=0,this._READY=1,this._REQUIRES_RESEED=2,this._MAX_WORDS_PER_BURST=65536,this._PARANOIA_LEVELS=[0,48,64,96,128,192,256,384,512,768,1024],this._MILLISECONDS_PER_RESEED=3e4,this._BITS_PER_RESEED=80},t.prng.prototype={randomWords:function(e,i){var n,s,r=[],o=this.isReady(i);if(o===this._NOT_READY){throw new t.exception.notReady("generator isn't seeded")}for(o&this._REQUIRES_RESEED&&this._reseedFromPools(!(o&this._READY)),n=0;e>n;n+=4){(n+1)%this._MAX_WORDS_PER_BURST===0&&this._gate(),s=this._gen4words(),r.push(s[0],s[1],s[2],s[3])}return this._gate(),r.slice(0,e)},setDefaultParanoia:function(t,e){if(0===t&&"Setting paranoia=0 will ruin your security; use it only for testing"!==e){throw"Setting paranoia=0 will ruin your security; use it only for testing"}this._defaultParanoia=t},addEntropy:function(e,i,r){r=r||"user";var n,o,s,u,a=(new Date).valueOf(),h=this._robins[r],c=this.isReady(),f=0;switch(n=this._collectorIds[r],void 0===n&&(n=this._collectorIds[r]=this._collectorIdNext++),void 0===h&&(h=this._robins[r]=0),this._robins[r]=(this._robins[r]+1)%this._pools.length,typeof e){case"number":void 0===i&&(i=1),this._pools[h].update([n,this._eventId++,1,i,a,1,0|e]);break;case"object":if(u=Object.prototype.toString.call(e),"[object Uint32Array]"===u){for(s=[],o=0;o<e.length;o++){s.push(e[o])}e=s}else{for("[object Array]"!==u&&(f=1),o=0;o<e.length&&!f;o++){"number"!=typeof e[o]&&(f=1)}}if(!f){if(void 0===i){for(i=0,o=0;o<e.length;o++){for(s=e[o];s>0;){i++,s>>>=1}}}this._pools[h].update([n,this._eventId++,2,i,a,e.length].concat(e))}break;case"string":void 0===i&&(i=e.length),this._pools[h].update([n,this._eventId++,3,i,a,e.length]),this._pools[h].update(e);break;default:f=1}if(f){throw new t.exception.bug("random: addEntropy only supports number, array of numbers or string")}this._poolEntropy[h]+=i,this._poolStrength+=i,c===this._NOT_READY&&(this.isReady()!==this._NOT_READY&&this._fireEvent("seeded",Math.max(this._strength,this._poolStrength)),this._fireEvent("progress",this.getProgress()))},isReady:function(t){var e=this._PARANOIA_LEVELS[void 0!==t?t:this._defaultParanoia];return this._strength&&this._strength>=e?this._poolEntropy[0]>this._BITS_PER_RESEED&&(new Date).valueOf()>this._nextReseed?this._REQUIRES_RESEED|this._READY:this._READY:this._poolStrength>=e?this._REQUIRES_RESEED|this._NOT_READY:this._NOT_READY},getProgress:function(t){var e=this._PARANOIA_LEVELS[t?t:this._defaultParanoia];return this._strength>=e?1:this._poolStrength>e?1:this._poolStrength/e},startCollectors:function(){if(!this._collectorsStarted){if(this._eventListener={loadTimeCollector:this._bind(this._loadTimeCollector),mouseCollector:this._bind(this._mouseCollector),keyboardCollector:this._bind(this._keyboardCollector),accelerometerCollector:this._bind(this._accelerometerCollector)},window.addEventListener){window.addEventListener("load",this._eventListener.loadTimeCollector,!1),window.addEventListener("mousemove",this._eventListener.mouseCollector,!1),window.addEventListener("keypress",this._eventListener.keyboardCollector,!1),window.addEventListener("devicemotion",this._eventListener.accelerometerCollector,!1)}else{if(!document.attachEvent){throw new t.exception.bug("can't attach event")}document.attachEvent("onload",this._eventListener.loadTimeCollector),document.attachEvent("onmousemove",this._eventListener.mouseCollector),document.attachEvent("keypress",this._eventListener.keyboardCollector)}this._collectorsStarted=!0}},stopCollectors:function(){this._collectorsStarted&&(window.removeEventListener?(window.removeEventListener("load",this._eventListener.loadTimeCollector,!1),window.removeEventListener("mousemove",this._eventListener.mouseCollector,!1),window.removeEventListener("keypress",this._eventListener.keyboardCollector,!1),window.removeEventListener("devicemotion",this._eventListener.accelerometerCollector,!1)):document.detachEvent&&(document.detachEvent("onload",this._eventListener.loadTimeCollector),document.detachEvent("onmousemove",this._eventListener.mouseCollector),document.detachEvent("keypress",this._eventListener.keyboardCollector)),this._collectorsStarted=!1)},addEventListener:function(t,e){this._callbacks[t][this._callbackI++]=e},removeEventListener:function(t,e){var i,r,n=this._callbacks[t],o=[];for(r in n){n.hasOwnProperty(r)&&n[r]===e&&o.push(r)}for(i=0;i<o.length;i++){r=o[i],delete n[r]}},_bind:function(t){var e=this;return function(){t.apply(e,arguments)}},_gen4words:function(){for(var t=0;4>t&&(this._counter[t]=this._counter[t]+1|0,!this._counter[t]);t++){}return this._cipher.encrypt(this._counter)},_gate:function(){this._key=this._gen4words().concat(this._gen4words()),this._cipher=new t.cipher.aes(this._key)},_reseed:function(e){this._key=t.hash.sha256.hash(this._key.concat(e)),this._cipher=new t.cipher.aes(this._key);for(var i=0;4>i&&(this._counter[i]=this._counter[i]+1|0,!this._counter[i]);i++){}},_reseedFromPools:function(e){var n,i=[],r=0;for(this._nextReseed=i[0]=(new Date).valueOf()+this._MILLISECONDS_PER_RESEED,n=0;16>n;n++){i.push(4294967296*Math.random()|0)}for(n=0;n<this._pools.length&&(i=i.concat(this._pools[n].finalize()),r+=this._poolEntropy[n],this._poolEntropy[n]=0,e||!(this._reseedCount&1<<n));n++){}this._reseedCount>=1<<this._pools.length&&(this._pools.push(new t.hash.sha256),this._poolEntropy.push(0)),this._poolStrength-=r,r>this._strength&&(this._strength=r),this._reseedCount++,this._reseed(i)},_keyboardCollector:function(){this._addCurrentTimeToEntropy(1)},_mouseCollector:function(e){var i=e.x||e.clientX||e.offsetX||0,r=e.y||e.clientY||e.offsetY||0;t.random.addEntropy([i,r],2,"mouse"),this._addCurrentTimeToEntropy(0)},_loadTimeCollector:function(){this._addCurrentTimeToEntropy(2)},_addCurrentTimeToEntropy:function(e){window&&window.performance&&"function"==typeof window.performance.now?t.random.addEntropy(window.performance.now(),e,"loadtime"):t.random.addEntropy((new Date).valueOf(),e,"loadtime")},_accelerometerCollector:function(e){var i=e.accelerationIncludingGravity.x||e.accelerationIncludingGravity.y||e.accelerationIncludingGravity.z,r="";window.orientation&&(r=window.orientation),t.random.addEntropy([i,r],3,"accelerometer"),this._addCurrentTimeToEntropy(0)},_fireEvent:function(e,i){var r,n=t.random._callbacks[e],o=[];for(r in n){n.hasOwnProperty(r)&&o.push(n[r])}for(r=0;r<o.length;r++){o[r](i)}}},t.random=new t.prng(6),function(){try{var e,i,n;if("undefined"!=typeof module&&module.exports){i=require("crypto"),e=i.randomBytes(128),t.random.addEntropy(e,1024,"crypto.randomBytes")}else{if(window&&Uint32Array){if(n=new Uint32Array(32),window.crypto&&window.crypto.getRandomValues){window.crypto.getRandomValues(n)}else{if(!window.msCrypto||!window.msCrypto.getRandomValues){return}window.msCrypto.getRandomValues(n)}t.random.addEntropy(n,1024,"crypto.getRandomValues")}}}catch(o){console.log("There was an error collecting entropy from the browser:"),console.log(o)}}(),t.mode.gcm={name:"gcm",encrypt:function(e,i,r,n,o){var s,a=i.slice(0),h=t.bitArray;return o=o||128,n=n||[],s=t.mode.gcm._ctrMode(!0,e,a,n,r,o),h.concat(s.data,s.tag)},decrypt:function(e,i,r,n,o){var s,h,a=i.slice(0),c=t.bitArray,f=c.bitLength(a);if(o=o||128,n=n||[],f>=o?(h=c.bitSlice(a,f-o),a=c.bitSlice(a,0,f-o)):(h=a,a=[]),s=t.mode.gcm._ctrMode(!1,e,a,n,r,o),!c.equal(s.tag,h)){throw new t.exception.corrupt("gcm: tag doesn't match")}return s.data},_galoisMultiply:function(e,i){var r,n,o,s,a,h,c=t.bitArray,f=c._xor4;for(s=[0,0,0,0],a=i.slice(0),r=0;128>r;r++){for(o=0!==(e[Math.floor(r/32)]&1<<31-r%32),o&&(s=f(s,a)),h=0!==(1&a[3]),n=3;n>0;n--){a[n]=a[n]>>>1|(1&a[n-1])<<31}a[0]=a[0]>>>1,h&&(a[0]=a[0]^225<<24)}return s},_ghash:function(e,i,r){var n,o,s=r.length;for(n=i.slice(0),o=0;s>o;o+=4){n[0]^=4294967295&r[o],n[1]^=4294967295&r[o+1],n[2]^=4294967295&r[o+2],n[3]^=4294967295&r[o+3],n=t.mode.gcm._galoisMultiply(n,e)}return n},_ctrMode:function(e,i,r,n,o,s){{var a,h,c,f,u,l,d,p,g,_,y,m,v=t.bitArray;v._xor4}for(g=r.length,_=v.bitLength(r),y=v.bitLength(n),m=v.bitLength(o),a=i.encrypt([0,0,0,0]),96===m?(h=o.slice(0),h=v.concat(h,[1])):(h=t.mode.gcm._ghash(a,[0,0,0,0],o),h=t.mode.gcm._ghash(a,h,[0,0,Math.floor(m/4294967296),4294967295&m])),c=t.mode.gcm._ghash(a,[0,0,0,0],n),l=h.slice(0),d=c.slice(0),e||(d=t.mode.gcm._ghash(a,c,r)),u=0;g>u;u+=4){l[3]++,f=i.encrypt(l),r[u]^=f[0],r[u+1]^=f[1],r[u+2]^=f[2],r[u+3]^=f[3]}return r=v.clamp(r,_),e&&(d=t.mode.gcm._ghash(a,c,r)),p=[Math.floor(y/4294967296),4294967295&y,Math.floor(_/4294967296),4294967295&_],d=t.mode.gcm._ghash(a,d,p),f=i.encrypt(h),d[0]^=f[0],d[1]^=f[1],d[2]^=f[2],d[3]^=f[3],{tag:v.bitSlice(d,0,s),data:r}}};var e=function(e){var i;return i=function(i,r,n){var o,s,a,h,c,f,u,l;if(i instanceof String||"string"==typeof i){c=t.codec.utf8String.toBits(i)}else{if(i instanceof ArrayBuffer){l=new Uint8Array(i),c=t.codec.bytes.toBits(l)}else{if(!(i instanceof Buffer)){throw Error("invalid input type")}c=t.codec.bytes.toBits(i)}}return n.cipher="aes",n.mode=e,null!=n.iv?a=t.codec.hex.toBits(n.iv):(a=t.random.randomWords(4,0),n.iv=t.codec.hex.fromBits(a)),null!=n.salt?u=t.codec.hex.toBits(n.salt):(u=t.random.randomWords(2,0),n.salt=t.codec.hex.fromBits(u)),h=t.misc.pbkdf2(r,u,n.iter).slice(0,n.ks/32),o=t.codec.utf8String.toBits(n.auth),f=new t.cipher.aes(h),s=t.mode[e].encrypt(f,c,a,o,n.ts),new Buffer(t.codec.bytes.fromBits(s))},function(t,r,n){var o,s,a,h;return h={iter:n.coding_func.iter,ks:n.coding_func.ks,ts:n.coding_func.ts,auth:r.url},a="aes-"+e+"-"+h.ks+"-"+h.ts+"-"+h.iter+"-"+r.source_hash+"-"+h.auth,n.cache.has(a)&&(o=n.cache.get(a),h.salt=o.salt,h.iv=o.iv),s=i(t,n.coding_func.password,h),r.decoding=h,n.cache.set(a,h),s}};return e("gcm")})();