@aztec/aztec.js 0.1.0-alpha45 → 0.1.0-alpha46

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dest/main.js CHANGED
@@ -1,2 +1,2 @@
1
1
  /*! For license information please see main.js.LICENSE.txt */
2
- var e={4782:(e,t)=>{t.byteLength=function(e){var t=o(e),n=t[0],r=t[1];return 3*(n+r)/4-r},t.toByteArray=function(e){var t,n,a=o(e),i=a[0],l=a[1],c=new s(function(e,t,n){return 3*(t+n)/4-n}(0,i,l)),u=0,f=l>0?i-4:i;for(n=0;n<f;n+=4)t=r[e.charCodeAt(n)]<<18|r[e.charCodeAt(n+1)]<<12|r[e.charCodeAt(n+2)]<<6|r[e.charCodeAt(n+3)],c[u++]=t>>16&255,c[u++]=t>>8&255,c[u++]=255&t;return 2===l&&(t=r[e.charCodeAt(n)]<<2|r[e.charCodeAt(n+1)]>>4,c[u++]=255&t),1===l&&(t=r[e.charCodeAt(n)]<<10|r[e.charCodeAt(n+1)]<<4|r[e.charCodeAt(n+2)]>>2,c[u++]=t>>8&255,c[u++]=255&t),c},t.fromByteArray=function(e){for(var t,r=e.length,s=r%3,a=[],i=16383,o=0,c=r-s;o<c;o+=i)a.push(l(e,o,o+i>c?c:o+i));return 1===s?(t=e[r-1],a.push(n[t>>2]+n[t<<4&63]+"==")):2===s&&(t=(e[r-2]<<8)+e[r-1],a.push(n[t>>10]+n[t>>4&63]+n[t<<2&63]+"=")),a.join("")};for(var n=[],r=[],s="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",i=0;i<64;++i)n[i]=a[i],r[a.charCodeAt(i)]=i;function o(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function l(e,t,r){for(var s,a,i=[],o=t;o<r;o+=3)s=(e[o]<<16&16711680)+(e[o+1]<<8&65280)+(255&e[o+2]),i.push(n[(a=s)>>18&63]+n[a>>12&63]+n[a>>6&63]+n[63&a]);return i.join("")}r["-".charCodeAt(0)]=62,r["_".charCodeAt(0)]=63},238:(e,t,n)=>{var r=n(7172).Buffer;function s(e){r.isBuffer(e)||(e=r.from(e));for(var t=e.length/4|0,n=new Array(t),s=0;s<t;s++)n[s]=e.readUInt32BE(4*s);return n}function a(e){for(;0<e.length;e++)e[0]=0}function i(e,t,n,r,s){for(var a,i,o,l,c=n[0],u=n[1],f=n[2],d=n[3],_=e[0]^t[0],h=e[1]^t[1],p=e[2]^t[2],g=e[3]^t[3],b=4,m=1;m<s;m++)a=c[_>>>24]^u[h>>>16&255]^f[p>>>8&255]^d[255&g]^t[b++],i=c[h>>>24]^u[p>>>16&255]^f[g>>>8&255]^d[255&_]^t[b++],o=c[p>>>24]^u[g>>>16&255]^f[_>>>8&255]^d[255&h]^t[b++],l=c[g>>>24]^u[_>>>16&255]^f[h>>>8&255]^d[255&p]^t[b++],_=a,h=i,p=o,g=l;return a=(r[_>>>24]<<24|r[h>>>16&255]<<16|r[p>>>8&255]<<8|r[255&g])^t[b++],i=(r[h>>>24]<<24|r[p>>>16&255]<<16|r[g>>>8&255]<<8|r[255&_])^t[b++],o=(r[p>>>24]<<24|r[g>>>16&255]<<16|r[_>>>8&255]<<8|r[255&h])^t[b++],l=(r[g>>>24]<<24|r[_>>>16&255]<<16|r[h>>>8&255]<<8|r[255&p])^t[b++],[a>>>=0,i>>>=0,o>>>=0,l>>>=0]}var o=[0,1,2,4,8,16,32,64,128,27,54],l=function(){for(var e=new Array(256),t=0;t<256;t++)e[t]=t<128?t<<1:t<<1^283;for(var n=[],r=[],s=[[],[],[],[]],a=[[],[],[],[]],i=0,o=0,l=0;l<256;++l){var c=o^o<<1^o<<2^o<<3^o<<4;c=c>>>8^255&c^99,n[i]=c,r[c]=i;var u=e[i],f=e[u],d=e[f],_=257*e[c]^16843008*c;s[0][i]=_<<24|_>>>8,s[1][i]=_<<16|_>>>16,s[2][i]=_<<8|_>>>24,s[3][i]=_,_=16843009*d^65537*f^257*u^16843008*i,a[0][c]=_<<24|_>>>8,a[1][c]=_<<16|_>>>16,a[2][c]=_<<8|_>>>24,a[3][c]=_,0===i?i=o=1:(i=u^e[e[e[d^u]]],o^=e[e[o]])}return{SBOX:n,INV_SBOX:r,SUB_MIX:s,INV_SUB_MIX:a}}();function c(e){this._key=s(e),this._reset()}c.blockSize=16,c.keySize=32,c.prototype.blockSize=c.blockSize,c.prototype.keySize=c.keySize,c.prototype._reset=function(){for(var e=this._key,t=e.length,n=t+6,r=4*(n+1),s=[],a=0;a<t;a++)s[a]=e[a];for(a=t;a<r;a++){var i=s[a-1];a%t==0?(i=i<<8|i>>>24,i=l.SBOX[i>>>24]<<24|l.SBOX[i>>>16&255]<<16|l.SBOX[i>>>8&255]<<8|l.SBOX[255&i],i^=o[a/t|0]<<24):t>6&&a%t==4&&(i=l.SBOX[i>>>24]<<24|l.SBOX[i>>>16&255]<<16|l.SBOX[i>>>8&255]<<8|l.SBOX[255&i]),s[a]=s[a-t]^i}for(var c=[],u=0;u<r;u++){var f=r-u,d=s[f-(u%4?0:4)];c[u]=u<4||f<=4?d:l.INV_SUB_MIX[0][l.SBOX[d>>>24]]^l.INV_SUB_MIX[1][l.SBOX[d>>>16&255]]^l.INV_SUB_MIX[2][l.SBOX[d>>>8&255]]^l.INV_SUB_MIX[3][l.SBOX[255&d]]}this._nRounds=n,this._keySchedule=s,this._invKeySchedule=c},c.prototype.encryptBlockRaw=function(e){return i(e=s(e),this._keySchedule,l.SUB_MIX,l.SBOX,this._nRounds)},c.prototype.encryptBlock=function(e){var t=this.encryptBlockRaw(e),n=r.allocUnsafe(16);return n.writeUInt32BE(t[0],0),n.writeUInt32BE(t[1],4),n.writeUInt32BE(t[2],8),n.writeUInt32BE(t[3],12),n},c.prototype.decryptBlock=function(e){var t=(e=s(e))[1];e[1]=e[3],e[3]=t;var n=i(e,this._invKeySchedule,l.INV_SUB_MIX,l.INV_SBOX,this._nRounds),a=r.allocUnsafe(16);return a.writeUInt32BE(n[0],0),a.writeUInt32BE(n[3],4),a.writeUInt32BE(n[2],8),a.writeUInt32BE(n[1],12),a},c.prototype.scrub=function(){a(this._keySchedule),a(this._invKeySchedule),a(this._key)},e.exports.AES=c},8587:(e,t,n)=>{var r=n(238),s=n(7172).Buffer,a=n(3081),i=n(87),o=n(1219),l=n(7752),c=n(3480);function u(e,t,n,i){a.call(this);var l=s.alloc(4,0);this._cipher=new r.AES(t);var u=this._cipher.encryptBlock(l);this._ghash=new o(u),n=function(e,t,n){if(12===t.length)return e._finID=s.concat([t,s.from([0,0,0,1])]),s.concat([t,s.from([0,0,0,2])]);var r=new o(n),a=t.length,i=a%16;r.update(t),i&&(i=16-i,r.update(s.alloc(i,0))),r.update(s.alloc(8,0));var l=8*a,u=s.alloc(8);u.writeUIntBE(l,0,8),r.update(u),e._finID=r.state;var f=s.from(e._finID);return c(f),f}(this,n,u),this._prev=s.from(n),this._cache=s.allocUnsafe(0),this._secCache=s.allocUnsafe(0),this._decrypt=i,this._alen=0,this._len=0,this._mode=e,this._authTag=null,this._called=!1}i(u,a),u.prototype._update=function(e){if(!this._called&&this._alen){var t=16-this._alen%16;t<16&&(t=s.alloc(t,0),this._ghash.update(t))}this._called=!0;var n=this._mode.encrypt(this,e);return this._decrypt?this._ghash.update(e):this._ghash.update(n),this._len+=e.length,n},u.prototype._final=function(){if(this._decrypt&&!this._authTag)throw new Error("Unsupported state or unable to authenticate data");var e=l(this._ghash.final(8*this._alen,8*this._len),this._cipher.encryptBlock(this._finID));if(this._decrypt&&function(e,t){var n=0;e.length!==t.length&&n++;for(var r=Math.min(e.length,t.length),s=0;s<r;++s)n+=e[s]^t[s];return n}(e,this._authTag))throw new Error("Unsupported state or unable to authenticate data");this._authTag=e,this._cipher.scrub()},u.prototype.getAuthTag=function(){if(this._decrypt||!s.isBuffer(this._authTag))throw new Error("Attempting to get auth tag in unsupported state");return this._authTag},u.prototype.setAuthTag=function(e){if(!this._decrypt)throw new Error("Attempting to set auth tag in unsupported state");this._authTag=e},u.prototype.setAAD=function(e){if(this._called)throw new Error("Attempting to set AAD in unsupported state");this._ghash.update(e),this._alen+=e.length},e.exports=u},8901:(e,t,n)=>{var r=n(3615),s=n(2576),a=n(4636);t.createCipher=t.Cipher=r.createCipher,t.createCipheriv=t.Cipheriv=r.createCipheriv,t.createDecipher=t.Decipher=s.createDecipher,t.createDecipheriv=t.Decipheriv=s.createDecipheriv,t.listCiphers=t.getCiphers=function(){return Object.keys(a)}},2576:(e,t,n)=>{var r=n(8587),s=n(7172).Buffer,a=n(3834),i=n(2385),o=n(3081),l=n(238),c=n(5883);function u(e,t,n){o.call(this),this._cache=new f,this._last=void 0,this._cipher=new l.AES(t),this._prev=s.from(n),this._mode=e,this._autopadding=!0}function f(){this.cache=s.allocUnsafe(0)}function d(e,t,n){var o=a[e.toLowerCase()];if(!o)throw new TypeError("invalid suite type");if("string"==typeof n&&(n=s.from(n)),"GCM"!==o.mode&&n.length!==o.iv)throw new TypeError("invalid iv length "+n.length);if("string"==typeof t&&(t=s.from(t)),t.length!==o.key/8)throw new TypeError("invalid key length "+t.length);return"stream"===o.type?new i(o.module,t,n,!0):"auth"===o.type?new r(o.module,t,n,!0):new u(o.module,t,n)}n(87)(u,o),u.prototype._update=function(e){var t,n;this._cache.add(e);for(var r=[];t=this._cache.get(this._autopadding);)n=this._mode.decrypt(this,t),r.push(n);return s.concat(r)},u.prototype._final=function(){var e=this._cache.flush();if(this._autopadding)return function(e){var t=e[15];if(t<1||t>16)throw new Error("unable to decrypt data");for(var n=-1;++n<t;)if(e[n+(16-t)]!==t)throw new Error("unable to decrypt data");if(16!==t)return e.slice(0,16-t)}(this._mode.decrypt(this,e));if(e)throw new Error("data not multiple of block length")},u.prototype.setAutoPadding=function(e){return this._autopadding=!!e,this},f.prototype.add=function(e){this.cache=s.concat([this.cache,e])},f.prototype.get=function(e){var t;if(e){if(this.cache.length>16)return t=this.cache.slice(0,16),this.cache=this.cache.slice(16),t}else if(this.cache.length>=16)return t=this.cache.slice(0,16),this.cache=this.cache.slice(16),t;return null},f.prototype.flush=function(){if(this.cache.length)return this.cache},t.createDecipher=function(e,t){var n=a[e.toLowerCase()];if(!n)throw new TypeError("invalid suite type");var r=c(t,!1,n.key,n.iv);return d(e,r.key,r.iv)},t.createDecipheriv=d},3615:(e,t,n)=>{var r=n(3834),s=n(8587),a=n(7172).Buffer,i=n(2385),o=n(3081),l=n(238),c=n(5883);function u(e,t,n){o.call(this),this._cache=new d,this._cipher=new l.AES(t),this._prev=a.from(n),this._mode=e,this._autopadding=!0}n(87)(u,o),u.prototype._update=function(e){var t,n;this._cache.add(e);for(var r=[];t=this._cache.get();)n=this._mode.encrypt(this,t),r.push(n);return a.concat(r)};var f=a.alloc(16,16);function d(){this.cache=a.allocUnsafe(0)}function _(e,t,n){var o=r[e.toLowerCase()];if(!o)throw new TypeError("invalid suite type");if("string"==typeof t&&(t=a.from(t)),t.length!==o.key/8)throw new TypeError("invalid key length "+t.length);if("string"==typeof n&&(n=a.from(n)),"GCM"!==o.mode&&n.length!==o.iv)throw new TypeError("invalid iv length "+n.length);return"stream"===o.type?new i(o.module,t,n):"auth"===o.type?new s(o.module,t,n):new u(o.module,t,n)}u.prototype._final=function(){var e=this._cache.flush();if(this._autopadding)return e=this._mode.encrypt(this,e),this._cipher.scrub(),e;if(!e.equals(f))throw this._cipher.scrub(),new Error("data not multiple of block length")},u.prototype.setAutoPadding=function(e){return this._autopadding=!!e,this},d.prototype.add=function(e){this.cache=a.concat([this.cache,e])},d.prototype.get=function(){if(this.cache.length>15){var e=this.cache.slice(0,16);return this.cache=this.cache.slice(16),e}return null},d.prototype.flush=function(){for(var e=16-this.cache.length,t=a.allocUnsafe(e),n=-1;++n<e;)t.writeUInt8(e,n);return a.concat([this.cache,t])},t.createCipheriv=_,t.createCipher=function(e,t){var n=r[e.toLowerCase()];if(!n)throw new TypeError("invalid suite type");var s=c(t,!1,n.key,n.iv);return _(e,s.key,s.iv)}},1219:(e,t,n)=>{var r=n(7172).Buffer,s=r.alloc(16,0);function a(e){var t=r.allocUnsafe(16);return t.writeUInt32BE(e[0]>>>0,0),t.writeUInt32BE(e[1]>>>0,4),t.writeUInt32BE(e[2]>>>0,8),t.writeUInt32BE(e[3]>>>0,12),t}function i(e){this.h=e,this.state=r.alloc(16,0),this.cache=r.allocUnsafe(0)}i.prototype.ghash=function(e){for(var t=-1;++t<e.length;)this.state[t]^=e[t];this._multiply()},i.prototype._multiply=function(){for(var e,t,n,r=[(e=this.h).readUInt32BE(0),e.readUInt32BE(4),e.readUInt32BE(8),e.readUInt32BE(12)],s=[0,0,0,0],i=-1;++i<128;){for(0!=(this.state[~~(i/8)]&1<<7-i%8)&&(s[0]^=r[0],s[1]^=r[1],s[2]^=r[2],s[3]^=r[3]),n=0!=(1&r[3]),t=3;t>0;t--)r[t]=r[t]>>>1|(1&r[t-1])<<31;r[0]=r[0]>>>1,n&&(r[0]=r[0]^225<<24)}this.state=a(s)},i.prototype.update=function(e){var t;for(this.cache=r.concat([this.cache,e]);this.cache.length>=16;)t=this.cache.slice(0,16),this.cache=this.cache.slice(16),this.ghash(t)},i.prototype.final=function(e,t){return this.cache.length&&this.ghash(r.concat([this.cache,s],16)),this.ghash(a([0,e,0,t])),this.state},e.exports=i},3480:e=>{e.exports=function(e){for(var t,n=e.length;n--;){if(255!==(t=e.readUInt8(n))){t++,e.writeUInt8(t,n);break}e.writeUInt8(0,n)}}},6280:(e,t,n)=>{var r=n(7752);t.encrypt=function(e,t){var n=r(t,e._prev);return e._prev=e._cipher.encryptBlock(n),e._prev},t.decrypt=function(e,t){var n=e._prev;e._prev=t;var s=e._cipher.decryptBlock(t);return r(s,n)}},392:(e,t,n)=>{var r=n(7172).Buffer,s=n(7752);function a(e,t,n){var a=t.length,i=s(t,e._cache);return e._cache=e._cache.slice(a),e._prev=r.concat([e._prev,n?t:i]),i}t.encrypt=function(e,t,n){for(var s,i=r.allocUnsafe(0);t.length;){if(0===e._cache.length&&(e._cache=e._cipher.encryptBlock(e._prev),e._prev=r.allocUnsafe(0)),!(e._cache.length<=t.length)){i=r.concat([i,a(e,t,n)]);break}s=e._cache.length,i=r.concat([i,a(e,t.slice(0,s),n)]),t=t.slice(s)}return i}},5739:(e,t,n)=>{var r=n(7172).Buffer;function s(e,t,n){for(var r,s,i=-1,o=0;++i<8;)r=t&1<<7-i?128:0,o+=(128&(s=e._cipher.encryptBlock(e._prev)[0]^r))>>i%8,e._prev=a(e._prev,n?r:s);return o}function a(e,t){var n=e.length,s=-1,a=r.allocUnsafe(e.length);for(e=r.concat([e,r.from([t])]);++s<n;)a[s]=e[s]<<1|e[s+1]>>7;return a}t.encrypt=function(e,t,n){for(var a=t.length,i=r.allocUnsafe(a),o=-1;++o<a;)i[o]=s(e,t[o],n);return i}},2228:(e,t,n)=>{var r=n(7172).Buffer;function s(e,t,n){var s=e._cipher.encryptBlock(e._prev)[0]^t;return e._prev=r.concat([e._prev.slice(1),r.from([n?t:s])]),s}t.encrypt=function(e,t,n){for(var a=t.length,i=r.allocUnsafe(a),o=-1;++o<a;)i[o]=s(e,t[o],n);return i}},2751:(e,t,n)=>{var r=n(7752),s=n(7172).Buffer,a=n(3480);function i(e){var t=e._cipher.encryptBlockRaw(e._prev);return a(e._prev),t}t.encrypt=function(e,t){var n=Math.ceil(t.length/16),a=e._cache.length;e._cache=s.concat([e._cache,s.allocUnsafe(16*n)]);for(var o=0;o<n;o++){var l=i(e),c=a+16*o;e._cache.writeUInt32BE(l[0],c+0),e._cache.writeUInt32BE(l[1],c+4),e._cache.writeUInt32BE(l[2],c+8),e._cache.writeUInt32BE(l[3],c+12)}var u=e._cache.slice(0,t.length);return e._cache=e._cache.slice(t.length),r(t,u)}},2437:(e,t)=>{t.encrypt=function(e,t){return e._cipher.encryptBlock(t)},t.decrypt=function(e,t){return e._cipher.decryptBlock(t)}},3834:(e,t,n)=>{var r={ECB:n(2437),CBC:n(6280),CFB:n(392),CFB8:n(2228),CFB1:n(5739),OFB:n(8428),CTR:n(2751),GCM:n(2751)},s=n(4636);for(var a in s)s[a].module=r[s[a].mode];e.exports=s},8428:(e,t,n)=>{var r=n(816).Buffer,s=n(7752);function a(e){return e._prev=e._cipher.encryptBlock(e._prev),e._prev}t.encrypt=function(e,t){for(;e._cache.length<t.length;)e._cache=r.concat([e._cache,a(e)]);var n=e._cache.slice(0,t.length);return e._cache=e._cache.slice(t.length),s(t,n)}},2385:(e,t,n)=>{var r=n(238),s=n(7172).Buffer,a=n(3081);function i(e,t,n,i){a.call(this),this._cipher=new r.AES(t),this._prev=s.from(n),this._cache=s.allocUnsafe(0),this._secCache=s.allocUnsafe(0),this._decrypt=i,this._mode=e}n(87)(i,a),i.prototype._update=function(e){return this._mode.encrypt(this,e,this._decrypt)},i.prototype._final=function(){this._cipher.scrub()},e.exports=i},1240:(e,t,n)=>{n(5681),n(8901),n(3834),n(1035),n(5883)},5681:(e,t,n)=>{var r=n(3081),s=n(7191),a=n(87),i=n(7172).Buffer,o={"des-ede3-cbc":s.CBC.instantiate(s.EDE),"des-ede3":s.EDE,"des-ede-cbc":s.CBC.instantiate(s.EDE),"des-ede":s.EDE,"des-cbc":s.CBC.instantiate(s.DES),"des-ecb":s.DES};function l(e){r.call(this);var t,n=e.mode.toLowerCase(),s=o[n];t=e.decrypt?"decrypt":"encrypt";var a=e.key;i.isBuffer(a)||(a=i.from(a)),"des-ede"!==n&&"des-ede-cbc"!==n||(a=i.concat([a,a.slice(0,8)]));var l=e.iv;i.isBuffer(l)||(l=i.from(l)),this._des=s.create({key:a,iv:l,type:t})}o.des=o["des-cbc"],o.des3=o["des-ede3-cbc"],e.exports=l,a(l,r),l.prototype._update=function(e){return i.from(this._des.update(e))},l.prototype._final=function(){return i.from(this._des.final())}},1035:(e,t)=>{t["des-ecb"]={key:8,iv:0},t["des-cbc"]=t.des={key:8,iv:8},t["des-ede3-cbc"]=t.des3={key:24,iv:8},t["des-ede3"]={key:24,iv:0},t["des-ede-cbc"]={key:16,iv:8},t["des-ede"]={key:16,iv:0}},7752:(e,t,n)=>{var r=n(816).Buffer;e.exports=function(e,t){for(var n=Math.min(e.length,t.length),s=new r(n),a=0;a<n;++a)s[a]=e[a]^t[a];return s}},816:(e,t,n)=>{const r=n(4782),s=n(8898),a="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;t.Buffer=l,t.SlowBuffer=function(e){return+e!=e&&(e=0),l.alloc(+e)},t.INSPECT_MAX_BYTES=50;const i=2147483647;function o(e){if(e>i)throw new RangeError('The value "'+e+'" is invalid for option "size"');const t=new Uint8Array(e);return Object.setPrototypeOf(t,l.prototype),t}function l(e,t,n){if("number"==typeof e){if("string"==typeof t)throw new TypeError('The "string" argument must be of type string. Received type number');return f(e)}return c(e,t,n)}function c(e,t,n){if("string"==typeof e)return function(e,t){if("string"==typeof t&&""!==t||(t="utf8"),!l.isEncoding(t))throw new TypeError("Unknown encoding: "+t);const n=0|p(e,t);let r=o(n);const s=r.write(e,t);return s!==n&&(r=r.slice(0,s)),r}(e,t);if(ArrayBuffer.isView(e))return function(e){if(J(e,Uint8Array)){const t=new Uint8Array(e);return _(t.buffer,t.byteOffset,t.byteLength)}return d(e)}(e);if(null==e)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(J(e,ArrayBuffer)||e&&J(e.buffer,ArrayBuffer))return _(e,t,n);if("undefined"!=typeof SharedArrayBuffer&&(J(e,SharedArrayBuffer)||e&&J(e.buffer,SharedArrayBuffer)))return _(e,t,n);if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type number');const r=e.valueOf&&e.valueOf();if(null!=r&&r!==e)return l.from(r,t,n);const s=function(e){if(l.isBuffer(e)){const t=0|h(e.length),n=o(t);return 0===n.length||e.copy(n,0,0,t),n}return void 0!==e.length?"number"!=typeof e.length||V(e.length)?o(0):d(e):"Buffer"===e.type&&Array.isArray(e.data)?d(e.data):void 0}(e);if(s)return s;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof e[Symbol.toPrimitive])return l.from(e[Symbol.toPrimitive]("string"),t,n);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}function u(e){if("number"!=typeof e)throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function f(e){return u(e),o(e<0?0:0|h(e))}function d(e){const t=e.length<0?0:0|h(e.length),n=o(t);for(let r=0;r<t;r+=1)n[r]=255&e[r];return n}function _(e,t,n){if(t<0||e.byteLength<t)throw new RangeError('"offset" is outside of buffer bounds');if(e.byteLength<t+(n||0))throw new RangeError('"length" is outside of buffer bounds');let r;return r=void 0===t&&void 0===n?new Uint8Array(e):void 0===n?new Uint8Array(e,t):new Uint8Array(e,t,n),Object.setPrototypeOf(r,l.prototype),r}function h(e){if(e>=i)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i.toString(16)+" bytes");return 0|e}function p(e,t){if(l.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||J(e,ArrayBuffer))return e.byteLength;if("string"!=typeof e)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);const n=e.length,r=arguments.length>2&&!0===arguments[2];if(!r&&0===n)return 0;let s=!1;for(;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":return Q(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return X(e).length;default:if(s)return r?-1:Q(e).length;t=(""+t).toLowerCase(),s=!0}}function g(e,t,n){let r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return I(this,t,n);case"utf8":case"utf-8":return C(this,t,n);case"ascii":return P(this,t,n);case"latin1":case"binary":return N(this,t,n);case"base64":return S(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return k(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function b(e,t,n){const r=e[t];e[t]=e[n],e[n]=r}function m(e,t,n,r,s){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),V(n=+n)&&(n=s?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(s)return-1;n=e.length-1}else if(n<0){if(!s)return-1;n=0}if("string"==typeof t&&(t=l.from(t,r)),l.isBuffer(t))return 0===t.length?-1:y(e,t,n,r,s);if("number"==typeof t)return t&=255,"function"==typeof Uint8Array.prototype.indexOf?s?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):y(e,[t],n,r,s);throw new TypeError("val must be string, number or Buffer")}function y(e,t,n,r,s){let a,i=1,o=e.length,l=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;i=2,o/=2,l/=2,n/=2}function c(e,t){return 1===i?e[t]:e.readUInt16BE(t*i)}if(s){let r=-1;for(a=n;a<o;a++)if(c(e,a)===c(t,-1===r?0:a-r)){if(-1===r&&(r=a),a-r+1===l)return r*i}else-1!==r&&(a-=a-r),r=-1}else for(n+l>o&&(n=o-l),a=n;a>=0;a--){let n=!0;for(let r=0;r<l;r++)if(c(e,a+r)!==c(t,r)){n=!1;break}if(n)return a}return-1}function v(e,t,n,r){n=Number(n)||0;const s=e.length-n;r?(r=Number(r))>s&&(r=s):r=s;const a=t.length;let i;for(r>a/2&&(r=a/2),i=0;i<r;++i){const r=parseInt(t.substr(2*i,2),16);if(V(r))return i;e[n+i]=r}return i}function w(e,t,n,r){return Y(Q(t,e.length-n),e,n,r)}function E(e,t,n,r){return Y(function(e){const t=[];for(let n=0;n<e.length;++n)t.push(255&e.charCodeAt(n));return t}(t),e,n,r)}function L(e,t,n,r){return Y(X(t),e,n,r)}function A(e,t,n,r){return Y(function(e,t){let n,r,s;const a=[];for(let i=0;i<e.length&&!((t-=2)<0);++i)n=e.charCodeAt(i),r=n>>8,s=n%256,a.push(s),a.push(r);return a}(t,e.length-n),e,n,r)}function S(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function C(e,t,n){n=Math.min(e.length,n);const r=[];let s=t;for(;s<n;){const t=e[s];let a=null,i=t>239?4:t>223?3:t>191?2:1;if(s+i<=n){let n,r,o,l;switch(i){case 1:t<128&&(a=t);break;case 2:n=e[s+1],128==(192&n)&&(l=(31&t)<<6|63&n,l>127&&(a=l));break;case 3:n=e[s+1],r=e[s+2],128==(192&n)&&128==(192&r)&&(l=(15&t)<<12|(63&n)<<6|63&r,l>2047&&(l<55296||l>57343)&&(a=l));break;case 4:n=e[s+1],r=e[s+2],o=e[s+3],128==(192&n)&&128==(192&r)&&128==(192&o)&&(l=(15&t)<<18|(63&n)<<12|(63&r)<<6|63&o,l>65535&&l<1114112&&(a=l))}}null===a?(a=65533,i=1):a>65535&&(a-=65536,r.push(a>>>10&1023|55296),a=56320|1023&a),r.push(a),s+=i}return function(e){const t=e.length;if(t<=T)return String.fromCharCode.apply(String,e);let n="",r=0;for(;r<t;)n+=String.fromCharCode.apply(String,e.slice(r,r+=T));return n}(r)}t.kMaxLength=i,l.TYPED_ARRAY_SUPPORT=function(){try{const e=new Uint8Array(1),t={foo:function(){return 42}};return Object.setPrototypeOf(t,Uint8Array.prototype),Object.setPrototypeOf(e,t),42===e.foo()}catch(e){return!1}}(),l.TYPED_ARRAY_SUPPORT||"undefined"==typeof console||"function"!=typeof console.error||console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."),Object.defineProperty(l.prototype,"parent",{enumerable:!0,get:function(){if(l.isBuffer(this))return this.buffer}}),Object.defineProperty(l.prototype,"offset",{enumerable:!0,get:function(){if(l.isBuffer(this))return this.byteOffset}}),l.poolSize=8192,l.from=function(e,t,n){return c(e,t,n)},Object.setPrototypeOf(l.prototype,Uint8Array.prototype),Object.setPrototypeOf(l,Uint8Array),l.alloc=function(e,t,n){return function(e,t,n){return u(e),e<=0?o(e):void 0!==t?"string"==typeof n?o(e).fill(t,n):o(e).fill(t):o(e)}(e,t,n)},l.allocUnsafe=function(e){return f(e)},l.allocUnsafeSlow=function(e){return f(e)},l.isBuffer=function(e){return null!=e&&!0===e._isBuffer&&e!==l.prototype},l.compare=function(e,t){if(J(e,Uint8Array)&&(e=l.from(e,e.offset,e.byteLength)),J(t,Uint8Array)&&(t=l.from(t,t.offset,t.byteLength)),!l.isBuffer(e)||!l.isBuffer(t))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(e===t)return 0;let n=e.length,r=t.length;for(let s=0,a=Math.min(n,r);s<a;++s)if(e[s]!==t[s]){n=e[s],r=t[s];break}return n<r?-1:r<n?1:0},l.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},l.concat=function(e,t){if(!Array.isArray(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return l.alloc(0);let n;if(void 0===t)for(t=0,n=0;n<e.length;++n)t+=e[n].length;const r=l.allocUnsafe(t);let s=0;for(n=0;n<e.length;++n){let t=e[n];if(J(t,Uint8Array))s+t.length>r.length?(l.isBuffer(t)||(t=l.from(t)),t.copy(r,s)):Uint8Array.prototype.set.call(r,t,s);else{if(!l.isBuffer(t))throw new TypeError('"list" argument must be an Array of Buffers');t.copy(r,s)}s+=t.length}return r},l.byteLength=p,l.prototype._isBuffer=!0,l.prototype.swap16=function(){const e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let t=0;t<e;t+=2)b(this,t,t+1);return this},l.prototype.swap32=function(){const e=this.length;if(e%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let t=0;t<e;t+=4)b(this,t,t+3),b(this,t+1,t+2);return this},l.prototype.swap64=function(){const e=this.length;if(e%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let t=0;t<e;t+=8)b(this,t,t+7),b(this,t+1,t+6),b(this,t+2,t+5),b(this,t+3,t+4);return this},l.prototype.toString=function(){const e=this.length;return 0===e?"":0===arguments.length?C(this,0,e):g.apply(this,arguments)},l.prototype.toLocaleString=l.prototype.toString,l.prototype.equals=function(e){if(!l.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===l.compare(this,e)},l.prototype.inspect=function(){let e="";const n=t.INSPECT_MAX_BYTES;return e=this.toString("hex",0,n).replace(/(.{2})/g,"$1 ").trim(),this.length>n&&(e+=" ... "),"<Buffer "+e+">"},a&&(l.prototype[a]=l.prototype.inspect),l.prototype.compare=function(e,t,n,r,s){if(J(e,Uint8Array)&&(e=l.from(e,e.offset,e.byteLength)),!l.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===s&&(s=this.length),t<0||n>e.length||r<0||s>this.length)throw new RangeError("out of range index");if(r>=s&&t>=n)return 0;if(r>=s)return-1;if(t>=n)return 1;if(this===e)return 0;let a=(s>>>=0)-(r>>>=0),i=(n>>>=0)-(t>>>=0);const o=Math.min(a,i),c=this.slice(r,s),u=e.slice(t,n);for(let e=0;e<o;++e)if(c[e]!==u[e]){a=c[e],i=u[e];break}return a<i?-1:i<a?1:0},l.prototype.includes=function(e,t,n){return-1!==this.indexOf(e,t,n)},l.prototype.indexOf=function(e,t,n){return m(this,e,t,n,!0)},l.prototype.lastIndexOf=function(e,t,n){return m(this,e,t,n,!1)},l.prototype.write=function(e,t,n,r){if(void 0===t)r="utf8",n=this.length,t=0;else if(void 0===n&&"string"==typeof t)r=t,n=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t>>>=0,isFinite(n)?(n>>>=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}const s=this.length-t;if((void 0===n||n>s)&&(n=s),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");let a=!1;for(;;)switch(r){case"hex":return v(this,e,t,n);case"utf8":case"utf-8":return w(this,e,t,n);case"ascii":case"latin1":case"binary":return E(this,e,t,n);case"base64":return L(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return A(this,e,t,n);default:if(a)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),a=!0}},l.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};const T=4096;function P(e,t,n){let r="";n=Math.min(e.length,n);for(let s=t;s<n;++s)r+=String.fromCharCode(127&e[s]);return r}function N(e,t,n){let r="";n=Math.min(e.length,n);for(let s=t;s<n;++s)r+=String.fromCharCode(e[s]);return r}function I(e,t,n){const r=e.length;(!t||t<0)&&(t=0),(!n||n<0||n>r)&&(n=r);let s="";for(let r=t;r<n;++r)s+=q[e[r]];return s}function k(e,t,n){const r=e.slice(t,n);let s="";for(let e=0;e<r.length-1;e+=2)s+=String.fromCharCode(r[e]+256*r[e+1]);return s}function x(e,t,n){if(e%1!=0||e<0)throw new RangeError("offset is not uint");if(e+t>n)throw new RangeError("Trying to access beyond buffer length")}function R(e,t,n,r,s,a){if(!l.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>s||t<a)throw new RangeError('"value" argument is out of bounds');if(n+r>e.length)throw new RangeError("Index out of range")}function B(e,t,n,r,s){j(t,r,s,e,n,7);let a=Number(t&BigInt(4294967295));e[n++]=a,a>>=8,e[n++]=a,a>>=8,e[n++]=a,a>>=8,e[n++]=a;let i=Number(t>>BigInt(32)&BigInt(4294967295));return e[n++]=i,i>>=8,e[n++]=i,i>>=8,e[n++]=i,i>>=8,e[n++]=i,n}function O(e,t,n,r,s){j(t,r,s,e,n,7);let a=Number(t&BigInt(4294967295));e[n+7]=a,a>>=8,e[n+6]=a,a>>=8,e[n+5]=a,a>>=8,e[n+4]=a;let i=Number(t>>BigInt(32)&BigInt(4294967295));return e[n+3]=i,i>>=8,e[n+2]=i,i>>=8,e[n+1]=i,i>>=8,e[n]=i,n+8}function D(e,t,n,r,s,a){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function F(e,t,n,r,a){return t=+t,n>>>=0,a||D(e,0,n,4),s.write(e,t,n,r,23,4),n+4}function H(e,t,n,r,a){return t=+t,n>>>=0,a||D(e,0,n,8),s.write(e,t,n,r,52,8),n+8}l.prototype.slice=function(e,t){const n=this.length;(e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t<e&&(t=e);const r=this.subarray(e,t);return Object.setPrototypeOf(r,l.prototype),r},l.prototype.readUintLE=l.prototype.readUIntLE=function(e,t,n){e>>>=0,t>>>=0,n||x(e,t,this.length);let r=this[e],s=1,a=0;for(;++a<t&&(s*=256);)r+=this[e+a]*s;return r},l.prototype.readUintBE=l.prototype.readUIntBE=function(e,t,n){e>>>=0,t>>>=0,n||x(e,t,this.length);let r=this[e+--t],s=1;for(;t>0&&(s*=256);)r+=this[e+--t]*s;return r},l.prototype.readUint8=l.prototype.readUInt8=function(e,t){return e>>>=0,t||x(e,1,this.length),this[e]},l.prototype.readUint16LE=l.prototype.readUInt16LE=function(e,t){return e>>>=0,t||x(e,2,this.length),this[e]|this[e+1]<<8},l.prototype.readUint16BE=l.prototype.readUInt16BE=function(e,t){return e>>>=0,t||x(e,2,this.length),this[e]<<8|this[e+1]},l.prototype.readUint32LE=l.prototype.readUInt32LE=function(e,t){return e>>>=0,t||x(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},l.prototype.readUint32BE=l.prototype.readUInt32BE=function(e,t){return e>>>=0,t||x(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},l.prototype.readBigUInt64LE=K((function(e){Z(e>>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||W(e,this.length-8);const r=t+256*this[++e]+65536*this[++e]+this[++e]*2**24,s=this[++e]+256*this[++e]+65536*this[++e]+n*2**24;return BigInt(r)+(BigInt(s)<<BigInt(32))})),l.prototype.readBigUInt64BE=K((function(e){Z(e>>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||W(e,this.length-8);const r=t*2**24+65536*this[++e]+256*this[++e]+this[++e],s=this[++e]*2**24+65536*this[++e]+256*this[++e]+n;return(BigInt(r)<<BigInt(32))+BigInt(s)})),l.prototype.readIntLE=function(e,t,n){e>>>=0,t>>>=0,n||x(e,t,this.length);let r=this[e],s=1,a=0;for(;++a<t&&(s*=256);)r+=this[e+a]*s;return s*=128,r>=s&&(r-=Math.pow(2,8*t)),r},l.prototype.readIntBE=function(e,t,n){e>>>=0,t>>>=0,n||x(e,t,this.length);let r=t,s=1,a=this[e+--r];for(;r>0&&(s*=256);)a+=this[e+--r]*s;return s*=128,a>=s&&(a-=Math.pow(2,8*t)),a},l.prototype.readInt8=function(e,t){return e>>>=0,t||x(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},l.prototype.readInt16LE=function(e,t){e>>>=0,t||x(e,2,this.length);const n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},l.prototype.readInt16BE=function(e,t){e>>>=0,t||x(e,2,this.length);const n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},l.prototype.readInt32LE=function(e,t){return e>>>=0,t||x(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},l.prototype.readInt32BE=function(e,t){return e>>>=0,t||x(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},l.prototype.readBigInt64LE=K((function(e){Z(e>>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||W(e,this.length-8);const r=this[e+4]+256*this[e+5]+65536*this[e+6]+(n<<24);return(BigInt(r)<<BigInt(32))+BigInt(t+256*this[++e]+65536*this[++e]+this[++e]*2**24)})),l.prototype.readBigInt64BE=K((function(e){Z(e>>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||W(e,this.length-8);const r=(t<<24)+65536*this[++e]+256*this[++e]+this[++e];return(BigInt(r)<<BigInt(32))+BigInt(this[++e]*2**24+65536*this[++e]+256*this[++e]+n)})),l.prototype.readFloatLE=function(e,t){return e>>>=0,t||x(e,4,this.length),s.read(this,e,!0,23,4)},l.prototype.readFloatBE=function(e,t){return e>>>=0,t||x(e,4,this.length),s.read(this,e,!1,23,4)},l.prototype.readDoubleLE=function(e,t){return e>>>=0,t||x(e,8,this.length),s.read(this,e,!0,52,8)},l.prototype.readDoubleBE=function(e,t){return e>>>=0,t||x(e,8,this.length),s.read(this,e,!1,52,8)},l.prototype.writeUintLE=l.prototype.writeUIntLE=function(e,t,n,r){e=+e,t>>>=0,n>>>=0,r||R(this,e,t,n,Math.pow(2,8*n)-1,0);let s=1,a=0;for(this[t]=255&e;++a<n&&(s*=256);)this[t+a]=e/s&255;return t+n},l.prototype.writeUintBE=l.prototype.writeUIntBE=function(e,t,n,r){e=+e,t>>>=0,n>>>=0,r||R(this,e,t,n,Math.pow(2,8*n)-1,0);let s=n-1,a=1;for(this[t+s]=255&e;--s>=0&&(a*=256);)this[t+s]=e/a&255;return t+n},l.prototype.writeUint8=l.prototype.writeUInt8=function(e,t,n){return e=+e,t>>>=0,n||R(this,e,t,1,255,0),this[t]=255&e,t+1},l.prototype.writeUint16LE=l.prototype.writeUInt16LE=function(e,t,n){return e=+e,t>>>=0,n||R(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},l.prototype.writeUint16BE=l.prototype.writeUInt16BE=function(e,t,n){return e=+e,t>>>=0,n||R(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},l.prototype.writeUint32LE=l.prototype.writeUInt32LE=function(e,t,n){return e=+e,t>>>=0,n||R(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},l.prototype.writeUint32BE=l.prototype.writeUInt32BE=function(e,t,n){return e=+e,t>>>=0,n||R(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},l.prototype.writeBigUInt64LE=K((function(e,t=0){return B(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),l.prototype.writeBigUInt64BE=K((function(e,t=0){return O(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),l.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t>>>=0,!r){const r=Math.pow(2,8*n-1);R(this,e,t,n,r-1,-r)}let s=0,a=1,i=0;for(this[t]=255&e;++s<n&&(a*=256);)e<0&&0===i&&0!==this[t+s-1]&&(i=1),this[t+s]=(e/a>>0)-i&255;return t+n},l.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t>>>=0,!r){const r=Math.pow(2,8*n-1);R(this,e,t,n,r-1,-r)}let s=n-1,a=1,i=0;for(this[t+s]=255&e;--s>=0&&(a*=256);)e<0&&0===i&&0!==this[t+s+1]&&(i=1),this[t+s]=(e/a>>0)-i&255;return t+n},l.prototype.writeInt8=function(e,t,n){return e=+e,t>>>=0,n||R(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},l.prototype.writeInt16LE=function(e,t,n){return e=+e,t>>>=0,n||R(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},l.prototype.writeInt16BE=function(e,t,n){return e=+e,t>>>=0,n||R(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},l.prototype.writeInt32LE=function(e,t,n){return e=+e,t>>>=0,n||R(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},l.prototype.writeInt32BE=function(e,t,n){return e=+e,t>>>=0,n||R(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},l.prototype.writeBigInt64LE=K((function(e,t=0){return B(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),l.prototype.writeBigInt64BE=K((function(e,t=0){return O(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),l.prototype.writeFloatLE=function(e,t,n){return F(this,e,t,!0,n)},l.prototype.writeFloatBE=function(e,t,n){return F(this,e,t,!1,n)},l.prototype.writeDoubleLE=function(e,t,n){return H(this,e,t,!0,n)},l.prototype.writeDoubleBE=function(e,t,n){return H(this,e,t,!1,n)},l.prototype.copy=function(e,t,n,r){if(!l.isBuffer(e))throw new TypeError("argument should be a Buffer");if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r<n&&(r=n),r===n)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(n<0||n>=this.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t<r-n&&(r=e.length-t+n);const s=r-n;return this===e&&"function"==typeof Uint8Array.prototype.copyWithin?this.copyWithin(t,n,r):Uint8Array.prototype.set.call(e,this.subarray(n,r),t),s},l.prototype.fill=function(e,t,n,r){if("string"==typeof e){if("string"==typeof t?(r=t,t=0,n=this.length):"string"==typeof n&&(r=n,n=this.length),void 0!==r&&"string"!=typeof r)throw new TypeError("encoding must be a string");if("string"==typeof r&&!l.isEncoding(r))throw new TypeError("Unknown encoding: "+r);if(1===e.length){const t=e.charCodeAt(0);("utf8"===r&&t<128||"latin1"===r)&&(e=t)}}else"number"==typeof e?e&=255:"boolean"==typeof e&&(e=Number(e));if(t<0||this.length<t||this.length<n)throw new RangeError("Out of range index");if(n<=t)return this;let s;if(t>>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(s=t;s<n;++s)this[s]=e;else{const a=l.isBuffer(e)?e:l.from(e,r),i=a.length;if(0===i)throw new TypeError('The value "'+e+'" is invalid for argument "value"');for(s=0;s<n-t;++s)this[s+t]=a[s%i]}return this};const M={};function z(e,t,n){M[e]=class extends n{constructor(){super(),Object.defineProperty(this,"message",{value:t.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${e}]`,this.stack,delete this.name}get code(){return e}set code(e){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:e,writable:!0})}toString(){return`${this.name} [${e}]: ${this.message}`}}}function U(e){let t="",n=e.length;const r="-"===e[0]?1:0;for(;n>=r+4;n-=3)t=`_${e.slice(n-3,n)}${t}`;return`${e.slice(0,n)}${t}`}function j(e,t,n,r,s,a){if(e>n||e<t){const r="bigint"==typeof t?"n":"";let s;throw s=a>3?0===t||t===BigInt(0)?`>= 0${r} and < 2${r} ** ${8*(a+1)}${r}`:`>= -(2${r} ** ${8*(a+1)-1}${r}) and < 2 ** ${8*(a+1)-1}${r}`:`>= ${t}${r} and <= ${n}${r}`,new M.ERR_OUT_OF_RANGE("value",s,e)}!function(e,t,n){Z(t,"offset"),void 0!==e[t]&&void 0!==e[t+n]||W(t,e.length-(n+1))}(r,s,a)}function Z(e,t){if("number"!=typeof e)throw new M.ERR_INVALID_ARG_TYPE(t,"number",e)}function W(e,t,n){if(Math.floor(e)!==e)throw Z(e,n),new M.ERR_OUT_OF_RANGE(n||"offset","an integer",e);if(t<0)throw new M.ERR_BUFFER_OUT_OF_BOUNDS;throw new M.ERR_OUT_OF_RANGE(n||"offset",`>= ${n?1:0} and <= ${t}`,e)}z("ERR_BUFFER_OUT_OF_BOUNDS",(function(e){return e?`${e} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"}),RangeError),z("ERR_INVALID_ARG_TYPE",(function(e,t){return`The "${e}" argument must be of type number. Received type ${typeof t}`}),TypeError),z("ERR_OUT_OF_RANGE",(function(e,t,n){let r=`The value of "${e}" is out of range.`,s=n;return Number.isInteger(n)&&Math.abs(n)>2**32?s=U(String(n)):"bigint"==typeof n&&(s=String(n),(n>BigInt(2)**BigInt(32)||n<-(BigInt(2)**BigInt(32)))&&(s=U(s)),s+="n"),r+=` It must be ${t}. Received ${s}`,r}),RangeError);const G=/[^+/0-9A-Za-z-_]/g;function Q(e,t){let n;t=t||1/0;const r=e.length;let s=null;const a=[];for(let i=0;i<r;++i){if(n=e.charCodeAt(i),n>55295&&n<57344){if(!s){if(n>56319){(t-=3)>-1&&a.push(239,191,189);continue}if(i+1===r){(t-=3)>-1&&a.push(239,191,189);continue}s=n;continue}if(n<56320){(t-=3)>-1&&a.push(239,191,189),s=n;continue}n=65536+(s-55296<<10|n-56320)}else s&&(t-=3)>-1&&a.push(239,191,189);if(s=null,n<128){if((t-=1)<0)break;a.push(n)}else if(n<2048){if((t-=2)<0)break;a.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;a.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;a.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return a}function X(e){return r.toByteArray(function(e){if((e=(e=e.split("=")[0]).trim().replace(G,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function Y(e,t,n,r){let s;for(s=0;s<r&&!(s+n>=t.length||s>=e.length);++s)t[s+n]=e[s];return s}function J(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}function V(e){return e!=e}const q=function(){const e="0123456789abcdef",t=new Array(256);for(let n=0;n<16;++n){const r=16*n;for(let s=0;s<16;++s)t[r+s]=e[n]+e[s]}return t}();function K(e){return"undefined"==typeof BigInt?$:e}function $(){throw new Error("BigInt not supported")}},3081:(e,t,n)=>{var r=n(7172).Buffer,s=n(3424).Transform,a=n(4361).s;function i(e){s.call(this),this.hashMode="string"==typeof e,this.hashMode?this[e]=this._finalOrDigest:this.final=this._finalOrDigest,this._final&&(this.__final=this._final,this._final=null),this._decoder=null,this._encoding=null}n(87)(i,s),i.prototype.update=function(e,t,n){"string"==typeof e&&(e=r.from(e,t));var s=this._update(e);return this.hashMode?this:(n&&(s=this._toString(s,n)),s)},i.prototype.setAutoPadding=function(){},i.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")},i.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")},i.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")},i.prototype._transform=function(e,t,n){var r;try{this.hashMode?this._update(e):this.push(this._update(e))}catch(e){r=e}finally{n(r)}},i.prototype._flush=function(e){var t;try{this.push(this.__final())}catch(e){t=e}e(t)},i.prototype._finalOrDigest=function(e){var t=this.__final()||r.alloc(0);return e&&(t=this._toString(t,e,!0)),t},i.prototype._toString=function(e,t,n){if(this._decoder||(this._decoder=new a(t),this._encoding=t),this._encoding!==t)throw new Error("can't switch encodings");var r=this._decoder.write(e);return n&&(r+=this._decoder.end()),r},e.exports=i},5862:e=>{var t=1e3,n=60*t,r=60*n,s=24*r;function a(e,t,n,r){var s=t>=1.5*n;return Math.round(e/n)+" "+r+(s?"s":"")}e.exports=function(e,i){i=i||{};var o,l,c=typeof e;if("string"===c&&e.length>0)return function(e){if(!((e=String(e)).length>100)){var a=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(a){var i=parseFloat(a[1]);switch((a[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return 315576e5*i;case"weeks":case"week":case"w":return 6048e5*i;case"days":case"day":case"d":return i*s;case"hours":case"hour":case"hrs":case"hr":case"h":return i*r;case"minutes":case"minute":case"mins":case"min":case"m":return i*n;case"seconds":case"second":case"secs":case"sec":case"s":return i*t;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return i;default:return}}}}(e);if("number"===c&&isFinite(e))return i.long?(o=e,(l=Math.abs(o))>=s?a(o,l,s,"day"):l>=r?a(o,l,r,"hour"):l>=n?a(o,l,n,"minute"):l>=t?a(o,l,t,"second"):o+" ms"):function(e){var a=Math.abs(e);return a>=s?Math.round(e/s)+"d":a>=r?Math.round(e/r)+"h":a>=n?Math.round(e/n)+"m":a>=t?Math.round(e/t)+"s":e+"ms"}(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))}},6292:(e,t,n)=>{t.formatArgs=function(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+e.exports.humanize(this.diff),!this.useColors)return;const n="color: "+this.color;t.splice(1,0,n,"color: inherit");let r=0,s=0;t[0].replace(/%[a-zA-Z%]/g,(e=>{"%%"!==e&&(r++,"%c"===e&&(s=r))})),t.splice(s,0,n)},t.save=function(e){try{e?t.storage.setItem("debug",e):t.storage.removeItem("debug")}catch(e){}},t.load=function(){let e;try{e=t.storage.getItem("debug")}catch(e){}return!e&&"undefined"!=typeof process&&"env"in process&&(e={NODE_ENV:"production"}.DEBUG),e},t.useColors=function(){return!("undefined"==typeof window||!window.process||"renderer"!==window.process.type&&!window.process.__nwjs)||("undefined"==typeof navigator||!navigator.userAgent||!navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))&&("undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/))},t.storage=function(){try{return localStorage}catch(e){}}(),t.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),t.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],t.log=console.debug||console.log||(()=>{}),e.exports=n(9374)(t);const{formatters:r}=e.exports;r.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}},9374:(e,t,n)=>{e.exports=function(e){function t(e){let n,s,a,i=null;function o(...e){if(!o.enabled)return;const r=o,s=Number(new Date),a=s-(n||s);r.diff=a,r.prev=n,r.curr=s,n=s,e[0]=t.coerce(e[0]),"string"!=typeof e[0]&&e.unshift("%O");let i=0;e[0]=e[0].replace(/%([a-zA-Z%])/g,((n,s)=>{if("%%"===n)return"%";i++;const a=t.formatters[s];if("function"==typeof a){const t=e[i];n=a.call(r,t),e.splice(i,1),i--}return n})),t.formatArgs.call(r,e),(r.log||t.log).apply(r,e)}return o.namespace=e,o.useColors=t.useColors(),o.color=t.selectColor(e),o.extend=r,o.destroy=t.destroy,Object.defineProperty(o,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==i?i:(s!==t.namespaces&&(s=t.namespaces,a=t.enabled(e)),a),set:e=>{i=e}}),"function"==typeof t.init&&t.init(o),o}function r(e,n){const r=t(this.namespace+(void 0===n?":":n)+e);return r.log=this.log,r}function s(e){return e.toString().substring(2,e.toString().length-2).replace(/\.\*\?$/,"*")}return t.debug=t,t.default=t,t.coerce=function(e){return e instanceof Error?e.stack||e.message:e},t.disable=function(){const e=[...t.names.map(s),...t.skips.map(s).map((e=>"-"+e))].join(",");return t.enable(""),e},t.enable=function(e){let n;t.save(e),t.namespaces=e,t.names=[],t.skips=[];const r=("string"==typeof e?e:"").split(/[\s,]+/),s=r.length;for(n=0;n<s;n++)r[n]&&("-"===(e=r[n].replace(/\*/g,".*?"))[0]?t.skips.push(new RegExp("^"+e.slice(1)+"$")):t.names.push(new RegExp("^"+e+"$")))},t.enabled=function(e){if("*"===e[e.length-1])return!0;let n,r;for(n=0,r=t.skips.length;n<r;n++)if(t.skips[n].test(e))return!1;for(n=0,r=t.names.length;n<r;n++)if(t.names[n].test(e))return!0;return!1},t.humanize=n(5862),t.destroy=function(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")},Object.keys(e).forEach((n=>{t[n]=e[n]})),t.names=[],t.skips=[],t.formatters={},t.selectColor=function(e){let n=0;for(let t=0;t<e.length;t++)n=(n<<5)-n+e.charCodeAt(t),n|=0;return t.colors[Math.abs(n)%t.colors.length]},t.enable(t.load()),t}},7191:(e,t,n)=>{t.utils=n(5516),t.Cipher=n(4923),t.DES=n(225),t.CBC=n(8701),t.EDE=n(6540)},8701:(e,t,n)=>{var r=n(7859),s=n(87),a={};function i(e){r.equal(e.length,8,"Invalid IV length"),this.iv=new Array(8);for(var t=0;t<this.iv.length;t++)this.iv[t]=e[t]}t.instantiate=function(e){function t(t){e.call(this,t),this._cbcInit()}s(t,e);for(var n=Object.keys(a),r=0;r<n.length;r++){var i=n[r];t.prototype[i]=a[i]}return t.create=function(e){return new t(e)},t},a._cbcInit=function(){var e=new i(this.options.iv);this._cbcState=e},a._update=function(e,t,n,r){var s=this._cbcState,a=this.constructor.super_.prototype,i=s.iv;if("encrypt"===this.type){for(var o=0;o<this.blockSize;o++)i[o]^=e[t+o];for(a._update.call(this,i,0,n,r),o=0;o<this.blockSize;o++)i[o]=n[r+o]}else{for(a._update.call(this,e,t,n,r),o=0;o<this.blockSize;o++)n[r+o]^=i[o];for(o=0;o<this.blockSize;o++)i[o]=e[t+o]}}},4923:(e,t,n)=>{var r=n(7859);function s(e){this.options=e,this.type=this.options.type,this.blockSize=8,this._init(),this.buffer=new Array(this.blockSize),this.bufferOff=0,this.padding=!1!==e.padding}e.exports=s,s.prototype._init=function(){},s.prototype.update=function(e){return 0===e.length?[]:"decrypt"===this.type?this._updateDecrypt(e):this._updateEncrypt(e)},s.prototype._buffer=function(e,t){for(var n=Math.min(this.buffer.length-this.bufferOff,e.length-t),r=0;r<n;r++)this.buffer[this.bufferOff+r]=e[t+r];return this.bufferOff+=n,n},s.prototype._flushBuffer=function(e,t){return this._update(this.buffer,0,e,t),this.bufferOff=0,this.blockSize},s.prototype._updateEncrypt=function(e){var t=0,n=0,r=(this.bufferOff+e.length)/this.blockSize|0,s=new Array(r*this.blockSize);0!==this.bufferOff&&(t+=this._buffer(e,t),this.bufferOff===this.buffer.length&&(n+=this._flushBuffer(s,n)));for(var a=e.length-(e.length-t)%this.blockSize;t<a;t+=this.blockSize)this._update(e,t,s,n),n+=this.blockSize;for(;t<e.length;t++,this.bufferOff++)this.buffer[this.bufferOff]=e[t];return s},s.prototype._updateDecrypt=function(e){for(var t=0,n=0,r=Math.ceil((this.bufferOff+e.length)/this.blockSize)-1,s=new Array(r*this.blockSize);r>0;r--)t+=this._buffer(e,t),n+=this._flushBuffer(s,n);return t+=this._buffer(e,t),s},s.prototype.final=function(e){var t,n;return e&&(t=this.update(e)),n="encrypt"===this.type?this._finalEncrypt():this._finalDecrypt(),t?t.concat(n):n},s.prototype._pad=function(e,t){if(0===t)return!1;for(;t<e.length;)e[t++]=0;return!0},s.prototype._finalEncrypt=function(){if(!this._pad(this.buffer,this.bufferOff))return[];var e=new Array(this.blockSize);return this._update(this.buffer,0,e,0),e},s.prototype._unpad=function(e){return e},s.prototype._finalDecrypt=function(){r.equal(this.bufferOff,this.blockSize,"Not enough data to decrypt");var e=new Array(this.blockSize);return this._flushBuffer(e,0),this._unpad(e)}},225:(e,t,n)=>{var r=n(7859),s=n(87),a=n(5516),i=n(4923);function o(){this.tmp=new Array(2),this.keys=null}function l(e){i.call(this,e);var t=new o;this._desState=t,this.deriveKeys(t,e.key)}s(l,i),e.exports=l,l.create=function(e){return new l(e)};var c=[1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1];l.prototype.deriveKeys=function(e,t){e.keys=new Array(32),r.equal(t.length,this.blockSize,"Invalid key length");var n=a.readUInt32BE(t,0),s=a.readUInt32BE(t,4);a.pc1(n,s,e.tmp,0),n=e.tmp[0],s=e.tmp[1];for(var i=0;i<e.keys.length;i+=2){var o=c[i>>>1];n=a.r28shl(n,o),s=a.r28shl(s,o),a.pc2(n,s,e.keys,i)}},l.prototype._update=function(e,t,n,r){var s=this._desState,i=a.readUInt32BE(e,t),o=a.readUInt32BE(e,t+4);a.ip(i,o,s.tmp,0),i=s.tmp[0],o=s.tmp[1],"encrypt"===this.type?this._encrypt(s,i,o,s.tmp,0):this._decrypt(s,i,o,s.tmp,0),i=s.tmp[0],o=s.tmp[1],a.writeUInt32BE(n,i,r),a.writeUInt32BE(n,o,r+4)},l.prototype._pad=function(e,t){if(!1===this.padding)return!1;for(var n=e.length-t,r=t;r<e.length;r++)e[r]=n;return!0},l.prototype._unpad=function(e){if(!1===this.padding)return e;for(var t=e[e.length-1],n=e.length-t;n<e.length;n++)r.equal(e[n],t);return e.slice(0,e.length-t)},l.prototype._encrypt=function(e,t,n,r,s){for(var i=t,o=n,l=0;l<e.keys.length;l+=2){var c=e.keys[l],u=e.keys[l+1];a.expand(o,e.tmp,0),c^=e.tmp[0],u^=e.tmp[1];var f=a.substitute(c,u),d=o;o=(i^a.permute(f))>>>0,i=d}a.rip(o,i,r,s)},l.prototype._decrypt=function(e,t,n,r,s){for(var i=n,o=t,l=e.keys.length-2;l>=0;l-=2){var c=e.keys[l],u=e.keys[l+1];a.expand(i,e.tmp,0),c^=e.tmp[0],u^=e.tmp[1];var f=a.substitute(c,u),d=i;i=(o^a.permute(f))>>>0,o=d}a.rip(i,o,r,s)}},6540:(e,t,n)=>{var r=n(7859),s=n(87),a=n(4923),i=n(225);function o(e,t){r.equal(t.length,24,"Invalid key length");var n=t.slice(0,8),s=t.slice(8,16),a=t.slice(16,24);this.ciphers="encrypt"===e?[i.create({type:"encrypt",key:n}),i.create({type:"decrypt",key:s}),i.create({type:"encrypt",key:a})]:[i.create({type:"decrypt",key:a}),i.create({type:"encrypt",key:s}),i.create({type:"decrypt",key:n})]}function l(e){a.call(this,e);var t=new o(this.type,this.options.key);this._edeState=t}s(l,a),e.exports=l,l.create=function(e){return new l(e)},l.prototype._update=function(e,t,n,r){var s=this._edeState;s.ciphers[0]._update(e,t,n,r),s.ciphers[1]._update(n,r,n,r),s.ciphers[2]._update(n,r,n,r)},l.prototype._pad=i.prototype._pad,l.prototype._unpad=i.prototype._unpad},5516:(e,t)=>{t.readUInt32BE=function(e,t){return(e[0+t]<<24|e[1+t]<<16|e[2+t]<<8|e[3+t])>>>0},t.writeUInt32BE=function(e,t,n){e[0+n]=t>>>24,e[1+n]=t>>>16&255,e[2+n]=t>>>8&255,e[3+n]=255&t},t.ip=function(e,t,n,r){for(var s=0,a=0,i=6;i>=0;i-=2){for(var o=0;o<=24;o+=8)s<<=1,s|=t>>>o+i&1;for(o=0;o<=24;o+=8)s<<=1,s|=e>>>o+i&1}for(i=6;i>=0;i-=2){for(o=1;o<=25;o+=8)a<<=1,a|=t>>>o+i&1;for(o=1;o<=25;o+=8)a<<=1,a|=e>>>o+i&1}n[r+0]=s>>>0,n[r+1]=a>>>0},t.rip=function(e,t,n,r){for(var s=0,a=0,i=0;i<4;i++)for(var o=24;o>=0;o-=8)s<<=1,s|=t>>>o+i&1,s<<=1,s|=e>>>o+i&1;for(i=4;i<8;i++)for(o=24;o>=0;o-=8)a<<=1,a|=t>>>o+i&1,a<<=1,a|=e>>>o+i&1;n[r+0]=s>>>0,n[r+1]=a>>>0},t.pc1=function(e,t,n,r){for(var s=0,a=0,i=7;i>=5;i--){for(var o=0;o<=24;o+=8)s<<=1,s|=t>>o+i&1;for(o=0;o<=24;o+=8)s<<=1,s|=e>>o+i&1}for(o=0;o<=24;o+=8)s<<=1,s|=t>>o+i&1;for(i=1;i<=3;i++){for(o=0;o<=24;o+=8)a<<=1,a|=t>>o+i&1;for(o=0;o<=24;o+=8)a<<=1,a|=e>>o+i&1}for(o=0;o<=24;o+=8)a<<=1,a|=e>>o+i&1;n[r+0]=s>>>0,n[r+1]=a>>>0},t.r28shl=function(e,t){return e<<t&268435455|e>>>28-t};var n=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];t.pc2=function(e,t,r,s){for(var a=0,i=0,o=n.length>>>1,l=0;l<o;l++)a<<=1,a|=e>>>n[l]&1;for(l=o;l<n.length;l++)i<<=1,i|=t>>>n[l]&1;r[s+0]=a>>>0,r[s+1]=i>>>0},t.expand=function(e,t,n){var r=0,s=0;r=(1&e)<<5|e>>>27;for(var a=23;a>=15;a-=4)r<<=6,r|=e>>>a&63;for(a=11;a>=3;a-=4)s|=e>>>a&63,s<<=6;s|=(31&e)<<1|e>>>31,t[n+0]=r>>>0,t[n+1]=s>>>0};var r=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];t.substitute=function(e,t){for(var n=0,s=0;s<4;s++)n<<=4,n|=r[64*s+(e>>>18-6*s&63)];for(s=0;s<4;s++)n<<=4,n|=r[256+64*s+(t>>>18-6*s&63)];return n>>>0};var s=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];t.permute=function(e){for(var t=0,n=0;n<s.length;n++)t<<=1,t|=e>>>s[n]&1;return t>>>0},t.padSplit=function(e,t,n){for(var r=e.toString(2);r.length<t;)r="0"+r;for(var s=[],a=0;a<t;a+=n)s.push(r.slice(a,a+n));return s.join(" ")}},3302:e=>{e.exports=!1},343:e=>{var t,n="object"==typeof Reflect?Reflect:null,r=n&&"function"==typeof n.apply?n.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)};t=n&&"function"==typeof n.ownKeys?n.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var s=Number.isNaN||function(e){return e!=e};function a(){a.init.call(this)}e.exports=a,e.exports.once=function(e,t){return new Promise((function(n,r){function s(n){e.removeListener(t,a),r(n)}function a(){"function"==typeof e.removeListener&&e.removeListener("error",s),n([].slice.call(arguments))}p(e,t,a,{once:!0}),"error"!==t&&function(e,t,n){"function"==typeof e.on&&p(e,"error",t,{once:!0})}(e,s)}))},a.EventEmitter=a,a.prototype._events=void 0,a.prototype._eventsCount=0,a.prototype._maxListeners=void 0;var i=10;function o(e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function l(e){return void 0===e._maxListeners?a.defaultMaxListeners:e._maxListeners}function c(e,t,n,r){var s,a,i,c;if(o(n),void 0===(a=e._events)?(a=e._events=Object.create(null),e._eventsCount=0):(void 0!==a.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),a=e._events),i=a[t]),void 0===i)i=a[t]=n,++e._eventsCount;else if("function"==typeof i?i=a[t]=r?[n,i]:[i,n]:r?i.unshift(n):i.push(n),(s=l(e))>0&&i.length>s&&!i.warned){i.warned=!0;var u=new Error("Possible EventEmitter memory leak detected. "+i.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");u.name="MaxListenersExceededWarning",u.emitter=e,u.type=t,u.count=i.length,c=u,console&&console.warn&&console.warn(c)}return e}function u(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function f(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},s=u.bind(r);return s.listener=n,r.wrapFn=s,s}function d(e,t,n){var r=e._events;if(void 0===r)return[];var s=r[t];return void 0===s?[]:"function"==typeof s?n?[s.listener||s]:[s]:n?function(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}(s):h(s,s.length)}function _(e){var t=this._events;if(void 0!==t){var n=t[e];if("function"==typeof n)return 1;if(void 0!==n)return n.length}return 0}function h(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e[r];return n}function p(e,t,n,r){if("function"==typeof e.on)r.once?e.once(t,n):e.on(t,n);else{if("function"!=typeof e.addEventListener)throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e);e.addEventListener(t,(function s(a){r.once&&e.removeEventListener(t,s),n(a)}))}}Object.defineProperty(a,"defaultMaxListeners",{enumerable:!0,get:function(){return i},set:function(e){if("number"!=typeof e||e<0||s(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");i=e}}),a.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},a.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||s(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this},a.prototype.getMaxListeners=function(){return l(this)},a.prototype.emit=function(e){for(var t=[],n=1;n<arguments.length;n++)t.push(arguments[n]);var s="error"===e,a=this._events;if(void 0!==a)s=s&&void 0===a.error;else if(!s)return!1;if(s){var i;if(t.length>0&&(i=t[0]),i instanceof Error)throw i;var o=new Error("Unhandled error."+(i?" ("+i.message+")":""));throw o.context=i,o}var l=a[e];if(void 0===l)return!1;if("function"==typeof l)r(l,this,t);else{var c=l.length,u=h(l,c);for(n=0;n<c;++n)r(u[n],this,t)}return!0},a.prototype.addListener=function(e,t){return c(this,e,t,!1)},a.prototype.on=a.prototype.addListener,a.prototype.prependListener=function(e,t){return c(this,e,t,!0)},a.prototype.once=function(e,t){return o(t),this.on(e,f(this,e,t)),this},a.prototype.prependOnceListener=function(e,t){return o(t),this.prependListener(e,f(this,e,t)),this},a.prototype.removeListener=function(e,t){var n,r,s,a,i;if(o(t),void 0===(r=this._events))return this;if(void 0===(n=r[e]))return this;if(n===t||n.listener===t)0==--this._eventsCount?this._events=Object.create(null):(delete r[e],r.removeListener&&this.emit("removeListener",e,n.listener||t));else if("function"!=typeof n){for(s=-1,a=n.length-1;a>=0;a--)if(n[a]===t||n[a].listener===t){i=n[a].listener,s=a;break}if(s<0)return this;0===s?n.shift():function(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}(n,s),1===n.length&&(r[e]=n[0]),void 0!==r.removeListener&&this.emit("removeListener",e,i||t)}return this},a.prototype.off=a.prototype.removeListener,a.prototype.removeAllListeners=function(e){var t,n,r;if(void 0===(n=this._events))return this;if(void 0===n.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==n[e]&&(0==--this._eventsCount?this._events=Object.create(null):delete n[e]),this;if(0===arguments.length){var s,a=Object.keys(n);for(r=0;r<a.length;++r)"removeListener"!==(s=a[r])&&this.removeAllListeners(s);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if("function"==typeof(t=n[e]))this.removeListener(e,t);else if(void 0!==t)for(r=t.length-1;r>=0;r--)this.removeListener(e,t[r]);return this},a.prototype.listeners=function(e){return d(this,e,!0)},a.prototype.rawListeners=function(e){return d(this,e,!1)},a.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):_.call(e,t)},a.prototype.listenerCount=_,a.prototype.eventNames=function(){return this._eventsCount>0?t(this._events):[]}},5883:(e,t,n)=>{var r=n(7172).Buffer,s=n(9500);e.exports=function(e,t,n,a){if(r.isBuffer(e)||(e=r.from(e,"binary")),t&&(r.isBuffer(t)||(t=r.from(t,"binary")),8!==t.length))throw new RangeError("salt should be Buffer with 8 byte length");for(var i=n/8,o=r.alloc(i),l=r.alloc(a||0),c=r.alloc(0);i>0||a>0;){var u=new s;u.update(c),u.update(e),t&&u.update(t),c=u.digest();var f=0;if(i>0){var d=o.length-i;f=Math.min(i,c.length),c.copy(o,d,0,f),i-=f}if(f<c.length&&a>0){var _=l.length-a,h=Math.min(a,c.length-f);c.copy(l,_,f,f+h),a-=h}}return c.fill(0),{key:o,iv:l}}},6883:(e,t,n)=>{var r=n(7172).Buffer,s=n(8310).Transform;function a(e){s.call(this),this._block=r.allocUnsafe(e),this._blockSize=e,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}n(87)(a,s),a.prototype._transform=function(e,t,n){var r=null;try{this.update(e,t)}catch(e){r=e}n(r)},a.prototype._flush=function(e){var t=null;try{this.push(this.digest())}catch(e){t=e}e(t)},a.prototype.update=function(e,t){if(function(e,t){if(!r.isBuffer(e)&&"string"!=typeof e)throw new TypeError("Data must be a string or a buffer")}(e),this._finalized)throw new Error("Digest already called");r.isBuffer(e)||(e=r.from(e,t));for(var n=this._block,s=0;this._blockOffset+e.length-s>=this._blockSize;){for(var a=this._blockOffset;a<this._blockSize;)n[a++]=e[s++];this._update(),this._blockOffset=0}for(;s<e.length;)n[this._blockOffset++]=e[s++];for(var i=0,o=8*e.length;o>0;++i)this._length[i]+=o,(o=this._length[i]/4294967296|0)>0&&(this._length[i]-=4294967296*o);return this},a.prototype._update=function(){throw new Error("_update is not implemented")},a.prototype.digest=function(e){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var t=this._digest();void 0!==e&&(t=t.toString(e)),this._block.fill(0),this._blockOffset=0;for(var n=0;n<4;++n)this._length[n]=0;return t},a.prototype._digest=function(){throw new Error("_digest is not implemented")},e.exports=a},5294:(e,t,n)=>{var r=t;r.utils=n(8626),r.common=n(8717),r.sha=n(2589),r.ripemd=n(8494),r.hmac=n(2750),r.sha1=r.sha.sha1,r.sha256=r.sha.sha256,r.sha224=r.sha.sha224,r.sha384=r.sha.sha384,r.sha512=r.sha.sha512,r.ripemd160=r.ripemd.ripemd160},8717:(e,t,n)=>{var r=n(8626),s=n(7859);function a(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}t.BlockHash=a,a.prototype.update=function(e,t){if(e=r.toArray(e,t),this.pending?this.pending=this.pending.concat(e):this.pending=e,this.pendingTotal+=e.length,this.pending.length>=this._delta8){var n=(e=this.pending).length%this._delta8;this.pending=e.slice(e.length-n,e.length),0===this.pending.length&&(this.pending=null),e=r.join32(e,0,e.length-n,this.endian);for(var s=0;s<e.length;s+=this._delta32)this._update(e,s,s+this._delta32)}return this},a.prototype.digest=function(e){return this.update(this._pad()),s(null===this.pending),this._digest(e)},a.prototype._pad=function(){var e=this.pendingTotal,t=this._delta8,n=t-(e+this.padLength)%t,r=new Array(n+this.padLength);r[0]=128;for(var s=1;s<n;s++)r[s]=0;if(e<<=3,"big"===this.endian){for(var a=8;a<this.padLength;a++)r[s++]=0;r[s++]=0,r[s++]=0,r[s++]=0,r[s++]=0,r[s++]=e>>>24&255,r[s++]=e>>>16&255,r[s++]=e>>>8&255,r[s++]=255&e}else for(r[s++]=255&e,r[s++]=e>>>8&255,r[s++]=e>>>16&255,r[s++]=e>>>24&255,r[s++]=0,r[s++]=0,r[s++]=0,r[s++]=0,a=8;a<this.padLength;a++)r[s++]=0;return r}},2750:(e,t,n)=>{var r=n(8626),s=n(7859);function a(e,t,n){if(!(this instanceof a))return new a(e,t,n);this.Hash=e,this.blockSize=e.blockSize/8,this.outSize=e.outSize/8,this.inner=null,this.outer=null,this._init(r.toArray(t,n))}e.exports=a,a.prototype._init=function(e){e.length>this.blockSize&&(e=(new this.Hash).update(e).digest()),s(e.length<=this.blockSize);for(var t=e.length;t<this.blockSize;t++)e.push(0);for(t=0;t<e.length;t++)e[t]^=54;for(this.inner=(new this.Hash).update(e),t=0;t<e.length;t++)e[t]^=106;this.outer=(new this.Hash).update(e)},a.prototype.update=function(e,t){return this.inner.update(e,t),this},a.prototype.digest=function(e){return this.outer.update(this.inner.digest()),this.outer.digest(e)}},8494:(e,t,n)=>{var r=n(8626),s=n(8717),a=r.rotl32,i=r.sum32,o=r.sum32_3,l=r.sum32_4,c=s.BlockHash;function u(){if(!(this instanceof u))return new u;c.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}function f(e,t,n,r){return e<=15?t^n^r:e<=31?t&n|~t&r:e<=47?(t|~n)^r:e<=63?t&r|n&~r:t^(n|~r)}function d(e){return e<=15?0:e<=31?1518500249:e<=47?1859775393:e<=63?2400959708:2840853838}function _(e){return e<=15?1352829926:e<=31?1548603684:e<=47?1836072691:e<=63?2053994217:0}r.inherits(u,c),t.ripemd160=u,u.blockSize=512,u.outSize=160,u.hmacStrength=192,u.padLength=64,u.prototype._update=function(e,t){for(var n=this.h[0],r=this.h[1],s=this.h[2],c=this.h[3],u=this.h[4],m=n,y=r,v=s,w=c,E=u,L=0;L<80;L++){var A=i(a(l(n,f(L,r,s,c),e[h[L]+t],d(L)),g[L]),u);n=u,u=c,c=a(s,10),s=r,r=A,A=i(a(l(m,f(79-L,y,v,w),e[p[L]+t],_(L)),b[L]),E),m=E,E=w,w=a(v,10),v=y,y=A}A=o(this.h[1],s,w),this.h[1]=o(this.h[2],c,E),this.h[2]=o(this.h[3],u,m),this.h[3]=o(this.h[4],n,y),this.h[4]=o(this.h[0],r,v),this.h[0]=A},u.prototype._digest=function(e){return"hex"===e?r.toHex32(this.h,"little"):r.split32(this.h,"little")};var h=[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],p=[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],g=[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],b=[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]},2589:(e,t,n)=>{t.sha1=n(9330),t.sha224=n(5168),t.sha256=n(375),t.sha384=n(8899),t.sha512=n(790)},9330:(e,t,n)=>{var r=n(8626),s=n(8717),a=n(8156),i=r.rotl32,o=r.sum32,l=r.sum32_5,c=a.ft_1,u=s.BlockHash,f=[1518500249,1859775393,2400959708,3395469782];function d(){if(!(this instanceof d))return new d;u.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}r.inherits(d,u),e.exports=d,d.blockSize=512,d.outSize=160,d.hmacStrength=80,d.padLength=64,d.prototype._update=function(e,t){for(var n=this.W,r=0;r<16;r++)n[r]=e[t+r];for(;r<n.length;r++)n[r]=i(n[r-3]^n[r-8]^n[r-14]^n[r-16],1);var s=this.h[0],a=this.h[1],u=this.h[2],d=this.h[3],_=this.h[4];for(r=0;r<n.length;r++){var h=~~(r/20),p=l(i(s,5),c(h,a,u,d),_,n[r],f[h]);_=d,d=u,u=i(a,30),a=s,s=p}this.h[0]=o(this.h[0],s),this.h[1]=o(this.h[1],a),this.h[2]=o(this.h[2],u),this.h[3]=o(this.h[3],d),this.h[4]=o(this.h[4],_)},d.prototype._digest=function(e){return"hex"===e?r.toHex32(this.h,"big"):r.split32(this.h,"big")}},5168:(e,t,n)=>{var r=n(8626),s=n(375);function a(){if(!(this instanceof a))return new a;s.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}r.inherits(a,s),e.exports=a,a.blockSize=512,a.outSize=224,a.hmacStrength=192,a.padLength=64,a.prototype._digest=function(e){return"hex"===e?r.toHex32(this.h.slice(0,7),"big"):r.split32(this.h.slice(0,7),"big")}},375:(e,t,n)=>{var r=n(8626),s=n(8717),a=n(8156),i=n(7859),o=r.sum32,l=r.sum32_4,c=r.sum32_5,u=a.ch32,f=a.maj32,d=a.s0_256,_=a.s1_256,h=a.g0_256,p=a.g1_256,g=s.BlockHash,b=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];function m(){if(!(this instanceof m))return new m;g.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=b,this.W=new Array(64)}r.inherits(m,g),e.exports=m,m.blockSize=512,m.outSize=256,m.hmacStrength=192,m.padLength=64,m.prototype._update=function(e,t){for(var n=this.W,r=0;r<16;r++)n[r]=e[t+r];for(;r<n.length;r++)n[r]=l(p(n[r-2]),n[r-7],h(n[r-15]),n[r-16]);var s=this.h[0],a=this.h[1],g=this.h[2],b=this.h[3],m=this.h[4],y=this.h[5],v=this.h[6],w=this.h[7];for(i(this.k.length===n.length),r=0;r<n.length;r++){var E=c(w,_(m),u(m,y,v),this.k[r],n[r]),L=o(d(s),f(s,a,g));w=v,v=y,y=m,m=o(b,E),b=g,g=a,a=s,s=o(E,L)}this.h[0]=o(this.h[0],s),this.h[1]=o(this.h[1],a),this.h[2]=o(this.h[2],g),this.h[3]=o(this.h[3],b),this.h[4]=o(this.h[4],m),this.h[5]=o(this.h[5],y),this.h[6]=o(this.h[6],v),this.h[7]=o(this.h[7],w)},m.prototype._digest=function(e){return"hex"===e?r.toHex32(this.h,"big"):r.split32(this.h,"big")}},8899:(e,t,n)=>{var r=n(8626),s=n(790);function a(){if(!(this instanceof a))return new a;s.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}r.inherits(a,s),e.exports=a,a.blockSize=1024,a.outSize=384,a.hmacStrength=192,a.padLength=128,a.prototype._digest=function(e){return"hex"===e?r.toHex32(this.h.slice(0,12),"big"):r.split32(this.h.slice(0,12),"big")}},790:(e,t,n)=>{var r=n(8626),s=n(8717),a=n(7859),i=r.rotr64_hi,o=r.rotr64_lo,l=r.shr64_hi,c=r.shr64_lo,u=r.sum64,f=r.sum64_hi,d=r.sum64_lo,_=r.sum64_4_hi,h=r.sum64_4_lo,p=r.sum64_5_hi,g=r.sum64_5_lo,b=s.BlockHash,m=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function y(){if(!(this instanceof y))return new y;b.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=m,this.W=new Array(160)}function v(e,t,n,r,s){var a=e&n^~e&s;return a<0&&(a+=4294967296),a}function w(e,t,n,r,s,a){var i=t&r^~t&a;return i<0&&(i+=4294967296),i}function E(e,t,n,r,s){var a=e&n^e&s^n&s;return a<0&&(a+=4294967296),a}function L(e,t,n,r,s,a){var i=t&r^t&a^r&a;return i<0&&(i+=4294967296),i}function A(e,t){var n=i(e,t,28)^i(t,e,2)^i(t,e,7);return n<0&&(n+=4294967296),n}function S(e,t){var n=o(e,t,28)^o(t,e,2)^o(t,e,7);return n<0&&(n+=4294967296),n}function C(e,t){var n=o(e,t,14)^o(e,t,18)^o(t,e,9);return n<0&&(n+=4294967296),n}function T(e,t){var n=i(e,t,1)^i(e,t,8)^l(e,t,7);return n<0&&(n+=4294967296),n}function P(e,t){var n=o(e,t,1)^o(e,t,8)^c(e,t,7);return n<0&&(n+=4294967296),n}function N(e,t){var n=o(e,t,19)^o(t,e,29)^c(e,t,6);return n<0&&(n+=4294967296),n}r.inherits(y,b),e.exports=y,y.blockSize=1024,y.outSize=512,y.hmacStrength=192,y.padLength=128,y.prototype._prepareBlock=function(e,t){for(var n=this.W,r=0;r<32;r++)n[r]=e[t+r];for(;r<n.length;r+=2){var s=(g=n[r-4],b=n[r-3],m=void 0,(m=i(g,b,19)^i(b,g,29)^l(g,b,6))<0&&(m+=4294967296),m),a=N(n[r-4],n[r-3]),o=n[r-14],c=n[r-13],u=T(n[r-30],n[r-29]),f=P(n[r-30],n[r-29]),d=n[r-32],p=n[r-31];n[r]=_(s,a,o,c,u,f,d,p),n[r+1]=h(s,a,o,c,u,f,d,p)}var g,b,m},y.prototype._update=function(e,t){this._prepareBlock(e,t);var n,r,s,o=this.W,l=this.h[0],c=this.h[1],_=this.h[2],h=this.h[3],b=this.h[4],m=this.h[5],y=this.h[6],T=this.h[7],P=this.h[8],N=this.h[9],I=this.h[10],k=this.h[11],x=this.h[12],R=this.h[13],B=this.h[14],O=this.h[15];a(this.k.length===o.length);for(var D=0;D<o.length;D+=2){var F=B,H=O,M=(s=void 0,(s=i(n=P,r=N,14)^i(n,r,18)^i(r,n,9))<0&&(s+=4294967296),s),z=C(P,N),U=v(P,0,I,0,x),j=w(0,N,0,k,0,R),Z=this.k[D],W=this.k[D+1],G=o[D],Q=o[D+1],X=p(F,H,M,z,U,j,Z,W,G,Q),Y=g(F,H,M,z,U,j,Z,W,G,Q);F=A(l,c),H=S(l,c),M=E(l,0,_,0,b),z=L(0,c,0,h,0,m);var J=f(F,H,M,z),V=d(F,H,M,z);B=x,O=R,x=I,R=k,I=P,k=N,P=f(y,T,X,Y),N=d(T,T,X,Y),y=b,T=m,b=_,m=h,_=l,h=c,l=f(X,Y,J,V),c=d(X,Y,J,V)}u(this.h,0,l,c),u(this.h,2,_,h),u(this.h,4,b,m),u(this.h,6,y,T),u(this.h,8,P,N),u(this.h,10,I,k),u(this.h,12,x,R),u(this.h,14,B,O)},y.prototype._digest=function(e){return"hex"===e?r.toHex32(this.h,"big"):r.split32(this.h,"big")}},8156:(e,t,n)=>{var r=n(8626).rotr32;function s(e,t,n){return e&t^~e&n}function a(e,t,n){return e&t^e&n^t&n}function i(e,t,n){return e^t^n}t.ft_1=function(e,t,n,r){return 0===e?s(t,n,r):1===e||3===e?i(t,n,r):2===e?a(t,n,r):void 0},t.ch32=s,t.maj32=a,t.p32=i,t.s0_256=function(e){return r(e,2)^r(e,13)^r(e,22)},t.s1_256=function(e){return r(e,6)^r(e,11)^r(e,25)},t.g0_256=function(e){return r(e,7)^r(e,18)^e>>>3},t.g1_256=function(e){return r(e,17)^r(e,19)^e>>>10}},8626:(e,t,n)=>{var r=n(7859),s=n(87);function a(e,t){return 55296==(64512&e.charCodeAt(t))&&!(t<0||t+1>=e.length)&&56320==(64512&e.charCodeAt(t+1))}function i(e){return(e>>>24|e>>>8&65280|e<<8&16711680|(255&e)<<24)>>>0}function o(e){return 1===e.length?"0"+e:e}function l(e){return 7===e.length?"0"+e:6===e.length?"00"+e:5===e.length?"000"+e:4===e.length?"0000"+e:3===e.length?"00000"+e:2===e.length?"000000"+e:1===e.length?"0000000"+e:e}t.inherits=s,t.toArray=function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var n=[];if("string"==typeof e)if(t){if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),s=0;s<e.length;s+=2)n.push(parseInt(e[s]+e[s+1],16))}else for(var r=0,s=0;s<e.length;s++){var i=e.charCodeAt(s);i<128?n[r++]=i:i<2048?(n[r++]=i>>6|192,n[r++]=63&i|128):a(e,s)?(i=65536+((1023&i)<<10)+(1023&e.charCodeAt(++s)),n[r++]=i>>18|240,n[r++]=i>>12&63|128,n[r++]=i>>6&63|128,n[r++]=63&i|128):(n[r++]=i>>12|224,n[r++]=i>>6&63|128,n[r++]=63&i|128)}else for(s=0;s<e.length;s++)n[s]=0|e[s];return n},t.toHex=function(e){for(var t="",n=0;n<e.length;n++)t+=o(e[n].toString(16));return t},t.htonl=i,t.toHex32=function(e,t){for(var n="",r=0;r<e.length;r++){var s=e[r];"little"===t&&(s=i(s)),n+=l(s.toString(16))}return n},t.zero2=o,t.zero8=l,t.join32=function(e,t,n,s){var a=n-t;r(a%4==0);for(var i=new Array(a/4),o=0,l=t;o<i.length;o++,l+=4){var c;c="big"===s?e[l]<<24|e[l+1]<<16|e[l+2]<<8|e[l+3]:e[l+3]<<24|e[l+2]<<16|e[l+1]<<8|e[l],i[o]=c>>>0}return i},t.split32=function(e,t){for(var n=new Array(4*e.length),r=0,s=0;r<e.length;r++,s+=4){var a=e[r];"big"===t?(n[s]=a>>>24,n[s+1]=a>>>16&255,n[s+2]=a>>>8&255,n[s+3]=255&a):(n[s+3]=a>>>24,n[s+2]=a>>>16&255,n[s+1]=a>>>8&255,n[s]=255&a)}return n},t.rotr32=function(e,t){return e>>>t|e<<32-t},t.rotl32=function(e,t){return e<<t|e>>>32-t},t.sum32=function(e,t){return e+t>>>0},t.sum32_3=function(e,t,n){return e+t+n>>>0},t.sum32_4=function(e,t,n,r){return e+t+n+r>>>0},t.sum32_5=function(e,t,n,r,s){return e+t+n+r+s>>>0},t.sum64=function(e,t,n,r){var s=e[t],a=r+e[t+1]>>>0,i=(a<r?1:0)+n+s;e[t]=i>>>0,e[t+1]=a},t.sum64_hi=function(e,t,n,r){return(t+r>>>0<t?1:0)+e+n>>>0},t.sum64_lo=function(e,t,n,r){return t+r>>>0},t.sum64_4_hi=function(e,t,n,r,s,a,i,o){var l=0,c=t;return l+=(c=c+r>>>0)<t?1:0,l+=(c=c+a>>>0)<a?1:0,e+n+s+i+(l+=(c=c+o>>>0)<o?1:0)>>>0},t.sum64_4_lo=function(e,t,n,r,s,a,i,o){return t+r+a+o>>>0},t.sum64_5_hi=function(e,t,n,r,s,a,i,o,l,c){var u=0,f=t;return u+=(f=f+r>>>0)<t?1:0,u+=(f=f+a>>>0)<a?1:0,u+=(f=f+o>>>0)<o?1:0,e+n+s+i+l+(u+=(f=f+c>>>0)<c?1:0)>>>0},t.sum64_5_lo=function(e,t,n,r,s,a,i,o,l,c){return t+r+a+o+c>>>0},t.rotr64_hi=function(e,t,n){return(t<<32-n|e>>>n)>>>0},t.rotr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0},t.shr64_hi=function(e,t,n){return e>>>n},t.shr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0}},8898:(e,t)=>{t.read=function(e,t,n,r,s){var a,i,o=8*s-r-1,l=(1<<o)-1,c=l>>1,u=-7,f=n?s-1:0,d=n?-1:1,_=e[t+f];for(f+=d,a=_&(1<<-u)-1,_>>=-u,u+=o;u>0;a=256*a+e[t+f],f+=d,u-=8);for(i=a&(1<<-u)-1,a>>=-u,u+=r;u>0;i=256*i+e[t+f],f+=d,u-=8);if(0===a)a=1-c;else{if(a===l)return i?NaN:1/0*(_?-1:1);i+=Math.pow(2,r),a-=c}return(_?-1:1)*i*Math.pow(2,a-r)},t.write=function(e,t,n,r,s,a){var i,o,l,c=8*a-s-1,u=(1<<c)-1,f=u>>1,d=23===s?Math.pow(2,-24)-Math.pow(2,-77):0,_=r?0:a-1,h=r?1:-1,p=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(o=isNaN(t)?1:0,i=u):(i=Math.floor(Math.log(t)/Math.LN2),t*(l=Math.pow(2,-i))<1&&(i--,l*=2),(t+=i+f>=1?d/l:d*Math.pow(2,1-f))*l>=2&&(i++,l/=2),i+f>=u?(o=0,i=u):i+f>=1?(o=(t*l-1)*Math.pow(2,s),i+=f):(o=t*Math.pow(2,f-1)*Math.pow(2,s),i=0));s>=8;e[n+_]=255&o,_+=h,o/=256,s-=8);for(i=i<<s|o,c+=s;c>0;e[n+_]=255&i,_+=h,i/=256,c-=8);e[n+_-h]|=128*p}},87:e=>{"function"==typeof Object.create?e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(e,t){if(t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}}},3261:e=>{var t=1/0,n=9007199254740991,r=/^\s+|\s+$/g,s=/^[-+]0x[0-9a-f]+$/i,a=/^0b[01]+$/i,i=/^0o[0-7]+$/i,o=/^(?:0|[1-9]\d*)$/,l=parseInt,c=Object.prototype.toString,u=Math.ceil,f=Math.max;function d(e,t,n){var r=-1,s=e.length;t<0&&(t=-t>s?0:s+t),(n=n>s?s:n)<0&&(n+=s),s=t>n?0:n-t>>>0,t>>>=0;for(var a=Array(s);++r<s;)a[r]=e[r+t];return a}function _(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}e.exports=function(e,h,p){h=(p?function(e,t,r){if(!_(r))return!1;var s=typeof t;return!!("number"==s?function(e){return null!=e&&function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=n}(e.length)&&!function(e){var t=_(e)?c.call(e):"";return"[object Function]"==t||"[object GeneratorFunction]"==t}(e)}(r)&&function(e,t){return!!(t=null==t?n:t)&&("number"==typeof e||o.test(e))&&e>-1&&e%1==0&&e<t}(t,r.length):"string"==s&&t in r)&&function(e,t){return e===t||e!=e&&t!=t}(r[t],e)}(e,h,p):void 0===h)?1:f(function(e){var n=function(e){return e?(e=function(e){if("number"==typeof e)return e;if(function(e){return"symbol"==typeof e||function(e){return!!e&&"object"==typeof e}(e)&&"[object Symbol]"==c.call(e)}(e))return NaN;if(_(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=_(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(r,"");var n=a.test(e);return n||i.test(e)?l(e.slice(2),n?2:8):s.test(e)?NaN:+e}(e))===t||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0}(e),o=n%1;return n==n?o?n-o:n:0}(h),0);var g=e?e.length:0;if(!g||h<1)return[];for(var b=0,m=0,y=Array(u(g/h));b<g;)y[m++]=d(e,b,b+=h);return y}},7902:(e,t,n)=>{e=n.nmd(e);var r="__lodash_hash_undefined__",s=9007199254740991,a="[object Arguments]",i="[object Boolean]",o="[object Date]",l="[object Function]",c="[object GeneratorFunction]",u="[object Map]",f="[object Number]",d="[object Object]",_="[object Promise]",h="[object RegExp]",p="[object Set]",g="[object String]",b="[object Symbol]",m="[object WeakMap]",y="[object ArrayBuffer]",v="[object DataView]",w="[object Float32Array]",E="[object Float64Array]",L="[object Int8Array]",A="[object Int16Array]",S="[object Int32Array]",C="[object Uint8Array]",T="[object Uint8ClampedArray]",P="[object Uint16Array]",N="[object Uint32Array]",I=/\w*$/,k=/^\[object .+?Constructor\]$/,x=/^(?:0|[1-9]\d*)$/,R={};R[a]=R["[object Array]"]=R[y]=R[v]=R[i]=R[o]=R[w]=R[E]=R[L]=R[A]=R[S]=R[u]=R[f]=R[d]=R[h]=R[p]=R[g]=R[b]=R[C]=R[T]=R[P]=R[N]=!0,R["[object Error]"]=R[l]=R[m]=!1;var B="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,O="object"==typeof self&&self&&self.Object===Object&&self,D=B||O||Function("return this")(),F=t&&!t.nodeType&&t,H=F&&e&&!e.nodeType&&e,M=H&&H.exports===F;function z(e,t){return e.set(t[0],t[1]),e}function U(e,t){return e.add(t),e}function j(e,t,n,r){var s=-1,a=e?e.length:0;for(r&&a&&(n=e[++s]);++s<a;)n=t(n,e[s],s,e);return n}function Z(e){var t=!1;if(null!=e&&"function"!=typeof e.toString)try{t=!!(e+"")}catch(e){}return t}function W(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}function G(e,t){return function(n){return e(t(n))}}function Q(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}var X,Y=Array.prototype,J=Function.prototype,V=Object.prototype,q=D["__core-js_shared__"],K=(X=/[^.]+$/.exec(q&&q.keys&&q.keys.IE_PROTO||""))?"Symbol(src)_1."+X:"",$=J.toString,ee=V.hasOwnProperty,te=V.toString,ne=RegExp("^"+$.call(ee).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),re=M?D.Buffer:void 0,se=D.Symbol,ae=D.Uint8Array,ie=G(Object.getPrototypeOf,Object),oe=Object.create,le=V.propertyIsEnumerable,ce=Y.splice,ue=Object.getOwnPropertySymbols,fe=re?re.isBuffer:void 0,de=G(Object.keys,Object),_e=De(D,"DataView"),he=De(D,"Map"),pe=De(D,"Promise"),ge=De(D,"Set"),be=De(D,"WeakMap"),me=De(Object,"create"),ye=Ue(_e),ve=Ue(he),we=Ue(pe),Ee=Ue(ge),Le=Ue(be),Ae=se?se.prototype:void 0,Se=Ae?Ae.valueOf:void 0;function Ce(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function Te(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function Pe(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function Ne(e){this.__data__=new Te(e)}function Ie(e,t,n){var r=e[t];ee.call(e,t)&&je(r,n)&&(void 0!==n||t in e)||(e[t]=n)}function ke(e,t){for(var n=e.length;n--;)if(je(e[n][0],t))return n;return-1}function xe(e,t,n,r,s,_,m){var k;if(r&&(k=_?r(e,s,_,m):r(e)),void 0!==k)return k;if(!Xe(e))return e;var x=Ze(e);if(x){if(k=function(e){var t=e.length,n=e.constructor(t);return t&&"string"==typeof e[0]&&ee.call(e,"index")&&(n.index=e.index,n.input=e.input),n}(e),!t)return function(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n<r;)t[n]=e[n];return t}(e,k)}else{var B=He(e),O=B==l||B==c;if(Ge(e))return function(e,t){if(t)return e.slice();var n=new e.constructor(e.length);return e.copy(n),n}(e,t);if(B==d||B==a||O&&!_){if(Z(e))return _?e:{};if(k=function(e){return"function"!=typeof e.constructor||ze(e)?{}:Xe(t=ie(e))?oe(t):{};var t}(O?{}:e),!t)return function(e,t){return Be(e,Fe(e),t)}(e,function(e,t){return e&&Be(t,Ye(t),e)}(k,e))}else{if(!R[B])return _?e:{};k=function(e,t,n,r){var s,a=e.constructor;switch(t){case y:return Re(e);case i:case o:return new a(+e);case v:return function(e,t){var n=t?Re(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}(e,r);case w:case E:case L:case A:case S:case C:case T:case P:case N:return function(e,t){var n=t?Re(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}(e,r);case u:return function(e,t,n){return j(t?n(W(e),!0):W(e),z,new e.constructor)}(e,r,n);case f:case g:return new a(e);case h:return function(e){var t=new e.constructor(e.source,I.exec(e));return t.lastIndex=e.lastIndex,t}(e);case p:return function(e,t,n){return j(t?n(Q(e),!0):Q(e),U,new e.constructor)}(e,r,n);case b:return s=e,Se?Object(Se.call(s)):{}}}(e,B,xe,t)}}m||(m=new Ne);var D=m.get(e);if(D)return D;if(m.set(e,k),!x)var F=n?function(e){return function(e,t,n){var r=t(e);return Ze(e)?r:function(e,t){for(var n=-1,r=t.length,s=e.length;++n<r;)e[s+n]=t[n];return e}(r,n(e))}(e,Ye,Fe)}(e):Ye(e);return function(e,t){for(var n=-1,r=e?e.length:0;++n<r&&!1!==t(e[n],n););}(F||e,(function(s,a){F&&(s=e[a=s]),Ie(k,a,xe(s,t,n,r,a,e,m))})),k}function Re(e){var t=new e.constructor(e.byteLength);return new ae(t).set(new ae(e)),t}function Be(e,t,n,r){n||(n={});for(var s=-1,a=t.length;++s<a;){var i=t[s],o=r?r(n[i],e[i],i,n,e):void 0;Ie(n,i,void 0===o?e[i]:o)}return n}function Oe(e,t){var n,r,s=e.__data__;return("string"==(r=typeof(n=t))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?s["string"==typeof t?"string":"hash"]:s.map}function De(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return function(e){return!(!Xe(e)||(t=e,K&&K in t))&&(Qe(e)||Z(e)?ne:k).test(Ue(e));var t}(n)?n:void 0}Ce.prototype.clear=function(){this.__data__=me?me(null):{}},Ce.prototype.delete=function(e){return this.has(e)&&delete this.__data__[e]},Ce.prototype.get=function(e){var t=this.__data__;if(me){var n=t[e];return n===r?void 0:n}return ee.call(t,e)?t[e]:void 0},Ce.prototype.has=function(e){var t=this.__data__;return me?void 0!==t[e]:ee.call(t,e)},Ce.prototype.set=function(e,t){return this.__data__[e]=me&&void 0===t?r:t,this},Te.prototype.clear=function(){this.__data__=[]},Te.prototype.delete=function(e){var t=this.__data__,n=ke(t,e);return!(n<0||(n==t.length-1?t.pop():ce.call(t,n,1),0))},Te.prototype.get=function(e){var t=this.__data__,n=ke(t,e);return n<0?void 0:t[n][1]},Te.prototype.has=function(e){return ke(this.__data__,e)>-1},Te.prototype.set=function(e,t){var n=this.__data__,r=ke(n,e);return r<0?n.push([e,t]):n[r][1]=t,this},Pe.prototype.clear=function(){this.__data__={hash:new Ce,map:new(he||Te),string:new Ce}},Pe.prototype.delete=function(e){return Oe(this,e).delete(e)},Pe.prototype.get=function(e){return Oe(this,e).get(e)},Pe.prototype.has=function(e){return Oe(this,e).has(e)},Pe.prototype.set=function(e,t){return Oe(this,e).set(e,t),this},Ne.prototype.clear=function(){this.__data__=new Te},Ne.prototype.delete=function(e){return this.__data__.delete(e)},Ne.prototype.get=function(e){return this.__data__.get(e)},Ne.prototype.has=function(e){return this.__data__.has(e)},Ne.prototype.set=function(e,t){var n=this.__data__;if(n instanceof Te){var r=n.__data__;if(!he||r.length<199)return r.push([e,t]),this;n=this.__data__=new Pe(r)}return n.set(e,t),this};var Fe=ue?G(ue,Object):function(){return[]},He=function(e){return te.call(e)};function Me(e,t){return!!(t=null==t?s:t)&&("number"==typeof e||x.test(e))&&e>-1&&e%1==0&&e<t}function ze(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||V)}function Ue(e){if(null!=e){try{return $.call(e)}catch(e){}try{return e+""}catch(e){}}return""}function je(e,t){return e===t||e!=e&&t!=t}(_e&&He(new _e(new ArrayBuffer(1)))!=v||he&&He(new he)!=u||pe&&He(pe.resolve())!=_||ge&&He(new ge)!=p||be&&He(new be)!=m)&&(He=function(e){var t=te.call(e),n=t==d?e.constructor:void 0,r=n?Ue(n):void 0;if(r)switch(r){case ye:return v;case ve:return u;case we:return _;case Ee:return p;case Le:return m}return t});var Ze=Array.isArray;function We(e){return null!=e&&function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=s}(e.length)&&!Qe(e)}var Ge=fe||function(){return!1};function Qe(e){var t=Xe(e)?te.call(e):"";return t==l||t==c}function Xe(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function Ye(e){return We(e)?function(e,t){var n=Ze(e)||function(e){return function(e){return function(e){return!!e&&"object"==typeof e}(e)&&We(e)}(e)&&ee.call(e,"callee")&&(!le.call(e,"callee")||te.call(e)==a)}(e)?function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}(e.length,String):[],r=n.length,s=!!r;for(var i in e)!t&&!ee.call(e,i)||s&&("length"==i||Me(i,r))||n.push(i);return n}(e):function(e){if(!ze(e))return de(e);var t=[];for(var n in Object(e))ee.call(e,n)&&"constructor"!=n&&t.push(n);return t}(e)}e.exports=function(e,t){return xe(e,!0,!0,t)}},9467:(e,t,n)=>{e=n.nmd(e);var r="__lodash_hash_undefined__",s=1,a=2,i=1/0,o=9007199254740991,l="[object Arguments]",c="[object Array]",u="[object Boolean]",f="[object Date]",d="[object Error]",_="[object Function]",h="[object GeneratorFunction]",p="[object Map]",g="[object Number]",b="[object Object]",m="[object Promise]",y="[object RegExp]",v="[object Set]",w="[object String]",E="[object Symbol]",L="[object WeakMap]",A="[object ArrayBuffer]",S="[object DataView]",C=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,T=/^\w*$/,P=/^\./,N=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,I=/\\(\\)?/g,k=/^\[object .+?Constructor\]$/,x=/^(?:0|[1-9]\d*)$/,R={};R["[object Float32Array]"]=R["[object Float64Array]"]=R["[object Int8Array]"]=R["[object Int16Array]"]=R["[object Int32Array]"]=R["[object Uint8Array]"]=R["[object Uint8ClampedArray]"]=R["[object Uint16Array]"]=R["[object Uint32Array]"]=!0,R[l]=R[c]=R[A]=R[u]=R[S]=R[f]=R[d]=R[_]=R[p]=R[g]=R[b]=R[y]=R[v]=R[w]=R[L]=!1;var B="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,O="object"==typeof self&&self&&self.Object===Object&&self,D=B||O||Function("return this")(),F=t&&!t.nodeType&&t,H=F&&e&&!e.nodeType&&e,M=H&&H.exports===F&&B.process,z=function(){try{return M&&M.binding("util")}catch(e){}}(),U=z&&z.isTypedArray;function j(e,t){for(var n=-1,r=e?e.length:0;++n<r;)if(!t(e[n],n,e))return!1;return!0}function Z(e,t){for(var n=-1,r=e?e.length:0;++n<r;)if(t(e[n],n,e))return!0;return!1}function W(e){var t=!1;if(null!=e&&"function"!=typeof e.toString)try{t=!!(e+"")}catch(e){}return t}function G(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}function Q(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}var X,Y,J,V=Array.prototype,q=Function.prototype,K=Object.prototype,$=D["__core-js_shared__"],ee=(X=/[^.]+$/.exec($&&$.keys&&$.keys.IE_PROTO||""))?"Symbol(src)_1."+X:"",te=q.toString,ne=K.hasOwnProperty,re=K.toString,se=RegExp("^"+te.call(ne).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),ae=D.Symbol,ie=D.Uint8Array,oe=K.propertyIsEnumerable,le=V.splice,ce=(Y=Object.keys,J=Object,function(e){return Y(J(e))}),ue=ze(D,"DataView"),fe=ze(D,"Map"),de=ze(D,"Promise"),_e=ze(D,"Set"),he=ze(D,"WeakMap"),pe=ze(Object,"create"),ge=Ye(ue),be=Ye(fe),me=Ye(de),ye=Ye(_e),ve=Ye(he),we=ae?ae.prototype:void 0,Ee=we?we.valueOf:void 0,Le=we?we.toString:void 0;function Ae(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function Se(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function Ce(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function Te(e){var t=-1,n=e?e.length:0;for(this.__data__=new Ce;++t<n;)this.add(e[t])}function Pe(e){this.__data__=new Se(e)}function Ne(e,t){for(var n=e.length;n--;)if(Ve(e[n][0],t))return n;return-1}Ae.prototype.clear=function(){this.__data__=pe?pe(null):{}},Ae.prototype.delete=function(e){return this.has(e)&&delete this.__data__[e]},Ae.prototype.get=function(e){var t=this.__data__;if(pe){var n=t[e];return n===r?void 0:n}return ne.call(t,e)?t[e]:void 0},Ae.prototype.has=function(e){var t=this.__data__;return pe?void 0!==t[e]:ne.call(t,e)},Ae.prototype.set=function(e,t){return this.__data__[e]=pe&&void 0===t?r:t,this},Se.prototype.clear=function(){this.__data__=[]},Se.prototype.delete=function(e){var t=this.__data__,n=Ne(t,e);return!(n<0||(n==t.length-1?t.pop():le.call(t,n,1),0))},Se.prototype.get=function(e){var t=this.__data__,n=Ne(t,e);return n<0?void 0:t[n][1]},Se.prototype.has=function(e){return Ne(this.__data__,e)>-1},Se.prototype.set=function(e,t){var n=this.__data__,r=Ne(n,e);return r<0?n.push([e,t]):n[r][1]=t,this},Ce.prototype.clear=function(){this.__data__={hash:new Ae,map:new(fe||Se),string:new Ae}},Ce.prototype.delete=function(e){return Me(this,e).delete(e)},Ce.prototype.get=function(e){return Me(this,e).get(e)},Ce.prototype.has=function(e){return Me(this,e).has(e)},Ce.prototype.set=function(e,t){return Me(this,e).set(e,t),this},Te.prototype.add=Te.prototype.push=function(e){return this.__data__.set(e,r),this},Te.prototype.has=function(e){return this.__data__.has(e)},Pe.prototype.clear=function(){this.__data__=new Se},Pe.prototype.delete=function(e){return this.__data__.delete(e)},Pe.prototype.get=function(e){return this.__data__.get(e)},Pe.prototype.has=function(e){return this.__data__.has(e)},Pe.prototype.set=function(e,t){var n=this.__data__;if(n instanceof Se){var r=n.__data__;if(!fe||r.length<199)return r.push([e,t]),this;n=this.__data__=new Ce(r)}return n.set(e,t),this};var Ie,ke=(Ie=function(e,t){return e&&Re(e,t,it)},function(e,t){if(null==e)return e;if(!$e(e))return Ie(e,t);for(var n=e.length,r=-1,s=Object(e);++r<n&&!1!==t(s[r],r,s););return e});function xe(e,t){var n=!0;return ke(e,(function(e,r,s){return n=!!t(e,r,s)})),n}var Re=function(e,t,n){for(var r=-1,s=Object(e),a=n(e),i=a.length;i--;){var o=a[++r];if(!1===t(s[o],o,s))break}return e};function Be(e,t){for(var n=0,r=(t=Ze(t,e)?[t]:Fe(t)).length;null!=e&&n<r;)e=e[Xe(t[n++])];return n&&n==r?e:void 0}function Oe(e,t){return null!=e&&t in Object(e)}function De(e,t,n,r,i){return e===t||(null==e||null==t||!nt(e)&&!rt(t)?e!=e&&t!=t:function(e,t,n,r,i,o){var _=Ke(e),h=Ke(t),m=c,L=c;_||(m=(m=Ue(e))==l?b:m),h||(L=(L=Ue(t))==l?b:L);var C=m==b&&!W(e),T=L==b&&!W(t),P=m==L;if(P&&!C)return o||(o=new Pe),_||at(e)?He(e,t,n,r,i,o):function(e,t,n,r,i,o,l){switch(n){case S:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case A:return!(e.byteLength!=t.byteLength||!r(new ie(e),new ie(t)));case u:case f:case g:return Ve(+e,+t);case d:return e.name==t.name&&e.message==t.message;case y:case w:return e==t+"";case p:var c=G;case v:var _=o&a;if(c||(c=Q),e.size!=t.size&&!_)return!1;var h=l.get(e);if(h)return h==t;o|=s,l.set(e,t);var b=He(c(e),c(t),r,i,o,l);return l.delete(e),b;case E:if(Ee)return Ee.call(e)==Ee.call(t)}return!1}(e,t,m,n,r,i,o);if(!(i&a)){var N=C&&ne.call(e,"__wrapped__"),I=T&&ne.call(t,"__wrapped__");if(N||I){var k=N?e.value():e,x=I?t.value():t;return o||(o=new Pe),n(k,x,r,i,o)}}return!!P&&(o||(o=new Pe),function(e,t,n,r,s,i){var o=s&a,l=it(e),c=l.length;if(c!=it(t).length&&!o)return!1;for(var u=c;u--;){var f=l[u];if(!(o?f in t:ne.call(t,f)))return!1}var d=i.get(e);if(d&&i.get(t))return d==t;var _=!0;i.set(e,t),i.set(t,e);for(var h=o;++u<c;){var p=e[f=l[u]],g=t[f];if(r)var b=o?r(g,p,f,t,e,i):r(p,g,f,e,t,i);if(!(void 0===b?p===g||n(p,g,r,s,i):b)){_=!1;break}h||(h="constructor"==f)}if(_&&!h){var m=e.constructor,y=t.constructor;m==y||!("constructor"in e)||!("constructor"in t)||"function"==typeof m&&m instanceof m&&"function"==typeof y&&y instanceof y||(_=!1)}return i.delete(e),i.delete(t),_}(e,t,n,r,i,o))}(e,t,De,n,r,i))}function Fe(e){return Ke(e)?e:Qe(e)}function He(e,t,n,r,i,o){var l=i&a,c=e.length,u=t.length;if(c!=u&&!(l&&u>c))return!1;var f=o.get(e);if(f&&o.get(t))return f==t;var d=-1,_=!0,h=i&s?new Te:void 0;for(o.set(e,t),o.set(t,e);++d<c;){var p=e[d],g=t[d];if(r)var b=l?r(g,p,d,t,e,o):r(p,g,d,e,t,o);if(void 0!==b){if(b)continue;_=!1;break}if(h){if(!Z(t,(function(e,t){if(!h.has(t)&&(p===e||n(p,e,r,i,o)))return h.add(t)}))){_=!1;break}}else if(p!==g&&!n(p,g,r,i,o)){_=!1;break}}return o.delete(e),o.delete(t),_}function Me(e,t){var n,r,s=e.__data__;return("string"==(r=typeof(n=t))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?s["string"==typeof t?"string":"hash"]:s.map}function ze(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return function(e){return!(!nt(e)||function(e){return!!ee&&ee in e}(e))&&(et(e)||W(e)?se:k).test(Ye(e))}(n)?n:void 0}var Ue=function(e){return re.call(e)};function je(e,t){return!!(t=null==t?o:t)&&("number"==typeof e||x.test(e))&&e>-1&&e%1==0&&e<t}function Ze(e,t){if(Ke(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!st(e))||T.test(e)||!C.test(e)||null!=t&&e in Object(t)}function We(e){return e==e&&!nt(e)}function Ge(e,t){return function(n){return null!=n&&n[e]===t&&(void 0!==t||e in Object(n))}}(ue&&Ue(new ue(new ArrayBuffer(1)))!=S||fe&&Ue(new fe)!=p||de&&Ue(de.resolve())!=m||_e&&Ue(new _e)!=v||he&&Ue(new he)!=L)&&(Ue=function(e){var t=re.call(e),n=t==b?e.constructor:void 0,r=n?Ye(n):void 0;if(r)switch(r){case ge:return S;case be:return p;case me:return m;case ye:return v;case ve:return L}return t});var Qe=Je((function(e){var t;e=null==(t=e)?"":function(e){if("string"==typeof e)return e;if(st(e))return Le?Le.call(e):"";var t=e+"";return"0"==t&&1/e==-i?"-0":t}(t);var n=[];return P.test(e)&&n.push(""),e.replace(N,(function(e,t,r,s){n.push(r?s.replace(I,"$1"):t||e)})),n}));function Xe(e){if("string"==typeof e||st(e))return e;var t=e+"";return"0"==t&&1/e==-i?"-0":t}function Ye(e){if(null!=e){try{return te.call(e)}catch(e){}try{return e+""}catch(e){}}return""}function Je(e,t){if("function"!=typeof e||t&&"function"!=typeof t)throw new TypeError("Expected a function");var n=function(){var r=arguments,s=t?t.apply(this,r):r[0],a=n.cache;if(a.has(s))return a.get(s);var i=e.apply(this,r);return n.cache=a.set(s,i),i};return n.cache=new(Je.Cache||Ce),n}function Ve(e,t){return e===t||e!=e&&t!=t}function qe(e){return function(e){return rt(e)&&$e(e)}(e)&&ne.call(e,"callee")&&(!oe.call(e,"callee")||re.call(e)==l)}Je.Cache=Ce;var Ke=Array.isArray;function $e(e){return null!=e&&tt(e.length)&&!et(e)}function et(e){var t=nt(e)?re.call(e):"";return t==_||t==h}function tt(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=o}function nt(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function rt(e){return!!e&&"object"==typeof e}function st(e){return"symbol"==typeof e||rt(e)&&re.call(e)==E}var at=U?function(e){return function(t){return e(t)}}(U):function(e){return rt(e)&&tt(e.length)&&!!R[re.call(e)]};function it(e){return $e(e)?function(e,t){var n=Ke(e)||qe(e)?function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}(e.length,String):[],r=n.length,s=!!r;for(var a in e)!t&&!ne.call(e,a)||s&&("length"==a||je(a,r))||n.push(a);return n}(e):function(e){if(n=(t=e)&&t.constructor,t!==("function"==typeof n&&n.prototype||K))return ce(e);var t,n,r=[];for(var s in Object(e))ne.call(e,s)&&"constructor"!=s&&r.push(s);return r}(e)}function ot(e){return e}e.exports=function(e,t,n){var r,i,o,l,c,u=Ke(e)?j:xe;return n&&function(e,t,n){if(!nt(n))return!1;var r=typeof t;return!!("number"==r?$e(n)&&je(t,n.length):"string"==r&&t in n)&&Ve(n[t],e)}(e,t,n)&&(t=void 0),u(e,"function"==typeof(r=t)?r:null==r?ot:"object"==typeof r?Ke(r)?function(e,t){return Ze(e)&&We(t)?Ge(Xe(e),t):function(n){var r=function(e,t,n){var r=null==e?void 0:Be(e,t);return void 0===r?void 0:r}(n,e);return void 0===r&&r===t?function(e,t){return null!=e&&function(e,t,n){for(var r,s=-1,a=(t=Ze(t,e)?[t]:Fe(t)).length;++s<a;){var i=Xe(t[s]);if(!(r=null!=e&&n(e,i)))break;e=e[i]}return r||!!(a=e?e.length:0)&&tt(a)&&je(i,a)&&(Ke(e)||qe(e))}(e,t,Oe)}(n,e):De(t,r,void 0,s|a)}}(r[0],r[1]):1==(o=function(e){for(var t=it(e),n=t.length;n--;){var r=t[n],s=e[r];t[n]=[r,s,We(s)]}return t}(i=r)).length&&o[0][2]?Ge(o[0][0],o[0][1]):function(e){return e===i||function(e,t,n,r){var i=n.length,o=i;if(null==e)return!o;for(e=Object(e);i--;){var l=n[i];if(l[2]?l[1]!==e[l[0]]:!(l[0]in e))return!1}for(;++i<o;){var c=(l=n[i])[0],u=e[c],f=l[1];if(l[2]){if(void 0===u&&!(c in e))return!1}else{var d,_=new Pe;if(!(void 0===d?De(f,u,r,s|a,_):d))return!1}}return!0}(e,0,o)}:Ze(l=r)?(c=Xe(l),function(e){return null==e?void 0:e[c]}):function(e){return function(t){return Be(t,e)}}(l))}},1328:(e,t,n)=>{e=n.nmd(e);var r="__lodash_hash_undefined__",s=1,a=2,i=1/0,o=9007199254740991,l="[object Arguments]",c="[object Array]",u="[object Boolean]",f="[object Date]",d="[object Error]",_="[object Function]",h="[object GeneratorFunction]",p="[object Map]",g="[object Number]",b="[object Object]",m="[object Promise]",y="[object RegExp]",v="[object Set]",w="[object String]",E="[object Symbol]",L="[object WeakMap]",A="[object ArrayBuffer]",S="[object DataView]",C=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,T=/^\w*$/,P=/^\./,N=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,I=/\\(\\)?/g,k=/^\[object .+?Constructor\]$/,x=/^(?:0|[1-9]\d*)$/,R={};R["[object Float32Array]"]=R["[object Float64Array]"]=R["[object Int8Array]"]=R["[object Int16Array]"]=R["[object Int32Array]"]=R["[object Uint8Array]"]=R["[object Uint8ClampedArray]"]=R["[object Uint16Array]"]=R["[object Uint32Array]"]=!0,R[l]=R[c]=R[A]=R[u]=R[S]=R[f]=R[d]=R[_]=R[p]=R[g]=R[b]=R[y]=R[v]=R[w]=R[L]=!1;var B="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,O="object"==typeof self&&self&&self.Object===Object&&self,D=B||O||Function("return this")(),F=t&&!t.nodeType&&t,H=F&&e&&!e.nodeType&&e,M=H&&H.exports===F&&B.process,z=function(){try{return M&&M.binding("util")}catch(e){}}(),U=z&&z.isTypedArray;function j(e,t){for(var n=-1,r=e?e.length:0;++n<r;)if(t(e[n],n,e))return!0;return!1}function Z(e){var t=!1;if(null!=e&&"function"!=typeof e.toString)try{t=!!(e+"")}catch(e){}return t}function W(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}function G(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}var Q,X,Y,J=Array.prototype,V=Function.prototype,q=Object.prototype,K=D["__core-js_shared__"],$=(Q=/[^.]+$/.exec(K&&K.keys&&K.keys.IE_PROTO||""))?"Symbol(src)_1."+Q:"",ee=V.toString,te=q.hasOwnProperty,ne=q.toString,re=RegExp("^"+ee.call(te).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),se=D.Symbol,ae=D.Uint8Array,ie=q.propertyIsEnumerable,oe=J.splice,le=(X=Object.keys,Y=Object,function(e){return X(Y(e))}),ce=Oe(D,"DataView"),ue=Oe(D,"Map"),fe=Oe(D,"Promise"),de=Oe(D,"Set"),_e=Oe(D,"WeakMap"),he=Oe(Object,"create"),pe=Ze(ce),ge=Ze(ue),be=Ze(fe),me=Ze(de),ye=Ze(_e),ve=se?se.prototype:void 0,we=ve?ve.valueOf:void 0,Ee=ve?ve.toString:void 0;function Le(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function Ae(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function Se(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function Ce(e){var t=-1,n=e?e.length:0;for(this.__data__=new Se;++t<n;)this.add(e[t])}function Te(e){this.__data__=new Ae(e)}function Pe(e,t){for(var n=e.length;n--;)if(Ge(e[n][0],t))return n;return-1}Le.prototype.clear=function(){this.__data__=he?he(null):{}},Le.prototype.delete=function(e){return this.has(e)&&delete this.__data__[e]},Le.prototype.get=function(e){var t=this.__data__;if(he){var n=t[e];return n===r?void 0:n}return te.call(t,e)?t[e]:void 0},Le.prototype.has=function(e){var t=this.__data__;return he?void 0!==t[e]:te.call(t,e)},Le.prototype.set=function(e,t){return this.__data__[e]=he&&void 0===t?r:t,this},Ae.prototype.clear=function(){this.__data__=[]},Ae.prototype.delete=function(e){var t=this.__data__,n=Pe(t,e);return!(n<0||(n==t.length-1?t.pop():oe.call(t,n,1),0))},Ae.prototype.get=function(e){var t=this.__data__,n=Pe(t,e);return n<0?void 0:t[n][1]},Ae.prototype.has=function(e){return Pe(this.__data__,e)>-1},Ae.prototype.set=function(e,t){var n=this.__data__,r=Pe(n,e);return r<0?n.push([e,t]):n[r][1]=t,this},Se.prototype.clear=function(){this.__data__={hash:new Le,map:new(ue||Ae),string:new Le}},Se.prototype.delete=function(e){return Be(this,e).delete(e)},Se.prototype.get=function(e){return Be(this,e).get(e)},Se.prototype.has=function(e){return Be(this,e).has(e)},Se.prototype.set=function(e,t){return Be(this,e).set(e,t),this},Ce.prototype.add=Ce.prototype.push=function(e){return this.__data__.set(e,r),this},Ce.prototype.has=function(e){return this.__data__.has(e)},Te.prototype.clear=function(){this.__data__=new Ae},Te.prototype.delete=function(e){return this.__data__.delete(e)},Te.prototype.get=function(e){return this.__data__.get(e)},Te.prototype.has=function(e){return this.__data__.has(e)},Te.prototype.set=function(e,t){var n=this.__data__;if(n instanceof Ae){var r=n.__data__;if(!ue||r.length<199)return r.push([e,t]),this;n=this.__data__=new Se(r)}return n.set(e,t),this};function Ne(e,t){for(var n=0,r=(t=He(t,e)?[t]:xe(t)).length;null!=e&&n<r;)e=e[je(t[n++])];return n&&n==r?e:void 0}function Ie(e,t){return null!=e&&t in Object(e)}function ke(e,t,n,r,i){return e===t||(null==e||null==t||!qe(e)&&!Ke(t)?e!=e&&t!=t:function(e,t,n,r,i,o){var _=Xe(e),h=Xe(t),m=c,L=c;_||(m=(m=De(e))==l?b:m),h||(L=(L=De(t))==l?b:L);var C=m==b&&!Z(e),T=L==b&&!Z(t),P=m==L;if(P&&!C)return o||(o=new Te),_||et(e)?Re(e,t,n,r,i,o):function(e,t,n,r,i,o,l){switch(n){case S:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case A:return!(e.byteLength!=t.byteLength||!r(new ae(e),new ae(t)));case u:case f:case g:return Ge(+e,+t);case d:return e.name==t.name&&e.message==t.message;case y:case w:return e==t+"";case p:var c=W;case v:var _=o&a;if(c||(c=G),e.size!=t.size&&!_)return!1;var h=l.get(e);if(h)return h==t;o|=s,l.set(e,t);var b=Re(c(e),c(t),r,i,o,l);return l.delete(e),b;case E:if(we)return we.call(e)==we.call(t)}return!1}(e,t,m,n,r,i,o);if(!(i&a)){var N=C&&te.call(e,"__wrapped__"),I=T&&te.call(t,"__wrapped__");if(N||I){var k=N?e.value():e,x=I?t.value():t;return o||(o=new Te),n(k,x,r,i,o)}}return!!P&&(o||(o=new Te),function(e,t,n,r,s,i){var o=s&a,l=tt(e),c=l.length;if(c!=tt(t).length&&!o)return!1;for(var u=c;u--;){var f=l[u];if(!(o?f in t:te.call(t,f)))return!1}var d=i.get(e);if(d&&i.get(t))return d==t;var _=!0;i.set(e,t),i.set(t,e);for(var h=o;++u<c;){var p=e[f=l[u]],g=t[f];if(r)var b=o?r(g,p,f,t,e,i):r(p,g,f,e,t,i);if(!(void 0===b?p===g||n(p,g,r,s,i):b)){_=!1;break}h||(h="constructor"==f)}if(_&&!h){var m=e.constructor,y=t.constructor;m==y||!("constructor"in e)||!("constructor"in t)||"function"==typeof m&&m instanceof m&&"function"==typeof y&&y instanceof y||(_=!1)}return i.delete(e),i.delete(t),_}(e,t,n,r,i,o))}(e,t,ke,n,r,i))}function xe(e){return Xe(e)?e:Ue(e)}function Re(e,t,n,r,i,o){var l=i&a,c=e.length,u=t.length;if(c!=u&&!(l&&u>c))return!1;var f=o.get(e);if(f&&o.get(t))return f==t;var d=-1,_=!0,h=i&s?new Ce:void 0;for(o.set(e,t),o.set(t,e);++d<c;){var p=e[d],g=t[d];if(r)var b=l?r(g,p,d,t,e,o):r(p,g,d,e,t,o);if(void 0!==b){if(b)continue;_=!1;break}if(h){if(!j(t,(function(e,t){if(!h.has(t)&&(p===e||n(p,e,r,i,o)))return h.add(t)}))){_=!1;break}}else if(p!==g&&!n(p,g,r,i,o)){_=!1;break}}return o.delete(e),o.delete(t),_}function Be(e,t){var n,r,s=e.__data__;return("string"==(r=typeof(n=t))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?s["string"==typeof t?"string":"hash"]:s.map}function Oe(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return function(e){return!(!qe(e)||function(e){return!!$&&$ in e}(e))&&(Je(e)||Z(e)?re:k).test(Ze(e))}(n)?n:void 0}var De=function(e){return ne.call(e)};function Fe(e,t){return!!(t=null==t?o:t)&&("number"==typeof e||x.test(e))&&e>-1&&e%1==0&&e<t}function He(e,t){if(Xe(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!$e(e))||T.test(e)||!C.test(e)||null!=t&&e in Object(t)}function Me(e){return e==e&&!qe(e)}function ze(e,t){return function(n){return null!=n&&n[e]===t&&(void 0!==t||e in Object(n))}}(ce&&De(new ce(new ArrayBuffer(1)))!=S||ue&&De(new ue)!=p||fe&&De(fe.resolve())!=m||de&&De(new de)!=v||_e&&De(new _e)!=L)&&(De=function(e){var t=ne.call(e),n=t==b?e.constructor:void 0,r=n?Ze(n):void 0;if(r)switch(r){case pe:return S;case ge:return p;case be:return m;case me:return v;case ye:return L}return t});var Ue=We((function(e){var t;e=null==(t=e)?"":function(e){if("string"==typeof e)return e;if($e(e))return Ee?Ee.call(e):"";var t=e+"";return"0"==t&&1/e==-i?"-0":t}(t);var n=[];return P.test(e)&&n.push(""),e.replace(N,(function(e,t,r,s){n.push(r?s.replace(I,"$1"):t||e)})),n}));function je(e){if("string"==typeof e||$e(e))return e;var t=e+"";return"0"==t&&1/e==-i?"-0":t}function Ze(e){if(null!=e){try{return ee.call(e)}catch(e){}try{return e+""}catch(e){}}return""}function We(e,t){if("function"!=typeof e||t&&"function"!=typeof t)throw new TypeError("Expected a function");var n=function(){var r=arguments,s=t?t.apply(this,r):r[0],a=n.cache;if(a.has(s))return a.get(s);var i=e.apply(this,r);return n.cache=a.set(s,i),i};return n.cache=new(We.Cache||Se),n}function Ge(e,t){return e===t||e!=e&&t!=t}function Qe(e){return function(e){return Ke(e)&&Ye(e)}(e)&&te.call(e,"callee")&&(!ie.call(e,"callee")||ne.call(e)==l)}We.Cache=Se;var Xe=Array.isArray;function Ye(e){return null!=e&&Ve(e.length)&&!Je(e)}function Je(e){var t=qe(e)?ne.call(e):"";return t==_||t==h}function Ve(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=o}function qe(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function Ke(e){return!!e&&"object"==typeof e}function $e(e){return"symbol"==typeof e||Ke(e)&&ne.call(e)==E}var et=U?function(e){return function(t){return e(t)}}(U):function(e){return Ke(e)&&Ve(e.length)&&!!R[ne.call(e)]};function tt(e){return Ye(e)?function(e,t){var n=Xe(e)||Qe(e)?function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}(e.length,String):[],r=n.length,s=!!r;for(var a in e)!t&&!te.call(e,a)||s&&("length"==a||Fe(a,r))||n.push(a);return n}(e):function(e){if(n=(t=e)&&t.constructor,t!==("function"==typeof n&&n.prototype||q))return le(e);var t,n,r=[];for(var s in Object(e))te.call(e,s)&&"constructor"!=s&&r.push(s);return r}(e)}function nt(e){return e}e.exports=function(e,t){var n,r,i,o,l,c={};return t="function"==typeof(n=t)?n:null==n?nt:"object"==typeof n?Xe(n)?function(e,t){return He(e)&&Me(t)?ze(je(e),t):function(n){var r=function(e,t,n){var r=null==e?void 0:Ne(e,t);return void 0===r?void 0:r}(n,e);return void 0===r&&r===t?function(e,t){return null!=e&&function(e,t,n){for(var r,s=-1,a=(t=He(t,e)?[t]:xe(t)).length;++s<a;){var i=je(t[s]);if(!(r=null!=e&&n(e,i)))break;e=e[i]}return r||!!(a=e?e.length:0)&&Ve(a)&&Fe(i,a)&&(Xe(e)||Qe(e))}(e,t,Ie)}(n,e):ke(t,r,void 0,s|a)}}(n[0],n[1]):(i=function(e){for(var t=tt(e),n=t.length;n--;){var r=t[n],s=e[r];t[n]=[r,s,Me(s)]}return t}(r=n),1==i.length&&i[0][2]?ze(i[0][0],i[0][1]):function(e){return e===r||function(e,t,n,r){var i=n.length,o=i;if(null==e)return!o;for(e=Object(e);i--;){var l=n[i];if(l[2]?l[1]!==e[l[0]]:!(l[0]in e))return!1}for(;++i<o;){var c=(l=n[i])[0],u=e[c],f=l[1];if(l[2]){if(void 0===u&&!(c in e))return!1}else{var d,_=new Te;if(!(void 0===d?ke(f,u,r,s|a,_):d))return!1}}return!0}(e,0,i)}):He(o=n)?(l=je(o),function(e){return null==e?void 0:e[l]}):function(e){return function(t){return Ne(t,e)}}(o),function(e,t){e&&function(e,t,n){for(var r=-1,s=Object(e),a=n(e),i=a.length;i--;){var o=a[++r];if(!1===t(s[o],o,s))break}}(e,t,tt)}(e,(function(e,n,r){c[n]=t(e,n,r)})),c}},107:(e,t,n)=>{e=n.nmd(e);var r="__lodash_hash_undefined__",s=1,a=2,i=1/0,o=9007199254740991,l="[object Arguments]",c="[object Array]",u="[object Boolean]",f="[object Date]",d="[object Error]",_="[object Function]",h="[object GeneratorFunction]",p="[object Map]",g="[object Number]",b="[object Object]",m="[object Promise]",y="[object RegExp]",v="[object Set]",w="[object String]",E="[object Symbol]",L="[object WeakMap]",A="[object ArrayBuffer]",S="[object DataView]",C=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,T=/^\w*$/,P=/^\./,N=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,I=/\\(\\)?/g,k=/^\[object .+?Constructor\]$/,x=/^(?:0|[1-9]\d*)$/,R={};R["[object Float32Array]"]=R["[object Float64Array]"]=R["[object Int8Array]"]=R["[object Int16Array]"]=R["[object Int32Array]"]=R["[object Uint8Array]"]=R["[object Uint8ClampedArray]"]=R["[object Uint16Array]"]=R["[object Uint32Array]"]=!0,R[l]=R[c]=R[A]=R[u]=R[S]=R[f]=R[d]=R[_]=R[p]=R[g]=R[b]=R[y]=R[v]=R[w]=R[L]=!1;var B="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,O="object"==typeof self&&self&&self.Object===Object&&self,D=B||O||Function("return this")(),F=t&&!t.nodeType&&t,H=F&&e&&!e.nodeType&&e,M=H&&H.exports===F&&B.process,z=function(){try{return M&&M.binding("util")}catch(e){}}(),U=z&&z.isTypedArray;function j(e,t,n,r){for(var s=-1,a=e?e.length:0;++s<a;){var i=e[s];t(r,i,n(i),e)}return r}function Z(e,t){for(var n=-1,r=e?e.length:0;++n<r;)if(t(e[n],n,e))return!0;return!1}function W(e){var t=!1;if(null!=e&&"function"!=typeof e.toString)try{t=!!(e+"")}catch(e){}return t}function G(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}function Q(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}var X,Y,J,V=Array.prototype,q=Function.prototype,K=Object.prototype,$=D["__core-js_shared__"],ee=(X=/[^.]+$/.exec($&&$.keys&&$.keys.IE_PROTO||""))?"Symbol(src)_1."+X:"",te=q.toString,ne=K.hasOwnProperty,re=K.toString,se=RegExp("^"+te.call(ne).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),ae=D.Symbol,ie=D.Uint8Array,oe=K.propertyIsEnumerable,le=V.splice,ce=(Y=Object.keys,J=Object,function(e){return Y(J(e))}),ue=ze(D,"DataView"),fe=ze(D,"Map"),de=ze(D,"Promise"),_e=ze(D,"Set"),he=ze(D,"WeakMap"),pe=ze(Object,"create"),ge=Ye(ue),be=Ye(fe),me=Ye(de),ye=Ye(_e),ve=Ye(he),we=ae?ae.prototype:void 0,Ee=we?we.valueOf:void 0,Le=we?we.toString:void 0;function Ae(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function Se(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function Ce(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function Te(e){var t=-1,n=e?e.length:0;for(this.__data__=new Ce;++t<n;)this.add(e[t])}function Pe(e){this.__data__=new Se(e)}function Ne(e,t){for(var n=e.length;n--;)if($e(e[n][0],t))return n;return-1}function Ie(e,t,n,r){return xe(e,(function(e,s,a){t(r,e,n(e),a)})),r}Ae.prototype.clear=function(){this.__data__=pe?pe(null):{}},Ae.prototype.delete=function(e){return this.has(e)&&delete this.__data__[e]},Ae.prototype.get=function(e){var t=this.__data__;if(pe){var n=t[e];return n===r?void 0:n}return ne.call(t,e)?t[e]:void 0},Ae.prototype.has=function(e){var t=this.__data__;return pe?void 0!==t[e]:ne.call(t,e)},Ae.prototype.set=function(e,t){return this.__data__[e]=pe&&void 0===t?r:t,this},Se.prototype.clear=function(){this.__data__=[]},Se.prototype.delete=function(e){var t=this.__data__,n=Ne(t,e);return!(n<0||(n==t.length-1?t.pop():le.call(t,n,1),0))},Se.prototype.get=function(e){var t=this.__data__,n=Ne(t,e);return n<0?void 0:t[n][1]},Se.prototype.has=function(e){return Ne(this.__data__,e)>-1},Se.prototype.set=function(e,t){var n=this.__data__,r=Ne(n,e);return r<0?n.push([e,t]):n[r][1]=t,this},Ce.prototype.clear=function(){this.__data__={hash:new Ae,map:new(fe||Se),string:new Ae}},Ce.prototype.delete=function(e){return Me(this,e).delete(e)},Ce.prototype.get=function(e){return Me(this,e).get(e)},Ce.prototype.has=function(e){return Me(this,e).has(e)},Ce.prototype.set=function(e,t){return Me(this,e).set(e,t),this},Te.prototype.add=Te.prototype.push=function(e){return this.__data__.set(e,r),this},Te.prototype.has=function(e){return this.__data__.has(e)},Pe.prototype.clear=function(){this.__data__=new Se},Pe.prototype.delete=function(e){return this.__data__.delete(e)},Pe.prototype.get=function(e){return this.__data__.get(e)},Pe.prototype.has=function(e){return this.__data__.has(e)},Pe.prototype.set=function(e,t){var n=this.__data__;if(n instanceof Se){var r=n.__data__;if(!fe||r.length<199)return r.push([e,t]),this;n=this.__data__=new Ce(r)}return n.set(e,t),this};var ke,xe=(ke=function(e,t){return e&&Re(e,t,ct)},function(e,t){if(null==e)return e;if(!nt(e))return ke(e,t);for(var n=e.length,r=-1,s=Object(e);++r<n&&!1!==t(s[r],r,s););return e}),Re=function(e,t,n){for(var r=-1,s=Object(e),a=n(e),i=a.length;i--;){var o=a[++r];if(!1===t(s[o],o,s))break}return e};function Be(e,t){for(var n=0,r=(t=Ze(t,e)?[t]:Fe(t)).length;null!=e&&n<r;)e=e[Xe(t[n++])];return n&&n==r?e:void 0}function Oe(e,t){return null!=e&&t in Object(e)}function De(e,t,n,r,i){return e===t||(null==e||null==t||!at(e)&&!it(t)?e!=e&&t!=t:function(e,t,n,r,i,o){var _=tt(e),h=tt(t),m=c,L=c;_||(m=(m=Ue(e))==l?b:m),h||(L=(L=Ue(t))==l?b:L);var C=m==b&&!W(e),T=L==b&&!W(t),P=m==L;if(P&&!C)return o||(o=new Pe),_||lt(e)?He(e,t,n,r,i,o):function(e,t,n,r,i,o,l){switch(n){case S:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case A:return!(e.byteLength!=t.byteLength||!r(new ie(e),new ie(t)));case u:case f:case g:return $e(+e,+t);case d:return e.name==t.name&&e.message==t.message;case y:case w:return e==t+"";case p:var c=G;case v:var _=o&a;if(c||(c=Q),e.size!=t.size&&!_)return!1;var h=l.get(e);if(h)return h==t;o|=s,l.set(e,t);var b=He(c(e),c(t),r,i,o,l);return l.delete(e),b;case E:if(Ee)return Ee.call(e)==Ee.call(t)}return!1}(e,t,m,n,r,i,o);if(!(i&a)){var N=C&&ne.call(e,"__wrapped__"),I=T&&ne.call(t,"__wrapped__");if(N||I){var k=N?e.value():e,x=I?t.value():t;return o||(o=new Pe),n(k,x,r,i,o)}}return!!P&&(o||(o=new Pe),function(e,t,n,r,s,i){var o=s&a,l=ct(e),c=l.length;if(c!=ct(t).length&&!o)return!1;for(var u=c;u--;){var f=l[u];if(!(o?f in t:ne.call(t,f)))return!1}var d=i.get(e);if(d&&i.get(t))return d==t;var _=!0;i.set(e,t),i.set(t,e);for(var h=o;++u<c;){var p=e[f=l[u]],g=t[f];if(r)var b=o?r(g,p,f,t,e,i):r(p,g,f,e,t,i);if(!(void 0===b?p===g||n(p,g,r,s,i):b)){_=!1;break}h||(h="constructor"==f)}if(_&&!h){var m=e.constructor,y=t.constructor;m==y||!("constructor"in e)||!("constructor"in t)||"function"==typeof m&&m instanceof m&&"function"==typeof y&&y instanceof y||(_=!1)}return i.delete(e),i.delete(t),_}(e,t,n,r,i,o))}(e,t,De,n,r,i))}function Fe(e){return tt(e)?e:Qe(e)}function He(e,t,n,r,i,o){var l=i&a,c=e.length,u=t.length;if(c!=u&&!(l&&u>c))return!1;var f=o.get(e);if(f&&o.get(t))return f==t;var d=-1,_=!0,h=i&s?new Te:void 0;for(o.set(e,t),o.set(t,e);++d<c;){var p=e[d],g=t[d];if(r)var b=l?r(g,p,d,t,e,o):r(p,g,d,e,t,o);if(void 0!==b){if(b)continue;_=!1;break}if(h){if(!Z(t,(function(e,t){if(!h.has(t)&&(p===e||n(p,e,r,i,o)))return h.add(t)}))){_=!1;break}}else if(p!==g&&!n(p,g,r,i,o)){_=!1;break}}return o.delete(e),o.delete(t),_}function Me(e,t){var n,r,s=e.__data__;return("string"==(r=typeof(n=t))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?s["string"==typeof t?"string":"hash"]:s.map}function ze(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return function(e){return!(!at(e)||function(e){return!!ee&&ee in e}(e))&&(rt(e)||W(e)?se:k).test(Ye(e))}(n)?n:void 0}var Ue=function(e){return re.call(e)};function je(e,t){return!!(t=null==t?o:t)&&("number"==typeof e||x.test(e))&&e>-1&&e%1==0&&e<t}function Ze(e,t){if(tt(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!ot(e))||T.test(e)||!C.test(e)||null!=t&&e in Object(t)}function We(e){return e==e&&!at(e)}function Ge(e,t){return function(n){return null!=n&&n[e]===t&&(void 0!==t||e in Object(n))}}(ue&&Ue(new ue(new ArrayBuffer(1)))!=S||fe&&Ue(new fe)!=p||de&&Ue(de.resolve())!=m||_e&&Ue(new _e)!=v||he&&Ue(new he)!=L)&&(Ue=function(e){var t=re.call(e),n=t==b?e.constructor:void 0,r=n?Ye(n):void 0;if(r)switch(r){case ge:return S;case be:return p;case me:return m;case ye:return v;case ve:return L}return t});var Qe=Ke((function(e){var t;e=null==(t=e)?"":function(e){if("string"==typeof e)return e;if(ot(e))return Le?Le.call(e):"";var t=e+"";return"0"==t&&1/e==-i?"-0":t}(t);var n=[];return P.test(e)&&n.push(""),e.replace(N,(function(e,t,r,s){n.push(r?s.replace(I,"$1"):t||e)})),n}));function Xe(e){if("string"==typeof e||ot(e))return e;var t=e+"";return"0"==t&&1/e==-i?"-0":t}function Ye(e){if(null!=e){try{return te.call(e)}catch(e){}try{return e+""}catch(e){}}return""}var Je,Ve,qe=(Je=function(e,t,n){e[n?0:1].push(t)},Ve=function(){return[[],[]]},function(e,t){var n,r,i,o,l,c=tt(e)?j:Ie,u=Ve?[[],[]]:{};return c(e,Je,"function"==typeof(n=t)?n:null==n?ut:"object"==typeof n?tt(n)?function(e,t){return Ze(e)&&We(t)?Ge(Xe(e),t):function(n){var r=function(e,t,n){var r=null==e?void 0:Be(e,t);return void 0===r?void 0:r}(n,e);return void 0===r&&r===t?function(e,t){return null!=e&&function(e,t,n){for(var r,s=-1,a=(t=Ze(t,e)?[t]:Fe(t)).length;++s<a;){var i=Xe(t[s]);if(!(r=null!=e&&n(e,i)))break;e=e[i]}return r||!!(a=e?e.length:0)&&st(a)&&je(i,a)&&(tt(e)||et(e))}(e,t,Oe)}(n,e):De(t,r,void 0,s|a)}}(n[0],n[1]):1==(i=function(e){for(var t=ct(e),n=t.length;n--;){var r=t[n],s=e[r];t[n]=[r,s,We(s)]}return t}(r=n)).length&&i[0][2]?Ge(i[0][0],i[0][1]):function(e){return e===r||function(e,t,n,r){var i=n.length,o=i;if(null==e)return!o;for(e=Object(e);i--;){var l=n[i];if(l[2]?l[1]!==e[l[0]]:!(l[0]in e))return!1}for(;++i<o;){var c=(l=n[i])[0],u=e[c],f=l[1];if(l[2]){if(void 0===u&&!(c in e))return!1}else{var d,_=new Pe;if(!(void 0===d?De(f,u,r,s|a,_):d))return!1}}return!0}(e,0,i)}:Ze(o=n)?(l=Xe(o),function(e){return null==e?void 0:e[l]}):function(e){return function(t){return Be(t,e)}}(o),u)});function Ke(e,t){if("function"!=typeof e||t&&"function"!=typeof t)throw new TypeError("Expected a function");var n=function(){var r=arguments,s=t?t.apply(this,r):r[0],a=n.cache;if(a.has(s))return a.get(s);var i=e.apply(this,r);return n.cache=a.set(s,i),i};return n.cache=new(Ke.Cache||Ce),n}function $e(e,t){return e===t||e!=e&&t!=t}function et(e){return function(e){return it(e)&&nt(e)}(e)&&ne.call(e,"callee")&&(!oe.call(e,"callee")||re.call(e)==l)}Ke.Cache=Ce;var tt=Array.isArray;function nt(e){return null!=e&&st(e.length)&&!rt(e)}function rt(e){var t=at(e)?re.call(e):"";return t==_||t==h}function st(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=o}function at(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function it(e){return!!e&&"object"==typeof e}function ot(e){return"symbol"==typeof e||it(e)&&re.call(e)==E}var lt=U?function(e){return function(t){return e(t)}}(U):function(e){return it(e)&&st(e.length)&&!!R[re.call(e)]};function ct(e){return nt(e)?function(e,t){var n=tt(e)||et(e)?function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}(e.length,String):[],r=n.length,s=!!r;for(var a in e)!t&&!ne.call(e,a)||s&&("length"==a||je(a,r))||n.push(a);return n}(e):function(e){if(n=(t=e)&&t.constructor,t!==("function"==typeof n&&n.prototype||K))return ce(e);var t,n,r=[];for(var s in Object(e))ne.call(e,s)&&"constructor"!=s&&r.push(s);return r}(e)}function ut(e){return e}e.exports=qe},3545:e=>{var t=1/0,n=4294967295,r=/^\s+|\s+$/g,s=/^[-+]0x[0-9a-f]+$/i,a=/^0b[01]+$/i,i=/^0o[0-7]+$/i,o=parseInt,l=Object.prototype.toString,c=Math.min;function u(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function f(e){return e}e.exports=function(e,d){if((e=function(e){var n=function(e){return e?(e=function(e){if("number"==typeof e)return e;if(function(e){return"symbol"==typeof e||function(e){return!!e&&"object"==typeof e}(e)&&"[object Symbol]"==l.call(e)}(e))return NaN;if(u(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=u(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(r,"");var n=a.test(e);return n||i.test(e)?o(e.slice(2),n?2:8):s.test(e)?NaN:+e}(e))===t||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0}(e),c=n%1;return n==n?c?n-c:n:0}(e))<1||e>9007199254740991)return[];var _=n,h=c(e,n);e-=n;for(var p=function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}(h,d="function"==typeof d?d:f);++_<e;)d(_);return p}},9500:(e,t,n)=>{var r=n(87),s=n(6883),a=n(7172).Buffer,i=new Array(16);function o(){s.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}function l(e,t){return e<<t|e>>>32-t}function c(e,t,n,r,s,a,i){return l(e+(t&n|~t&r)+s+a|0,i)+t|0}function u(e,t,n,r,s,a,i){return l(e+(t&r|n&~r)+s+a|0,i)+t|0}function f(e,t,n,r,s,a,i){return l(e+(t^n^r)+s+a|0,i)+t|0}function d(e,t,n,r,s,a,i){return l(e+(n^(t|~r))+s+a|0,i)+t|0}r(o,s),o.prototype._update=function(){for(var e=i,t=0;t<16;++t)e[t]=this._block.readInt32LE(4*t);var n=this._a,r=this._b,s=this._c,a=this._d;n=c(n,r,s,a,e[0],3614090360,7),a=c(a,n,r,s,e[1],3905402710,12),s=c(s,a,n,r,e[2],606105819,17),r=c(r,s,a,n,e[3],3250441966,22),n=c(n,r,s,a,e[4],4118548399,7),a=c(a,n,r,s,e[5],1200080426,12),s=c(s,a,n,r,e[6],2821735955,17),r=c(r,s,a,n,e[7],4249261313,22),n=c(n,r,s,a,e[8],1770035416,7),a=c(a,n,r,s,e[9],2336552879,12),s=c(s,a,n,r,e[10],4294925233,17),r=c(r,s,a,n,e[11],2304563134,22),n=c(n,r,s,a,e[12],1804603682,7),a=c(a,n,r,s,e[13],4254626195,12),s=c(s,a,n,r,e[14],2792965006,17),n=u(n,r=c(r,s,a,n,e[15],1236535329,22),s,a,e[1],4129170786,5),a=u(a,n,r,s,e[6],3225465664,9),s=u(s,a,n,r,e[11],643717713,14),r=u(r,s,a,n,e[0],3921069994,20),n=u(n,r,s,a,e[5],3593408605,5),a=u(a,n,r,s,e[10],38016083,9),s=u(s,a,n,r,e[15],3634488961,14),r=u(r,s,a,n,e[4],3889429448,20),n=u(n,r,s,a,e[9],568446438,5),a=u(a,n,r,s,e[14],3275163606,9),s=u(s,a,n,r,e[3],4107603335,14),r=u(r,s,a,n,e[8],1163531501,20),n=u(n,r,s,a,e[13],2850285829,5),a=u(a,n,r,s,e[2],4243563512,9),s=u(s,a,n,r,e[7],1735328473,14),n=f(n,r=u(r,s,a,n,e[12],2368359562,20),s,a,e[5],4294588738,4),a=f(a,n,r,s,e[8],2272392833,11),s=f(s,a,n,r,e[11],1839030562,16),r=f(r,s,a,n,e[14],4259657740,23),n=f(n,r,s,a,e[1],2763975236,4),a=f(a,n,r,s,e[4],1272893353,11),s=f(s,a,n,r,e[7],4139469664,16),r=f(r,s,a,n,e[10],3200236656,23),n=f(n,r,s,a,e[13],681279174,4),a=f(a,n,r,s,e[0],3936430074,11),s=f(s,a,n,r,e[3],3572445317,16),r=f(r,s,a,n,e[6],76029189,23),n=f(n,r,s,a,e[9],3654602809,4),a=f(a,n,r,s,e[12],3873151461,11),s=f(s,a,n,r,e[15],530742520,16),n=d(n,r=f(r,s,a,n,e[2],3299628645,23),s,a,e[0],4096336452,6),a=d(a,n,r,s,e[7],1126891415,10),s=d(s,a,n,r,e[14],2878612391,15),r=d(r,s,a,n,e[5],4237533241,21),n=d(n,r,s,a,e[12],1700485571,6),a=d(a,n,r,s,e[3],2399980690,10),s=d(s,a,n,r,e[10],4293915773,15),r=d(r,s,a,n,e[1],2240044497,21),n=d(n,r,s,a,e[8],1873313359,6),a=d(a,n,r,s,e[15],4264355552,10),s=d(s,a,n,r,e[6],2734768916,15),r=d(r,s,a,n,e[13],1309151649,21),n=d(n,r,s,a,e[4],4149444226,6),a=d(a,n,r,s,e[11],3174756917,10),s=d(s,a,n,r,e[2],718787259,15),r=d(r,s,a,n,e[9],3951481745,21),this._a=this._a+n|0,this._b=this._b+r|0,this._c=this._c+s|0,this._d=this._d+a|0},o.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var e=a.allocUnsafe(16);return e.writeInt32LE(this._a,0),e.writeInt32LE(this._b,4),e.writeInt32LE(this._c,8),e.writeInt32LE(this._d,12),e},e.exports=o},7859:e=>{function t(e,t){if(!e)throw new Error(t||"Assertion failed")}e.exports=t,t.equal=function(e,t,n){if(e!=t)throw new Error(n||"Assertion failed: "+e+" != "+t)}},6938:e=>{var t={};function n(e,n,r){r||(r=Error);var s=function(e){var t,r;function s(t,r,s){return e.call(this,function(e,t,r){return"string"==typeof n?n:n(e,t,r)}(t,r,s))||this}return r=e,(t=s).prototype=Object.create(r.prototype),t.prototype.constructor=t,t.__proto__=r,s}(r);s.prototype.name=r.name,s.prototype.code=e,t[e]=s}function r(e,t){if(Array.isArray(e)){var n=e.length;return e=e.map((function(e){return String(e)})),n>2?"one of ".concat(t," ").concat(e.slice(0,n-1).join(", "),", or ")+e[n-1]:2===n?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}return"of ".concat(t," ").concat(String(e))}n("ERR_INVALID_OPT_VALUE",(function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'}),TypeError),n("ERR_INVALID_ARG_TYPE",(function(e,t,n){var s,a,i,o,l;if("string"==typeof t&&(a="not ",t.substr(0,4)===a)?(s="must not be",t=t.replace(/^not /,"")):s="must be",function(e,t,n){return(void 0===n||n>e.length)&&(n=e.length),e.substring(n-9,n)===t}(e," argument"))i="The ".concat(e," ").concat(s," ").concat(r(t,"type"));else{var c=("number"!=typeof l&&(l=0),l+1>(o=e).length||-1===o.indexOf(".",l)?"argument":"property");i='The "'.concat(e,'" ').concat(c," ").concat(s," ").concat(r(t,"type"))}return i+". Received type ".concat(typeof n)}),TypeError),n("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),n("ERR_METHOD_NOT_IMPLEMENTED",(function(e){return"The "+e+" method is not implemented"})),n("ERR_STREAM_PREMATURE_CLOSE","Premature close"),n("ERR_STREAM_DESTROYED",(function(e){return"Cannot call "+e+" after a stream was destroyed"})),n("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),n("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),n("ERR_STREAM_WRITE_AFTER_END","write after end"),n("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),n("ERR_UNKNOWN_ENCODING",(function(e){return"Unknown encoding: "+e}),TypeError),n("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),e.exports.q=t},4439:(e,t,n)=>{var r=Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t};e.exports=c;var s=n(5327),a=n(4567);n(87)(c,s);for(var i=r(a.prototype),o=0;o<i.length;o++){var l=i[o];c.prototype[l]||(c.prototype[l]=a.prototype[l])}function c(e){if(!(this instanceof c))return new c(e);s.call(this,e),a.call(this,e),this.allowHalfOpen=!0,e&&(!1===e.readable&&(this.readable=!1),!1===e.writable&&(this.writable=!1),!1===e.allowHalfOpen&&(this.allowHalfOpen=!1,this.once("end",u)))}function u(){this._writableState.ended||process.nextTick(f,this)}function f(e){e.end()}Object.defineProperty(c.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(c.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(c.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(c.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._readableState&&void 0!==this._writableState&&this._readableState.destroyed&&this._writableState.destroyed},set:function(e){void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed=e,this._writableState.destroyed=e)}})},3754:(e,t,n)=>{e.exports=s;var r=n(2175);function s(e){if(!(this instanceof s))return new s(e);r.call(this,e)}n(87)(s,r),s.prototype._transform=function(e,t,n){n(null,e)}},5327:(e,t,n)=>{var r;e.exports=A,A.ReadableState=L,n(343).EventEmitter;var s,a=function(e,t){return e.listeners(t).length},i=n(6052),o=n(816).Buffer,l=(void 0!==n.g?n.g:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{}).Uint8Array||function(){},c=n(1632);s=c&&c.debuglog?c.debuglog("stream"):function(){};var u,f,d,_=n(7712),h=n(7640),p=n(5985).getHighWaterMark,g=n(6938).q,b=g.ERR_INVALID_ARG_TYPE,m=g.ERR_STREAM_PUSH_AFTER_EOF,y=g.ERR_METHOD_NOT_IMPLEMENTED,v=g.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;n(87)(A,i);var w=h.errorOrDestroy,E=["error","close","destroy","pause","resume"];function L(e,t,s){r=r||n(4439),e=e||{},"boolean"!=typeof s&&(s=t instanceof r),this.objectMode=!!e.objectMode,s&&(this.objectMode=this.objectMode||!!e.readableObjectMode),this.highWaterMark=p(this,e,"readableHighWaterMark",s),this.buffer=new _,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=!1!==e.emitClose,this.autoDestroy=!!e.autoDestroy,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(u||(u=n(4361).s),this.decoder=new u(e.encoding),this.encoding=e.encoding)}function A(e){if(r=r||n(4439),!(this instanceof A))return new A(e);var t=this instanceof r;this._readableState=new L(e,this,t),this.readable=!0,e&&("function"==typeof e.read&&(this._read=e.read),"function"==typeof e.destroy&&(this._destroy=e.destroy)),i.call(this)}function S(e,t,n,r,a){s("readableAddChunk",t);var i,c=e._readableState;if(null===t)c.reading=!1,function(e,t){if(s("onEofChunk"),!t.ended){if(t.decoder){var n=t.decoder.end();n&&n.length&&(t.buffer.push(n),t.length+=t.objectMode?1:n.length)}t.ended=!0,t.sync?N(e):(t.needReadable=!1,t.emittedReadable||(t.emittedReadable=!0,I(e)))}}(e,c);else if(a||(i=function(e,t){var n,r;return r=t,o.isBuffer(r)||r instanceof l||"string"==typeof t||void 0===t||e.objectMode||(n=new b("chunk",["string","Buffer","Uint8Array"],t)),n}(c,t)),i)w(e,i);else if(c.objectMode||t&&t.length>0)if("string"==typeof t||c.objectMode||Object.getPrototypeOf(t)===o.prototype||(t=function(e){return o.from(e)}(t)),r)c.endEmitted?w(e,new v):C(e,c,t,!0);else if(c.ended)w(e,new m);else{if(c.destroyed)return!1;c.reading=!1,c.decoder&&!n?(t=c.decoder.write(t),c.objectMode||0!==t.length?C(e,c,t,!1):k(e,c)):C(e,c,t,!1)}else r||(c.reading=!1,k(e,c));return!c.ended&&(c.length<c.highWaterMark||0===c.length)}function C(e,t,n,r){t.flowing&&0===t.length&&!t.sync?(t.awaitDrain=0,e.emit("data",n)):(t.length+=t.objectMode?1:n.length,r?t.buffer.unshift(n):t.buffer.push(n),t.needReadable&&N(e)),k(e,t)}Object.defineProperty(A.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._readableState&&this._readableState.destroyed},set:function(e){this._readableState&&(this._readableState.destroyed=e)}}),A.prototype.destroy=h.destroy,A.prototype._undestroy=h.undestroy,A.prototype._destroy=function(e,t){t(e)},A.prototype.push=function(e,t){var n,r=this._readableState;return r.objectMode?n=!0:"string"==typeof e&&((t=t||r.defaultEncoding)!==r.encoding&&(e=o.from(e,t),t=""),n=!0),S(this,e,t,!1,n)},A.prototype.unshift=function(e){return S(this,e,null,!0,!1)},A.prototype.isPaused=function(){return!1===this._readableState.flowing},A.prototype.setEncoding=function(e){u||(u=n(4361).s);var t=new u(e);this._readableState.decoder=t,this._readableState.encoding=this._readableState.decoder.encoding;for(var r=this._readableState.buffer.head,s="";null!==r;)s+=t.write(r.data),r=r.next;return this._readableState.buffer.clear(),""!==s&&this._readableState.buffer.push(s),this._readableState.length=s.length,this};var T=1073741824;function P(e,t){return e<=0||0===t.length&&t.ended?0:t.objectMode?1:e!=e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=function(e){return e>=T?e=T:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function N(e){var t=e._readableState;s("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(s("emitReadable",t.flowing),t.emittedReadable=!0,process.nextTick(I,e))}function I(e){var t=e._readableState;s("emitReadable_",t.destroyed,t.length,t.ended),t.destroyed||!t.length&&!t.ended||(e.emit("readable"),t.emittedReadable=!1),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,D(e)}function k(e,t){t.readingMore||(t.readingMore=!0,process.nextTick(x,e,t))}function x(e,t){for(;!t.reading&&!t.ended&&(t.length<t.highWaterMark||t.flowing&&0===t.length);){var n=t.length;if(s("maybeReadMore read 0"),e.read(0),n===t.length)break}t.readingMore=!1}function R(e){var t=e._readableState;t.readableListening=e.listenerCount("readable")>0,t.resumeScheduled&&!t.paused?t.flowing=!0:e.listenerCount("data")>0&&e.resume()}function B(e){s("readable nexttick read 0"),e.read(0)}function O(e,t){s("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),D(e),t.flowing&&!t.reading&&e.read(0)}function D(e){var t=e._readableState;for(s("flow",t.flowing);t.flowing&&null!==e.read(););}function F(e,t){return 0===t.length?null:(t.objectMode?n=t.buffer.shift():!e||e>=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.first():t.buffer.concat(t.length),t.buffer.clear()):n=t.buffer.consume(e,t.decoder),n);var n}function H(e){var t=e._readableState;s("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,process.nextTick(M,t,e))}function M(e,t){if(s("endReadableNT",e.endEmitted,e.length),!e.endEmitted&&0===e.length&&(e.endEmitted=!0,t.readable=!1,t.emit("end"),e.autoDestroy)){var n=t._writableState;(!n||n.autoDestroy&&n.finished)&&t.destroy()}}function z(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1}A.prototype.read=function(e){s("read",e),e=parseInt(e,10);var t=this._readableState,n=e;if(0!==e&&(t.emittedReadable=!1),0===e&&t.needReadable&&((0!==t.highWaterMark?t.length>=t.highWaterMark:t.length>0)||t.ended))return s("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?H(this):N(this),null;if(0===(e=P(e,t))&&t.ended)return 0===t.length&&H(this),null;var r,a=t.needReadable;return s("need readable",a),(0===t.length||t.length-e<t.highWaterMark)&&s("length less than watermark",a=!0),t.ended||t.reading?s("reading or ended",a=!1):a&&(s("do read"),t.reading=!0,t.sync=!0,0===t.length&&(t.needReadable=!0),this._read(t.highWaterMark),t.sync=!1,t.reading||(e=P(n,t))),null===(r=e>0?F(e,t):null)?(t.needReadable=t.length<=t.highWaterMark,e=0):(t.length-=e,t.awaitDrain=0),0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&H(this)),null!==r&&this.emit("data",r),r},A.prototype._read=function(e){w(this,new y("_read()"))},A.prototype.pipe=function(e,t){var n=this,r=this._readableState;switch(r.pipesCount){case 0:r.pipes=e;break;case 1:r.pipes=[r.pipes,e];break;default:r.pipes.push(e)}r.pipesCount+=1,s("pipe count=%d opts=%j",r.pipesCount,t);var i=t&&!1===t.end||e===process.stdout||e===process.stderr?h:o;function o(){s("onend"),e.end()}r.endEmitted?process.nextTick(i):n.once("end",i),e.on("unpipe",(function t(a,i){s("onunpipe"),a===n&&i&&!1===i.hasUnpiped&&(i.hasUnpiped=!0,s("cleanup"),e.removeListener("close",d),e.removeListener("finish",_),e.removeListener("drain",l),e.removeListener("error",f),e.removeListener("unpipe",t),n.removeListener("end",o),n.removeListener("end",h),n.removeListener("data",u),c=!0,!r.awaitDrain||e._writableState&&!e._writableState.needDrain||l())}));var l=function(e){return function(){var t=e._readableState;s("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&a(e,"data")&&(t.flowing=!0,D(e))}}(n);e.on("drain",l);var c=!1;function u(t){s("ondata");var a=e.write(t);s("dest.write",a),!1===a&&((1===r.pipesCount&&r.pipes===e||r.pipesCount>1&&-1!==z(r.pipes,e))&&!c&&(s("false write response, pause",r.awaitDrain),r.awaitDrain++),n.pause())}function f(t){s("onerror",t),h(),e.removeListener("error",f),0===a(e,"error")&&w(e,t)}function d(){e.removeListener("finish",_),h()}function _(){s("onfinish"),e.removeListener("close",d),h()}function h(){s("unpipe"),n.unpipe(e)}return n.on("data",u),function(e,t,n){if("function"==typeof e.prependListener)return e.prependListener(t,n);e._events&&e._events[t]?Array.isArray(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]:e.on(t,n)}(e,"error",f),e.once("close",d),e.once("finish",_),e.emit("pipe",n),r.flowing||(s("pipe resume"),n.resume()),e},A.prototype.unpipe=function(e){var t=this._readableState,n={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,n)),this;if(!e){var r=t.pipes,s=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var a=0;a<s;a++)r[a].emit("unpipe",this,{hasUnpiped:!1});return this}var i=z(t.pipes,e);return-1===i||(t.pipes.splice(i,1),t.pipesCount-=1,1===t.pipesCount&&(t.pipes=t.pipes[0]),e.emit("unpipe",this,n)),this},A.prototype.on=function(e,t){var n=i.prototype.on.call(this,e,t),r=this._readableState;return"data"===e?(r.readableListening=this.listenerCount("readable")>0,!1!==r.flowing&&this.resume()):"readable"===e&&(r.endEmitted||r.readableListening||(r.readableListening=r.needReadable=!0,r.flowing=!1,r.emittedReadable=!1,s("on readable",r.length,r.reading),r.length?N(this):r.reading||process.nextTick(B,this))),n},A.prototype.addListener=A.prototype.on,A.prototype.removeListener=function(e,t){var n=i.prototype.removeListener.call(this,e,t);return"readable"===e&&process.nextTick(R,this),n},A.prototype.removeAllListeners=function(e){var t=i.prototype.removeAllListeners.apply(this,arguments);return"readable"!==e&&void 0!==e||process.nextTick(R,this),t},A.prototype.resume=function(){var e=this._readableState;return e.flowing||(s("resume"),e.flowing=!e.readableListening,function(e,t){t.resumeScheduled||(t.resumeScheduled=!0,process.nextTick(O,e,t))}(this,e)),e.paused=!1,this},A.prototype.pause=function(){return s("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(s("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},A.prototype.wrap=function(e){var t=this,n=this._readableState,r=!1;for(var a in e.on("end",(function(){if(s("wrapped end"),n.decoder&&!n.ended){var e=n.decoder.end();e&&e.length&&t.push(e)}t.push(null)})),e.on("data",(function(a){s("wrapped data"),n.decoder&&(a=n.decoder.write(a)),n.objectMode&&null==a||(n.objectMode||a&&a.length)&&(t.push(a)||(r=!0,e.pause()))})),e)void 0===this[a]&&"function"==typeof e[a]&&(this[a]=function(t){return function(){return e[t].apply(e,arguments)}}(a));for(var i=0;i<E.length;i++)e.on(E[i],this.emit.bind(this,E[i]));return this._read=function(t){s("wrapped _read",t),r&&(r=!1,e.resume())},this},"function"==typeof Symbol&&(A.prototype[Symbol.asyncIterator]=function(){return void 0===f&&(f=n(4157)),f(this)}),Object.defineProperty(A.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),Object.defineProperty(A.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}}),Object.defineProperty(A.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(e){this._readableState&&(this._readableState.flowing=e)}}),A._fromList=F,Object.defineProperty(A.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}}),"function"==typeof Symbol&&(A.from=function(e,t){return void 0===d&&(d=n(5800)),d(A,e,t)})},2175:(e,t,n)=>{e.exports=u;var r=n(6938).q,s=r.ERR_METHOD_NOT_IMPLEMENTED,a=r.ERR_MULTIPLE_CALLBACK,i=r.ERR_TRANSFORM_ALREADY_TRANSFORMING,o=r.ERR_TRANSFORM_WITH_LENGTH_0,l=n(4439);function c(e,t){var n=this._transformState;n.transforming=!1;var r=n.writecb;if(null===r)return this.emit("error",new a);n.writechunk=null,n.writecb=null,null!=t&&this.push(t),r(e);var s=this._readableState;s.reading=!1,(s.needReadable||s.length<s.highWaterMark)&&this._read(s.highWaterMark)}function u(e){if(!(this instanceof u))return new u(e);l.call(this,e),this._transformState={afterTransform:c.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,e&&("function"==typeof e.transform&&(this._transform=e.transform),"function"==typeof e.flush&&(this._flush=e.flush)),this.on("prefinish",f)}function f(){var e=this;"function"!=typeof this._flush||this._readableState.destroyed?d(this,null,null):this._flush((function(t,n){d(e,t,n)}))}function d(e,t,n){if(t)return e.emit("error",t);if(null!=n&&e.push(n),e._writableState.length)throw new o;if(e._transformState.transforming)throw new i;return e.push(null)}n(87)(u,l),u.prototype.push=function(e,t){return this._transformState.needTransform=!1,l.prototype.push.call(this,e,t)},u.prototype._transform=function(e,t,n){n(new s("_transform()"))},u.prototype._write=function(e,t,n){var r=this._transformState;if(r.writecb=n,r.writechunk=e,r.writeencoding=t,!r.transforming){var s=this._readableState;(r.needTransform||s.needReadable||s.length<s.highWaterMark)&&this._read(s.highWaterMark)}},u.prototype._read=function(e){var t=this._transformState;null===t.writechunk||t.transforming?t.needTransform=!0:(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform))},u.prototype._destroy=function(e,t){l.prototype._destroy.call(this,e,(function(e){t(e)}))}},4567:(e,t,n)=>{function r(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,n){var r=e.entry;for(e.entry=null;r;){var s=r.callback;t.pendingcb--,s(undefined),r=r.next}t.corkedRequestsFree.next=e}(t,e)}}var s;e.exports=A,A.WritableState=L;var a,i={deprecate:n(7451)},o=n(6052),l=n(816).Buffer,c=(void 0!==n.g?n.g:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{}).Uint8Array||function(){},u=n(7640),f=n(5985).getHighWaterMark,d=n(6938).q,_=d.ERR_INVALID_ARG_TYPE,h=d.ERR_METHOD_NOT_IMPLEMENTED,p=d.ERR_MULTIPLE_CALLBACK,g=d.ERR_STREAM_CANNOT_PIPE,b=d.ERR_STREAM_DESTROYED,m=d.ERR_STREAM_NULL_VALUES,y=d.ERR_STREAM_WRITE_AFTER_END,v=d.ERR_UNKNOWN_ENCODING,w=u.errorOrDestroy;function E(){}function L(e,t,a){s=s||n(4439),e=e||{},"boolean"!=typeof a&&(a=t instanceof s),this.objectMode=!!e.objectMode,a&&(this.objectMode=this.objectMode||!!e.writableObjectMode),this.highWaterMark=f(this,e,"writableHighWaterMark",a),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var i=!1===e.decodeStrings;this.decodeStrings=!i,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var n=e._writableState,r=n.sync,s=n.writecb;if("function"!=typeof s)throw new p;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(n),t)!function(e,t,n,r,s){--t.pendingcb,n?(process.nextTick(s,r),process.nextTick(I,e,t),e._writableState.errorEmitted=!0,w(e,r)):(s(r),e._writableState.errorEmitted=!0,w(e,r),I(e,t))}(e,n,r,t,s);else{var a=P(n)||e.destroyed;a||n.corked||n.bufferProcessing||!n.bufferedRequest||T(e,n),r?process.nextTick(C,e,n,a,s):C(e,n,a,s)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!1!==e.emitClose,this.autoDestroy=!!e.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new r(this)}function A(e){var t=this instanceof(s=s||n(4439));if(!t&&!a.call(A,this))return new A(e);this._writableState=new L(e,this,t),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),o.call(this)}function S(e,t,n,r,s,a,i){t.writelen=r,t.writecb=i,t.writing=!0,t.sync=!0,t.destroyed?t.onwrite(new b("write")):n?e._writev(s,t.onwrite):e._write(s,a,t.onwrite),t.sync=!1}function C(e,t,n,r){n||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,r(),I(e,t)}function T(e,t){t.bufferProcessing=!0;var n=t.bufferedRequest;if(e._writev&&n&&n.next){var s=t.bufferedRequestCount,a=new Array(s),i=t.corkedRequestsFree;i.entry=n;for(var o=0,l=!0;n;)a[o]=n,n.isBuf||(l=!1),n=n.next,o+=1;a.allBuffers=l,S(e,t,!0,t.length,a,"",i.finish),t.pendingcb++,t.lastBufferedRequest=null,i.next?(t.corkedRequestsFree=i.next,i.next=null):t.corkedRequestsFree=new r(t),t.bufferedRequestCount=0}else{for(;n;){var c=n.chunk,u=n.encoding,f=n.callback;if(S(e,t,!1,t.objectMode?1:c.length,c,u,f),n=n.next,t.bufferedRequestCount--,t.writing)break}null===n&&(t.lastBufferedRequest=null)}t.bufferedRequest=n,t.bufferProcessing=!1}function P(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function N(e,t){e._final((function(n){t.pendingcb--,n&&w(e,n),t.prefinished=!0,e.emit("prefinish"),I(e,t)}))}function I(e,t){var n=P(t);if(n&&(function(e,t){t.prefinished||t.finalCalled||("function"!=typeof e._final||t.destroyed?(t.prefinished=!0,e.emit("prefinish")):(t.pendingcb++,t.finalCalled=!0,process.nextTick(N,e,t)))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"),t.autoDestroy))){var r=e._readableState;(!r||r.autoDestroy&&r.endEmitted)&&e.destroy()}return n}n(87)(A,o),L.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(L.prototype,"buffer",{get:i.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(a=Function.prototype[Symbol.hasInstance],Object.defineProperty(A,Symbol.hasInstance,{value:function(e){return!!a.call(this,e)||this===A&&e&&e._writableState instanceof L}})):a=function(e){return e instanceof this},A.prototype.pipe=function(){w(this,new g)},A.prototype.write=function(e,t,n){var r,s=this._writableState,a=!1,i=!s.objectMode&&(r=e,l.isBuffer(r)||r instanceof c);return i&&!l.isBuffer(e)&&(e=function(e){return l.from(e)}(e)),"function"==typeof t&&(n=t,t=null),i?t="buffer":t||(t=s.defaultEncoding),"function"!=typeof n&&(n=E),s.ending?function(e,t){var n=new y;w(e,n),process.nextTick(t,n)}(this,n):(i||function(e,t,n,r){var s;return null===n?s=new m:"string"==typeof n||t.objectMode||(s=new _("chunk",["string","Buffer"],n)),!s||(w(e,s),process.nextTick(r,s),!1)}(this,s,e,n))&&(s.pendingcb++,a=function(e,t,n,r,s,a){if(!n){var i=function(e,t,n){return e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=l.from(t,n)),t}(t,r,s);r!==i&&(n=!0,s="buffer",r=i)}var o=t.objectMode?1:r.length;t.length+=o;var c=t.length<t.highWaterMark;if(c||(t.needDrain=!0),t.writing||t.corked){var u=t.lastBufferedRequest;t.lastBufferedRequest={chunk:r,encoding:s,isBuf:n,callback:a,next:null},u?u.next=t.lastBufferedRequest:t.bufferedRequest=t.lastBufferedRequest,t.bufferedRequestCount+=1}else S(e,t,!1,o,r,s,a);return c}(this,s,i,e,t,n)),a},A.prototype.cork=function(){this._writableState.corked++},A.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,e.writing||e.corked||e.bufferProcessing||!e.bufferedRequest||T(this,e))},A.prototype.setDefaultEncoding=function(e){if("string"==typeof e&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new v(e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(A.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(A.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),A.prototype._write=function(e,t,n){n(new h("_write()"))},A.prototype._writev=null,A.prototype.end=function(e,t,n){var r=this._writableState;return"function"==typeof e?(n=e,e=null,t=null):"function"==typeof t&&(n=t,t=null),null!=e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||function(e,t,n){t.ending=!0,I(e,t),n&&(t.finished?process.nextTick(n):e.once("finish",n)),t.ended=!0,e.writable=!1}(this,r,n),this},Object.defineProperty(A.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(A.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),A.prototype.destroy=u.destroy,A.prototype._undestroy=u.undestroy,A.prototype._destroy=function(e,t){t(e)}},4157:(e,t,n)=>{var r;function s(e,t,n){return(t=function(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var a=n(5027),i=Symbol("lastResolve"),o=Symbol("lastReject"),l=Symbol("error"),c=Symbol("ended"),u=Symbol("lastPromise"),f=Symbol("handlePromise"),d=Symbol("stream");function _(e,t){return{value:e,done:t}}function h(e){var t=e[i];if(null!==t){var n=e[d].read();null!==n&&(e[u]=null,e[i]=null,e[o]=null,t(_(n,!1)))}}function p(e){process.nextTick(h,e)}var g=Object.getPrototypeOf((function(){})),b=Object.setPrototypeOf((s(r={get stream(){return this[d]},next:function(){var e=this,t=this[l];if(null!==t)return Promise.reject(t);if(this[c])return Promise.resolve(_(void 0,!0));if(this[d].destroyed)return new Promise((function(t,n){process.nextTick((function(){e[l]?n(e[l]):t(_(void 0,!0))}))}));var n,r=this[u];if(r)n=new Promise(function(e,t){return function(n,r){e.then((function(){t[c]?n(_(void 0,!0)):t[f](n,r)}),r)}}(r,this));else{var s=this[d].read();if(null!==s)return Promise.resolve(_(s,!1));n=new Promise(this[f])}return this[u]=n,n}},Symbol.asyncIterator,(function(){return this})),s(r,"return",(function(){var e=this;return new Promise((function(t,n){e[d].destroy(null,(function(e){e?n(e):t(_(void 0,!0))}))}))})),r),g);e.exports=function(e){var t,n=Object.create(b,(s(t={},d,{value:e,writable:!0}),s(t,i,{value:null,writable:!0}),s(t,o,{value:null,writable:!0}),s(t,l,{value:null,writable:!0}),s(t,c,{value:e._readableState.endEmitted,writable:!0}),s(t,f,{value:function(e,t){var r=n[d].read();r?(n[u]=null,n[i]=null,n[o]=null,e(_(r,!1))):(n[i]=e,n[o]=t)},writable:!0}),t));return n[u]=null,a(e,(function(e){if(e&&"ERR_STREAM_PREMATURE_CLOSE"!==e.code){var t=n[o];return null!==t&&(n[u]=null,n[i]=null,n[o]=null,t(e)),void(n[l]=e)}var r=n[i];null!==r&&(n[u]=null,n[i]=null,n[o]=null,r(_(void 0,!0))),n[c]=!0})),e.on("readable",p.bind(null,n)),n}},7712:(e,t,n)=>{function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function a(e,t,n){return(t=o(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,o(r.key),r)}}function o(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:String(t)}var l=n(816).Buffer,c=n(471).inspect,u=c&&c.custom||"inspect";e.exports=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.head=null,this.tail=null,this.length=0}var t,n;return t=e,(n=[{key:"push",value:function(e){var t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length}},{key:"unshift",value:function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length}},{key:"shift",value:function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(e){if(0===this.length)return"";for(var t=this.head,n=""+t.data;t=t.next;)n+=e+t.data;return n}},{key:"concat",value:function(e){if(0===this.length)return l.alloc(0);for(var t,n,r,s=l.allocUnsafe(e>>>0),a=this.head,i=0;a;)t=a.data,n=s,r=i,l.prototype.copy.call(t,n,r),i+=a.data.length,a=a.next;return s}},{key:"consume",value:function(e,t){var n;return e<this.head.data.length?(n=this.head.data.slice(0,e),this.head.data=this.head.data.slice(e)):n=e===this.head.data.length?this.shift():t?this._getString(e):this._getBuffer(e),n}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(e){var t=this.head,n=1,r=t.data;for(e-=r.length;t=t.next;){var s=t.data,a=e>s.length?s.length:e;if(a===s.length?r+=s:r+=s.slice(0,e),0==(e-=a)){a===s.length?(++n,t.next?this.head=t.next:this.head=this.tail=null):(this.head=t,t.data=s.slice(a));break}++n}return this.length-=n,r}},{key:"_getBuffer",value:function(e){var t=l.allocUnsafe(e),n=this.head,r=1;for(n.data.copy(t),e-=n.data.length;n=n.next;){var s=n.data,a=e>s.length?s.length:e;if(s.copy(t,t.length-e,0,a),0==(e-=a)){a===s.length?(++r,n.next?this.head=n.next:this.head=this.tail=null):(this.head=n,n.data=s.slice(a));break}++r}return this.length-=r,t}},{key:u,value:function(e,t){return c(this,s(s({},t),{},{depth:0,customInspect:!1}))}}])&&i(t.prototype,n),Object.defineProperty(t,"prototype",{writable:!1}),e}()},7640:e=>{function t(e,t){r(e,t),n(e)}function n(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function r(e,t){e.emit("error",t)}e.exports={destroy:function(e,s){var a=this,i=this._readableState&&this._readableState.destroyed,o=this._writableState&&this._writableState.destroyed;return i||o?(s?s(e):e&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(r,this,e)):process.nextTick(r,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,(function(e){!s&&e?a._writableState?a._writableState.errorEmitted?process.nextTick(n,a):(a._writableState.errorEmitted=!0,process.nextTick(t,a,e)):process.nextTick(t,a,e):s?(process.nextTick(n,a),s(e)):process.nextTick(n,a)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)},errorOrDestroy:function(e,t){var n=e._readableState,r=e._writableState;n&&n.autoDestroy||r&&r.autoDestroy?e.destroy(t):e.emit("error",t)}}},5027:(e,t,n)=>{var r=n(6938).q.ERR_STREAM_PREMATURE_CLOSE;function s(){}e.exports=function e(t,n,a){if("function"==typeof n)return e(t,null,n);n||(n={}),a=function(e){var t=!1;return function(){if(!t){t=!0;for(var n=arguments.length,r=new Array(n),s=0;s<n;s++)r[s]=arguments[s];e.apply(this,r)}}}(a||s);var i=n.readable||!1!==n.readable&&t.readable,o=n.writable||!1!==n.writable&&t.writable,l=function(){t.writable||u()},c=t._writableState&&t._writableState.finished,u=function(){o=!1,c=!0,i||a.call(t)},f=t._readableState&&t._readableState.endEmitted,d=function(){i=!1,f=!0,o||a.call(t)},_=function(e){a.call(t,e)},h=function(){var e;return i&&!f?(t._readableState&&t._readableState.ended||(e=new r),a.call(t,e)):o&&!c?(t._writableState&&t._writableState.ended||(e=new r),a.call(t,e)):void 0},p=function(){t.req.on("finish",u)};return function(e){return e.setHeader&&"function"==typeof e.abort}(t)?(t.on("complete",u),t.on("abort",h),t.req?p():t.on("request",p)):o&&!t._writableState&&(t.on("end",l),t.on("close",l)),t.on("end",d),t.on("finish",u),!1!==n.error&&t.on("error",_),t.on("close",h),function(){t.removeListener("complete",u),t.removeListener("abort",h),t.removeListener("request",p),t.req&&t.req.removeListener("finish",u),t.removeListener("end",l),t.removeListener("close",l),t.removeListener("finish",u),t.removeListener("end",d),t.removeListener("error",_),t.removeListener("close",h)}}},5800:e=>{e.exports=function(){throw new Error("Readable.from is not available in the browser")}},410:(e,t,n)=>{var r,s=n(6938).q,a=s.ERR_MISSING_ARGS,i=s.ERR_STREAM_DESTROYED;function o(e){if(e)throw e}function l(e){e()}function c(e,t){return e.pipe(t)}e.exports=function(){for(var e=arguments.length,t=new Array(e),s=0;s<e;s++)t[s]=arguments[s];var u,f=function(e){return e.length?"function"!=typeof e[e.length-1]?o:e.pop():o}(t);if(Array.isArray(t[0])&&(t=t[0]),t.length<2)throw new a("streams");var d=t.map((function(e,s){var a=s<t.length-1;return function(e,t,s,a){a=function(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}(a);var o=!1;e.on("close",(function(){o=!0})),void 0===r&&(r=n(5027)),r(e,{readable:t,writable:s},(function(e){if(e)return a(e);o=!0,a()}));var l=!1;return function(t){if(!o&&!l)return l=!0,function(e){return e.setHeader&&"function"==typeof e.abort}(e)?e.abort():"function"==typeof e.destroy?e.destroy():void a(t||new i("pipe"))}}(e,a,s>0,(function(e){u||(u=e),e&&d.forEach(l),a||(d.forEach(l),f(u))}))}));return t.reduce(c)}},5985:(e,t,n)=>{var r=n(6938).q.ERR_INVALID_OPT_VALUE;e.exports={getHighWaterMark:function(e,t,n,s){var a=function(e,t,n){return null!=e.highWaterMark?e.highWaterMark:t?e[n]:null}(t,s,n);if(null!=a){if(!isFinite(a)||Math.floor(a)!==a||a<0)throw new r(s?n:"highWaterMark",a);return Math.floor(a)}return e.objectMode?16:16384}}},6052:(e,t,n)=>{e.exports=n(343).EventEmitter},8310:(e,t,n)=>{(t=e.exports=n(5327)).Stream=t,t.Readable=t,t.Writable=n(4567),t.Duplex=n(4439),t.Transform=n(2175),t.PassThrough=n(3754),t.finished=n(5027),t.pipeline=n(410)},7172:(e,t,n)=>{var r=n(816),s=r.Buffer;function a(e,t){for(var n in e)t[n]=e[n]}function i(e,t,n){return s(e,t,n)}s.from&&s.alloc&&s.allocUnsafe&&s.allocUnsafeSlow?e.exports=r:(a(r,t),t.Buffer=i),i.prototype=Object.create(s.prototype),a(s,i),i.from=function(e,t,n){if("number"==typeof e)throw new TypeError("Argument must not be a number");return s(e,t,n)},i.alloc=function(e,t,n){if("number"!=typeof e)throw new TypeError("Argument must be a number");var r=s(e);return void 0!==t?"string"==typeof n?r.fill(t,n):r.fill(t):r.fill(0),r},i.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return s(e)},i.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return r.SlowBuffer(e)}},3573:(e,t,n)=>{t.C4=void 0;var r,s=n(816),a=(r=n(350))&&r.__esModule?r:{default:r},i=function(e){var t=e.allowedSizes,n=e.defaultSize,r=e.padding;return function e(){var i=this,o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:n;if(!this||this.constructor!==e)return new e(o);if(t&&!t.includes(o))throw new Error("Unsupported hash length");var l=new a.default({capacity:o});return this.update=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"utf8";if(s.Buffer.isBuffer(e))return l.absorb(e),i;if("string"==typeof e)return i.update(s.Buffer.from(e,t));throw new TypeError("Not a string or buffer")},this.digest=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"binary",t="string"==typeof e?{format:e}:e,n=l.squeeze({buffer:t.buffer,padding:t.padding||r});return t.format&&"binary"!==t.format?n.toString(t.format):n},this.reset=function(){return l.reset(),i},this}},o=i({allowedSizes:[224,256,384,512],defaultSize:512,padding:1});t.C4=o;var l=i({allowedSizes:[224,256,384,512],defaultSize:512,padding:6});i({allowedSizes:[128,256],defaultSize:256,padding:31});var c=o;l.SHA3Hash=c},350:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,s=n(816),a=(r=n(5037))&&r.__esModule?r:{default:r},i=function(e,t){for(var n=0;n<e.length;n+=8){var r=n/4;t[r]^=e[n+7]<<24|e[n+6]<<16|e[n+5]<<8|e[n+4],t[r+1]^=e[n+3]<<24|e[n+2]<<16|e[n+1]<<8|e[n]}return t},o=function(e,t){for(var n=0;n<t.length;n+=8){var r=n/4;t[n]=e[r+1],t[n+1]=e[r+1]>>>8,t[n+2]=e[r+1]>>>16,t[n+3]=e[r+1]>>>24,t[n+4]=e[r],t[n+5]=e[r]>>>8,t[n+6]=e[r]>>>16,t[n+7]=e[r]>>>24}return t};t.default=function(e){var t=this,n=e.capacity,r=e.padding,l=(0,a.default)(),c=n/8,u=200-n/4,f=0,d=new Uint32Array(50),_=s.Buffer.allocUnsafe(u);return this.absorb=function(e){for(var n=0;n<e.length;n++)_[f]=e[n],(f+=1)>=u&&(i(_,d),l(d),f=0);return t},this.squeeze=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t={buffer:e.buffer||s.Buffer.allocUnsafe(c),padding:e.padding||r,queue:s.Buffer.allocUnsafe(_.length),state:new Uint32Array(d.length)};_.copy(t.queue);for(var n=0;n<d.length;n++)t.state[n]=d[n];t.queue.fill(0,f),t.queue[f]|=t.padding,t.queue[u-1]|=128,i(t.queue,t.state);for(var a=0;a<t.buffer.length;a+=u)l(t.state),o(t.state,t.buffer.slice(a,a+u));return t.buffer},this.reset=function(){return _.fill(0),d.fill(0),f=0,t},this}},9940:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,s=(r=n(2196))&&r.__esModule?r:{default:r};t.default=function(e){for(var t=e.A,n=e.C,r=0;r<25;r+=5){for(var a=0;a<5;a++)(0,s.default)(t,r+a)(n,a);for(var i=0;i<5;i++){var o=2*(r+i),l=(i+1)%5*2,c=(i+2)%5*2;t[o]^=~n[l]&n[c],t[o+1]^=~n[l+1]&n[c+1]}}}},2196:e=>{e.exports=function(e,t){return function(n,r){var s=2*r,a=2*t;n[s]=e[a],n[s+1]=e[a+1]}}},5037:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=o(n(9940)),s=o(n(1909)),a=o(n(6021)),i=o(n(4421));function o(e){return e&&e.__esModule?e:{default:e}}t.default=function(){var e=new Uint32Array(10),t=new Uint32Array(10),n=new Uint32Array(2);return function(o){for(var l=0;l<24;l++)(0,i.default)({A:o,C:e,D:t,W:n}),(0,a.default)({A:o,C:e,W:n}),(0,r.default)({A:o,C:e}),(0,s.default)({A:o,roundIndex:l});e.fill(0),t.fill(0),n.fill(0)}}},1909:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,s=(r=n(3408))&&r.__esModule?r:{default:r};t.default=function(e){var t=e.A,n=2*e.roundIndex;t[0]^=s.default[n],t[1]^=s.default[n+1]}},3408:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=new Uint32Array([0,1,0,32898,2147483648,32906,2147483648,2147516416,0,32907,0,2147483649,2147483648,2147516545,2147483648,32777,0,138,0,136,0,2147516425,0,2147483658,0,2147516555,2147483648,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,0,32778,2147483648,2147483658,2147483648,2147516545,2147483648,32896,0,2147483649,2147483648,2147516424]);t.default=n},6021:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=i(n(2773)),s=i(n(4728)),a=i(n(2196));function i(e){return e&&e.__esModule?e:{default:e}}t.default=function(e){var t=e.A,n=e.C,i=e.W;(0,a.default)(t,1)(i,0);for(var o=0,l=0,c=0,u=32,f=0;f<24;f++){var d=r.default[f],_=s.default[f];(0,a.default)(t,d)(n,0),o=i[0],l=i[1],u=32-_,i[c=_<32?0:1]=o<<_|l>>>u,i[(c+1)%2]=l<<_|o>>>u,(0,a.default)(i,0)(t,d),(0,a.default)(n,0)(i,0)}}},2773:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default=[10,7,11,17,18,3,5,16,8,21,24,4,15,23,19,13,12,2,20,14,22,9,6,1]},4728:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default=[1,3,6,10,15,21,28,36,45,55,2,14,27,41,56,8,25,43,62,18,39,61,20,44]},4421:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,s=(r=n(2196))&&r.__esModule?r:{default:r};t.default=function(e){for(var t=e.A,n=e.C,r=e.D,a=e.W,i=0,o=0,l=0;l<5;l++){var c=2*l,u=2*(l+5),f=2*(l+10),d=2*(l+15),_=2*(l+20);n[c]=t[c]^t[u]^t[f]^t[d]^t[_],n[c+1]=t[c+1]^t[u+1]^t[f+1]^t[d+1]^t[_+1]}for(var h=0;h<5;h++){(0,s.default)(n,(h+1)%5)(a,0),i=a[0],o=a[1],a[0]=i<<1|o>>>31,a[1]=o<<1|i>>>31,r[2*h]=n[(h+4)%5*2]^a[0],r[2*h+1]=n[(h+4)%5*2+1]^a[1];for(var p=0;p<25;p+=5)t[2*(p+h)]^=r[2*h],t[2*(p+h)+1]^=r[2*h+1]}}},3424:(e,t,n)=>{e.exports=s;var r=n(343).EventEmitter;function s(){r.call(this)}n(87)(s,r),s.Readable=n(5327),s.Writable=n(4567),s.Duplex=n(4439),s.Transform=n(2175),s.PassThrough=n(3754),s.finished=n(5027),s.pipeline=n(410),s.Stream=s,s.prototype.pipe=function(e,t){var n=this;function s(t){e.writable&&!1===e.write(t)&&n.pause&&n.pause()}function a(){n.readable&&n.resume&&n.resume()}n.on("data",s),e.on("drain",a),e._isStdio||t&&!1===t.end||(n.on("end",o),n.on("close",l));var i=!1;function o(){i||(i=!0,e.end())}function l(){i||(i=!0,"function"==typeof e.destroy&&e.destroy())}function c(e){if(u(),0===r.listenerCount(this,"error"))throw e}function u(){n.removeListener("data",s),e.removeListener("drain",a),n.removeListener("end",o),n.removeListener("close",l),n.removeListener("error",c),e.removeListener("error",c),n.removeListener("end",u),n.removeListener("close",u),e.removeListener("close",u)}return n.on("error",c),e.on("error",c),n.on("end",u),n.on("close",u),e.on("close",u),e.emit("pipe",n),e}},4361:(e,t,n)=>{var r=n(7172).Buffer,s=r.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function a(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(r.isEncoding===s||!s(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=l,this.end=c,t=4;break;case"utf8":this.fillLast=o,t=4;break;case"base64":this.text=u,this.end=f,t=3;break;default:return this.write=d,void(this.end=_)}this.lastNeed=0,this.lastTotal=0,this.lastChar=r.allocUnsafe(t)}function i(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function o(e){var t=this.lastTotal-this.lastNeed,n=function(e,t,n){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==n?n:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function l(e,t){if((e.length-t)%2==0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function c(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function u(e,t){var n=(e.length-t)%3;return 0===n?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function f(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function d(e){return e.toString(this.encoding)}function _(e){return e&&e.length?this.write(e):""}t.s=a,a.prototype.write=function(e){if(0===e.length)return"";var t,n;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n<e.length?t?t+this.text(e,n):this.text(e,n):t||""},a.prototype.end=function(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"�":t},a.prototype.text=function(e,t){var n=function(e,t,n){var r=t.length-1;if(r<n)return 0;var s=i(t[r]);return s>=0?(s>0&&(e.lastNeed=s-1),s):--r<n||-2===s?0:(s=i(t[r]))>=0?(s>0&&(e.lastNeed=s-2),s):--r<n||-2===s?0:(s=i(t[r]))>=0?(s>0&&(2===s?s=0:e.lastNeed=s-3),s):0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)},a.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},3118:(e,t)=>{t.VB=function(){return!1}},7451:(e,t,n)=>{function r(e){try{if(!n.g.localStorage)return!1}catch(e){return!1}var t=n.g.localStorage[e];return null!=t&&"true"===String(t).toLowerCase()}e.exports=function(e,t){if(r("noDeprecation"))return e;var n=!1;return function(){if(!n){if(r("throwDeprecation"))throw new Error(t);r("traceDeprecation")?console.trace(t):console.warn(t),n=!0}return e.apply(this,arguments)}}},233:()=>{},6534:()=>{},1856:()=>{},6014:()=>{},717:()=>{},6963:()=>{},9190:()=>{},3240:()=>{},6721:()=>{},394:()=>{},471:()=>{},1632:()=>{},8517:()=>{},4636:e=>{e.exports=JSON.parse('{"aes-128-ecb":{"cipher":"AES","key":128,"iv":0,"mode":"ECB","type":"block"},"aes-192-ecb":{"cipher":"AES","key":192,"iv":0,"mode":"ECB","type":"block"},"aes-256-ecb":{"cipher":"AES","key":256,"iv":0,"mode":"ECB","type":"block"},"aes-128-cbc":{"cipher":"AES","key":128,"iv":16,"mode":"CBC","type":"block"},"aes-192-cbc":{"cipher":"AES","key":192,"iv":16,"mode":"CBC","type":"block"},"aes-256-cbc":{"cipher":"AES","key":256,"iv":16,"mode":"CBC","type":"block"},"aes128":{"cipher":"AES","key":128,"iv":16,"mode":"CBC","type":"block"},"aes192":{"cipher":"AES","key":192,"iv":16,"mode":"CBC","type":"block"},"aes256":{"cipher":"AES","key":256,"iv":16,"mode":"CBC","type":"block"},"aes-128-cfb":{"cipher":"AES","key":128,"iv":16,"mode":"CFB","type":"stream"},"aes-192-cfb":{"cipher":"AES","key":192,"iv":16,"mode":"CFB","type":"stream"},"aes-256-cfb":{"cipher":"AES","key":256,"iv":16,"mode":"CFB","type":"stream"},"aes-128-cfb8":{"cipher":"AES","key":128,"iv":16,"mode":"CFB8","type":"stream"},"aes-192-cfb8":{"cipher":"AES","key":192,"iv":16,"mode":"CFB8","type":"stream"},"aes-256-cfb8":{"cipher":"AES","key":256,"iv":16,"mode":"CFB8","type":"stream"},"aes-128-cfb1":{"cipher":"AES","key":128,"iv":16,"mode":"CFB1","type":"stream"},"aes-192-cfb1":{"cipher":"AES","key":192,"iv":16,"mode":"CFB1","type":"stream"},"aes-256-cfb1":{"cipher":"AES","key":256,"iv":16,"mode":"CFB1","type":"stream"},"aes-128-ofb":{"cipher":"AES","key":128,"iv":16,"mode":"OFB","type":"stream"},"aes-192-ofb":{"cipher":"AES","key":192,"iv":16,"mode":"OFB","type":"stream"},"aes-256-ofb":{"cipher":"AES","key":256,"iv":16,"mode":"OFB","type":"stream"},"aes-128-ctr":{"cipher":"AES","key":128,"iv":16,"mode":"CTR","type":"stream"},"aes-192-ctr":{"cipher":"AES","key":192,"iv":16,"mode":"CTR","type":"stream"},"aes-256-ctr":{"cipher":"AES","key":256,"iv":16,"mode":"CTR","type":"stream"},"aes-128-gcm":{"cipher":"AES","key":128,"iv":12,"mode":"GCM","type":"auth"},"aes-192-gcm":{"cipher":"AES","key":192,"iv":12,"mode":"GCM","type":"auth"},"aes-256-gcm":{"cipher":"AES","key":256,"iv":12,"mode":"GCM","type":"auth"}}')}},t={};function n(r){var s=t[r];if(void 0!==s)return s.exports;var a=t[r]={id:r,loaded:!1,exports:{}};return e[r](a,a.exports,n),a.loaded=!0,a.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.nmd=e=>(e.paths=[],e.children||(e.children=[]),e);var r={};(()=>{function e(e){let t=e.length;for(;--t>=0;)e[t]=0}n.d(r,{mR:()=>Ni,bG:()=>ri,xz:()=>wr,EB:()=>gi,cC:()=>ti,C3:()=>Wa,QT:()=>hi,ug:()=>Ks,CH:()=>Za,xq:()=>ja,vp:()=>la,xr:()=>oa,Ag:()=>Xa,W_:()=>Na,g2:()=>Ua,Y8:()=>Qa,gB:()=>xi,vX:()=>Di,Bi:()=>ni,jF:()=>Lr,Wi:()=>pi,Fr:()=>Nn,E7:()=>Qi,ah:()=>Zi,N0:()=>Gi,rL:()=>Wi,$h:()=>ya,pP:()=>Ba,E9:()=>Dn,_q:()=>ea,lW:()=>Bi,a5:()=>Ma,GR:()=>si,x6:()=>Oi,of:()=>ei,E$:()=>ki,Tx:()=>Pa,qd:()=>Da,f1:()=>Sa,EY:()=>xa,bH:()=>Ia,qx:()=>Ya,ig:()=>ai,_$:()=>Ti,g$:()=>fs,sn:()=>Yi,es:()=>ca,ir:()=>oi,G0:()=>ii,o2:()=>Fi,nW:()=>li,qe:()=>Xi,IQ:()=>Hi,JA:()=>Mi,FV:()=>zi,iL:()=>Ui,dH:()=>ci,Jz:()=>Si,_v:()=>ta,qW:()=>Ji});const t=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),s=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),a=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),i=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),o=new Array(576);e(o);const l=new Array(60);e(l);const c=new Array(512);e(c);const u=new Array(256);e(u);const f=new Array(29);e(f);const d=new Array(30);function _(e,t,n,r,s){this.static_tree=e,this.extra_bits=t,this.extra_base=n,this.elems=r,this.max_length=s,this.has_stree=e&&e.length}let h,p,g;function b(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}e(d);const m=e=>e<256?c[e]:c[256+(e>>>7)],y=(e,t)=>{e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255},v=(e,t,n)=>{e.bi_valid>16-n?(e.bi_buf|=t<<e.bi_valid&65535,y(e,e.bi_buf),e.bi_buf=t>>16-e.bi_valid,e.bi_valid+=n-16):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)},w=(e,t,n)=>{v(e,n[2*t],n[2*t+1])},E=(e,t)=>{let n=0;do{n|=1&e,e>>>=1,n<<=1}while(--t>0);return n>>>1},L=(e,t,n)=>{const r=new Array(16);let s,a,i=0;for(s=1;s<=15;s++)i=i+n[s-1]<<1,r[s]=i;for(a=0;a<=t;a++){let t=e[2*a+1];0!==t&&(e[2*a]=E(r[t]++,t))}},A=e=>{let t;for(t=0;t<286;t++)e.dyn_ltree[2*t]=0;for(t=0;t<30;t++)e.dyn_dtree[2*t]=0;for(t=0;t<19;t++)e.bl_tree[2*t]=0;e.dyn_ltree[512]=1,e.opt_len=e.static_len=0,e.sym_next=e.matches=0},S=e=>{e.bi_valid>8?y(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},C=(e,t,n,r)=>{const s=2*t,a=2*n;return e[s]<e[a]||e[s]===e[a]&&r[t]<=r[n]},T=(e,t,n)=>{const r=e.heap[n];let s=n<<1;for(;s<=e.heap_len&&(s<e.heap_len&&C(t,e.heap[s+1],e.heap[s],e.depth)&&s++,!C(t,r,e.heap[s],e.depth));)e.heap[n]=e.heap[s],n=s,s<<=1;e.heap[n]=r},P=(e,n,r)=>{let a,i,o,l,c=0;if(0!==e.sym_next)do{a=255&e.pending_buf[e.sym_buf+c++],a+=(255&e.pending_buf[e.sym_buf+c++])<<8,i=e.pending_buf[e.sym_buf+c++],0===a?w(e,i,n):(o=u[i],w(e,o+256+1,n),l=t[o],0!==l&&(i-=f[o],v(e,i,l)),a--,o=m(a),w(e,o,r),l=s[o],0!==l&&(a-=d[o],v(e,a,l)))}while(c<e.sym_next);w(e,256,n)},N=(e,t)=>{const n=t.dyn_tree,r=t.stat_desc.static_tree,s=t.stat_desc.has_stree,a=t.stat_desc.elems;let i,o,l,c=-1;for(e.heap_len=0,e.heap_max=573,i=0;i<a;i++)0!==n[2*i]?(e.heap[++e.heap_len]=c=i,e.depth[i]=0):n[2*i+1]=0;for(;e.heap_len<2;)l=e.heap[++e.heap_len]=c<2?++c:0,n[2*l]=1,e.depth[l]=0,e.opt_len--,s&&(e.static_len-=r[2*l+1]);for(t.max_code=c,i=e.heap_len>>1;i>=1;i--)T(e,n,i);l=a;do{i=e.heap[1],e.heap[1]=e.heap[e.heap_len--],T(e,n,1),o=e.heap[1],e.heap[--e.heap_max]=i,e.heap[--e.heap_max]=o,n[2*l]=n[2*i]+n[2*o],e.depth[l]=(e.depth[i]>=e.depth[o]?e.depth[i]:e.depth[o])+1,n[2*i+1]=n[2*o+1]=l,e.heap[1]=l++,T(e,n,1)}while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],((e,t)=>{const n=t.dyn_tree,r=t.max_code,s=t.stat_desc.static_tree,a=t.stat_desc.has_stree,i=t.stat_desc.extra_bits,o=t.stat_desc.extra_base,l=t.stat_desc.max_length;let c,u,f,d,_,h,p=0;for(d=0;d<=15;d++)e.bl_count[d]=0;for(n[2*e.heap[e.heap_max]+1]=0,c=e.heap_max+1;c<573;c++)u=e.heap[c],d=n[2*n[2*u+1]+1]+1,d>l&&(d=l,p++),n[2*u+1]=d,u>r||(e.bl_count[d]++,_=0,u>=o&&(_=i[u-o]),h=n[2*u],e.opt_len+=h*(d+_),a&&(e.static_len+=h*(s[2*u+1]+_)));if(0!==p){do{for(d=l-1;0===e.bl_count[d];)d--;e.bl_count[d]--,e.bl_count[d+1]+=2,e.bl_count[l]--,p-=2}while(p>0);for(d=l;0!==d;d--)for(u=e.bl_count[d];0!==u;)f=e.heap[--c],f>r||(n[2*f+1]!==d&&(e.opt_len+=(d-n[2*f+1])*n[2*f],n[2*f+1]=d),u--)}})(e,t),L(n,c,e.bl_count)},I=(e,t,n)=>{let r,s,a=-1,i=t[1],o=0,l=7,c=4;for(0===i&&(l=138,c=3),t[2*(n+1)+1]=65535,r=0;r<=n;r++)s=i,i=t[2*(r+1)+1],++o<l&&s===i||(o<c?e.bl_tree[2*s]+=o:0!==s?(s!==a&&e.bl_tree[2*s]++,e.bl_tree[32]++):o<=10?e.bl_tree[34]++:e.bl_tree[36]++,o=0,a=s,0===i?(l=138,c=3):s===i?(l=6,c=3):(l=7,c=4))},k=(e,t,n)=>{let r,s,a=-1,i=t[1],o=0,l=7,c=4;for(0===i&&(l=138,c=3),r=0;r<=n;r++)if(s=i,i=t[2*(r+1)+1],!(++o<l&&s===i)){if(o<c)do{w(e,s,e.bl_tree)}while(0!=--o);else 0!==s?(s!==a&&(w(e,s,e.bl_tree),o--),w(e,16,e.bl_tree),v(e,o-3,2)):o<=10?(w(e,17,e.bl_tree),v(e,o-3,3)):(w(e,18,e.bl_tree),v(e,o-11,7));o=0,a=s,0===i?(l=138,c=3):s===i?(l=6,c=3):(l=7,c=4)}};let x=!1;const R=(e,t,n,r)=>{v(e,0+(r?1:0),3),S(e),y(e,n),y(e,~n),n&&e.pending_buf.set(e.window.subarray(t,t+n),e.pending),e.pending+=n};var B={_tr_init:e=>{x||((()=>{let e,n,r,i,b;const m=new Array(16);for(r=0,i=0;i<28;i++)for(f[i]=r,e=0;e<1<<t[i];e++)u[r++]=i;for(u[r-1]=i,b=0,i=0;i<16;i++)for(d[i]=b,e=0;e<1<<s[i];e++)c[b++]=i;for(b>>=7;i<30;i++)for(d[i]=b<<7,e=0;e<1<<s[i]-7;e++)c[256+b++]=i;for(n=0;n<=15;n++)m[n]=0;for(e=0;e<=143;)o[2*e+1]=8,e++,m[8]++;for(;e<=255;)o[2*e+1]=9,e++,m[9]++;for(;e<=279;)o[2*e+1]=7,e++,m[7]++;for(;e<=287;)o[2*e+1]=8,e++,m[8]++;for(L(o,287,m),e=0;e<30;e++)l[2*e+1]=5,l[2*e]=E(e,5);h=new _(o,t,257,286,15),p=new _(l,s,0,30,15),g=new _(new Array(0),a,0,19,7)})(),x=!0),e.l_desc=new b(e.dyn_ltree,h),e.d_desc=new b(e.dyn_dtree,p),e.bl_desc=new b(e.bl_tree,g),e.bi_buf=0,e.bi_valid=0,A(e)},_tr_stored_block:R,_tr_flush_block:(e,t,n,r)=>{let s,a,c=0;e.level>0?(2===e.strm.data_type&&(e.strm.data_type=(e=>{let t,n=4093624447;for(t=0;t<=31;t++,n>>>=1)if(1&n&&0!==e.dyn_ltree[2*t])return 0;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return 1;for(t=32;t<256;t++)if(0!==e.dyn_ltree[2*t])return 1;return 0})(e)),N(e,e.l_desc),N(e,e.d_desc),c=(e=>{let t;for(I(e,e.dyn_ltree,e.l_desc.max_code),I(e,e.dyn_dtree,e.d_desc.max_code),N(e,e.bl_desc),t=18;t>=3&&0===e.bl_tree[2*i[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t})(e),s=e.opt_len+3+7>>>3,a=e.static_len+3+7>>>3,a<=s&&(s=a)):s=a=n+5,n+4<=s&&-1!==t?R(e,t,n,r):4===e.strategy||a===s?(v(e,2+(r?1:0),3),P(e,o,l)):(v(e,4+(r?1:0),3),((e,t,n,r)=>{let s;for(v(e,t-257,5),v(e,n-1,5),v(e,r-4,4),s=0;s<r;s++)v(e,e.bl_tree[2*i[s]+1],3);k(e,e.dyn_ltree,t-1),k(e,e.dyn_dtree,n-1)})(e,e.l_desc.max_code+1,e.d_desc.max_code+1,c+1),P(e,e.dyn_ltree,e.dyn_dtree)),A(e),r&&S(e)},_tr_tally:(e,t,n)=>(e.pending_buf[e.sym_buf+e.sym_next++]=t,e.pending_buf[e.sym_buf+e.sym_next++]=t>>8,e.pending_buf[e.sym_buf+e.sym_next++]=n,0===t?e.dyn_ltree[2*n]++:(e.matches++,t--,e.dyn_ltree[2*(u[n]+256+1)]++,e.dyn_dtree[2*m(t)]++),e.sym_next===e.sym_end),_tr_align:e=>{v(e,2,3),w(e,256,o),(e=>{16===e.bi_valid?(y(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)})(e)}},O=(e,t,n,r)=>{let s=65535&e|0,a=e>>>16&65535|0,i=0;for(;0!==n;){i=n>2e3?2e3:n,n-=i;do{s=s+t[r++]|0,a=a+s|0}while(--i);s%=65521,a%=65521}return s|a<<16|0};const D=new Uint32Array((()=>{let e,t=[];for(var n=0;n<256;n++){e=n;for(var r=0;r<8;r++)e=1&e?3988292384^e>>>1:e>>>1;t[n]=e}return t})());var F=(e,t,n,r)=>{const s=D,a=r+n;e^=-1;for(let n=r;n<a;n++)e=e>>>8^s[255&(e^t[n])];return-1^e},H={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},M={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:z,_tr_stored_block:U,_tr_flush_block:j,_tr_tally:Z,_tr_align:W}=B,{Z_NO_FLUSH:G,Z_PARTIAL_FLUSH:Q,Z_FULL_FLUSH:X,Z_FINISH:Y,Z_BLOCK:J,Z_OK:V,Z_STREAM_END:q,Z_STREAM_ERROR:K,Z_DATA_ERROR:$,Z_BUF_ERROR:ee,Z_DEFAULT_COMPRESSION:te,Z_FILTERED:ne,Z_HUFFMAN_ONLY:re,Z_RLE:se,Z_FIXED:ae,Z_DEFAULT_STRATEGY:ie,Z_UNKNOWN:oe,Z_DEFLATED:le}=M,ce=258,ue=262,fe=42,de=113,_e=666,he=(e,t)=>(e.msg=H[t],t),pe=e=>2*e-(e>4?9:0),ge=e=>{let t=e.length;for(;--t>=0;)e[t]=0},be=e=>{let t,n,r,s=e.w_size;t=e.hash_size,r=t;do{n=e.head[--r],e.head[r]=n>=s?n-s:0}while(--t);t=s,r=t;do{n=e.prev[--r],e.prev[r]=n>=s?n-s:0}while(--t)};let me=(e,t,n)=>(t<<e.hash_shift^n)&e.hash_mask;const ye=e=>{const t=e.state;let n=t.pending;n>e.avail_out&&(n=e.avail_out),0!==n&&(e.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+n),e.next_out),e.next_out+=n,t.pending_out+=n,e.total_out+=n,e.avail_out-=n,t.pending-=n,0===t.pending&&(t.pending_out=0))},ve=(e,t)=>{j(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,ye(e.strm)},we=(e,t)=>{e.pending_buf[e.pending++]=t},Ee=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t},Le=(e,t,n,r)=>{let s=e.avail_in;return s>r&&(s=r),0===s?0:(e.avail_in-=s,t.set(e.input.subarray(e.next_in,e.next_in+s),n),1===e.state.wrap?e.adler=O(e.adler,t,s,n):2===e.state.wrap&&(e.adler=F(e.adler,t,s,n)),e.next_in+=s,e.total_in+=s,s)},Ae=(e,t)=>{let n,r,s=e.max_chain_length,a=e.strstart,i=e.prev_length,o=e.nice_match;const l=e.strstart>e.w_size-ue?e.strstart-(e.w_size-ue):0,c=e.window,u=e.w_mask,f=e.prev,d=e.strstart+ce;let _=c[a+i-1],h=c[a+i];e.prev_length>=e.good_match&&(s>>=2),o>e.lookahead&&(o=e.lookahead);do{if(n=t,c[n+i]===h&&c[n+i-1]===_&&c[n]===c[a]&&c[++n]===c[a+1]){a+=2,n++;do{}while(c[++a]===c[++n]&&c[++a]===c[++n]&&c[++a]===c[++n]&&c[++a]===c[++n]&&c[++a]===c[++n]&&c[++a]===c[++n]&&c[++a]===c[++n]&&c[++a]===c[++n]&&a<d);if(r=ce-(d-a),a=d-ce,r>i){if(e.match_start=t,i=r,r>=o)break;_=c[a+i-1],h=c[a+i]}}}while((t=f[t&u])>l&&0!=--s);return i<=e.lookahead?i:e.lookahead},Se=e=>{const t=e.w_size;let n,r,s;do{if(r=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-ue)&&(e.window.set(e.window.subarray(t,t+t-r),0),e.match_start-=t,e.strstart-=t,e.block_start-=t,e.insert>e.strstart&&(e.insert=e.strstart),be(e),r+=t),0===e.strm.avail_in)break;if(n=Le(e.strm,e.window,e.strstart+e.lookahead,r),e.lookahead+=n,e.lookahead+e.insert>=3)for(s=e.strstart-e.insert,e.ins_h=e.window[s],e.ins_h=me(e,e.ins_h,e.window[s+1]);e.insert&&(e.ins_h=me(e,e.ins_h,e.window[s+3-1]),e.prev[s&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=s,s++,e.insert--,!(e.lookahead+e.insert<3)););}while(e.lookahead<ue&&0!==e.strm.avail_in)},Ce=(e,t)=>{let n,r,s,a=e.pending_buf_size-5>e.w_size?e.w_size:e.pending_buf_size-5,i=0,o=e.strm.avail_in;do{if(n=65535,s=e.bi_valid+42>>3,e.strm.avail_out<s)break;if(s=e.strm.avail_out-s,r=e.strstart-e.block_start,n>r+e.strm.avail_in&&(n=r+e.strm.avail_in),n>s&&(n=s),n<a&&(0===n&&t!==Y||t===G||n!==r+e.strm.avail_in))break;i=t===Y&&n===r+e.strm.avail_in?1:0,U(e,0,0,i),e.pending_buf[e.pending-4]=n,e.pending_buf[e.pending-3]=n>>8,e.pending_buf[e.pending-2]=~n,e.pending_buf[e.pending-1]=~n>>8,ye(e.strm),r&&(r>n&&(r=n),e.strm.output.set(e.window.subarray(e.block_start,e.block_start+r),e.strm.next_out),e.strm.next_out+=r,e.strm.avail_out-=r,e.strm.total_out+=r,e.block_start+=r,n-=r),n&&(Le(e.strm,e.strm.output,e.strm.next_out,n),e.strm.next_out+=n,e.strm.avail_out-=n,e.strm.total_out+=n)}while(0===i);return o-=e.strm.avail_in,o&&(o>=e.w_size?(e.matches=2,e.window.set(e.strm.input.subarray(e.strm.next_in-e.w_size,e.strm.next_in),0),e.strstart=e.w_size,e.insert=e.strstart):(e.window_size-e.strstart<=o&&(e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,e.insert>e.strstart&&(e.insert=e.strstart)),e.window.set(e.strm.input.subarray(e.strm.next_in-o,e.strm.next_in),e.strstart),e.strstart+=o,e.insert+=o>e.w_size-e.insert?e.w_size-e.insert:o),e.block_start=e.strstart),e.high_water<e.strstart&&(e.high_water=e.strstart),i?4:t!==G&&t!==Y&&0===e.strm.avail_in&&e.strstart===e.block_start?2:(s=e.window_size-e.strstart,e.strm.avail_in>s&&e.block_start>=e.w_size&&(e.block_start-=e.w_size,e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,s+=e.w_size,e.insert>e.strstart&&(e.insert=e.strstart)),s>e.strm.avail_in&&(s=e.strm.avail_in),s&&(Le(e.strm,e.window,e.strstart,s),e.strstart+=s,e.insert+=s>e.w_size-e.insert?e.w_size-e.insert:s),e.high_water<e.strstart&&(e.high_water=e.strstart),s=e.bi_valid+42>>3,s=e.pending_buf_size-s>65535?65535:e.pending_buf_size-s,a=s>e.w_size?e.w_size:s,r=e.strstart-e.block_start,(r>=a||(r||t===Y)&&t!==G&&0===e.strm.avail_in&&r<=s)&&(n=r>s?s:r,i=t===Y&&0===e.strm.avail_in&&n===r?1:0,U(e,e.block_start,n,i),e.block_start+=n,ye(e.strm)),i?3:1)},Te=(e,t)=>{let n,r;for(;;){if(e.lookahead<ue){if(Se(e),e.lookahead<ue&&t===G)return 1;if(0===e.lookahead)break}if(n=0,e.lookahead>=3&&(e.ins_h=me(e,e.ins_h,e.window[e.strstart+3-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==n&&e.strstart-n<=e.w_size-ue&&(e.match_length=Ae(e,n)),e.match_length>=3)if(r=Z(e,e.strstart-e.match_start,e.match_length-3),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=3){e.match_length--;do{e.strstart++,e.ins_h=me(e,e.ins_h,e.window[e.strstart+3-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart}while(0!=--e.match_length);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=me(e,e.ins_h,e.window[e.strstart+1]);else r=Z(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(ve(e,!1),0===e.strm.avail_out))return 1}return e.insert=e.strstart<2?e.strstart:2,t===Y?(ve(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(ve(e,!1),0===e.strm.avail_out)?1:2},Pe=(e,t)=>{let n,r,s;for(;;){if(e.lookahead<ue){if(Se(e),e.lookahead<ue&&t===G)return 1;if(0===e.lookahead)break}if(n=0,e.lookahead>=3&&(e.ins_h=me(e,e.ins_h,e.window[e.strstart+3-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=2,0!==n&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-ue&&(e.match_length=Ae(e,n),e.match_length<=5&&(e.strategy===ne||3===e.match_length&&e.strstart-e.match_start>4096)&&(e.match_length=2)),e.prev_length>=3&&e.match_length<=e.prev_length){s=e.strstart+e.lookahead-3,r=Z(e,e.strstart-1-e.prev_match,e.prev_length-3),e.lookahead-=e.prev_length-1,e.prev_length-=2;do{++e.strstart<=s&&(e.ins_h=me(e,e.ins_h,e.window[e.strstart+3-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart)}while(0!=--e.prev_length);if(e.match_available=0,e.match_length=2,e.strstart++,r&&(ve(e,!1),0===e.strm.avail_out))return 1}else if(e.match_available){if(r=Z(e,0,e.window[e.strstart-1]),r&&ve(e,!1),e.strstart++,e.lookahead--,0===e.strm.avail_out)return 1}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(r=Z(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<2?e.strstart:2,t===Y?(ve(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(ve(e,!1),0===e.strm.avail_out)?1:2};function Ne(e,t,n,r,s){this.good_length=e,this.max_lazy=t,this.nice_length=n,this.max_chain=r,this.func=s}const Ie=[new Ne(0,0,0,0,Ce),new Ne(4,4,8,4,Te),new Ne(4,5,16,8,Te),new Ne(4,6,32,32,Te),new Ne(4,4,16,16,Pe),new Ne(8,16,32,32,Pe),new Ne(8,16,128,128,Pe),new Ne(8,32,128,256,Pe),new Ne(32,128,258,1024,Pe),new Ne(32,258,258,4096,Pe)];function ke(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=le,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),ge(this.dyn_ltree),ge(this.dyn_dtree),ge(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),ge(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),ge(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const xe=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.status!==fe&&57!==t.status&&69!==t.status&&73!==t.status&&91!==t.status&&103!==t.status&&t.status!==de&&t.status!==_e?1:0},Re=e=>{if(xe(e))return he(e,K);e.total_in=e.total_out=0,e.data_type=oe;const t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=2===t.wrap?57:t.wrap?fe:de,e.adler=2===t.wrap?0:1,t.last_flush=-2,z(t),V},Be=e=>{const t=Re(e);var n;return t===V&&((n=e.state).window_size=2*n.w_size,ge(n.head),n.max_lazy_match=Ie[n.level].max_lazy,n.good_match=Ie[n.level].good_length,n.nice_match=Ie[n.level].nice_length,n.max_chain_length=Ie[n.level].max_chain,n.strstart=0,n.block_start=0,n.lookahead=0,n.insert=0,n.match_length=n.prev_length=2,n.match_available=0,n.ins_h=0),t},Oe=(e,t,n,r,s,a)=>{if(!e)return K;let i=1;if(t===te&&(t=6),r<0?(i=0,r=-r):r>15&&(i=2,r-=16),s<1||s>9||n!==le||r<8||r>15||t<0||t>9||a<0||a>ae||8===r&&1!==i)return he(e,K);8===r&&(r=9);const o=new ke;return e.state=o,o.strm=e,o.status=fe,o.wrap=i,o.gzhead=null,o.w_bits=r,o.w_size=1<<o.w_bits,o.w_mask=o.w_size-1,o.hash_bits=s+7,o.hash_size=1<<o.hash_bits,o.hash_mask=o.hash_size-1,o.hash_shift=~~((o.hash_bits+3-1)/3),o.window=new Uint8Array(2*o.w_size),o.head=new Uint16Array(o.hash_size),o.prev=new Uint16Array(o.w_size),o.lit_bufsize=1<<s+6,o.pending_buf_size=4*o.lit_bufsize,o.pending_buf=new Uint8Array(o.pending_buf_size),o.sym_buf=o.lit_bufsize,o.sym_end=3*(o.lit_bufsize-1),o.level=t,o.strategy=a,o.method=n,Be(e)};var De={deflateInit:(e,t)=>Oe(e,t,le,15,8,ie),deflateInit2:Oe,deflateReset:Be,deflateResetKeep:Re,deflateSetHeader:(e,t)=>xe(e)||2!==e.state.wrap?K:(e.state.gzhead=t,V),deflate:(e,t)=>{if(xe(e)||t>J||t<0)return e?he(e,K):K;const n=e.state;if(!e.output||0!==e.avail_in&&!e.input||n.status===_e&&t!==Y)return he(e,0===e.avail_out?ee:K);const r=n.last_flush;if(n.last_flush=t,0!==n.pending){if(ye(e),0===e.avail_out)return n.last_flush=-1,V}else if(0===e.avail_in&&pe(t)<=pe(r)&&t!==Y)return he(e,ee);if(n.status===_e&&0!==e.avail_in)return he(e,ee);if(n.status===fe&&0===n.wrap&&(n.status=de),n.status===fe){let t=le+(n.w_bits-8<<4)<<8,r=-1;if(r=n.strategy>=re||n.level<2?0:n.level<6?1:6===n.level?2:3,t|=r<<6,0!==n.strstart&&(t|=32),t+=31-t%31,Ee(n,t),0!==n.strstart&&(Ee(n,e.adler>>>16),Ee(n,65535&e.adler)),e.adler=1,n.status=de,ye(e),0!==n.pending)return n.last_flush=-1,V}if(57===n.status)if(e.adler=0,we(n,31),we(n,139),we(n,8),n.gzhead)we(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),we(n,255&n.gzhead.time),we(n,n.gzhead.time>>8&255),we(n,n.gzhead.time>>16&255),we(n,n.gzhead.time>>24&255),we(n,9===n.level?2:n.strategy>=re||n.level<2?4:0),we(n,255&n.gzhead.os),n.gzhead.extra&&n.gzhead.extra.length&&(we(n,255&n.gzhead.extra.length),we(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=F(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=69;else if(we(n,0),we(n,0),we(n,0),we(n,0),we(n,0),we(n,9===n.level?2:n.strategy>=re||n.level<2?4:0),we(n,3),n.status=de,ye(e),0!==n.pending)return n.last_flush=-1,V;if(69===n.status){if(n.gzhead.extra){let t=n.pending,r=(65535&n.gzhead.extra.length)-n.gzindex;for(;n.pending+r>n.pending_buf_size;){let s=n.pending_buf_size-n.pending;if(n.pending_buf.set(n.gzhead.extra.subarray(n.gzindex,n.gzindex+s),n.pending),n.pending=n.pending_buf_size,n.gzhead.hcrc&&n.pending>t&&(e.adler=F(e.adler,n.pending_buf,n.pending-t,t)),n.gzindex+=s,ye(e),0!==n.pending)return n.last_flush=-1,V;t=0,r-=s}let s=new Uint8Array(n.gzhead.extra);n.pending_buf.set(s.subarray(n.gzindex,n.gzindex+r),n.pending),n.pending+=r,n.gzhead.hcrc&&n.pending>t&&(e.adler=F(e.adler,n.pending_buf,n.pending-t,t)),n.gzindex=0}n.status=73}if(73===n.status){if(n.gzhead.name){let t,r=n.pending;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>r&&(e.adler=F(e.adler,n.pending_buf,n.pending-r,r)),ye(e),0!==n.pending)return n.last_flush=-1,V;r=0}t=n.gzindex<n.gzhead.name.length?255&n.gzhead.name.charCodeAt(n.gzindex++):0,we(n,t)}while(0!==t);n.gzhead.hcrc&&n.pending>r&&(e.adler=F(e.adler,n.pending_buf,n.pending-r,r)),n.gzindex=0}n.status=91}if(91===n.status){if(n.gzhead.comment){let t,r=n.pending;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>r&&(e.adler=F(e.adler,n.pending_buf,n.pending-r,r)),ye(e),0!==n.pending)return n.last_flush=-1,V;r=0}t=n.gzindex<n.gzhead.comment.length?255&n.gzhead.comment.charCodeAt(n.gzindex++):0,we(n,t)}while(0!==t);n.gzhead.hcrc&&n.pending>r&&(e.adler=F(e.adler,n.pending_buf,n.pending-r,r))}n.status=103}if(103===n.status){if(n.gzhead.hcrc){if(n.pending+2>n.pending_buf_size&&(ye(e),0!==n.pending))return n.last_flush=-1,V;we(n,255&e.adler),we(n,e.adler>>8&255),e.adler=0}if(n.status=de,ye(e),0!==n.pending)return n.last_flush=-1,V}if(0!==e.avail_in||0!==n.lookahead||t!==G&&n.status!==_e){let r=0===n.level?Ce(n,t):n.strategy===re?((e,t)=>{let n;for(;;){if(0===e.lookahead&&(Se(e),0===e.lookahead)){if(t===G)return 1;break}if(e.match_length=0,n=Z(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(ve(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===Y?(ve(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(ve(e,!1),0===e.strm.avail_out)?1:2})(n,t):n.strategy===se?((e,t)=>{let n,r,s,a;const i=e.window;for(;;){if(e.lookahead<=ce){if(Se(e),e.lookahead<=ce&&t===G)return 1;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=3&&e.strstart>0&&(s=e.strstart-1,r=i[s],r===i[++s]&&r===i[++s]&&r===i[++s])){a=e.strstart+ce;do{}while(r===i[++s]&&r===i[++s]&&r===i[++s]&&r===i[++s]&&r===i[++s]&&r===i[++s]&&r===i[++s]&&r===i[++s]&&s<a);e.match_length=ce-(a-s),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=3?(n=Z(e,1,e.match_length-3),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=Z(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(ve(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===Y?(ve(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(ve(e,!1),0===e.strm.avail_out)?1:2})(n,t):Ie[n.level].func(n,t);if(3!==r&&4!==r||(n.status=_e),1===r||3===r)return 0===e.avail_out&&(n.last_flush=-1),V;if(2===r&&(t===Q?W(n):t!==J&&(U(n,0,0,!1),t===X&&(ge(n.head),0===n.lookahead&&(n.strstart=0,n.block_start=0,n.insert=0))),ye(e),0===e.avail_out))return n.last_flush=-1,V}return t!==Y?V:n.wrap<=0?q:(2===n.wrap?(we(n,255&e.adler),we(n,e.adler>>8&255),we(n,e.adler>>16&255),we(n,e.adler>>24&255),we(n,255&e.total_in),we(n,e.total_in>>8&255),we(n,e.total_in>>16&255),we(n,e.total_in>>24&255)):(Ee(n,e.adler>>>16),Ee(n,65535&e.adler)),ye(e),n.wrap>0&&(n.wrap=-n.wrap),0!==n.pending?V:q)},deflateEnd:e=>{if(xe(e))return K;const t=e.state.status;return e.state=null,t===de?he(e,$):V},deflateSetDictionary:(e,t)=>{let n=t.length;if(xe(e))return K;const r=e.state,s=r.wrap;if(2===s||1===s&&r.status!==fe||r.lookahead)return K;if(1===s&&(e.adler=O(e.adler,t,n,0)),r.wrap=0,n>=r.w_size){0===s&&(ge(r.head),r.strstart=0,r.block_start=0,r.insert=0);let e=new Uint8Array(r.w_size);e.set(t.subarray(n-r.w_size,n),0),t=e,n=r.w_size}const a=e.avail_in,i=e.next_in,o=e.input;for(e.avail_in=n,e.next_in=0,e.input=t,Se(r);r.lookahead>=3;){let e=r.strstart,t=r.lookahead-2;do{r.ins_h=me(r,r.ins_h,r.window[e+3-1]),r.prev[e&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=e,e++}while(--t);r.strstart=e,r.lookahead=2,Se(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=2,r.match_available=0,e.next_in=i,e.input=o,e.avail_in=a,r.wrap=s,V},deflateInfo:"pako deflate (from Nodeca project)"};const Fe=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var He={assign:function(e){const t=Array.prototype.slice.call(arguments,1);for(;t.length;){const n=t.shift();if(n){if("object"!=typeof n)throw new TypeError(n+"must be non-object");for(const t in n)Fe(n,t)&&(e[t]=n[t])}}return e},flattenChunks:e=>{let t=0;for(let n=0,r=e.length;n<r;n++)t+=e[n].length;const n=new Uint8Array(t);for(let t=0,r=0,s=e.length;t<s;t++){let s=e[t];n.set(s,r),r+=s.length}return n}};let Me=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(e){Me=!1}const ze=new Uint8Array(256);for(let e=0;e<256;e++)ze[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;ze[254]=ze[254]=1;var Ue={string2buf:e=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(e);let t,n,r,s,a,i=e.length,o=0;for(s=0;s<i;s++)n=e.charCodeAt(s),55296==(64512&n)&&s+1<i&&(r=e.charCodeAt(s+1),56320==(64512&r)&&(n=65536+(n-55296<<10)+(r-56320),s++)),o+=n<128?1:n<2048?2:n<65536?3:4;for(t=new Uint8Array(o),a=0,s=0;a<o;s++)n=e.charCodeAt(s),55296==(64512&n)&&s+1<i&&(r=e.charCodeAt(s+1),56320==(64512&r)&&(n=65536+(n-55296<<10)+(r-56320),s++)),n<128?t[a++]=n:n<2048?(t[a++]=192|n>>>6,t[a++]=128|63&n):n<65536?(t[a++]=224|n>>>12,t[a++]=128|n>>>6&63,t[a++]=128|63&n):(t[a++]=240|n>>>18,t[a++]=128|n>>>12&63,t[a++]=128|n>>>6&63,t[a++]=128|63&n);return t},buf2string:(e,t)=>{const n=t||e.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(e.subarray(0,t));let r,s;const a=new Array(2*n);for(s=0,r=0;r<n;){let t=e[r++];if(t<128){a[s++]=t;continue}let i=ze[t];if(i>4)a[s++]=65533,r+=i-1;else{for(t&=2===i?31:3===i?15:7;i>1&&r<n;)t=t<<6|63&e[r++],i--;i>1?a[s++]=65533:t<65536?a[s++]=t:(t-=65536,a[s++]=55296|t>>10&1023,a[s++]=56320|1023&t)}}return((e,t)=>{if(t<65534&&e.subarray&&Me)return String.fromCharCode.apply(null,e.length===t?e:e.subarray(0,t));let n="";for(let r=0;r<t;r++)n+=String.fromCharCode(e[r]);return n})(a,s)},utf8border:(e,t)=>{(t=t||e.length)>e.length&&(t=e.length);let n=t-1;for(;n>=0&&128==(192&e[n]);)n--;return n<0||0===n?t:n+ze[e[n]]>t?n:t}},je=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0};const Ze=Object.prototype.toString,{Z_NO_FLUSH:We,Z_SYNC_FLUSH:Ge,Z_FULL_FLUSH:Qe,Z_FINISH:Xe,Z_OK:Ye,Z_STREAM_END:Je,Z_DEFAULT_COMPRESSION:Ve,Z_DEFAULT_STRATEGY:qe,Z_DEFLATED:Ke}=M;function $e(e){this.options=He.assign({level:Ve,method:Ke,chunkSize:16384,windowBits:15,memLevel:8,strategy:qe},e||{});let t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new je,this.strm.avail_out=0;let n=De.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==Ye)throw new Error(H[n]);if(t.header&&De.deflateSetHeader(this.strm,t.header),t.dictionary){let e;if(e="string"==typeof t.dictionary?Ue.string2buf(t.dictionary):"[object ArrayBuffer]"===Ze.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,n=De.deflateSetDictionary(this.strm,e),n!==Ye)throw new Error(H[n]);this._dict_set=!0}}function et(e,t){const n=new $e(t);if(n.push(e,!0),n.err)throw n.msg||H[n.err];return n.result}$e.prototype.push=function(e,t){const n=this.strm,r=this.options.chunkSize;let s,a;if(this.ended)return!1;for(a=t===~~t?t:!0===t?Xe:We,"string"==typeof e?n.input=Ue.string2buf(e):"[object ArrayBuffer]"===Ze.call(e)?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;;)if(0===n.avail_out&&(n.output=new Uint8Array(r),n.next_out=0,n.avail_out=r),(a===Ge||a===Qe)&&n.avail_out<=6)this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;else{if(s=De.deflate(n,a),s===Je)return n.next_out>0&&this.onData(n.output.subarray(0,n.next_out)),s=De.deflateEnd(this.strm),this.onEnd(s),this.ended=!0,s===Ye;if(0!==n.avail_out){if(a>0&&n.next_out>0)this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;else if(0===n.avail_in)break}else this.onData(n.output)}return!0},$e.prototype.onData=function(e){this.chunks.push(e)},$e.prototype.onEnd=function(e){e===Ye&&(this.result=He.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var tt={Deflate:$e,deflate:et,deflateRaw:function(e,t){return(t=t||{}).raw=!0,et(e,t)},gzip:function(e,t){return(t=t||{}).gzip=!0,et(e,t)},constants:M};const nt=16209;var rt=function(e,t){let n,r,s,a,i,o,l,c,u,f,d,_,h,p,g,b,m,y,v,w,E,L,A,S;const C=e.state;n=e.next_in,A=e.input,r=n+(e.avail_in-5),s=e.next_out,S=e.output,a=s-(t-e.avail_out),i=s+(e.avail_out-257),o=C.dmax,l=C.wsize,c=C.whave,u=C.wnext,f=C.window,d=C.hold,_=C.bits,h=C.lencode,p=C.distcode,g=(1<<C.lenbits)-1,b=(1<<C.distbits)-1;e:do{_<15&&(d+=A[n++]<<_,_+=8,d+=A[n++]<<_,_+=8),m=h[d&g];t:for(;;){if(y=m>>>24,d>>>=y,_-=y,y=m>>>16&255,0===y)S[s++]=65535&m;else{if(!(16&y)){if(0==(64&y)){m=h[(65535&m)+(d&(1<<y)-1)];continue t}if(32&y){C.mode=16191;break e}e.msg="invalid literal/length code",C.mode=nt;break e}v=65535&m,y&=15,y&&(_<y&&(d+=A[n++]<<_,_+=8),v+=d&(1<<y)-1,d>>>=y,_-=y),_<15&&(d+=A[n++]<<_,_+=8,d+=A[n++]<<_,_+=8),m=p[d&b];n:for(;;){if(y=m>>>24,d>>>=y,_-=y,y=m>>>16&255,!(16&y)){if(0==(64&y)){m=p[(65535&m)+(d&(1<<y)-1)];continue n}e.msg="invalid distance code",C.mode=nt;break e}if(w=65535&m,y&=15,_<y&&(d+=A[n++]<<_,_+=8,_<y&&(d+=A[n++]<<_,_+=8)),w+=d&(1<<y)-1,w>o){e.msg="invalid distance too far back",C.mode=nt;break e}if(d>>>=y,_-=y,y=s-a,w>y){if(y=w-y,y>c&&C.sane){e.msg="invalid distance too far back",C.mode=nt;break e}if(E=0,L=f,0===u){if(E+=l-y,y<v){v-=y;do{S[s++]=f[E++]}while(--y);E=s-w,L=S}}else if(u<y){if(E+=l+u-y,y-=u,y<v){v-=y;do{S[s++]=f[E++]}while(--y);if(E=0,u<v){y=u,v-=y;do{S[s++]=f[E++]}while(--y);E=s-w,L=S}}}else if(E+=u-y,y<v){v-=y;do{S[s++]=f[E++]}while(--y);E=s-w,L=S}for(;v>2;)S[s++]=L[E++],S[s++]=L[E++],S[s++]=L[E++],v-=3;v&&(S[s++]=L[E++],v>1&&(S[s++]=L[E++]))}else{E=s-w;do{S[s++]=S[E++],S[s++]=S[E++],S[s++]=S[E++],v-=3}while(v>2);v&&(S[s++]=S[E++],v>1&&(S[s++]=S[E++]))}break}}break}}while(n<r&&s<i);v=_>>3,n-=v,_-=v<<3,d&=(1<<_)-1,e.next_in=n,e.next_out=s,e.avail_in=n<r?r-n+5:5-(n-r),e.avail_out=s<i?i-s+257:257-(s-i),C.hold=d,C.bits=_};const st=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),at=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),it=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),ot=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]);var lt=(e,t,n,r,s,a,i,o)=>{const l=o.bits;let c,u,f,d,_,h,p=0,g=0,b=0,m=0,y=0,v=0,w=0,E=0,L=0,A=0,S=null;const C=new Uint16Array(16),T=new Uint16Array(16);let P,N,I,k=null;for(p=0;p<=15;p++)C[p]=0;for(g=0;g<r;g++)C[t[n+g]]++;for(y=l,m=15;m>=1&&0===C[m];m--);if(y>m&&(y=m),0===m)return s[a++]=20971520,s[a++]=20971520,o.bits=1,0;for(b=1;b<m&&0===C[b];b++);for(y<b&&(y=b),E=1,p=1;p<=15;p++)if(E<<=1,E-=C[p],E<0)return-1;if(E>0&&(0===e||1!==m))return-1;for(T[1]=0,p=1;p<15;p++)T[p+1]=T[p]+C[p];for(g=0;g<r;g++)0!==t[n+g]&&(i[T[t[n+g]]++]=g);if(0===e?(S=k=i,h=20):1===e?(S=st,k=at,h=257):(S=it,k=ot,h=0),A=0,g=0,p=b,_=a,v=y,w=0,f=-1,L=1<<y,d=L-1,1===e&&L>852||2===e&&L>592)return 1;for(;;){P=p-w,i[g]+1<h?(N=0,I=i[g]):i[g]>=h?(N=k[i[g]-h],I=S[i[g]-h]):(N=96,I=0),c=1<<p-w,u=1<<v,b=u;do{u-=c,s[_+(A>>w)+u]=P<<24|N<<16|I|0}while(0!==u);for(c=1<<p-1;A&c;)c>>=1;if(0!==c?(A&=c-1,A+=c):A=0,g++,0==--C[p]){if(p===m)break;p=t[n+i[g]]}if(p>y&&(A&d)!==f){for(0===w&&(w=y),_+=b,v=p-w,E=1<<v;v+w<m&&(E-=C[v+w],!(E<=0));)v++,E<<=1;if(L+=1<<v,1===e&&L>852||2===e&&L>592)return 1;f=A&d,s[f]=y<<24|v<<16|_-a|0}}return 0!==A&&(s[_+A]=p-w<<24|64<<16|0),o.bits=y,0};const{Z_FINISH:ct,Z_BLOCK:ut,Z_TREES:ft,Z_OK:dt,Z_STREAM_END:_t,Z_NEED_DICT:ht,Z_STREAM_ERROR:pt,Z_DATA_ERROR:gt,Z_MEM_ERROR:bt,Z_BUF_ERROR:mt,Z_DEFLATED:yt}=M,vt=16180,wt=16190,Et=16191,Lt=16192,At=16194,St=16199,Ct=16200,Tt=16206,Pt=16209,Nt=e=>(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24);function It(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const kt=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.mode<vt||t.mode>16211?1:0},xt=e=>{if(kt(e))return pt;const t=e.state;return e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=vt,t.last=0,t.havedict=0,t.flags=-1,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(852),t.distcode=t.distdyn=new Int32Array(592),t.sane=1,t.back=-1,dt},Rt=e=>{if(kt(e))return pt;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,xt(e)},Bt=(e,t)=>{let n;if(kt(e))return pt;const r=e.state;return t<0?(n=0,t=-t):(n=5+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?pt:(null!==r.window&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,Rt(e))},Ot=(e,t)=>{if(!e)return pt;const n=new It;e.state=n,n.strm=e,n.window=null,n.mode=vt;const r=Bt(e,t);return r!==dt&&(e.state=null),r};let Dt,Ft,Ht=!0;const Mt=e=>{if(Ht){Dt=new Int32Array(512),Ft=new Int32Array(32);let t=0;for(;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(lt(1,e.lens,0,288,Dt,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;lt(2,e.lens,0,32,Ft,0,e.work,{bits:5}),Ht=!1}e.lencode=Dt,e.lenbits=9,e.distcode=Ft,e.distbits=5},zt=(e,t,n,r)=>{let s;const a=e.state;return null===a.window&&(a.wsize=1<<a.wbits,a.wnext=0,a.whave=0,a.window=new Uint8Array(a.wsize)),r>=a.wsize?(a.window.set(t.subarray(n-a.wsize,n),0),a.wnext=0,a.whave=a.wsize):(s=a.wsize-a.wnext,s>r&&(s=r),a.window.set(t.subarray(n-r,n-r+s),a.wnext),(r-=s)?(a.window.set(t.subarray(n-r,n),0),a.wnext=r,a.whave=a.wsize):(a.wnext+=s,a.wnext===a.wsize&&(a.wnext=0),a.whave<a.wsize&&(a.whave+=s))),0};var Ut={inflateReset:Rt,inflateReset2:Bt,inflateResetKeep:xt,inflateInit:e=>Ot(e,15),inflateInit2:Ot,inflate:(e,t)=>{let n,r,s,a,i,o,l,c,u,f,d,_,h,p,g,b,m,y,v,w,E,L,A=0;const S=new Uint8Array(4);let C,T;const P=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(kt(e)||!e.output||!e.input&&0!==e.avail_in)return pt;n=e.state,n.mode===Et&&(n.mode=Lt),i=e.next_out,s=e.output,l=e.avail_out,a=e.next_in,r=e.input,o=e.avail_in,c=n.hold,u=n.bits,f=o,d=l,L=dt;e:for(;;)switch(n.mode){case vt:if(0===n.wrap){n.mode=Lt;break}for(;u<16;){if(0===o)break e;o--,c+=r[a++]<<u,u+=8}if(2&n.wrap&&35615===c){0===n.wbits&&(n.wbits=15),n.check=0,S[0]=255&c,S[1]=c>>>8&255,n.check=F(n.check,S,2,0),c=0,u=0,n.mode=16181;break}if(n.head&&(n.head.done=!1),!(1&n.wrap)||(((255&c)<<8)+(c>>8))%31){e.msg="incorrect header check",n.mode=Pt;break}if((15&c)!==yt){e.msg="unknown compression method",n.mode=Pt;break}if(c>>>=4,u-=4,E=8+(15&c),0===n.wbits&&(n.wbits=E),E>15||E>n.wbits){e.msg="invalid window size",n.mode=Pt;break}n.dmax=1<<n.wbits,n.flags=0,e.adler=n.check=1,n.mode=512&c?16189:Et,c=0,u=0;break;case 16181:for(;u<16;){if(0===o)break e;o--,c+=r[a++]<<u,u+=8}if(n.flags=c,(255&n.flags)!==yt){e.msg="unknown compression method",n.mode=Pt;break}if(57344&n.flags){e.msg="unknown header flags set",n.mode=Pt;break}n.head&&(n.head.text=c>>8&1),512&n.flags&&4&n.wrap&&(S[0]=255&c,S[1]=c>>>8&255,n.check=F(n.check,S,2,0)),c=0,u=0,n.mode=16182;case 16182:for(;u<32;){if(0===o)break e;o--,c+=r[a++]<<u,u+=8}n.head&&(n.head.time=c),512&n.flags&&4&n.wrap&&(S[0]=255&c,S[1]=c>>>8&255,S[2]=c>>>16&255,S[3]=c>>>24&255,n.check=F(n.check,S,4,0)),c=0,u=0,n.mode=16183;case 16183:for(;u<16;){if(0===o)break e;o--,c+=r[a++]<<u,u+=8}n.head&&(n.head.xflags=255&c,n.head.os=c>>8),512&n.flags&&4&n.wrap&&(S[0]=255&c,S[1]=c>>>8&255,n.check=F(n.check,S,2,0)),c=0,u=0,n.mode=16184;case 16184:if(1024&n.flags){for(;u<16;){if(0===o)break e;o--,c+=r[a++]<<u,u+=8}n.length=c,n.head&&(n.head.extra_len=c),512&n.flags&&4&n.wrap&&(S[0]=255&c,S[1]=c>>>8&255,n.check=F(n.check,S,2,0)),c=0,u=0}else n.head&&(n.head.extra=null);n.mode=16185;case 16185:if(1024&n.flags&&(_=n.length,_>o&&(_=o),_&&(n.head&&(E=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Uint8Array(n.head.extra_len)),n.head.extra.set(r.subarray(a,a+_),E)),512&n.flags&&4&n.wrap&&(n.check=F(n.check,r,_,a)),o-=_,a+=_,n.length-=_),n.length))break e;n.length=0,n.mode=16186;case 16186:if(2048&n.flags){if(0===o)break e;_=0;do{E=r[a+_++],n.head&&E&&n.length<65536&&(n.head.name+=String.fromCharCode(E))}while(E&&_<o);if(512&n.flags&&4&n.wrap&&(n.check=F(n.check,r,_,a)),o-=_,a+=_,E)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=16187;case 16187:if(4096&n.flags){if(0===o)break e;_=0;do{E=r[a+_++],n.head&&E&&n.length<65536&&(n.head.comment+=String.fromCharCode(E))}while(E&&_<o);if(512&n.flags&&4&n.wrap&&(n.check=F(n.check,r,_,a)),o-=_,a+=_,E)break e}else n.head&&(n.head.comment=null);n.mode=16188;case 16188:if(512&n.flags){for(;u<16;){if(0===o)break e;o--,c+=r[a++]<<u,u+=8}if(4&n.wrap&&c!==(65535&n.check)){e.msg="header crc mismatch",n.mode=Pt;break}c=0,u=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=Et;break;case 16189:for(;u<32;){if(0===o)break e;o--,c+=r[a++]<<u,u+=8}e.adler=n.check=Nt(c),c=0,u=0,n.mode=wt;case wt:if(0===n.havedict)return e.next_out=i,e.avail_out=l,e.next_in=a,e.avail_in=o,n.hold=c,n.bits=u,ht;e.adler=n.check=1,n.mode=Et;case Et:if(t===ut||t===ft)break e;case Lt:if(n.last){c>>>=7&u,u-=7&u,n.mode=Tt;break}for(;u<3;){if(0===o)break e;o--,c+=r[a++]<<u,u+=8}switch(n.last=1&c,c>>>=1,u-=1,3&c){case 0:n.mode=16193;break;case 1:if(Mt(n),n.mode=St,t===ft){c>>>=2,u-=2;break e}break;case 2:n.mode=16196;break;case 3:e.msg="invalid block type",n.mode=Pt}c>>>=2,u-=2;break;case 16193:for(c>>>=7&u,u-=7&u;u<32;){if(0===o)break e;o--,c+=r[a++]<<u,u+=8}if((65535&c)!=(c>>>16^65535)){e.msg="invalid stored block lengths",n.mode=Pt;break}if(n.length=65535&c,c=0,u=0,n.mode=At,t===ft)break e;case At:n.mode=16195;case 16195:if(_=n.length,_){if(_>o&&(_=o),_>l&&(_=l),0===_)break e;s.set(r.subarray(a,a+_),i),o-=_,a+=_,l-=_,i+=_,n.length-=_;break}n.mode=Et;break;case 16196:for(;u<14;){if(0===o)break e;o--,c+=r[a++]<<u,u+=8}if(n.nlen=257+(31&c),c>>>=5,u-=5,n.ndist=1+(31&c),c>>>=5,u-=5,n.ncode=4+(15&c),c>>>=4,u-=4,n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=Pt;break}n.have=0,n.mode=16197;case 16197:for(;n.have<n.ncode;){for(;u<3;){if(0===o)break e;o--,c+=r[a++]<<u,u+=8}n.lens[P[n.have++]]=7&c,c>>>=3,u-=3}for(;n.have<19;)n.lens[P[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,C={bits:n.lenbits},L=lt(0,n.lens,0,19,n.lencode,0,n.work,C),n.lenbits=C.bits,L){e.msg="invalid code lengths set",n.mode=Pt;break}n.have=0,n.mode=16198;case 16198:for(;n.have<n.nlen+n.ndist;){for(;A=n.lencode[c&(1<<n.lenbits)-1],g=A>>>24,b=A>>>16&255,m=65535&A,!(g<=u);){if(0===o)break e;o--,c+=r[a++]<<u,u+=8}if(m<16)c>>>=g,u-=g,n.lens[n.have++]=m;else{if(16===m){for(T=g+2;u<T;){if(0===o)break e;o--,c+=r[a++]<<u,u+=8}if(c>>>=g,u-=g,0===n.have){e.msg="invalid bit length repeat",n.mode=Pt;break}E=n.lens[n.have-1],_=3+(3&c),c>>>=2,u-=2}else if(17===m){for(T=g+3;u<T;){if(0===o)break e;o--,c+=r[a++]<<u,u+=8}c>>>=g,u-=g,E=0,_=3+(7&c),c>>>=3,u-=3}else{for(T=g+7;u<T;){if(0===o)break e;o--,c+=r[a++]<<u,u+=8}c>>>=g,u-=g,E=0,_=11+(127&c),c>>>=7,u-=7}if(n.have+_>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=Pt;break}for(;_--;)n.lens[n.have++]=E}}if(n.mode===Pt)break;if(0===n.lens[256]){e.msg="invalid code -- missing end-of-block",n.mode=Pt;break}if(n.lenbits=9,C={bits:n.lenbits},L=lt(1,n.lens,0,n.nlen,n.lencode,0,n.work,C),n.lenbits=C.bits,L){e.msg="invalid literal/lengths set",n.mode=Pt;break}if(n.distbits=6,n.distcode=n.distdyn,C={bits:n.distbits},L=lt(2,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,C),n.distbits=C.bits,L){e.msg="invalid distances set",n.mode=Pt;break}if(n.mode=St,t===ft)break e;case St:n.mode=Ct;case Ct:if(o>=6&&l>=258){e.next_out=i,e.avail_out=l,e.next_in=a,e.avail_in=o,n.hold=c,n.bits=u,rt(e,d),i=e.next_out,s=e.output,l=e.avail_out,a=e.next_in,r=e.input,o=e.avail_in,c=n.hold,u=n.bits,n.mode===Et&&(n.back=-1);break}for(n.back=0;A=n.lencode[c&(1<<n.lenbits)-1],g=A>>>24,b=A>>>16&255,m=65535&A,!(g<=u);){if(0===o)break e;o--,c+=r[a++]<<u,u+=8}if(b&&0==(240&b)){for(y=g,v=b,w=m;A=n.lencode[w+((c&(1<<y+v)-1)>>y)],g=A>>>24,b=A>>>16&255,m=65535&A,!(y+g<=u);){if(0===o)break e;o--,c+=r[a++]<<u,u+=8}c>>>=y,u-=y,n.back+=y}if(c>>>=g,u-=g,n.back+=g,n.length=m,0===b){n.mode=16205;break}if(32&b){n.back=-1,n.mode=Et;break}if(64&b){e.msg="invalid literal/length code",n.mode=Pt;break}n.extra=15&b,n.mode=16201;case 16201:if(n.extra){for(T=n.extra;u<T;){if(0===o)break e;o--,c+=r[a++]<<u,u+=8}n.length+=c&(1<<n.extra)-1,c>>>=n.extra,u-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=16202;case 16202:for(;A=n.distcode[c&(1<<n.distbits)-1],g=A>>>24,b=A>>>16&255,m=65535&A,!(g<=u);){if(0===o)break e;o--,c+=r[a++]<<u,u+=8}if(0==(240&b)){for(y=g,v=b,w=m;A=n.distcode[w+((c&(1<<y+v)-1)>>y)],g=A>>>24,b=A>>>16&255,m=65535&A,!(y+g<=u);){if(0===o)break e;o--,c+=r[a++]<<u,u+=8}c>>>=y,u-=y,n.back+=y}if(c>>>=g,u-=g,n.back+=g,64&b){e.msg="invalid distance code",n.mode=Pt;break}n.offset=m,n.extra=15&b,n.mode=16203;case 16203:if(n.extra){for(T=n.extra;u<T;){if(0===o)break e;o--,c+=r[a++]<<u,u+=8}n.offset+=c&(1<<n.extra)-1,c>>>=n.extra,u-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=Pt;break}n.mode=16204;case 16204:if(0===l)break e;if(_=d-l,n.offset>_){if(_=n.offset-_,_>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=Pt;break}_>n.wnext?(_-=n.wnext,h=n.wsize-_):h=n.wnext-_,_>n.length&&(_=n.length),p=n.window}else p=s,h=i-n.offset,_=n.length;_>l&&(_=l),l-=_,n.length-=_;do{s[i++]=p[h++]}while(--_);0===n.length&&(n.mode=Ct);break;case 16205:if(0===l)break e;s[i++]=n.length,l--,n.mode=Ct;break;case Tt:if(n.wrap){for(;u<32;){if(0===o)break e;o--,c|=r[a++]<<u,u+=8}if(d-=l,e.total_out+=d,n.total+=d,4&n.wrap&&d&&(e.adler=n.check=n.flags?F(n.check,s,d,i-d):O(n.check,s,d,i-d)),d=l,4&n.wrap&&(n.flags?c:Nt(c))!==n.check){e.msg="incorrect data check",n.mode=Pt;break}c=0,u=0}n.mode=16207;case 16207:if(n.wrap&&n.flags){for(;u<32;){if(0===o)break e;o--,c+=r[a++]<<u,u+=8}if(4&n.wrap&&c!==(4294967295&n.total)){e.msg="incorrect length check",n.mode=Pt;break}c=0,u=0}n.mode=16208;case 16208:L=_t;break e;case Pt:L=gt;break e;case 16210:return bt;default:return pt}return e.next_out=i,e.avail_out=l,e.next_in=a,e.avail_in=o,n.hold=c,n.bits=u,(n.wsize||d!==e.avail_out&&n.mode<Pt&&(n.mode<Tt||t!==ct))&&zt(e,e.output,e.next_out,d-e.avail_out),f-=e.avail_in,d-=e.avail_out,e.total_in+=f,e.total_out+=d,n.total+=d,4&n.wrap&&d&&(e.adler=n.check=n.flags?F(n.check,s,d,e.next_out-d):O(n.check,s,d,e.next_out-d)),e.data_type=n.bits+(n.last?64:0)+(n.mode===Et?128:0)+(n.mode===St||n.mode===At?256:0),(0===f&&0===d||t===ct)&&L===dt&&(L=mt),L},inflateEnd:e=>{if(kt(e))return pt;let t=e.state;return t.window&&(t.window=null),e.state=null,dt},inflateGetHeader:(e,t)=>{if(kt(e))return pt;const n=e.state;return 0==(2&n.wrap)?pt:(n.head=t,t.done=!1,dt)},inflateSetDictionary:(e,t)=>{const n=t.length;let r,s,a;return kt(e)?pt:(r=e.state,0!==r.wrap&&r.mode!==wt?pt:r.mode===wt&&(s=1,s=O(s,t,n,0),s!==r.check)?gt:(a=zt(e,t,n,n),a?(r.mode=16210,bt):(r.havedict=1,dt)))},inflateInfo:"pako inflate (from Nodeca project)"},jt=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1};const Zt=Object.prototype.toString,{Z_NO_FLUSH:Wt,Z_FINISH:Gt,Z_OK:Qt,Z_STREAM_END:Xt,Z_NEED_DICT:Yt,Z_STREAM_ERROR:Jt,Z_DATA_ERROR:Vt,Z_MEM_ERROR:qt}=M;function Kt(e){this.options=He.assign({chunkSize:65536,windowBits:15,to:""},e||{});const t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(t.windowBits>=0&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&0==(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new je,this.strm.avail_out=0;let n=Ut.inflateInit2(this.strm,t.windowBits);if(n!==Qt)throw new Error(H[n]);if(this.header=new jt,Ut.inflateGetHeader(this.strm,this.header),t.dictionary&&("string"==typeof t.dictionary?t.dictionary=Ue.string2buf(t.dictionary):"[object ArrayBuffer]"===Zt.call(t.dictionary)&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(n=Ut.inflateSetDictionary(this.strm,t.dictionary),n!==Qt)))throw new Error(H[n])}function $t(e,t){const n=new Kt(t);if(n.push(e),n.err)throw n.msg||H[n.err];return n.result}Kt.prototype.push=function(e,t){const n=this.strm,r=this.options.chunkSize,s=this.options.dictionary;let a,i,o;if(this.ended)return!1;for(i=t===~~t?t:!0===t?Gt:Wt,"[object ArrayBuffer]"===Zt.call(e)?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;;){for(0===n.avail_out&&(n.output=new Uint8Array(r),n.next_out=0,n.avail_out=r),a=Ut.inflate(n,i),a===Yt&&s&&(a=Ut.inflateSetDictionary(n,s),a===Qt?a=Ut.inflate(n,i):a===Vt&&(a=Yt));n.avail_in>0&&a===Xt&&n.state.wrap>0&&0!==e[n.next_in];)Ut.inflateReset(n),a=Ut.inflate(n,i);switch(a){case Jt:case Vt:case Yt:case qt:return this.onEnd(a),this.ended=!0,!1}if(o=n.avail_out,n.next_out&&(0===n.avail_out||a===Xt))if("string"===this.options.to){let e=Ue.utf8border(n.output,n.next_out),t=n.next_out-e,s=Ue.buf2string(n.output,e);n.next_out=t,n.avail_out=r-t,t&&n.output.set(n.output.subarray(e,e+t),0),this.onData(s)}else this.onData(n.output.length===n.next_out?n.output:n.output.subarray(0,n.next_out));if(a!==Qt||0!==o){if(a===Xt)return a=Ut.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,!0;if(0===n.avail_in)break}}return!0},Kt.prototype.onData=function(e){this.chunks.push(e)},Kt.prototype.onEnd=function(e){e===Qt&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=He.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var en={Inflate:Kt,inflate:$t,inflateRaw:function(e,t){return(t=t||{}).raw=!0,$t(e,t)},ungzip:$t,constants:M};const{Deflate:tn,deflate:nn,deflateRaw:rn,gzip:sn}=tt,{Inflate:an,inflate:on,inflateRaw:ln,ungzip:cn}=en;var un,fn,dn;n(816).Buffer,function(e){e.PUBLIC="public",e.SECRET="secret"}(un||(un={})),(dn=fn||(fn={})).SECRET="secret",dn.OPEN="open",dn.UNCONSTRAINED="unconstrained";var _n=n(3573);function hn(e){return new _n.C4(256).update(e).digest()}function pn(e){const t=new _n.C4(256);return t.reset(),t.update(e),t.digest("hex")}var gn=n(394),bn=n(3302),mn=n(816).Buffer;const yn=65536,vn=e=>{if(bn)return gn.randomBytes(e);const t="undefined"!=typeof window&&window.crypto?window.crypto:"undefined"!=typeof self&&self.crypto?self.crypto:void 0;if(!t)throw new Error("randomBytes UnsupportedEnvironment");const n=mn.allocUnsafe(e);if(e>yn)for(let r=0;r<e;r+=yn)t.getRandomValues(n.slice(r,r+yn));else t.getRandomValues(n);return n};var wn=n(5294),En=n(816).Buffer;function Ln(e){const t=e.toString("hex");return 0===t.length?BigInt(0):BigInt(`0x${t}`)}function An(e,t){if(e<BigInt(0))throw new Error(`Cannot convert negative bigint ${e.toString()} to buffer with toBufferBE.`);const n=e.toString(16),r=En.from(n.padStart(2*t,"0").slice(0,2*t),"hex");if(r.length>t)throw new Error(`Number ${e.toString(16)} does not fit in ${t}`);return r}function Sn(e,t=!1){const n=e.toString(16),r=n.length%2==0?n.length:n.length+1;return`0x${n.padStart(t?64:r,"0")}`}var Cn=n(816).Buffer;class Tn{constructor(e,t=0){this.buffer=e,this.index=t}static asReader(e){return Cn.isBuffer(e)?new Tn(e):e}readNumber(){return this.index+=4,this.buffer.readUint32BE(this.index-4)}readUInt16(){return this.index+=2,this.buffer.readUInt16BE(this.index-2)}readBoolean(){return this.index+=1,Boolean(this.buffer.at(this.index-1))}readBytes(e){return this.index+=e,Cn.from(this.buffer.subarray(this.index-e,this.index))}readFr(){return Nn.fromBuffer(this)}readFq(){return In.fromBuffer(this)}readNumberVector(){return this.readVector({fromBuffer:e=>e.readNumber()})}readVector(e){const t=this.readNumber(),n=new Array(t);for(let r=0;r<t;r++)n[r]=e.fromBuffer(this);return n}readArray(e,t){return Array.from({length:e},(()=>t.fromBuffer(this)))}readBufferArray(e=-1){const t=[],n=e>=0?this.index+e:this.buffer.length;for(;this.index<n;){const e=this.readBuffer();t.push(e)}if(this.index!==n)throw new Error(`Reader buffer was not fully consumed. Consumed up to ${this.index} bytes. End of data: ${n} bytes.`);return t}readObject(e){return e.fromBuffer(this)}peekBytes(e){return this.buffer.subarray(this.index,e?this.index+e:void 0)}readString(){return this.readBuffer().toString()}readBuffer(){const e=this.readNumber();return this.readBytes(e)}readMap(e){const t=this.readNumber(),n={};for(let r=0;r<t;r++){const t=this.readString(),r=this.readObject(e);n[t]=r}return n}getLength(){return this.buffer.length}}var Pn=n(816).Buffer;class Nn{constructor(e){if(this.value=(e=>!!e.toBigInt)(e)?e.toBigInt():BigInt(e),this.value>Nn.MAX_VALUE)throw new Error(`Fr out of range ${e}.`)}static random(){const e=Ln(vn(Nn.SIZE_IN_BYTES))%Nn.MODULUS;return new Nn(e)}static zero(){return new Nn(0n)}static fromBuffer(e){const t=Tn.asReader(e);return new Nn(Ln(t.readBytes(Nn.SIZE_IN_BYTES)))}static fromString(e){return Nn.fromBuffer(Pn.from(e.replace(/^0x/i,""),"hex"))}toBuffer(){return An(this.value,Nn.SIZE_IN_BYTES)}toString(e=!1){return Sn(this.value,e)}toBigInt(){return this.value}toShortString(){const e=this.toString();return`${e.slice(0,10)}...${e.slice(-4)}`}equals(e){return this.value===e.value}isZero(){return 0n===this.value}toFriendlyJSON(){return this.toString()}}Nn.ZERO=new Nn(0n),Nn.MODULUS=0x30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001n,Nn.MAX_VALUE=Nn.MODULUS-1n,Nn.SIZE_IN_BYTES=32;class In{constructor(e){if(this.value=e,e>In.MAX_VALUE)throw new Error(`Fq out of range ${e}.`)}static random(){return new this(Ln(vn(64))%In.MODULUS)}static fromBuffer(e){return new this(Ln(Tn.asReader(e).readBytes(this.SIZE_IN_BYTES)))}toBuffer(){return An(this.value,In.SIZE_IN_BYTES)}toString(){return Sn(this.value)}isZero(){return 0n===this.value}toFriendlyJSON(){return this.toString()}}In.MODULUS=0x30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47n,In.MAX_VALUE=Nn.MODULUS-1n,In.SIZE_IN_BYTES=32;var kn=n(816).Buffer;const xn=e=>kn.from(wn.sha256().update(e).digest());var Rn=n(816).Buffer;function Bn(e,t){const n=function(e,t){return"constructor"===e?e:`${e}(${t.map((e=>e.type.kind)).join(",")})`}(e,t);return function(e,t){return hn(Rn.from(e)).slice(0,4)}(n)}var On=n(816).Buffer;class Dn{constructor(e,t){this.x=e,this.y=t,this.kind="point"}static random(){return new Dn(Nn.random(),Nn.random())}static fromBuffer(e){const t=Tn.asReader(e);return new this(Nn.fromBuffer(t.readBytes(32)),Nn.fromBuffer(t.readBytes(32)))}static fromString(e){return this.fromBuffer(On.from(e.replace(/^0x/i,""),"hex"))}toFields(){return[this.x,this.y]}toBigInts(){return{x:this.x.value,y:this.y.value}}toBuffer(){return On.concat([this.x.toBuffer(),this.y.toBuffer()])}toString(){return"0x"+this.toBuffer().toString("hex")}toShortString(){const e=this.toString();return`${e.slice(0,10)}...${e.slice(-4)}`}equals(e){return this.x.equals(e.x)&&this.y.equals(e.y)}}Dn.ZERO=new Dn(Nn.ZERO,Nn.ZERO),Dn.SIZE_IN_BYTES=2*Nn.SIZE_IN_BYTES;var Fn=n(816).Buffer;class Hn{constructor(e){this.fields=e}toFields(){return this.fields}static random(){return this.fromField(Nn.random())}toFieldsBuffer(){return Fn.concat([this.fields[0].toBuffer(),this.fields[1].toBuffer()])}toBuffer(){const e=this.fields[0].toBuffer(),t=this.fields[1].toBuffer();return e[0]=t[31],e}equals(e){return this.toBigInt()===e.toBigInt()}toBigInt(){return Ln(this.toBuffer())}static fromBuffer(e){if(32!=e.length)throw new Error("Invalid size of coordinate buffer");const t=Fn.alloc(32);e.copy(t,0,0,32);const n=Fn.alloc(32);return n[31]=t[0],t[0]=0,new Hn([Nn.fromBuffer(t),Nn.fromBuffer(n)])}static fromField(e){const t=e.toBuffer(),n=Fn.alloc(32);return n[31]=t[0],t[0]=0,new Hn([Nn.fromBuffer(t),Nn.fromBuffer(n)])}}Hn.ZERO=new Hn([Nn.ZERO,Nn.ZERO]);var Mn=n(816).Buffer;class zn{constructor(e,t){this.abi=e,this.args=t,this.flattened=[]}encodeArgument(e,t,n){if(void 0===t||null==t)throw new Error(`Undefined argument ${n??"unnamed"} of type ${e.kind}`);switch(e.kind){case"field":if("number"==typeof t)this.flattened.push(new Nn(BigInt(t)));else if("bigint"==typeof t)this.flattened.push(new Nn(t));else{if("object"!=typeof t)throw new Error(`Invalid argument "${t}" of type ${e.kind}`);if(Mn.isBuffer(t))this.flattened.push(Nn.fromBuffer(t));else if("function"==typeof t.toField)this.flattened.push(t.toField());else{if(!(t instanceof Nn))throw new Error(`Argument for ${n} cannot be serialised to a field`);this.flattened.push(t)}}break;case"boolean":this.flattened.push(new Nn(t?1n:0n));break;case"array":for(let r=0;r<e.length;r+=1)this.encodeArgument(e.type,t[r],`${n}[${r}]`);break;case"struct":for(const r of e.fields)this.encodeArgument(r.type,t[r.name],`${n}.${r.name}`);break;case"integer":this.flattened.push(new Nn(t));break;default:throw new Error(`Unsupported type: ${e.kind}`)}}encode(){for(let e=0;e<this.abi.parameters.length;e+=1){const t=this.abi.parameters[e];this.encodeArgument(t.type,this.args[e],t.name)}return this.flattened}}function Un(e,t){return new zn(e,t).encode()}var jn=n(816).Buffer;function Zn(e,t=4){const n=jn.alloc(t);return n.writeUInt32BE(e,t-4),n}function Wn(e,t=4){const n=jn.alloc(t);return n.writeInt32BE(e,t-4),n}function Gn(e){const t=jn.alloc(4);return t.writeUInt32BE(e.length,0),jn.concat([t,e])}function Qn(e,t){return e.map(t)}n(816).Buffer;var Xn=n(816).Buffer;function Yn(e,t=4){const n=Xn.alloc(t);return n.writeUInt32BE(e,t-4),n}function Jn(e){return!!e.toBuffer32}function Vn(...e){let t=[];for(const r of e)Array.isArray(r)?t=[...t,...Vn(...r)]:Xn.isBuffer(r)?t.push(r):"boolean"==typeof r?t.push((n=r,Xn.from([n?1:0]))):"number"==typeof r?t.push(Yn(r)):"string"==typeof r?(t.push(Yn(r.length)),t.push(Xn.from(r))):Jn(r)?t.push(r.toBuffer32()):t.push(r.toBuffer());var n;return t}function qn(...e){return Xn.concat(Vn(...e))}class Kn{constructor(e,t,n,r){this.chainId=e,this.version=t,this.blockNumber=n,this.timestamp=r}static from(e){return new Kn(...Kn.getFields(e))}static empty(){return new Kn(Nn.zero(),Nn.zero(),Nn.zero(),Nn.zero())}static fromBuffer(e){const t=Tn.asReader(e);return new Kn(t.readFr(),t.readFr(),t.readFr(),t.readFr())}static getFields(e){return[e.chainId,e.version,e.blockNumber,e.timestamp]}toBuffer(){return qn(...Kn.getFields(this))}}const $n=16,er=16,tr=16,nr=32;var rr,sr,ar,ir;function or(e,t,n=0){return Array.from({length:e},((e,r)=>t(r+n)))}function lr(e,t,n){if(e[t].length!==n)throw new Error(`Expected ${t} to have length ${n} but was ${e[t].length}`)}function cr(e,t,n){const r=e[t];for(let e=0;e<r.length;e++)if(r[e].length!==n)throw new Error(`Expected ${t}[${e}] to have length ${n} but was ${r[e].length}`)}!function(e){e[e.COMMITMENT=1]="COMMITMENT",e[e.COMMITMENT_NONCE=2]="COMMITMENT_NONCE",e[e.UNIQUE_COMMITMENT=3]="UNIQUE_COMMITMENT",e[e.SILOED_COMMITMENT=4]="SILOED_COMMITMENT",e[e.NULLIFIER=5]="NULLIFIER",e[e.INITIALISATION_NULLIFIER=6]="INITIALISATION_NULLIFIER",e[e.OUTER_NULLIFIER=7]="OUTER_NULLIFIER",e[e.PUBLIC_DATA_READ=8]="PUBLIC_DATA_READ",e[e.PUBLIC_DATA_UPDATE_REQUEST=9]="PUBLIC_DATA_UPDATE_REQUEST",e[e.FUNCTION_DATA=10]="FUNCTION_DATA",e[e.FUNCTION_LEAF=11]="FUNCTION_LEAF",e[e.CONTRACT_DEPLOYMENT_DATA=12]="CONTRACT_DEPLOYMENT_DATA",e[e.CONSTRUCTOR=13]="CONSTRUCTOR",e[e.CONSTRUCTOR_ARGS=14]="CONSTRUCTOR_ARGS",e[e.CONTRACT_ADDRESS=15]="CONTRACT_ADDRESS",e[e.CONTRACT_LEAF=16]="CONTRACT_LEAF",e[e.CALL_CONTEXT=17]="CALL_CONTEXT",e[e.CALL_STACK_ITEM=18]="CALL_STACK_ITEM",e[e.CALL_STACK_ITEM_2=19]="CALL_STACK_ITEM_2",e[e.L1_TO_L2_MESSAGE_SECRET=20]="L1_TO_L2_MESSAGE_SECRET",e[e.L2_TO_L1_MSG=21]="L2_TO_L1_MSG",e[e.TX_CONTEXT=22]="TX_CONTEXT",e[e.PUBLIC_LEAF_INDEX=23]="PUBLIC_LEAF_INDEX",e[e.PUBLIC_DATA_LEAF=24]="PUBLIC_DATA_LEAF",e[e.SIGNED_TX_REQUEST=25]="SIGNED_TX_REQUEST",e[e.GLOBAL_VARIABLES=26]="GLOBAL_VARIABLES",e[e.PARTIAL_ADDRESS=27]="PARTIAL_ADDRESS",e[e.TX_REQUEST=33]="TX_REQUEST",e[e.SIGNATURE_PAYLOAD=34]="SIGNATURE_PAYLOAD",e[e.VK=41]="VK",e[e.PRIVATE_CIRCUIT_PUBLIC_INPUTS=42]="PRIVATE_CIRCUIT_PUBLIC_INPUTS",e[e.PUBLIC_CIRCUIT_PUBLIC_INPUTS=43]="PUBLIC_CIRCUIT_PUBLIC_INPUTS",e[e.FUNCTION_ARGS=44]="FUNCTION_ARGS"}(rr||(rr={})),function(e){e[e.BASE_SLOT=0]="BASE_SLOT",e[e.MAPPING_SLOT=1]="MAPPING_SLOT",e[e.MAPPING_SLOT_PLACEHOLDER=2]="MAPPING_SLOT_PLACEHOLDER"}(sr||(sr={})),function(e){e[e.VALUE=1]="VALUE",e[e.OWNER=2]="OWNER",e[e.CREATOR=3]="CREATOR",e[e.SALT=4]="SALT",e[e.NONCE=5]="NONCE",e[e.MEMO=6]="MEMO",e[e.IS_DUMMY=7]="IS_DUMMY"}(ar||(ar={})),function(e){e[e.PARTITIONED=1]="PARTITIONED",e[e.WHOLE=2]="WHOLE"}(ir||(ir={}));class ur{constructor(e,t){this.root=e,this.nextAvailableLeafIndex=t}toBuffer(){return qn(this.root,this.nextAvailableLeafIndex)}static fromBuffer(e){const t=Tn.asReader(e);return new ur(t.readFr(),t.readNumber())}static empty(){return new ur(Nn.ZERO,0)}}class fr{constructor(e,t,n,r,s,a,i,o,l,c,u,f,d,_,h){this.kernelData=e,this.startPrivateDataTreeSnapshot=t,this.startNullifierTreeSnapshot=n,this.startContractTreeSnapshot=r,this.startPublicDataTreeRoot=s,this.startHistoricBlocksTreeSnapshot=a,this.lowNullifierLeafPreimages=i,this.lowNullifierMembershipWitness=o,this.newCommitmentsSubtreeSiblingPath=l,this.newNullifiersSubtreeSiblingPath=c,this.newContractsSubtreeSiblingPath=u,this.newPublicDataUpdateRequestsSiblingPaths=f,this.newPublicDataReadsSiblingPaths=d,this.historicBlocksTreeRootMembershipWitnesses=_,this.constants=h,lr(this,"lowNullifierLeafPreimages",32),lr(this,"lowNullifierMembershipWitness",32),lr(this,"newCommitmentsSubtreeSiblingPath",nr-fr.PRIVATE_DATA_SUBTREE_HEIGHT),lr(this,"newNullifiersSubtreeSiblingPath",16-fr.NULLIFIER_SUBTREE_HEIGHT),lr(this,"newContractsSubtreeSiblingPath",16-fr.CONTRACT_SUBTREE_HEIGHT),lr(this,"newPublicDataUpdateRequestsSiblingPaths",16),lr(this,"newPublicDataReadsSiblingPaths",16),cr(this,"newPublicDataUpdateRequestsSiblingPaths",254),cr(this,"newPublicDataReadsSiblingPaths",254)}static from(e){return new fr(...fr.getFields(e))}static getFields(e){return[e.kernelData,e.startPrivateDataTreeSnapshot,e.startNullifierTreeSnapshot,e.startContractTreeSnapshot,e.startPublicDataTreeRoot,e.startHistoricBlocksTreeSnapshot,e.lowNullifierLeafPreimages,e.lowNullifierMembershipWitness,e.newCommitmentsSubtreeSiblingPath,e.newNullifiersSubtreeSiblingPath,e.newContractsSubtreeSiblingPath,e.newPublicDataUpdateRequestsSiblingPaths,e.newPublicDataReadsSiblingPaths,e.historicBlocksTreeRootMembershipWitnesses,e.constants]}toBuffer(){return qn(...fr.getFields(this))}}fr.PRIVATE_DATA_SUBTREE_HEIGHT=Math.log2(32),fr.CONTRACT_SUBTREE_HEIGHT=Math.log2(2),fr.NULLIFIER_SUBTREE_HEIGHT=Math.log2(32);var dr,_r,hr,pr,gr=n(3545);class br{constructor(e){this.items=e}toBuffer(){return qn(this.items.length,this.items)}toFriendlyJSON(){return this.items}}(pr=dr||(dr={}))[pr.STANDARD=0]="STANDARD",pr[pr.TURBO=1]="TURBO",pr[pr.ULTRA=2]="ULTRA",(hr=_r||(_r={}))[hr.Base=0]="Base",hr[hr.Merge=1]="Merge",hr[hr.Root=2]="Root";class mr{constructor(e,t){this.x="bigint"==typeof e?new In(e):e,this.y="bigint"==typeof t?new In(t):t}toBuffer(){return qn(this.x,this.y)}static fromBuffer(e){const t=Tn.asReader(e);return new mr(t.readFr(),t.readFr())}}class yr{constructor(e,t,n,r,s=!1){this.p0=e,this.p1=t,this.publicInputs=n,this.proofWitnessIndices=r,this.hasData=s}toBuffer(){return qn(this.p0,this.p1,new br(this.publicInputs),new br(this.proofWitnessIndices),this.hasData)}static fromBuffer(e){const t=Tn.asReader(e);return new yr(t.readObject(mr),t.readObject(mr),t.readVector(Nn),t.readNumberVector(),t.readBoolean())}static makeFake(){return new yr(new mr(new In(1n),new In(2n)),new mr(new In(1n),new In(2n)),[],gr(16,(e=>3027+e)),!1)}}n(816).Buffer;var vr=n(816).Buffer;class wr{constructor(e){this.buffer=e;const t=Ln(e);if(t>wr.MAX_VALUE)throw new Error(`AztecAddress out of range ${t}.`)}static random(){return new wr(An(Nn.random().value,wr.SIZE_IN_BYTES))}static fromBuffer(e){return new this(Tn.asReader(e).readBytes(this.SIZE_IN_BYTES))}static fromString(e){const t=vr.from(e.replace(/^0x/i,""),"hex");if(t.length!==wr.SIZE_IN_BYTES)throw new Error(`Invalid length ${t.length}.`);return new wr(t)}static fromBigInt(e){return new wr(An(e,wr.SIZE_IN_BYTES))}toBuffer(){return this.buffer}toString(){return`0x${this.buffer.toString("hex")}`}toShortString(){const e=this.toString();return`${e.slice(0,10)}...${e.slice(-4)}`}static fromField(e){return new wr(An(e.value,wr.SIZE_IN_BYTES))}toField(){return Nn.fromBuffer(this.toBuffer())}toBigInt(){return Ln(this.buffer)}equals(e){return this.buffer.equals(e.buffer)}isZero(){return this.equals(wr.ZERO)}toFriendlyJSON(){return this.toString()}}wr.SIZE_IN_BYTES=32,wr.ZERO=new wr(vr.alloc(wr.SIZE_IN_BYTES)),wr.MODULUS=0x30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001n,wr.MAX_VALUE=wr.MODULUS-1n;var Er=n(816).Buffer;class Lr{constructor(e){if(this.buffer=e,32===e.length){if(!e.slice(0,12).equals(Er.alloc(12)))throw new Error(`Invalid address buffer: ${e.toString("hex")}`);this.buffer=e.slice(12)}else if(e.length!==Lr.SIZE_IN_BYTES)throw new Error(`Expect buffer size to be ${Lr.SIZE_IN_BYTES}. Got ${e.length}.`)}static fromString(e){if(!Lr.isAddress(e))throw new Error(`Invalid address string: ${e}`);return new Lr(Er.from(e.replace(/^0x/i,""),"hex"))}static random(){return new Lr(vn(20))}static isAddress(e){return!!/^(0x)?[0-9a-f]{40}$/i.test(e)&&(!(!/^(0x|0X)?[0-9a-f]{40}$/.test(e)&&!/^(0x|0X)?[0-9A-F]{40}$/.test(e))||Lr.checkAddressChecksum(e))}isZero(){return this.equals(Lr.ZERO)}static checkAddressChecksum(e){const t=pn((e=e.replace(/^0x/i,"")).toLowerCase());for(let n=0;n<40;n++)if(parseInt(t[n],16)>7&&e[n].toUpperCase()!==e[n]||parseInt(t[n],16)<=7&&e[n].toLowerCase()!==e[n])return!1;return!0}static toChecksumAddress(e){if(!Lr.isAddress(e))throw new Error("Invalid address string.");const t=pn(e=e.toLowerCase().replace(/^0x/i,""));let n="0x";for(let r=0;r<e.length;r++)parseInt(t[r],16)>7?n+=e[r].toUpperCase():n+=e[r];return n}equals(e){return this.buffer.equals(e.buffer)}toString(){return`0x${this.buffer.toString("hex")}`}toChecksumString(){return Lr.toChecksumAddress(this.buffer.toString("hex"))}toBuffer(){return this.toBuffer32()}toBuffer20(){return this.buffer}toBuffer32(){const e=Er.alloc(32);return this.buffer.copy(e,12),e}toField(){return Nn.fromBuffer(this.toBuffer32())}static fromField(e){return new Lr(e.toBuffer().slice(-Lr.SIZE_IN_BYTES))}static fromBuffer(e){const t=Tn.asReader(e);return new Lr(t.readBuffer())}toFriendlyJSON(){return this.toString()}}Lr.SIZE_IN_BYTES=20,Lr.ZERO=new Lr(Er.alloc(Lr.SIZE_IN_BYTES));class Ar{constructor(e,t,n,r,s,a){this.msgSender=e,this.storageContractAddress=t,this.isDelegateCall=r,this.isStaticCall=s,this.isContractDeployment=a,this.portalContractAddress=n instanceof Lr?n:Lr.fromField(n)}static empty(){return new Ar(wr.ZERO,wr.ZERO,Nn.ZERO,!1,!1,!1)}isEmpty(){return this.msgSender.isZero()&&this.storageContractAddress.isZero()&&this.portalContractAddress.isZero()}static from(e){return new Ar(...Ar.getFields(e))}static getFields(e){return[e.msgSender,e.storageContractAddress,e.portalContractAddress,e.isDelegateCall,e.isStaticCall,e.isContractDeployment]}toBuffer(){return qn(...Ar.getFields(this))}static fromBuffer(e){const t=Tn.asReader(e);return new Ar(new wr(t.readBytes(32)),new wr(t.readBytes(32)),new Lr(t.readBytes(32)),t.readBoolean(),t.readBoolean(),t.readBoolean())}}var Sr=n(816).Buffer;class Cr{constructor(e,t,n,r){if(this.isInternal=t,this.isPrivate=n,this.isConstructor=r,e instanceof Sr){if(4!==e.byteLength)throw new Error(`Function selector must be 4 bytes long, got ${e.byteLength} bytes.`);this.functionSelectorBuffer=e}else this.functionSelectorBuffer=Zn(e)}static fromAbi(e){return new Cr(Bn(e.name,e.parameters),e.isInternal,e.functionType===fn.SECRET,"constructor"===e.name)}get functionSelector(){return function(e,t=0){return{elem:e.readUInt32BE(t),adv:4}}(this.functionSelectorBuffer).elem}toBuffer(){return qn(this.functionSelectorBuffer,this.isInternal,this.isPrivate,this.isConstructor)}isEmpty(){return this.functionSelectorBuffer.equals(Sr.alloc(4,0))}static empty(e){return new Cr(Sr.alloc(4,0),e?.isInternal??!1,e?.isPrivate??!1,e?.isConstructor??!1)}static fromBuffer(e){const t=Tn.asReader(e);return new Cr(t.readBytes(4),t.readBoolean(),t.readBoolean(),t.readBoolean())}}var Tr=n(816).Buffer;class Pr{constructor(e,t,n){this.contractAddress=e,this.functionTreeRoot=n,this.portalContractAddress=new Lr(t.toBuffer())}toBuffer(){return qn(this.contractAddress,this.portalContractAddress,this.functionTreeRoot)}static fromBuffer(e){const t=Tn.asReader(e);return new Pr(t.readObject(wr),new Lr(t.readBytes(32)),t.readFr())}static empty(){return new Pr(wr.ZERO,Lr.ZERO,Nn.ZERO)}}class Nr{constructor(e,t,n,r,s,a,i,o){this.callStackItemHash=e,this.functionData=t,this.vkHash=n,this.payFeeFromL1=s,this.payFeeFromPublicL2=a,this.calledFromL1=i,this.calledFromPublicL2=o,this.portalContractAddress=Lr.fromField(r.toField())}toBuffer(){return qn(this.callStackItemHash,this.functionData,this.vkHash,this.portalContractAddress,this.payFeeFromL1,this.payFeeFromPublicL2,this.calledFromL1,this.calledFromPublicL2)}static fromBuffer(e){const t=Tn.asReader(e);return new Nr(t.readFr(),t.readObject(Cr),t.readFr(),new Lr(t.readBytes(32)),t.readBoolean(),t.readBoolean(),t.readBoolean(),t.readBoolean())}static empty(){return new Nr(Nn.ZERO,Cr.empty(),Nn.ZERO,Lr.ZERO,!1,!1,!1,!1)}}class Ir{constructor(e,t,n){this.leafIndex=e,this.value=t,this.sideEffectCounter=n}static from(e){return new Ir(e.leafIndex,e.value)}toBuffer(){return qn(this.leafIndex,this.value)}static fromBuffer(e){const t=Tn.asReader(e);return new Ir(t.readFr(),t.readFr())}static empty(){return new Ir(Nn.ZERO,Nn.ZERO)}toFriendlyJSON(){return`Leaf=${this.leafIndex.toFriendlyJSON()}: ${this.value.toFriendlyJSON()}`}}class kr{constructor(e,t,n,r){this.leafIndex=e,this.oldValue=t,this.newValue=n,this.sideEffectCounter=r}static from(e){return new kr(e.leafIndex,e.oldValue,e.newValue)}toBuffer(){return qn(this.leafIndex,this.oldValue,this.newValue)}static fromBuffer(e){const t=Tn.asReader(e);return new kr(t.readFr(),t.readFr(),t.readFr())}static empty(){return new kr(Nn.ZERO,Nn.ZERO,Nn.ZERO)}toFriendlyJSON(){return`Leaf=${this.leafIndex.toFriendlyJSON()}: ${this.oldValue.toFriendlyJSON()} => ${this.newValue.toFriendlyJSON()}`}}class xr{constructor(e,t,n,r,s,a,i,o,l,c,u,f,d,_,h,p,g){this.aggregationObject=e,this.readRequests=t,this.readRequestMembershipWitnesses=n,this.newCommitments=r,this.newNullifiers=s,this.nullifiedCommitments=a,this.privateCallStack=i,this.publicCallStack=o,this.newL2ToL1Msgs=l,this.encryptedLogsHash=c,this.unencryptedLogsHash=u,this.encryptedLogPreimagesLength=f,this.unencryptedLogPreimagesLength=d,this.newContracts=_,this.optionallyRevealedData=h,this.publicDataUpdateRequests=p,this.publicDataReads=g,lr(this,"readRequests",tr),lr(this,"readRequestMembershipWitnesses",tr),lr(this,"newCommitments",$n),lr(this,"newNullifiers",er),lr(this,"nullifiedCommitments",er),lr(this,"privateCallStack",8),lr(this,"publicCallStack",8),lr(this,"newL2ToL1Msgs",2),lr(this,"encryptedLogsHash",2),lr(this,"unencryptedLogsHash",2),lr(this,"newContracts",1),lr(this,"optionallyRevealedData",4),lr(this,"publicDataUpdateRequests",8),lr(this,"publicDataReads",8)}toBuffer(){return qn(this.aggregationObject,this.readRequests,this.readRequestMembershipWitnesses,this.newCommitments,this.newNullifiers,this.nullifiedCommitments,this.privateCallStack,this.publicCallStack,this.newL2ToL1Msgs,this.encryptedLogsHash,this.unencryptedLogsHash,this.encryptedLogPreimagesLength,this.unencryptedLogPreimagesLength,this.newContracts,this.optionallyRevealedData,this.publicDataUpdateRequests,this.publicDataReads)}toString(){return this.toBuffer().toString()}static fromBuffer(e){const t=Tn.asReader(e);return new xr(t.readObject(yr),t.readArray(tr,Nn),t.readArray(tr,ns),t.readArray($n,Nn),t.readArray(er,Nn),t.readArray(er,Nn),t.readArray(8,Nn),t.readArray(8,Nn),t.readArray(2,Nn),t.readArray(2,Nn),t.readArray(2,Nn),t.readFr(),t.readFr(),t.readArray(1,Pr),t.readArray(4,Nr),t.readArray(8,kr),t.readArray(8,Ir))}static fromString(e){return xr.fromBuffer(Tr.from(e,"hex"))}static empty(){return new xr(yr.makeFake(),or(tr,Nn.zero),or(tr,(()=>ns.empty(BigInt(0)))),or($n,Nn.zero),or(er,Nn.zero),or(er,Nn.zero),or(8,Nn.zero),or(8,Nn.zero),or(2,Nn.zero),or(2,Nn.zero),or(2,Nn.zero),Nn.zero(),Nn.zero(),or(1,Pr.empty),or(4,Nr.empty),or(8,kr.empty),or(8,Ir.empty))}}class Rr{constructor(e,t,n,r,s){this.deployerPublicKey=e,this.constructorVkHash=t,this.functionTreeRoot=n,this.contractAddressSalt=r,this.portalContractAddress=Lr.fromField(s.toField())}toBuffer(){return qn(this.deployerPublicKey,this.constructorVkHash,this.functionTreeRoot,this.contractAddressSalt,this.portalContractAddress)}static empty(){return new Rr(Dn.ZERO,Nn.ZERO,Nn.ZERO,Nn.ZERO,Lr.ZERO)}static fromBuffer(e){const t=Tn.asReader(e);return new Rr(t.readObject(Dn),t.readFr(),t.readFr(),t.readFr(),new Lr(t.readBytes(32)))}}class Br{constructor(e,t,n,r,s,a){this.isFeePaymentTx=e,this.isRebatePaymentTx=t,this.isContractDeploymentTx=n,this.contractDeploymentData=r,this.chainId=s,this.version=a}toBuffer(){return qn(this.isFeePaymentTx,this.isRebatePaymentTx,this.isContractDeploymentTx,this.contractDeploymentData,this.chainId,this.version)}static fromBuffer(e){const t=Tn.asReader(e);return new Br(t.readBoolean(),t.readBoolean(),t.readBoolean(),t.readObject(Rr),t.readFr(),t.readFr())}static empty(e=0,t=0){return new Br(!1,!1,!1,Rr.empty(),new Nn(e),new Nn(t))}static from(e){return new Br(...Br.getFields(e))}static getFields(e){return[e.isFeePaymentTx,e.isRebatePaymentTx,e.isContractDeploymentTx,e.contractDeploymentData,e.chainId,e.version]}}class Or{constructor(e,t,n,r,s,a,i,o){this.privateDataTreeRoot=e,this.nullifierTreeRoot=t,this.contractTreeRoot=n,this.l1ToL2MessagesTreeRoot=r,this.blocksTreeRoot=s,this.privateKernelVkTreeRoot=a,this.publicDataTreeRoot=i,this.globalVariablesHash=o}static from(e){return new Or(...Or.getFields(e))}static random(){return new Or(Nn.random(),Nn.random(),Nn.random(),Nn.random(),Nn.random(),Nn.random(),Nn.random(),Nn.random())}static getFields(e){return[e.privateDataTreeRoot,e.nullifierTreeRoot,e.contractTreeRoot,e.l1ToL2MessagesTreeRoot,e.blocksTreeRoot,e.privateKernelVkTreeRoot,e.publicDataTreeRoot,e.globalVariablesHash]}toBuffer(){return qn(...Or.getFields(this))}toString(){return this.toBuffer().toString()}toArray(){return[this.privateDataTreeRoot,this.nullifierTreeRoot,this.contractTreeRoot,this.l1ToL2MessagesTreeRoot,this.blocksTreeRoot,this.publicDataTreeRoot,this.globalVariablesHash]}static fromBuffer(e){const t=Tn.asReader(e);return new Or(t.readFr(),t.readFr(),t.readFr(),t.readFr(),t.readFr(),t.readFr(),t.readFr(),t.readFr())}isEmpty(){return this.privateDataTreeRoot.isZero()&&this.nullifierTreeRoot.isZero()&&this.contractTreeRoot.isZero()&&this.l1ToL2MessagesTreeRoot.isZero()&&this.blocksTreeRoot.isZero()&&this.privateKernelVkTreeRoot.isZero()&&this.publicDataTreeRoot.isZero()&&this.globalVariablesHash.isZero()}static empty(){return new Or(Nn.ZERO,Nn.ZERO,Nn.ZERO,Nn.ZERO,Nn.ZERO,Nn.ZERO,Nn.ZERO,Nn.ZERO)}}class Dr{constructor(e,t){this.blockData=e,this.txContext=t}toBuffer(){return qn(this.blockData,this.txContext)}static fromBuffer(e){const t=Tn.asReader(e);return new Dr(t.readObject(Or),t.readObject(Br))}static empty(){return new Dr(Or.empty(),Br.empty())}}n(1328),n(816).Buffer,n(816).Buffer,n(816).Buffer;class Fr{constructor(e){this.buffer=e}static fromMsgpackBuffer(e){return new Fr(e)}static fromBuffer(e){const t=Tn.asReader(e),n=t.readNumber(),r=t.readBytes(n);return new Fr(r)}toMsgpackBuffer(){return this.buffer}toBuffer(){return qn(this.buffer.length,this.buffer)}}class Hr{constructor(e,t,n){this.end=e,this.constants=t,this.isPrivate=n}toBuffer(){return qn(this.end,this.constants,this.isPrivate)}static fromBuffer(e){const t=Tn.asReader(e);return new Hr(t.readObject(xr),t.readObject(Dr),t.readBoolean())}static empty(){return new Hr(xr.empty(),Dr.empty(),!0)}}function Mr(e,t,n){if(e.length>n)throw new Error("Array size exceeds target length");return[...e,...Array(n-e.length).fill(t)]}function zr(e,t){for(const n of e)if(!t(n))return!1;return!0}class Ur{constructor(e,t,n){this.storageSlot=e,this.currentValue=t,this.sideEffectCounter=n}static from(e){return new Ur(e.storageSlot,e.currentValue)}toBuffer(){return qn(this.storageSlot,this.currentValue)}static fromBuffer(e){const t=Tn.asReader(e);return new Ur(t.readFr(),t.readFr())}static empty(){return new Ur(Nn.ZERO,Nn.ZERO)}isEmpty(){return this.storageSlot.isZero()&&this.currentValue.isZero()}toFriendlyJSON(){return`Slot=${this.storageSlot.toFriendlyJSON()}: ${this.currentValue.toFriendlyJSON()}`}}class jr{constructor(e,t,n,r){this.storageSlot=e,this.oldValue=t,this.newValue=n,this.sideEffectCounter=r}toBuffer(){return qn(this.storageSlot,this.oldValue,this.newValue)}static fromBuffer(e){const t=Tn.asReader(e);return new jr(t.readFr(),t.readFr(),t.readFr())}static from(e){return new jr(...jr.getFields(e))}static getFields(e){return[e.storageSlot,e.oldValue,e.newValue,e.sideEffectCounter]}static empty(){return new jr(Nn.ZERO,Nn.ZERO,Nn.ZERO)}isEmpty(){return this.storageSlot.isZero()&&this.oldValue.isZero()&&this.newValue.isZero()}toFriendlyJSON(){return`Slot=${this.storageSlot.toFriendlyJSON()}: ${this.oldValue.toFriendlyJSON()} => ${this.newValue.toFriendlyJSON()}`}}class Zr{constructor(e,t,n,r,s,a,i,o,l,c,u,f,d){this.callContext=e,this.argsHash=t,this.returnValues=n,this.contractStorageUpdateRequests=r,this.contractStorageReads=s,this.publicCallStack=a,this.newCommitments=i,this.newNullifiers=o,this.newL2ToL1Msgs=l,this.unencryptedLogsHash=c,this.unencryptedLogPreimagesLength=u,this.historicBlockData=f,this.proverAddress=d,lr(this,"returnValues",4),lr(this,"publicCallStack",4),lr(this,"newCommitments",4),lr(this,"newNullifiers",4),lr(this,"newL2ToL1Msgs",2),lr(this,"contractStorageUpdateRequests",8),lr(this,"contractStorageReads",8),lr(this,"unencryptedLogsHash",2)}static from(e){return new Zr(...Zr.getFields(e))}static empty(){return new Zr(Ar.empty(),Nn.ZERO,or(4,Nn.zero),or(8,jr.empty),or(8,Ur.empty),or(4,Nn.zero),or(4,Nn.zero),or(4,Nn.zero),or(2,Nn.zero),or(2,Nn.zero),Nn.ZERO,Or.empty(),wr.ZERO)}isEmpty(){const e=e=>zr(e,(e=>e.isZero()));return this.callContext.isEmpty()&&this.argsHash.isZero()&&e(this.returnValues)&&zr(this.contractStorageUpdateRequests,(e=>e.isEmpty()))&&zr(this.contractStorageReads,(e=>e.isEmpty()))&&e(this.publicCallStack)&&e(this.newCommitments)&&e(this.newNullifiers)&&e(this.newL2ToL1Msgs)&&e(this.unencryptedLogsHash)&&this.unencryptedLogPreimagesLength.isZero()&&this.historicBlockData.isEmpty()&&this.proverAddress.isZero()}static getFields(e){return[e.callContext,e.argsHash,e.returnValues,e.contractStorageUpdateRequests,e.contractStorageReads,e.publicCallStack,e.newCommitments,e.newNullifiers,e.newL2ToL1Msgs,e.unencryptedLogsHash,e.unencryptedLogPreimagesLength,e.historicBlockData,e.proverAddress]}toBuffer(){return qn(...Zr.getFields(this))}}var Wr=n(816),Gr=n(3261);function Qr(e,t,n,r){const s=n instanceof Wr.Buffer?n:n.toBuffer(),a=e.call("bbmalloc",r),i=e.call("bbmalloc",s.length);e.writeMemory(i,s),e.call(t,i,a);const o=Wr.Buffer.from(e.getMemorySlice(a,a+r));return e.call("bbfree",a),e.call("bbfree",i),o}function Xr(e,t,n,r){const s=[],a=n.reduce(((e,t)=>(s.push(e),e+t.length)),0),i=e.call("bbmalloc",r),o=e.call("bbmalloc",a);e.writeMemory(o,Wr.Buffer.concat(n));const l=s.map((e=>o+e));e.call(t,...l,i);const c=Wr.Buffer.from(e.getMemorySlice(i,i+r));return e.call("bbfree",o),e.call("bbfree",i),c}function Yr(e,t){return e.call("pedersen__init"),Nn.fromBuffer(Qr(e,"abis__compute_function_leaf",t,32))}function Jr(e,t,n){e.call("pedersen__init");const r=Xr(e,"abis__compute_contract_address_from_partial",[t.toBuffer(),n.toBuffer()],32);return new wr(r)}const Vr=32,qr=16;function Kr(e,t){if(0===t.length)return Promise.resolve(Nn.ZERO);if(t.length>Vr*qr)throw new Error(`Cannot hash more than ${Vr*qr} arguments`);e.call("pedersen__init");const n=t=>Nn.fromBuffer(Qr(e,"abis__compute_var_args_hash",new br(t),32));let r=Gr(t,Vr).map((e=>(e.length<Vr&&(e=Mr(e,Nn.ZERO,Vr)),n(e))));return r.length<qr&&(r=Mr(r,Nn.ZERO,qr)),Promise.resolve(n(r))}class $r{constructor(e,t,n,r){this.contractAddress=e,this.functionData=t,this.publicInputs=n,this.isExecutionRequest=r}toBuffer(){return qn(this.contractAddress,this.functionData,this.publicInputs,this.isExecutionRequest)}static empty(){return new $r(wr.ZERO,Cr.empty({isPrivate:!1}),Zr.empty(),!1)}isEmpty(){return this.contractAddress.isZero()&&this.functionData.isEmpty()&&this.publicInputs.isEmpty()}async hash(){return function(e,t){e.call("pedersen__init");const n=Qr(e,"abis__compute_public_call_stack_item_hash",t,32);return Nn.fromBuffer(n)}(await ks.get(),this)}}class es{constructor(e,t,n,r){this.origin=e,this.functionData=t,this.argsHash=n,this.txContext=r}static getFields(e){return[e.origin,e.functionData,e.argsHash,e.txContext]}static from(e){return new es(...es.getFields(e))}toBuffer(){return qn([...es.getFields(this)])}static fromBuffer(e){const t=Tn.asReader(e);return new es(t.readObject(wr),t.readObject(Cr),t.readFr(),t.readObject(Br))}}class ts{constructor(e,t,n,r,s){this.functionSelector=e,this.isInternal=t,this.isPrivate=n,this.vkHash=r,this.acirHash=s,this.FUNCTION_SELECTOR_LENGTH=4,this.assertFunctionSelectorLength(e)}assertFunctionSelectorLength(e){if(e.byteLength!==this.FUNCTION_SELECTOR_LENGTH)throw new Error(`Function selector must be ${this.FUNCTION_SELECTOR_LENGTH} bytes long, got ${e.byteLength} bytes.`)}toBuffer(){return this.assertFunctionSelectorLength(this.functionSelector),qn(this.functionSelector,this.isInternal,this.isPrivate,this.vkHash,this.acirHash)}static fromBuffer(e){const t=Tn.asReader(e);return new ts(t.readBytes(4),t.readBoolean(),t.readBoolean(),t.readFr(),t.readFr())}}class ns{constructor(e,t,n=!1,r){if(this.leafIndex=e,this.siblingPath=t,this.isTransient=n,this.hintToCommitment=r,lr(this,"siblingPath",nr),r.value>4)throw new Error(`Expected ReadRequestMembershipWitness' hintToCommitment(${r}) to be <= NEW_COMMITMENTS_LENGTH(4)`)}toBuffer(){return qn(An(this.leafIndex.toBigInt(),32),...this.siblingPath,this.isTransient,this.hintToCommitment)}static mock(e,t){return new ns(new Nn(t),function(e,t=0){const n=[];for(let r=0;r<e;r++)n.push(t+r);return n}(e,t).map((e=>new Nn(BigInt(e)))),!1,new Nn(0))}static random(){return new ns(new Nn(0n),or(nr,(()=>Nn.random())),!1,new Nn(0))}static empty(e){const t=or(nr,(()=>Nn.ZERO));return new ns(new Nn(e),t,!1,new Nn(0))}static emptyTransient(){const e=or(nr,(()=>Nn.ZERO));return new ns(new Nn(0),e,!0,new Nn(0))}static fromBufferArray(e,t,n,r){return new ns(e,t.map((e=>Nn.fromBuffer(e))),n,r)}static fromMembershipWitness(e,t,n){return new ns(new Nn(e.leafIndex),e.siblingPath,t,n)}static fromBuffer(e){const t=Tn.asReader(e),n=t.readFr(),r=t.readArray(nr,Nn),s=t.readBoolean(),a=t.readFr();return new ns(n,r,s,a)}}class rs{constructor(e,t,n,r,s){this.contractAddress=e,this.functionData=t,this.callContext=n,this.args=r,this.sideEffectCounter=s}toBuffer(){return qn(this.contractAddress,this.functionData,this.callContext,new br(this.args))}static fromBuffer(e){const t=Tn.asReader(e);return new rs(new wr(t.readBytes(32)),Cr.fromBuffer(t),Ar.fromBuffer(t),t.readVector(Nn))}static from(e){return new rs(...rs.getFields(e))}static getFields(e){return[e.contractAddress,e.functionData,e.callContext,e.args,e.sideEffectCounter]}async toPublicCallStackItem(){const e=Zr.empty();return e.callContext=this.callContext,e.argsHash=await this.getArgsHash(),new $r(this.contractAddress,this.functionData,e,!0)}async getArgsHash(){return Kr(await ks.get(),this.args)}}var ss=n(6292);let as;function is(e){const t=ss(e);return(...e)=>function(e,...t){ss.enabled(e.namespace)&&(as&&as(e.namespace,...t),e(...t))}(t,...e)}var os=n(3118);const ls=["silent","fatal","error","warn","info","debug"],cs={NODE_ENV:"production"}.LOG_LEVEL?.toLowerCase(),us=ls.includes(cs)?cs:"info";function fs(e){const t=ss(e);"debug"===us&&(t.enabled=!0);const n={silent:()=>{},fatal:(...e)=>ds(t,"fatal",e),error:(...e)=>ds(t,"error",e),warn:(...e)=>ds(t,"warn",e),info:(...e)=>ds(t,"info",e),debug:(...e)=>ds(t,"debug",e)};return Object.assign(t,n)}function ds(e,t,n){e.enabled?e(n[0],...n.slice(1)):ls.indexOf(t)<=ls.indexOf(us)&&function(e){console.error(...e)}([_s(e,t),...n])}function _s(e,t){const n=us!==t?` ${t.toUpperCase()}`:"",r=`${e.namespace.replace(/^aztec:/,"")}${n}`;if(!bn||!(0,os.VB)(process.stderr.fd))return r;const s=ss.selectColor(e.namespace);return` ${"[3"+(s<8?s:"8;5;"+s)};1m${r}`}new class{constructor(){this.logs=[]}enable(){as=(...e)=>{this.logs.push([(new Date).toISOString(),...e])}}getLogs(e=0){return e?this.logs.slice(-e):this.logs}clear(e=this.logs.length){this.logs=this.logs.slice(e)}};class hs{constructor(e=fs("aztec:foundation:memory_fifo")){this.log=e,this.waiting=[],this.items=[],this.flushing=!1}length(){return this.items.length}get(e){return this.items.length?Promise.resolve(this.items.shift()):0===this.items.length&&this.flushing?Promise.resolve(null):new Promise(((t,n)=>{this.waiting.push(t),e&&setTimeout((()=>{const e=this.waiting.findIndex((e=>e===t));if(e>-1){this.waiting.splice(e,1);const t=new Error("Timeout getting item from queue.");n(t)}}),1e3*e)}))}put(e){this.flushing||(this.waiting.length?this.waiting.shift()(e):this.items.push(e))}end(){this.flushing=!0,this.waiting.forEach((e=>e(null)))}cancel(){this.flushing=!0,this.items=[],this.waiting.forEach((e=>e(null)))}async process(e){try{for(;;){const t=await this.get();if(null===t)break;await e(t)}}catch(e){this.log.error("Queue handler exception:",e)}}}const ps=(e=is("wasm:empty_wasi_sdk"))=>({clock_time_get(){e("clock_time_get")},environ_get(){e("environ_get")},environ_sizes_get(){e("environ_sizes_get")},fd_close(){e("fd_close")},fd_read(){e("fd_read")},fd_write(){e("fd_write")},fd_seek(){e("fd_seek")},fd_fdstat_get(){e("fd_fdstat_get")},fd_fdstat_set_flags(){e("fd_fdstat_set_flags")},fd_prestat_get:()=>(e("fd_prestat_get"),8),fd_prestat_dir_name:()=>(e("fd_prestat_dir_name"),28),path_open(){e("path_open")},path_filestat_get(){e("path_filestat_get")},proc_exit:()=>(e("proc_exit"),52),random_get:()=>(e("random_get"),1)});class gs{constructor(e,t,n="wasm"){this.module=e,this.importFn=t,this.mutexQ=new hs,this.debug=is(n),this.mutexQ.put(!0)}getModule(){return this.module}async init(e=30,t=8192,n="_initialize"){this.debug(`initial mem: ${e} pages, ${65536*e/1048576}mb. max mem: ${t} pages, ${65536*t/1048576}mb`),this.memory=new WebAssembly.Memory({initial:e,maximum:t}),this.heap=new Uint8Array(this.memory.buffer);const r={wasi_snapshot_preview1:{...ps(this.debug),random_get:(e,t)=>{e>>>=0;const n=this.getMemory(),r=vn(t);for(let s=e;s<e+t;++s)n[s]=r[s-e]}},env:this.importFn(this)};if(this.module instanceof WebAssembly.Module)this.instance=await WebAssembly.instantiate(this.module,r);else{const{instance:e}=await WebAssembly.instantiate(this.module,r);this.instance=e}n&&this.call(n)}exports(){if(!this.instance)throw new Error("WasmModule: not initialized!");return this.instance.exports}getLogger(){return this.debug}addLogger(e){const t=this.debug;this.debug=(...n)=>{e(...n),t(...n)}}call(e,...t){if(!this.exports()[e])throw new Error(`WASM function ${e} not found.`);try{return this.exports()[e](...t)>>>0}catch(t){const n=`WASM function ${e} aborted, error: ${t}\n${t.stack}`;throw new Error(n)}}getRawMemory(){return this.memory}getMemory(){return 0===this.heap.length&&(this.heap=new Uint8Array(this.memory.buffer)),this.heap}memSize(){return this.getMemory().length}getMemorySlice(e,t){return this.getMemory().slice(e,t)}writeMemory(e,t){const n=this.getMemory();for(let r=0;r<t.length;r++)n[r+e]=t[r]}getMemoryAsString(e){e>>>=0;const t=this.getMemory();let n=e;for(;0!==t[n];++n);return Wr.Buffer.from(t.slice(e,n)).toString("ascii")}async acquire(){await this.mutexQ.get()}release(){if(0!==this.mutexQ.length())throw new Error("Release called but not acquired.");this.mutexQ.put(!0)}}var bs=n(9190),ms=n(3240),ys=n(6721),vs=n(1856),ws=n(6014),Es=n(717),Ls=n(6963),As=n(816).Buffer;class Ss{constructor(e){this.numPoints=e}async init(){const e=28+64*this.numPoints-1,t=await fetch("https://aztec-ignition.s3.amazonaws.com/MAIN%20IGNITION/monomial/transcript00.dat",{headers:{Range:`bytes=28-${e}`}});this.data=new Uint8Array(await t.arrayBuffer()),await this.downloadG2Data()}async downloadG2Data(){const e=await fetch("https://aztec-ignition.s3.amazonaws.com/MAIN%20IGNITION/monomial/transcript00.dat",{headers:{Range:"bytes=322560092-322560219"}});this.g2Data=new Uint8Array(await e.arrayBuffer())}getG1Data(){return this.data}getG2Data(){return this.g2Data}}class Cs{constructor(e,t){this.numPoints=e,this.path=t}async init(){const e=64*this.numPoints,t=await(0,ws.open)(this.path,"r");try{this.data=As.alloc(e),await t.read(this.data,0,e,28),this.g2Data=As.alloc(128),await t.read(this.g2Data,0,128,322560028)}finally{await t.close()}}getG1Data(){return this.data}getG2Data(){return this.g2Data}}class Ts{constructor(e){if(this.numPoints=e,bn){const t=(0,Es.dirname)((0,Ls.fileURLToPath)("file:///usr/src/yarn-project/circuits.js/dest/crs/index.js"))+"/../../../../circuits/cpp/barretenberg/cpp/srs_db/ignition/monomial/transcript00.dat";this.crs=(0,vs.existsSync)(t)?new Cs(e,t):new Ss(e)}else this.crs=new Ss(e)}async init(){await this.crs.init()}getG1Data(){return this.crs.getG1Data()}getG2Data(){return this.crs.getG2Data()}}var Ps=n(816).Buffer;const Ns="/aztec3-circuits",Is=bn?(0,ms.join)((0,ms.dirname)((0,ys.fileURLToPath)("file:///usr/src/yarn-project/circuits.js/dest/wasm/circuits_wasm.js")),`../../resources/${Ns}.wasm`):`${Ns}.wasm`;class ks{constructor(e){this.wasm=e}static get(){return this.instance||(this.instance=ks.new()),this.instance}static async new(e=30,t=8192,n="wasm"){const r=new gs(await async function(e){if(bn)return await(0,bs.readFile)(e);{const t=await fetch(e);return Ps.from(await t.arrayBuffer())}}(Is),(e=>({logstr(e){const t=`${r.getMemoryAsString(e)} (mem: ${(r.getMemory().length/1048576).toFixed(2)}MB)`;(t.startsWith("abort: ")||t.startsWith("important: "))&&console.log(t),r.getLogger()(t)},memory:e.getRawMemory(),set_data:()=>{r.getLogger()("set_data: NYI")},get_data:()=>{throw new Error("NOT YET IMPLEMENTED - needed for proofs, plan is to use barretenberg.js from NPM for proofs. See https://github.com/AztecProtocol/aztec-packages/issues/781")}})),n);return await r.init(e,t),await ks.initializeSrs(r),new ks(r)}static async initializeSrs(e){const t=new Ts(5e4);await t.init();const n=e.call("bbmalloc",t.getG1Data().length);e.writeMemory(n,t.getG1Data());const r=e.call("bbmalloc",4);e.writeMemory(r,Zn(t.numPoints));const s=e.call("bbmalloc",t.getG2Data().length);e.writeMemory(s,t.getG2Data()),e.call("srs_init_srs",n,r,s),e.call("bbfree",n),e.call("bbfree",r),e.call("bbfree",s)}exports(){return this.wasm.exports()}getMemorySlice(e,t){return this.wasm.getMemorySlice(e,t)}writeMemory(e,t){this.wasm.writeMemory(e,t)}getMemoryAsString(e){return this.wasm.getMemoryAsString(e)}call(e,...t){return this.wasm.call(e,...t)}}n(816).Buffer;var xs=n(816).Buffer;function Rs(e,t){return function(e,t){return e.call("pedersen__init"),Qr(e,"abis__hash_vk",t,32)}(t,xs.from(e,"hex"))}function Bs({name:e}){return"constructor"===e}function Os({name:e,functionType:t}){return t!==fn.UNCONSTRAINED&&!Bs({name:e})}async function Ds(e,t,n,r){const s=e.functions.find(Bs);if(!s)throw new Error("Cannot find constructor in the ABI.");if(!s.verificationKey)throw new Error("Missing verification key for the constructor.");const a=await ks.get(),i=Rs(s.verificationKey,a),o=Nn.fromBuffer(i),l=function(e,t){const n=e.filter(Os),r=[];for(let e=0;e<n.length;e++){const s=n[e],a=Bn(s.name,s.parameters),i=s.isInternal,o=s.functionType===fn.SECRET,l=Rs(s.verificationKey,t),c=xs.alloc(32,0),u=Yr(t,new ts(a,i,o,Nn.fromBuffer(l),Nn.fromBuffer(c)));r.push(u)}return r}(e.functions.map((e=>({...e,selector:Bn(e.name,e.parameters)}))),a),c=function(e,t){const n=function(e){const t=Xn.alloc(4);return t.writeUInt32BE(e.length,0),Xn.concat([t,...e])}(t.map((e=>e.toBuffer())));e.call("pedersen__init");const r=Qr(e,"abis__compute_function_tree_root",n,32);return Nn.fromBuffer(r)}(a,l),u=Cr.fromAbi(s),f=Un(s,t),d=function(e,t,n,r){e.call("pedersen__init");const s=Xr(e,"abis__hash_constructor",[t.toBuffer(),n.toBuffer(),r],32);return Nn.fromBuffer(s)}(a,u,await Kr(a,f),o.toBuffer()),_=function(e,t,n,r){e.call("pedersen__init");const s=Xr(e,"abis__compute_partial_address",[t.toBuffer(),n.toBuffer(),r.toBuffer()],32);return Nn.fromBuffer(s)}(a,n,c,d),h=function(e,t,n,r,s){e.call("pedersen__init");const a=Xr(e,"abis__compute_contract_address",[t.toBuffer(),n.toBuffer(),r.toBuffer(),s.toBuffer()],32);return new wr(a)}(a,r,n,c,d);return{completeAddress:await Ks.create(h,r,_),constructorHash:o,functionTreeRoot:c}}var Fs=n(816).Buffer;class Hs{static async new(){return new this(await ks.get())}constructor(e){this.wasm=e}generator(){return Hs.generator}mul(e,t){return this.wasm.writeMemory(0,e.toBuffer()),this.wasm.writeMemory(64,t.value),this.wasm.call("ecc_grumpkin__mul",0,64,96),Dn.fromBuffer(Fs.from(this.wasm.getMemorySlice(96,160)))}batchMul(e,t){const n=Fs.concat(e.map((e=>e.toBuffer()))),r=e.length*Dn.SIZE_IN_BYTES,s=this.wasm.call("bbmalloc",2*r);this.wasm.writeMemory(s,n),this.wasm.writeMemory(0,t.value),this.wasm.call("ecc_grumpkin__batch_mul",s,0,e.length,s+r);const a=Fs.from(this.wasm.getMemorySlice(s+r,s+r+r));this.wasm.call("bbfree",s);const i=[];for(let e=0;e<r;e+=64)i.push(Dn.fromBuffer(a.slice(e,e+64)));return i}getRandomFr(){return this.wasm.call("ecc_grumpkin__get_random_scalar_mod_circuit_modulus",0),Nn.fromBuffer(Fs.from(this.wasm.getMemorySlice(0,32)))}reduce512BufferToFr(e){return this.wasm.writeMemory(0,e),this.wasm.call("ecc_grumpkin__reduce512_buffer_mod_circuit_modulus",0,64),Nn.fromBuffer(Fs.from(this.wasm.getMemorySlice(64,96)))}}function Ms(e){const t=Wr.Buffer.alloc(4);return t.writeUInt32BE(e.length,0),Wr.Buffer.concat([t,...e])}Hs.generator=Dn.fromBuffer(Fs.from([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,207,19,94,117,6,164,93,99,45,39,13,69,241,24,18,148,131,63,196,141,130,63,39,44]));var zs=n(6534),Us=n(816).Buffer;class js{constructor(e,t,n){if(this.r=e,this.s=t,this.v=n,32!=e.length)throw new Error("Invalid length of 'r' in ECDSA signature");if(32!=t.length)throw new Error("Invalid length of 's' in ECDSA signature");if(1!=n.length)throw new Error("Invalid length of '1' in ECDSA signature")}toBuffer(){return Us.concat([this.r,this.s,this.v])}static fromBuffer(e){return new js(e.subarray(0,32),e.subarray(32,64),e.subarray(64,65))}static fromBigInts(e,t,n){return new js(An(e,32),An(t,32),Us.from([n]))}static random(){return new js((0,zs.randomBytes)(32),(0,zs.randomBytes)(32),Us.from([27]))}toString(){return`0x${this.toBuffer().toString("hex")}`}toFields(e=!1){const t=this.toBuffer(),n=Us.alloc(32),r=Us.alloc(32),s=Us.alloc(32);return t.copy(n,1,0,31),t.copy(r,1,31,62),t.copy(s,1,62,e?65:64),Qn([n,r,s],Nn.fromBuffer)}}var Zs=n(816).Buffer;class Ws{static async new(){return new this(await ks.get())}constructor(e){this.wasm=e}computePublicKey(e){return this.wasm.writeMemory(0,e.value),this.wasm.call("ecdsa__compute_public_key",0,32),Zs.from(this.wasm.getMemorySlice(32,96))}constructSignature(e,t){const n=this.wasm.call("bbmalloc",e.length);return this.wasm.writeMemory(0,t.value),this.wasm.writeMemory(n,e),this.wasm.call("ecdsa__construct_signature",n,e.length,0,32,64,96),new js(Zs.from(this.wasm.getMemorySlice(32,64)),Zs.from(this.wasm.getMemorySlice(64,96)),Zs.from(this.wasm.getMemorySlice(96,97)))}recoverPublicKey(e,t){const n=this.wasm.call("bbmalloc",e.length);return this.wasm.writeMemory(0,t.r),this.wasm.writeMemory(32,t.s),this.wasm.writeMemory(64,t.v),this.wasm.writeMemory(n,e),this.wasm.call("ecdsa__recover_public_key_from_signature",n,e.length,0,32,64,65),Zs.from(this.wasm.getMemorySlice(65,129))}verifySignature(e,t,n){const r=this.wasm.call("bbmalloc",e.length);return this.wasm.writeMemory(0,t),this.wasm.writeMemory(64,n.r),this.wasm.writeMemory(96,n.s),this.wasm.writeMemory(128,n.v),this.wasm.writeMemory(r,e),!!this.wasm.call("ecdsa__verify_signature",r,e.length,0,64,96,128)}}var Gs=n(816).Buffer;class Qs{static async new(){return new this(await ks.get())}constructor(e){this.wasm=e}generator(){return Qs.generator}mul(e,t){return this.wasm.writeMemory(0,e),this.wasm.writeMemory(64,t),this.wasm.call("ecc_secp256k1__mul",0,64,96),Gs.from(this.wasm.getMemorySlice(96,160))}getRandomFr(){return this.wasm.call("ecc_secp256k1__get_random_scalar_mod_circuit_modulus",0),Gs.from(this.wasm.getMemorySlice(0,32))}reduce512BufferToFr(e){return this.wasm.writeMemory(0,e),this.wasm.call("ecc_secp256k1__reduce512_buffer_mod_circuit_modulus",0,64),Gs.from(this.wasm.getMemorySlice(64,96))}}Qs.generator=Gs.from([121,190,102,126,249,220,187,172,85,160,98,149,206,135,11,7,2,155,252,219,45,206,40,217,89,242,129,91,22,248,23,152,72,58,218,119,38,163,196,101,93,164,251,252,14,17,8,168,253,23,180,72,166,133,84,25,156,71,208,143,251,16,212,184]);var Xs=n(816).Buffer;class Ys{constructor(e){if(this.buffer=e,e.length!==Ys.SIZE)throw new Error(`Invalid signature buffer of length ${e.length}.`)}static isSignature(e){return/^(0x)?[0-9a-f]{128}$/i.test(e)}static fromString(e){if(!Ys.isSignature(e))throw new Error(`Invalid signature string: ${e}`);return new Ys(Xs.from(e.replace(/^0x/i,""),"hex"))}static random(){return new Ys(vn(64))}get s(){return this.buffer.subarray(0,32)}get e(){return this.buffer.subarray(32)}toBuffer(){return this.buffer}static fromBuffer(e){const t=Tn.asReader(e);return new Ys(t.readBytes(Ys.SIZE))}toString(){return`0x${this.buffer.toString("hex")}`}toFields(){const e=this.toBuffer(),t=Xs.alloc(32),n=Xs.alloc(32),r=Xs.alloc(32);return e.copy(t,1,0,31),e.copy(n,1,31,62),e.copy(r,1,62,64),Qn([t,n,r],Nn.fromBuffer)}}Ys.SIZE=64,Ys.EMPTY=new Ys(Xs.alloc(64));var Js=n(816).Buffer;class Vs{static async new(){return new this(await ks.get())}constructor(e){this.wasm=e}computePublicKey(e){return this.wasm.writeMemory(0,e.value),this.wasm.call("schnorr_compute_public_key",0,32),Dn.fromBuffer(Js.from(this.wasm.getMemorySlice(32,96)))}constructSignature(e,t){const n=this.wasm.call("bbmalloc",e.length+4);return this.wasm.writeMemory(0,t.value),this.wasm.writeMemory(n,Js.concat([Zn(e.length),e])),this.wasm.call("schnorr_construct_signature",n,0,32,64),new Ys(Js.from(this.wasm.getMemorySlice(32,96)))}verifySignature(e,t,n){const r=this.wasm.call("bbmalloc",e.length+4);this.wasm.writeMemory(0,t.toBuffer()),this.wasm.writeMemory(64,n.s),this.wasm.writeMemory(96,n.e),this.wasm.writeMemory(r,Js.concat([Zn(e.length),e])),this.wasm.call("schnorr_verify_signature",r,0,64,96,128);const s=this.wasm.getMemorySlice(128,129);return!Js.alloc(1,0).equals(s)}}var qs=n(816).Buffer;class Ks{constructor(e,t,n){this.address=e,this.publicKey=t,this.partialAddress=n}static async create(e,t,n){const r=Jr(await ks.get(),t,n);if(!r.equals(e))throw new Error(`Address cannot be derived from pubkey and partial address (received ${e.toString()}, derived ${r.toString()})`);return new Ks(e,t,n)}static async random(){const e=Nn.random(),t=Dn.random(),n=Jr(await ks.get(),t,e);return new Ks(n,t,e)}static async fromPrivateKeyAndPartialAddress(e,t){const n=await ks.get(),r=new Hs(n).mul(Hs.generator,e),s=Jr(n,r,t);return new Ks(s,r,t)}toReadableString(){return`Address: ${this.address.toString()}, Public Key: ${this.publicKey.toString()}, Partial Address: ${this.partialAddress.toString()}`}equals(e){return this.address.equals(e.address)&&this.publicKey.equals(e.publicKey)&&this.partialAddress.equals(e.partialAddress)}toBuffer(){return qs.concat([this.address.toBuffer(),this.publicKey.toBuffer(),this.partialAddress.toBuffer()])}static fromBuffer(e){const t=Tn.asReader(e);return new this(t.readObject(wr),t.readObject(Dn),t.readObject(Nn))}static fromString(e){return this.fromBuffer(qs.from(e.replace(/^0x/i,""),"hex"))}toString(){return`0x${this.toBuffer().toString("hex")}`}}var $s=n(816).Buffer;class ea{constructor(e){if(this.value=e,32!=e.length)throw new Error(`Invalid private key length. Got ${e.length}, expected 32.`)}toString(){return this.value.toString("hex")}static fromString(e){if(e.startsWith("0x")&&(e=e.slice(2)),64!=e.length)throw new Error(`Invalid private key string length. Got ${e.length}, expected 64.`);return new ea($s.from(e,"hex"))}static random(){return new ea(vn(32))}}function ta(e){return new Promise((t=>setTimeout(t,e)))}class na{constructor(){this.start=(new Date).getTime()}ms(){return(new Date).getTime()-this.start}s(){return((new Date).getTime()-this.start)/1e3}}class ra extends Error{}async function sa(e,t="",n=0,r=1){const s=new na;for(;;){const a=await e();if(a)return a;if(await ta(1e3*r),n&&s.s()>n)throw new Error(t?`Timeout awaiting ${t}`:"Timeout")}}var aa=n(816).Buffer;class ia{constructor(e,t,n){this.functionSelector=e,this.isInternal=t,this.bytecode=n}toBuffer(){const e=aa.concat([Wn(this.bytecode.length),this.bytecode]);return qn(this.functionSelector,this.isInternal,e)}static fromBuffer(e){const t=Tn.asReader(e),n=t.readBytes(4),r=t.readBoolean();return new ia(n,r,t.readBuffer())}static random(){return new ia(vn(4),!1,vn(64))}}class oa{constructor(e,t){if(this.contractData=e,this.publicFunctions=t,!t.length)throw Error("No public functions provided for ContractDataAndBytecode.");this.bytecode=function(e){const t=jn.alloc(4);return t.writeUInt32BE(e.length,0),jn.concat([t,...e])}(t.map((e=>e.toBuffer())))}getPublicFunction(e){return this.publicFunctions.find((t=>t.functionSelector.equals(e)))}toBuffer(){return qn(this.contractData.toBuffer(),this.bytecode)}toString(){return this.toBuffer().toString("hex")}static fromBuffer(e){const t=Tn.asReader(e),n=t.readObject(la),r=t.readVector(ia);return new oa(n,r)}static fromString(e){return oa.fromBuffer(aa.from(e,"hex"))}static random(){return new oa(la.random(),[ia.random(),ia.random()])}}class la{constructor(e,t){this.contractAddress=e,this.portalContractAddress=t}toBuffer(){return qn(this.contractAddress,this.portalContractAddress.toBuffer20())}toString(){return this.toBuffer().toString("hex")}static fromBuffer(e){const t=Tn.asReader(e),n=wr.fromBuffer(t),r=new Lr(t.readBytes(Lr.SIZE_IN_BYTES));return new la(n,r)}static fromString(e){return la.fromBuffer(aa.from(e,"hex"))}static random(){return new la(wr.random(),Lr.random())}}function ca(){return{to:wr.ZERO,functionData:Cr.empty(),args:[]}}function ua(e=1,t=void 0){return new Kn(da(e),da(e+1),da(void 0!==t?t:e+2),da(e+3))}function fa(e=1){return new ur(da(e),e)}function da(e){return new Nn(BigInt(e))}n(816).Buffer,n(816).Buffer;var _a=n(8517),ha=n(816).Buffer;class pa{constructor(e){this.logs=e}toBuffer(){const e=this.logs.map((e=>Gn(e)));return Gn(ha.concat(e))}getSerializedLength(){return this.logs.reduce(((e,t)=>e+t.length+4),0)+4}hash(){const e=this.toBuffer().subarray(4);return xn(e)}static fromBuffer(e,t=!0){const n=new Tn(e,0),r=t?n.readNumber():-1,s=n.readBufferArray(r);return new pa(s)}static random(e){const t=[];for(let n=0;n<e;n++){const e=Dn.random(),n=(0,_a.randomBytes)(144-Dn.SIZE_IN_BYTES);t.push(ha.concat([n,e.toBuffer()]))}return new pa(t)}static empty(){return new pa([])}toJSON(){return{logs:this.logs.map((e=>e.toString("hex")))}}static fromJSON(e){const t=e.logs.map((e=>ha.from(e,"hex")));return new pa(t)}}var ga=n(816).Buffer;class ba{constructor(e){this.functionLogs=e}toBuffer(){const e=this.functionLogs.map((e=>e.toBuffer()));return Gn(ga.concat(e))}getSerializedLength(){return this.functionLogs.reduce(((e,t)=>e+t.getSerializedLength()),0)+4}addFunctionLogs(e){this.functionLogs.push(...e)}static fromBuffer(e,t=!0){const n=Tn.asReader(e),r=t?n.readNumber():-1,s=n.readBufferArray(r).map((e=>pa.fromBuffer(e,!1)));return new ba(s)}static random(e,t){const n=[];for(let r=0;r<e;r++)n.push(pa.random(t));return new ba(n)}toJSON(){return{functionLogs:this.functionLogs.map((e=>e.toJSON()))}}static fromJSON(e){const t=e.functionLogs.map((e=>pa.fromJSON(e)));return new ba(t)}}var ma=n(816).Buffer;class ya{constructor(e){this.txLogs=e}toBuffer(){const e=this.txLogs.map((e=>e.toBuffer()));return Gn(ma.concat(e))}getSerializedLength(){return this.txLogs.reduce(((e,t)=>e+t.getSerializedLength()),0)+4}static fromBuffer(e){const t=Tn.asReader(e),n=t.readNumber(),r=t.readBufferArray(n).map((e=>ba.fromBuffer(e,!1)));return new ya(r)}static random(e,t,n){const r=[];for(let s=0;s<e;s++)r.push(ba.random(t,n));return new ya(r)}static unrollLogs(e){const t=[];for(const n of e)for(const e of n.txLogs)for(const n of e.functionLogs)t.push(...n.logs);return t}toJSON(){return{txLogs:this.txLogs.map((e=>e.toJSON()))}}static fromJSON(e){const t=e.txLogs.map((e=>ba.fromJSON(e)));return new ya(t)}}var va=n(816).Buffer;class wa{constructor(e,t,n,r,s,a,i,o=ur.empty(),l,c,u,f,d,_,h,p,g,b,m,y,v=[],w,E){if(this.number=e,this.globalVariables=t,this.startPrivateDataTreeSnapshot=n,this.startNullifierTreeSnapshot=r,this.startContractTreeSnapshot=s,this.startPublicDataTreeRoot=a,this.startL1ToL2MessageTreeSnapshot=i,this.startHistoricBlocksTreeSnapshot=o,this.endPrivateDataTreeSnapshot=l,this.endNullifierTreeSnapshot=c,this.endContractTreeSnapshot=u,this.endPublicDataTreeRoot=f,this.endL1ToL2MessageTreeSnapshot=d,this.endHistoricBlocksTreeSnapshot=_,this.newCommitments=h,this.newNullifiers=p,this.newPublicDataWrites=g,this.newL2ToL1Msgs=b,this.newContracts=m,this.newContractData=y,this.newL1ToL2Messages=v,h.length%$n!=0)throw new Error("The number of new commitments must be a multiple of 16.");w&&this.attachLogs(w,Ea.ENCRYPTED),E&&this.attachLogs(E,Ea.UNENCRYPTED)}static random(e,t=4,n=2,r=3,s=2,a=1){const i=gr(er*t,Nn.random),o=gr($n*t,Nn.random),l=gr(1*t,Nn.random),c=gr(1*t,la.random),u=gr(8*t,Ra.random),f=gr(16,Nn.random),d=gr(2,Nn.random),_=ya.random(t,n,s),h=ya.random(t,r,a);return wa.fromFields({number:e,globalVariables:ua(0,e),startPrivateDataTreeSnapshot:fa(0),startNullifierTreeSnapshot:fa(0),startContractTreeSnapshot:fa(0),startPublicDataTreeRoot:Nn.random(),startL1ToL2MessageTreeSnapshot:fa(0),startHistoricBlocksTreeSnapshot:fa(0),endPrivateDataTreeSnapshot:fa(o.length),endNullifierTreeSnapshot:fa(i.length),endContractTreeSnapshot:fa(l.length),endPublicDataTreeRoot:Nn.random(),endL1ToL2MessageTreeSnapshot:fa(1),endHistoricBlocksTreeSnapshot:fa(1),newCommitments:o,newNullifiers:i,newContracts:l,newContractData:c,newPublicDataWrites:u,newL1ToL2Messages:f,newL2ToL1Msgs:d,newEncryptedLogs:_,newUnencryptedLogs:h})}static fromFields(e){return new this(e.number,e.globalVariables,e.startPrivateDataTreeSnapshot,e.startNullifierTreeSnapshot,e.startContractTreeSnapshot,e.startPublicDataTreeRoot,e.startL1ToL2MessageTreeSnapshot,e.startHistoricBlocksTreeSnapshot,e.endPrivateDataTreeSnapshot,e.endNullifierTreeSnapshot,e.endContractTreeSnapshot,e.endPublicDataTreeRoot,e.endL1ToL2MessageTreeSnapshot,e.endHistoricBlocksTreeSnapshot,e.newCommitments,e.newNullifiers,e.newPublicDataWrites,e.newL2ToL1Msgs,e.newContracts,e.newContractData,e.newL1ToL2Messages,e.newEncryptedLogs,e.newUnencryptedLogs)}encode(){if(void 0===this.newEncryptedLogs||void 0===this.newUnencryptedLogs)throw new Error("newEncryptedLogs and newUnencryptedLogs must be defined when encoding L2BlockData");return qn(this.globalVariables,this.startPrivateDataTreeSnapshot,this.startNullifierTreeSnapshot,this.startContractTreeSnapshot,this.startPublicDataTreeRoot,this.startL1ToL2MessageTreeSnapshot,this.startHistoricBlocksTreeSnapshot,this.endPrivateDataTreeSnapshot,this.endNullifierTreeSnapshot,this.endContractTreeSnapshot,this.endPublicDataTreeRoot,this.endL1ToL2MessageTreeSnapshot,this.endHistoricBlocksTreeSnapshot,this.newCommitments.length,this.newCommitments,this.newNullifiers.length,this.newNullifiers,this.newPublicDataWrites.length,this.newPublicDataWrites,this.newL2ToL1Msgs.length,this.newL2ToL1Msgs,this.newContracts.length,this.newContracts,this.newContractData,this.newL1ToL2Messages.length,this.newL1ToL2Messages,this.newEncryptedLogs,this.newUnencryptedLogs)}toBuffer(){return this.encode()}static decode(e){const t=Tn.asReader(e),n=t.readObject(Kn),r=Number(n.blockNumber.value),s=t.readObject(ur),a=t.readObject(ur),i=t.readObject(ur),o=t.readObject(Nn),l=t.readObject(ur),c=t.readObject(ur),u=t.readObject(ur),f=t.readObject(ur),d=t.readObject(ur),_=t.readObject(Nn),h=t.readObject(ur),p=t.readObject(ur),g=t.readVector(Nn),b=t.readVector(Nn),m=t.readVector(Ra),y=t.readVector(Nn),v=t.readVector(Nn),w=t.readArray(v.length,la),E=t.readVector(Nn),L=t.readObject(ya),A=t.readObject(ya);return wa.fromFields({number:r,globalVariables:n,startPrivateDataTreeSnapshot:s,startNullifierTreeSnapshot:a,startContractTreeSnapshot:i,startPublicDataTreeRoot:o,startL1ToL2MessageTreeSnapshot:l,startHistoricBlocksTreeSnapshot:c,endPrivateDataTreeSnapshot:u,endNullifierTreeSnapshot:f,endContractTreeSnapshot:d,endPublicDataTreeRoot:_,endL1ToL2MessageTreeSnapshot:h,endHistoricBlocksTreeSnapshot:p,newCommitments:g,newNullifiers:b,newPublicDataWrites:m,newL2ToL1Msgs:y,newContracts:v,newContractData:w,newL1ToL2Messages:E,newEncryptedLogs:L,newUnencryptedLogs:A})}attachLogs(e,t){const n=t===Ea.ENCRYPTED?"newEncryptedLogs":"newUnencryptedLogs";if(this[n]){if(this[n]===e)return void wa.logger(`${n} logs already attached`);throw new Error(`Trying to attach different ${n} logs to block ${this.number}.`)}wa.logger(`Attaching ${n} logs`);const r=this.newCommitments.length/$n;if(r!==e.txLogs.length)throw new Error(`Number of txLogs within ${n} does not match number of transactions. Expected: ${r} Got: ${e.txLogs.length}`);this[n]=e}getPublicInputsHash(){return e=qn(this.globalVariables,this.startPrivateDataTreeSnapshot,this.startNullifierTreeSnapshot,this.startContractTreeSnapshot,this.startPublicDataTreeRoot,this.startL1ToL2MessageTreeSnapshot,this.startHistoricBlocksTreeSnapshot,this.endPrivateDataTreeSnapshot,this.endNullifierTreeSnapshot,this.endContractTreeSnapshot,this.endPublicDataTreeRoot,this.endL1ToL2MessageTreeSnapshot,this.endHistoricBlocksTreeSnapshot,this.getCalldataHash(),this.getL1ToL2MessagesHash()),Nn.fromBuffer(An(Ln(xn(e))%Nn.MODULUS,32));var e}getStartStateHash(){const e=qn(new Nn(this.number-1),this.startPrivateDataTreeSnapshot,this.startNullifierTreeSnapshot,this.startContractTreeSnapshot,this.startPublicDataTreeRoot,this.startL1ToL2MessageTreeSnapshot,this.startHistoricBlocksTreeSnapshot);return xn(e)}getEndStateHash(){const e=qn(this.globalVariables.blockNumber,this.endPrivateDataTreeSnapshot,this.endNullifierTreeSnapshot,this.endContractTreeSnapshot,this.endPublicDataTreeRoot,this.endL1ToL2MessageTreeSnapshot,this.endHistoricBlocksTreeSnapshot);return xn(e)}getCalldataHash(){if(void 0===this.newEncryptedLogs)throw new Error('Encrypted logs has to be attached before calling "getCalldataHash"');if(void 0===this.newUnencryptedLogs)throw new Error('Unencrypted logs has to be attached before calling "getCalldataHash"');const e=this.newCommitments.length/32,t=[];for(let n=0;n<e;n++){const e=32,r=32,s=16,a=4,i=va.concat(this.newCommitments.slice(n*e,(n+1)*e).map((e=>e.toBuffer()))),o=va.concat(this.newNullifiers.slice(n*r,(n+1)*r).map((e=>e.toBuffer()))),l=va.concat(this.newPublicDataWrites.slice(n*s,(n+1)*s).map((e=>e.toBuffer()))),c=va.concat(this.newL2ToL1Msgs.slice(n*a,(n+1)*a).map((e=>e.toBuffer()))),u=wa.computeKernelLogsHash(this.newEncryptedLogs.txLogs[2*n]),f=wa.computeKernelLogsHash(this.newEncryptedLogs.txLogs[2*n+1]),d=wa.computeKernelLogsHash(this.newUnencryptedLogs.txLogs[2*n]),_=wa.computeKernelLogsHash(this.newUnencryptedLogs.txLogs[2*n+1]),h=va.concat([i,o,l,c,this.newContracts[2*n].toBuffer(),this.newContracts[2*n+1].toBuffer(),this.newContractData[2*n].contractAddress.toBuffer(),this.newContractData[2*n].portalContractAddress.toBuffer32(),this.newContractData[2*n+1].contractAddress.toBuffer(),this.newContractData[2*n+1].portalContractAddress.toBuffer32(),u,f,d,_]);t.push(xn(h))}return(e=>{const t=[e];let n=0;for(;t[n].length>1;){const e=[],r=t[n].length;for(let s=0;s<r;s+=2){const r=t[n][s],a=t[n][s+1];e.push(xn(va.concat([r,a])))}t.push(e),n++}return t[t.length-1][0]})(t)}getL1ToL2MessagesHash(){const e=va.concat(this.newL1ToL2Messages.map((e=>e.toBuffer())));return xn(e)}getTx(e){const t=Math.floor(this.newCommitments.length/$n);if(e>=t)throw new Error(`Failed to get tx ${e}. Block ${this.globalVariables.blockNumber} only has ${t} txs.`);const n=this.newCommitments.slice($n*e,$n*(e+1)),r=this.newNullifiers.slice(er*e,er*(e+1)),s=this.newPublicDataWrites.slice(8*e,8*(e+1)),a=this.newL2ToL1Msgs.slice(2*e,2*(e+1)),i=this.newContracts.slice(1*e,1*(e+1)),o=this.newContractData.slice(1*e,1*(e+1));return new Ca(n,r,s,a,i,o)}inspect(e=4){const t=t=>`0x${t.toBuffer().subarray(0,e).toString("hex")}`,n=(e,t)=>"["+e.map(t).join(", ")+"]",r=e=>`(${e.nextAvailableLeafIndex}, ${t(e.root)})`,s=e=>n(e,t),a=e=>n(e,(e=>`(${t(e.leafIndex)}, ${t(e.newValue)})`));return["L2Block",`number: ${this.number}`,"globalVariables: "+(o=this.globalVariables,`(${o.chainId}, ${o.version}, ${o.blockNumber}, ${o.timestamp}))`),`startPrivateDataTreeSnapshot: ${r(this.startPrivateDataTreeSnapshot)}`,`startNullifierTreeSnapshot: ${r(this.startNullifierTreeSnapshot)}`,`startContractTreeSnapshot: ${r(this.startContractTreeSnapshot)}`,`startPublicDataTreeRoot: ${this.startPublicDataTreeRoot.toString()}`,`startL1ToL2MessageTreeSnapshot: ${r(this.startL1ToL2MessageTreeSnapshot)}`,`startHistoricBlocksTreeSnapshot: ${r(this.startHistoricBlocksTreeSnapshot)}`,`endPrivateDataTreeSnapshot: ${r(this.endPrivateDataTreeSnapshot)}`,`endNullifierTreeSnapshot: ${r(this.endNullifierTreeSnapshot)}`,`endContractTreeSnapshot: ${r(this.endContractTreeSnapshot)}`,`endPublicDataTreeRoot: ${this.endPublicDataTreeRoot.toString()}`,`endPublicDataTreeRoot: ${this.endPublicDataTreeRoot.toString()}`,`endL1ToL2MessageTreeSnapshot: ${r(this.endL1ToL2MessageTreeSnapshot)}`,`endHistoricBlocksTreeSnapshot: ${r(this.endHistoricBlocksTreeSnapshot)}`,`newCommitments: ${s(this.newCommitments)}`,`newNullifiers: ${s(this.newNullifiers)}`,`newPublicDataWrite: ${a(this.newPublicDataWrites)}`,`newL2ToL1Msgs: ${s(this.newL2ToL1Msgs)}`,`newContracts: ${s(this.newContracts)}`,`newContractData: ${i=this.newContractData,n(i,(e=>`(${t(e.contractAddress)}, ${t(e.portalContractAddress)})`))}`,`newPublicDataWrite: ${a(this.newPublicDataWrites)}`,`newL1ToL2Messages: ${s(this.newL1ToL2Messages)}`].join("\n");var i,o}static computeKernelLogsHash(e){const t=[va.alloc(32),va.alloc(32)];let n=va.alloc(32);for(const r of e.functionLogs)t[0]=n,t[1]=r.hash(),n=xn(va.concat(t));return n}}wa.logger=fs("aztec:l2_block"),fs("aztec:l2_block_downloader");var Ea,La,Aa=n(816).Buffer;class Sa{constructor(e){this.buffer=e,lr(this,"buffer",Sa.SIZE)}equals(e){return this.buffer.equals(e.buffer)}isZero(){return this.buffer.equals(Aa.alloc(32,0))}toString(){return this.buffer.toString("hex")}toBigInt(){return function(e,t=0,n=32){return{elem:Ln(e.subarray(t,t+n)),adv:n}}(this.buffer,0,Sa.SIZE).elem}static fromBigInt(e){return new Sa(function(e,t=32){return An(e,t)}(e,Sa.SIZE))}static fromBuffer28(e){if(28!=e.length)throw new Error("Expected TxHash input buffer to be 28 bytes");const t=Aa.concat([Aa.alloc(this.SIZE-28),e]);return new Sa(t)}static fromString(e){return new Sa(Aa.from(e,"hex"))}}Sa.SIZE=32,Sa.ZERO=new Sa(Aa.alloc(Sa.SIZE));class Ca{constructor(e,t,n,r,s,a){this.newCommitments=e,this.newNullifiers=t,this.newPublicDataWrites=n,this.newL2ToL1Msgs=r,this.newContracts=s,this.newContractData=a,this.txHash=new Sa(this.newNullifiers[0].toBuffer())}}!function(e){e[e.ENCRYPTED=0]="ENCRYPTED",e[e.UNENCRYPTED=1]="UNENCRYPTED"}(Ea||(Ea={})),n(1240),n(816).Buffer,function(e){e[e.CONTRACT_TREE=0]="CONTRACT_TREE",e[e.NULLIFIER_TREE=1]="NULLIFIER_TREE",e[e.PRIVATE_DATA_TREE=2]="PRIVATE_DATA_TREE",e[e.PUBLIC_DATA_TREE=3]="PUBLIC_DATA_TREE",e[e.L1_TO_L2_MESSAGES_TREE=4]="L1_TO_L2_MESSAGES_TREE",e[e.BLOCKS_TREE=5]="BLOCKS_TREE"}(La||(La={}));var Ta=n(816).Buffer;class Pa{constructor(e,t,n,r,s,a){if(this.data=e,this.proof=t,this.encryptedLogs=n,this.unencryptedLogs=r,this.newContractPublicFunctions=s,this.enqueuedPublicFunctionCalls=a,this.unencryptedLogs.functionLogs.length<this.encryptedLogs.functionLogs.length)throw new Error(`Number of function logs in unencrypted logs (${this.unencryptedLogs.functionLogs.length}) has to be equal\n or larger than number function logs in encrypted logs (${this.encryptedLogs.functionLogs.length})`);const i=e?.end.publicCallStack&&(o=e.end.publicCallStack,l=e=>e.isZero(),o.reduce(((e,t)=>l(t)?e:e+1),0));var o,l;if(i&&i>(a?.length??0))throw new Error(`Missing preimages for enqueued public function calls in kernel circuit public inputs (expected\n ${i}, got ${a?.length})`)}static fromBuffer(e){const t=Tn.asReader(e);return new Pa(t.readObject(Hr),t.readObject(Fr),t.readObject(ba),t.readObject(ba),t.readArray(t.readNumber(),ia),t.readArray(8,rs))}toBuffer(){return qn([this.data,this.proof,this.encryptedLogs,this.unencryptedLogs,Zn(this.newContractPublicFunctions.length),this.newContractPublicFunctions,this.enqueuedPublicFunctionCalls])}toJSON(){return{data:this.data.toBuffer().toString("hex"),encryptedLogs:this.encryptedLogs.toBuffer().toString("hex"),unencryptedLogs:this.unencryptedLogs.toBuffer().toString("hex"),proof:this.proof.toBuffer().toString("hex"),newContractPublicFunctions:this.newContractPublicFunctions.map((e=>e.toBuffer().toString("hex")))??[],enqueuedPublicFunctions:this.enqueuedPublicFunctionCalls.map((e=>e.toBuffer().toString("hex")))??[]}}static fromJSON(e){const t=Hr.fromBuffer(Ta.from(e.data,"hex")),n=ba.fromBuffer(Ta.from(e.encryptedLogs,"hex")),r=ba.fromBuffer(Ta.from(e.unencryptedLogs,"hex")),s=Ta.from(e.proof,"hex"),a=e.newContractPublicFunctions?e.newContractPublicFunctions.map((e=>ia.fromBuffer(Ta.from(e,"hex")))):[],i=e.enqueuedPublicFunctions?e.enqueuedPublicFunctions.map((e=>rs.fromBuffer(Ta.from(e,"hex")))):[];return new Pa(t,Fr.fromBuffer(s),n,r,a,i)}getTxHash(){const e=this.data?.end.newNullifiers[0];if(!e)throw new Error("Cannot get tx hash since first nullifier is missing");return Promise.resolve(new Sa(e.toBuffer()))}static async getHashes(e){return await Promise.all(e.map((e=>e.getTxHash())))}static clone(e){const t=Hr.fromBuffer(e.data.toBuffer()),n=Fr.fromBuffer(e.proof.toBuffer()),r=ba.fromBuffer(e.encryptedLogs.toBuffer()),s=ba.fromBuffer(e.unencryptedLogs.toBuffer()),a=e.newContractPublicFunctions.map((e=>ia.fromBuffer(e.toBuffer()))),i=e.enqueuedPublicFunctionCalls.map((e=>rs.fromBuffer(e.toBuffer())));return new Pa(t,n,r,s,a,i)}}class Na{constructor(e,t,n){this.tx=e,this.partialAddress=t,this.contractAddress=n}toJSON(){return{tx:this.tx.toJSON(),partialAddress:this.partialAddress.toBuffer().toString(),contractAddress:this.contractAddress.toBuffer().toString()}}static fromJSON(e){return new Na(Pa.fromJSON(e.tx),Nn.fromBuffer(Ta.from(e.partialAddress,"hex")),wr.fromBuffer(Ta.from(e.contractAddress,"hex")))}}var Ia,ka=n(816).Buffer;!function(e){e.DROPPED="dropped",e.MINED="mined",e.PENDING="pending"}(Ia||(Ia={}));class xa{constructor(e,t,n,r,s,a,i){this.txHash=e,this.status=t,this.error=n,this.blockHash=r,this.blockNumber=s,this.origin=a,this.contractAddress=i}toJSON(){return{txHash:this.txHash.toString(),status:this.status.toString(),error:this.error,blockHash:this.blockHash?.toString("hex"),blockNumber:this.blockNumber,origin:this.origin?.toString(),contractAddress:this.contractAddress?.toString()}}static fromJSON(e){const t=Sa.fromString(e.txHash),n=e.status,r=e.error,s=e.blockHash?ka.from(e.blockHash,"hex"):void 0,a=e.blockNumber?Number(e.blockNumber):void 0,i=e.origin?wr.fromString(e.origin):void 0,o=e.contractAddress?wr.fromString(e.contractAddress):void 0;return new xa(t,n,r,s,a,i,o)}}n(816).Buffer;class Ra{constructor(e,t){this.leafIndex=e,this.newValue=t}static from(e){return new Ra(e.leafIndex,e.newValue)}toBuffer(){return qn(this.leafIndex,this.newValue)}isEmpty(){return this.leafIndex.isZero()&&this.newValue.isZero()}static fromBuffer(e){const t=Tn.asReader(e);return new Ra(t.readFr(),t.readFr())}static empty(){return new Ra(Nn.ZERO,Nn.ZERO)}static random(){return new Ra(Nn.random(),Nn.random())}}class Ba{constructor(e,t){this.args=e,this.hash=t}static getFields(e){return[e.args,e.hash]}static from(e){return new Ba(...Ba.getFields(e))}static async fromArgs(e,t){return new Ba(e,await Kr(t??await ks.get(),e))}toBuffer(){return qn(new br(this.args),this.hash)}static fromBuffer(e){const t=Tn.asReader(e);return new Ba(t.readVector(Nn),t.readFr())}}var Oa=n(816).Buffer;class Da{constructor(e,t,n,r,s){this.origin=e,this.functionData=t,this.argsHash=n,this.txContext=r,this.packedArguments=s}toTxRequest(){return new es(this.origin,this.functionData,this.argsHash,this.txContext)}static getFields(e){return[e.origin,e.functionData,e.argsHash,e.txContext,e.packedArguments]}static from(e){return new Da(...Da.getFields(e))}toBuffer(){return qn(this.origin,this.functionData,this.argsHash,this.txContext,new br(this.packedArguments))}toString(){return this.toBuffer().toString("hex")}static fromBuffer(e){const t=Tn.asReader(e);return new Da(t.readObject(wr),t.readObject(Cr),t.readFr(),t.readObject(Br),t.readVector(Ba))}static fromString(e){return Da.fromBuffer(Oa.from(e,"hex"))}}n(816).Buffer;var Fa=n(9467),Ha=n.n(Fa);class Ma{constructor(e,t){this.arc=e,this.txHashPromise=t}async getTxHash(){return await this.txHashPromise}async getReceipt(){const e=await this.getTxHash();return await this.arc.getTxReceipt(e)}async wait(e){const t=await this.waitForReceipt(e);if(t.status!==Ia.MINED)throw new Error(`Transaction ${await this.getTxHash()} was ${t.status}`);return t}async isMined(e){return(await this.waitForReceipt(e)).status===Ia.MINED}async waitForReceipt(e){const t=await this.getTxHash();return await sa((async()=>{const n=await this.arc.getTxReceipt(t);if(n.status===Ia.PENDING)return;if(n.status===Ia.DROPPED)return n;if(!(e?.waitForNotesSync??true))return n;const{blocks:r,notes:s}=await this.arc.getSyncStatus(),a=n.blockNumber;return r>=a&&Ha()(s,(e=>e>=a))?n:void 0}),"isMined",e?.timeout??60,e?.interval??1)}}class za{constructor(e){this.rpc=e}async simulate(e={}){const t=this.txRequest??await this.create(e);return this.tx=await this.rpc.simulateTx(t),this.tx}send(e={}){const t=(async()=>{const t=this.tx??await this.simulate(e);return this.rpc.sendTx(t)})();return new Ma(this.rpc,t)}}class Ua extends za{constructor(e,t,n,r){if(super(e),this.wallet=e,this.contractAddress=t,this.functionDao=n,this.args=r,r.some((e=>null==e)))throw new Error("All function interaction arguments must be defined and not null. Received: "+r)}async create(e={}){if(this.functionDao.functionType===fn.UNCONSTRAINED)throw new Error("Can't call `create` on an unconstrained function.");return this.txRequest||(this.txRequest=await this.wallet.createTxExecutionRequest([this.request()],e)),this.txRequest}request(){return{args:Un(this.functionDao,this.args),functionData:Cr.fromAbi(this.functionDao),to:this.contractAddress}}view(e={}){if(this.functionDao.functionType!==fn.UNCONSTRAINED)throw new Error("Can only call `view` on an unconstrained function.");const{from:t}=e;return this.wallet.viewTx(this.functionDao.name,this.args,this.contractAddress,t)}}class ja{constructor(e,t,n){this.address=e,this.abi=t,this.wallet=n,this.methods={},t.functions.forEach((e=>{this.methods[e.name]=Object.assign(((...t)=>new Ua(this.wallet,this.address,e,t)),{get selector(){return Bn(e.name,e.parameters)}})}))}attach(e,t=[]){const n={abi:this.abi,address:this.address,portalContract:e};return this.wallet.addContracts([n,...t])}}class Za extends ja{static async at(e,t,n){if(!await ci(n,e))throw new Error("Contract "+e.toString()+" is not deployed");return new Za(e,t,n)}}class Wa extends za{constructor(e,t){super(e),this.wallet=e,this.calls=t}async create(e){return this.txRequest||(this.txRequest=await this.wallet.createTxExecutionRequest(this.calls,e)),this.txRequest}}class Ga extends Ma{constructor(e,t,n){super(t,n),this.abi=e}async deployed(e){return(await this.wait(e)).contract}async wait(e){const t=await super.wait(e),n=await this.getContractInstance(e?.wallet,t.contractAddress);return{...t,contract:n}}getContractInstance(e,t){const n=e??(!!this.arc.createTxExecutionRequest&&this.arc);if(!n)throw new Error("A wallet is required for creating a contract instance");if(!t)throw new Error("Contract address is missing from transaction receipt");return Za.at(t,this.abi,n)}}class Qa extends za{constructor(e,t,n,r=[]){super(t),this.publicKey=e,this.arc=t,this.abi=n,this.args=r,this.partialAddress=void 0,this.completeContractAddress=void 0;const s=n.functions.find((e=>"constructor"===e.name));if(!s)throw new Error("Cannot find constructor in the ABI.");this.constructorAbi=s}async create(e={}){const t=e.portalContract??Lr.ZERO,n=e.contractAddressSalt??Nn.random(),{chainId:r,version:s}=await this.rpc.getNodeInfo(),{completeAddress:a,constructorHash:i,functionTreeRoot:o}=await Ds(this.abi,this.args,n,this.publicKey),l=new Rr(this.publicKey,i,o,n,t),c=new Br(!1,!1,!0,l,new Nn(r),new Nn(s)),u={args:Un(this.constructorAbi,this.args),functionData:Cr.fromAbi(this.constructorAbi),to:a.address},f=await Ba.fromArgs(u.args),d=Da.from({origin:u.to,functionData:u.functionData,argsHash:f.hash,txContext:c,packedArguments:[f]});return this.txRequest=d,this.partialAddress=a.partialAddress,this.completeContractAddress=a.address,await this.rpc.addContracts([{abi:this.abi,address:a.address,portalContract:t}]),this.txRequest}send(e={}){const t=super.send(e).getTxHash();return new Ga(this.abi,this.arc,t)}simulate(e){return super.simulate(e)}}class Xa{constructor(e,t,n){this.abi=e,this.arc=t,this.publicKey=n}deploy(...e){return new Qa(this.publicKey??Dn.ZERO,this.arc,this.abi,e)}}async function Ya(e){return function(e,t){e.call("pedersen__init");const n=Qr(e,"abis__compute_message_secret_hash",t,32);return Nn.fromBuffer(n)}(await ks.get(),e)}var Ja=n(107),Va=n.n(Ja);const qa=JSON.parse('{"name":"SchnorrSingleKeyAccount","functions":[{"name":"constructor","functionType":"secret","isInternal":false,"parameters":[],"returnTypes":[],"bytecode":"H4sIAAAAAAAA/9Xc12/aUBzFcUKTdO/svfewsQ02XWm6994roYHu3f7/5SggRXnN4eF7JQv8Yp2PAPuO3+VfLper5LZbW/3I14/2xvvmeceu887G+52teb7WeI2CYhxXS4VqGIWbQSGrpEkQJ5ViGqZhkiZbhTSKqmmclrJKVgqyMI6qYS3Jolqw3Xp2XCvYY2tlzl5Izj5Izn5IzgFIzkFIziFIzmFIzhFIzlFIzjFIznFIzglIzklIzilIzmlIzhlIzllIzjlIznlIzgVIzkVIziVIzmVIzhVIzlVIzgCSM4TkLEByRpCcMSRnAslZhOQsQXKmkJwZJGe5RTnzu3IGe2thm9F8BmLOG81nIeZ9RvM5iLndaD4PMXcYzRcg5k6jeQ1i7jGaL0LMvUbzOsTcZzRfgpj7jebLEPOA0XwFYh40mq9CzENG8zWIedhovg4xjxjNNyDmUaP5JsQ8ZjTfgpjHjebbEPOE0XwHYp40mu9CzFNG8z2Iedpovg8xzxjNDyDmWaP5IcQ8ZzQ/gpjnjebHEPOC0fwEYl40mp9CzEtG8zOIedlofg4xrxjNLyDmVaP5JcQcGM2vIObQaH4NMReM5jcQc2Q0v4WYY6P5HcScGM0bEHPRaN6EmEtGcwViTo3m9xBzZjRvQcxlo7kKMe83mmsQ8wGj+QPEfNBo/ggxHzKaP0HMh43mzxDzEaP5C8R81Gj+CjEfM5q/QczHjebvEPMJo/kHxHzSaP4JMZ8ymn9BzKeN5t8Qc5fR/Adi7jaa/7bA3N14bf5fn/ZGaa+Q9s5oL4nGhRonadygfrT6lepnqd+h57CeS7pP676l37G+112N65Yb19ZeOO0N014p7R1q7qXRXov1+qFafNWmq1Zbtcuq5VVtq2o9VfuoWkDVxqlWTLVTqiVSbY1qTVR7oVoErc1rrVprt1rL1Nqe1rq09qO1EK0NaK5cc8eaS92oH5pr09yT5mI0N6GxusauGstpbKO+vvq+6guqb6S+gp6depbo3qp7jX57+i7qs/kPVgMtpSBRAAA=","verificationKey":"0000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f"},{"name":"entrypoint","functionType":"secret","isInternal":false,"parameters":[{"name":"payload","type":{"kind":"struct","name":"EntrypointPayload","fields":[{"name":"flattened_args_hashes","type":{"kind":"array","length":4,"type":{"kind":"field"}}},{"name":"flattened_selectors","type":{"kind":"array","length":4,"type":{"kind":"field"}}},{"name":"flattened_targets","type":{"kind":"array","length":4,"type":{"kind":"field"}}},{"name":"nonce","type":{"kind":"field"}}]},"visibility":"public"},{"name":"owner","type":{"kind":"array","length":64,"type":{"kind":"integer","sign":"unsigned","width":8}},"visibility":"public"},{"name":"signature","type":{"kind":"array","length":64,"type":{"kind":"integer","sign":"unsigned","width":8}},"visibility":"public"},{"name":"partial_address","type":{"kind":"field"},"visibility":"public"}],"returnTypes":[],"bytecode":"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","verificationKey":"0000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f"}],"debug":{"debugSymbols":["eJyrVsrJT04syczPK1ayqq6tBQAz9wY7","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"],"fileMap":{"0":{"source":"// Account contract that uses Schnorr signatures for authentication. The signing key is the same as the\\n// encryption key, and as such is not stored in the contract but part of the address preimage, so it can\\n// be verified by passing in the partial address.\\ncontract SchnorrSingleKeyAccount {\\n use dep::std;\\n use dep::aztec::entrypoint;\\n use dep::aztec::entrypoint::EntrypointPayload;\\n use dep::aztec::abi;\\n use dep::aztec::abi::PrivateContextInputs;\\n use dep::aztec::abi::CallContext;\\n use dep::aztec::private_call_stack_item::PrivateCallStackItem;\\n use dep::aztec::public_call_stack_item::PublicCallStackItem;\\n use dep::aztec::context::PrivateContext;\\n use dep::aztec::types::vec::BoundedVec;\\n use dep::aztec::types::point::Point;\\n use dep::aztec::constants_gen::GENERATOR_INDEX__CONTRACT_ADDRESS;\\n use dep::aztec::constants_gen::GENERATOR_INDEX__SIGNATURE_PAYLOAD;\\n\\n fn entrypoint(\\n inputs: pub PrivateContextInputs,\\n payload: pub EntrypointPayload, // contains a set of arguments, selectors, targets and a nonce\\n owner: pub [u8;64], // pubkey x and y coordinates concatenated\\n signature: pub [u8;64], // schnorr signature of the payload hash\\n partial_address: pub Field,\\n ) -> distinct pub abi::PrivateCircuitPublicInputs {\\n // Initialize context\\n // ENTRYPOINT_PAYLOAD_SIZE(13) + 64 + 64 + 1\\n let mut args: BoundedVec<Field, 142> = BoundedVec::new(0);\\n args.push_array(payload.serialize());\\n for byte in owner { args.push(byte as Field); }\\n for byte in signature { args.push(byte as Field); }\\n args.push(partial_address);\\n let mut context = PrivateContext::new(inputs, abi::hash_args(args.storage));\\n\\n // Verify payload signature\\n let payload_fields: [Field; entrypoint::ENTRYPOINT_PAYLOAD_SIZE] = payload.serialize();\\n let message_field: Field = std::hash::pedersen_with_separator(payload_fields, GENERATOR_INDEX__SIGNATURE_PAYLOAD)[0];\\n let message_bytes = message_field.to_be_bytes(32);\\n\\n // Convert owner pubkey into fields\\n let mut x: Field = 0;\\n let mut y: Field = 0;\\n let mut mul: Field = 1;\\n for i in 0..32 {\\n let bytex: Field = owner[31 - i] as Field;\\n x = x + (bytex * mul);\\n let bytey: Field = owner[63 - i] as Field;\\n y = y + (bytey * mul);\\n mul *= 256;\\n }\\n \\n // Verify signature of the payload hash\\n // TODO: Find out why this signature verification never fails\\n let verification = std::schnorr::verify_signature(x, y, signature, message_bytes);\\n assert(verification == true);\\n\\n // Verify public key against address\\n let reproduced_address = dep::std::hash::pedersen_with_separator([x, y, partial_address], GENERATOR_INDEX__CONTRACT_ADDRESS)[0];\\n assert(reproduced_address == context.this_address());\\n\\n // Execute calls\\n payload.execute_calls(&mut context);\\n\\n context.finish()\\n }\\n\\n // Constructs the contract\\n fn constructor(\\n inputs: pub PrivateContextInputs,\\n ) -> distinct pub abi::PrivateCircuitPublicInputs {\\n // Return private circuit public inputs. All private functions need to return this as it is part of the input of the private kernel.\\n PrivateContext::new(inputs, 0).finish()\\n }\\n}\\n","path":"/mnt/user-data/alvaro/aztec-packages/yarn-project/noir-contracts/src/contracts/schnorr_single_key_account_contract/src/main"},"18":{"source":"\\nimpl Field {\\n #[builtin(to_le_bits)]\\n fn to_le_bits(_x : Field, _bit_size: u32) -> [u1] {}\\n #[builtin(to_be_bits)]\\n fn to_be_bits(_x : Field, _bit_size: u32) -> [u1] {}\\n\\n fn to_le_bytes(x : Field, byte_size: u32) -> [u8] {\\n x.to_le_radix(256, byte_size)\\n }\\n fn to_be_bytes(x : Field, byte_size: u32) -> [u8] {\\n x.to_be_radix(256, byte_size)\\n }\\n\\n #[builtin(to_le_radix)]\\n //decompose _x into a _result_len vector over the _radix basis\\n //_radix must be less than 256\\n fn to_le_radix(_x : Field, _radix: u32, _result_len: u32) -> [u8] {}\\n #[builtin(to_be_radix)]\\n fn to_be_radix(_x : Field, _radix: u32, _result_len: u32) -> [u8] {}\\n\\n // Returns self to the power of the given exponent value.\\n // Caution: we assume the exponent fits into 32 bits\\n // using a bigger bit size impacts negatively the performance and should be done only if the exponent does not fit in 32 bits\\n fn pow_32(self, exponent: Field) -> Field {\\n let mut r: Field = 1;\\n let b = exponent.to_le_bits(32);\\n\\n for i in 1..33 {\\n r *= r;\\n r = (b[32-i] as Field) * (r * self) + (1 - b[32-i] as Field) * r;\\n }\\n r\\n }\\n\\n // Parity of (prime) Field element, i.e. sgn0(x mod p) = 0 if x ∈ {0, ..., p-1} is even, otherwise sgn0(x mod p) = 1.\\n fn sgn0(self) -> u1 {\\n self as u1\\n }\\n}\\n\\n#[builtin(modulus_num_bits)]\\nfn modulus_num_bits() -> Field {}\\n\\n#[builtin(modulus_be_bits)]\\nfn modulus_be_bits() -> [u1] {}\\n\\n#[builtin(modulus_le_bits)]\\nfn modulus_le_bits() -> [u1] {}\\n\\n#[builtin(modulus_be_bytes)]\\nfn modulus_be_bytes() -> [u8] {}\\n\\n#[builtin(modulus_le_bytes)]\\nfn modulus_le_bytes() -> [u8] {}\\n","path":"std/field"},"31":{"source":"use crate::constants_gen::{\\n RETURN_VALUES_LENGTH,\\n MAX_READ_REQUESTS_PER_CALL,\\n MAX_NEW_COMMITMENTS_PER_CALL,\\n MAX_NEW_NULLIFIERS_PER_CALL,\\n MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL,\\n MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL,\\n MAX_NEW_L2_TO_L1_MSGS_PER_CALL,\\n NUM_FIELDS_PER_SHA256,\\n MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL,\\n MAX_PUBLIC_DATA_READS_PER_CALL,\\n GENERATOR_INDEX__FUNCTION_ARGS,\\n HISTORIC_BLOCK_DATA_LENGTH,\\n CONTRACT_DEPLOYMENT_DATA_LENGTH,\\n CALL_CONTEXT_LENGTH,\\n PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH,\\n PRIVATE_CIRCUIT_PUBLIC_INPUTS_HASH_INPUT_LENGTH,\\n CONTRACT_STORAGE_UPDATE_REQUEST_LENGTH,\\n CONTRACT_STORAGE_READ_LENGTH,\\n PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH,\\n PUBLIC_CIRCUIT_PUBLIC_INPUTS_HASH_INPUT_LENGTH,\\n GENERATOR_INDEX__PUBLIC_CIRCUIT_PUBLIC_INPUTS,\\n GENERATOR_INDEX__FUNCTION_DATA,\\n GENERATOR_INDEX__PUBLIC_DATA_READ,\\n GENERATOR_INDEX__PUBLIC_DATA_UPDATE_REQUEST,\\n GENERATOR_INDEX__CALL_CONTEXT,\\n GENERATOR_INDEX__PRIVATE_CIRCUIT_PUBLIC_INPUTS,\\n GENERATOR_INDEX__CONTRACT_DEPLOYMENT_DATA,\\n};\\n\\nuse crate::oracle::debug_log;\\nuse crate::types::vec::BoundedVec;\\nuse crate::types::point::Point;\\n\\nstruct PrivateGlobalVariables {\\n chain_id: Field,\\n version: Field,\\n}\\n\\nimpl PrivateGlobalVariables {\\n fn serialize(self) -> [Field; 2] {\\n [self.chain_id, self.version]\\n }\\n}\\n\\nstruct PublicGlobalVariables {\\n chain_id: Field,\\n version: Field,\\n block_number: Field,\\n timestamp: Field,\\n}\\n\\nimpl PublicGlobalVariables {\\n fn serialize(self) -> [Field; 4] {\\n [self.chain_id, self.version, self.block_number, self.timestamp]\\n }\\n}\\n\\nstruct ContractDeploymentData {\\n deployer_public_key: Point,\\n constructor_vk_hash : Field,\\n function_tree_root : Field,\\n contract_address_salt : Field,\\n portal_contract_address : Field,\\n}\\n\\nimpl ContractDeploymentData {\\n fn serialize(self) -> [Field; CONTRACT_DEPLOYMENT_DATA_LENGTH] {\\n [\\n self.deployer_public_key.x,\\n self.deployer_public_key.y,\\n self.constructor_vk_hash,\\n self.function_tree_root,\\n self.contract_address_salt,\\n self.portal_contract_address,\\n ]\\n }\\n\\n fn hash(self) -> Field {\\n dep::std::hash::pedersen_with_separator(self.serialize(), GENERATOR_INDEX__CONTRACT_DEPLOYMENT_DATA)[0]\\n }\\n}\\n\\n// PrivateContextInputs are expected to be provided to each private function\\nstruct PrivateContextInputs {\\n call_context : CallContext,\\n block_data: HistoricBlockData,\\n\\n contract_deployment_data: ContractDeploymentData,\\n\\n private_global_variables: PrivateGlobalVariables,\\n}\\n\\n// PublicContextInputs are expected to be provided to each public function\\nstruct PublicContextInputs {\\n call_context: CallContext,\\n block_data: HistoricBlockData,\\n\\n public_global_variables: PublicGlobalVariables,\\n}\\n\\nstruct CallContext {\\n msg_sender : Field,\\n storage_contract_address : Field,\\n portal_contract_address : Field,\\n\\n is_delegate_call : bool,\\n is_static_call : bool,\\n is_contract_deployment: bool,\\n}\\n\\nimpl CallContext {\\n fn serialize(self) -> [Field; CALL_CONTEXT_LENGTH] {\\n [\\n self.msg_sender,\\n self.storage_contract_address,\\n self.portal_contract_address,\\n self.is_delegate_call as Field,\\n self.is_static_call as Field,\\n self.is_contract_deployment as Field,\\n ]\\n }\\n\\n fn hash(self) -> Field {\\n dep::std::hash::pedersen_with_separator(self.serialize(), GENERATOR_INDEX__CALL_CONTEXT)[0]\\n }\\n}\\n\\nstruct HistoricBlockData {\\n private_data_tree_root : Field,\\n nullifier_tree_root : Field,\\n contract_tree_root : Field,\\n l1_to_l2_messages_tree_root : Field,\\n blocks_tree_root: Field,\\n public_data_tree_root: Field,\\n global_variables_hash: Field,\\n}\\n\\nimpl HistoricBlockData {\\n // NOTE: this order must match the order in `private_circuit_public_inputs.hpp`\\n fn serialize(self) -> [Field; HISTORIC_BLOCK_DATA_LENGTH] {\\n [\\n self.private_data_tree_root,\\n self.nullifier_tree_root,\\n self.contract_tree_root,\\n self.l1_to_l2_messages_tree_root,\\n self.blocks_tree_root,\\n self.public_data_tree_root,\\n self.global_variables_hash,\\n ]\\n }\\n\\n fn empty() -> Self {\\n Self { private_data_tree_root: 0, nullifier_tree_root: 0, contract_tree_root: 0, l1_to_l2_messages_tree_root: 0, blocks_tree_root: 0, public_data_tree_root: 0, global_variables_hash: 0 }\\n }\\n}\\n\\nstruct FunctionData {\\n function_selector: Field,\\n is_internal: bool,\\n is_private: bool,\\n is_constructor: bool,\\n}\\n\\nimpl FunctionData {\\n fn hash(self) -> Field {\\n dep::std::hash::pedersen_with_separator([\\n self.function_selector,\\n self.is_internal as Field,\\n self.is_private as Field,\\n self.is_constructor as Field,\\n ], GENERATOR_INDEX__FUNCTION_DATA)[0]\\n }\\n}\\n\\nstruct PrivateCircuitPublicInputs {\\n call_context: CallContext,\\n args_hash: Field,\\n return_values: [Field; RETURN_VALUES_LENGTH],\\n read_requests: [Field; crate::abi::MAX_READ_REQUESTS_PER_CALL],\\n new_commitments: [Field; MAX_NEW_COMMITMENTS_PER_CALL],\\n new_nullifiers: [Field; MAX_NEW_NULLIFIERS_PER_CALL],\\n nullified_commitments: [Field; MAX_NEW_NULLIFIERS_PER_CALL],\\n private_call_stack: [Field; MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL],\\n public_call_stack: [Field; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL],\\n new_l2_to_l1_msgs: [Field; MAX_NEW_L2_TO_L1_MSGS_PER_CALL],\\n // Explore introducing a new type like uint256 (similar to Point), so it\'s more explicit that\\n // we\'re talking about a single number backed by two field elements.\\n encrypted_logs_hash: [Field; NUM_FIELDS_PER_SHA256],\\n unencrypted_logs_hash: [Field; NUM_FIELDS_PER_SHA256],\\n encrypted_log_preimages_length: Field,\\n unencrypted_log_preimages_length: Field,\\n block_data: HistoricBlockData,\\n contract_deployment_data: ContractDeploymentData,\\n chain_id: Field,\\n version: Field,\\n}\\n\\nimpl PrivateCircuitPublicInputs {\\n fn hash(self) -> Field {\\n let mut fields: BoundedVec<Field, PRIVATE_CIRCUIT_PUBLIC_INPUTS_HASH_INPUT_LENGTH> = BoundedVec::new(0); \\n fields.push(self.call_context.hash());\\n fields.push(self.args_hash);\\n fields.push_array(self.return_values);\\n fields.push_array(self.read_requests);\\n fields.push_array(self.new_commitments);\\n fields.push_array(self.new_nullifiers);\\n fields.push_array(self.nullified_commitments);\\n fields.push_array(self.private_call_stack);\\n fields.push_array(self.public_call_stack);\\n fields.push_array(self.new_l2_to_l1_msgs);\\n fields.push_array(self.encrypted_logs_hash);\\n fields.push_array(self.unencrypted_logs_hash);\\n fields.push(self.encrypted_log_preimages_length);\\n fields.push(self.unencrypted_log_preimages_length);\\n fields.push_array(self.block_data.serialize());\\n fields.push(self.contract_deployment_data.hash());\\n fields.push(self.chain_id);\\n fields.push(self.version);\\n\\n dep::std::hash::pedersen_with_separator(fields.storage, GENERATOR_INDEX__PRIVATE_CIRCUIT_PUBLIC_INPUTS)[0]\\n }\\n\\n fn serialize(self) -> [Field; PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH] {\\n let mut fields: BoundedVec<Field, PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH> = BoundedVec::new(0); \\n fields.push_array(self.call_context.serialize());\\n fields.push(self.args_hash);\\n fields.push_array(self.return_values);\\n fields.push_array(self.read_requests);\\n fields.push_array(self.new_commitments);\\n fields.push_array(self.new_nullifiers);\\n fields.push_array(self.private_call_stack);\\n fields.push_array(self.public_call_stack);\\n fields.push_array(self.new_l2_to_l1_msgs);\\n fields.push_array(self.encrypted_logs_hash);\\n fields.push_array(self.unencrypted_logs_hash);\\n fields.push(self.encrypted_log_preimages_length);\\n fields.push(self.unencrypted_log_preimages_length);\\n fields.push_array(self.block_data.serialize());\\n fields.push_array(self.contract_deployment_data.serialize());\\n fields.push(self.chain_id);\\n fields.push(self.version);\\n fields.storage\\n }\\n}\\n\\nstruct ContractStorageRead {\\n storage_slot: Field,\\n value: Field,\\n}\\n\\nimpl ContractStorageRead {\\n fn serialize(self) -> [Field; CONTRACT_STORAGE_READ_LENGTH] {\\n [self.storage_slot, self.value]\\n }\\n\\n fn hash(self) -> Field {\\n dep::std::hash::pedersen_with_separator(self.serialize(), GENERATOR_INDEX__PUBLIC_DATA_READ)[0]\\n }\\n\\n fn empty() -> Self {\\n Self { storage_slot: 0, value: 0 }\\n }\\n}\\n\\nstruct ContractStorageUpdateRequest {\\n storage_slot: Field,\\n old_value: Field,\\n new_value: Field,\\n}\\n\\nimpl ContractStorageUpdateRequest {\\n fn serialize(self) -> [Field; CONTRACT_STORAGE_UPDATE_REQUEST_LENGTH] {\\n [self.storage_slot, self.old_value, self.new_value]\\n }\\n\\n fn hash(self) -> Field {\\n dep::std::hash::pedersen_with_separator(self.serialize(), GENERATOR_INDEX__PUBLIC_DATA_UPDATE_REQUEST)[0]\\n }\\n\\n fn empty() -> Self {\\n Self { storage_slot: 0, old_value: 0, new_value: 0 }\\n }\\n}\\n\\n\\nstruct PublicCircuitPublicInputs {\\n call_context: CallContext,\\n args_hash: Field,\\n return_values: [Field; RETURN_VALUES_LENGTH],\\n contract_storage_update_requests: [ContractStorageUpdateRequest; MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL],\\n contract_storage_read: [ContractStorageRead; MAX_PUBLIC_DATA_READS_PER_CALL],\\n public_call_stack: [Field; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL],\\n new_commitments: [Field; MAX_NEW_COMMITMENTS_PER_CALL],\\n new_nullifiers: [Field; crate::abi::MAX_NEW_NULLIFIERS_PER_CALL],\\n new_l2_to_l1_msgs: [Field; crate::abi::MAX_NEW_L2_TO_L1_MSGS_PER_CALL],\\n unencrypted_logs_hash: [Field; NUM_FIELDS_PER_SHA256],\\n unencrypted_log_preimages_length: Field,\\n block_data: HistoricBlockData,\\n prover_address: Field,\\n\\n // TODO: include globals in here and check them elsewhere\\n // https://github.com/AztecProtocol/aztec-packages/issues/1567\\n}\\n\\nimpl PublicCircuitPublicInputs {\\n \\n fn hash(self) -> Field {\\n let mut inputs: BoundedVec<Field, PUBLIC_CIRCUIT_PUBLIC_INPUTS_HASH_INPUT_LENGTH> = BoundedVec::new(0);\\n inputs.push(self.call_context.hash());\\n inputs.push(self.args_hash);\\n inputs.push_array(self.return_values);\\n for i in 0..MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL {\\n inputs.push(self.contract_storage_update_requests[i].hash());\\n }\\n for i in 0..MAX_PUBLIC_DATA_READS_PER_CALL {\\n inputs.push(self.contract_storage_read[i].hash());\\n }\\n inputs.push_array(self.public_call_stack);\\n inputs.push_array(self.new_commitments);\\n inputs.push_array(self.new_nullifiers);\\n inputs.push_array(self.new_l2_to_l1_msgs);\\n\\n // We do not include block_data since it\'s not in the cpp hash\\n\\n inputs.push_array(self.unencrypted_logs_hash);\\n inputs.push(self.unencrypted_log_preimages_length);\\n inputs.push_array(self.block_data.serialize()); // see https://github.com/AztecProtocol/aztec-packages/issues/1473\\n inputs.push(self.prover_address);\\n\\n dep::std::hash::pedersen_with_separator(inputs.storage, GENERATOR_INDEX__PUBLIC_CIRCUIT_PUBLIC_INPUTS)[0]\\n }\\n\\n fn serialize(self) -> [Field; PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH] {\\n let mut fields: BoundedVec<Field, PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH> = BoundedVec::new(0); \\n fields.push_array(self.call_context.serialize()); \\n fields.push(self.args_hash);\\n fields.push_array(self.return_values);\\n for i in 0..MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL {\\n fields.push_array(self.contract_storage_update_requests[i].serialize());\\n }\\n for i in 0..MAX_PUBLIC_DATA_READS_PER_CALL {\\n fields.push_array(self.contract_storage_read[i].serialize());\\n }\\n fields.push_array(self.public_call_stack);\\n fields.push_array(self.new_commitments);\\n fields.push_array(self.new_nullifiers);\\n fields.push_array(self.new_l2_to_l1_msgs);\\n fields.push_array(self.unencrypted_logs_hash);\\n fields.push(self.unencrypted_log_preimages_length);\\n fields.push_array(self.block_data.serialize());\\n fields.push(self.prover_address);\\n fields.storage\\n }\\n}\\n\\nglobal ARGS_HASH_CHUNK_LENGTH: u32 = 32;\\nglobal ARGS_HASH_CHUNK_COUNT: u32 = 16;\\n\\nfn hash_args<N>(args: [Field; N]) -> Field {\\n if args.len() == 0 {\\n 0\\n } else {\\n let mut chunks_hashes = [0; ARGS_HASH_CHUNK_COUNT];\\n for i in 0..ARGS_HASH_CHUNK_COUNT {\\n let mut chunk_hash = 0;\\n let start_chunk_index = i * ARGS_HASH_CHUNK_LENGTH;\\n if start_chunk_index < (args.len() as u32) {\\n let mut chunk_args = [0; ARGS_HASH_CHUNK_LENGTH];\\n for j in 0..ARGS_HASH_CHUNK_LENGTH {\\n let item_index = i * ARGS_HASH_CHUNK_LENGTH + j;\\n if item_index < (args.len() as u32) {\\n chunk_args[j] = args[item_index];\\n }\\n }\\n chunk_hash = dep::std::hash::pedersen_with_separator(chunk_args, GENERATOR_INDEX__FUNCTION_ARGS)[0];\\n }\\n chunks_hashes[i] = chunk_hash;\\n }\\n dep::std::hash::pedersen_with_separator(chunks_hashes, GENERATOR_INDEX__FUNCTION_ARGS)[0]\\n }\\n}\\n","path":"/mnt/user-data/alvaro/aztec-packages/yarn-project/noir-libs/noir-aztec/src/abi"},"32":{"source":"use crate::constants_gen::{\\n EMPTY_NULLIFIED_COMMITMENT,\\n MAX_NEW_COMMITMENTS_PER_CALL,\\n MAX_NEW_L2_TO_L1_MSGS_PER_CALL,\\n MAX_NEW_NULLIFIERS_PER_CALL,\\n MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL,\\n MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL,\\n MAX_PUBLIC_DATA_READS_PER_CALL,\\n MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL,\\n MAX_READ_REQUESTS_PER_CALL,\\n NUM_FIELDS_PER_SHA256,\\n RETURN_VALUES_LENGTH,\\n};\\n\\nuse crate::abi;\\n\\nuse crate::abi::{\\n hash_args,\\n CallContext,\\n ContractDeploymentData,\\n HistoricBlockData,\\n FunctionData,\\n PrivateCircuitPublicInputs,\\n PublicCircuitPublicInputs,\\n};\\n\\n// TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\\n// use dep::std::collections::vec::Vec;\\n\\n// l1 to l2 messaging\\nuse crate::messaging::process_l1_to_l2_message;\\nuse crate::private_call_stack_item::PrivateCallStackItem;\\nuse crate::public_call_stack_item::PublicCallStackItem;\\n\\nuse crate::types::{\\n vec::BoundedVec,\\n point::Point,\\n};\\n\\nuse crate::utils::arr_copy_slice;\\n\\nuse crate::oracle::{\\n arguments,\\n call_private_function::call_private_function_internal,\\n public_call::call_public_function_internal,\\n enqueue_public_function_call::enqueue_public_function_call_internal,\\n context::get_portal_address,\\n};\\n\\n\\n// When finished, one can call .finish() to convert back to the abi\\nstruct PrivateContext {\\n inputs: abi::PrivateContextInputs,\\n\\n args_hash : Field,\\n return_values : BoundedVec<Field, RETURN_VALUES_LENGTH>,\\n\\n read_requests: BoundedVec<Field, MAX_READ_REQUESTS_PER_CALL>,\\n\\n new_commitments: BoundedVec<Field, MAX_NEW_COMMITMENTS_PER_CALL>,\\n new_nullifiers: BoundedVec<Field, MAX_NEW_NULLIFIERS_PER_CALL>,\\n nullified_commitments: BoundedVec<Field, MAX_NEW_NULLIFIERS_PER_CALL>,\\n\\n private_call_stack : BoundedVec<Field, MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL>,\\n public_call_stack : BoundedVec<Field, MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL>,\\n new_l2_to_l1_msgs : BoundedVec<Field, MAX_NEW_L2_TO_L1_MSGS_PER_CALL>,\\n\\n block_data: HistoricBlockData,\\n\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\\n // encrypted_logs_preimages: Vec<Field>,\\n // unencrypted_logs_preimages: Vec<Field>,\\n}\\n\\nimpl PrivateContext {\\n fn new(inputs: abi::PrivateContextInputs, args_hash: Field) -> PrivateContext {\\n PrivateContext {\\n inputs: inputs,\\n\\n args_hash: args_hash,\\n return_values: BoundedVec::new(0),\\n\\n read_requests: BoundedVec::new(0),\\n\\n new_commitments: BoundedVec::new(0),\\n new_nullifiers: BoundedVec::new(0),\\n nullified_commitments: BoundedVec::new(0),\\n\\n block_data: inputs.block_data,\\n\\n private_call_stack: BoundedVec::new(0),\\n public_call_stack: BoundedVec::new(0),\\n new_l2_to_l1_msgs: BoundedVec::new(0),\\n\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\\n // encrypted_logs_preimages: Vec::new(),\\n // unencrypted_logs_preimages: Vec::new(),\\n }\\n }\\n\\n fn msg_sender(self) -> Field {\\n self.inputs.call_context.msg_sender\\n }\\n\\n fn this_address(self) -> Field {\\n self.inputs.call_context.storage_contract_address\\n }\\n\\n fn this_portal_address(self) -> Field {\\n self.inputs.call_context.portal_contract_address\\n }\\n\\n fn chain_id(self) -> Field {\\n self.inputs.private_global_variables.chain_id\\n }\\n\\n fn version(self) -> Field {\\n self.inputs.private_global_variables.version\\n }\\n\\n fn finish(self) -> abi::PrivateCircuitPublicInputs {\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\\n let encrypted_logs_hash = [0; NUM_FIELDS_PER_SHA256];\\n let unencrypted_logs_hash = [0; NUM_FIELDS_PER_SHA256];\\n let encrypted_log_preimages_length = 0;\\n let unencrypted_log_preimages_length = 0;\\n\\n let priv_circuit_pub_inputs = abi::PrivateCircuitPublicInputs {\\n call_context: self.inputs.call_context,\\n args_hash: self.args_hash,\\n return_values: self.return_values.storage,\\n read_requests: self.read_requests.storage,\\n new_commitments: self.new_commitments.storage,\\n new_nullifiers: self.new_nullifiers.storage,\\n nullified_commitments: self.nullified_commitments.storage,\\n private_call_stack: self.private_call_stack.storage,\\n public_call_stack: self.public_call_stack.storage,\\n new_l2_to_l1_msgs: self.new_l2_to_l1_msgs.storage,\\n encrypted_logs_hash: encrypted_logs_hash,\\n unencrypted_logs_hash: unencrypted_logs_hash,\\n encrypted_log_preimages_length: encrypted_log_preimages_length,\\n unencrypted_log_preimages_length: unencrypted_log_preimages_length,\\n block_data: self.block_data,\\n contract_deployment_data: self.inputs.contract_deployment_data,\\n chain_id: self.inputs.private_global_variables.chain_id,\\n version: self.inputs.private_global_variables.version,\\n };\\n priv_circuit_pub_inputs\\n }\\n\\n fn push_read_request(&mut self, read_request: Field) {\\n self.read_requests.push(read_request);\\n }\\n\\n fn push_new_note_hash(&mut self, note_hash: Field) {\\n self.new_commitments.push(note_hash);\\n }\\n\\n fn push_new_nullifier(&mut self, nullifier: Field, nullified_commitment: Field) {\\n self.new_nullifiers.push(nullifier);\\n self.nullified_commitments.push(nullified_commitment);\\n }\\n\\n fn message_portal(&mut self, content: Field) {\\n self.new_l2_to_l1_msgs.push(content);\\n }\\n\\n // PrivateContextInputs must be temporarily passed in to prevent too many unknowns\\n // Note this returns self to get around an issue where mutable structs do not maintain mutations unless reassigned\\n fn consume_l1_to_l2_message(&mut self, inputs: abi::PrivateContextInputs, msg_key: Field, content: Field, secret: Field) {\\n let nullifier = process_l1_to_l2_message(inputs.block_data.l1_to_l2_messages_tree_root, inputs.call_context.storage_contract_address, msg_key, content, secret);\\n\\n // Push nullifier (and the \\"commitment\\" corresponding to this can be \\"empty\\")\\n self.push_new_nullifier(nullifier, EMPTY_NULLIFIED_COMMITMENT)\\n }\\n\\n fn accumulate_encrypted_logs<N>(&mut self, log: [Field; N]) {\\n let _void1 = self.inputs;\\n let _void2 = log;\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\\n }\\n\\n fn accumulate_unencrypted_logs<T>(&mut self, log: T) {\\n let _void1 = self.inputs;\\n let _void2 = log;\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\\n }\\n\\n fn call_private_function<ARGS_COUNT>(\\n &mut self,\\n contract_address: Field, \\n function_selector: Field, \\n args: [Field; ARGS_COUNT]\\n ) -> [Field; RETURN_VALUES_LENGTH] {\\n let args_hash = hash_args(args);\\n assert(args_hash == arguments::pack_arguments(args));\\n self.call_private_function_with_packed_args(contract_address, function_selector, args_hash)\\n }\\n\\n fn call_private_function_no_args(\\n &mut self,\\n contract_address: Field, \\n function_selector: Field, \\n ) -> [Field; RETURN_VALUES_LENGTH] {\\n self.call_private_function_with_packed_args(contract_address, function_selector, 0)\\n }\\n\\n fn call_private_function_with_packed_args(\\n &mut self,\\n contract_address: Field,\\n function_selector: Field,\\n args_hash: Field\\n ) -> [Field; RETURN_VALUES_LENGTH] {\\n let fields = call_private_function_internal(\\n contract_address, \\n function_selector, \\n args_hash\\n );\\n let item = PrivateCallStackItem {\\n contract_address: fields[0],\\n function_data: FunctionData {\\n function_selector: fields[1],\\n is_internal: fields[2] as bool,\\n is_private: fields[3] as bool,\\n is_constructor: fields[4] as bool,\\n },\\n public_inputs: PrivateCircuitPublicInputs {\\n call_context: CallContext {\\n msg_sender : fields[5],\\n storage_contract_address : fields[6],\\n portal_contract_address : fields[7],\\n \\n is_delegate_call : fields[8] as bool,\\n is_static_call : fields[9] as bool,\\n is_contract_deployment: fields[10] as bool,\\n },\\n // TODO handle the offsets as a variable incremented during extraction?\\n args_hash: fields[11],\\n return_values: arr_copy_slice(fields, [0; RETURN_VALUES_LENGTH], 12),\\n read_requests: arr_copy_slice(fields, [0; MAX_READ_REQUESTS_PER_CALL], 16),\\n new_commitments: arr_copy_slice(fields, [0; MAX_NEW_COMMITMENTS_PER_CALL], 20),\\n new_nullifiers: arr_copy_slice(fields, [0; MAX_NEW_NULLIFIERS_PER_CALL], 24),\\n nullified_commitments: arr_copy_slice(fields, [0; MAX_NEW_NULLIFIERS_PER_CALL], 28),\\n private_call_stack: arr_copy_slice(fields, [0; MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL], 32),\\n public_call_stack: arr_copy_slice(fields, [0; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL], 36),\\n new_l2_to_l1_msgs: arr_copy_slice(fields, [0; MAX_NEW_L2_TO_L1_MSGS_PER_CALL], 40),\\n encrypted_logs_hash: arr_copy_slice(fields, [0; NUM_FIELDS_PER_SHA256], 42),\\n unencrypted_logs_hash: arr_copy_slice(fields, [0; NUM_FIELDS_PER_SHA256], 44),\\n encrypted_log_preimages_length: fields[46],\\n unencrypted_log_preimages_length: fields[47],\\n block_data: HistoricBlockData {\\n // Must match order in `private_circuit_public_inputs.hpp`\\n private_data_tree_root : fields[48],\\n nullifier_tree_root : fields[49],\\n contract_tree_root : fields[50],\\n l1_to_l2_messages_tree_root : fields[51],\\n blocks_tree_root : fields[52],\\n public_data_tree_root: fields[53],\\n global_variables_hash: fields[54],\\n },\\n contract_deployment_data: ContractDeploymentData {\\n deployer_public_key: Point::new(fields[55], fields[56]),\\n constructor_vk_hash : fields[57],\\n function_tree_root : fields[58],\\n contract_address_salt : fields[59],\\n portal_contract_address : fields[60],\\n },\\n chain_id: fields[61],\\n version: fields[62],\\n },\\n is_execution_request: fields[63] as bool,\\n };\\n assert(contract_address == item.contract_address);\\n assert(function_selector == item.function_data.function_selector);\\n\\n assert(args_hash == item.public_inputs.args_hash);\\n\\n assert(item.is_execution_request == false);\\n\\n // Assert that the call context of the enqueued call generated by the oracle matches our request.\\n // We are issuing a regular call which is not delegate, static, or deployment. We also constrain\\n // the msg_sender in the nested call to be equal to our address, and the execution context address\\n // for the nested call to be equal to the address we actually called.\\n assert(item.public_inputs.call_context.is_delegate_call == false);\\n assert(item.public_inputs.call_context.is_static_call == false);\\n assert(item.public_inputs.call_context.is_contract_deployment == false);\\n assert(item.public_inputs.call_context.msg_sender == self.inputs.call_context.storage_contract_address);\\n assert(item.public_inputs.call_context.storage_contract_address == contract_address);\\n\\n self.private_call_stack.push(item.hash());\\n\\n item.public_inputs.return_values\\n }\\n\\n fn call_public_function<ARGS_COUNT>(\\n &mut self,\\n contract_address: Field, \\n function_selector: Field, \\n args: [Field; ARGS_COUNT]\\n ) {\\n let args_hash = hash_args(args);\\n assert(args_hash == arguments::pack_arguments(args));\\n self.call_public_function_with_packed_args(contract_address, function_selector, args_hash)\\n }\\n\\n fn call_public_function_no_args(\\n &mut self,\\n contract_address: Field, \\n function_selector: Field,\\n ) {\\n self.call_public_function_with_packed_args(contract_address, function_selector, 0)\\n }\\n\\n fn call_public_function_with_packed_args(\\n &mut self,\\n contract_address: Field,\\n function_selector: Field,\\n args_hash: Field\\n ) {\\n let fields = enqueue_public_function_call_internal(\\n contract_address, \\n function_selector, \\n args_hash\\n );\\n let item = PublicCallStackItem {\\n contract_address: fields[0],\\n function_data: FunctionData {\\n function_selector: fields[1],\\n is_internal: fields[2] as bool,\\n is_private: fields[3] as bool,\\n is_constructor: fields[4] as bool,\\n },\\n public_inputs: PublicCircuitPublicInputs {\\n call_context: CallContext {\\n msg_sender : fields[5],\\n storage_contract_address : fields[6],\\n portal_contract_address : fields[7],\\n \\n is_delegate_call : fields[8] as bool,\\n is_static_call : fields[9] as bool,\\n is_contract_deployment: fields[10] as bool,\\n },\\n args_hash: fields[11],\\n return_values: [0; RETURN_VALUES_LENGTH],\\n contract_storage_update_requests: [ContractStorageUpdateRequest::empty(); MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL],\\n contract_storage_read: [ContractStorageRead::empty(); MAX_PUBLIC_DATA_READS_PER_CALL],\\n public_call_stack: [0; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL],\\n new_commitments: [0; MAX_NEW_COMMITMENTS_PER_CALL],\\n new_nullifiers: [0; MAX_NEW_NULLIFIERS_PER_CALL],\\n new_l2_to_l1_msgs:[0; MAX_NEW_L2_TO_L1_MSGS_PER_CALL],\\n unencrypted_logs_hash:[0; NUM_FIELDS_PER_SHA256],\\n unencrypted_log_preimages_length: 0,\\n block_data: HistoricBlockData::empty(),\\n prover_address: 0,\\n },\\n is_execution_request: true,\\n };\\n\\n assert(contract_address == item.contract_address);\\n assert(function_selector == item.function_data.function_selector);\\n \\n assert(args_hash == item.public_inputs.args_hash);\\n\\n // Assert that the call context of the enqueued call generated by the oracle matches our request.\\n // We are issuing a regular call which is not delegate, static, or deployment. We also constrain\\n // the msg_sender in the nested call to be equal to our address, and the execution context address\\n // for the nested call to be equal to the address we actually called.\\n assert(item.public_inputs.call_context.is_delegate_call == false);\\n assert(item.public_inputs.call_context.is_static_call == false);\\n assert(item.public_inputs.call_context.is_contract_deployment == false);\\n assert(item.public_inputs.call_context.msg_sender == self.inputs.call_context.storage_contract_address);\\n assert(item.public_inputs.call_context.storage_contract_address == contract_address);\\n\\n self.public_call_stack.push(item.hash());\\n }\\n}\\n\\nuse crate::abi::{\\n ContractStorageRead,\\n ContractStorageUpdateRequest\\n};\\n\\nstruct PublicContext {\\n inputs: abi::PublicContextInputs,\\n\\n args_hash : Field,\\n return_values : BoundedVec<Field, RETURN_VALUES_LENGTH>,\\n\\n contract_storage_update_requests: BoundedVec<ContractStorageUpdateRequest, MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL>,\\n contract_storage_read: BoundedVec<ContractStorageRead, MAX_PUBLIC_DATA_READS_PER_CALL>,\\n public_call_stack: BoundedVec<Field, MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL>,\\n\\n new_commitments: BoundedVec<Field, MAX_NEW_COMMITMENTS_PER_CALL>,\\n new_nullifiers: BoundedVec<Field, crate::abi::MAX_NEW_NULLIFIERS_PER_CALL>,\\n\\n new_l2_to_l1_msgs: BoundedVec<Field, crate::abi::MAX_NEW_L2_TO_L1_MSGS_PER_CALL>,\\n\\n unencrypted_logs_hash: BoundedVec<Field, NUM_FIELDS_PER_SHA256>,\\n unencrypted_logs_preimages_length: Field,\\n\\n block_data: HistoricBlockData,\\n prover_address: Field,\\n}\\n\\nimpl PublicContext {\\n fn new(inputs: abi::PublicContextInputs, args_hash: Field) -> PublicContext {\\n let empty_storage_read = ContractStorageRead::empty();\\n let empty_storage_update = ContractStorageUpdateRequest::empty();\\n PublicContext {\\n inputs: inputs,\\n\\n args_hash: args_hash,\\n return_values: BoundedVec::new(0),\\n\\n contract_storage_update_requests: BoundedVec::new(empty_storage_update),\\n contract_storage_read: BoundedVec::new(empty_storage_read),\\n public_call_stack: BoundedVec::new(0),\\n\\n new_commitments: BoundedVec::new(0),\\n new_nullifiers: BoundedVec::new(0),\\n\\n new_l2_to_l1_msgs: BoundedVec::new(0),\\n\\n \\n unencrypted_logs_hash: BoundedVec::new(0),\\n unencrypted_logs_preimages_length: 0,\\n\\n block_data: inputs.block_data,\\n prover_address: 0,\\n\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\\n // encrypted_logs_preimages: Vec::new(),\\n // unencrypted_logs_preimages: Vec::new(),\\n }\\n }\\n\\n fn msg_sender(self) -> Field {\\n self.inputs.call_context.msg_sender\\n }\\n\\n fn this_address(self) -> Field {\\n self.inputs.call_context.storage_contract_address\\n }\\n\\n fn this_portal_address(self) -> Field {\\n self.inputs.call_context.portal_contract_address\\n }\\n\\n fn chain_id(self) -> Field {\\n self.inputs.public_global_variables.chain_id\\n }\\n\\n fn version(self) -> Field {\\n self.inputs.public_global_variables.version\\n }\\n\\n fn block_number(self) -> Field {\\n self.inputs.public_global_variables.block_number\\n }\\n\\n fn timestamp(self) -> Field {\\n self.inputs.public_global_variables.timestamp\\n }\\n\\n fn finish(self) -> abi::PublicCircuitPublicInputs {\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\\n let unencrypted_logs_hash = [0; NUM_FIELDS_PER_SHA256];\\n let unencrypted_log_preimages_length = 0;\\n\\n\\n // Compute the public call stack hashes\\n let pub_circuit_pub_inputs = abi::PublicCircuitPublicInputs {\\n call_context: self.inputs.call_context, // Done\\n args_hash: self.args_hash, // Done\\n contract_storage_update_requests: self.contract_storage_update_requests.storage,\\n contract_storage_read: self.contract_storage_read.storage,\\n return_values: self.return_values.storage,\\n new_commitments: self.new_commitments.storage,\\n new_nullifiers: self.new_nullifiers.storage,\\n public_call_stack: self.public_call_stack.storage,\\n new_l2_to_l1_msgs: self.new_l2_to_l1_msgs.storage,\\n unencrypted_logs_hash: unencrypted_logs_hash,\\n unencrypted_log_preimages_length: unencrypted_log_preimages_length,\\n block_data: self.inputs.block_data,\\n prover_address: self.prover_address,\\n };\\n pub_circuit_pub_inputs\\n }\\n\\n fn push_new_note_hash(&mut self, note_hash: Field) {\\n self.new_commitments.push(note_hash);\\n }\\n\\n fn push_new_nullifier(&mut self, nullifier: Field, _nullified_commitment: Field) {\\n self.new_nullifiers.push(nullifier);\\n }\\n\\n fn message_portal(&mut self, content: Field) {\\n self.new_l2_to_l1_msgs.push(content);\\n }\\n\\n // PrivateContextInputs must be temporarily passed in to prevent too many unknowns\\n // Note this returns self to get around an issue where mutable structs do not maintain mutations unless reassigned\\n fn consume_l1_to_l2_message(&mut self, msg_key: Field, content: Field, secret: Field) {\\n let this = (*self).this_address();\\n let nullifier = process_l1_to_l2_message(self.block_data.l1_to_l2_messages_tree_root, this, msg_key, content, secret);\\n\\n // Push nullifier (and the \\"commitment\\" corresponding to this can be \\"empty\\")\\n self.push_new_nullifier(nullifier, EMPTY_NULLIFIED_COMMITMENT)\\n }\\n\\n fn accumulate_encrypted_logs<N>(&mut self, log: [Field; N]) {\\n let _void1 = self;\\n let _void2 = log;\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\\n }\\n\\n fn accumulate_unencrypted_logs<T>(&mut self, log: T) {\\n let _void1 = self;\\n let _void2 = log;\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\\n }\\n\\n fn call_public_function<ARGS_COUNT>(\\n _self: Self,\\n contract_address: Field, \\n function_selector: Field,\\n args: [Field; ARGS_COUNT],\\n ) -> [Field; RETURN_VALUES_LENGTH] {\\n let args_hash = abi::hash_args(args);\\n assert(args_hash == arguments::pack_arguments(args));\\n call_public_function_internal(\\n contract_address, \\n function_selector, \\n args_hash,\\n )\\n }\\n\\n fn call_public_function_no_args(\\n _self: Self,\\n contract_address: Field, \\n function_selector: Field,\\n ) -> [Field; RETURN_VALUES_LENGTH] {\\n call_public_function_internal(\\n contract_address, \\n function_selector, \\n 0,\\n )\\n }\\n\\n}","path":"/mnt/user-data/alvaro/aztec-packages/yarn-project/noir-libs/noir-aztec/src/context"},"55":{"source":"\\nstruct BoundedVec<T, MaxLen> {\\n storage: [T; MaxLen],\\n len: Field,\\n}\\n\\nimpl<T, MaxLen> BoundedVec<T, MaxLen> {\\n fn new(initial_value: T) -> Self {\\n BoundedVec { storage: [initial_value; MaxLen], len: 0 }\\n }\\n\\n fn get(mut self: Self, index: Field) -> T {\\n assert(index as u64 < self.len as u64);\\n self.storage[index]\\n }\\n\\n fn push(&mut self, elem: T) {\\n assert(self.len as u64 < MaxLen as u64);\\n\\n self.storage[self.len] = elem;\\n self.len += 1;\\n }\\n\\n fn push_array<Len>(&mut self, array: [T; Len]) {\\n let newLen = self.len + array.len();\\n assert(newLen as u64 <= MaxLen as u64);\\n for i in 0..array.len() {\\n self.storage[self.len + i] = array[i];\\n }\\n self.len = newLen;\\n }\\n\\n fn pop(&mut self) -> T {\\n assert(self.len as u64 > 0);\\n\\n let elem = self.storage[self.len - 1];\\n self.len -= 1;\\n elem\\n }\\n}\\n\\n// #[test]\\n// fn test_vec() {\\n// let vec: BoundedVec<Field, 2> = BoundedVec::new(0);\\n// assert(vec.len == 0);\\n// let vec1 = vec.push(1);\\n// assert(vec1.len == 1);\\n// let vec2 = vec1.push(1);\\n// assert(vec2.len == 2);\\n// let vec3 = vec2.push(1);\\n// assert(vec3.len == 3);\\n// let x = vec3.pop();\\n// assert(x == 1);\\n// }","path":"/mnt/user-data/alvaro/aztec-packages/yarn-project/noir-libs/noir-aztec/src/types/vec"},"61":{"source":"use crate::abi::FunctionData;\\nuse crate::abi::PrivateCircuitPublicInputs;\\nuse crate::constants_gen::GENERATOR_INDEX__CALL_STACK_ITEM;\\n\\nstruct PrivateCallStackItem {\\n contract_address: Field,\\n function_data: FunctionData,\\n public_inputs: PrivateCircuitPublicInputs,\\n is_execution_request: bool,\\n}\\n\\nimpl PrivateCallStackItem {\\n fn hash(self) -> Field {\\n dep::std::hash::pedersen_with_separator([\\n self.contract_address,\\n self.function_data.hash(),\\n self.public_inputs.hash(),\\n ], GENERATOR_INDEX__CALL_STACK_ITEM)[0]\\n }\\n}","path":"/mnt/user-data/alvaro/aztec-packages/yarn-project/noir-libs/noir-aztec/src/private_call_stack_item"},"78":{"source":"use crate::abi;\\nuse crate::types::vec::BoundedVec;\\nuse crate::context::PrivateContext;\\nuse crate::private_call_stack_item::PrivateCallStackItem;\\nuse crate::public_call_stack_item::PublicCallStackItem; \\n\\nglobal ACCOUNT_MAX_PRIVATE_CALLS: Field = 2;\\nglobal ACCOUNT_MAX_PUBLIC_CALLS: Field = 2;\\nglobal ACCOUNT_MAX_CALLS: Field = 4;\\n// 1 (ARGS_HASH) + 1 (FUNCTION_SELECTOR) + 1 (TARGET_ADDRESS)\\nglobal FUNCTION_CALL_SIZE: Field = 3;\\n\\nstruct FunctionCall {\\n args_hash: Field,\\n function_selector: Field,\\n target_address: Field,\\n}\\n\\nimpl FunctionCall {\\n fn serialize(self) -> [Field; FUNCTION_CALL_SIZE] {\\n [self.args_hash, self.function_selector, self.target_address]\\n }\\n}\\n\\n// FUNCTION_CALL_SIZE * (ACCOUNT_MAX_PUBLIC_CALLS + ACCOUNT_MAX_PRIVATE_CALLS) + 1\\nglobal ENTRYPOINT_PAYLOAD_SIZE: Field = 13;\\nglobal ENTRYPOINT_PAYLOAD_SIZE_IN_BYTES: Field = 416;\\n\\nstruct EntrypointPayload {\\n // Noir doesnt support nested arrays or structs yet so we flatten everything\\n flattened_args_hashes: [Field; ACCOUNT_MAX_CALLS],\\n flattened_selectors: [Field; ACCOUNT_MAX_CALLS],\\n flattened_targets: [Field; ACCOUNT_MAX_CALLS],\\n nonce: Field,\\n}\\n\\nimpl EntrypointPayload {\\n // TODO(#1207) Do we need a generator index?\\n fn hash(self) -> Field {\\n dep::std::hash::pedersen(self.serialize())[0]\\n }\\n\\n // Serializes the entrypoint struct\\n fn serialize(self) -> [Field; ENTRYPOINT_PAYLOAD_SIZE] {\\n let mut fields: BoundedVec<Field, ENTRYPOINT_PAYLOAD_SIZE> = BoundedVec::new(0); \\n fields.push_array(self.flattened_args_hashes);\\n fields.push_array(self.flattened_selectors);\\n fields.push_array(self.flattened_targets);\\n fields.push(self.nonce);\\n fields.storage\\n }\\n\\n // Serializes the payload as an array of bytes. Useful for hashing with sha256.\\n fn to_be_bytes(self) -> [u8; ENTRYPOINT_PAYLOAD_SIZE_IN_BYTES] {\\n let mut bytes: [u8; ENTRYPOINT_PAYLOAD_SIZE_IN_BYTES] = [0; ENTRYPOINT_PAYLOAD_SIZE_IN_BYTES];\\n\\n let args_len = self.flattened_args_hashes.len();\\n let selectors_len = self.flattened_selectors.len();\\n let targets_len = self.flattened_targets.len();\\n\\n for i in 0..args_len {\\n let item_bytes = self.flattened_args_hashes[i].to_be_bytes(32);\\n for j in 0..32 { \\n bytes[i * 32 + j] = item_bytes[j];\\n }\\n }\\n\\n for i in 0..selectors_len {\\n let item_bytes = self.flattened_selectors[i].to_be_bytes(32);\\n for j in 0..32 { \\n bytes[args_len * 32 + i * 32 + j] = item_bytes[j];\\n }\\n }\\n\\n for i in 0..targets_len {\\n let item_bytes = self.flattened_targets[i].to_be_bytes(32);\\n for j in 0..32 { \\n bytes[(args_len + selectors_len) * 32 + i * 32 + j] = item_bytes[j];\\n }\\n }\\n \\n let item_bytes = self.nonce.to_be_bytes(32);\\n for j in 0..32 { \\n bytes[(args_len + selectors_len + targets_len) * 32 + j] = item_bytes[j];\\n }\\n\\n bytes\\n }\\n\\n // Executes all private and public calls \\n fn execute_calls(self, context: &mut PrivateContext) {\\n for i in 0..ACCOUNT_MAX_PRIVATE_CALLS {\\n let target_address = self.flattened_targets[i];\\n if target_address != 0 {\\n let function_selector = self.flattened_selectors[i];\\n let args_hash = self.flattened_args_hashes[i];\\n let _callStackItem = context.call_private_function_with_packed_args(target_address, function_selector, args_hash);\\n }\\n }\\n for i in ACCOUNT_MAX_PRIVATE_CALLS..ACCOUNT_MAX_CALLS {\\n let target_address = self.flattened_targets[i];\\n if target_address != 0 {\\n let function_selector = self.flattened_selectors[i];\\n let args_hash = self.flattened_args_hashes[i];\\n let _callStackItem = context.call_public_function_with_packed_args(target_address, function_selector, args_hash);\\n }\\n }\\n }\\n}","path":"/mnt/user-data/alvaro/aztec-packages/yarn-project/noir-libs/noir-aztec/src/entrypoint"}}}}');async function Ka(e,t){const n=Nn.random(),r=[...Mr(e,ca(),2),...Mr(t,ca(),2)],s=[],a=await ks.get();for(const e of r)s.push(await Ba.fromArgs(e.args,a));return{payload:{flattened_args_hashes:s.map((e=>e.hash)),flattened_selectors:r.map((e=>Nn.fromBuffer(e.functionData.functionSelectorBuffer))),flattened_targets:r.map((e=>e.to.toField())),nonce:n},packedArguments:s}}function $a(e,t){return function(e,t,n){e.call("pedersen__init");const r=Ms(t);return e.writeMemory(0,r),e.call("pedersen_plookup_compress_with_hash_index",0,0,n),Wr.Buffer.from(e.getMemorySlice(0,32))}(t,function(e){return[...e.flattened_args_hashes,...e.flattened_selectors,...e.flattened_targets,e.nonce]}(e).map((e=>e.toBuffer())),rr.SIGNATURE_PAYLOAD)}class ei{constructor(e,t,n,r,s=31337,a=1){this.address=e,this.partialAddress=t,this.privateKey=n,this.signer=r,this.chainId=s,this.version=a}async createTxExecutionRequest(e,t={}){if(t.origin&&!t.origin.equals(this.address))throw new Error(`Sender ${t.origin.toString()} does not match account address ${this.address.toString()}`);const[n,r]=Va()(e,(e=>e.functionData.isPrivate)),s=await ks.get(),{payload:a,packedArguments:i}=await Ka(n,r),o=$a(a,s),l=this.signer.constructSignature(o,this.privateKey).toBuffer(),c=[a,(await oi(this.privateKey)).toBuffer(),l,this.partialAddress],u=this.getEntrypointAbi(),f=await Ba.fromArgs(Un(u,c),s);return Da.from({argsHash:f.hash,origin:this.address,functionData:Cr.fromAbi(u),txContext:Br.empty(this.chainId,this.version),packedArguments:[...i,f]})}getEntrypointAbi(){const e=qa.functions.find((e=>"entrypoint"===e.name));if(!e)throw new Error("Entrypoint abi for account contract not found");return e}}class ti{constructor(e){this.rpc=e}registerAccount(e,t){return this.rpc.registerAccount(e,t)}registerRecipient(e){return this.rpc.registerRecipient(e)}getAccounts(){return this.rpc.getAccounts()}getAccount(e){return this.rpc.getAccount(e)}getRecipients(){return this.rpc.getRecipients()}getRecipient(e){return this.rpc.getRecipient(e)}addContracts(e){return this.rpc.addContracts(e)}getContracts(){return this.rpc.getContracts()}simulateTx(e){return this.rpc.simulateTx(e)}sendTx(e){return this.rpc.sendTx(e)}getTxReceipt(e){return this.rpc.getTxReceipt(e)}getPublicStorageAt(e,t){return this.rpc.getPublicStorageAt(e,t)}viewTx(e,t,n,r){return this.rpc.viewTx(e,t,n,r)}getContractDataAndBytecode(e){return this.rpc.getContractDataAndBytecode(e)}getContractData(e){return this.rpc.getContractData(e)}getUnencryptedLogs(e,t){return this.rpc.getUnencryptedLogs(e,t)}getBlockNumber(){return this.rpc.getBlockNumber()}getNodeInfo(){return this.rpc.getNodeInfo()}isGlobalStateSynchronised(){return this.rpc.isGlobalStateSynchronised()}isAccountStateSynchronised(e){return this.rpc.isAccountStateSynchronised(e)}getSyncStatus(){return this.rpc.getSyncStatus()}}class ni extends ti{constructor(e,t){super(e),this.accountImpl=t}createTxExecutionRequest(e,t={}){return this.accountImpl.createTxExecutionRequest(e,t)}}class ri extends ni{constructor(e,t,n){super(e,t),this.accountImpl=t,this.address=n}getCompleteAddress(){return this.address}}class si extends ti{async createTxExecutionRequest(e){if(1!==e.length)throw new Error(`Unexpected number of executions. Expected 1, received ${e.length})`);const[t]=e,n=await ks.get(),r=await Ba.fromArgs(t.args,n),{chainId:s,version:a}=await this.rpc.getNodeInfo(),i=Br.empty(s,a);return Promise.resolve(new Da(t.to,t.functionData,r.hash,i,[r]))}}async function ai(e,t,n,r=Nn.random(),s=1,a=fs("aztec:aztec.js:accounts")){const i=new Di;for(let o=0;o<s;++o){const s=0==o&&n?n:ea.random(),l=await oi(s),c=await Ds(t,[],r,l);await e.registerAccount(s,c.completeAddress.partialAddress);const u=new Xa(t,e,l).deploy().send({contractAddressSalt:r});await u.isMined({interval:.5});const f=await u.getReceipt();if(f.status!==Ia.MINED)throw new Error(`Deployment tx not mined (status is ${f.status})`);const d=f.contractAddress;if(!d.equals(c.completeAddress.address))throw new Error(`Deployment address does not match for account contract (expected ${c.completeAddress.address.toString()} got ${d.toString()})`);a(`Created account ${d.toString()} with public key ${l.toString()}`),i.registerAccount(d,new ei(d,c.completeAddress.partialAddress,s,await Vs.new()))}return new ni(e,i)}async function ii(e,t,n,r,s){if(n.length!=s.length||r.length!=n.length)throw new Error("Keys and salts must be the same length");const a=new Di;for(let e=0;e<n.length;e++){const i=await oi(n[e]),o=await oi(r[e]),l=(await Ds(t,[o.x,o.y],s[e],i)).completeAddress.address;a.registerAccount(l,new ki(l,r[e],await Vs.new()))}return new ni(e,a)}async function oi(e){const t=await Hs.new();return t.mul(t.generator(),e)}const li=async e=>{const t=new URL(`${e}/api/l1-contract-addresses`),n=await sa((async()=>{try{return await(await fetch(t.toString())).json()}catch(e){}}),"isSandboxReady",120,1);return Object.fromEntries(Object.entries(n).map((([e,t])=>[e,Lr.fromString(t)])))};async function ci(e,t){return!!await e.getContractData(t)}var ui=n(233),fi=n.n(ui),di=n(816).Buffer;const _i=e=>"bigint"==typeof e?new Nn(e):e;class hi{constructor(e,t){this.eth=e,this.aztec=t}static async create(e,t){const n=new pi(e),r=new gi(t,await ks.get(),n);return new hi(n,r)}}class pi{constructor(e,t=fs("aztec:cheat_codes:eth")){this.rpcUrl=e,this.logger=t}async rpcCall(e,t){const n={body:`{"jsonrpc":"2.0", "method": "${e}", "params": ${JSON.stringify(t)}, "id": 1}`,method:"POST",headers:{"Content-Type":"application/json"}};return await(await fetch(this.rpcUrl,n)).json()}async blockNumber(){const e=await this.rpcCall("eth_blockNumber",[]);return parseInt(e.result,16)}async chainId(){const e=await this.rpcCall("eth_chainId",[]);return parseInt(e.result,16)}async timestamp(){const e=await this.rpcCall("eth_getBlockByNumber",["latest",!0]);return parseInt(e.result.timestamp,16)}async mine(e=1){const t=await this.rpcCall("hardhat_mine",[e]);if(t.error)throw new Error(`Error mining: ${t.error.message}`);this.logger(`Mined ${e} blocks`)}async setNextBlockTimestamp(e){const t=await this.rpcCall("evm_setNextBlockTimestamp",[e]);if(t.error)throw new Error(`Error setting next block timestamp: ${t.error.message}`);this.logger(`Set next block timestamp to ${e}`)}async dumpChainState(e){const t=await this.rpcCall("hardhat_dumpState",[]);if(t.error)throw new Error(`Error dumping state: ${t.error.message}`);const n=JSON.stringify(t.result);fi().writeFileSync(`${e}.json`,n,"utf8"),this.logger(`Dumped state to ${e}`)}async loadChainState(e){const t=JSON.parse(fi().readFileSync(`${e}.json`,"utf8")),n=await this.rpcCall("hardhat_loadState",[t]);if(n.error)throw new Error(`Error loading state: ${n.error.message}`);this.logger(`Loaded state from ${e}`)}async load(e,t){const n=await this.rpcCall("eth_getStorageAt",[e.toString(),Sn(t),"latest"]);return BigInt(n.result)}async store(e,t,n){const r=await this.rpcCall("hardhat_setStorageAt",[e.toString(),Sn(t),Sn(n,!0)]);if(r.error)throw new Error(`Error setting storage for contract ${e} at ${t}: ${r.error.message}`);this.logger(`Set storage for contract ${e} at ${t} to ${n}`)}keccak256(e,t){const n=Sn(t,!0).substring(2)+Sn(e,!0).substring(2);return Ln(hn(di.from(n,"hex")))}async startImpersonating(e){const t=await this.rpcCall("hardhat_impersonateAccount",[e.toString()]);if(t.error)throw new Error(`Error impersonating ${e}: ${t.error.message}`);this.logger(`Impersonating ${e}`)}async stopImpersonating(e){const t=await this.rpcCall("hardhat_stopImpersonatingAccount",[e.toString()]);if(t.error)throw new Error(`Error when stopping the impersonation of ${e}: ${t.error.message}`);this.logger(`Stopped impersonating ${e}`)}async etch(e,t){const n=await this.rpcCall("hardhat_setCode",[e.toString(),t]);if(n.error)throw new Error(`Error setting bytecode for ${e}: ${n.error.message}`);this.logger(`Set bytecode for ${e} to ${t}`)}async getBytecode(e){return(await this.rpcCall("eth_getCode",[e.toString(),"latest"])).result}}class gi{constructor(e,t,n,r=fs("aztec:cheat_codes:aztec")){this.aztecRpc=e,this.wasm=t,this.eth=n,this.logger=r}computeSlotInMap(e,t){return Nn.fromBuffer(function(e,t){e.call("pedersen__init");const n=Ms(t);return e.writeMemory(0,n),e.call("pedersen_plookup_commit",0,0),Wr.Buffer.from(e.getMemorySlice(0,32))}(this.wasm,[_i(e),_i(t)].map((e=>e.toBuffer()))))}async blockNumber(){return await this.aztecRpc.getBlockNumber()}async warp(e){const t=(await this.aztecRpc.getNodeInfo()).rollupAddress;await this.eth.setNextBlockTimestamp(e),await this.eth.store(t,1n,BigInt(e))}async loadPublic(e,t){const n=await this.aztecRpc.getPublicStorageAt(e,_i(t));if(void 0===n)throw new Error(`Storage slot ${t} not found`);return Nn.fromBuffer(n)}}const bi=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);function mi(e,t){if(!e)throw new Error(t)}class yi{constructor(e,t){if(this.toClass=new Map,this.toName=new Map,e)for(const t of Object.keys(e))this.register(t,e[t],"string");if(t)for(const e of Object.keys(t))this.register(e,t[e],"object")}register(e,t,n){mi("Buffer"!==e,"'Buffer' handling is hardcoded. Cannot use as name."),mi(bi(t.prototype,"toString")||bi(t.prototype,"toJSON"),`Class ${e} must define a toString() OR toJSON() method.`),mi(t.fromString||t.fromJSON,`Class ${e} must define a fromString() OR fromJSON() static method.`),this.toName.set(t,[e,n]),this.toClass.set(e,[t,n])}isRegisteredClassName(e){return this.toClass.has(e)}isRegisteredClass(e){return this.toName.has(e)}toClassObj(e){const t=this.toClass.get(e.type);mi(t,"Could not find type in lookup.");const[n,r]=t;return"string"===r&&"string"==typeof e.data?n.fromString(e.data):n.fromJSON(e.data)}toJsonObj(e){const t=this.toName.get(e.constructor);mi(t,"Could not find class in lookup.");const[n,r]=t;return{type:n,data:"string"===r?e.toString():e.toJSON()}}}function vi(e,t){return JSON.stringify(e,((e,t)=>"bigint"==typeof t?JSON.stringify({type:"bigint",data:t.toString()}):t),t?2:0)}function wi(e,t){if(null!==t){if(!t)return t;if("Buffer"===t.type&&"string"==typeof t.data)return Wr.Buffer.from(t.data,"base64");if("bigint"===t.type&&"string"==typeof t.data)return BigInt(t.data);if("string"==typeof t.type&&e.isRegisteredClassName(t.type))return e.toClassObj(t);if(Array.isArray(t))return t.map((t=>wi(e,t)));if(t.constructor===Object){const n={};for(const r of Object.keys(t))n[r]=wi(e,t[r]);return n}return t}}function Ei(e,t){if(!t)return t;if(t instanceof Wr.Buffer)return{type:"Buffer",data:t.toString("base64")};if("bigint"==typeof t)return{type:"bigint",data:t.toString()};if(e.isRegisteredClass(t.constructor))return e.toJsonObj(t);if(Array.isArray(t))return t.map((t=>Ei(e,t)));if(t.constructor===Object){const n={};for(const r of Object.keys(t))n[r]=Ei(e,t[r]);return n}return t}n(7902);const Li=fs("json-rpc:json_rpc_client");async function Ai(e,t,n,r,s=!1){let a,i;Li("JsonRpcClient.fetch",e,t,"->",n),a=r?await fetch(`${e}/${t}`,{method:"POST",body:vi(n),headers:{"content-type":"application/json"}}):await fetch(e,{method:"POST",body:vi({...n,method:t}),headers:{"content-type":"application/json"}});try{i=await a.json()}catch(e){if(!a.ok)throw new Error(a.statusText);throw new Error(`Failed to parse body as JSON: ${a.text()}`)}if(!a.ok)throw s?new ra(i.error):new Error(i.error);return i}function Si(e,t,n){return async(r,s,a,i)=>await async function(e,t="Operation",n=function*(){const e=[1,1,1,2,4,8,16,32,64];let t=0;for(;;)yield e[Math.min(t++,e.length-1)]}(),r=fs("aztec:foundation:retry")){for(;;)try{return await e()}catch(e){if(e instanceof ra)throw e;const s=n.next().value;if(void 0===s)throw e;r(`${t} failed. Will retry in ${s}s...`),r.error(e),await ta(1e3*s);continue}}((()=>Ai(r,s,a,i,t)),"JsonRpcClient request",function*(e){for(const t of e)yield t}(e),n)}function Ci(e,t,n,r,s=Ai){const a=new yi(t,n);let i=0;const o=async(t,n)=>{const o={jsonrpc:"2.0",id:i++,method:t,params:n.map((e=>Ei(a,e)))};Li("JsonRpcClient.request",t,"<-",n);const l=await s(e,t,o,r);if(Li("JsonRpcClient.result",t,"->",l),l.error)throw l.error;if(![null,void 0,"null","undefined"].includes(l.result))return wi(a,l.result)};return new Proxy({},{get:(e,t)=>["then","catch"].includes(t)?Reflect.get(e,t):(...e)=>(Li("JsonRpcClient.constructor","proxy",t,"<-",e),o(t,e))})}const Ti=(e,t=Ai)=>Ci(e,{CompleteAddress:Ks,AztecAddress:wr,TxExecutionRequest:Da,ContractData:la,ContractDataAndBytecode:oa,TxHash:Sa,EthAddress:Lr,Point:Dn,PrivateKey:ea,Fr:Nn},{Tx:Pa,ContractDeploymentTx:Na,TxReceipt:xa,L2BlockL2Logs:ya},!1,t);class Pi extends Ma{constructor(e,t){super(e,t),this.wallet=e}async getWallet(e){return(await this.wait(e)).wallet}async wait(e){return{...await super.wait(e),wallet:this.wallet}}}class Ni{constructor(e,t,n,r){this.rpc=e,this.encryptionPrivateKey=t,this.accountContract=n,r instanceof Ks?this.completeAddress=r:this.salt=r?new Nn(r):Nn.random()}async getEncryptionPublicKey(){return this.encryptionPublicKey||(this.encryptionPublicKey=await oi(this.encryptionPrivateKey)),this.encryptionPublicKey}async getEntrypoint(){const e=await this.rpc.getNodeInfo(),t=await this.getCompleteAddress();return this.accountContract.getEntrypoint(t,e)}async getCompleteAddress(){if(!this.completeAddress){const e=await oi(this.encryptionPrivateKey),t=await Ds(this.accountContract.getContractAbi(),await this.accountContract.getDeploymentArgs(),this.salt,e);this.completeAddress=t.completeAddress}return this.completeAddress}async getWallet(){const e=await this.getEntrypoint();return new ri(this.rpc,e,await this.getCompleteAddress())}async register(){const e=await this.getCompleteAddress();return await this.rpc.registerAccount(this.encryptionPrivateKey,e.partialAddress),this.getWallet()}async getDeployMethod(){if(!this.deployMethod){if(!this.salt)throw new Error("Cannot deploy account contract without known salt.");await this.register();const e=await this.getEncryptionPublicKey(),t=new Xa(this.accountContract.getContractAbi(),this.rpc,e),n=await this.accountContract.getDeploymentArgs();this.deployMethod=t.deploy(...n)}return this.deployMethod}async deploy(){const e=await this.getDeployMethod(),t=await this.getWallet(),n=e.send({contractAddressSalt:this.salt});return new Pi(t,n.getTxHash())}async waitDeploy(e={}){return await this.deploy().then((t=>t.wait(e))),this.getWallet()}}const Ii=JSON.parse('{"name":"EcdsaAccount","functions":[{"name":"compute_note_hash_and_nullifier","functionType":"unconstrained","isInternal":false,"parameters":[{"name":"contract_address","type":{"kind":"field"},"visibility":"private"},{"name":"nonce","type":{"kind":"field"},"visibility":"private"},{"name":"storage_slot","type":{"kind":"field"},"visibility":"private"},{"name":"preimage","type":{"kind":"array","length":5,"type":{"kind":"field"}},"visibility":"private"}],"returnTypes":[{"kind":"array","length":4,"type":{"kind":"field"}}],"bytecode":"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","verificationKey":"0000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f"},{"name":"constructor","functionType":"secret","isInternal":false,"parameters":[{"name":"signing_pub_key_x","type":{"kind":"array","length":32,"type":{"kind":"integer","sign":"unsigned","width":8}},"visibility":"public"},{"name":"signing_pub_key_y","type":{"kind":"array","length":32,"type":{"kind":"integer","sign":"unsigned","width":8}},"visibility":"public"}],"returnTypes":[],"bytecode":"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","verificationKey":"0000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f"},{"name":"entrypoint","functionType":"secret","isInternal":false,"parameters":[{"name":"payload","type":{"kind":"struct","name":"EntrypointPayload","fields":[{"name":"flattened_args_hashes","type":{"kind":"array","length":4,"type":{"kind":"field"}}},{"name":"flattened_selectors","type":{"kind":"array","length":4,"type":{"kind":"field"}}},{"name":"flattened_targets","type":{"kind":"array","length":4,"type":{"kind":"field"}}},{"name":"nonce","type":{"kind":"field"}}]},"visibility":"public"},{"name":"signature","type":{"kind":"array","length":64,"type":{"kind":"integer","sign":"unsigned","width":8}},"visibility":"public"}],"returnTypes":[],"bytecode":"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","verificationKey":"0000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f"}],"debug":{"debugSymbols":["eJyrVsrJT04syczPK1ayqq6tBQAz9wY7","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"],"fileMap":{"0":{"source":"mod storage;\\nmod ecdsa_public_key_note;\\n\\n// Account contract that uses ECDSA signatures for authentication on the same curve as Ethereum.\\n// The signing key is stored in an immutable private note and should be different from the signing key.\\ncontract EcdsaAccount {\\n use dep::std;\\n use dep::aztec::entrypoint;\\n use dep::aztec::entrypoint::EntrypointPayload;\\n use dep::aztec::abi;\\n use dep::aztec::abi::PrivateContextInputs;\\n use dep::aztec::abi::CallContext;\\n use dep::aztec::context::PrivateContext;\\n use dep::aztec::log::emit_encrypted_log;\\n use dep::aztec::oracle::get_public_key::get_public_key;\\n use dep::aztec::types::vec::BoundedVec;\\n use dep::aztec::types::point::Point;\\n use dep::aztec::constants_gen::GENERATOR_INDEX__SIGNATURE_PAYLOAD;\\n\\n use dep::aztec::constants_gen::MAX_NOTE_FIELDS_LENGTH;\\n use dep::aztec::note::{\\n note_header::{NoteHeader},\\n utils as note_utils,\\n };\\n\\n use crate::storage::Storage;\\n use crate::ecdsa_public_key_note::EcdsaPublicKeyNote;\\n use crate::ecdsa_public_key_note::EcdsaPublicKeyNoteInterface;\\n use crate::ecdsa_public_key_note::ECDSA_PUBLIC_KEY_NOTE_LEN;\\n\\n // All calls made by this account will be routed through this entrypoint\\n fn entrypoint( \\n inputs: pub PrivateContextInputs,\\n payload: pub EntrypointPayload, // contains a set of arguments, selectors, targets and a nonce\\n signature: pub [u8;64],\\n ) -> distinct pub abi::PrivateCircuitPublicInputs {\\n \\n // Initialise context\\n // ENTRYPOINT_PAYLOAD_SIZE(13) + 64\\n let mut args: BoundedVec<Field, 77> = BoundedVec::new(0);\\n args.push_array(payload.serialize());\\n for byte in signature { args.push(byte as Field); }\\n let mut context = PrivateContext::new(inputs, abi::hash_args(args.storage));\\n\\n // Load public key from storage\\n let storage = Storage::init();\\n let public_key = storage.public_key.get_note(&mut context);\\n\\n // Verify payload signature using Ethereum\'s signing scheme\\n // Note that noir expects the hash of the message/challenge as input to the ECDSA verification.\\n let payload_fields: [Field; entrypoint::ENTRYPOINT_PAYLOAD_SIZE] = payload.serialize();\\n let message_field: Field = std::hash::pedersen_with_separator(payload_fields, GENERATOR_INDEX__SIGNATURE_PAYLOAD)[0];\\n let message_bytes = message_field.to_be_bytes(32);\\n let hashed_message: [u8; 32] = std::hash::sha256(message_bytes);\\n let verification = std::ecdsa_secp256k1::verify_signature(public_key.x, public_key.y, signature, hashed_message);\\n assert(verification == true);\\n\\n payload.execute_calls(&mut context);\\n\\n context.finish()\\n }\\n\\n // Creates a new account out of an ECDSA public key to use for signature verification\\n fn constructor(\\n inputs: pub PrivateContextInputs,\\n signing_pub_key_x: pub [u8;32],\\n signing_pub_key_y: pub [u8;32],\\n ) -> distinct pub abi::PrivateCircuitPublicInputs {\\n let storage = Storage::init();\\n \\n let mut args: BoundedVec<Field, 64> = BoundedVec::new(0);\\n for byte in signing_pub_key_x { args.push(byte as Field); }\\n for byte in signing_pub_key_y { args.push(byte as Field); }\\n let mut context = PrivateContext::new(inputs, abi::hash_args(args.storage));\\n \\n let this = context.this_address();\\n let mut pub_key_note = EcdsaPublicKeyNote::new(signing_pub_key_x, signing_pub_key_y, this);\\n storage.public_key.initialise(&mut context, &mut pub_key_note);\\n \\n emit_encrypted_log(\\n &mut context,\\n this,\\n storage.public_key.storage_slot,\\n get_public_key(this),\\n pub_key_note.serialise(),\\n );\\n\\n context.finish()\\n }\\n\\n // Computes note hash and nullifier.\\n // Note 1: Needs to be defined by every contract producing logs.\\n // Note 2: Having it in all the contracts gives us the ability to compute the note hash and nullifier differently for different kind of notes.\\n unconstrained fn compute_note_hash_and_nullifier(contract_address: Field, nonce: Field, storage_slot: Field, preimage: [Field; ECDSA_PUBLIC_KEY_NOTE_LEN]) -> [Field; 4] {\\n assert(storage_slot == 1);\\n let note_header = NoteHeader { contract_address, nonce, storage_slot };\\n note_utils::compute_note_hash_and_nullifier(EcdsaPublicKeyNoteInterface, note_header, preimage)\\n }\\n}\\n","path":"/mnt/user-data/alvaro/aztec-packages/yarn-project/noir-contracts/src/contracts/ecdsa_account_contract/src/main"},"3":{"source":"mod poseidon;\\n\\n#[foreign(sha256)]\\nfn sha256<N>(_input : [u8; N]) -> [u8; 32] {}\\n\\n#[foreign(blake2s)]\\nfn blake2s<N>(_input : [u8; N]) -> [u8; 32] {}\\n\\nfn pedersen<N>(input : [Field; N]) -> [Field; 2] {\\n pedersen_with_separator(input, 0)\\n}\\n\\n#[foreign(pedersen)]\\nfn pedersen_with_separator<N>(_input : [Field; N], _separator : u32) -> [Field; 2] {}\\n\\n#[foreign(hash_to_field_128_security)]\\nfn hash_to_field<N>(_input : [Field; N]) -> Field {}\\n\\n#[foreign(keccak256)]\\nfn keccak256<N>(_input : [u8; N], _message_size: u32) -> [u8; 32] {}\\n\\n// mimc-p/p implementation\\n// constants are (publicly generated) random numbers, for instance using keccak as a ROM.\\n// You must use constants generated for the native field\\n// Rounds number should be ~ log(p)/log(exp)\\n// For 254 bit primes, exponent 7 and 91 rounds seems to be recommended\\nfn mimc<N>(x: Field, k: Field, constants: [Field; N], exp : Field) -> Field {\\n //round 0\\n let mut t = x + k;\\n let mut h = t.pow_32(exp);\\n //next rounds\\n for i in 1 .. constants.len() {\\n t = h + k + constants[i];\\n h = t.pow_32(exp);\\n };\\n h + k\\n}\\n\\nglobal MIMC_BN254_ROUNDS = 91;\\n\\n//mimc implementation with hardcoded parameters for BN254 curve.\\nfn mimc_bn254<N>(array: [Field; N]) -> Field {\\n //mimc parameters\\n let exponent = 7;\\n //generated from seed \\"mimc\\" using keccak256 \\n let constants: [Field; MIMC_BN254_ROUNDS] = [\\n 0, \\n 20888961410941983456478427210666206549300505294776164667214940546594746570981,\\n 15265126113435022738560151911929040668591755459209400716467504685752745317193,\\n 8334177627492981984476504167502758309043212251641796197711684499645635709656,\\n 1374324219480165500871639364801692115397519265181803854177629327624133579404,\\n 11442588683664344394633565859260176446561886575962616332903193988751292992472,\\n 2558901189096558760448896669327086721003508630712968559048179091037845349145,\\n 11189978595292752354820141775598510151189959177917284797737745690127318076389,\\n 3262966573163560839685415914157855077211340576201936620532175028036746741754,\\n 17029914891543225301403832095880481731551830725367286980611178737703889171730,\\n 4614037031668406927330683909387957156531244689520944789503628527855167665518,\\n 19647356996769918391113967168615123299113119185942498194367262335168397100658,\\n 5040699236106090655289931820723926657076483236860546282406111821875672148900,\\n 2632385916954580941368956176626336146806721642583847728103570779270161510514,\\n 17691411851977575435597871505860208507285462834710151833948561098560743654671,\\n 11482807709115676646560379017491661435505951727793345550942389701970904563183,\\n 8360838254132998143349158726141014535383109403565779450210746881879715734773,\\n 12663821244032248511491386323242575231591777785787269938928497649288048289525,\\n 3067001377342968891237590775929219083706800062321980129409398033259904188058,\\n 8536471869378957766675292398190944925664113548202769136103887479787957959589,\\n 19825444354178182240559170937204690272111734703605805530888940813160705385792,\\n 16703465144013840124940690347975638755097486902749048533167980887413919317592,\\n 13061236261277650370863439564453267964462486225679643020432589226741411380501,\\n 10864774797625152707517901967943775867717907803542223029967000416969007792571,\\n 10035653564014594269791753415727486340557376923045841607746250017541686319774,\\n 3446968588058668564420958894889124905706353937375068998436129414772610003289,\\n 4653317306466493184743870159523234588955994456998076243468148492375236846006,\\n 8486711143589723036499933521576871883500223198263343024003617825616410932026,\\n 250710584458582618659378487568129931785810765264752039738223488321597070280,\\n 2104159799604932521291371026105311735948154964200596636974609406977292675173,\\n 16313562605837709339799839901240652934758303521543693857533755376563489378839,\\n 6032365105133504724925793806318578936233045029919447519826248813478479197288,\\n 14025118133847866722315446277964222215118620050302054655768867040006542798474,\\n 7400123822125662712777833064081316757896757785777291653271747396958201309118,\\n 1744432620323851751204287974553233986555641872755053103823939564833813704825,\\n 8316378125659383262515151597439205374263247719876250938893842106722210729522,\\n 6739722627047123650704294650168547689199576889424317598327664349670094847386,\\n 21211457866117465531949733809706514799713333930924902519246949506964470524162,\\n 13718112532745211817410303291774369209520657938741992779396229864894885156527,\\n 5264534817993325015357427094323255342713527811596856940387954546330728068658,\\n 18884137497114307927425084003812022333609937761793387700010402412840002189451,\\n 5148596049900083984813839872929010525572543381981952060869301611018636120248,\\n 19799686398774806587970184652860783461860993790013219899147141137827718662674,\\n 19240878651604412704364448729659032944342952609050243268894572835672205984837,\\n 10546185249390392695582524554167530669949955276893453512788278945742408153192,\\n 5507959600969845538113649209272736011390582494851145043668969080335346810411,\\n 18177751737739153338153217698774510185696788019377850245260475034576050820091,\\n 19603444733183990109492724100282114612026332366576932662794133334264283907557,\\n 10548274686824425401349248282213580046351514091431715597441736281987273193140,\\n 1823201861560942974198127384034483127920205835821334101215923769688644479957,\\n 11867589662193422187545516240823411225342068709600734253659804646934346124945,\\n 18718569356736340558616379408444812528964066420519677106145092918482774343613,\\n 10530777752259630125564678480897857853807637120039176813174150229243735996839,\\n 20486583726592018813337145844457018474256372770211860618687961310422228379031,\\n 12690713110714036569415168795200156516217175005650145422920562694422306200486,\\n 17386427286863519095301372413760745749282643730629659997153085139065756667205,\\n 2216432659854733047132347621569505613620980842043977268828076165669557467682,\\n 6309765381643925252238633914530877025934201680691496500372265330505506717193,\\n 20806323192073945401862788605803131761175139076694468214027227878952047793390,\\n 4037040458505567977365391535756875199663510397600316887746139396052445718861,\\n 19948974083684238245321361840704327952464170097132407924861169241740046562673,\\n 845322671528508199439318170916419179535949348988022948153107378280175750024,\\n 16222384601744433420585982239113457177459602187868460608565289920306145389382,\\n 10232118865851112229330353999139005145127746617219324244541194256766741433339,\\n 6699067738555349409504843460654299019000594109597429103342076743347235369120,\\n 6220784880752427143725783746407285094967584864656399181815603544365010379208,\\n 6129250029437675212264306655559561251995722990149771051304736001195288083309,\\n 10773245783118750721454994239248013870822765715268323522295722350908043393604,\\n 4490242021765793917495398271905043433053432245571325177153467194570741607167,\\n 19596995117319480189066041930051006586888908165330319666010398892494684778526,\\n 837850695495734270707668553360118467905109360511302468085569220634750561083,\\n 11803922811376367215191737026157445294481406304781326649717082177394185903907,\\n 10201298324909697255105265958780781450978049256931478989759448189112393506592,\\n 13564695482314888817576351063608519127702411536552857463682060761575100923924,\\n 9262808208636973454201420823766139682381973240743541030659775288508921362724,\\n 173271062536305557219323722062711383294158572562695717740068656098441040230,\\n 18120430890549410286417591505529104700901943324772175772035648111937818237369,\\n 20484495168135072493552514219686101965206843697794133766912991150184337935627,\\n 19155651295705203459475805213866664350848604323501251939850063308319753686505,\\n 11971299749478202793661982361798418342615500543489781306376058267926437157297,\\n 18285310723116790056148596536349375622245669010373674803854111592441823052978,\\n 7069216248902547653615508023941692395371990416048967468982099270925308100727,\\n 6465151453746412132599596984628739550147379072443683076388208843341824127379,\\n 16143532858389170960690347742477978826830511669766530042104134302796355145785,\\n 19362583304414853660976404410208489566967618125972377176980367224623492419647,\\n 1702213613534733786921602839210290505213503664731919006932367875629005980493,\\n 10781825404476535814285389902565833897646945212027592373510689209734812292327,\\n 4212716923652881254737947578600828255798948993302968210248673545442808456151,\\n 7594017890037021425366623750593200398174488805473151513558919864633711506220,\\n 18979889247746272055963929241596362599320706910852082477600815822482192194401,\\n 13602139229813231349386885113156901793661719180900395818909719758150455500533,\\n ];\\n\\n let mut r = 0;\\n for elem in array {\\n let h = mimc(elem, r, constants, exponent);\\n r = r + elem + h;\\n }\\n r\\n}\\n","path":"std/hash"},"18":{"source":"\\nimpl Field {\\n #[builtin(to_le_bits)]\\n fn to_le_bits(_x : Field, _bit_size: u32) -> [u1] {}\\n #[builtin(to_be_bits)]\\n fn to_be_bits(_x : Field, _bit_size: u32) -> [u1] {}\\n\\n fn to_le_bytes(x : Field, byte_size: u32) -> [u8] {\\n x.to_le_radix(256, byte_size)\\n }\\n fn to_be_bytes(x : Field, byte_size: u32) -> [u8] {\\n x.to_be_radix(256, byte_size)\\n }\\n\\n #[builtin(to_le_radix)]\\n //decompose _x into a _result_len vector over the _radix basis\\n //_radix must be less than 256\\n fn to_le_radix(_x : Field, _radix: u32, _result_len: u32) -> [u8] {}\\n #[builtin(to_be_radix)]\\n fn to_be_radix(_x : Field, _radix: u32, _result_len: u32) -> [u8] {}\\n\\n // Returns self to the power of the given exponent value.\\n // Caution: we assume the exponent fits into 32 bits\\n // using a bigger bit size impacts negatively the performance and should be done only if the exponent does not fit in 32 bits\\n fn pow_32(self, exponent: Field) -> Field {\\n let mut r: Field = 1;\\n let b = exponent.to_le_bits(32);\\n\\n for i in 1..33 {\\n r *= r;\\n r = (b[32-i] as Field) * (r * self) + (1 - b[32-i] as Field) * r;\\n }\\n r\\n }\\n\\n // Parity of (prime) Field element, i.e. sgn0(x mod p) = 0 if x ∈ {0, ..., p-1} is even, otherwise sgn0(x mod p) = 1.\\n fn sgn0(self) -> u1 {\\n self as u1\\n }\\n}\\n\\n#[builtin(modulus_num_bits)]\\nfn modulus_num_bits() -> Field {}\\n\\n#[builtin(modulus_be_bits)]\\nfn modulus_be_bits() -> [u1] {}\\n\\n#[builtin(modulus_le_bits)]\\nfn modulus_le_bits() -> [u1] {}\\n\\n#[builtin(modulus_be_bytes)]\\nfn modulus_be_bytes() -> [u8] {}\\n\\n#[builtin(modulus_le_bytes)]\\nfn modulus_le_bytes() -> [u8] {}\\n","path":"std/field"},"31":{"source":"use crate::constants_gen::{\\n RETURN_VALUES_LENGTH,\\n MAX_READ_REQUESTS_PER_CALL,\\n MAX_NEW_COMMITMENTS_PER_CALL,\\n MAX_NEW_NULLIFIERS_PER_CALL,\\n MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL,\\n MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL,\\n MAX_NEW_L2_TO_L1_MSGS_PER_CALL,\\n NUM_FIELDS_PER_SHA256,\\n MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL,\\n MAX_PUBLIC_DATA_READS_PER_CALL,\\n GENERATOR_INDEX__FUNCTION_ARGS,\\n HISTORIC_BLOCK_DATA_LENGTH,\\n CONTRACT_DEPLOYMENT_DATA_LENGTH,\\n CALL_CONTEXT_LENGTH,\\n PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH,\\n PRIVATE_CIRCUIT_PUBLIC_INPUTS_HASH_INPUT_LENGTH,\\n CONTRACT_STORAGE_UPDATE_REQUEST_LENGTH,\\n CONTRACT_STORAGE_READ_LENGTH,\\n PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH,\\n PUBLIC_CIRCUIT_PUBLIC_INPUTS_HASH_INPUT_LENGTH,\\n GENERATOR_INDEX__PUBLIC_CIRCUIT_PUBLIC_INPUTS,\\n GENERATOR_INDEX__FUNCTION_DATA,\\n GENERATOR_INDEX__PUBLIC_DATA_READ,\\n GENERATOR_INDEX__PUBLIC_DATA_UPDATE_REQUEST,\\n GENERATOR_INDEX__CALL_CONTEXT,\\n GENERATOR_INDEX__PRIVATE_CIRCUIT_PUBLIC_INPUTS,\\n GENERATOR_INDEX__CONTRACT_DEPLOYMENT_DATA,\\n};\\n\\nuse crate::oracle::debug_log;\\nuse crate::types::vec::BoundedVec;\\nuse crate::types::point::Point;\\n\\nstruct PrivateGlobalVariables {\\n chain_id: Field,\\n version: Field,\\n}\\n\\nimpl PrivateGlobalVariables {\\n fn serialize(self) -> [Field; 2] {\\n [self.chain_id, self.version]\\n }\\n}\\n\\nstruct PublicGlobalVariables {\\n chain_id: Field,\\n version: Field,\\n block_number: Field,\\n timestamp: Field,\\n}\\n\\nimpl PublicGlobalVariables {\\n fn serialize(self) -> [Field; 4] {\\n [self.chain_id, self.version, self.block_number, self.timestamp]\\n }\\n}\\n\\nstruct ContractDeploymentData {\\n deployer_public_key: Point,\\n constructor_vk_hash : Field,\\n function_tree_root : Field,\\n contract_address_salt : Field,\\n portal_contract_address : Field,\\n}\\n\\nimpl ContractDeploymentData {\\n fn serialize(self) -> [Field; CONTRACT_DEPLOYMENT_DATA_LENGTH] {\\n [\\n self.deployer_public_key.x,\\n self.deployer_public_key.y,\\n self.constructor_vk_hash,\\n self.function_tree_root,\\n self.contract_address_salt,\\n self.portal_contract_address,\\n ]\\n }\\n\\n fn hash(self) -> Field {\\n dep::std::hash::pedersen_with_separator(self.serialize(), GENERATOR_INDEX__CONTRACT_DEPLOYMENT_DATA)[0]\\n }\\n}\\n\\n// PrivateContextInputs are expected to be provided to each private function\\nstruct PrivateContextInputs {\\n call_context : CallContext,\\n block_data: HistoricBlockData,\\n\\n contract_deployment_data: ContractDeploymentData,\\n\\n private_global_variables: PrivateGlobalVariables,\\n}\\n\\n// PublicContextInputs are expected to be provided to each public function\\nstruct PublicContextInputs {\\n call_context: CallContext,\\n block_data: HistoricBlockData,\\n\\n public_global_variables: PublicGlobalVariables,\\n}\\n\\nstruct CallContext {\\n msg_sender : Field,\\n storage_contract_address : Field,\\n portal_contract_address : Field,\\n\\n is_delegate_call : bool,\\n is_static_call : bool,\\n is_contract_deployment: bool,\\n}\\n\\nimpl CallContext {\\n fn serialize(self) -> [Field; CALL_CONTEXT_LENGTH] {\\n [\\n self.msg_sender,\\n self.storage_contract_address,\\n self.portal_contract_address,\\n self.is_delegate_call as Field,\\n self.is_static_call as Field,\\n self.is_contract_deployment as Field,\\n ]\\n }\\n\\n fn hash(self) -> Field {\\n dep::std::hash::pedersen_with_separator(self.serialize(), GENERATOR_INDEX__CALL_CONTEXT)[0]\\n }\\n}\\n\\nstruct HistoricBlockData {\\n private_data_tree_root : Field,\\n nullifier_tree_root : Field,\\n contract_tree_root : Field,\\n l1_to_l2_messages_tree_root : Field,\\n blocks_tree_root: Field,\\n public_data_tree_root: Field,\\n global_variables_hash: Field,\\n}\\n\\nimpl HistoricBlockData {\\n // NOTE: this order must match the order in `private_circuit_public_inputs.hpp`\\n fn serialize(self) -> [Field; HISTORIC_BLOCK_DATA_LENGTH] {\\n [\\n self.private_data_tree_root,\\n self.nullifier_tree_root,\\n self.contract_tree_root,\\n self.l1_to_l2_messages_tree_root,\\n self.blocks_tree_root,\\n self.public_data_tree_root,\\n self.global_variables_hash,\\n ]\\n }\\n\\n fn empty() -> Self {\\n Self { private_data_tree_root: 0, nullifier_tree_root: 0, contract_tree_root: 0, l1_to_l2_messages_tree_root: 0, blocks_tree_root: 0, public_data_tree_root: 0, global_variables_hash: 0 }\\n }\\n}\\n\\nstruct FunctionData {\\n function_selector: Field,\\n is_internal: bool,\\n is_private: bool,\\n is_constructor: bool,\\n}\\n\\nimpl FunctionData {\\n fn hash(self) -> Field {\\n dep::std::hash::pedersen_with_separator([\\n self.function_selector,\\n self.is_internal as Field,\\n self.is_private as Field,\\n self.is_constructor as Field,\\n ], GENERATOR_INDEX__FUNCTION_DATA)[0]\\n }\\n}\\n\\nstruct PrivateCircuitPublicInputs {\\n call_context: CallContext,\\n args_hash: Field,\\n return_values: [Field; RETURN_VALUES_LENGTH],\\n read_requests: [Field; crate::abi::MAX_READ_REQUESTS_PER_CALL],\\n new_commitments: [Field; MAX_NEW_COMMITMENTS_PER_CALL],\\n new_nullifiers: [Field; MAX_NEW_NULLIFIERS_PER_CALL],\\n nullified_commitments: [Field; MAX_NEW_NULLIFIERS_PER_CALL],\\n private_call_stack: [Field; MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL],\\n public_call_stack: [Field; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL],\\n new_l2_to_l1_msgs: [Field; MAX_NEW_L2_TO_L1_MSGS_PER_CALL],\\n // Explore introducing a new type like uint256 (similar to Point), so it\'s more explicit that\\n // we\'re talking about a single number backed by two field elements.\\n encrypted_logs_hash: [Field; NUM_FIELDS_PER_SHA256],\\n unencrypted_logs_hash: [Field; NUM_FIELDS_PER_SHA256],\\n encrypted_log_preimages_length: Field,\\n unencrypted_log_preimages_length: Field,\\n block_data: HistoricBlockData,\\n contract_deployment_data: ContractDeploymentData,\\n chain_id: Field,\\n version: Field,\\n}\\n\\nimpl PrivateCircuitPublicInputs {\\n fn hash(self) -> Field {\\n let mut fields: BoundedVec<Field, PRIVATE_CIRCUIT_PUBLIC_INPUTS_HASH_INPUT_LENGTH> = BoundedVec::new(0); \\n fields.push(self.call_context.hash());\\n fields.push(self.args_hash);\\n fields.push_array(self.return_values);\\n fields.push_array(self.read_requests);\\n fields.push_array(self.new_commitments);\\n fields.push_array(self.new_nullifiers);\\n fields.push_array(self.nullified_commitments);\\n fields.push_array(self.private_call_stack);\\n fields.push_array(self.public_call_stack);\\n fields.push_array(self.new_l2_to_l1_msgs);\\n fields.push_array(self.encrypted_logs_hash);\\n fields.push_array(self.unencrypted_logs_hash);\\n fields.push(self.encrypted_log_preimages_length);\\n fields.push(self.unencrypted_log_preimages_length);\\n fields.push_array(self.block_data.serialize());\\n fields.push(self.contract_deployment_data.hash());\\n fields.push(self.chain_id);\\n fields.push(self.version);\\n\\n dep::std::hash::pedersen_with_separator(fields.storage, GENERATOR_INDEX__PRIVATE_CIRCUIT_PUBLIC_INPUTS)[0]\\n }\\n\\n fn serialize(self) -> [Field; PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH] {\\n let mut fields: BoundedVec<Field, PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH> = BoundedVec::new(0); \\n fields.push_array(self.call_context.serialize());\\n fields.push(self.args_hash);\\n fields.push_array(self.return_values);\\n fields.push_array(self.read_requests);\\n fields.push_array(self.new_commitments);\\n fields.push_array(self.new_nullifiers);\\n fields.push_array(self.private_call_stack);\\n fields.push_array(self.public_call_stack);\\n fields.push_array(self.new_l2_to_l1_msgs);\\n fields.push_array(self.encrypted_logs_hash);\\n fields.push_array(self.unencrypted_logs_hash);\\n fields.push(self.encrypted_log_preimages_length);\\n fields.push(self.unencrypted_log_preimages_length);\\n fields.push_array(self.block_data.serialize());\\n fields.push_array(self.contract_deployment_data.serialize());\\n fields.push(self.chain_id);\\n fields.push(self.version);\\n fields.storage\\n }\\n}\\n\\nstruct ContractStorageRead {\\n storage_slot: Field,\\n value: Field,\\n}\\n\\nimpl ContractStorageRead {\\n fn serialize(self) -> [Field; CONTRACT_STORAGE_READ_LENGTH] {\\n [self.storage_slot, self.value]\\n }\\n\\n fn hash(self) -> Field {\\n dep::std::hash::pedersen_with_separator(self.serialize(), GENERATOR_INDEX__PUBLIC_DATA_READ)[0]\\n }\\n\\n fn empty() -> Self {\\n Self { storage_slot: 0, value: 0 }\\n }\\n}\\n\\nstruct ContractStorageUpdateRequest {\\n storage_slot: Field,\\n old_value: Field,\\n new_value: Field,\\n}\\n\\nimpl ContractStorageUpdateRequest {\\n fn serialize(self) -> [Field; CONTRACT_STORAGE_UPDATE_REQUEST_LENGTH] {\\n [self.storage_slot, self.old_value, self.new_value]\\n }\\n\\n fn hash(self) -> Field {\\n dep::std::hash::pedersen_with_separator(self.serialize(), GENERATOR_INDEX__PUBLIC_DATA_UPDATE_REQUEST)[0]\\n }\\n\\n fn empty() -> Self {\\n Self { storage_slot: 0, old_value: 0, new_value: 0 }\\n }\\n}\\n\\n\\nstruct PublicCircuitPublicInputs {\\n call_context: CallContext,\\n args_hash: Field,\\n return_values: [Field; RETURN_VALUES_LENGTH],\\n contract_storage_update_requests: [ContractStorageUpdateRequest; MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL],\\n contract_storage_read: [ContractStorageRead; MAX_PUBLIC_DATA_READS_PER_CALL],\\n public_call_stack: [Field; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL],\\n new_commitments: [Field; MAX_NEW_COMMITMENTS_PER_CALL],\\n new_nullifiers: [Field; crate::abi::MAX_NEW_NULLIFIERS_PER_CALL],\\n new_l2_to_l1_msgs: [Field; crate::abi::MAX_NEW_L2_TO_L1_MSGS_PER_CALL],\\n unencrypted_logs_hash: [Field; NUM_FIELDS_PER_SHA256],\\n unencrypted_log_preimages_length: Field,\\n block_data: HistoricBlockData,\\n prover_address: Field,\\n\\n // TODO: include globals in here and check them elsewhere\\n // https://github.com/AztecProtocol/aztec-packages/issues/1567\\n}\\n\\nimpl PublicCircuitPublicInputs {\\n \\n fn hash(self) -> Field {\\n let mut inputs: BoundedVec<Field, PUBLIC_CIRCUIT_PUBLIC_INPUTS_HASH_INPUT_LENGTH> = BoundedVec::new(0);\\n inputs.push(self.call_context.hash());\\n inputs.push(self.args_hash);\\n inputs.push_array(self.return_values);\\n for i in 0..MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL {\\n inputs.push(self.contract_storage_update_requests[i].hash());\\n }\\n for i in 0..MAX_PUBLIC_DATA_READS_PER_CALL {\\n inputs.push(self.contract_storage_read[i].hash());\\n }\\n inputs.push_array(self.public_call_stack);\\n inputs.push_array(self.new_commitments);\\n inputs.push_array(self.new_nullifiers);\\n inputs.push_array(self.new_l2_to_l1_msgs);\\n\\n // We do not include block_data since it\'s not in the cpp hash\\n\\n inputs.push_array(self.unencrypted_logs_hash);\\n inputs.push(self.unencrypted_log_preimages_length);\\n inputs.push_array(self.block_data.serialize()); // see https://github.com/AztecProtocol/aztec-packages/issues/1473\\n inputs.push(self.prover_address);\\n\\n dep::std::hash::pedersen_with_separator(inputs.storage, GENERATOR_INDEX__PUBLIC_CIRCUIT_PUBLIC_INPUTS)[0]\\n }\\n\\n fn serialize(self) -> [Field; PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH] {\\n let mut fields: BoundedVec<Field, PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH> = BoundedVec::new(0); \\n fields.push_array(self.call_context.serialize()); \\n fields.push(self.args_hash);\\n fields.push_array(self.return_values);\\n for i in 0..MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL {\\n fields.push_array(self.contract_storage_update_requests[i].serialize());\\n }\\n for i in 0..MAX_PUBLIC_DATA_READS_PER_CALL {\\n fields.push_array(self.contract_storage_read[i].serialize());\\n }\\n fields.push_array(self.public_call_stack);\\n fields.push_array(self.new_commitments);\\n fields.push_array(self.new_nullifiers);\\n fields.push_array(self.new_l2_to_l1_msgs);\\n fields.push_array(self.unencrypted_logs_hash);\\n fields.push(self.unencrypted_log_preimages_length);\\n fields.push_array(self.block_data.serialize());\\n fields.push(self.prover_address);\\n fields.storage\\n }\\n}\\n\\nglobal ARGS_HASH_CHUNK_LENGTH: u32 = 32;\\nglobal ARGS_HASH_CHUNK_COUNT: u32 = 16;\\n\\nfn hash_args<N>(args: [Field; N]) -> Field {\\n if args.len() == 0 {\\n 0\\n } else {\\n let mut chunks_hashes = [0; ARGS_HASH_CHUNK_COUNT];\\n for i in 0..ARGS_HASH_CHUNK_COUNT {\\n let mut chunk_hash = 0;\\n let start_chunk_index = i * ARGS_HASH_CHUNK_LENGTH;\\n if start_chunk_index < (args.len() as u32) {\\n let mut chunk_args = [0; ARGS_HASH_CHUNK_LENGTH];\\n for j in 0..ARGS_HASH_CHUNK_LENGTH {\\n let item_index = i * ARGS_HASH_CHUNK_LENGTH + j;\\n if item_index < (args.len() as u32) {\\n chunk_args[j] = args[item_index];\\n }\\n }\\n chunk_hash = dep::std::hash::pedersen_with_separator(chunk_args, GENERATOR_INDEX__FUNCTION_ARGS)[0];\\n }\\n chunks_hashes[i] = chunk_hash;\\n }\\n dep::std::hash::pedersen_with_separator(chunks_hashes, GENERATOR_INDEX__FUNCTION_ARGS)[0]\\n }\\n}\\n","path":"/mnt/user-data/alvaro/aztec-packages/yarn-project/noir-libs/noir-aztec/src/abi"},"32":{"source":"use crate::constants_gen::{\\n EMPTY_NULLIFIED_COMMITMENT,\\n MAX_NEW_COMMITMENTS_PER_CALL,\\n MAX_NEW_L2_TO_L1_MSGS_PER_CALL,\\n MAX_NEW_NULLIFIERS_PER_CALL,\\n MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL,\\n MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL,\\n MAX_PUBLIC_DATA_READS_PER_CALL,\\n MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL,\\n MAX_READ_REQUESTS_PER_CALL,\\n NUM_FIELDS_PER_SHA256,\\n RETURN_VALUES_LENGTH,\\n};\\n\\nuse crate::abi;\\n\\nuse crate::abi::{\\n hash_args,\\n CallContext,\\n ContractDeploymentData,\\n HistoricBlockData,\\n FunctionData,\\n PrivateCircuitPublicInputs,\\n PublicCircuitPublicInputs,\\n};\\n\\n// TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\\n// use dep::std::collections::vec::Vec;\\n\\n// l1 to l2 messaging\\nuse crate::messaging::process_l1_to_l2_message;\\nuse crate::private_call_stack_item::PrivateCallStackItem;\\nuse crate::public_call_stack_item::PublicCallStackItem;\\n\\nuse crate::types::{\\n vec::BoundedVec,\\n point::Point,\\n};\\n\\nuse crate::utils::arr_copy_slice;\\n\\nuse crate::oracle::{\\n arguments,\\n call_private_function::call_private_function_internal,\\n public_call::call_public_function_internal,\\n enqueue_public_function_call::enqueue_public_function_call_internal,\\n context::get_portal_address,\\n};\\n\\n\\n// When finished, one can call .finish() to convert back to the abi\\nstruct PrivateContext {\\n inputs: abi::PrivateContextInputs,\\n\\n args_hash : Field,\\n return_values : BoundedVec<Field, RETURN_VALUES_LENGTH>,\\n\\n read_requests: BoundedVec<Field, MAX_READ_REQUESTS_PER_CALL>,\\n\\n new_commitments: BoundedVec<Field, MAX_NEW_COMMITMENTS_PER_CALL>,\\n new_nullifiers: BoundedVec<Field, MAX_NEW_NULLIFIERS_PER_CALL>,\\n nullified_commitments: BoundedVec<Field, MAX_NEW_NULLIFIERS_PER_CALL>,\\n\\n private_call_stack : BoundedVec<Field, MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL>,\\n public_call_stack : BoundedVec<Field, MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL>,\\n new_l2_to_l1_msgs : BoundedVec<Field, MAX_NEW_L2_TO_L1_MSGS_PER_CALL>,\\n\\n block_data: HistoricBlockData,\\n\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\\n // encrypted_logs_preimages: Vec<Field>,\\n // unencrypted_logs_preimages: Vec<Field>,\\n}\\n\\nimpl PrivateContext {\\n fn new(inputs: abi::PrivateContextInputs, args_hash: Field) -> PrivateContext {\\n PrivateContext {\\n inputs: inputs,\\n\\n args_hash: args_hash,\\n return_values: BoundedVec::new(0),\\n\\n read_requests: BoundedVec::new(0),\\n\\n new_commitments: BoundedVec::new(0),\\n new_nullifiers: BoundedVec::new(0),\\n nullified_commitments: BoundedVec::new(0),\\n\\n block_data: inputs.block_data,\\n\\n private_call_stack: BoundedVec::new(0),\\n public_call_stack: BoundedVec::new(0),\\n new_l2_to_l1_msgs: BoundedVec::new(0),\\n\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\\n // encrypted_logs_preimages: Vec::new(),\\n // unencrypted_logs_preimages: Vec::new(),\\n }\\n }\\n\\n fn msg_sender(self) -> Field {\\n self.inputs.call_context.msg_sender\\n }\\n\\n fn this_address(self) -> Field {\\n self.inputs.call_context.storage_contract_address\\n }\\n\\n fn this_portal_address(self) -> Field {\\n self.inputs.call_context.portal_contract_address\\n }\\n\\n fn chain_id(self) -> Field {\\n self.inputs.private_global_variables.chain_id\\n }\\n\\n fn version(self) -> Field {\\n self.inputs.private_global_variables.version\\n }\\n\\n fn finish(self) -> abi::PrivateCircuitPublicInputs {\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\\n let encrypted_logs_hash = [0; NUM_FIELDS_PER_SHA256];\\n let unencrypted_logs_hash = [0; NUM_FIELDS_PER_SHA256];\\n let encrypted_log_preimages_length = 0;\\n let unencrypted_log_preimages_length = 0;\\n\\n let priv_circuit_pub_inputs = abi::PrivateCircuitPublicInputs {\\n call_context: self.inputs.call_context,\\n args_hash: self.args_hash,\\n return_values: self.return_values.storage,\\n read_requests: self.read_requests.storage,\\n new_commitments: self.new_commitments.storage,\\n new_nullifiers: self.new_nullifiers.storage,\\n nullified_commitments: self.nullified_commitments.storage,\\n private_call_stack: self.private_call_stack.storage,\\n public_call_stack: self.public_call_stack.storage,\\n new_l2_to_l1_msgs: self.new_l2_to_l1_msgs.storage,\\n encrypted_logs_hash: encrypted_logs_hash,\\n unencrypted_logs_hash: unencrypted_logs_hash,\\n encrypted_log_preimages_length: encrypted_log_preimages_length,\\n unencrypted_log_preimages_length: unencrypted_log_preimages_length,\\n block_data: self.block_data,\\n contract_deployment_data: self.inputs.contract_deployment_data,\\n chain_id: self.inputs.private_global_variables.chain_id,\\n version: self.inputs.private_global_variables.version,\\n };\\n priv_circuit_pub_inputs\\n }\\n\\n fn push_read_request(&mut self, read_request: Field) {\\n self.read_requests.push(read_request);\\n }\\n\\n fn push_new_note_hash(&mut self, note_hash: Field) {\\n self.new_commitments.push(note_hash);\\n }\\n\\n fn push_new_nullifier(&mut self, nullifier: Field, nullified_commitment: Field) {\\n self.new_nullifiers.push(nullifier);\\n self.nullified_commitments.push(nullified_commitment);\\n }\\n\\n fn message_portal(&mut self, content: Field) {\\n self.new_l2_to_l1_msgs.push(content);\\n }\\n\\n // PrivateContextInputs must be temporarily passed in to prevent too many unknowns\\n // Note this returns self to get around an issue where mutable structs do not maintain mutations unless reassigned\\n fn consume_l1_to_l2_message(&mut self, inputs: abi::PrivateContextInputs, msg_key: Field, content: Field, secret: Field) {\\n let nullifier = process_l1_to_l2_message(inputs.block_data.l1_to_l2_messages_tree_root, inputs.call_context.storage_contract_address, msg_key, content, secret);\\n\\n // Push nullifier (and the \\"commitment\\" corresponding to this can be \\"empty\\")\\n self.push_new_nullifier(nullifier, EMPTY_NULLIFIED_COMMITMENT)\\n }\\n\\n fn accumulate_encrypted_logs<N>(&mut self, log: [Field; N]) {\\n let _void1 = self.inputs;\\n let _void2 = log;\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\\n }\\n\\n fn accumulate_unencrypted_logs<T>(&mut self, log: T) {\\n let _void1 = self.inputs;\\n let _void2 = log;\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\\n }\\n\\n fn call_private_function<ARGS_COUNT>(\\n &mut self,\\n contract_address: Field, \\n function_selector: Field, \\n args: [Field; ARGS_COUNT]\\n ) -> [Field; RETURN_VALUES_LENGTH] {\\n let args_hash = hash_args(args);\\n assert(args_hash == arguments::pack_arguments(args));\\n self.call_private_function_with_packed_args(contract_address, function_selector, args_hash)\\n }\\n\\n fn call_private_function_no_args(\\n &mut self,\\n contract_address: Field, \\n function_selector: Field, \\n ) -> [Field; RETURN_VALUES_LENGTH] {\\n self.call_private_function_with_packed_args(contract_address, function_selector, 0)\\n }\\n\\n fn call_private_function_with_packed_args(\\n &mut self,\\n contract_address: Field,\\n function_selector: Field,\\n args_hash: Field\\n ) -> [Field; RETURN_VALUES_LENGTH] {\\n let fields = call_private_function_internal(\\n contract_address, \\n function_selector, \\n args_hash\\n );\\n let item = PrivateCallStackItem {\\n contract_address: fields[0],\\n function_data: FunctionData {\\n function_selector: fields[1],\\n is_internal: fields[2] as bool,\\n is_private: fields[3] as bool,\\n is_constructor: fields[4] as bool,\\n },\\n public_inputs: PrivateCircuitPublicInputs {\\n call_context: CallContext {\\n msg_sender : fields[5],\\n storage_contract_address : fields[6],\\n portal_contract_address : fields[7],\\n \\n is_delegate_call : fields[8] as bool,\\n is_static_call : fields[9] as bool,\\n is_contract_deployment: fields[10] as bool,\\n },\\n // TODO handle the offsets as a variable incremented during extraction?\\n args_hash: fields[11],\\n return_values: arr_copy_slice(fields, [0; RETURN_VALUES_LENGTH], 12),\\n read_requests: arr_copy_slice(fields, [0; MAX_READ_REQUESTS_PER_CALL], 16),\\n new_commitments: arr_copy_slice(fields, [0; MAX_NEW_COMMITMENTS_PER_CALL], 20),\\n new_nullifiers: arr_copy_slice(fields, [0; MAX_NEW_NULLIFIERS_PER_CALL], 24),\\n nullified_commitments: arr_copy_slice(fields, [0; MAX_NEW_NULLIFIERS_PER_CALL], 28),\\n private_call_stack: arr_copy_slice(fields, [0; MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL], 32),\\n public_call_stack: arr_copy_slice(fields, [0; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL], 36),\\n new_l2_to_l1_msgs: arr_copy_slice(fields, [0; MAX_NEW_L2_TO_L1_MSGS_PER_CALL], 40),\\n encrypted_logs_hash: arr_copy_slice(fields, [0; NUM_FIELDS_PER_SHA256], 42),\\n unencrypted_logs_hash: arr_copy_slice(fields, [0; NUM_FIELDS_PER_SHA256], 44),\\n encrypted_log_preimages_length: fields[46],\\n unencrypted_log_preimages_length: fields[47],\\n block_data: HistoricBlockData {\\n // Must match order in `private_circuit_public_inputs.hpp`\\n private_data_tree_root : fields[48],\\n nullifier_tree_root : fields[49],\\n contract_tree_root : fields[50],\\n l1_to_l2_messages_tree_root : fields[51],\\n blocks_tree_root : fields[52],\\n public_data_tree_root: fields[53],\\n global_variables_hash: fields[54],\\n },\\n contract_deployment_data: ContractDeploymentData {\\n deployer_public_key: Point::new(fields[55], fields[56]),\\n constructor_vk_hash : fields[57],\\n function_tree_root : fields[58],\\n contract_address_salt : fields[59],\\n portal_contract_address : fields[60],\\n },\\n chain_id: fields[61],\\n version: fields[62],\\n },\\n is_execution_request: fields[63] as bool,\\n };\\n assert(contract_address == item.contract_address);\\n assert(function_selector == item.function_data.function_selector);\\n\\n assert(args_hash == item.public_inputs.args_hash);\\n\\n assert(item.is_execution_request == false);\\n\\n // Assert that the call context of the enqueued call generated by the oracle matches our request.\\n // We are issuing a regular call which is not delegate, static, or deployment. We also constrain\\n // the msg_sender in the nested call to be equal to our address, and the execution context address\\n // for the nested call to be equal to the address we actually called.\\n assert(item.public_inputs.call_context.is_delegate_call == false);\\n assert(item.public_inputs.call_context.is_static_call == false);\\n assert(item.public_inputs.call_context.is_contract_deployment == false);\\n assert(item.public_inputs.call_context.msg_sender == self.inputs.call_context.storage_contract_address);\\n assert(item.public_inputs.call_context.storage_contract_address == contract_address);\\n\\n self.private_call_stack.push(item.hash());\\n\\n item.public_inputs.return_values\\n }\\n\\n fn call_public_function<ARGS_COUNT>(\\n &mut self,\\n contract_address: Field, \\n function_selector: Field, \\n args: [Field; ARGS_COUNT]\\n ) {\\n let args_hash = hash_args(args);\\n assert(args_hash == arguments::pack_arguments(args));\\n self.call_public_function_with_packed_args(contract_address, function_selector, args_hash)\\n }\\n\\n fn call_public_function_no_args(\\n &mut self,\\n contract_address: Field, \\n function_selector: Field,\\n ) {\\n self.call_public_function_with_packed_args(contract_address, function_selector, 0)\\n }\\n\\n fn call_public_function_with_packed_args(\\n &mut self,\\n contract_address: Field,\\n function_selector: Field,\\n args_hash: Field\\n ) {\\n let fields = enqueue_public_function_call_internal(\\n contract_address, \\n function_selector, \\n args_hash\\n );\\n let item = PublicCallStackItem {\\n contract_address: fields[0],\\n function_data: FunctionData {\\n function_selector: fields[1],\\n is_internal: fields[2] as bool,\\n is_private: fields[3] as bool,\\n is_constructor: fields[4] as bool,\\n },\\n public_inputs: PublicCircuitPublicInputs {\\n call_context: CallContext {\\n msg_sender : fields[5],\\n storage_contract_address : fields[6],\\n portal_contract_address : fields[7],\\n \\n is_delegate_call : fields[8] as bool,\\n is_static_call : fields[9] as bool,\\n is_contract_deployment: fields[10] as bool,\\n },\\n args_hash: fields[11],\\n return_values: [0; RETURN_VALUES_LENGTH],\\n contract_storage_update_requests: [ContractStorageUpdateRequest::empty(); MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL],\\n contract_storage_read: [ContractStorageRead::empty(); MAX_PUBLIC_DATA_READS_PER_CALL],\\n public_call_stack: [0; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL],\\n new_commitments: [0; MAX_NEW_COMMITMENTS_PER_CALL],\\n new_nullifiers: [0; MAX_NEW_NULLIFIERS_PER_CALL],\\n new_l2_to_l1_msgs:[0; MAX_NEW_L2_TO_L1_MSGS_PER_CALL],\\n unencrypted_logs_hash:[0; NUM_FIELDS_PER_SHA256],\\n unencrypted_log_preimages_length: 0,\\n block_data: HistoricBlockData::empty(),\\n prover_address: 0,\\n },\\n is_execution_request: true,\\n };\\n\\n assert(contract_address == item.contract_address);\\n assert(function_selector == item.function_data.function_selector);\\n \\n assert(args_hash == item.public_inputs.args_hash);\\n\\n // Assert that the call context of the enqueued call generated by the oracle matches our request.\\n // We are issuing a regular call which is not delegate, static, or deployment. We also constrain\\n // the msg_sender in the nested call to be equal to our address, and the execution context address\\n // for the nested call to be equal to the address we actually called.\\n assert(item.public_inputs.call_context.is_delegate_call == false);\\n assert(item.public_inputs.call_context.is_static_call == false);\\n assert(item.public_inputs.call_context.is_contract_deployment == false);\\n assert(item.public_inputs.call_context.msg_sender == self.inputs.call_context.storage_contract_address);\\n assert(item.public_inputs.call_context.storage_contract_address == contract_address);\\n\\n self.public_call_stack.push(item.hash());\\n }\\n}\\n\\nuse crate::abi::{\\n ContractStorageRead,\\n ContractStorageUpdateRequest\\n};\\n\\nstruct PublicContext {\\n inputs: abi::PublicContextInputs,\\n\\n args_hash : Field,\\n return_values : BoundedVec<Field, RETURN_VALUES_LENGTH>,\\n\\n contract_storage_update_requests: BoundedVec<ContractStorageUpdateRequest, MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL>,\\n contract_storage_read: BoundedVec<ContractStorageRead, MAX_PUBLIC_DATA_READS_PER_CALL>,\\n public_call_stack: BoundedVec<Field, MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL>,\\n\\n new_commitments: BoundedVec<Field, MAX_NEW_COMMITMENTS_PER_CALL>,\\n new_nullifiers: BoundedVec<Field, crate::abi::MAX_NEW_NULLIFIERS_PER_CALL>,\\n\\n new_l2_to_l1_msgs: BoundedVec<Field, crate::abi::MAX_NEW_L2_TO_L1_MSGS_PER_CALL>,\\n\\n unencrypted_logs_hash: BoundedVec<Field, NUM_FIELDS_PER_SHA256>,\\n unencrypted_logs_preimages_length: Field,\\n\\n block_data: HistoricBlockData,\\n prover_address: Field,\\n}\\n\\nimpl PublicContext {\\n fn new(inputs: abi::PublicContextInputs, args_hash: Field) -> PublicContext {\\n let empty_storage_read = ContractStorageRead::empty();\\n let empty_storage_update = ContractStorageUpdateRequest::empty();\\n PublicContext {\\n inputs: inputs,\\n\\n args_hash: args_hash,\\n return_values: BoundedVec::new(0),\\n\\n contract_storage_update_requests: BoundedVec::new(empty_storage_update),\\n contract_storage_read: BoundedVec::new(empty_storage_read),\\n public_call_stack: BoundedVec::new(0),\\n\\n new_commitments: BoundedVec::new(0),\\n new_nullifiers: BoundedVec::new(0),\\n\\n new_l2_to_l1_msgs: BoundedVec::new(0),\\n\\n \\n unencrypted_logs_hash: BoundedVec::new(0),\\n unencrypted_logs_preimages_length: 0,\\n\\n block_data: inputs.block_data,\\n prover_address: 0,\\n\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\\n // encrypted_logs_preimages: Vec::new(),\\n // unencrypted_logs_preimages: Vec::new(),\\n }\\n }\\n\\n fn msg_sender(self) -> Field {\\n self.inputs.call_context.msg_sender\\n }\\n\\n fn this_address(self) -> Field {\\n self.inputs.call_context.storage_contract_address\\n }\\n\\n fn this_portal_address(self) -> Field {\\n self.inputs.call_context.portal_contract_address\\n }\\n\\n fn chain_id(self) -> Field {\\n self.inputs.public_global_variables.chain_id\\n }\\n\\n fn version(self) -> Field {\\n self.inputs.public_global_variables.version\\n }\\n\\n fn block_number(self) -> Field {\\n self.inputs.public_global_variables.block_number\\n }\\n\\n fn timestamp(self) -> Field {\\n self.inputs.public_global_variables.timestamp\\n }\\n\\n fn finish(self) -> abi::PublicCircuitPublicInputs {\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\\n let unencrypted_logs_hash = [0; NUM_FIELDS_PER_SHA256];\\n let unencrypted_log_preimages_length = 0;\\n\\n\\n // Compute the public call stack hashes\\n let pub_circuit_pub_inputs = abi::PublicCircuitPublicInputs {\\n call_context: self.inputs.call_context, // Done\\n args_hash: self.args_hash, // Done\\n contract_storage_update_requests: self.contract_storage_update_requests.storage,\\n contract_storage_read: self.contract_storage_read.storage,\\n return_values: self.return_values.storage,\\n new_commitments: self.new_commitments.storage,\\n new_nullifiers: self.new_nullifiers.storage,\\n public_call_stack: self.public_call_stack.storage,\\n new_l2_to_l1_msgs: self.new_l2_to_l1_msgs.storage,\\n unencrypted_logs_hash: unencrypted_logs_hash,\\n unencrypted_log_preimages_length: unencrypted_log_preimages_length,\\n block_data: self.inputs.block_data,\\n prover_address: self.prover_address,\\n };\\n pub_circuit_pub_inputs\\n }\\n\\n fn push_new_note_hash(&mut self, note_hash: Field) {\\n self.new_commitments.push(note_hash);\\n }\\n\\n fn push_new_nullifier(&mut self, nullifier: Field, _nullified_commitment: Field) {\\n self.new_nullifiers.push(nullifier);\\n }\\n\\n fn message_portal(&mut self, content: Field) {\\n self.new_l2_to_l1_msgs.push(content);\\n }\\n\\n // PrivateContextInputs must be temporarily passed in to prevent too many unknowns\\n // Note this returns self to get around an issue where mutable structs do not maintain mutations unless reassigned\\n fn consume_l1_to_l2_message(&mut self, msg_key: Field, content: Field, secret: Field) {\\n let this = (*self).this_address();\\n let nullifier = process_l1_to_l2_message(self.block_data.l1_to_l2_messages_tree_root, this, msg_key, content, secret);\\n\\n // Push nullifier (and the \\"commitment\\" corresponding to this can be \\"empty\\")\\n self.push_new_nullifier(nullifier, EMPTY_NULLIFIED_COMMITMENT)\\n }\\n\\n fn accumulate_encrypted_logs<N>(&mut self, log: [Field; N]) {\\n let _void1 = self;\\n let _void2 = log;\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\\n }\\n\\n fn accumulate_unencrypted_logs<T>(&mut self, log: T) {\\n let _void1 = self;\\n let _void2 = log;\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\\n }\\n\\n fn call_public_function<ARGS_COUNT>(\\n _self: Self,\\n contract_address: Field, \\n function_selector: Field,\\n args: [Field; ARGS_COUNT],\\n ) -> [Field; RETURN_VALUES_LENGTH] {\\n let args_hash = abi::hash_args(args);\\n assert(args_hash == arguments::pack_arguments(args));\\n call_public_function_internal(\\n contract_address, \\n function_selector, \\n args_hash,\\n )\\n }\\n\\n fn call_public_function_no_args(\\n _self: Self,\\n contract_address: Field, \\n function_selector: Field,\\n ) -> [Field; RETURN_VALUES_LENGTH] {\\n call_public_function_internal(\\n contract_address, \\n function_selector, \\n 0,\\n )\\n }\\n\\n}","path":"/mnt/user-data/alvaro/aztec-packages/yarn-project/noir-libs/noir-aztec/src/context"},"33":{"source":"use crate::context::PrivateContext;\\nuse crate::oracle;\\nuse crate::types::point::Point;\\n\\nfn emit_encrypted_log<N>(\\n context: &mut PrivateContext,\\n contract_address: Field,\\n storage_slot: Field,\\n encryption_pub_key: Point,\\n log: [Field; N],\\n) {\\n let _ = oracle::logs::emit_encrypted_log(contract_address, storage_slot, encryption_pub_key, log);\\n context.accumulate_encrypted_logs(log);\\n}\\n\\nfn emit_unencrypted_log<T>(\\n context: &mut PrivateContext,\\n log: T,\\n) {\\n let _ = oracle::logs::emit_unencrypted_log(log);\\n context.accumulate_unencrypted_logs(log);\\n}\\n","path":"/mnt/user-data/alvaro/aztec-packages/yarn-project/noir-libs/noir-aztec/src/log"},"39":{"source":"use dep::std::option::Option;\\nuse crate::abi::PublicContextInputs;\\nuse crate::context::{\\n PrivateContext,\\n PublicContext,\\n};\\nuse crate::note::{\\n note_header::NoteHeader,\\n note_interface::NoteInterface,\\n utils::compute_inner_note_hash,\\n};\\nuse crate::oracle::notes::{notify_created_note, notify_nullified_note};\\nuse crate::constants_gen::EMPTY_NULLIFIED_COMMITMENT;\\n\\nfn create_note<Note, N>(\\n context: &mut PrivateContext,\\n storage_slot: Field,\\n note: &mut Note,\\n note_interface: NoteInterface<Note, N>,\\n) {\\n let contract_address = (*context).this_address();\\n\\n let header = NoteHeader { contract_address, storage_slot, nonce: 0 };\\n let set_header = note_interface.set_header;\\n set_header(note, header);\\n let inner_note_hash = compute_inner_note_hash(note_interface, *note);\\n\\n let serialise = note_interface.serialise;\\n let preimage = serialise(*note);\\n assert(notify_created_note(storage_slot, preimage, inner_note_hash) == 0);\\n\\n context.push_new_note_hash(inner_note_hash);\\n}\\n\\nfn create_note_hash_from_public<Note, N>(\\n context: &mut PublicContext,\\n storage_slot: Field,\\n note: &mut Note,\\n note_interface: NoteInterface<Note, N>,\\n) {\\n let contract_address = (*context).this_address();\\n\\n let header = NoteHeader { contract_address, storage_slot, nonce: 0 };\\n let set_header = note_interface.set_header;\\n set_header(note, header);\\n let inner_note_hash = compute_inner_note_hash(note_interface, *note);\\n\\n context.push_new_note_hash(inner_note_hash);\\n}\\n\\nfn destroy_note<Note, N>(\\n context: &mut PrivateContext,\\n storage_slot: Field,\\n note: Note,\\n note_interface: NoteInterface<Note, N>,\\n) {\\n let mut nullifier = 0;\\n let mut nullified_commitment: Field = EMPTY_NULLIFIED_COMMITMENT;\\n let compute_nullifier = note_interface.compute_nullifier;\\n nullifier = compute_nullifier(note);\\n\\n let serialise = note_interface.serialise;\\n let preimage = serialise(note);\\n\\n // We also need the note commitment corresponding to the \\"nullifier\\"\\n let get_header = note_interface.get_header;\\n let header = get_header(note);\\n // 0 nonce implies \\"transient\\" nullifier (must nullify a commitment in this TX).\\n // `nullified_commitment` is used to inform the kernel which pending commitment\\n // the nullifier corresponds to so they can be matched and both squashed/deleted.\\n // nonzero nonce implies \\"persistable\\" nullifier (nullifies a persistent/in-tree\\n // commitment) in which case `nullified_commitment` is not used since the kernel\\n // just siloes and forwards the nullier to its output.\\n if (header.nonce == 0) {\\n // TODO(suyash): Can we reuse the note commitment computed in `compute_nullifier`?\\n nullified_commitment = compute_inner_note_hash(note_interface, note);\\n }\\n assert(notify_nullified_note(storage_slot, nullifier, preimage, nullified_commitment) == 0);\\n\\n context.push_new_nullifier(nullifier, nullified_commitment)\\n}","path":"/mnt/user-data/alvaro/aztec-packages/yarn-project/noir-libs/noir-aztec/src/note/lifecycle"},"40":{"source":"use dep::std::option::Option;\\nuse crate::constants_gen::{\\n MAX_READ_REQUESTS_PER_CALL,\\n GET_NOTE_ORACLE_RETURN_LENGTH,\\n GET_NOTES_ORACLE_RETURN_LENGTH,\\n MAX_NOTES_PER_PAGE,\\n VIEW_NOTE_ORACLE_RETURN_LENGTH,\\n};\\nuse crate::context::PrivateContext;\\nuse crate::note::{\\n note_getter_options::{NoteGetterOptions, Select, Sort},\\n note_interface::NoteInterface,\\n note_header::NoteHeader,\\n note_viewer_options::NoteViewerOptions,\\n utils::compute_note_hash_for_read_or_nullify,\\n utils::compute_unique_siloed_note_hash,\\n utils::compute_inner_note_hash,\\n utils::compute_siloed_note_hash,\\n};\\nuse crate::messaging::get_commitment_getter_data::make_commitment_getter_data;\\nuse crate::oracle;\\nuse crate::types::vec::BoundedVec;\\n\\nfn check_note_header<Note, N>(\\n context: PrivateContext,\\n storage_slot: Field,\\n note_interface: NoteInterface<Note, N>,\\n note: Note,\\n) {\\n let get_header = note_interface.get_header;\\n let header = get_header(note);\\n let contract_address = context.this_address();\\n assert(header.contract_address == contract_address);\\n assert(header.storage_slot == storage_slot);\\n}\\n\\nfn ensure_note_exists<Note, N>(\\n context: &mut PrivateContext,\\n storage_slot: Field,\\n note_interface: NoteInterface<Note, N>,\\n note: &mut Note,\\n) {\\n let saved_note = get_note_internal(storage_slot, note_interface);\\n\\n // Only copy over the header to the original note to make sure the preimage is the same.\\n let get_header = note_interface.get_header;\\n let set_header = note_interface.set_header;\\n let note_header = get_header(saved_note);\\n set_header(note, note_header);\\n\\n check_note_header(*context, storage_slot, note_interface, *note);\\n\\n let note_hash_for_read_request = compute_note_hash_for_read_or_nullify(note_interface, *note);\\n context.push_read_request(note_hash_for_read_request);\\n}\\n\\n// Ensure a note\'s hash exists in the tree without retrieving the entire\\n// notes via the oracle.\\n// Modifies the note by populating it with header info.\\nfn ensure_note_hash_exists<Note, N>(\\n context: &mut PrivateContext,\\n storage_slot: Field,\\n note_interface: NoteInterface<Note, N>,\\n note: &mut Note,\\n) {\\n // Initialize header of note. Must be done before computing note hashes as it initializes the:\\n // - storage slot (used in inner note hash)\\n // - the contract address (used in siloed note hash)\\n // - and the nonce (used in the unique siloed note hash)\\n let set_header = note_interface.set_header;\\n let note_header = NoteHeader {\\n contract_address: (*context).this_address(),\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1386): should be\\n // real nonce (once public kernel applies nonces).\\n nonce: 0,\\n storage_slot\\n };\\n set_header(note, note_header);\\n\\n // Get a note from oracle and early out if it doesn\'t exist.\\n let inner_note_hash = compute_inner_note_hash(note_interface, *note);\\n\\n let raw_oracle_ret = oracle::get_commitment::get_commitment(inner_note_hash);\\n let deserialized_oracle_ret = make_commitment_getter_data(raw_oracle_ret, 0);\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1386): should be\\n // unique_siloed_note_hash once public kernel applies nonces\\n let saved_siloed_note_hash = deserialized_oracle_ret.message;\\n\\n assert(saved_siloed_note_hash != 0); // TODO(dbanks12): necessary?\\n\\n check_note_header(*context, storage_slot, note_interface, *note);\\n\\n // Ensure that the note hash retrieved from oracle matches the one computed from note.\\n let computed_siloed_note_hash = compute_siloed_note_hash(note_interface, *note);\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1386): should be\\n // compute_note_hash_for_read_or_nullify once public kernel applies nonces\\n assert(computed_siloed_note_hash == saved_siloed_note_hash);\\n\\n context.push_read_request(computed_siloed_note_hash);\\n}\\n\\nfn get_note<Note, N>(\\n context: &mut PrivateContext,\\n storage_slot: Field,\\n note_interface: NoteInterface<Note, N>,\\n) -> Note {\\n let note = get_note_internal(storage_slot, note_interface);\\n\\n check_note_header(*context, storage_slot, note_interface, note);\\n\\n let note_hash_for_read_request = compute_note_hash_for_read_or_nullify(note_interface, note);\\n\\n context.push_read_request(note_hash_for_read_request);\\n note\\n}\\n\\nfn get_notes<Note, N, FILTER_ARGS>(\\n context: &mut PrivateContext,\\n storage_slot: Field,\\n note_interface: NoteInterface<Note, N>,\\n options: NoteGetterOptions<Note, N, FILTER_ARGS>,\\n) -> [Option<Note>; MAX_READ_REQUESTS_PER_CALL] {\\n let opt_notes = get_notes_internal(storage_slot, note_interface, options);\\n for i in 0..opt_notes.len() {\\n let opt_note = opt_notes[i];\\n let mut note_hash_for_read_request = 0;\\n if opt_note.is_some() {\\n let note = opt_note.unwrap_unchecked();\\n check_note_header(*context, storage_slot, note_interface, note);\\n note_hash_for_read_request = compute_note_hash_for_read_or_nullify(note_interface, note);\\n };\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1410): test to ensure\\n // failure if malicious oracle injects 0 nonce here for a \\"pre-existing\\" note.\\n context.push_read_request(note_hash_for_read_request);\\n };\\n\\n // TODO(#1660)\\n // Move it back to get_notes_internal and only make read request for selected notes.\\n let filter = options.filter;\\n let filter_args = options.filter_args;\\n filter(opt_notes, filter_args)\\n}\\n\\nunconstrained fn get_note_internal<Note, N>(\\n storage_slot: Field,\\n note_interface: NoteInterface<Note, N>,\\n) -> Note {\\n let placeholder_note = [Option::none()];\\n let placeholder_fields = [0; GET_NOTE_ORACLE_RETURN_LENGTH];\\n oracle::notes::get_notes(\\n storage_slot,\\n note_interface,\\n 0,\\n [],\\n [],\\n [],\\n [],\\n 1, // limit\\n 0, // offset\\n placeholder_note,\\n placeholder_fields,\\n )[0].unwrap() // Notice: we don\'t allow dummies to be returned from get_note (singular).\\n}\\n\\nunconstrained fn get_notes_internal<Note, N, FILTER_ARGS>(\\n storage_slot: Field,\\n note_interface: NoteInterface<Note, N>,\\n options: NoteGetterOptions<Note, N, FILTER_ARGS>,\\n) -> [Option<Note>; MAX_READ_REQUESTS_PER_CALL] {\\n let (num_selects, select_by, select_values, sort_by, sort_order) = flatten_options(options.selects, options.sorts);\\n let placeholder_opt_notes = [Option::none(); MAX_READ_REQUESTS_PER_CALL];\\n let placeholder_fields = [0; GET_NOTES_ORACLE_RETURN_LENGTH];\\n oracle::notes::get_notes(\\n storage_slot,\\n note_interface,\\n num_selects,\\n select_by,\\n select_values,\\n sort_by,\\n sort_order,\\n options.limit,\\n options.offset,\\n placeholder_opt_notes,\\n placeholder_fields,\\n )\\n}\\n\\nunconstrained fn view_notes<Note, N>(\\n storage_slot: Field,\\n note_interface: NoteInterface<Note, N>,\\n options: NoteViewerOptions<Note, N>,\\n) -> [Option<Note>; MAX_NOTES_PER_PAGE] {\\n let (num_selects, select_by, select_values, sort_by, sort_order) = flatten_options(options.selects, options.sorts);\\n let placeholder_opt_notes = [Option::none(); MAX_NOTES_PER_PAGE];\\n let placeholder_fields = [0; VIEW_NOTE_ORACLE_RETURN_LENGTH];\\n oracle::notes::get_notes(\\n storage_slot,\\n note_interface,\\n num_selects,\\n select_by,\\n select_values,\\n sort_by,\\n sort_order,\\n options.limit,\\n options.offset,\\n placeholder_opt_notes,\\n placeholder_fields,\\n )\\n}\\n\\nunconstrained fn flatten_options<Note, N>(\\n selects: BoundedVec<Option<Select>, N>,\\n sorts: BoundedVec<Option<Sort>, N>,\\n) -> (u8, [u8; N], [Field; N], [u8; N], [u2; N]) {\\n let mut num_selects = 0;\\n let mut select_by = [0; N];\\n let mut select_values = [0; N];\\n for i in 0..selects.len {\\n let select = selects.get(i);\\n if select.is_some() {\\n select_by[num_selects] = select.unwrap_unchecked().field_index;\\n select_values[num_selects] = select.unwrap_unchecked().value;\\n num_selects += 1;\\n };\\n };\\n\\n let mut sort_by = [0; N];\\n let mut sort_order = [0; N];\\n for i in 0..sorts.len {\\n let sort = sorts.get(i);\\n if sort.is_some() {\\n sort_by[i] = sort.unwrap_unchecked().field_index;\\n sort_order[i] = sort.unwrap_unchecked().order;\\n };\\n };\\n\\n (num_selects, select_by, select_values, sort_by, sort_order)\\n}","path":"/mnt/user-data/alvaro/aztec-packages/yarn-project/noir-libs/noir-aztec/src/note/note_getter"},"42":{"source":"use dep::std::hash::{pedersen, pedersen_with_separator};\\nuse crate::constants_gen::{GENERATOR_INDEX__UNIQUE_COMMITMENT, GENERATOR_INDEX__SILOED_COMMITMENT};\\n\\nfn compute_inner_hash(storage_slot: Field, note_hash: Field) -> Field {\\n // TODO(#1205) Do we need a generator index here?\\n pedersen([storage_slot, note_hash])[0]\\n}\\n\\nfn compute_siloed_hash(contract_address: Field, inner_note_hash: Field) -> Field {\\n let inputs = [contract_address, inner_note_hash];\\n pedersen_with_separator(inputs, GENERATOR_INDEX__SILOED_COMMITMENT)[0]\\n}\\n\\nfn compute_unique_hash(nonce: Field, siloed_note_hash: Field) -> Field {\\n let inputs = [nonce, siloed_note_hash];\\n pedersen_with_separator(inputs, GENERATOR_INDEX__UNIQUE_COMMITMENT)[0]\\n}\\n","path":"/mnt/user-data/alvaro/aztec-packages/yarn-project/noir-libs/noir-aztec/src/note/note_hash"},"46":{"source":"use crate::note::{\\n note_hash::{compute_inner_hash, compute_siloed_hash, compute_unique_hash},\\n note_header::NoteHeader,\\n note_interface::NoteInterface,\\n};\\nuse crate::utils::arr_copy_slice;\\n\\nfn compute_inner_note_hash<Note, N>(\\n note_interface: NoteInterface<Note, N>,\\n note: Note,\\n) -> Field {\\n let get_header = note_interface.get_header;\\n let header = get_header(note);\\n\\n let compute_note_hash = note_interface.compute_note_hash;\\n let note_hash = compute_note_hash(note);\\n\\n compute_inner_hash(header.storage_slot, note_hash)\\n}\\n\\nfn compute_siloed_note_hash<Note, N>(\\n note_interface: NoteInterface<Note, N>,\\n note_with_header: Note,\\n) -> Field {\\n let get_header = note_interface.get_header;\\n let header = get_header(note_with_header);\\n\\n let inner_note_hash = compute_inner_note_hash(note_interface, note_with_header);\\n\\n compute_siloed_hash(header.contract_address, inner_note_hash)\\n}\\n\\nfn compute_unique_siloed_note_hash<Note, N>(\\n note_interface: NoteInterface<Note, N>,\\n note_with_header: Note,\\n) -> Field {\\n let get_header = note_interface.get_header;\\n let header = get_header(note_with_header);\\n\\n let siloed_note_hash = compute_siloed_note_hash(note_interface, note_with_header);\\n\\n compute_unique_hash(header.nonce, siloed_note_hash)\\n}\\n\\nfn compute_note_hash_for_read_or_nullify<Note, N>(\\n note_interface: NoteInterface<Note, N>,\\n note_with_header: Note,\\n) -> Field {\\n let get_header = note_interface.get_header;\\n let header = get_header(note_with_header);\\n\\n if (header.nonce == 0) {\\n // when nonce is zero, that means we are reading a pending note (doesn\'t have a nonce yet),\\n // so we just read the inner_note_hash (kernel will silo by contract address)\\n compute_inner_note_hash(note_interface, note_with_header)\\n } else {\\n // When nonce is nonzero, that means we are reading a settled note (from tree) created in a\\n // previous TX. So we need the unique_siloed_note_hash which has already been hashed with\\n // contract address and then nonce. This hash will match the existing leaf in the private\\n // data tree, so the kernel can just perform a membership check directly on this hash/leaf.\\n compute_unique_siloed_note_hash(note_interface, note_with_header)\\n }\\n\\n}\\n\\nfn compute_note_hash_and_nullifier<Note, N, S>(\\n note_interface: NoteInterface<Note, N>,\\n note_header: NoteHeader,\\n preimage: [Field; S],\\n) -> [Field; 4] {\\n let deserialise = note_interface.deserialise;\\n let set_header = note_interface.set_header;\\n let mut note = deserialise(arr_copy_slice(preimage, [0; N], 0));\\n set_header(&mut note, note_header);\\n\\n let compute_note_hash = note_interface.compute_note_hash;\\n let note_hash = compute_note_hash(note);\\n let inner_note_hash = compute_inner_hash(note_header.storage_slot, note_hash);\\n\\n let siloed_note_hash = compute_siloed_hash(note_header.contract_address, inner_note_hash);\\n\\n let unique_siloed_note_hash = compute_unique_hash(note_header.nonce, siloed_note_hash);\\n\\n let compute_nullifier = note_interface.compute_nullifier;\\n let inner_nullifier = compute_nullifier(note);\\n\\n [inner_note_hash, siloed_note_hash, unique_siloed_note_hash, inner_nullifier]\\n}\\n","path":"/mnt/user-data/alvaro/aztec-packages/yarn-project/noir-libs/noir-aztec/src/note/utils"},"48":{"source":"use dep::std::hash::pedersen_with_separator;\\nuse crate::context::PrivateContext;\\nuse crate::note::{\\n lifecycle::create_note,\\n note_getter::{get_note, view_notes},\\n note_interface::NoteInterface,\\n note_viewer_options::NoteViewerOptions,\\n};\\nuse crate::oracle;\\nuse crate::constants_gen::{\\n GENERATOR_INDEX__INITIALISATION_NULLIFIER,\\n EMPTY_NULLIFIED_COMMITMENT,\\n};\\n\\nstruct ImmutableSingleton<Note, N> {\\n storage_slot: Field,\\n note_interface: NoteInterface<Note, N>,\\n}\\n\\nimpl<Note, N> ImmutableSingleton<Note, N> {\\n fn new(storage_slot: Field, note_interface: NoteInterface<Note, N>) -> Self {\\n ImmutableSingleton { storage_slot, note_interface }\\n }\\n\\n unconstrained fn is_initialised(self) -> bool {\\n let nullifier = self.compute_initialisation_nullifier();\\n oracle::notes::is_nullifier_emitted(nullifier)\\n }\\n\\n fn initialise(self, context: &mut PrivateContext, note: &mut Note) {\\n // Nullify the storage slot.\\n let nullifier = self.compute_initialisation_nullifier();\\n context.push_new_nullifier(nullifier, EMPTY_NULLIFIED_COMMITMENT);\\n\\n create_note(context, self.storage_slot, note, self.note_interface);\\n }\\n\\n fn compute_initialisation_nullifier(self) -> Field {\\n pedersen_with_separator([self.storage_slot], GENERATOR_INDEX__INITIALISATION_NULLIFIER)[0]\\n }\\n \\n fn get_note(self, context: &mut PrivateContext) -> Note {\\n let storage_slot = self.storage_slot;\\n get_note(context, storage_slot, self.note_interface)\\n }\\n\\n unconstrained fn view_note(self) -> Note {\\n let options = NoteViewerOptions::new().set_limit(1);\\n view_notes(self.storage_slot, self.note_interface, options)[0].unwrap()\\n }\\n}","path":"/mnt/user-data/alvaro/aztec-packages/yarn-project/noir-libs/noir-aztec/src/state_vars/immutable_singleton"},"55":{"source":"\\nstruct BoundedVec<T, MaxLen> {\\n storage: [T; MaxLen],\\n len: Field,\\n}\\n\\nimpl<T, MaxLen> BoundedVec<T, MaxLen> {\\n fn new(initial_value: T) -> Self {\\n BoundedVec { storage: [initial_value; MaxLen], len: 0 }\\n }\\n\\n fn get(mut self: Self, index: Field) -> T {\\n assert(index as u64 < self.len as u64);\\n self.storage[index]\\n }\\n\\n fn push(&mut self, elem: T) {\\n assert(self.len as u64 < MaxLen as u64);\\n\\n self.storage[self.len] = elem;\\n self.len += 1;\\n }\\n\\n fn push_array<Len>(&mut self, array: [T; Len]) {\\n let newLen = self.len + array.len();\\n assert(newLen as u64 <= MaxLen as u64);\\n for i in 0..array.len() {\\n self.storage[self.len + i] = array[i];\\n }\\n self.len = newLen;\\n }\\n\\n fn pop(&mut self) -> T {\\n assert(self.len as u64 > 0);\\n\\n let elem = self.storage[self.len - 1];\\n self.len -= 1;\\n elem\\n }\\n}\\n\\n// #[test]\\n// fn test_vec() {\\n// let vec: BoundedVec<Field, 2> = BoundedVec::new(0);\\n// assert(vec.len == 0);\\n// let vec1 = vec.push(1);\\n// assert(vec1.len == 1);\\n// let vec2 = vec1.push(1);\\n// assert(vec2.len == 2);\\n// let vec3 = vec2.push(1);\\n// assert(vec3.len == 3);\\n// let x = vec3.pop();\\n// assert(x == 1);\\n// }","path":"/mnt/user-data/alvaro/aztec-packages/yarn-project/noir-libs/noir-aztec/src/types/vec"},"70":{"source":"use crate::types::point::Point;\\nuse dep::std::hash;\\nuse crate::constants_gen::GENERATOR_INDEX__CONTRACT_ADDRESS;\\n\\n#[oracle(getPublicKey)]\\nfn get_public_key_oracle(_address: Field) -> [Field; 3] {}\\n\\nunconstrained fn get_public_key_internal(address: Field) -> [Field; 3] {\\n get_public_key_oracle(address)\\n}\\n\\nfn get_public_key(address: Field) -> Point {\\n let result = get_public_key_internal(address);\\n let pub_key_x = result[0];\\n let pub_key_y = result[1];\\n let partial_address = result[2];\\n \\n let calculated_address = hash::pedersen_with_separator([pub_key_x, pub_key_y, partial_address], GENERATOR_INDEX__CONTRACT_ADDRESS)[0];\\n assert(calculated_address == address);\\n \\n Point::new(pub_key_x, pub_key_y)\\n}\\n","path":"/mnt/user-data/alvaro/aztec-packages/yarn-project/noir-libs/noir-aztec/src/oracle/get_public_key"},"78":{"source":"use crate::abi;\\nuse crate::types::vec::BoundedVec;\\nuse crate::context::PrivateContext;\\nuse crate::private_call_stack_item::PrivateCallStackItem;\\nuse crate::public_call_stack_item::PublicCallStackItem; \\n\\nglobal ACCOUNT_MAX_PRIVATE_CALLS: Field = 2;\\nglobal ACCOUNT_MAX_PUBLIC_CALLS: Field = 2;\\nglobal ACCOUNT_MAX_CALLS: Field = 4;\\n// 1 (ARGS_HASH) + 1 (FUNCTION_SELECTOR) + 1 (TARGET_ADDRESS)\\nglobal FUNCTION_CALL_SIZE: Field = 3;\\n\\nstruct FunctionCall {\\n args_hash: Field,\\n function_selector: Field,\\n target_address: Field,\\n}\\n\\nimpl FunctionCall {\\n fn serialize(self) -> [Field; FUNCTION_CALL_SIZE] {\\n [self.args_hash, self.function_selector, self.target_address]\\n }\\n}\\n\\n// FUNCTION_CALL_SIZE * (ACCOUNT_MAX_PUBLIC_CALLS + ACCOUNT_MAX_PRIVATE_CALLS) + 1\\nglobal ENTRYPOINT_PAYLOAD_SIZE: Field = 13;\\nglobal ENTRYPOINT_PAYLOAD_SIZE_IN_BYTES: Field = 416;\\n\\nstruct EntrypointPayload {\\n // Noir doesnt support nested arrays or structs yet so we flatten everything\\n flattened_args_hashes: [Field; ACCOUNT_MAX_CALLS],\\n flattened_selectors: [Field; ACCOUNT_MAX_CALLS],\\n flattened_targets: [Field; ACCOUNT_MAX_CALLS],\\n nonce: Field,\\n}\\n\\nimpl EntrypointPayload {\\n // TODO(#1207) Do we need a generator index?\\n fn hash(self) -> Field {\\n dep::std::hash::pedersen(self.serialize())[0]\\n }\\n\\n // Serializes the entrypoint struct\\n fn serialize(self) -> [Field; ENTRYPOINT_PAYLOAD_SIZE] {\\n let mut fields: BoundedVec<Field, ENTRYPOINT_PAYLOAD_SIZE> = BoundedVec::new(0); \\n fields.push_array(self.flattened_args_hashes);\\n fields.push_array(self.flattened_selectors);\\n fields.push_array(self.flattened_targets);\\n fields.push(self.nonce);\\n fields.storage\\n }\\n\\n // Serializes the payload as an array of bytes. Useful for hashing with sha256.\\n fn to_be_bytes(self) -> [u8; ENTRYPOINT_PAYLOAD_SIZE_IN_BYTES] {\\n let mut bytes: [u8; ENTRYPOINT_PAYLOAD_SIZE_IN_BYTES] = [0; ENTRYPOINT_PAYLOAD_SIZE_IN_BYTES];\\n\\n let args_len = self.flattened_args_hashes.len();\\n let selectors_len = self.flattened_selectors.len();\\n let targets_len = self.flattened_targets.len();\\n\\n for i in 0..args_len {\\n let item_bytes = self.flattened_args_hashes[i].to_be_bytes(32);\\n for j in 0..32 { \\n bytes[i * 32 + j] = item_bytes[j];\\n }\\n }\\n\\n for i in 0..selectors_len {\\n let item_bytes = self.flattened_selectors[i].to_be_bytes(32);\\n for j in 0..32 { \\n bytes[args_len * 32 + i * 32 + j] = item_bytes[j];\\n }\\n }\\n\\n for i in 0..targets_len {\\n let item_bytes = self.flattened_targets[i].to_be_bytes(32);\\n for j in 0..32 { \\n bytes[(args_len + selectors_len) * 32 + i * 32 + j] = item_bytes[j];\\n }\\n }\\n \\n let item_bytes = self.nonce.to_be_bytes(32);\\n for j in 0..32 { \\n bytes[(args_len + selectors_len + targets_len) * 32 + j] = item_bytes[j];\\n }\\n\\n bytes\\n }\\n\\n // Executes all private and public calls \\n fn execute_calls(self, context: &mut PrivateContext) {\\n for i in 0..ACCOUNT_MAX_PRIVATE_CALLS {\\n let target_address = self.flattened_targets[i];\\n if target_address != 0 {\\n let function_selector = self.flattened_selectors[i];\\n let args_hash = self.flattened_args_hashes[i];\\n let _callStackItem = context.call_private_function_with_packed_args(target_address, function_selector, args_hash);\\n }\\n }\\n for i in ACCOUNT_MAX_PRIVATE_CALLS..ACCOUNT_MAX_CALLS {\\n let target_address = self.flattened_targets[i];\\n if target_address != 0 {\\n let function_selector = self.flattened_selectors[i];\\n let args_hash = self.flattened_args_hashes[i];\\n let _callStackItem = context.call_public_function_with_packed_args(target_address, function_selector, args_hash);\\n }\\n }\\n }\\n}","path":"/mnt/user-data/alvaro/aztec-packages/yarn-project/noir-libs/noir-aztec/src/entrypoint"}}}}');class ki{constructor(e,t,n,r=31337,s=1){this.address=e,this.privateKey=t,this.signer=n,this.chainId=r,this.version=s,this.log=fs("aztec:client:accounts:stored_key")}async createTxExecutionRequest(e,t={}){if(t.origin&&!t.origin.equals(this.address))throw new Error(`Sender ${t.origin.toString()} does not match account address ${this.address.toString()}`);const[n,r]=Va()(e,(e=>e.functionData.isPrivate)),s=await ks.get(),{payload:a,packedArguments:i}=await Ka(n,r),o=$a(a,s),l=this.signer.constructSignature(o,this.privateKey).toBuffer();this.log(`Signed challenge ${o.toString("hex")} as ${l.toString("hex")}`);const c=[a,l],u=this.getEntrypointAbi(),f=await Ba.fromArgs(Un(u,c),s);return Da.from({argsHash:f.hash,origin:this.address,functionData:Cr.fromAbi(u),txContext:Br.empty(this.chainId,this.version),packedArguments:[...i,f]})}getEntrypointAbi(){const e=Ii.functions.find((e=>"entrypoint"===e.name));if(!e)throw new Error("Entrypoint abi for account contract not found");return e}}class xi{constructor(e){this.signingPrivateKey=e}async getDeploymentArgs(){const e=await Ws.new().then((e=>e.computePublicKey(this.signingPrivateKey)));return[e.subarray(0,32),e.subarray(32,64)]}async getEntrypoint({address:e},{chainId:t,version:n}){return new ki(e,this.signingPrivateKey,await Ws.new(),t,n)}getContractAbi(){return Ii}}const Ri=JSON.parse('{"name":"SchnorrAccount","functions":[{"name":"compute_note_hash_and_nullifier","functionType":"unconstrained","isInternal":false,"parameters":[{"name":"contract_address","type":{"kind":"field"},"visibility":"private"},{"name":"nonce","type":{"kind":"field"},"visibility":"private"},{"name":"storage_slot","type":{"kind":"field"},"visibility":"private"},{"name":"preimage","type":{"kind":"array","length":3,"type":{"kind":"field"}},"visibility":"private"}],"returnTypes":[{"kind":"array","length":4,"type":{"kind":"field"}}],"bytecode":"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","verificationKey":"0000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f"},{"name":"constructor","functionType":"secret","isInternal":false,"parameters":[{"name":"signing_pub_key_x","type":{"kind":"field"},"visibility":"public"},{"name":"signing_pub_key_y","type":{"kind":"field"},"visibility":"public"}],"returnTypes":[],"bytecode":"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","verificationKey":"0000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f"},{"name":"entrypoint","functionType":"secret","isInternal":false,"parameters":[{"name":"payload","type":{"kind":"struct","name":"EntrypointPayload","fields":[{"name":"flattened_args_hashes","type":{"kind":"array","length":4,"type":{"kind":"field"}}},{"name":"flattened_selectors","type":{"kind":"array","length":4,"type":{"kind":"field"}}},{"name":"flattened_targets","type":{"kind":"array","length":4,"type":{"kind":"field"}}},{"name":"nonce","type":{"kind":"field"}}]},"visibility":"public"},{"name":"signature","type":{"kind":"array","length":64,"type":{"kind":"integer","sign":"unsigned","width":8}},"visibility":"public"}],"returnTypes":[],"bytecode":"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","verificationKey":"0000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f"}],"debug":{"debugSymbols":["eJyrVsrJT04syczPK1ayqq6tBQAz9wY7","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"],"fileMap":{"0":{"source":"mod storage;\\nmod public_key_note;\\n\\n// Account contract that uses Schnorr signatures for authentication.\\n// The signing key is stored in an immutable private note and should be different from the encryption/nullifying key.\\ncontract SchnorrAccount {\\n use dep::std;\\n use dep::aztec::entrypoint;\\n use dep::aztec::entrypoint::EntrypointPayload;\\n use dep::aztec::abi;\\n use dep::aztec::abi::PrivateContextInputs;\\n use dep::aztec::abi::CallContext;\\n use dep::aztec::private_call_stack_item::PrivateCallStackItem;\\n use dep::aztec::public_call_stack_item::PublicCallStackItem;\\n use dep::aztec::context::PrivateContext;\\n use dep::aztec::log::emit_encrypted_log;\\n use dep::aztec::oracle::get_public_key::get_public_key;\\n use dep::aztec::types::vec::BoundedVec;\\n use dep::aztec::types::point::Point;\\n use dep::aztec::note::utils as note_utils;\\n use dep::aztec::note::note_header::NoteHeader;\\n use dep::aztec::constants_gen::MAX_NOTE_FIELDS_LENGTH;\\n use dep::aztec::constants_gen::GENERATOR_INDEX__CONTRACT_ADDRESS;\\n use dep::aztec::constants_gen::GENERATOR_INDEX__SIGNATURE_PAYLOAD;\\n\\n use crate::storage::Storage;\\n use crate::public_key_note::PublicKeyNote;\\n use crate::public_key_note::PublicKeyNoteMethods;\\n use crate::public_key_note::PUBLIC_KEY_NOTE_LEN;\\n\\n // docs:start:entrypoint\\n\\n fn entrypoint(\\n inputs: pub PrivateContextInputs,\\n payload: pub EntrypointPayload, // contains a set of arguments, selectors, targets and a nonce\\n signature: pub [u8;64], // schnorr signature of the payload hash\\n ) -> distinct pub abi::PrivateCircuitPublicInputs {\\n // Initialize context\\n // ENTRYPOINT_PAYLOAD_SIZE(13) + 64\\n let mut args: BoundedVec<Field, 77> = BoundedVec::new(0);\\n args.push_array(payload.serialize());\\n for byte in signature { args.push(byte as Field); }\\n let mut context = PrivateContext::new(inputs, abi::hash_args(args.storage));\\n\\n // Load public key from storage\\n let storage = Storage::init();\\n let public_key = storage.signing_public_key.get_note(&mut context);\\n\\n // Verify payload signature\\n let payload_fields: [Field; entrypoint::ENTRYPOINT_PAYLOAD_SIZE] = payload.serialize();\\n let message_field: Field = std::hash::pedersen_with_separator(payload_fields, GENERATOR_INDEX__SIGNATURE_PAYLOAD)[0];\\n let message_bytes = message_field.to_be_bytes(32);\\n\\n // Verify signature of the payload bytes\\n let verification = std::schnorr::verify_signature(public_key.x, public_key.y, signature, message_bytes);\\n assert(verification == true);\\n\\n // docs:end:entrypoint\\n\\n // Execute calls\\n payload.execute_calls(&mut context);\\n\\n context.finish()\\n }\\n\\n // Constructs the contract\\n fn constructor(\\n inputs: pub PrivateContextInputs,\\n signing_pub_key_x: pub Field,\\n signing_pub_key_y: pub Field,\\n ) -> distinct pub abi::PrivateCircuitPublicInputs {\\n let storage = Storage::init();\\n \\n let mut context = PrivateContext::new(inputs, abi::hash_args([signing_pub_key_x, signing_pub_key_y]));\\n \\n let this = context.this_address();\\n let mut pub_key_note = PublicKeyNote::new(signing_pub_key_x, signing_pub_key_y, this);\\n storage.signing_public_key.initialise(&mut context, &mut pub_key_note);\\n \\n emit_encrypted_log(\\n &mut context,\\n this,\\n storage.signing_public_key.storage_slot,\\n get_public_key(this),\\n pub_key_note.serialise(),\\n );\\n\\n context.finish()\\n }\\n\\n // Computes notes hash and nullifier.\\n // Note 1: Needs to be defined by every contract producing logs.\\n // Note 2: Having it in all the contracts gives us the ability to compute the note hash and nullifier differently for different kind of notes.\\n unconstrained fn compute_note_hash_and_nullifier(contract_address: Field, nonce: Field, storage_slot: Field, preimage: [Field; PUBLIC_KEY_NOTE_LEN]) -> [Field; 4] {\\n assert(storage_slot == 1);\\n let note_header = NoteHeader { contract_address, nonce, storage_slot };\\n note_utils::compute_note_hash_and_nullifier(PublicKeyNoteMethods, note_header, preimage)\\n }\\n}\\n","path":"/mnt/user-data/alvaro/aztec-packages/yarn-project/noir-contracts/src/contracts/schnorr_account_contract/src/main"},"3":{"source":"mod poseidon;\\n\\n#[foreign(sha256)]\\nfn sha256<N>(_input : [u8; N]) -> [u8; 32] {}\\n\\n#[foreign(blake2s)]\\nfn blake2s<N>(_input : [u8; N]) -> [u8; 32] {}\\n\\nfn pedersen<N>(input : [Field; N]) -> [Field; 2] {\\n pedersen_with_separator(input, 0)\\n}\\n\\n#[foreign(pedersen)]\\nfn pedersen_with_separator<N>(_input : [Field; N], _separator : u32) -> [Field; 2] {}\\n\\n#[foreign(hash_to_field_128_security)]\\nfn hash_to_field<N>(_input : [Field; N]) -> Field {}\\n\\n#[foreign(keccak256)]\\nfn keccak256<N>(_input : [u8; N], _message_size: u32) -> [u8; 32] {}\\n\\n// mimc-p/p implementation\\n// constants are (publicly generated) random numbers, for instance using keccak as a ROM.\\n// You must use constants generated for the native field\\n// Rounds number should be ~ log(p)/log(exp)\\n// For 254 bit primes, exponent 7 and 91 rounds seems to be recommended\\nfn mimc<N>(x: Field, k: Field, constants: [Field; N], exp : Field) -> Field {\\n //round 0\\n let mut t = x + k;\\n let mut h = t.pow_32(exp);\\n //next rounds\\n for i in 1 .. constants.len() {\\n t = h + k + constants[i];\\n h = t.pow_32(exp);\\n };\\n h + k\\n}\\n\\nglobal MIMC_BN254_ROUNDS = 91;\\n\\n//mimc implementation with hardcoded parameters for BN254 curve.\\nfn mimc_bn254<N>(array: [Field; N]) -> Field {\\n //mimc parameters\\n let exponent = 7;\\n //generated from seed \\"mimc\\" using keccak256 \\n let constants: [Field; MIMC_BN254_ROUNDS] = [\\n 0, \\n 20888961410941983456478427210666206549300505294776164667214940546594746570981,\\n 15265126113435022738560151911929040668591755459209400716467504685752745317193,\\n 8334177627492981984476504167502758309043212251641796197711684499645635709656,\\n 1374324219480165500871639364801692115397519265181803854177629327624133579404,\\n 11442588683664344394633565859260176446561886575962616332903193988751292992472,\\n 2558901189096558760448896669327086721003508630712968559048179091037845349145,\\n 11189978595292752354820141775598510151189959177917284797737745690127318076389,\\n 3262966573163560839685415914157855077211340576201936620532175028036746741754,\\n 17029914891543225301403832095880481731551830725367286980611178737703889171730,\\n 4614037031668406927330683909387957156531244689520944789503628527855167665518,\\n 19647356996769918391113967168615123299113119185942498194367262335168397100658,\\n 5040699236106090655289931820723926657076483236860546282406111821875672148900,\\n 2632385916954580941368956176626336146806721642583847728103570779270161510514,\\n 17691411851977575435597871505860208507285462834710151833948561098560743654671,\\n 11482807709115676646560379017491661435505951727793345550942389701970904563183,\\n 8360838254132998143349158726141014535383109403565779450210746881879715734773,\\n 12663821244032248511491386323242575231591777785787269938928497649288048289525,\\n 3067001377342968891237590775929219083706800062321980129409398033259904188058,\\n 8536471869378957766675292398190944925664113548202769136103887479787957959589,\\n 19825444354178182240559170937204690272111734703605805530888940813160705385792,\\n 16703465144013840124940690347975638755097486902749048533167980887413919317592,\\n 13061236261277650370863439564453267964462486225679643020432589226741411380501,\\n 10864774797625152707517901967943775867717907803542223029967000416969007792571,\\n 10035653564014594269791753415727486340557376923045841607746250017541686319774,\\n 3446968588058668564420958894889124905706353937375068998436129414772610003289,\\n 4653317306466493184743870159523234588955994456998076243468148492375236846006,\\n 8486711143589723036499933521576871883500223198263343024003617825616410932026,\\n 250710584458582618659378487568129931785810765264752039738223488321597070280,\\n 2104159799604932521291371026105311735948154964200596636974609406977292675173,\\n 16313562605837709339799839901240652934758303521543693857533755376563489378839,\\n 6032365105133504724925793806318578936233045029919447519826248813478479197288,\\n 14025118133847866722315446277964222215118620050302054655768867040006542798474,\\n 7400123822125662712777833064081316757896757785777291653271747396958201309118,\\n 1744432620323851751204287974553233986555641872755053103823939564833813704825,\\n 8316378125659383262515151597439205374263247719876250938893842106722210729522,\\n 6739722627047123650704294650168547689199576889424317598327664349670094847386,\\n 21211457866117465531949733809706514799713333930924902519246949506964470524162,\\n 13718112532745211817410303291774369209520657938741992779396229864894885156527,\\n 5264534817993325015357427094323255342713527811596856940387954546330728068658,\\n 18884137497114307927425084003812022333609937761793387700010402412840002189451,\\n 5148596049900083984813839872929010525572543381981952060869301611018636120248,\\n 19799686398774806587970184652860783461860993790013219899147141137827718662674,\\n 19240878651604412704364448729659032944342952609050243268894572835672205984837,\\n 10546185249390392695582524554167530669949955276893453512788278945742408153192,\\n 5507959600969845538113649209272736011390582494851145043668969080335346810411,\\n 18177751737739153338153217698774510185696788019377850245260475034576050820091,\\n 19603444733183990109492724100282114612026332366576932662794133334264283907557,\\n 10548274686824425401349248282213580046351514091431715597441736281987273193140,\\n 1823201861560942974198127384034483127920205835821334101215923769688644479957,\\n 11867589662193422187545516240823411225342068709600734253659804646934346124945,\\n 18718569356736340558616379408444812528964066420519677106145092918482774343613,\\n 10530777752259630125564678480897857853807637120039176813174150229243735996839,\\n 20486583726592018813337145844457018474256372770211860618687961310422228379031,\\n 12690713110714036569415168795200156516217175005650145422920562694422306200486,\\n 17386427286863519095301372413760745749282643730629659997153085139065756667205,\\n 2216432659854733047132347621569505613620980842043977268828076165669557467682,\\n 6309765381643925252238633914530877025934201680691496500372265330505506717193,\\n 20806323192073945401862788605803131761175139076694468214027227878952047793390,\\n 4037040458505567977365391535756875199663510397600316887746139396052445718861,\\n 19948974083684238245321361840704327952464170097132407924861169241740046562673,\\n 845322671528508199439318170916419179535949348988022948153107378280175750024,\\n 16222384601744433420585982239113457177459602187868460608565289920306145389382,\\n 10232118865851112229330353999139005145127746617219324244541194256766741433339,\\n 6699067738555349409504843460654299019000594109597429103342076743347235369120,\\n 6220784880752427143725783746407285094967584864656399181815603544365010379208,\\n 6129250029437675212264306655559561251995722990149771051304736001195288083309,\\n 10773245783118750721454994239248013870822765715268323522295722350908043393604,\\n 4490242021765793917495398271905043433053432245571325177153467194570741607167,\\n 19596995117319480189066041930051006586888908165330319666010398892494684778526,\\n 837850695495734270707668553360118467905109360511302468085569220634750561083,\\n 11803922811376367215191737026157445294481406304781326649717082177394185903907,\\n 10201298324909697255105265958780781450978049256931478989759448189112393506592,\\n 13564695482314888817576351063608519127702411536552857463682060761575100923924,\\n 9262808208636973454201420823766139682381973240743541030659775288508921362724,\\n 173271062536305557219323722062711383294158572562695717740068656098441040230,\\n 18120430890549410286417591505529104700901943324772175772035648111937818237369,\\n 20484495168135072493552514219686101965206843697794133766912991150184337935627,\\n 19155651295705203459475805213866664350848604323501251939850063308319753686505,\\n 11971299749478202793661982361798418342615500543489781306376058267926437157297,\\n 18285310723116790056148596536349375622245669010373674803854111592441823052978,\\n 7069216248902547653615508023941692395371990416048967468982099270925308100727,\\n 6465151453746412132599596984628739550147379072443683076388208843341824127379,\\n 16143532858389170960690347742477978826830511669766530042104134302796355145785,\\n 19362583304414853660976404410208489566967618125972377176980367224623492419647,\\n 1702213613534733786921602839210290505213503664731919006932367875629005980493,\\n 10781825404476535814285389902565833897646945212027592373510689209734812292327,\\n 4212716923652881254737947578600828255798948993302968210248673545442808456151,\\n 7594017890037021425366623750593200398174488805473151513558919864633711506220,\\n 18979889247746272055963929241596362599320706910852082477600815822482192194401,\\n 13602139229813231349386885113156901793661719180900395818909719758150455500533,\\n ];\\n\\n let mut r = 0;\\n for elem in array {\\n let h = mimc(elem, r, constants, exponent);\\n r = r + elem + h;\\n }\\n r\\n}\\n","path":"std/hash"},"18":{"source":"\\nimpl Field {\\n #[builtin(to_le_bits)]\\n fn to_le_bits(_x : Field, _bit_size: u32) -> [u1] {}\\n #[builtin(to_be_bits)]\\n fn to_be_bits(_x : Field, _bit_size: u32) -> [u1] {}\\n\\n fn to_le_bytes(x : Field, byte_size: u32) -> [u8] {\\n x.to_le_radix(256, byte_size)\\n }\\n fn to_be_bytes(x : Field, byte_size: u32) -> [u8] {\\n x.to_be_radix(256, byte_size)\\n }\\n\\n #[builtin(to_le_radix)]\\n //decompose _x into a _result_len vector over the _radix basis\\n //_radix must be less than 256\\n fn to_le_radix(_x : Field, _radix: u32, _result_len: u32) -> [u8] {}\\n #[builtin(to_be_radix)]\\n fn to_be_radix(_x : Field, _radix: u32, _result_len: u32) -> [u8] {}\\n\\n // Returns self to the power of the given exponent value.\\n // Caution: we assume the exponent fits into 32 bits\\n // using a bigger bit size impacts negatively the performance and should be done only if the exponent does not fit in 32 bits\\n fn pow_32(self, exponent: Field) -> Field {\\n let mut r: Field = 1;\\n let b = exponent.to_le_bits(32);\\n\\n for i in 1..33 {\\n r *= r;\\n r = (b[32-i] as Field) * (r * self) + (1 - b[32-i] as Field) * r;\\n }\\n r\\n }\\n\\n // Parity of (prime) Field element, i.e. sgn0(x mod p) = 0 if x ∈ {0, ..., p-1} is even, otherwise sgn0(x mod p) = 1.\\n fn sgn0(self) -> u1 {\\n self as u1\\n }\\n}\\n\\n#[builtin(modulus_num_bits)]\\nfn modulus_num_bits() -> Field {}\\n\\n#[builtin(modulus_be_bits)]\\nfn modulus_be_bits() -> [u1] {}\\n\\n#[builtin(modulus_le_bits)]\\nfn modulus_le_bits() -> [u1] {}\\n\\n#[builtin(modulus_be_bytes)]\\nfn modulus_be_bytes() -> [u8] {}\\n\\n#[builtin(modulus_le_bytes)]\\nfn modulus_le_bytes() -> [u8] {}\\n","path":"std/field"},"31":{"source":"use crate::constants_gen::{\\n RETURN_VALUES_LENGTH,\\n MAX_READ_REQUESTS_PER_CALL,\\n MAX_NEW_COMMITMENTS_PER_CALL,\\n MAX_NEW_NULLIFIERS_PER_CALL,\\n MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL,\\n MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL,\\n MAX_NEW_L2_TO_L1_MSGS_PER_CALL,\\n NUM_FIELDS_PER_SHA256,\\n MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL,\\n MAX_PUBLIC_DATA_READS_PER_CALL,\\n GENERATOR_INDEX__FUNCTION_ARGS,\\n HISTORIC_BLOCK_DATA_LENGTH,\\n CONTRACT_DEPLOYMENT_DATA_LENGTH,\\n CALL_CONTEXT_LENGTH,\\n PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH,\\n PRIVATE_CIRCUIT_PUBLIC_INPUTS_HASH_INPUT_LENGTH,\\n CONTRACT_STORAGE_UPDATE_REQUEST_LENGTH,\\n CONTRACT_STORAGE_READ_LENGTH,\\n PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH,\\n PUBLIC_CIRCUIT_PUBLIC_INPUTS_HASH_INPUT_LENGTH,\\n GENERATOR_INDEX__PUBLIC_CIRCUIT_PUBLIC_INPUTS,\\n GENERATOR_INDEX__FUNCTION_DATA,\\n GENERATOR_INDEX__PUBLIC_DATA_READ,\\n GENERATOR_INDEX__PUBLIC_DATA_UPDATE_REQUEST,\\n GENERATOR_INDEX__CALL_CONTEXT,\\n GENERATOR_INDEX__PRIVATE_CIRCUIT_PUBLIC_INPUTS,\\n GENERATOR_INDEX__CONTRACT_DEPLOYMENT_DATA,\\n};\\n\\nuse crate::oracle::debug_log;\\nuse crate::types::vec::BoundedVec;\\nuse crate::types::point::Point;\\n\\nstruct PrivateGlobalVariables {\\n chain_id: Field,\\n version: Field,\\n}\\n\\nimpl PrivateGlobalVariables {\\n fn serialize(self) -> [Field; 2] {\\n [self.chain_id, self.version]\\n }\\n}\\n\\nstruct PublicGlobalVariables {\\n chain_id: Field,\\n version: Field,\\n block_number: Field,\\n timestamp: Field,\\n}\\n\\nimpl PublicGlobalVariables {\\n fn serialize(self) -> [Field; 4] {\\n [self.chain_id, self.version, self.block_number, self.timestamp]\\n }\\n}\\n\\nstruct ContractDeploymentData {\\n deployer_public_key: Point,\\n constructor_vk_hash : Field,\\n function_tree_root : Field,\\n contract_address_salt : Field,\\n portal_contract_address : Field,\\n}\\n\\nimpl ContractDeploymentData {\\n fn serialize(self) -> [Field; CONTRACT_DEPLOYMENT_DATA_LENGTH] {\\n [\\n self.deployer_public_key.x,\\n self.deployer_public_key.y,\\n self.constructor_vk_hash,\\n self.function_tree_root,\\n self.contract_address_salt,\\n self.portal_contract_address,\\n ]\\n }\\n\\n fn hash(self) -> Field {\\n dep::std::hash::pedersen_with_separator(self.serialize(), GENERATOR_INDEX__CONTRACT_DEPLOYMENT_DATA)[0]\\n }\\n}\\n\\n// PrivateContextInputs are expected to be provided to each private function\\nstruct PrivateContextInputs {\\n call_context : CallContext,\\n block_data: HistoricBlockData,\\n\\n contract_deployment_data: ContractDeploymentData,\\n\\n private_global_variables: PrivateGlobalVariables,\\n}\\n\\n// PublicContextInputs are expected to be provided to each public function\\nstruct PublicContextInputs {\\n call_context: CallContext,\\n block_data: HistoricBlockData,\\n\\n public_global_variables: PublicGlobalVariables,\\n}\\n\\nstruct CallContext {\\n msg_sender : Field,\\n storage_contract_address : Field,\\n portal_contract_address : Field,\\n\\n is_delegate_call : bool,\\n is_static_call : bool,\\n is_contract_deployment: bool,\\n}\\n\\nimpl CallContext {\\n fn serialize(self) -> [Field; CALL_CONTEXT_LENGTH] {\\n [\\n self.msg_sender,\\n self.storage_contract_address,\\n self.portal_contract_address,\\n self.is_delegate_call as Field,\\n self.is_static_call as Field,\\n self.is_contract_deployment as Field,\\n ]\\n }\\n\\n fn hash(self) -> Field {\\n dep::std::hash::pedersen_with_separator(self.serialize(), GENERATOR_INDEX__CALL_CONTEXT)[0]\\n }\\n}\\n\\nstruct HistoricBlockData {\\n private_data_tree_root : Field,\\n nullifier_tree_root : Field,\\n contract_tree_root : Field,\\n l1_to_l2_messages_tree_root : Field,\\n blocks_tree_root: Field,\\n public_data_tree_root: Field,\\n global_variables_hash: Field,\\n}\\n\\nimpl HistoricBlockData {\\n // NOTE: this order must match the order in `private_circuit_public_inputs.hpp`\\n fn serialize(self) -> [Field; HISTORIC_BLOCK_DATA_LENGTH] {\\n [\\n self.private_data_tree_root,\\n self.nullifier_tree_root,\\n self.contract_tree_root,\\n self.l1_to_l2_messages_tree_root,\\n self.blocks_tree_root,\\n self.public_data_tree_root,\\n self.global_variables_hash,\\n ]\\n }\\n\\n fn empty() -> Self {\\n Self { private_data_tree_root: 0, nullifier_tree_root: 0, contract_tree_root: 0, l1_to_l2_messages_tree_root: 0, blocks_tree_root: 0, public_data_tree_root: 0, global_variables_hash: 0 }\\n }\\n}\\n\\nstruct FunctionData {\\n function_selector: Field,\\n is_internal: bool,\\n is_private: bool,\\n is_constructor: bool,\\n}\\n\\nimpl FunctionData {\\n fn hash(self) -> Field {\\n dep::std::hash::pedersen_with_separator([\\n self.function_selector,\\n self.is_internal as Field,\\n self.is_private as Field,\\n self.is_constructor as Field,\\n ], GENERATOR_INDEX__FUNCTION_DATA)[0]\\n }\\n}\\n\\nstruct PrivateCircuitPublicInputs {\\n call_context: CallContext,\\n args_hash: Field,\\n return_values: [Field; RETURN_VALUES_LENGTH],\\n read_requests: [Field; crate::abi::MAX_READ_REQUESTS_PER_CALL],\\n new_commitments: [Field; MAX_NEW_COMMITMENTS_PER_CALL],\\n new_nullifiers: [Field; MAX_NEW_NULLIFIERS_PER_CALL],\\n nullified_commitments: [Field; MAX_NEW_NULLIFIERS_PER_CALL],\\n private_call_stack: [Field; MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL],\\n public_call_stack: [Field; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL],\\n new_l2_to_l1_msgs: [Field; MAX_NEW_L2_TO_L1_MSGS_PER_CALL],\\n // Explore introducing a new type like uint256 (similar to Point), so it\'s more explicit that\\n // we\'re talking about a single number backed by two field elements.\\n encrypted_logs_hash: [Field; NUM_FIELDS_PER_SHA256],\\n unencrypted_logs_hash: [Field; NUM_FIELDS_PER_SHA256],\\n encrypted_log_preimages_length: Field,\\n unencrypted_log_preimages_length: Field,\\n block_data: HistoricBlockData,\\n contract_deployment_data: ContractDeploymentData,\\n chain_id: Field,\\n version: Field,\\n}\\n\\nimpl PrivateCircuitPublicInputs {\\n fn hash(self) -> Field {\\n let mut fields: BoundedVec<Field, PRIVATE_CIRCUIT_PUBLIC_INPUTS_HASH_INPUT_LENGTH> = BoundedVec::new(0); \\n fields.push(self.call_context.hash());\\n fields.push(self.args_hash);\\n fields.push_array(self.return_values);\\n fields.push_array(self.read_requests);\\n fields.push_array(self.new_commitments);\\n fields.push_array(self.new_nullifiers);\\n fields.push_array(self.nullified_commitments);\\n fields.push_array(self.private_call_stack);\\n fields.push_array(self.public_call_stack);\\n fields.push_array(self.new_l2_to_l1_msgs);\\n fields.push_array(self.encrypted_logs_hash);\\n fields.push_array(self.unencrypted_logs_hash);\\n fields.push(self.encrypted_log_preimages_length);\\n fields.push(self.unencrypted_log_preimages_length);\\n fields.push_array(self.block_data.serialize());\\n fields.push(self.contract_deployment_data.hash());\\n fields.push(self.chain_id);\\n fields.push(self.version);\\n\\n dep::std::hash::pedersen_with_separator(fields.storage, GENERATOR_INDEX__PRIVATE_CIRCUIT_PUBLIC_INPUTS)[0]\\n }\\n\\n fn serialize(self) -> [Field; PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH] {\\n let mut fields: BoundedVec<Field, PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH> = BoundedVec::new(0); \\n fields.push_array(self.call_context.serialize());\\n fields.push(self.args_hash);\\n fields.push_array(self.return_values);\\n fields.push_array(self.read_requests);\\n fields.push_array(self.new_commitments);\\n fields.push_array(self.new_nullifiers);\\n fields.push_array(self.private_call_stack);\\n fields.push_array(self.public_call_stack);\\n fields.push_array(self.new_l2_to_l1_msgs);\\n fields.push_array(self.encrypted_logs_hash);\\n fields.push_array(self.unencrypted_logs_hash);\\n fields.push(self.encrypted_log_preimages_length);\\n fields.push(self.unencrypted_log_preimages_length);\\n fields.push_array(self.block_data.serialize());\\n fields.push_array(self.contract_deployment_data.serialize());\\n fields.push(self.chain_id);\\n fields.push(self.version);\\n fields.storage\\n }\\n}\\n\\nstruct ContractStorageRead {\\n storage_slot: Field,\\n value: Field,\\n}\\n\\nimpl ContractStorageRead {\\n fn serialize(self) -> [Field; CONTRACT_STORAGE_READ_LENGTH] {\\n [self.storage_slot, self.value]\\n }\\n\\n fn hash(self) -> Field {\\n dep::std::hash::pedersen_with_separator(self.serialize(), GENERATOR_INDEX__PUBLIC_DATA_READ)[0]\\n }\\n\\n fn empty() -> Self {\\n Self { storage_slot: 0, value: 0 }\\n }\\n}\\n\\nstruct ContractStorageUpdateRequest {\\n storage_slot: Field,\\n old_value: Field,\\n new_value: Field,\\n}\\n\\nimpl ContractStorageUpdateRequest {\\n fn serialize(self) -> [Field; CONTRACT_STORAGE_UPDATE_REQUEST_LENGTH] {\\n [self.storage_slot, self.old_value, self.new_value]\\n }\\n\\n fn hash(self) -> Field {\\n dep::std::hash::pedersen_with_separator(self.serialize(), GENERATOR_INDEX__PUBLIC_DATA_UPDATE_REQUEST)[0]\\n }\\n\\n fn empty() -> Self {\\n Self { storage_slot: 0, old_value: 0, new_value: 0 }\\n }\\n}\\n\\n\\nstruct PublicCircuitPublicInputs {\\n call_context: CallContext,\\n args_hash: Field,\\n return_values: [Field; RETURN_VALUES_LENGTH],\\n contract_storage_update_requests: [ContractStorageUpdateRequest; MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL],\\n contract_storage_read: [ContractStorageRead; MAX_PUBLIC_DATA_READS_PER_CALL],\\n public_call_stack: [Field; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL],\\n new_commitments: [Field; MAX_NEW_COMMITMENTS_PER_CALL],\\n new_nullifiers: [Field; crate::abi::MAX_NEW_NULLIFIERS_PER_CALL],\\n new_l2_to_l1_msgs: [Field; crate::abi::MAX_NEW_L2_TO_L1_MSGS_PER_CALL],\\n unencrypted_logs_hash: [Field; NUM_FIELDS_PER_SHA256],\\n unencrypted_log_preimages_length: Field,\\n block_data: HistoricBlockData,\\n prover_address: Field,\\n\\n // TODO: include globals in here and check them elsewhere\\n // https://github.com/AztecProtocol/aztec-packages/issues/1567\\n}\\n\\nimpl PublicCircuitPublicInputs {\\n \\n fn hash(self) -> Field {\\n let mut inputs: BoundedVec<Field, PUBLIC_CIRCUIT_PUBLIC_INPUTS_HASH_INPUT_LENGTH> = BoundedVec::new(0);\\n inputs.push(self.call_context.hash());\\n inputs.push(self.args_hash);\\n inputs.push_array(self.return_values);\\n for i in 0..MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL {\\n inputs.push(self.contract_storage_update_requests[i].hash());\\n }\\n for i in 0..MAX_PUBLIC_DATA_READS_PER_CALL {\\n inputs.push(self.contract_storage_read[i].hash());\\n }\\n inputs.push_array(self.public_call_stack);\\n inputs.push_array(self.new_commitments);\\n inputs.push_array(self.new_nullifiers);\\n inputs.push_array(self.new_l2_to_l1_msgs);\\n\\n // We do not include block_data since it\'s not in the cpp hash\\n\\n inputs.push_array(self.unencrypted_logs_hash);\\n inputs.push(self.unencrypted_log_preimages_length);\\n inputs.push_array(self.block_data.serialize()); // see https://github.com/AztecProtocol/aztec-packages/issues/1473\\n inputs.push(self.prover_address);\\n\\n dep::std::hash::pedersen_with_separator(inputs.storage, GENERATOR_INDEX__PUBLIC_CIRCUIT_PUBLIC_INPUTS)[0]\\n }\\n\\n fn serialize(self) -> [Field; PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH] {\\n let mut fields: BoundedVec<Field, PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH> = BoundedVec::new(0); \\n fields.push_array(self.call_context.serialize()); \\n fields.push(self.args_hash);\\n fields.push_array(self.return_values);\\n for i in 0..MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL {\\n fields.push_array(self.contract_storage_update_requests[i].serialize());\\n }\\n for i in 0..MAX_PUBLIC_DATA_READS_PER_CALL {\\n fields.push_array(self.contract_storage_read[i].serialize());\\n }\\n fields.push_array(self.public_call_stack);\\n fields.push_array(self.new_commitments);\\n fields.push_array(self.new_nullifiers);\\n fields.push_array(self.new_l2_to_l1_msgs);\\n fields.push_array(self.unencrypted_logs_hash);\\n fields.push(self.unencrypted_log_preimages_length);\\n fields.push_array(self.block_data.serialize());\\n fields.push(self.prover_address);\\n fields.storage\\n }\\n}\\n\\nglobal ARGS_HASH_CHUNK_LENGTH: u32 = 32;\\nglobal ARGS_HASH_CHUNK_COUNT: u32 = 16;\\n\\nfn hash_args<N>(args: [Field; N]) -> Field {\\n if args.len() == 0 {\\n 0\\n } else {\\n let mut chunks_hashes = [0; ARGS_HASH_CHUNK_COUNT];\\n for i in 0..ARGS_HASH_CHUNK_COUNT {\\n let mut chunk_hash = 0;\\n let start_chunk_index = i * ARGS_HASH_CHUNK_LENGTH;\\n if start_chunk_index < (args.len() as u32) {\\n let mut chunk_args = [0; ARGS_HASH_CHUNK_LENGTH];\\n for j in 0..ARGS_HASH_CHUNK_LENGTH {\\n let item_index = i * ARGS_HASH_CHUNK_LENGTH + j;\\n if item_index < (args.len() as u32) {\\n chunk_args[j] = args[item_index];\\n }\\n }\\n chunk_hash = dep::std::hash::pedersen_with_separator(chunk_args, GENERATOR_INDEX__FUNCTION_ARGS)[0];\\n }\\n chunks_hashes[i] = chunk_hash;\\n }\\n dep::std::hash::pedersen_with_separator(chunks_hashes, GENERATOR_INDEX__FUNCTION_ARGS)[0]\\n }\\n}\\n","path":"/mnt/user-data/alvaro/aztec-packages/yarn-project/noir-libs/noir-aztec/src/abi"},"32":{"source":"use crate::constants_gen::{\\n EMPTY_NULLIFIED_COMMITMENT,\\n MAX_NEW_COMMITMENTS_PER_CALL,\\n MAX_NEW_L2_TO_L1_MSGS_PER_CALL,\\n MAX_NEW_NULLIFIERS_PER_CALL,\\n MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL,\\n MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL,\\n MAX_PUBLIC_DATA_READS_PER_CALL,\\n MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL,\\n MAX_READ_REQUESTS_PER_CALL,\\n NUM_FIELDS_PER_SHA256,\\n RETURN_VALUES_LENGTH,\\n};\\n\\nuse crate::abi;\\n\\nuse crate::abi::{\\n hash_args,\\n CallContext,\\n ContractDeploymentData,\\n HistoricBlockData,\\n FunctionData,\\n PrivateCircuitPublicInputs,\\n PublicCircuitPublicInputs,\\n};\\n\\n// TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\\n// use dep::std::collections::vec::Vec;\\n\\n// l1 to l2 messaging\\nuse crate::messaging::process_l1_to_l2_message;\\nuse crate::private_call_stack_item::PrivateCallStackItem;\\nuse crate::public_call_stack_item::PublicCallStackItem;\\n\\nuse crate::types::{\\n vec::BoundedVec,\\n point::Point,\\n};\\n\\nuse crate::utils::arr_copy_slice;\\n\\nuse crate::oracle::{\\n arguments,\\n call_private_function::call_private_function_internal,\\n public_call::call_public_function_internal,\\n enqueue_public_function_call::enqueue_public_function_call_internal,\\n context::get_portal_address,\\n};\\n\\n\\n// When finished, one can call .finish() to convert back to the abi\\nstruct PrivateContext {\\n inputs: abi::PrivateContextInputs,\\n\\n args_hash : Field,\\n return_values : BoundedVec<Field, RETURN_VALUES_LENGTH>,\\n\\n read_requests: BoundedVec<Field, MAX_READ_REQUESTS_PER_CALL>,\\n\\n new_commitments: BoundedVec<Field, MAX_NEW_COMMITMENTS_PER_CALL>,\\n new_nullifiers: BoundedVec<Field, MAX_NEW_NULLIFIERS_PER_CALL>,\\n nullified_commitments: BoundedVec<Field, MAX_NEW_NULLIFIERS_PER_CALL>,\\n\\n private_call_stack : BoundedVec<Field, MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL>,\\n public_call_stack : BoundedVec<Field, MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL>,\\n new_l2_to_l1_msgs : BoundedVec<Field, MAX_NEW_L2_TO_L1_MSGS_PER_CALL>,\\n\\n block_data: HistoricBlockData,\\n\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\\n // encrypted_logs_preimages: Vec<Field>,\\n // unencrypted_logs_preimages: Vec<Field>,\\n}\\n\\nimpl PrivateContext {\\n fn new(inputs: abi::PrivateContextInputs, args_hash: Field) -> PrivateContext {\\n PrivateContext {\\n inputs: inputs,\\n\\n args_hash: args_hash,\\n return_values: BoundedVec::new(0),\\n\\n read_requests: BoundedVec::new(0),\\n\\n new_commitments: BoundedVec::new(0),\\n new_nullifiers: BoundedVec::new(0),\\n nullified_commitments: BoundedVec::new(0),\\n\\n block_data: inputs.block_data,\\n\\n private_call_stack: BoundedVec::new(0),\\n public_call_stack: BoundedVec::new(0),\\n new_l2_to_l1_msgs: BoundedVec::new(0),\\n\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\\n // encrypted_logs_preimages: Vec::new(),\\n // unencrypted_logs_preimages: Vec::new(),\\n }\\n }\\n\\n fn msg_sender(self) -> Field {\\n self.inputs.call_context.msg_sender\\n }\\n\\n fn this_address(self) -> Field {\\n self.inputs.call_context.storage_contract_address\\n }\\n\\n fn this_portal_address(self) -> Field {\\n self.inputs.call_context.portal_contract_address\\n }\\n\\n fn chain_id(self) -> Field {\\n self.inputs.private_global_variables.chain_id\\n }\\n\\n fn version(self) -> Field {\\n self.inputs.private_global_variables.version\\n }\\n\\n fn finish(self) -> abi::PrivateCircuitPublicInputs {\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\\n let encrypted_logs_hash = [0; NUM_FIELDS_PER_SHA256];\\n let unencrypted_logs_hash = [0; NUM_FIELDS_PER_SHA256];\\n let encrypted_log_preimages_length = 0;\\n let unencrypted_log_preimages_length = 0;\\n\\n let priv_circuit_pub_inputs = abi::PrivateCircuitPublicInputs {\\n call_context: self.inputs.call_context,\\n args_hash: self.args_hash,\\n return_values: self.return_values.storage,\\n read_requests: self.read_requests.storage,\\n new_commitments: self.new_commitments.storage,\\n new_nullifiers: self.new_nullifiers.storage,\\n nullified_commitments: self.nullified_commitments.storage,\\n private_call_stack: self.private_call_stack.storage,\\n public_call_stack: self.public_call_stack.storage,\\n new_l2_to_l1_msgs: self.new_l2_to_l1_msgs.storage,\\n encrypted_logs_hash: encrypted_logs_hash,\\n unencrypted_logs_hash: unencrypted_logs_hash,\\n encrypted_log_preimages_length: encrypted_log_preimages_length,\\n unencrypted_log_preimages_length: unencrypted_log_preimages_length,\\n block_data: self.block_data,\\n contract_deployment_data: self.inputs.contract_deployment_data,\\n chain_id: self.inputs.private_global_variables.chain_id,\\n version: self.inputs.private_global_variables.version,\\n };\\n priv_circuit_pub_inputs\\n }\\n\\n fn push_read_request(&mut self, read_request: Field) {\\n self.read_requests.push(read_request);\\n }\\n\\n fn push_new_note_hash(&mut self, note_hash: Field) {\\n self.new_commitments.push(note_hash);\\n }\\n\\n fn push_new_nullifier(&mut self, nullifier: Field, nullified_commitment: Field) {\\n self.new_nullifiers.push(nullifier);\\n self.nullified_commitments.push(nullified_commitment);\\n }\\n\\n fn message_portal(&mut self, content: Field) {\\n self.new_l2_to_l1_msgs.push(content);\\n }\\n\\n // PrivateContextInputs must be temporarily passed in to prevent too many unknowns\\n // Note this returns self to get around an issue where mutable structs do not maintain mutations unless reassigned\\n fn consume_l1_to_l2_message(&mut self, inputs: abi::PrivateContextInputs, msg_key: Field, content: Field, secret: Field) {\\n let nullifier = process_l1_to_l2_message(inputs.block_data.l1_to_l2_messages_tree_root, inputs.call_context.storage_contract_address, msg_key, content, secret);\\n\\n // Push nullifier (and the \\"commitment\\" corresponding to this can be \\"empty\\")\\n self.push_new_nullifier(nullifier, EMPTY_NULLIFIED_COMMITMENT)\\n }\\n\\n fn accumulate_encrypted_logs<N>(&mut self, log: [Field; N]) {\\n let _void1 = self.inputs;\\n let _void2 = log;\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\\n }\\n\\n fn accumulate_unencrypted_logs<T>(&mut self, log: T) {\\n let _void1 = self.inputs;\\n let _void2 = log;\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\\n }\\n\\n fn call_private_function<ARGS_COUNT>(\\n &mut self,\\n contract_address: Field, \\n function_selector: Field, \\n args: [Field; ARGS_COUNT]\\n ) -> [Field; RETURN_VALUES_LENGTH] {\\n let args_hash = hash_args(args);\\n assert(args_hash == arguments::pack_arguments(args));\\n self.call_private_function_with_packed_args(contract_address, function_selector, args_hash)\\n }\\n\\n fn call_private_function_no_args(\\n &mut self,\\n contract_address: Field, \\n function_selector: Field, \\n ) -> [Field; RETURN_VALUES_LENGTH] {\\n self.call_private_function_with_packed_args(contract_address, function_selector, 0)\\n }\\n\\n fn call_private_function_with_packed_args(\\n &mut self,\\n contract_address: Field,\\n function_selector: Field,\\n args_hash: Field\\n ) -> [Field; RETURN_VALUES_LENGTH] {\\n let fields = call_private_function_internal(\\n contract_address, \\n function_selector, \\n args_hash\\n );\\n let item = PrivateCallStackItem {\\n contract_address: fields[0],\\n function_data: FunctionData {\\n function_selector: fields[1],\\n is_internal: fields[2] as bool,\\n is_private: fields[3] as bool,\\n is_constructor: fields[4] as bool,\\n },\\n public_inputs: PrivateCircuitPublicInputs {\\n call_context: CallContext {\\n msg_sender : fields[5],\\n storage_contract_address : fields[6],\\n portal_contract_address : fields[7],\\n \\n is_delegate_call : fields[8] as bool,\\n is_static_call : fields[9] as bool,\\n is_contract_deployment: fields[10] as bool,\\n },\\n // TODO handle the offsets as a variable incremented during extraction?\\n args_hash: fields[11],\\n return_values: arr_copy_slice(fields, [0; RETURN_VALUES_LENGTH], 12),\\n read_requests: arr_copy_slice(fields, [0; MAX_READ_REQUESTS_PER_CALL], 16),\\n new_commitments: arr_copy_slice(fields, [0; MAX_NEW_COMMITMENTS_PER_CALL], 20),\\n new_nullifiers: arr_copy_slice(fields, [0; MAX_NEW_NULLIFIERS_PER_CALL], 24),\\n nullified_commitments: arr_copy_slice(fields, [0; MAX_NEW_NULLIFIERS_PER_CALL], 28),\\n private_call_stack: arr_copy_slice(fields, [0; MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL], 32),\\n public_call_stack: arr_copy_slice(fields, [0; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL], 36),\\n new_l2_to_l1_msgs: arr_copy_slice(fields, [0; MAX_NEW_L2_TO_L1_MSGS_PER_CALL], 40),\\n encrypted_logs_hash: arr_copy_slice(fields, [0; NUM_FIELDS_PER_SHA256], 42),\\n unencrypted_logs_hash: arr_copy_slice(fields, [0; NUM_FIELDS_PER_SHA256], 44),\\n encrypted_log_preimages_length: fields[46],\\n unencrypted_log_preimages_length: fields[47],\\n block_data: HistoricBlockData {\\n // Must match order in `private_circuit_public_inputs.hpp`\\n private_data_tree_root : fields[48],\\n nullifier_tree_root : fields[49],\\n contract_tree_root : fields[50],\\n l1_to_l2_messages_tree_root : fields[51],\\n blocks_tree_root : fields[52],\\n public_data_tree_root: fields[53],\\n global_variables_hash: fields[54],\\n },\\n contract_deployment_data: ContractDeploymentData {\\n deployer_public_key: Point::new(fields[55], fields[56]),\\n constructor_vk_hash : fields[57],\\n function_tree_root : fields[58],\\n contract_address_salt : fields[59],\\n portal_contract_address : fields[60],\\n },\\n chain_id: fields[61],\\n version: fields[62],\\n },\\n is_execution_request: fields[63] as bool,\\n };\\n assert(contract_address == item.contract_address);\\n assert(function_selector == item.function_data.function_selector);\\n\\n assert(args_hash == item.public_inputs.args_hash);\\n\\n assert(item.is_execution_request == false);\\n\\n // Assert that the call context of the enqueued call generated by the oracle matches our request.\\n // We are issuing a regular call which is not delegate, static, or deployment. We also constrain\\n // the msg_sender in the nested call to be equal to our address, and the execution context address\\n // for the nested call to be equal to the address we actually called.\\n assert(item.public_inputs.call_context.is_delegate_call == false);\\n assert(item.public_inputs.call_context.is_static_call == false);\\n assert(item.public_inputs.call_context.is_contract_deployment == false);\\n assert(item.public_inputs.call_context.msg_sender == self.inputs.call_context.storage_contract_address);\\n assert(item.public_inputs.call_context.storage_contract_address == contract_address);\\n\\n self.private_call_stack.push(item.hash());\\n\\n item.public_inputs.return_values\\n }\\n\\n fn call_public_function<ARGS_COUNT>(\\n &mut self,\\n contract_address: Field, \\n function_selector: Field, \\n args: [Field; ARGS_COUNT]\\n ) {\\n let args_hash = hash_args(args);\\n assert(args_hash == arguments::pack_arguments(args));\\n self.call_public_function_with_packed_args(contract_address, function_selector, args_hash)\\n }\\n\\n fn call_public_function_no_args(\\n &mut self,\\n contract_address: Field, \\n function_selector: Field,\\n ) {\\n self.call_public_function_with_packed_args(contract_address, function_selector, 0)\\n }\\n\\n fn call_public_function_with_packed_args(\\n &mut self,\\n contract_address: Field,\\n function_selector: Field,\\n args_hash: Field\\n ) {\\n let fields = enqueue_public_function_call_internal(\\n contract_address, \\n function_selector, \\n args_hash\\n );\\n let item = PublicCallStackItem {\\n contract_address: fields[0],\\n function_data: FunctionData {\\n function_selector: fields[1],\\n is_internal: fields[2] as bool,\\n is_private: fields[3] as bool,\\n is_constructor: fields[4] as bool,\\n },\\n public_inputs: PublicCircuitPublicInputs {\\n call_context: CallContext {\\n msg_sender : fields[5],\\n storage_contract_address : fields[6],\\n portal_contract_address : fields[7],\\n \\n is_delegate_call : fields[8] as bool,\\n is_static_call : fields[9] as bool,\\n is_contract_deployment: fields[10] as bool,\\n },\\n args_hash: fields[11],\\n return_values: [0; RETURN_VALUES_LENGTH],\\n contract_storage_update_requests: [ContractStorageUpdateRequest::empty(); MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL],\\n contract_storage_read: [ContractStorageRead::empty(); MAX_PUBLIC_DATA_READS_PER_CALL],\\n public_call_stack: [0; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL],\\n new_commitments: [0; MAX_NEW_COMMITMENTS_PER_CALL],\\n new_nullifiers: [0; MAX_NEW_NULLIFIERS_PER_CALL],\\n new_l2_to_l1_msgs:[0; MAX_NEW_L2_TO_L1_MSGS_PER_CALL],\\n unencrypted_logs_hash:[0; NUM_FIELDS_PER_SHA256],\\n unencrypted_log_preimages_length: 0,\\n block_data: HistoricBlockData::empty(),\\n prover_address: 0,\\n },\\n is_execution_request: true,\\n };\\n\\n assert(contract_address == item.contract_address);\\n assert(function_selector == item.function_data.function_selector);\\n \\n assert(args_hash == item.public_inputs.args_hash);\\n\\n // Assert that the call context of the enqueued call generated by the oracle matches our request.\\n // We are issuing a regular call which is not delegate, static, or deployment. We also constrain\\n // the msg_sender in the nested call to be equal to our address, and the execution context address\\n // for the nested call to be equal to the address we actually called.\\n assert(item.public_inputs.call_context.is_delegate_call == false);\\n assert(item.public_inputs.call_context.is_static_call == false);\\n assert(item.public_inputs.call_context.is_contract_deployment == false);\\n assert(item.public_inputs.call_context.msg_sender == self.inputs.call_context.storage_contract_address);\\n assert(item.public_inputs.call_context.storage_contract_address == contract_address);\\n\\n self.public_call_stack.push(item.hash());\\n }\\n}\\n\\nuse crate::abi::{\\n ContractStorageRead,\\n ContractStorageUpdateRequest\\n};\\n\\nstruct PublicContext {\\n inputs: abi::PublicContextInputs,\\n\\n args_hash : Field,\\n return_values : BoundedVec<Field, RETURN_VALUES_LENGTH>,\\n\\n contract_storage_update_requests: BoundedVec<ContractStorageUpdateRequest, MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL>,\\n contract_storage_read: BoundedVec<ContractStorageRead, MAX_PUBLIC_DATA_READS_PER_CALL>,\\n public_call_stack: BoundedVec<Field, MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL>,\\n\\n new_commitments: BoundedVec<Field, MAX_NEW_COMMITMENTS_PER_CALL>,\\n new_nullifiers: BoundedVec<Field, crate::abi::MAX_NEW_NULLIFIERS_PER_CALL>,\\n\\n new_l2_to_l1_msgs: BoundedVec<Field, crate::abi::MAX_NEW_L2_TO_L1_MSGS_PER_CALL>,\\n\\n unencrypted_logs_hash: BoundedVec<Field, NUM_FIELDS_PER_SHA256>,\\n unencrypted_logs_preimages_length: Field,\\n\\n block_data: HistoricBlockData,\\n prover_address: Field,\\n}\\n\\nimpl PublicContext {\\n fn new(inputs: abi::PublicContextInputs, args_hash: Field) -> PublicContext {\\n let empty_storage_read = ContractStorageRead::empty();\\n let empty_storage_update = ContractStorageUpdateRequest::empty();\\n PublicContext {\\n inputs: inputs,\\n\\n args_hash: args_hash,\\n return_values: BoundedVec::new(0),\\n\\n contract_storage_update_requests: BoundedVec::new(empty_storage_update),\\n contract_storage_read: BoundedVec::new(empty_storage_read),\\n public_call_stack: BoundedVec::new(0),\\n\\n new_commitments: BoundedVec::new(0),\\n new_nullifiers: BoundedVec::new(0),\\n\\n new_l2_to_l1_msgs: BoundedVec::new(0),\\n\\n \\n unencrypted_logs_hash: BoundedVec::new(0),\\n unencrypted_logs_preimages_length: 0,\\n\\n block_data: inputs.block_data,\\n prover_address: 0,\\n\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\\n // encrypted_logs_preimages: Vec::new(),\\n // unencrypted_logs_preimages: Vec::new(),\\n }\\n }\\n\\n fn msg_sender(self) -> Field {\\n self.inputs.call_context.msg_sender\\n }\\n\\n fn this_address(self) -> Field {\\n self.inputs.call_context.storage_contract_address\\n }\\n\\n fn this_portal_address(self) -> Field {\\n self.inputs.call_context.portal_contract_address\\n }\\n\\n fn chain_id(self) -> Field {\\n self.inputs.public_global_variables.chain_id\\n }\\n\\n fn version(self) -> Field {\\n self.inputs.public_global_variables.version\\n }\\n\\n fn block_number(self) -> Field {\\n self.inputs.public_global_variables.block_number\\n }\\n\\n fn timestamp(self) -> Field {\\n self.inputs.public_global_variables.timestamp\\n }\\n\\n fn finish(self) -> abi::PublicCircuitPublicInputs {\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\\n let unencrypted_logs_hash = [0; NUM_FIELDS_PER_SHA256];\\n let unencrypted_log_preimages_length = 0;\\n\\n\\n // Compute the public call stack hashes\\n let pub_circuit_pub_inputs = abi::PublicCircuitPublicInputs {\\n call_context: self.inputs.call_context, // Done\\n args_hash: self.args_hash, // Done\\n contract_storage_update_requests: self.contract_storage_update_requests.storage,\\n contract_storage_read: self.contract_storage_read.storage,\\n return_values: self.return_values.storage,\\n new_commitments: self.new_commitments.storage,\\n new_nullifiers: self.new_nullifiers.storage,\\n public_call_stack: self.public_call_stack.storage,\\n new_l2_to_l1_msgs: self.new_l2_to_l1_msgs.storage,\\n unencrypted_logs_hash: unencrypted_logs_hash,\\n unencrypted_log_preimages_length: unencrypted_log_preimages_length,\\n block_data: self.inputs.block_data,\\n prover_address: self.prover_address,\\n };\\n pub_circuit_pub_inputs\\n }\\n\\n fn push_new_note_hash(&mut self, note_hash: Field) {\\n self.new_commitments.push(note_hash);\\n }\\n\\n fn push_new_nullifier(&mut self, nullifier: Field, _nullified_commitment: Field) {\\n self.new_nullifiers.push(nullifier);\\n }\\n\\n fn message_portal(&mut self, content: Field) {\\n self.new_l2_to_l1_msgs.push(content);\\n }\\n\\n // PrivateContextInputs must be temporarily passed in to prevent too many unknowns\\n // Note this returns self to get around an issue where mutable structs do not maintain mutations unless reassigned\\n fn consume_l1_to_l2_message(&mut self, msg_key: Field, content: Field, secret: Field) {\\n let this = (*self).this_address();\\n let nullifier = process_l1_to_l2_message(self.block_data.l1_to_l2_messages_tree_root, this, msg_key, content, secret);\\n\\n // Push nullifier (and the \\"commitment\\" corresponding to this can be \\"empty\\")\\n self.push_new_nullifier(nullifier, EMPTY_NULLIFIED_COMMITMENT)\\n }\\n\\n fn accumulate_encrypted_logs<N>(&mut self, log: [Field; N]) {\\n let _void1 = self;\\n let _void2 = log;\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\\n }\\n\\n fn accumulate_unencrypted_logs<T>(&mut self, log: T) {\\n let _void1 = self;\\n let _void2 = log;\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\\n }\\n\\n fn call_public_function<ARGS_COUNT>(\\n _self: Self,\\n contract_address: Field, \\n function_selector: Field,\\n args: [Field; ARGS_COUNT],\\n ) -> [Field; RETURN_VALUES_LENGTH] {\\n let args_hash = abi::hash_args(args);\\n assert(args_hash == arguments::pack_arguments(args));\\n call_public_function_internal(\\n contract_address, \\n function_selector, \\n args_hash,\\n )\\n }\\n\\n fn call_public_function_no_args(\\n _self: Self,\\n contract_address: Field, \\n function_selector: Field,\\n ) -> [Field; RETURN_VALUES_LENGTH] {\\n call_public_function_internal(\\n contract_address, \\n function_selector, \\n 0,\\n )\\n }\\n\\n}","path":"/mnt/user-data/alvaro/aztec-packages/yarn-project/noir-libs/noir-aztec/src/context"},"33":{"source":"use crate::context::PrivateContext;\\nuse crate::oracle;\\nuse crate::types::point::Point;\\n\\nfn emit_encrypted_log<N>(\\n context: &mut PrivateContext,\\n contract_address: Field,\\n storage_slot: Field,\\n encryption_pub_key: Point,\\n log: [Field; N],\\n) {\\n let _ = oracle::logs::emit_encrypted_log(contract_address, storage_slot, encryption_pub_key, log);\\n context.accumulate_encrypted_logs(log);\\n}\\n\\nfn emit_unencrypted_log<T>(\\n context: &mut PrivateContext,\\n log: T,\\n) {\\n let _ = oracle::logs::emit_unencrypted_log(log);\\n context.accumulate_unencrypted_logs(log);\\n}\\n","path":"/mnt/user-data/alvaro/aztec-packages/yarn-project/noir-libs/noir-aztec/src/log"},"39":{"source":"use dep::std::option::Option;\\nuse crate::abi::PublicContextInputs;\\nuse crate::context::{\\n PrivateContext,\\n PublicContext,\\n};\\nuse crate::note::{\\n note_header::NoteHeader,\\n note_interface::NoteInterface,\\n utils::compute_inner_note_hash,\\n};\\nuse crate::oracle::notes::{notify_created_note, notify_nullified_note};\\nuse crate::constants_gen::EMPTY_NULLIFIED_COMMITMENT;\\n\\nfn create_note<Note, N>(\\n context: &mut PrivateContext,\\n storage_slot: Field,\\n note: &mut Note,\\n note_interface: NoteInterface<Note, N>,\\n) {\\n let contract_address = (*context).this_address();\\n\\n let header = NoteHeader { contract_address, storage_slot, nonce: 0 };\\n let set_header = note_interface.set_header;\\n set_header(note, header);\\n let inner_note_hash = compute_inner_note_hash(note_interface, *note);\\n\\n let serialise = note_interface.serialise;\\n let preimage = serialise(*note);\\n assert(notify_created_note(storage_slot, preimage, inner_note_hash) == 0);\\n\\n context.push_new_note_hash(inner_note_hash);\\n}\\n\\nfn create_note_hash_from_public<Note, N>(\\n context: &mut PublicContext,\\n storage_slot: Field,\\n note: &mut Note,\\n note_interface: NoteInterface<Note, N>,\\n) {\\n let contract_address = (*context).this_address();\\n\\n let header = NoteHeader { contract_address, storage_slot, nonce: 0 };\\n let set_header = note_interface.set_header;\\n set_header(note, header);\\n let inner_note_hash = compute_inner_note_hash(note_interface, *note);\\n\\n context.push_new_note_hash(inner_note_hash);\\n}\\n\\nfn destroy_note<Note, N>(\\n context: &mut PrivateContext,\\n storage_slot: Field,\\n note: Note,\\n note_interface: NoteInterface<Note, N>,\\n) {\\n let mut nullifier = 0;\\n let mut nullified_commitment: Field = EMPTY_NULLIFIED_COMMITMENT;\\n let compute_nullifier = note_interface.compute_nullifier;\\n nullifier = compute_nullifier(note);\\n\\n let serialise = note_interface.serialise;\\n let preimage = serialise(note);\\n\\n // We also need the note commitment corresponding to the \\"nullifier\\"\\n let get_header = note_interface.get_header;\\n let header = get_header(note);\\n // 0 nonce implies \\"transient\\" nullifier (must nullify a commitment in this TX).\\n // `nullified_commitment` is used to inform the kernel which pending commitment\\n // the nullifier corresponds to so they can be matched and both squashed/deleted.\\n // nonzero nonce implies \\"persistable\\" nullifier (nullifies a persistent/in-tree\\n // commitment) in which case `nullified_commitment` is not used since the kernel\\n // just siloes and forwards the nullier to its output.\\n if (header.nonce == 0) {\\n // TODO(suyash): Can we reuse the note commitment computed in `compute_nullifier`?\\n nullified_commitment = compute_inner_note_hash(note_interface, note);\\n }\\n assert(notify_nullified_note(storage_slot, nullifier, preimage, nullified_commitment) == 0);\\n\\n context.push_new_nullifier(nullifier, nullified_commitment)\\n}","path":"/mnt/user-data/alvaro/aztec-packages/yarn-project/noir-libs/noir-aztec/src/note/lifecycle"},"40":{"source":"use dep::std::option::Option;\\nuse crate::constants_gen::{\\n MAX_READ_REQUESTS_PER_CALL,\\n GET_NOTE_ORACLE_RETURN_LENGTH,\\n GET_NOTES_ORACLE_RETURN_LENGTH,\\n MAX_NOTES_PER_PAGE,\\n VIEW_NOTE_ORACLE_RETURN_LENGTH,\\n};\\nuse crate::context::PrivateContext;\\nuse crate::note::{\\n note_getter_options::{NoteGetterOptions, Select, Sort},\\n note_interface::NoteInterface,\\n note_header::NoteHeader,\\n note_viewer_options::NoteViewerOptions,\\n utils::compute_note_hash_for_read_or_nullify,\\n utils::compute_unique_siloed_note_hash,\\n utils::compute_inner_note_hash,\\n utils::compute_siloed_note_hash,\\n};\\nuse crate::messaging::get_commitment_getter_data::make_commitment_getter_data;\\nuse crate::oracle;\\nuse crate::types::vec::BoundedVec;\\n\\nfn check_note_header<Note, N>(\\n context: PrivateContext,\\n storage_slot: Field,\\n note_interface: NoteInterface<Note, N>,\\n note: Note,\\n) {\\n let get_header = note_interface.get_header;\\n let header = get_header(note);\\n let contract_address = context.this_address();\\n assert(header.contract_address == contract_address);\\n assert(header.storage_slot == storage_slot);\\n}\\n\\nfn ensure_note_exists<Note, N>(\\n context: &mut PrivateContext,\\n storage_slot: Field,\\n note_interface: NoteInterface<Note, N>,\\n note: &mut Note,\\n) {\\n let saved_note = get_note_internal(storage_slot, note_interface);\\n\\n // Only copy over the header to the original note to make sure the preimage is the same.\\n let get_header = note_interface.get_header;\\n let set_header = note_interface.set_header;\\n let note_header = get_header(saved_note);\\n set_header(note, note_header);\\n\\n check_note_header(*context, storage_slot, note_interface, *note);\\n\\n let note_hash_for_read_request = compute_note_hash_for_read_or_nullify(note_interface, *note);\\n context.push_read_request(note_hash_for_read_request);\\n}\\n\\n// Ensure a note\'s hash exists in the tree without retrieving the entire\\n// notes via the oracle.\\n// Modifies the note by populating it with header info.\\nfn ensure_note_hash_exists<Note, N>(\\n context: &mut PrivateContext,\\n storage_slot: Field,\\n note_interface: NoteInterface<Note, N>,\\n note: &mut Note,\\n) {\\n // Initialize header of note. Must be done before computing note hashes as it initializes the:\\n // - storage slot (used in inner note hash)\\n // - the contract address (used in siloed note hash)\\n // - and the nonce (used in the unique siloed note hash)\\n let set_header = note_interface.set_header;\\n let note_header = NoteHeader {\\n contract_address: (*context).this_address(),\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1386): should be\\n // real nonce (once public kernel applies nonces).\\n nonce: 0,\\n storage_slot\\n };\\n set_header(note, note_header);\\n\\n // Get a note from oracle and early out if it doesn\'t exist.\\n let inner_note_hash = compute_inner_note_hash(note_interface, *note);\\n\\n let raw_oracle_ret = oracle::get_commitment::get_commitment(inner_note_hash);\\n let deserialized_oracle_ret = make_commitment_getter_data(raw_oracle_ret, 0);\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1386): should be\\n // unique_siloed_note_hash once public kernel applies nonces\\n let saved_siloed_note_hash = deserialized_oracle_ret.message;\\n\\n assert(saved_siloed_note_hash != 0); // TODO(dbanks12): necessary?\\n\\n check_note_header(*context, storage_slot, note_interface, *note);\\n\\n // Ensure that the note hash retrieved from oracle matches the one computed from note.\\n let computed_siloed_note_hash = compute_siloed_note_hash(note_interface, *note);\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1386): should be\\n // compute_note_hash_for_read_or_nullify once public kernel applies nonces\\n assert(computed_siloed_note_hash == saved_siloed_note_hash);\\n\\n context.push_read_request(computed_siloed_note_hash);\\n}\\n\\nfn get_note<Note, N>(\\n context: &mut PrivateContext,\\n storage_slot: Field,\\n note_interface: NoteInterface<Note, N>,\\n) -> Note {\\n let note = get_note_internal(storage_slot, note_interface);\\n\\n check_note_header(*context, storage_slot, note_interface, note);\\n\\n let note_hash_for_read_request = compute_note_hash_for_read_or_nullify(note_interface, note);\\n\\n context.push_read_request(note_hash_for_read_request);\\n note\\n}\\n\\nfn get_notes<Note, N, FILTER_ARGS>(\\n context: &mut PrivateContext,\\n storage_slot: Field,\\n note_interface: NoteInterface<Note, N>,\\n options: NoteGetterOptions<Note, N, FILTER_ARGS>,\\n) -> [Option<Note>; MAX_READ_REQUESTS_PER_CALL] {\\n let opt_notes = get_notes_internal(storage_slot, note_interface, options);\\n for i in 0..opt_notes.len() {\\n let opt_note = opt_notes[i];\\n let mut note_hash_for_read_request = 0;\\n if opt_note.is_some() {\\n let note = opt_note.unwrap_unchecked();\\n check_note_header(*context, storage_slot, note_interface, note);\\n note_hash_for_read_request = compute_note_hash_for_read_or_nullify(note_interface, note);\\n };\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1410): test to ensure\\n // failure if malicious oracle injects 0 nonce here for a \\"pre-existing\\" note.\\n context.push_read_request(note_hash_for_read_request);\\n };\\n\\n // TODO(#1660)\\n // Move it back to get_notes_internal and only make read request for selected notes.\\n let filter = options.filter;\\n let filter_args = options.filter_args;\\n filter(opt_notes, filter_args)\\n}\\n\\nunconstrained fn get_note_internal<Note, N>(\\n storage_slot: Field,\\n note_interface: NoteInterface<Note, N>,\\n) -> Note {\\n let placeholder_note = [Option::none()];\\n let placeholder_fields = [0; GET_NOTE_ORACLE_RETURN_LENGTH];\\n oracle::notes::get_notes(\\n storage_slot,\\n note_interface,\\n 0,\\n [],\\n [],\\n [],\\n [],\\n 1, // limit\\n 0, // offset\\n placeholder_note,\\n placeholder_fields,\\n )[0].unwrap() // Notice: we don\'t allow dummies to be returned from get_note (singular).\\n}\\n\\nunconstrained fn get_notes_internal<Note, N, FILTER_ARGS>(\\n storage_slot: Field,\\n note_interface: NoteInterface<Note, N>,\\n options: NoteGetterOptions<Note, N, FILTER_ARGS>,\\n) -> [Option<Note>; MAX_READ_REQUESTS_PER_CALL] {\\n let (num_selects, select_by, select_values, sort_by, sort_order) = flatten_options(options.selects, options.sorts);\\n let placeholder_opt_notes = [Option::none(); MAX_READ_REQUESTS_PER_CALL];\\n let placeholder_fields = [0; GET_NOTES_ORACLE_RETURN_LENGTH];\\n oracle::notes::get_notes(\\n storage_slot,\\n note_interface,\\n num_selects,\\n select_by,\\n select_values,\\n sort_by,\\n sort_order,\\n options.limit,\\n options.offset,\\n placeholder_opt_notes,\\n placeholder_fields,\\n )\\n}\\n\\nunconstrained fn view_notes<Note, N>(\\n storage_slot: Field,\\n note_interface: NoteInterface<Note, N>,\\n options: NoteViewerOptions<Note, N>,\\n) -> [Option<Note>; MAX_NOTES_PER_PAGE] {\\n let (num_selects, select_by, select_values, sort_by, sort_order) = flatten_options(options.selects, options.sorts);\\n let placeholder_opt_notes = [Option::none(); MAX_NOTES_PER_PAGE];\\n let placeholder_fields = [0; VIEW_NOTE_ORACLE_RETURN_LENGTH];\\n oracle::notes::get_notes(\\n storage_slot,\\n note_interface,\\n num_selects,\\n select_by,\\n select_values,\\n sort_by,\\n sort_order,\\n options.limit,\\n options.offset,\\n placeholder_opt_notes,\\n placeholder_fields,\\n )\\n}\\n\\nunconstrained fn flatten_options<Note, N>(\\n selects: BoundedVec<Option<Select>, N>,\\n sorts: BoundedVec<Option<Sort>, N>,\\n) -> (u8, [u8; N], [Field; N], [u8; N], [u2; N]) {\\n let mut num_selects = 0;\\n let mut select_by = [0; N];\\n let mut select_values = [0; N];\\n for i in 0..selects.len {\\n let select = selects.get(i);\\n if select.is_some() {\\n select_by[num_selects] = select.unwrap_unchecked().field_index;\\n select_values[num_selects] = select.unwrap_unchecked().value;\\n num_selects += 1;\\n };\\n };\\n\\n let mut sort_by = [0; N];\\n let mut sort_order = [0; N];\\n for i in 0..sorts.len {\\n let sort = sorts.get(i);\\n if sort.is_some() {\\n sort_by[i] = sort.unwrap_unchecked().field_index;\\n sort_order[i] = sort.unwrap_unchecked().order;\\n };\\n };\\n\\n (num_selects, select_by, select_values, sort_by, sort_order)\\n}","path":"/mnt/user-data/alvaro/aztec-packages/yarn-project/noir-libs/noir-aztec/src/note/note_getter"},"42":{"source":"use dep::std::hash::{pedersen, pedersen_with_separator};\\nuse crate::constants_gen::{GENERATOR_INDEX__UNIQUE_COMMITMENT, GENERATOR_INDEX__SILOED_COMMITMENT};\\n\\nfn compute_inner_hash(storage_slot: Field, note_hash: Field) -> Field {\\n // TODO(#1205) Do we need a generator index here?\\n pedersen([storage_slot, note_hash])[0]\\n}\\n\\nfn compute_siloed_hash(contract_address: Field, inner_note_hash: Field) -> Field {\\n let inputs = [contract_address, inner_note_hash];\\n pedersen_with_separator(inputs, GENERATOR_INDEX__SILOED_COMMITMENT)[0]\\n}\\n\\nfn compute_unique_hash(nonce: Field, siloed_note_hash: Field) -> Field {\\n let inputs = [nonce, siloed_note_hash];\\n pedersen_with_separator(inputs, GENERATOR_INDEX__UNIQUE_COMMITMENT)[0]\\n}\\n","path":"/mnt/user-data/alvaro/aztec-packages/yarn-project/noir-libs/noir-aztec/src/note/note_hash"},"46":{"source":"use crate::note::{\\n note_hash::{compute_inner_hash, compute_siloed_hash, compute_unique_hash},\\n note_header::NoteHeader,\\n note_interface::NoteInterface,\\n};\\nuse crate::utils::arr_copy_slice;\\n\\nfn compute_inner_note_hash<Note, N>(\\n note_interface: NoteInterface<Note, N>,\\n note: Note,\\n) -> Field {\\n let get_header = note_interface.get_header;\\n let header = get_header(note);\\n\\n let compute_note_hash = note_interface.compute_note_hash;\\n let note_hash = compute_note_hash(note);\\n\\n compute_inner_hash(header.storage_slot, note_hash)\\n}\\n\\nfn compute_siloed_note_hash<Note, N>(\\n note_interface: NoteInterface<Note, N>,\\n note_with_header: Note,\\n) -> Field {\\n let get_header = note_interface.get_header;\\n let header = get_header(note_with_header);\\n\\n let inner_note_hash = compute_inner_note_hash(note_interface, note_with_header);\\n\\n compute_siloed_hash(header.contract_address, inner_note_hash)\\n}\\n\\nfn compute_unique_siloed_note_hash<Note, N>(\\n note_interface: NoteInterface<Note, N>,\\n note_with_header: Note,\\n) -> Field {\\n let get_header = note_interface.get_header;\\n let header = get_header(note_with_header);\\n\\n let siloed_note_hash = compute_siloed_note_hash(note_interface, note_with_header);\\n\\n compute_unique_hash(header.nonce, siloed_note_hash)\\n}\\n\\nfn compute_note_hash_for_read_or_nullify<Note, N>(\\n note_interface: NoteInterface<Note, N>,\\n note_with_header: Note,\\n) -> Field {\\n let get_header = note_interface.get_header;\\n let header = get_header(note_with_header);\\n\\n if (header.nonce == 0) {\\n // when nonce is zero, that means we are reading a pending note (doesn\'t have a nonce yet),\\n // so we just read the inner_note_hash (kernel will silo by contract address)\\n compute_inner_note_hash(note_interface, note_with_header)\\n } else {\\n // When nonce is nonzero, that means we are reading a settled note (from tree) created in a\\n // previous TX. So we need the unique_siloed_note_hash which has already been hashed with\\n // contract address and then nonce. This hash will match the existing leaf in the private\\n // data tree, so the kernel can just perform a membership check directly on this hash/leaf.\\n compute_unique_siloed_note_hash(note_interface, note_with_header)\\n }\\n\\n}\\n\\nfn compute_note_hash_and_nullifier<Note, N, S>(\\n note_interface: NoteInterface<Note, N>,\\n note_header: NoteHeader,\\n preimage: [Field; S],\\n) -> [Field; 4] {\\n let deserialise = note_interface.deserialise;\\n let set_header = note_interface.set_header;\\n let mut note = deserialise(arr_copy_slice(preimage, [0; N], 0));\\n set_header(&mut note, note_header);\\n\\n let compute_note_hash = note_interface.compute_note_hash;\\n let note_hash = compute_note_hash(note);\\n let inner_note_hash = compute_inner_hash(note_header.storage_slot, note_hash);\\n\\n let siloed_note_hash = compute_siloed_hash(note_header.contract_address, inner_note_hash);\\n\\n let unique_siloed_note_hash = compute_unique_hash(note_header.nonce, siloed_note_hash);\\n\\n let compute_nullifier = note_interface.compute_nullifier;\\n let inner_nullifier = compute_nullifier(note);\\n\\n [inner_note_hash, siloed_note_hash, unique_siloed_note_hash, inner_nullifier]\\n}\\n","path":"/mnt/user-data/alvaro/aztec-packages/yarn-project/noir-libs/noir-aztec/src/note/utils"},"48":{"source":"use dep::std::hash::pedersen_with_separator;\\nuse crate::context::PrivateContext;\\nuse crate::note::{\\n lifecycle::create_note,\\n note_getter::{get_note, view_notes},\\n note_interface::NoteInterface,\\n note_viewer_options::NoteViewerOptions,\\n};\\nuse crate::oracle;\\nuse crate::constants_gen::{\\n GENERATOR_INDEX__INITIALISATION_NULLIFIER,\\n EMPTY_NULLIFIED_COMMITMENT,\\n};\\n\\nstruct ImmutableSingleton<Note, N> {\\n storage_slot: Field,\\n note_interface: NoteInterface<Note, N>,\\n}\\n\\nimpl<Note, N> ImmutableSingleton<Note, N> {\\n fn new(storage_slot: Field, note_interface: NoteInterface<Note, N>) -> Self {\\n ImmutableSingleton { storage_slot, note_interface }\\n }\\n\\n unconstrained fn is_initialised(self) -> bool {\\n let nullifier = self.compute_initialisation_nullifier();\\n oracle::notes::is_nullifier_emitted(nullifier)\\n }\\n\\n fn initialise(self, context: &mut PrivateContext, note: &mut Note) {\\n // Nullify the storage slot.\\n let nullifier = self.compute_initialisation_nullifier();\\n context.push_new_nullifier(nullifier, EMPTY_NULLIFIED_COMMITMENT);\\n\\n create_note(context, self.storage_slot, note, self.note_interface);\\n }\\n\\n fn compute_initialisation_nullifier(self) -> Field {\\n pedersen_with_separator([self.storage_slot], GENERATOR_INDEX__INITIALISATION_NULLIFIER)[0]\\n }\\n \\n fn get_note(self, context: &mut PrivateContext) -> Note {\\n let storage_slot = self.storage_slot;\\n get_note(context, storage_slot, self.note_interface)\\n }\\n\\n unconstrained fn view_note(self) -> Note {\\n let options = NoteViewerOptions::new().set_limit(1);\\n view_notes(self.storage_slot, self.note_interface, options)[0].unwrap()\\n }\\n}","path":"/mnt/user-data/alvaro/aztec-packages/yarn-project/noir-libs/noir-aztec/src/state_vars/immutable_singleton"},"55":{"source":"\\nstruct BoundedVec<T, MaxLen> {\\n storage: [T; MaxLen],\\n len: Field,\\n}\\n\\nimpl<T, MaxLen> BoundedVec<T, MaxLen> {\\n fn new(initial_value: T) -> Self {\\n BoundedVec { storage: [initial_value; MaxLen], len: 0 }\\n }\\n\\n fn get(mut self: Self, index: Field) -> T {\\n assert(index as u64 < self.len as u64);\\n self.storage[index]\\n }\\n\\n fn push(&mut self, elem: T) {\\n assert(self.len as u64 < MaxLen as u64);\\n\\n self.storage[self.len] = elem;\\n self.len += 1;\\n }\\n\\n fn push_array<Len>(&mut self, array: [T; Len]) {\\n let newLen = self.len + array.len();\\n assert(newLen as u64 <= MaxLen as u64);\\n for i in 0..array.len() {\\n self.storage[self.len + i] = array[i];\\n }\\n self.len = newLen;\\n }\\n\\n fn pop(&mut self) -> T {\\n assert(self.len as u64 > 0);\\n\\n let elem = self.storage[self.len - 1];\\n self.len -= 1;\\n elem\\n }\\n}\\n\\n// #[test]\\n// fn test_vec() {\\n// let vec: BoundedVec<Field, 2> = BoundedVec::new(0);\\n// assert(vec.len == 0);\\n// let vec1 = vec.push(1);\\n// assert(vec1.len == 1);\\n// let vec2 = vec1.push(1);\\n// assert(vec2.len == 2);\\n// let vec3 = vec2.push(1);\\n// assert(vec3.len == 3);\\n// let x = vec3.pop();\\n// assert(x == 1);\\n// }","path":"/mnt/user-data/alvaro/aztec-packages/yarn-project/noir-libs/noir-aztec/src/types/vec"},"70":{"source":"use crate::types::point::Point;\\nuse dep::std::hash;\\nuse crate::constants_gen::GENERATOR_INDEX__CONTRACT_ADDRESS;\\n\\n#[oracle(getPublicKey)]\\nfn get_public_key_oracle(_address: Field) -> [Field; 3] {}\\n\\nunconstrained fn get_public_key_internal(address: Field) -> [Field; 3] {\\n get_public_key_oracle(address)\\n}\\n\\nfn get_public_key(address: Field) -> Point {\\n let result = get_public_key_internal(address);\\n let pub_key_x = result[0];\\n let pub_key_y = result[1];\\n let partial_address = result[2];\\n \\n let calculated_address = hash::pedersen_with_separator([pub_key_x, pub_key_y, partial_address], GENERATOR_INDEX__CONTRACT_ADDRESS)[0];\\n assert(calculated_address == address);\\n \\n Point::new(pub_key_x, pub_key_y)\\n}\\n","path":"/mnt/user-data/alvaro/aztec-packages/yarn-project/noir-libs/noir-aztec/src/oracle/get_public_key"},"78":{"source":"use crate::abi;\\nuse crate::types::vec::BoundedVec;\\nuse crate::context::PrivateContext;\\nuse crate::private_call_stack_item::PrivateCallStackItem;\\nuse crate::public_call_stack_item::PublicCallStackItem; \\n\\nglobal ACCOUNT_MAX_PRIVATE_CALLS: Field = 2;\\nglobal ACCOUNT_MAX_PUBLIC_CALLS: Field = 2;\\nglobal ACCOUNT_MAX_CALLS: Field = 4;\\n// 1 (ARGS_HASH) + 1 (FUNCTION_SELECTOR) + 1 (TARGET_ADDRESS)\\nglobal FUNCTION_CALL_SIZE: Field = 3;\\n\\nstruct FunctionCall {\\n args_hash: Field,\\n function_selector: Field,\\n target_address: Field,\\n}\\n\\nimpl FunctionCall {\\n fn serialize(self) -> [Field; FUNCTION_CALL_SIZE] {\\n [self.args_hash, self.function_selector, self.target_address]\\n }\\n}\\n\\n// FUNCTION_CALL_SIZE * (ACCOUNT_MAX_PUBLIC_CALLS + ACCOUNT_MAX_PRIVATE_CALLS) + 1\\nglobal ENTRYPOINT_PAYLOAD_SIZE: Field = 13;\\nglobal ENTRYPOINT_PAYLOAD_SIZE_IN_BYTES: Field = 416;\\n\\nstruct EntrypointPayload {\\n // Noir doesnt support nested arrays or structs yet so we flatten everything\\n flattened_args_hashes: [Field; ACCOUNT_MAX_CALLS],\\n flattened_selectors: [Field; ACCOUNT_MAX_CALLS],\\n flattened_targets: [Field; ACCOUNT_MAX_CALLS],\\n nonce: Field,\\n}\\n\\nimpl EntrypointPayload {\\n // TODO(#1207) Do we need a generator index?\\n fn hash(self) -> Field {\\n dep::std::hash::pedersen(self.serialize())[0]\\n }\\n\\n // Serializes the entrypoint struct\\n fn serialize(self) -> [Field; ENTRYPOINT_PAYLOAD_SIZE] {\\n let mut fields: BoundedVec<Field, ENTRYPOINT_PAYLOAD_SIZE> = BoundedVec::new(0); \\n fields.push_array(self.flattened_args_hashes);\\n fields.push_array(self.flattened_selectors);\\n fields.push_array(self.flattened_targets);\\n fields.push(self.nonce);\\n fields.storage\\n }\\n\\n // Serializes the payload as an array of bytes. Useful for hashing with sha256.\\n fn to_be_bytes(self) -> [u8; ENTRYPOINT_PAYLOAD_SIZE_IN_BYTES] {\\n let mut bytes: [u8; ENTRYPOINT_PAYLOAD_SIZE_IN_BYTES] = [0; ENTRYPOINT_PAYLOAD_SIZE_IN_BYTES];\\n\\n let args_len = self.flattened_args_hashes.len();\\n let selectors_len = self.flattened_selectors.len();\\n let targets_len = self.flattened_targets.len();\\n\\n for i in 0..args_len {\\n let item_bytes = self.flattened_args_hashes[i].to_be_bytes(32);\\n for j in 0..32 { \\n bytes[i * 32 + j] = item_bytes[j];\\n }\\n }\\n\\n for i in 0..selectors_len {\\n let item_bytes = self.flattened_selectors[i].to_be_bytes(32);\\n for j in 0..32 { \\n bytes[args_len * 32 + i * 32 + j] = item_bytes[j];\\n }\\n }\\n\\n for i in 0..targets_len {\\n let item_bytes = self.flattened_targets[i].to_be_bytes(32);\\n for j in 0..32 { \\n bytes[(args_len + selectors_len) * 32 + i * 32 + j] = item_bytes[j];\\n }\\n }\\n \\n let item_bytes = self.nonce.to_be_bytes(32);\\n for j in 0..32 { \\n bytes[(args_len + selectors_len + targets_len) * 32 + j] = item_bytes[j];\\n }\\n\\n bytes\\n }\\n\\n // Executes all private and public calls \\n fn execute_calls(self, context: &mut PrivateContext) {\\n for i in 0..ACCOUNT_MAX_PRIVATE_CALLS {\\n let target_address = self.flattened_targets[i];\\n if target_address != 0 {\\n let function_selector = self.flattened_selectors[i];\\n let args_hash = self.flattened_args_hashes[i];\\n let _callStackItem = context.call_private_function_with_packed_args(target_address, function_selector, args_hash);\\n }\\n }\\n for i in ACCOUNT_MAX_PRIVATE_CALLS..ACCOUNT_MAX_CALLS {\\n let target_address = self.flattened_targets[i];\\n if target_address != 0 {\\n let function_selector = self.flattened_selectors[i];\\n let args_hash = self.flattened_args_hashes[i];\\n let _callStackItem = context.call_public_function_with_packed_args(target_address, function_selector, args_hash);\\n }\\n }\\n }\\n}","path":"/mnt/user-data/alvaro/aztec-packages/yarn-project/noir-libs/noir-aztec/src/entrypoint"}}}}');class Bi{constructor(e){this.signingPrivateKey=e}async getDeploymentArgs(){const e=await Vs.new().then((e=>e.computePublicKey(this.signingPrivateKey)));return[e.x,e.y]}async getEntrypoint({address:e},{chainId:t,version:n}){return new ki(e,this.signingPrivateKey,await Vs.new(),t,n)}getContractAbi(){return Ri}}class Oi{constructor(e){this.encryptionPrivateKey=e}getDeploymentArgs(){return Promise.resolve([])}async getEntrypoint({address:e,partialAddress:t},{chainId:n,version:r}){return new ei(e,t,this.encryptionPrivateKey,await Vs.new(),n,r)}getContractAbi(){return qa}}class Di{constructor(e=[]){this.entrypoints=new Map;for(const[t,n]of e)this.registerAccount(t,n)}static async fromAccounts(e){const t=new Di;for(const n of e)t.registerAccount((await n.getCompleteAddress()).address,await n.getEntrypoint());return t}registerAccount(e,t){this.entrypoints.set(e.toString(),t)}createTxExecutionRequest(e,t={}){const n=this.entrypoints.values().next().value,r=t.origin?this.entrypoints.get(t.origin.toString()):n;if(!r)throw new Error(`No entrypoint registered for ${t.origin}`);return r.createTxExecutionRequest(e,t)}}function Fi(e,t,n,r){return new Ni(e,t,new xi(n),r)}function Hi(e,t,n,r){return new Ni(e,t,new Bi(n),r)}function Mi(e,t,n){return new Ni(e,t,new Oi(t),n)}function zi(e,t,n){return Ui(e,t,new Oi(n))}async function Ui(e,t,n){const r=await e.getAccount(t);if(!r)throw new Error(`Account ${t} not found`);const s=await e.getNodeInfo(),a=await n.getEntrypoint(r,s);return new ri(e,a,r)}var ji=n(816).Buffer;const Zi=[new ea(ji.from("b2803ec899f76f6b2ac011480d24028f1a29587f8a3a92f7ee9d48d8c085c284","hex")),new ea(ji.from("6bb46e9a80da2ff7bfff71c2c50eaaa4b15f7ed5ad1ade4261b574ef80b0cdb0","hex")),new ea(ji.from("0f6addf0da06c33293df974a565b03d1ab096090d907d98055a8b7f4954e120c","hex"))],Wi=Zi,Gi=[Nn.ZERO,Nn.ZERO,Nn.ZERO],Qi=Ri;async function Xi(e){return await ii(e,Qi,Zi,Wi,Gi)}async function Yi(e){const t=Zi.map(((t,n)=>({account:Hi(e,t,Wi[n],Gi[n]),privateKey:t}))),n=(await Promise.all(t.map((async e=>{const t=await e.account.getDeployMethod();return await t.create({contractAddressSalt:e.account.salt}),await t.simulate({}),t})))).map((e=>e.send()));return await Promise.all(n.map((async(e,n)=>{const r=await t[n].account.getWallet();return e.wait({wallet:r})}))),t}const Ji=async e=>{for(;;)try{await e.getNodeInfo();break}catch(e){await ta(1e3)}}})();var s=r.mR,a=r.bG,i=r.xz,o=r.EB,l=r.cC,c=r.C3,u=r.QT,f=r.ug,d=r.CH,_=r.xq,h=r.vp,p=r.xr,g=r.Ag,b=r.W_,m=r.g2,y=r.Y8,v=r.gB,w=r.vX,E=r.Bi,L=r.jF,A=r.Wi,S=r.Fr,C=r.E7,T=r.ah,P=r.N0,N=r.rL,I=r.$h,k=r.pP,x=r.E9,R=r._q,B=r.lW,O=r.a5,D=r.GR,F=r.x6,H=r.of,M=r.E$,z=r.Tx,U=r.qd,j=r.f1,Z=r.EY,W=r.bH,G=r.qx,Q=r.ig,X=r._$,Y=r.g$,J=r.sn,V=r.es,q=r.ir,K=r.G0,$=r.o2,ee=r.nW,te=r.qe,ne=r.IQ,re=r.JA,se=r.FV,ae=r.iL,ie=r.dH,oe=r.Jz,le=r._v,ce=r.qW;export{s as Account,a as AccountWallet,i as AztecAddress,o as AztecCheatCodes,l as BaseWallet,c as BatchCall,u as CheatCodes,f as CompleteAddress,d as Contract,_ as ContractBase,h as ContractData,p as ContractDataAndBytecode,g as ContractDeployer,b as ContractDeploymentTx,m as ContractFunctionInteraction,y as DeployMethod,v as EcdsaAccountContract,w as EntrypointCollection,E as EntrypointWallet,L as EthAddress,A as EthCheatCodes,S as Fr,C as INITIAL_SANDBOX_ACCOUNT_CONTRACT_ABI,T as INITIAL_SANDBOX_ENCRYPTION_KEYS,P as INITIAL_SANDBOX_SALTS,N as INITIAL_SANDBOX_SIGNING_KEYS,I as L2BlockL2Logs,k as PackedArguments,x as Point,R as PrivateKey,B as SchnorrAccountContract,O as SentTx,D as SignerlessWallet,F as SingleKeyAccountContract,H as SingleKeyAccountEntrypoint,M as StoredKeyAccountEntrypoint,z as Tx,U as TxExecutionRequest,j as TxHash,Z as TxReceipt,W as TxStatus,G as computeMessageSecretHash,Q as createAccounts,X as createAztecRpcClient,Y as createDebugLogger,J as deployInitialSandboxAccounts,V as emptyFunctionCall,q as generatePublicKey,K as getAccountWallets,$ as getEcdsaAccount,ee as getL1ContractAddresses,te as getSandboxAccountsWallet,ne as getSchnorrAccount,re as getUnsafeSchnorrAccount,se as getUnsafeSchnorrWallet,ae as getWallet,ie as isContractDeployed,oe as makeFetch,le as sleep,ce as waitForSandbox};
2
+ var e={4782:(e,t)=>{t.byteLength=function(e){var t=o(e),n=t[0],r=t[1];return 3*(n+r)/4-r},t.toByteArray=function(e){var t,n,a=o(e),i=a[0],l=a[1],c=new s(function(e,t,n){return 3*(t+n)/4-n}(0,i,l)),u=0,f=l>0?i-4:i;for(n=0;n<f;n+=4)t=r[e.charCodeAt(n)]<<18|r[e.charCodeAt(n+1)]<<12|r[e.charCodeAt(n+2)]<<6|r[e.charCodeAt(n+3)],c[u++]=t>>16&255,c[u++]=t>>8&255,c[u++]=255&t;return 2===l&&(t=r[e.charCodeAt(n)]<<2|r[e.charCodeAt(n+1)]>>4,c[u++]=255&t),1===l&&(t=r[e.charCodeAt(n)]<<10|r[e.charCodeAt(n+1)]<<4|r[e.charCodeAt(n+2)]>>2,c[u++]=t>>8&255,c[u++]=255&t),c},t.fromByteArray=function(e){for(var t,r=e.length,s=r%3,a=[],i=16383,o=0,c=r-s;o<c;o+=i)a.push(l(e,o,o+i>c?c:o+i));return 1===s?(t=e[r-1],a.push(n[t>>2]+n[t<<4&63]+"==")):2===s&&(t=(e[r-2]<<8)+e[r-1],a.push(n[t>>10]+n[t>>4&63]+n[t<<2&63]+"=")),a.join("")};for(var n=[],r=[],s="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",i=0;i<64;++i)n[i]=a[i],r[a.charCodeAt(i)]=i;function o(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function l(e,t,r){for(var s,a,i=[],o=t;o<r;o+=3)s=(e[o]<<16&16711680)+(e[o+1]<<8&65280)+(255&e[o+2]),i.push(n[(a=s)>>18&63]+n[a>>12&63]+n[a>>6&63]+n[63&a]);return i.join("")}r["-".charCodeAt(0)]=62,r["_".charCodeAt(0)]=63},238:(e,t,n)=>{var r=n(7172).Buffer;function s(e){r.isBuffer(e)||(e=r.from(e));for(var t=e.length/4|0,n=new Array(t),s=0;s<t;s++)n[s]=e.readUInt32BE(4*s);return n}function a(e){for(;0<e.length;e++)e[0]=0}function i(e,t,n,r,s){for(var a,i,o,l,c=n[0],u=n[1],f=n[2],d=n[3],_=e[0]^t[0],h=e[1]^t[1],p=e[2]^t[2],g=e[3]^t[3],b=4,m=1;m<s;m++)a=c[_>>>24]^u[h>>>16&255]^f[p>>>8&255]^d[255&g]^t[b++],i=c[h>>>24]^u[p>>>16&255]^f[g>>>8&255]^d[255&_]^t[b++],o=c[p>>>24]^u[g>>>16&255]^f[_>>>8&255]^d[255&h]^t[b++],l=c[g>>>24]^u[_>>>16&255]^f[h>>>8&255]^d[255&p]^t[b++],_=a,h=i,p=o,g=l;return a=(r[_>>>24]<<24|r[h>>>16&255]<<16|r[p>>>8&255]<<8|r[255&g])^t[b++],i=(r[h>>>24]<<24|r[p>>>16&255]<<16|r[g>>>8&255]<<8|r[255&_])^t[b++],o=(r[p>>>24]<<24|r[g>>>16&255]<<16|r[_>>>8&255]<<8|r[255&h])^t[b++],l=(r[g>>>24]<<24|r[_>>>16&255]<<16|r[h>>>8&255]<<8|r[255&p])^t[b++],[a>>>=0,i>>>=0,o>>>=0,l>>>=0]}var o=[0,1,2,4,8,16,32,64,128,27,54],l=function(){for(var e=new Array(256),t=0;t<256;t++)e[t]=t<128?t<<1:t<<1^283;for(var n=[],r=[],s=[[],[],[],[]],a=[[],[],[],[]],i=0,o=0,l=0;l<256;++l){var c=o^o<<1^o<<2^o<<3^o<<4;c=c>>>8^255&c^99,n[i]=c,r[c]=i;var u=e[i],f=e[u],d=e[f],_=257*e[c]^16843008*c;s[0][i]=_<<24|_>>>8,s[1][i]=_<<16|_>>>16,s[2][i]=_<<8|_>>>24,s[3][i]=_,_=16843009*d^65537*f^257*u^16843008*i,a[0][c]=_<<24|_>>>8,a[1][c]=_<<16|_>>>16,a[2][c]=_<<8|_>>>24,a[3][c]=_,0===i?i=o=1:(i=u^e[e[e[d^u]]],o^=e[e[o]])}return{SBOX:n,INV_SBOX:r,SUB_MIX:s,INV_SUB_MIX:a}}();function c(e){this._key=s(e),this._reset()}c.blockSize=16,c.keySize=32,c.prototype.blockSize=c.blockSize,c.prototype.keySize=c.keySize,c.prototype._reset=function(){for(var e=this._key,t=e.length,n=t+6,r=4*(n+1),s=[],a=0;a<t;a++)s[a]=e[a];for(a=t;a<r;a++){var i=s[a-1];a%t==0?(i=i<<8|i>>>24,i=l.SBOX[i>>>24]<<24|l.SBOX[i>>>16&255]<<16|l.SBOX[i>>>8&255]<<8|l.SBOX[255&i],i^=o[a/t|0]<<24):t>6&&a%t==4&&(i=l.SBOX[i>>>24]<<24|l.SBOX[i>>>16&255]<<16|l.SBOX[i>>>8&255]<<8|l.SBOX[255&i]),s[a]=s[a-t]^i}for(var c=[],u=0;u<r;u++){var f=r-u,d=s[f-(u%4?0:4)];c[u]=u<4||f<=4?d:l.INV_SUB_MIX[0][l.SBOX[d>>>24]]^l.INV_SUB_MIX[1][l.SBOX[d>>>16&255]]^l.INV_SUB_MIX[2][l.SBOX[d>>>8&255]]^l.INV_SUB_MIX[3][l.SBOX[255&d]]}this._nRounds=n,this._keySchedule=s,this._invKeySchedule=c},c.prototype.encryptBlockRaw=function(e){return i(e=s(e),this._keySchedule,l.SUB_MIX,l.SBOX,this._nRounds)},c.prototype.encryptBlock=function(e){var t=this.encryptBlockRaw(e),n=r.allocUnsafe(16);return n.writeUInt32BE(t[0],0),n.writeUInt32BE(t[1],4),n.writeUInt32BE(t[2],8),n.writeUInt32BE(t[3],12),n},c.prototype.decryptBlock=function(e){var t=(e=s(e))[1];e[1]=e[3],e[3]=t;var n=i(e,this._invKeySchedule,l.INV_SUB_MIX,l.INV_SBOX,this._nRounds),a=r.allocUnsafe(16);return a.writeUInt32BE(n[0],0),a.writeUInt32BE(n[3],4),a.writeUInt32BE(n[2],8),a.writeUInt32BE(n[1],12),a},c.prototype.scrub=function(){a(this._keySchedule),a(this._invKeySchedule),a(this._key)},e.exports.AES=c},8587:(e,t,n)=>{var r=n(238),s=n(7172).Buffer,a=n(3081),i=n(87),o=n(1219),l=n(7752),c=n(3480);function u(e,t,n,i){a.call(this);var l=s.alloc(4,0);this._cipher=new r.AES(t);var u=this._cipher.encryptBlock(l);this._ghash=new o(u),n=function(e,t,n){if(12===t.length)return e._finID=s.concat([t,s.from([0,0,0,1])]),s.concat([t,s.from([0,0,0,2])]);var r=new o(n),a=t.length,i=a%16;r.update(t),i&&(i=16-i,r.update(s.alloc(i,0))),r.update(s.alloc(8,0));var l=8*a,u=s.alloc(8);u.writeUIntBE(l,0,8),r.update(u),e._finID=r.state;var f=s.from(e._finID);return c(f),f}(this,n,u),this._prev=s.from(n),this._cache=s.allocUnsafe(0),this._secCache=s.allocUnsafe(0),this._decrypt=i,this._alen=0,this._len=0,this._mode=e,this._authTag=null,this._called=!1}i(u,a),u.prototype._update=function(e){if(!this._called&&this._alen){var t=16-this._alen%16;t<16&&(t=s.alloc(t,0),this._ghash.update(t))}this._called=!0;var n=this._mode.encrypt(this,e);return this._decrypt?this._ghash.update(e):this._ghash.update(n),this._len+=e.length,n},u.prototype._final=function(){if(this._decrypt&&!this._authTag)throw new Error("Unsupported state or unable to authenticate data");var e=l(this._ghash.final(8*this._alen,8*this._len),this._cipher.encryptBlock(this._finID));if(this._decrypt&&function(e,t){var n=0;e.length!==t.length&&n++;for(var r=Math.min(e.length,t.length),s=0;s<r;++s)n+=e[s]^t[s];return n}(e,this._authTag))throw new Error("Unsupported state or unable to authenticate data");this._authTag=e,this._cipher.scrub()},u.prototype.getAuthTag=function(){if(this._decrypt||!s.isBuffer(this._authTag))throw new Error("Attempting to get auth tag in unsupported state");return this._authTag},u.prototype.setAuthTag=function(e){if(!this._decrypt)throw new Error("Attempting to set auth tag in unsupported state");this._authTag=e},u.prototype.setAAD=function(e){if(this._called)throw new Error("Attempting to set AAD in unsupported state");this._ghash.update(e),this._alen+=e.length},e.exports=u},8901:(e,t,n)=>{var r=n(3615),s=n(2576),a=n(4636);t.createCipher=t.Cipher=r.createCipher,t.createCipheriv=t.Cipheriv=r.createCipheriv,t.createDecipher=t.Decipher=s.createDecipher,t.createDecipheriv=t.Decipheriv=s.createDecipheriv,t.listCiphers=t.getCiphers=function(){return Object.keys(a)}},2576:(e,t,n)=>{var r=n(8587),s=n(7172).Buffer,a=n(3834),i=n(2385),o=n(3081),l=n(238),c=n(5883);function u(e,t,n){o.call(this),this._cache=new f,this._last=void 0,this._cipher=new l.AES(t),this._prev=s.from(n),this._mode=e,this._autopadding=!0}function f(){this.cache=s.allocUnsafe(0)}function d(e,t,n){var o=a[e.toLowerCase()];if(!o)throw new TypeError("invalid suite type");if("string"==typeof n&&(n=s.from(n)),"GCM"!==o.mode&&n.length!==o.iv)throw new TypeError("invalid iv length "+n.length);if("string"==typeof t&&(t=s.from(t)),t.length!==o.key/8)throw new TypeError("invalid key length "+t.length);return"stream"===o.type?new i(o.module,t,n,!0):"auth"===o.type?new r(o.module,t,n,!0):new u(o.module,t,n)}n(87)(u,o),u.prototype._update=function(e){var t,n;this._cache.add(e);for(var r=[];t=this._cache.get(this._autopadding);)n=this._mode.decrypt(this,t),r.push(n);return s.concat(r)},u.prototype._final=function(){var e=this._cache.flush();if(this._autopadding)return function(e){var t=e[15];if(t<1||t>16)throw new Error("unable to decrypt data");for(var n=-1;++n<t;)if(e[n+(16-t)]!==t)throw new Error("unable to decrypt data");if(16!==t)return e.slice(0,16-t)}(this._mode.decrypt(this,e));if(e)throw new Error("data not multiple of block length")},u.prototype.setAutoPadding=function(e){return this._autopadding=!!e,this},f.prototype.add=function(e){this.cache=s.concat([this.cache,e])},f.prototype.get=function(e){var t;if(e){if(this.cache.length>16)return t=this.cache.slice(0,16),this.cache=this.cache.slice(16),t}else if(this.cache.length>=16)return t=this.cache.slice(0,16),this.cache=this.cache.slice(16),t;return null},f.prototype.flush=function(){if(this.cache.length)return this.cache},t.createDecipher=function(e,t){var n=a[e.toLowerCase()];if(!n)throw new TypeError("invalid suite type");var r=c(t,!1,n.key,n.iv);return d(e,r.key,r.iv)},t.createDecipheriv=d},3615:(e,t,n)=>{var r=n(3834),s=n(8587),a=n(7172).Buffer,i=n(2385),o=n(3081),l=n(238),c=n(5883);function u(e,t,n){o.call(this),this._cache=new d,this._cipher=new l.AES(t),this._prev=a.from(n),this._mode=e,this._autopadding=!0}n(87)(u,o),u.prototype._update=function(e){var t,n;this._cache.add(e);for(var r=[];t=this._cache.get();)n=this._mode.encrypt(this,t),r.push(n);return a.concat(r)};var f=a.alloc(16,16);function d(){this.cache=a.allocUnsafe(0)}function _(e,t,n){var o=r[e.toLowerCase()];if(!o)throw new TypeError("invalid suite type");if("string"==typeof t&&(t=a.from(t)),t.length!==o.key/8)throw new TypeError("invalid key length "+t.length);if("string"==typeof n&&(n=a.from(n)),"GCM"!==o.mode&&n.length!==o.iv)throw new TypeError("invalid iv length "+n.length);return"stream"===o.type?new i(o.module,t,n):"auth"===o.type?new s(o.module,t,n):new u(o.module,t,n)}u.prototype._final=function(){var e=this._cache.flush();if(this._autopadding)return e=this._mode.encrypt(this,e),this._cipher.scrub(),e;if(!e.equals(f))throw this._cipher.scrub(),new Error("data not multiple of block length")},u.prototype.setAutoPadding=function(e){return this._autopadding=!!e,this},d.prototype.add=function(e){this.cache=a.concat([this.cache,e])},d.prototype.get=function(){if(this.cache.length>15){var e=this.cache.slice(0,16);return this.cache=this.cache.slice(16),e}return null},d.prototype.flush=function(){for(var e=16-this.cache.length,t=a.allocUnsafe(e),n=-1;++n<e;)t.writeUInt8(e,n);return a.concat([this.cache,t])},t.createCipheriv=_,t.createCipher=function(e,t){var n=r[e.toLowerCase()];if(!n)throw new TypeError("invalid suite type");var s=c(t,!1,n.key,n.iv);return _(e,s.key,s.iv)}},1219:(e,t,n)=>{var r=n(7172).Buffer,s=r.alloc(16,0);function a(e){var t=r.allocUnsafe(16);return t.writeUInt32BE(e[0]>>>0,0),t.writeUInt32BE(e[1]>>>0,4),t.writeUInt32BE(e[2]>>>0,8),t.writeUInt32BE(e[3]>>>0,12),t}function i(e){this.h=e,this.state=r.alloc(16,0),this.cache=r.allocUnsafe(0)}i.prototype.ghash=function(e){for(var t=-1;++t<e.length;)this.state[t]^=e[t];this._multiply()},i.prototype._multiply=function(){for(var e,t,n,r=[(e=this.h).readUInt32BE(0),e.readUInt32BE(4),e.readUInt32BE(8),e.readUInt32BE(12)],s=[0,0,0,0],i=-1;++i<128;){for(0!=(this.state[~~(i/8)]&1<<7-i%8)&&(s[0]^=r[0],s[1]^=r[1],s[2]^=r[2],s[3]^=r[3]),n=0!=(1&r[3]),t=3;t>0;t--)r[t]=r[t]>>>1|(1&r[t-1])<<31;r[0]=r[0]>>>1,n&&(r[0]=r[0]^225<<24)}this.state=a(s)},i.prototype.update=function(e){var t;for(this.cache=r.concat([this.cache,e]);this.cache.length>=16;)t=this.cache.slice(0,16),this.cache=this.cache.slice(16),this.ghash(t)},i.prototype.final=function(e,t){return this.cache.length&&this.ghash(r.concat([this.cache,s],16)),this.ghash(a([0,e,0,t])),this.state},e.exports=i},3480:e=>{e.exports=function(e){for(var t,n=e.length;n--;){if(255!==(t=e.readUInt8(n))){t++,e.writeUInt8(t,n);break}e.writeUInt8(0,n)}}},6280:(e,t,n)=>{var r=n(7752);t.encrypt=function(e,t){var n=r(t,e._prev);return e._prev=e._cipher.encryptBlock(n),e._prev},t.decrypt=function(e,t){var n=e._prev;e._prev=t;var s=e._cipher.decryptBlock(t);return r(s,n)}},392:(e,t,n)=>{var r=n(7172).Buffer,s=n(7752);function a(e,t,n){var a=t.length,i=s(t,e._cache);return e._cache=e._cache.slice(a),e._prev=r.concat([e._prev,n?t:i]),i}t.encrypt=function(e,t,n){for(var s,i=r.allocUnsafe(0);t.length;){if(0===e._cache.length&&(e._cache=e._cipher.encryptBlock(e._prev),e._prev=r.allocUnsafe(0)),!(e._cache.length<=t.length)){i=r.concat([i,a(e,t,n)]);break}s=e._cache.length,i=r.concat([i,a(e,t.slice(0,s),n)]),t=t.slice(s)}return i}},5739:(e,t,n)=>{var r=n(7172).Buffer;function s(e,t,n){for(var r,s,i=-1,o=0;++i<8;)r=t&1<<7-i?128:0,o+=(128&(s=e._cipher.encryptBlock(e._prev)[0]^r))>>i%8,e._prev=a(e._prev,n?r:s);return o}function a(e,t){var n=e.length,s=-1,a=r.allocUnsafe(e.length);for(e=r.concat([e,r.from([t])]);++s<n;)a[s]=e[s]<<1|e[s+1]>>7;return a}t.encrypt=function(e,t,n){for(var a=t.length,i=r.allocUnsafe(a),o=-1;++o<a;)i[o]=s(e,t[o],n);return i}},2228:(e,t,n)=>{var r=n(7172).Buffer;function s(e,t,n){var s=e._cipher.encryptBlock(e._prev)[0]^t;return e._prev=r.concat([e._prev.slice(1),r.from([n?t:s])]),s}t.encrypt=function(e,t,n){for(var a=t.length,i=r.allocUnsafe(a),o=-1;++o<a;)i[o]=s(e,t[o],n);return i}},2751:(e,t,n)=>{var r=n(7752),s=n(7172).Buffer,a=n(3480);function i(e){var t=e._cipher.encryptBlockRaw(e._prev);return a(e._prev),t}t.encrypt=function(e,t){var n=Math.ceil(t.length/16),a=e._cache.length;e._cache=s.concat([e._cache,s.allocUnsafe(16*n)]);for(var o=0;o<n;o++){var l=i(e),c=a+16*o;e._cache.writeUInt32BE(l[0],c+0),e._cache.writeUInt32BE(l[1],c+4),e._cache.writeUInt32BE(l[2],c+8),e._cache.writeUInt32BE(l[3],c+12)}var u=e._cache.slice(0,t.length);return e._cache=e._cache.slice(t.length),r(t,u)}},2437:(e,t)=>{t.encrypt=function(e,t){return e._cipher.encryptBlock(t)},t.decrypt=function(e,t){return e._cipher.decryptBlock(t)}},3834:(e,t,n)=>{var r={ECB:n(2437),CBC:n(6280),CFB:n(392),CFB8:n(2228),CFB1:n(5739),OFB:n(8428),CTR:n(2751),GCM:n(2751)},s=n(4636);for(var a in s)s[a].module=r[s[a].mode];e.exports=s},8428:(e,t,n)=>{var r=n(816).Buffer,s=n(7752);function a(e){return e._prev=e._cipher.encryptBlock(e._prev),e._prev}t.encrypt=function(e,t){for(;e._cache.length<t.length;)e._cache=r.concat([e._cache,a(e)]);var n=e._cache.slice(0,t.length);return e._cache=e._cache.slice(t.length),s(t,n)}},2385:(e,t,n)=>{var r=n(238),s=n(7172).Buffer,a=n(3081);function i(e,t,n,i){a.call(this),this._cipher=new r.AES(t),this._prev=s.from(n),this._cache=s.allocUnsafe(0),this._secCache=s.allocUnsafe(0),this._decrypt=i,this._mode=e}n(87)(i,a),i.prototype._update=function(e){return this._mode.encrypt(this,e,this._decrypt)},i.prototype._final=function(){this._cipher.scrub()},e.exports=i},1240:(e,t,n)=>{n(5681),n(8901),n(3834),n(1035),n(5883)},5681:(e,t,n)=>{var r=n(3081),s=n(7191),a=n(87),i=n(7172).Buffer,o={"des-ede3-cbc":s.CBC.instantiate(s.EDE),"des-ede3":s.EDE,"des-ede-cbc":s.CBC.instantiate(s.EDE),"des-ede":s.EDE,"des-cbc":s.CBC.instantiate(s.DES),"des-ecb":s.DES};function l(e){r.call(this);var t,n=e.mode.toLowerCase(),s=o[n];t=e.decrypt?"decrypt":"encrypt";var a=e.key;i.isBuffer(a)||(a=i.from(a)),"des-ede"!==n&&"des-ede-cbc"!==n||(a=i.concat([a,a.slice(0,8)]));var l=e.iv;i.isBuffer(l)||(l=i.from(l)),this._des=s.create({key:a,iv:l,type:t})}o.des=o["des-cbc"],o.des3=o["des-ede3-cbc"],e.exports=l,a(l,r),l.prototype._update=function(e){return i.from(this._des.update(e))},l.prototype._final=function(){return i.from(this._des.final())}},1035:(e,t)=>{t["des-ecb"]={key:8,iv:0},t["des-cbc"]=t.des={key:8,iv:8},t["des-ede3-cbc"]=t.des3={key:24,iv:8},t["des-ede3"]={key:24,iv:0},t["des-ede-cbc"]={key:16,iv:8},t["des-ede"]={key:16,iv:0}},7752:(e,t,n)=>{var r=n(816).Buffer;e.exports=function(e,t){for(var n=Math.min(e.length,t.length),s=new r(n),a=0;a<n;++a)s[a]=e[a]^t[a];return s}},816:(e,t,n)=>{const r=n(4782),s=n(8898),a="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;t.Buffer=l,t.SlowBuffer=function(e){return+e!=e&&(e=0),l.alloc(+e)},t.INSPECT_MAX_BYTES=50;const i=2147483647;function o(e){if(e>i)throw new RangeError('The value "'+e+'" is invalid for option "size"');const t=new Uint8Array(e);return Object.setPrototypeOf(t,l.prototype),t}function l(e,t,n){if("number"==typeof e){if("string"==typeof t)throw new TypeError('The "string" argument must be of type string. Received type number');return f(e)}return c(e,t,n)}function c(e,t,n){if("string"==typeof e)return function(e,t){if("string"==typeof t&&""!==t||(t="utf8"),!l.isEncoding(t))throw new TypeError("Unknown encoding: "+t);const n=0|p(e,t);let r=o(n);const s=r.write(e,t);return s!==n&&(r=r.slice(0,s)),r}(e,t);if(ArrayBuffer.isView(e))return function(e){if(V(e,Uint8Array)){const t=new Uint8Array(e);return _(t.buffer,t.byteOffset,t.byteLength)}return d(e)}(e);if(null==e)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(V(e,ArrayBuffer)||e&&V(e.buffer,ArrayBuffer))return _(e,t,n);if("undefined"!=typeof SharedArrayBuffer&&(V(e,SharedArrayBuffer)||e&&V(e.buffer,SharedArrayBuffer)))return _(e,t,n);if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type number');const r=e.valueOf&&e.valueOf();if(null!=r&&r!==e)return l.from(r,t,n);const s=function(e){if(l.isBuffer(e)){const t=0|h(e.length),n=o(t);return 0===n.length||e.copy(n,0,0,t),n}return void 0!==e.length?"number"!=typeof e.length||J(e.length)?o(0):d(e):"Buffer"===e.type&&Array.isArray(e.data)?d(e.data):void 0}(e);if(s)return s;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof e[Symbol.toPrimitive])return l.from(e[Symbol.toPrimitive]("string"),t,n);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}function u(e){if("number"!=typeof e)throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function f(e){return u(e),o(e<0?0:0|h(e))}function d(e){const t=e.length<0?0:0|h(e.length),n=o(t);for(let r=0;r<t;r+=1)n[r]=255&e[r];return n}function _(e,t,n){if(t<0||e.byteLength<t)throw new RangeError('"offset" is outside of buffer bounds');if(e.byteLength<t+(n||0))throw new RangeError('"length" is outside of buffer bounds');let r;return r=void 0===t&&void 0===n?new Uint8Array(e):void 0===n?new Uint8Array(e,t):new Uint8Array(e,t,n),Object.setPrototypeOf(r,l.prototype),r}function h(e){if(e>=i)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i.toString(16)+" bytes");return 0|e}function p(e,t){if(l.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||V(e,ArrayBuffer))return e.byteLength;if("string"!=typeof e)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);const n=e.length,r=arguments.length>2&&!0===arguments[2];if(!r&&0===n)return 0;let s=!1;for(;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":return Q(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return Y(e).length;default:if(s)return r?-1:Q(e).length;t=(""+t).toLowerCase(),s=!0}}function g(e,t,n){let r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return I(this,t,n);case"utf8":case"utf-8":return S(this,t,n);case"ascii":return P(this,t,n);case"latin1":case"binary":return R(this,t,n);case"base64":return C(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return N(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function b(e,t,n){const r=e[t];e[t]=e[n],e[n]=r}function m(e,t,n,r,s){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),J(n=+n)&&(n=s?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(s)return-1;n=e.length-1}else if(n<0){if(!s)return-1;n=0}if("string"==typeof t&&(t=l.from(t,r)),l.isBuffer(t))return 0===t.length?-1:y(e,t,n,r,s);if("number"==typeof t)return t&=255,"function"==typeof Uint8Array.prototype.indexOf?s?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):y(e,[t],n,r,s);throw new TypeError("val must be string, number or Buffer")}function y(e,t,n,r,s){let a,i=1,o=e.length,l=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;i=2,o/=2,l/=2,n/=2}function c(e,t){return 1===i?e[t]:e.readUInt16BE(t*i)}if(s){let r=-1;for(a=n;a<o;a++)if(c(e,a)===c(t,-1===r?0:a-r)){if(-1===r&&(r=a),a-r+1===l)return r*i}else-1!==r&&(a-=a-r),r=-1}else for(n+l>o&&(n=o-l),a=n;a>=0;a--){let n=!0;for(let r=0;r<l;r++)if(c(e,a+r)!==c(t,r)){n=!1;break}if(n)return a}return-1}function w(e,t,n,r){n=Number(n)||0;const s=e.length-n;r?(r=Number(r))>s&&(r=s):r=s;const a=t.length;let i;for(r>a/2&&(r=a/2),i=0;i<r;++i){const r=parseInt(t.substr(2*i,2),16);if(J(r))return i;e[n+i]=r}return i}function v(e,t,n,r){return X(Q(t,e.length-n),e,n,r)}function E(e,t,n,r){return X(function(e){const t=[];for(let n=0;n<e.length;++n)t.push(255&e.charCodeAt(n));return t}(t),e,n,r)}function A(e,t,n,r){return X(Y(t),e,n,r)}function L(e,t,n,r){return X(function(e,t){let n,r,s;const a=[];for(let i=0;i<e.length&&!((t-=2)<0);++i)n=e.charCodeAt(i),r=n>>8,s=n%256,a.push(s),a.push(r);return a}(t,e.length-n),e,n,r)}function C(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function S(e,t,n){n=Math.min(e.length,n);const r=[];let s=t;for(;s<n;){const t=e[s];let a=null,i=t>239?4:t>223?3:t>191?2:1;if(s+i<=n){let n,r,o,l;switch(i){case 1:t<128&&(a=t);break;case 2:n=e[s+1],128==(192&n)&&(l=(31&t)<<6|63&n,l>127&&(a=l));break;case 3:n=e[s+1],r=e[s+2],128==(192&n)&&128==(192&r)&&(l=(15&t)<<12|(63&n)<<6|63&r,l>2047&&(l<55296||l>57343)&&(a=l));break;case 4:n=e[s+1],r=e[s+2],o=e[s+3],128==(192&n)&&128==(192&r)&&128==(192&o)&&(l=(15&t)<<18|(63&n)<<12|(63&r)<<6|63&o,l>65535&&l<1114112&&(a=l))}}null===a?(a=65533,i=1):a>65535&&(a-=65536,r.push(a>>>10&1023|55296),a=56320|1023&a),r.push(a),s+=i}return function(e){const t=e.length;if(t<=T)return String.fromCharCode.apply(String,e);let n="",r=0;for(;r<t;)n+=String.fromCharCode.apply(String,e.slice(r,r+=T));return n}(r)}t.kMaxLength=i,l.TYPED_ARRAY_SUPPORT=function(){try{const e=new Uint8Array(1),t={foo:function(){return 42}};return Object.setPrototypeOf(t,Uint8Array.prototype),Object.setPrototypeOf(e,t),42===e.foo()}catch(e){return!1}}(),l.TYPED_ARRAY_SUPPORT||"undefined"==typeof console||"function"!=typeof console.error||console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."),Object.defineProperty(l.prototype,"parent",{enumerable:!0,get:function(){if(l.isBuffer(this))return this.buffer}}),Object.defineProperty(l.prototype,"offset",{enumerable:!0,get:function(){if(l.isBuffer(this))return this.byteOffset}}),l.poolSize=8192,l.from=function(e,t,n){return c(e,t,n)},Object.setPrototypeOf(l.prototype,Uint8Array.prototype),Object.setPrototypeOf(l,Uint8Array),l.alloc=function(e,t,n){return function(e,t,n){return u(e),e<=0?o(e):void 0!==t?"string"==typeof n?o(e).fill(t,n):o(e).fill(t):o(e)}(e,t,n)},l.allocUnsafe=function(e){return f(e)},l.allocUnsafeSlow=function(e){return f(e)},l.isBuffer=function(e){return null!=e&&!0===e._isBuffer&&e!==l.prototype},l.compare=function(e,t){if(V(e,Uint8Array)&&(e=l.from(e,e.offset,e.byteLength)),V(t,Uint8Array)&&(t=l.from(t,t.offset,t.byteLength)),!l.isBuffer(e)||!l.isBuffer(t))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(e===t)return 0;let n=e.length,r=t.length;for(let s=0,a=Math.min(n,r);s<a;++s)if(e[s]!==t[s]){n=e[s],r=t[s];break}return n<r?-1:r<n?1:0},l.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},l.concat=function(e,t){if(!Array.isArray(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return l.alloc(0);let n;if(void 0===t)for(t=0,n=0;n<e.length;++n)t+=e[n].length;const r=l.allocUnsafe(t);let s=0;for(n=0;n<e.length;++n){let t=e[n];if(V(t,Uint8Array))s+t.length>r.length?(l.isBuffer(t)||(t=l.from(t)),t.copy(r,s)):Uint8Array.prototype.set.call(r,t,s);else{if(!l.isBuffer(t))throw new TypeError('"list" argument must be an Array of Buffers');t.copy(r,s)}s+=t.length}return r},l.byteLength=p,l.prototype._isBuffer=!0,l.prototype.swap16=function(){const e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let t=0;t<e;t+=2)b(this,t,t+1);return this},l.prototype.swap32=function(){const e=this.length;if(e%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let t=0;t<e;t+=4)b(this,t,t+3),b(this,t+1,t+2);return this},l.prototype.swap64=function(){const e=this.length;if(e%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let t=0;t<e;t+=8)b(this,t,t+7),b(this,t+1,t+6),b(this,t+2,t+5),b(this,t+3,t+4);return this},l.prototype.toString=function(){const e=this.length;return 0===e?"":0===arguments.length?S(this,0,e):g.apply(this,arguments)},l.prototype.toLocaleString=l.prototype.toString,l.prototype.equals=function(e){if(!l.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===l.compare(this,e)},l.prototype.inspect=function(){let e="";const n=t.INSPECT_MAX_BYTES;return e=this.toString("hex",0,n).replace(/(.{2})/g,"$1 ").trim(),this.length>n&&(e+=" ... "),"<Buffer "+e+">"},a&&(l.prototype[a]=l.prototype.inspect),l.prototype.compare=function(e,t,n,r,s){if(V(e,Uint8Array)&&(e=l.from(e,e.offset,e.byteLength)),!l.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===s&&(s=this.length),t<0||n>e.length||r<0||s>this.length)throw new RangeError("out of range index");if(r>=s&&t>=n)return 0;if(r>=s)return-1;if(t>=n)return 1;if(this===e)return 0;let a=(s>>>=0)-(r>>>=0),i=(n>>>=0)-(t>>>=0);const o=Math.min(a,i),c=this.slice(r,s),u=e.slice(t,n);for(let e=0;e<o;++e)if(c[e]!==u[e]){a=c[e],i=u[e];break}return a<i?-1:i<a?1:0},l.prototype.includes=function(e,t,n){return-1!==this.indexOf(e,t,n)},l.prototype.indexOf=function(e,t,n){return m(this,e,t,n,!0)},l.prototype.lastIndexOf=function(e,t,n){return m(this,e,t,n,!1)},l.prototype.write=function(e,t,n,r){if(void 0===t)r="utf8",n=this.length,t=0;else if(void 0===n&&"string"==typeof t)r=t,n=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t>>>=0,isFinite(n)?(n>>>=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}const s=this.length-t;if((void 0===n||n>s)&&(n=s),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");let a=!1;for(;;)switch(r){case"hex":return w(this,e,t,n);case"utf8":case"utf-8":return v(this,e,t,n);case"ascii":case"latin1":case"binary":return E(this,e,t,n);case"base64":return A(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return L(this,e,t,n);default:if(a)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),a=!0}},l.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};const T=4096;function P(e,t,n){let r="";n=Math.min(e.length,n);for(let s=t;s<n;++s)r+=String.fromCharCode(127&e[s]);return r}function R(e,t,n){let r="";n=Math.min(e.length,n);for(let s=t;s<n;++s)r+=String.fromCharCode(e[s]);return r}function I(e,t,n){const r=e.length;(!t||t<0)&&(t=0),(!n||n<0||n>r)&&(n=r);let s="";for(let r=t;r<n;++r)s+=K[e[r]];return s}function N(e,t,n){const r=e.slice(t,n);let s="";for(let e=0;e<r.length-1;e+=2)s+=String.fromCharCode(r[e]+256*r[e+1]);return s}function x(e,t,n){if(e%1!=0||e<0)throw new RangeError("offset is not uint");if(e+t>n)throw new RangeError("Trying to access beyond buffer length")}function k(e,t,n,r,s,a){if(!l.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>s||t<a)throw new RangeError('"value" argument is out of bounds');if(n+r>e.length)throw new RangeError("Index out of range")}function O(e,t,n,r,s){j(t,r,s,e,n,7);let a=Number(t&BigInt(4294967295));e[n++]=a,a>>=8,e[n++]=a,a>>=8,e[n++]=a,a>>=8,e[n++]=a;let i=Number(t>>BigInt(32)&BigInt(4294967295));return e[n++]=i,i>>=8,e[n++]=i,i>>=8,e[n++]=i,i>>=8,e[n++]=i,n}function B(e,t,n,r,s){j(t,r,s,e,n,7);let a=Number(t&BigInt(4294967295));e[n+7]=a,a>>=8,e[n+6]=a,a>>=8,e[n+5]=a,a>>=8,e[n+4]=a;let i=Number(t>>BigInt(32)&BigInt(4294967295));return e[n+3]=i,i>>=8,e[n+2]=i,i>>=8,e[n+1]=i,i>>=8,e[n]=i,n+8}function D(e,t,n,r,s,a){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function F(e,t,n,r,a){return t=+t,n>>>=0,a||D(e,0,n,4),s.write(e,t,n,r,23,4),n+4}function M(e,t,n,r,a){return t=+t,n>>>=0,a||D(e,0,n,8),s.write(e,t,n,r,52,8),n+8}l.prototype.slice=function(e,t){const n=this.length;(e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t<e&&(t=e);const r=this.subarray(e,t);return Object.setPrototypeOf(r,l.prototype),r},l.prototype.readUintLE=l.prototype.readUIntLE=function(e,t,n){e>>>=0,t>>>=0,n||x(e,t,this.length);let r=this[e],s=1,a=0;for(;++a<t&&(s*=256);)r+=this[e+a]*s;return r},l.prototype.readUintBE=l.prototype.readUIntBE=function(e,t,n){e>>>=0,t>>>=0,n||x(e,t,this.length);let r=this[e+--t],s=1;for(;t>0&&(s*=256);)r+=this[e+--t]*s;return r},l.prototype.readUint8=l.prototype.readUInt8=function(e,t){return e>>>=0,t||x(e,1,this.length),this[e]},l.prototype.readUint16LE=l.prototype.readUInt16LE=function(e,t){return e>>>=0,t||x(e,2,this.length),this[e]|this[e+1]<<8},l.prototype.readUint16BE=l.prototype.readUInt16BE=function(e,t){return e>>>=0,t||x(e,2,this.length),this[e]<<8|this[e+1]},l.prototype.readUint32LE=l.prototype.readUInt32LE=function(e,t){return e>>>=0,t||x(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},l.prototype.readUint32BE=l.prototype.readUInt32BE=function(e,t){return e>>>=0,t||x(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},l.prototype.readBigUInt64LE=q((function(e){Z(e>>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||G(e,this.length-8);const r=t+256*this[++e]+65536*this[++e]+this[++e]*2**24,s=this[++e]+256*this[++e]+65536*this[++e]+n*2**24;return BigInt(r)+(BigInt(s)<<BigInt(32))})),l.prototype.readBigUInt64BE=q((function(e){Z(e>>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||G(e,this.length-8);const r=t*2**24+65536*this[++e]+256*this[++e]+this[++e],s=this[++e]*2**24+65536*this[++e]+256*this[++e]+n;return(BigInt(r)<<BigInt(32))+BigInt(s)})),l.prototype.readIntLE=function(e,t,n){e>>>=0,t>>>=0,n||x(e,t,this.length);let r=this[e],s=1,a=0;for(;++a<t&&(s*=256);)r+=this[e+a]*s;return s*=128,r>=s&&(r-=Math.pow(2,8*t)),r},l.prototype.readIntBE=function(e,t,n){e>>>=0,t>>>=0,n||x(e,t,this.length);let r=t,s=1,a=this[e+--r];for(;r>0&&(s*=256);)a+=this[e+--r]*s;return s*=128,a>=s&&(a-=Math.pow(2,8*t)),a},l.prototype.readInt8=function(e,t){return e>>>=0,t||x(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},l.prototype.readInt16LE=function(e,t){e>>>=0,t||x(e,2,this.length);const n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},l.prototype.readInt16BE=function(e,t){e>>>=0,t||x(e,2,this.length);const n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},l.prototype.readInt32LE=function(e,t){return e>>>=0,t||x(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},l.prototype.readInt32BE=function(e,t){return e>>>=0,t||x(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},l.prototype.readBigInt64LE=q((function(e){Z(e>>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||G(e,this.length-8);const r=this[e+4]+256*this[e+5]+65536*this[e+6]+(n<<24);return(BigInt(r)<<BigInt(32))+BigInt(t+256*this[++e]+65536*this[++e]+this[++e]*2**24)})),l.prototype.readBigInt64BE=q((function(e){Z(e>>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||G(e,this.length-8);const r=(t<<24)+65536*this[++e]+256*this[++e]+this[++e];return(BigInt(r)<<BigInt(32))+BigInt(this[++e]*2**24+65536*this[++e]+256*this[++e]+n)})),l.prototype.readFloatLE=function(e,t){return e>>>=0,t||x(e,4,this.length),s.read(this,e,!0,23,4)},l.prototype.readFloatBE=function(e,t){return e>>>=0,t||x(e,4,this.length),s.read(this,e,!1,23,4)},l.prototype.readDoubleLE=function(e,t){return e>>>=0,t||x(e,8,this.length),s.read(this,e,!0,52,8)},l.prototype.readDoubleBE=function(e,t){return e>>>=0,t||x(e,8,this.length),s.read(this,e,!1,52,8)},l.prototype.writeUintLE=l.prototype.writeUIntLE=function(e,t,n,r){e=+e,t>>>=0,n>>>=0,r||k(this,e,t,n,Math.pow(2,8*n)-1,0);let s=1,a=0;for(this[t]=255&e;++a<n&&(s*=256);)this[t+a]=e/s&255;return t+n},l.prototype.writeUintBE=l.prototype.writeUIntBE=function(e,t,n,r){e=+e,t>>>=0,n>>>=0,r||k(this,e,t,n,Math.pow(2,8*n)-1,0);let s=n-1,a=1;for(this[t+s]=255&e;--s>=0&&(a*=256);)this[t+s]=e/a&255;return t+n},l.prototype.writeUint8=l.prototype.writeUInt8=function(e,t,n){return e=+e,t>>>=0,n||k(this,e,t,1,255,0),this[t]=255&e,t+1},l.prototype.writeUint16LE=l.prototype.writeUInt16LE=function(e,t,n){return e=+e,t>>>=0,n||k(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},l.prototype.writeUint16BE=l.prototype.writeUInt16BE=function(e,t,n){return e=+e,t>>>=0,n||k(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},l.prototype.writeUint32LE=l.prototype.writeUInt32LE=function(e,t,n){return e=+e,t>>>=0,n||k(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},l.prototype.writeUint32BE=l.prototype.writeUInt32BE=function(e,t,n){return e=+e,t>>>=0,n||k(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},l.prototype.writeBigUInt64LE=q((function(e,t=0){return O(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),l.prototype.writeBigUInt64BE=q((function(e,t=0){return B(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),l.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t>>>=0,!r){const r=Math.pow(2,8*n-1);k(this,e,t,n,r-1,-r)}let s=0,a=1,i=0;for(this[t]=255&e;++s<n&&(a*=256);)e<0&&0===i&&0!==this[t+s-1]&&(i=1),this[t+s]=(e/a>>0)-i&255;return t+n},l.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t>>>=0,!r){const r=Math.pow(2,8*n-1);k(this,e,t,n,r-1,-r)}let s=n-1,a=1,i=0;for(this[t+s]=255&e;--s>=0&&(a*=256);)e<0&&0===i&&0!==this[t+s+1]&&(i=1),this[t+s]=(e/a>>0)-i&255;return t+n},l.prototype.writeInt8=function(e,t,n){return e=+e,t>>>=0,n||k(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},l.prototype.writeInt16LE=function(e,t,n){return e=+e,t>>>=0,n||k(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},l.prototype.writeInt16BE=function(e,t,n){return e=+e,t>>>=0,n||k(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},l.prototype.writeInt32LE=function(e,t,n){return e=+e,t>>>=0,n||k(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},l.prototype.writeInt32BE=function(e,t,n){return e=+e,t>>>=0,n||k(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},l.prototype.writeBigInt64LE=q((function(e,t=0){return O(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),l.prototype.writeBigInt64BE=q((function(e,t=0){return B(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),l.prototype.writeFloatLE=function(e,t,n){return F(this,e,t,!0,n)},l.prototype.writeFloatBE=function(e,t,n){return F(this,e,t,!1,n)},l.prototype.writeDoubleLE=function(e,t,n){return M(this,e,t,!0,n)},l.prototype.writeDoubleBE=function(e,t,n){return M(this,e,t,!1,n)},l.prototype.copy=function(e,t,n,r){if(!l.isBuffer(e))throw new TypeError("argument should be a Buffer");if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r<n&&(r=n),r===n)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(n<0||n>=this.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t<r-n&&(r=e.length-t+n);const s=r-n;return this===e&&"function"==typeof Uint8Array.prototype.copyWithin?this.copyWithin(t,n,r):Uint8Array.prototype.set.call(e,this.subarray(n,r),t),s},l.prototype.fill=function(e,t,n,r){if("string"==typeof e){if("string"==typeof t?(r=t,t=0,n=this.length):"string"==typeof n&&(r=n,n=this.length),void 0!==r&&"string"!=typeof r)throw new TypeError("encoding must be a string");if("string"==typeof r&&!l.isEncoding(r))throw new TypeError("Unknown encoding: "+r);if(1===e.length){const t=e.charCodeAt(0);("utf8"===r&&t<128||"latin1"===r)&&(e=t)}}else"number"==typeof e?e&=255:"boolean"==typeof e&&(e=Number(e));if(t<0||this.length<t||this.length<n)throw new RangeError("Out of range index");if(n<=t)return this;let s;if(t>>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(s=t;s<n;++s)this[s]=e;else{const a=l.isBuffer(e)?e:l.from(e,r),i=a.length;if(0===i)throw new TypeError('The value "'+e+'" is invalid for argument "value"');for(s=0;s<n-t;++s)this[s+t]=a[s%i]}return this};const U={};function z(e,t,n){U[e]=class extends n{constructor(){super(),Object.defineProperty(this,"message",{value:t.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${e}]`,this.stack,delete this.name}get code(){return e}set code(e){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:e,writable:!0})}toString(){return`${this.name} [${e}]: ${this.message}`}}}function H(e){let t="",n=e.length;const r="-"===e[0]?1:0;for(;n>=r+4;n-=3)t=`_${e.slice(n-3,n)}${t}`;return`${e.slice(0,n)}${t}`}function j(e,t,n,r,s,a){if(e>n||e<t){const r="bigint"==typeof t?"n":"";let s;throw s=a>3?0===t||t===BigInt(0)?`>= 0${r} and < 2${r} ** ${8*(a+1)}${r}`:`>= -(2${r} ** ${8*(a+1)-1}${r}) and < 2 ** ${8*(a+1)-1}${r}`:`>= ${t}${r} and <= ${n}${r}`,new U.ERR_OUT_OF_RANGE("value",s,e)}!function(e,t,n){Z(t,"offset"),void 0!==e[t]&&void 0!==e[t+n]||G(t,e.length-(n+1))}(r,s,a)}function Z(e,t){if("number"!=typeof e)throw new U.ERR_INVALID_ARG_TYPE(t,"number",e)}function G(e,t,n){if(Math.floor(e)!==e)throw Z(e,n),new U.ERR_OUT_OF_RANGE(n||"offset","an integer",e);if(t<0)throw new U.ERR_BUFFER_OUT_OF_BOUNDS;throw new U.ERR_OUT_OF_RANGE(n||"offset",`>= ${n?1:0} and <= ${t}`,e)}z("ERR_BUFFER_OUT_OF_BOUNDS",(function(e){return e?`${e} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"}),RangeError),z("ERR_INVALID_ARG_TYPE",(function(e,t){return`The "${e}" argument must be of type number. Received type ${typeof t}`}),TypeError),z("ERR_OUT_OF_RANGE",(function(e,t,n){let r=`The value of "${e}" is out of range.`,s=n;return Number.isInteger(n)&&Math.abs(n)>2**32?s=H(String(n)):"bigint"==typeof n&&(s=String(n),(n>BigInt(2)**BigInt(32)||n<-(BigInt(2)**BigInt(32)))&&(s=H(s)),s+="n"),r+=` It must be ${t}. Received ${s}`,r}),RangeError);const W=/[^+/0-9A-Za-z-_]/g;function Q(e,t){let n;t=t||1/0;const r=e.length;let s=null;const a=[];for(let i=0;i<r;++i){if(n=e.charCodeAt(i),n>55295&&n<57344){if(!s){if(n>56319){(t-=3)>-1&&a.push(239,191,189);continue}if(i+1===r){(t-=3)>-1&&a.push(239,191,189);continue}s=n;continue}if(n<56320){(t-=3)>-1&&a.push(239,191,189),s=n;continue}n=65536+(s-55296<<10|n-56320)}else s&&(t-=3)>-1&&a.push(239,191,189);if(s=null,n<128){if((t-=1)<0)break;a.push(n)}else if(n<2048){if((t-=2)<0)break;a.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;a.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;a.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return a}function Y(e){return r.toByteArray(function(e){if((e=(e=e.split("=")[0]).trim().replace(W,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function X(e,t,n,r){let s;for(s=0;s<r&&!(s+n>=t.length||s>=e.length);++s)t[s+n]=e[s];return s}function V(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}function J(e){return e!=e}const K=function(){const e="0123456789abcdef",t=new Array(256);for(let n=0;n<16;++n){const r=16*n;for(let s=0;s<16;++s)t[r+s]=e[n]+e[s]}return t}();function q(e){return"undefined"==typeof BigInt?$:e}function $(){throw new Error("BigInt not supported")}},3081:(e,t,n)=>{var r=n(7172).Buffer,s=n(3424).Transform,a=n(4361).s;function i(e){s.call(this),this.hashMode="string"==typeof e,this.hashMode?this[e]=this._finalOrDigest:this.final=this._finalOrDigest,this._final&&(this.__final=this._final,this._final=null),this._decoder=null,this._encoding=null}n(87)(i,s),i.prototype.update=function(e,t,n){"string"==typeof e&&(e=r.from(e,t));var s=this._update(e);return this.hashMode?this:(n&&(s=this._toString(s,n)),s)},i.prototype.setAutoPadding=function(){},i.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")},i.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")},i.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")},i.prototype._transform=function(e,t,n){var r;try{this.hashMode?this._update(e):this.push(this._update(e))}catch(e){r=e}finally{n(r)}},i.prototype._flush=function(e){var t;try{this.push(this.__final())}catch(e){t=e}e(t)},i.prototype._finalOrDigest=function(e){var t=this.__final()||r.alloc(0);return e&&(t=this._toString(t,e,!0)),t},i.prototype._toString=function(e,t,n){if(this._decoder||(this._decoder=new a(t),this._encoding=t),this._encoding!==t)throw new Error("can't switch encodings");var r=this._decoder.write(e);return n&&(r+=this._decoder.end()),r},e.exports=i},5862:e=>{var t=1e3,n=60*t,r=60*n,s=24*r;function a(e,t,n,r){var s=t>=1.5*n;return Math.round(e/n)+" "+r+(s?"s":"")}e.exports=function(e,i){i=i||{};var o,l,c=typeof e;if("string"===c&&e.length>0)return function(e){if(!((e=String(e)).length>100)){var a=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(a){var i=parseFloat(a[1]);switch((a[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return 315576e5*i;case"weeks":case"week":case"w":return 6048e5*i;case"days":case"day":case"d":return i*s;case"hours":case"hour":case"hrs":case"hr":case"h":return i*r;case"minutes":case"minute":case"mins":case"min":case"m":return i*n;case"seconds":case"second":case"secs":case"sec":case"s":return i*t;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return i;default:return}}}}(e);if("number"===c&&isFinite(e))return i.long?(o=e,(l=Math.abs(o))>=s?a(o,l,s,"day"):l>=r?a(o,l,r,"hour"):l>=n?a(o,l,n,"minute"):l>=t?a(o,l,t,"second"):o+" ms"):function(e){var a=Math.abs(e);return a>=s?Math.round(e/s)+"d":a>=r?Math.round(e/r)+"h":a>=n?Math.round(e/n)+"m":a>=t?Math.round(e/t)+"s":e+"ms"}(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))}},6292:(e,t,n)=>{t.formatArgs=function(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+e.exports.humanize(this.diff),!this.useColors)return;const n="color: "+this.color;t.splice(1,0,n,"color: inherit");let r=0,s=0;t[0].replace(/%[a-zA-Z%]/g,(e=>{"%%"!==e&&(r++,"%c"===e&&(s=r))})),t.splice(s,0,n)},t.save=function(e){try{e?t.storage.setItem("debug",e):t.storage.removeItem("debug")}catch(e){}},t.load=function(){let e;try{e=t.storage.getItem("debug")}catch(e){}return!e&&"undefined"!=typeof process&&"env"in process&&(e={NODE_ENV:"production"}.DEBUG),e},t.useColors=function(){return!("undefined"==typeof window||!window.process||"renderer"!==window.process.type&&!window.process.__nwjs)||("undefined"==typeof navigator||!navigator.userAgent||!navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))&&("undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/))},t.storage=function(){try{return localStorage}catch(e){}}(),t.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),t.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],t.log=console.debug||console.log||(()=>{}),e.exports=n(9374)(t);const{formatters:r}=e.exports;r.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}},9374:(e,t,n)=>{e.exports=function(e){function t(e){let n,s,a,i=null;function o(...e){if(!o.enabled)return;const r=o,s=Number(new Date),a=s-(n||s);r.diff=a,r.prev=n,r.curr=s,n=s,e[0]=t.coerce(e[0]),"string"!=typeof e[0]&&e.unshift("%O");let i=0;e[0]=e[0].replace(/%([a-zA-Z%])/g,((n,s)=>{if("%%"===n)return"%";i++;const a=t.formatters[s];if("function"==typeof a){const t=e[i];n=a.call(r,t),e.splice(i,1),i--}return n})),t.formatArgs.call(r,e),(r.log||t.log).apply(r,e)}return o.namespace=e,o.useColors=t.useColors(),o.color=t.selectColor(e),o.extend=r,o.destroy=t.destroy,Object.defineProperty(o,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==i?i:(s!==t.namespaces&&(s=t.namespaces,a=t.enabled(e)),a),set:e=>{i=e}}),"function"==typeof t.init&&t.init(o),o}function r(e,n){const r=t(this.namespace+(void 0===n?":":n)+e);return r.log=this.log,r}function s(e){return e.toString().substring(2,e.toString().length-2).replace(/\.\*\?$/,"*")}return t.debug=t,t.default=t,t.coerce=function(e){return e instanceof Error?e.stack||e.message:e},t.disable=function(){const e=[...t.names.map(s),...t.skips.map(s).map((e=>"-"+e))].join(",");return t.enable(""),e},t.enable=function(e){let n;t.save(e),t.namespaces=e,t.names=[],t.skips=[];const r=("string"==typeof e?e:"").split(/[\s,]+/),s=r.length;for(n=0;n<s;n++)r[n]&&("-"===(e=r[n].replace(/\*/g,".*?"))[0]?t.skips.push(new RegExp("^"+e.slice(1)+"$")):t.names.push(new RegExp("^"+e+"$")))},t.enabled=function(e){if("*"===e[e.length-1])return!0;let n,r;for(n=0,r=t.skips.length;n<r;n++)if(t.skips[n].test(e))return!1;for(n=0,r=t.names.length;n<r;n++)if(t.names[n].test(e))return!0;return!1},t.humanize=n(5862),t.destroy=function(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")},Object.keys(e).forEach((n=>{t[n]=e[n]})),t.names=[],t.skips=[],t.formatters={},t.selectColor=function(e){let n=0;for(let t=0;t<e.length;t++)n=(n<<5)-n+e.charCodeAt(t),n|=0;return t.colors[Math.abs(n)%t.colors.length]},t.enable(t.load()),t}},7191:(e,t,n)=>{t.utils=n(5516),t.Cipher=n(4923),t.DES=n(225),t.CBC=n(8701),t.EDE=n(6540)},8701:(e,t,n)=>{var r=n(7859),s=n(87),a={};function i(e){r.equal(e.length,8,"Invalid IV length"),this.iv=new Array(8);for(var t=0;t<this.iv.length;t++)this.iv[t]=e[t]}t.instantiate=function(e){function t(t){e.call(this,t),this._cbcInit()}s(t,e);for(var n=Object.keys(a),r=0;r<n.length;r++){var i=n[r];t.prototype[i]=a[i]}return t.create=function(e){return new t(e)},t},a._cbcInit=function(){var e=new i(this.options.iv);this._cbcState=e},a._update=function(e,t,n,r){var s=this._cbcState,a=this.constructor.super_.prototype,i=s.iv;if("encrypt"===this.type){for(var o=0;o<this.blockSize;o++)i[o]^=e[t+o];for(a._update.call(this,i,0,n,r),o=0;o<this.blockSize;o++)i[o]=n[r+o]}else{for(a._update.call(this,e,t,n,r),o=0;o<this.blockSize;o++)n[r+o]^=i[o];for(o=0;o<this.blockSize;o++)i[o]=e[t+o]}}},4923:(e,t,n)=>{var r=n(7859);function s(e){this.options=e,this.type=this.options.type,this.blockSize=8,this._init(),this.buffer=new Array(this.blockSize),this.bufferOff=0,this.padding=!1!==e.padding}e.exports=s,s.prototype._init=function(){},s.prototype.update=function(e){return 0===e.length?[]:"decrypt"===this.type?this._updateDecrypt(e):this._updateEncrypt(e)},s.prototype._buffer=function(e,t){for(var n=Math.min(this.buffer.length-this.bufferOff,e.length-t),r=0;r<n;r++)this.buffer[this.bufferOff+r]=e[t+r];return this.bufferOff+=n,n},s.prototype._flushBuffer=function(e,t){return this._update(this.buffer,0,e,t),this.bufferOff=0,this.blockSize},s.prototype._updateEncrypt=function(e){var t=0,n=0,r=(this.bufferOff+e.length)/this.blockSize|0,s=new Array(r*this.blockSize);0!==this.bufferOff&&(t+=this._buffer(e,t),this.bufferOff===this.buffer.length&&(n+=this._flushBuffer(s,n)));for(var a=e.length-(e.length-t)%this.blockSize;t<a;t+=this.blockSize)this._update(e,t,s,n),n+=this.blockSize;for(;t<e.length;t++,this.bufferOff++)this.buffer[this.bufferOff]=e[t];return s},s.prototype._updateDecrypt=function(e){for(var t=0,n=0,r=Math.ceil((this.bufferOff+e.length)/this.blockSize)-1,s=new Array(r*this.blockSize);r>0;r--)t+=this._buffer(e,t),n+=this._flushBuffer(s,n);return t+=this._buffer(e,t),s},s.prototype.final=function(e){var t,n;return e&&(t=this.update(e)),n="encrypt"===this.type?this._finalEncrypt():this._finalDecrypt(),t?t.concat(n):n},s.prototype._pad=function(e,t){if(0===t)return!1;for(;t<e.length;)e[t++]=0;return!0},s.prototype._finalEncrypt=function(){if(!this._pad(this.buffer,this.bufferOff))return[];var e=new Array(this.blockSize);return this._update(this.buffer,0,e,0),e},s.prototype._unpad=function(e){return e},s.prototype._finalDecrypt=function(){r.equal(this.bufferOff,this.blockSize,"Not enough data to decrypt");var e=new Array(this.blockSize);return this._flushBuffer(e,0),this._unpad(e)}},225:(e,t,n)=>{var r=n(7859),s=n(87),a=n(5516),i=n(4923);function o(){this.tmp=new Array(2),this.keys=null}function l(e){i.call(this,e);var t=new o;this._desState=t,this.deriveKeys(t,e.key)}s(l,i),e.exports=l,l.create=function(e){return new l(e)};var c=[1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1];l.prototype.deriveKeys=function(e,t){e.keys=new Array(32),r.equal(t.length,this.blockSize,"Invalid key length");var n=a.readUInt32BE(t,0),s=a.readUInt32BE(t,4);a.pc1(n,s,e.tmp,0),n=e.tmp[0],s=e.tmp[1];for(var i=0;i<e.keys.length;i+=2){var o=c[i>>>1];n=a.r28shl(n,o),s=a.r28shl(s,o),a.pc2(n,s,e.keys,i)}},l.prototype._update=function(e,t,n,r){var s=this._desState,i=a.readUInt32BE(e,t),o=a.readUInt32BE(e,t+4);a.ip(i,o,s.tmp,0),i=s.tmp[0],o=s.tmp[1],"encrypt"===this.type?this._encrypt(s,i,o,s.tmp,0):this._decrypt(s,i,o,s.tmp,0),i=s.tmp[0],o=s.tmp[1],a.writeUInt32BE(n,i,r),a.writeUInt32BE(n,o,r+4)},l.prototype._pad=function(e,t){if(!1===this.padding)return!1;for(var n=e.length-t,r=t;r<e.length;r++)e[r]=n;return!0},l.prototype._unpad=function(e){if(!1===this.padding)return e;for(var t=e[e.length-1],n=e.length-t;n<e.length;n++)r.equal(e[n],t);return e.slice(0,e.length-t)},l.prototype._encrypt=function(e,t,n,r,s){for(var i=t,o=n,l=0;l<e.keys.length;l+=2){var c=e.keys[l],u=e.keys[l+1];a.expand(o,e.tmp,0),c^=e.tmp[0],u^=e.tmp[1];var f=a.substitute(c,u),d=o;o=(i^a.permute(f))>>>0,i=d}a.rip(o,i,r,s)},l.prototype._decrypt=function(e,t,n,r,s){for(var i=n,o=t,l=e.keys.length-2;l>=0;l-=2){var c=e.keys[l],u=e.keys[l+1];a.expand(i,e.tmp,0),c^=e.tmp[0],u^=e.tmp[1];var f=a.substitute(c,u),d=i;i=(o^a.permute(f))>>>0,o=d}a.rip(i,o,r,s)}},6540:(e,t,n)=>{var r=n(7859),s=n(87),a=n(4923),i=n(225);function o(e,t){r.equal(t.length,24,"Invalid key length");var n=t.slice(0,8),s=t.slice(8,16),a=t.slice(16,24);this.ciphers="encrypt"===e?[i.create({type:"encrypt",key:n}),i.create({type:"decrypt",key:s}),i.create({type:"encrypt",key:a})]:[i.create({type:"decrypt",key:a}),i.create({type:"encrypt",key:s}),i.create({type:"decrypt",key:n})]}function l(e){a.call(this,e);var t=new o(this.type,this.options.key);this._edeState=t}s(l,a),e.exports=l,l.create=function(e){return new l(e)},l.prototype._update=function(e,t,n,r){var s=this._edeState;s.ciphers[0]._update(e,t,n,r),s.ciphers[1]._update(n,r,n,r),s.ciphers[2]._update(n,r,n,r)},l.prototype._pad=i.prototype._pad,l.prototype._unpad=i.prototype._unpad},5516:(e,t)=>{t.readUInt32BE=function(e,t){return(e[0+t]<<24|e[1+t]<<16|e[2+t]<<8|e[3+t])>>>0},t.writeUInt32BE=function(e,t,n){e[0+n]=t>>>24,e[1+n]=t>>>16&255,e[2+n]=t>>>8&255,e[3+n]=255&t},t.ip=function(e,t,n,r){for(var s=0,a=0,i=6;i>=0;i-=2){for(var o=0;o<=24;o+=8)s<<=1,s|=t>>>o+i&1;for(o=0;o<=24;o+=8)s<<=1,s|=e>>>o+i&1}for(i=6;i>=0;i-=2){for(o=1;o<=25;o+=8)a<<=1,a|=t>>>o+i&1;for(o=1;o<=25;o+=8)a<<=1,a|=e>>>o+i&1}n[r+0]=s>>>0,n[r+1]=a>>>0},t.rip=function(e,t,n,r){for(var s=0,a=0,i=0;i<4;i++)for(var o=24;o>=0;o-=8)s<<=1,s|=t>>>o+i&1,s<<=1,s|=e>>>o+i&1;for(i=4;i<8;i++)for(o=24;o>=0;o-=8)a<<=1,a|=t>>>o+i&1,a<<=1,a|=e>>>o+i&1;n[r+0]=s>>>0,n[r+1]=a>>>0},t.pc1=function(e,t,n,r){for(var s=0,a=0,i=7;i>=5;i--){for(var o=0;o<=24;o+=8)s<<=1,s|=t>>o+i&1;for(o=0;o<=24;o+=8)s<<=1,s|=e>>o+i&1}for(o=0;o<=24;o+=8)s<<=1,s|=t>>o+i&1;for(i=1;i<=3;i++){for(o=0;o<=24;o+=8)a<<=1,a|=t>>o+i&1;for(o=0;o<=24;o+=8)a<<=1,a|=e>>o+i&1}for(o=0;o<=24;o+=8)a<<=1,a|=e>>o+i&1;n[r+0]=s>>>0,n[r+1]=a>>>0},t.r28shl=function(e,t){return e<<t&268435455|e>>>28-t};var n=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];t.pc2=function(e,t,r,s){for(var a=0,i=0,o=n.length>>>1,l=0;l<o;l++)a<<=1,a|=e>>>n[l]&1;for(l=o;l<n.length;l++)i<<=1,i|=t>>>n[l]&1;r[s+0]=a>>>0,r[s+1]=i>>>0},t.expand=function(e,t,n){var r=0,s=0;r=(1&e)<<5|e>>>27;for(var a=23;a>=15;a-=4)r<<=6,r|=e>>>a&63;for(a=11;a>=3;a-=4)s|=e>>>a&63,s<<=6;s|=(31&e)<<1|e>>>31,t[n+0]=r>>>0,t[n+1]=s>>>0};var r=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];t.substitute=function(e,t){for(var n=0,s=0;s<4;s++)n<<=4,n|=r[64*s+(e>>>18-6*s&63)];for(s=0;s<4;s++)n<<=4,n|=r[256+64*s+(t>>>18-6*s&63)];return n>>>0};var s=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];t.permute=function(e){for(var t=0,n=0;n<s.length;n++)t<<=1,t|=e>>>s[n]&1;return t>>>0},t.padSplit=function(e,t,n){for(var r=e.toString(2);r.length<t;)r="0"+r;for(var s=[],a=0;a<t;a+=n)s.push(r.slice(a,a+n));return s.join(" ")}},3302:e=>{e.exports=!1},343:e=>{var t,n="object"==typeof Reflect?Reflect:null,r=n&&"function"==typeof n.apply?n.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)};t=n&&"function"==typeof n.ownKeys?n.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var s=Number.isNaN||function(e){return e!=e};function a(){a.init.call(this)}e.exports=a,e.exports.once=function(e,t){return new Promise((function(n,r){function s(n){e.removeListener(t,a),r(n)}function a(){"function"==typeof e.removeListener&&e.removeListener("error",s),n([].slice.call(arguments))}p(e,t,a,{once:!0}),"error"!==t&&function(e,t,n){"function"==typeof e.on&&p(e,"error",t,{once:!0})}(e,s)}))},a.EventEmitter=a,a.prototype._events=void 0,a.prototype._eventsCount=0,a.prototype._maxListeners=void 0;var i=10;function o(e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function l(e){return void 0===e._maxListeners?a.defaultMaxListeners:e._maxListeners}function c(e,t,n,r){var s,a,i,c;if(o(n),void 0===(a=e._events)?(a=e._events=Object.create(null),e._eventsCount=0):(void 0!==a.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),a=e._events),i=a[t]),void 0===i)i=a[t]=n,++e._eventsCount;else if("function"==typeof i?i=a[t]=r?[n,i]:[i,n]:r?i.unshift(n):i.push(n),(s=l(e))>0&&i.length>s&&!i.warned){i.warned=!0;var u=new Error("Possible EventEmitter memory leak detected. "+i.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");u.name="MaxListenersExceededWarning",u.emitter=e,u.type=t,u.count=i.length,c=u,console&&console.warn&&console.warn(c)}return e}function u(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function f(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},s=u.bind(r);return s.listener=n,r.wrapFn=s,s}function d(e,t,n){var r=e._events;if(void 0===r)return[];var s=r[t];return void 0===s?[]:"function"==typeof s?n?[s.listener||s]:[s]:n?function(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}(s):h(s,s.length)}function _(e){var t=this._events;if(void 0!==t){var n=t[e];if("function"==typeof n)return 1;if(void 0!==n)return n.length}return 0}function h(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e[r];return n}function p(e,t,n,r){if("function"==typeof e.on)r.once?e.once(t,n):e.on(t,n);else{if("function"!=typeof e.addEventListener)throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e);e.addEventListener(t,(function s(a){r.once&&e.removeEventListener(t,s),n(a)}))}}Object.defineProperty(a,"defaultMaxListeners",{enumerable:!0,get:function(){return i},set:function(e){if("number"!=typeof e||e<0||s(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");i=e}}),a.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},a.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||s(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this},a.prototype.getMaxListeners=function(){return l(this)},a.prototype.emit=function(e){for(var t=[],n=1;n<arguments.length;n++)t.push(arguments[n]);var s="error"===e,a=this._events;if(void 0!==a)s=s&&void 0===a.error;else if(!s)return!1;if(s){var i;if(t.length>0&&(i=t[0]),i instanceof Error)throw i;var o=new Error("Unhandled error."+(i?" ("+i.message+")":""));throw o.context=i,o}var l=a[e];if(void 0===l)return!1;if("function"==typeof l)r(l,this,t);else{var c=l.length,u=h(l,c);for(n=0;n<c;++n)r(u[n],this,t)}return!0},a.prototype.addListener=function(e,t){return c(this,e,t,!1)},a.prototype.on=a.prototype.addListener,a.prototype.prependListener=function(e,t){return c(this,e,t,!0)},a.prototype.once=function(e,t){return o(t),this.on(e,f(this,e,t)),this},a.prototype.prependOnceListener=function(e,t){return o(t),this.prependListener(e,f(this,e,t)),this},a.prototype.removeListener=function(e,t){var n,r,s,a,i;if(o(t),void 0===(r=this._events))return this;if(void 0===(n=r[e]))return this;if(n===t||n.listener===t)0==--this._eventsCount?this._events=Object.create(null):(delete r[e],r.removeListener&&this.emit("removeListener",e,n.listener||t));else if("function"!=typeof n){for(s=-1,a=n.length-1;a>=0;a--)if(n[a]===t||n[a].listener===t){i=n[a].listener,s=a;break}if(s<0)return this;0===s?n.shift():function(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}(n,s),1===n.length&&(r[e]=n[0]),void 0!==r.removeListener&&this.emit("removeListener",e,i||t)}return this},a.prototype.off=a.prototype.removeListener,a.prototype.removeAllListeners=function(e){var t,n,r;if(void 0===(n=this._events))return this;if(void 0===n.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==n[e]&&(0==--this._eventsCount?this._events=Object.create(null):delete n[e]),this;if(0===arguments.length){var s,a=Object.keys(n);for(r=0;r<a.length;++r)"removeListener"!==(s=a[r])&&this.removeAllListeners(s);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if("function"==typeof(t=n[e]))this.removeListener(e,t);else if(void 0!==t)for(r=t.length-1;r>=0;r--)this.removeListener(e,t[r]);return this},a.prototype.listeners=function(e){return d(this,e,!0)},a.prototype.rawListeners=function(e){return d(this,e,!1)},a.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):_.call(e,t)},a.prototype.listenerCount=_,a.prototype.eventNames=function(){return this._eventsCount>0?t(this._events):[]}},5883:(e,t,n)=>{var r=n(7172).Buffer,s=n(9500);e.exports=function(e,t,n,a){if(r.isBuffer(e)||(e=r.from(e,"binary")),t&&(r.isBuffer(t)||(t=r.from(t,"binary")),8!==t.length))throw new RangeError("salt should be Buffer with 8 byte length");for(var i=n/8,o=r.alloc(i),l=r.alloc(a||0),c=r.alloc(0);i>0||a>0;){var u=new s;u.update(c),u.update(e),t&&u.update(t),c=u.digest();var f=0;if(i>0){var d=o.length-i;f=Math.min(i,c.length),c.copy(o,d,0,f),i-=f}if(f<c.length&&a>0){var _=l.length-a,h=Math.min(a,c.length-f);c.copy(l,_,f,f+h),a-=h}}return c.fill(0),{key:o,iv:l}}},6883:(e,t,n)=>{var r=n(7172).Buffer,s=n(8310).Transform;function a(e){s.call(this),this._block=r.allocUnsafe(e),this._blockSize=e,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}n(87)(a,s),a.prototype._transform=function(e,t,n){var r=null;try{this.update(e,t)}catch(e){r=e}n(r)},a.prototype._flush=function(e){var t=null;try{this.push(this.digest())}catch(e){t=e}e(t)},a.prototype.update=function(e,t){if(function(e,t){if(!r.isBuffer(e)&&"string"!=typeof e)throw new TypeError("Data must be a string or a buffer")}(e),this._finalized)throw new Error("Digest already called");r.isBuffer(e)||(e=r.from(e,t));for(var n=this._block,s=0;this._blockOffset+e.length-s>=this._blockSize;){for(var a=this._blockOffset;a<this._blockSize;)n[a++]=e[s++];this._update(),this._blockOffset=0}for(;s<e.length;)n[this._blockOffset++]=e[s++];for(var i=0,o=8*e.length;o>0;++i)this._length[i]+=o,(o=this._length[i]/4294967296|0)>0&&(this._length[i]-=4294967296*o);return this},a.prototype._update=function(){throw new Error("_update is not implemented")},a.prototype.digest=function(e){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var t=this._digest();void 0!==e&&(t=t.toString(e)),this._block.fill(0),this._blockOffset=0;for(var n=0;n<4;++n)this._length[n]=0;return t},a.prototype._digest=function(){throw new Error("_digest is not implemented")},e.exports=a},5294:(e,t,n)=>{var r=t;r.utils=n(8626),r.common=n(8717),r.sha=n(2589),r.ripemd=n(8494),r.hmac=n(2750),r.sha1=r.sha.sha1,r.sha256=r.sha.sha256,r.sha224=r.sha.sha224,r.sha384=r.sha.sha384,r.sha512=r.sha.sha512,r.ripemd160=r.ripemd.ripemd160},8717:(e,t,n)=>{var r=n(8626),s=n(7859);function a(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}t.BlockHash=a,a.prototype.update=function(e,t){if(e=r.toArray(e,t),this.pending?this.pending=this.pending.concat(e):this.pending=e,this.pendingTotal+=e.length,this.pending.length>=this._delta8){var n=(e=this.pending).length%this._delta8;this.pending=e.slice(e.length-n,e.length),0===this.pending.length&&(this.pending=null),e=r.join32(e,0,e.length-n,this.endian);for(var s=0;s<e.length;s+=this._delta32)this._update(e,s,s+this._delta32)}return this},a.prototype.digest=function(e){return this.update(this._pad()),s(null===this.pending),this._digest(e)},a.prototype._pad=function(){var e=this.pendingTotal,t=this._delta8,n=t-(e+this.padLength)%t,r=new Array(n+this.padLength);r[0]=128;for(var s=1;s<n;s++)r[s]=0;if(e<<=3,"big"===this.endian){for(var a=8;a<this.padLength;a++)r[s++]=0;r[s++]=0,r[s++]=0,r[s++]=0,r[s++]=0,r[s++]=e>>>24&255,r[s++]=e>>>16&255,r[s++]=e>>>8&255,r[s++]=255&e}else for(r[s++]=255&e,r[s++]=e>>>8&255,r[s++]=e>>>16&255,r[s++]=e>>>24&255,r[s++]=0,r[s++]=0,r[s++]=0,r[s++]=0,a=8;a<this.padLength;a++)r[s++]=0;return r}},2750:(e,t,n)=>{var r=n(8626),s=n(7859);function a(e,t,n){if(!(this instanceof a))return new a(e,t,n);this.Hash=e,this.blockSize=e.blockSize/8,this.outSize=e.outSize/8,this.inner=null,this.outer=null,this._init(r.toArray(t,n))}e.exports=a,a.prototype._init=function(e){e.length>this.blockSize&&(e=(new this.Hash).update(e).digest()),s(e.length<=this.blockSize);for(var t=e.length;t<this.blockSize;t++)e.push(0);for(t=0;t<e.length;t++)e[t]^=54;for(this.inner=(new this.Hash).update(e),t=0;t<e.length;t++)e[t]^=106;this.outer=(new this.Hash).update(e)},a.prototype.update=function(e,t){return this.inner.update(e,t),this},a.prototype.digest=function(e){return this.outer.update(this.inner.digest()),this.outer.digest(e)}},8494:(e,t,n)=>{var r=n(8626),s=n(8717),a=r.rotl32,i=r.sum32,o=r.sum32_3,l=r.sum32_4,c=s.BlockHash;function u(){if(!(this instanceof u))return new u;c.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}function f(e,t,n,r){return e<=15?t^n^r:e<=31?t&n|~t&r:e<=47?(t|~n)^r:e<=63?t&r|n&~r:t^(n|~r)}function d(e){return e<=15?0:e<=31?1518500249:e<=47?1859775393:e<=63?2400959708:2840853838}function _(e){return e<=15?1352829926:e<=31?1548603684:e<=47?1836072691:e<=63?2053994217:0}r.inherits(u,c),t.ripemd160=u,u.blockSize=512,u.outSize=160,u.hmacStrength=192,u.padLength=64,u.prototype._update=function(e,t){for(var n=this.h[0],r=this.h[1],s=this.h[2],c=this.h[3],u=this.h[4],m=n,y=r,w=s,v=c,E=u,A=0;A<80;A++){var L=i(a(l(n,f(A,r,s,c),e[h[A]+t],d(A)),g[A]),u);n=u,u=c,c=a(s,10),s=r,r=L,L=i(a(l(m,f(79-A,y,w,v),e[p[A]+t],_(A)),b[A]),E),m=E,E=v,v=a(w,10),w=y,y=L}L=o(this.h[1],s,v),this.h[1]=o(this.h[2],c,E),this.h[2]=o(this.h[3],u,m),this.h[3]=o(this.h[4],n,y),this.h[4]=o(this.h[0],r,w),this.h[0]=L},u.prototype._digest=function(e){return"hex"===e?r.toHex32(this.h,"little"):r.split32(this.h,"little")};var h=[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],p=[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],g=[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],b=[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]},2589:(e,t,n)=>{t.sha1=n(9330),t.sha224=n(5168),t.sha256=n(375),t.sha384=n(8899),t.sha512=n(790)},9330:(e,t,n)=>{var r=n(8626),s=n(8717),a=n(8156),i=r.rotl32,o=r.sum32,l=r.sum32_5,c=a.ft_1,u=s.BlockHash,f=[1518500249,1859775393,2400959708,3395469782];function d(){if(!(this instanceof d))return new d;u.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}r.inherits(d,u),e.exports=d,d.blockSize=512,d.outSize=160,d.hmacStrength=80,d.padLength=64,d.prototype._update=function(e,t){for(var n=this.W,r=0;r<16;r++)n[r]=e[t+r];for(;r<n.length;r++)n[r]=i(n[r-3]^n[r-8]^n[r-14]^n[r-16],1);var s=this.h[0],a=this.h[1],u=this.h[2],d=this.h[3],_=this.h[4];for(r=0;r<n.length;r++){var h=~~(r/20),p=l(i(s,5),c(h,a,u,d),_,n[r],f[h]);_=d,d=u,u=i(a,30),a=s,s=p}this.h[0]=o(this.h[0],s),this.h[1]=o(this.h[1],a),this.h[2]=o(this.h[2],u),this.h[3]=o(this.h[3],d),this.h[4]=o(this.h[4],_)},d.prototype._digest=function(e){return"hex"===e?r.toHex32(this.h,"big"):r.split32(this.h,"big")}},5168:(e,t,n)=>{var r=n(8626),s=n(375);function a(){if(!(this instanceof a))return new a;s.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}r.inherits(a,s),e.exports=a,a.blockSize=512,a.outSize=224,a.hmacStrength=192,a.padLength=64,a.prototype._digest=function(e){return"hex"===e?r.toHex32(this.h.slice(0,7),"big"):r.split32(this.h.slice(0,7),"big")}},375:(e,t,n)=>{var r=n(8626),s=n(8717),a=n(8156),i=n(7859),o=r.sum32,l=r.sum32_4,c=r.sum32_5,u=a.ch32,f=a.maj32,d=a.s0_256,_=a.s1_256,h=a.g0_256,p=a.g1_256,g=s.BlockHash,b=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];function m(){if(!(this instanceof m))return new m;g.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=b,this.W=new Array(64)}r.inherits(m,g),e.exports=m,m.blockSize=512,m.outSize=256,m.hmacStrength=192,m.padLength=64,m.prototype._update=function(e,t){for(var n=this.W,r=0;r<16;r++)n[r]=e[t+r];for(;r<n.length;r++)n[r]=l(p(n[r-2]),n[r-7],h(n[r-15]),n[r-16]);var s=this.h[0],a=this.h[1],g=this.h[2],b=this.h[3],m=this.h[4],y=this.h[5],w=this.h[6],v=this.h[7];for(i(this.k.length===n.length),r=0;r<n.length;r++){var E=c(v,_(m),u(m,y,w),this.k[r],n[r]),A=o(d(s),f(s,a,g));v=w,w=y,y=m,m=o(b,E),b=g,g=a,a=s,s=o(E,A)}this.h[0]=o(this.h[0],s),this.h[1]=o(this.h[1],a),this.h[2]=o(this.h[2],g),this.h[3]=o(this.h[3],b),this.h[4]=o(this.h[4],m),this.h[5]=o(this.h[5],y),this.h[6]=o(this.h[6],w),this.h[7]=o(this.h[7],v)},m.prototype._digest=function(e){return"hex"===e?r.toHex32(this.h,"big"):r.split32(this.h,"big")}},8899:(e,t,n)=>{var r=n(8626),s=n(790);function a(){if(!(this instanceof a))return new a;s.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}r.inherits(a,s),e.exports=a,a.blockSize=1024,a.outSize=384,a.hmacStrength=192,a.padLength=128,a.prototype._digest=function(e){return"hex"===e?r.toHex32(this.h.slice(0,12),"big"):r.split32(this.h.slice(0,12),"big")}},790:(e,t,n)=>{var r=n(8626),s=n(8717),a=n(7859),i=r.rotr64_hi,o=r.rotr64_lo,l=r.shr64_hi,c=r.shr64_lo,u=r.sum64,f=r.sum64_hi,d=r.sum64_lo,_=r.sum64_4_hi,h=r.sum64_4_lo,p=r.sum64_5_hi,g=r.sum64_5_lo,b=s.BlockHash,m=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function y(){if(!(this instanceof y))return new y;b.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=m,this.W=new Array(160)}function w(e,t,n,r,s){var a=e&n^~e&s;return a<0&&(a+=4294967296),a}function v(e,t,n,r,s,a){var i=t&r^~t&a;return i<0&&(i+=4294967296),i}function E(e,t,n,r,s){var a=e&n^e&s^n&s;return a<0&&(a+=4294967296),a}function A(e,t,n,r,s,a){var i=t&r^t&a^r&a;return i<0&&(i+=4294967296),i}function L(e,t){var n=i(e,t,28)^i(t,e,2)^i(t,e,7);return n<0&&(n+=4294967296),n}function C(e,t){var n=o(e,t,28)^o(t,e,2)^o(t,e,7);return n<0&&(n+=4294967296),n}function S(e,t){var n=o(e,t,14)^o(e,t,18)^o(t,e,9);return n<0&&(n+=4294967296),n}function T(e,t){var n=i(e,t,1)^i(e,t,8)^l(e,t,7);return n<0&&(n+=4294967296),n}function P(e,t){var n=o(e,t,1)^o(e,t,8)^c(e,t,7);return n<0&&(n+=4294967296),n}function R(e,t){var n=o(e,t,19)^o(t,e,29)^c(e,t,6);return n<0&&(n+=4294967296),n}r.inherits(y,b),e.exports=y,y.blockSize=1024,y.outSize=512,y.hmacStrength=192,y.padLength=128,y.prototype._prepareBlock=function(e,t){for(var n=this.W,r=0;r<32;r++)n[r]=e[t+r];for(;r<n.length;r+=2){var s=(g=n[r-4],b=n[r-3],m=void 0,(m=i(g,b,19)^i(b,g,29)^l(g,b,6))<0&&(m+=4294967296),m),a=R(n[r-4],n[r-3]),o=n[r-14],c=n[r-13],u=T(n[r-30],n[r-29]),f=P(n[r-30],n[r-29]),d=n[r-32],p=n[r-31];n[r]=_(s,a,o,c,u,f,d,p),n[r+1]=h(s,a,o,c,u,f,d,p)}var g,b,m},y.prototype._update=function(e,t){this._prepareBlock(e,t);var n,r,s,o=this.W,l=this.h[0],c=this.h[1],_=this.h[2],h=this.h[3],b=this.h[4],m=this.h[5],y=this.h[6],T=this.h[7],P=this.h[8],R=this.h[9],I=this.h[10],N=this.h[11],x=this.h[12],k=this.h[13],O=this.h[14],B=this.h[15];a(this.k.length===o.length);for(var D=0;D<o.length;D+=2){var F=O,M=B,U=(s=void 0,(s=i(n=P,r=R,14)^i(n,r,18)^i(r,n,9))<0&&(s+=4294967296),s),z=S(P,R),H=w(P,0,I,0,x),j=v(0,R,0,N,0,k),Z=this.k[D],G=this.k[D+1],W=o[D],Q=o[D+1],Y=p(F,M,U,z,H,j,Z,G,W,Q),X=g(F,M,U,z,H,j,Z,G,W,Q);F=L(l,c),M=C(l,c),U=E(l,0,_,0,b),z=A(0,c,0,h,0,m);var V=f(F,M,U,z),J=d(F,M,U,z);O=x,B=k,x=I,k=N,I=P,N=R,P=f(y,T,Y,X),R=d(T,T,Y,X),y=b,T=m,b=_,m=h,_=l,h=c,l=f(Y,X,V,J),c=d(Y,X,V,J)}u(this.h,0,l,c),u(this.h,2,_,h),u(this.h,4,b,m),u(this.h,6,y,T),u(this.h,8,P,R),u(this.h,10,I,N),u(this.h,12,x,k),u(this.h,14,O,B)},y.prototype._digest=function(e){return"hex"===e?r.toHex32(this.h,"big"):r.split32(this.h,"big")}},8156:(e,t,n)=>{var r=n(8626).rotr32;function s(e,t,n){return e&t^~e&n}function a(e,t,n){return e&t^e&n^t&n}function i(e,t,n){return e^t^n}t.ft_1=function(e,t,n,r){return 0===e?s(t,n,r):1===e||3===e?i(t,n,r):2===e?a(t,n,r):void 0},t.ch32=s,t.maj32=a,t.p32=i,t.s0_256=function(e){return r(e,2)^r(e,13)^r(e,22)},t.s1_256=function(e){return r(e,6)^r(e,11)^r(e,25)},t.g0_256=function(e){return r(e,7)^r(e,18)^e>>>3},t.g1_256=function(e){return r(e,17)^r(e,19)^e>>>10}},8626:(e,t,n)=>{var r=n(7859),s=n(87);function a(e,t){return 55296==(64512&e.charCodeAt(t))&&!(t<0||t+1>=e.length)&&56320==(64512&e.charCodeAt(t+1))}function i(e){return(e>>>24|e>>>8&65280|e<<8&16711680|(255&e)<<24)>>>0}function o(e){return 1===e.length?"0"+e:e}function l(e){return 7===e.length?"0"+e:6===e.length?"00"+e:5===e.length?"000"+e:4===e.length?"0000"+e:3===e.length?"00000"+e:2===e.length?"000000"+e:1===e.length?"0000000"+e:e}t.inherits=s,t.toArray=function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var n=[];if("string"==typeof e)if(t){if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),s=0;s<e.length;s+=2)n.push(parseInt(e[s]+e[s+1],16))}else for(var r=0,s=0;s<e.length;s++){var i=e.charCodeAt(s);i<128?n[r++]=i:i<2048?(n[r++]=i>>6|192,n[r++]=63&i|128):a(e,s)?(i=65536+((1023&i)<<10)+(1023&e.charCodeAt(++s)),n[r++]=i>>18|240,n[r++]=i>>12&63|128,n[r++]=i>>6&63|128,n[r++]=63&i|128):(n[r++]=i>>12|224,n[r++]=i>>6&63|128,n[r++]=63&i|128)}else for(s=0;s<e.length;s++)n[s]=0|e[s];return n},t.toHex=function(e){for(var t="",n=0;n<e.length;n++)t+=o(e[n].toString(16));return t},t.htonl=i,t.toHex32=function(e,t){for(var n="",r=0;r<e.length;r++){var s=e[r];"little"===t&&(s=i(s)),n+=l(s.toString(16))}return n},t.zero2=o,t.zero8=l,t.join32=function(e,t,n,s){var a=n-t;r(a%4==0);for(var i=new Array(a/4),o=0,l=t;o<i.length;o++,l+=4){var c;c="big"===s?e[l]<<24|e[l+1]<<16|e[l+2]<<8|e[l+3]:e[l+3]<<24|e[l+2]<<16|e[l+1]<<8|e[l],i[o]=c>>>0}return i},t.split32=function(e,t){for(var n=new Array(4*e.length),r=0,s=0;r<e.length;r++,s+=4){var a=e[r];"big"===t?(n[s]=a>>>24,n[s+1]=a>>>16&255,n[s+2]=a>>>8&255,n[s+3]=255&a):(n[s+3]=a>>>24,n[s+2]=a>>>16&255,n[s+1]=a>>>8&255,n[s]=255&a)}return n},t.rotr32=function(e,t){return e>>>t|e<<32-t},t.rotl32=function(e,t){return e<<t|e>>>32-t},t.sum32=function(e,t){return e+t>>>0},t.sum32_3=function(e,t,n){return e+t+n>>>0},t.sum32_4=function(e,t,n,r){return e+t+n+r>>>0},t.sum32_5=function(e,t,n,r,s){return e+t+n+r+s>>>0},t.sum64=function(e,t,n,r){var s=e[t],a=r+e[t+1]>>>0,i=(a<r?1:0)+n+s;e[t]=i>>>0,e[t+1]=a},t.sum64_hi=function(e,t,n,r){return(t+r>>>0<t?1:0)+e+n>>>0},t.sum64_lo=function(e,t,n,r){return t+r>>>0},t.sum64_4_hi=function(e,t,n,r,s,a,i,o){var l=0,c=t;return l+=(c=c+r>>>0)<t?1:0,l+=(c=c+a>>>0)<a?1:0,e+n+s+i+(l+=(c=c+o>>>0)<o?1:0)>>>0},t.sum64_4_lo=function(e,t,n,r,s,a,i,o){return t+r+a+o>>>0},t.sum64_5_hi=function(e,t,n,r,s,a,i,o,l,c){var u=0,f=t;return u+=(f=f+r>>>0)<t?1:0,u+=(f=f+a>>>0)<a?1:0,u+=(f=f+o>>>0)<o?1:0,e+n+s+i+l+(u+=(f=f+c>>>0)<c?1:0)>>>0},t.sum64_5_lo=function(e,t,n,r,s,a,i,o,l,c){return t+r+a+o+c>>>0},t.rotr64_hi=function(e,t,n){return(t<<32-n|e>>>n)>>>0},t.rotr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0},t.shr64_hi=function(e,t,n){return e>>>n},t.shr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0}},8898:(e,t)=>{t.read=function(e,t,n,r,s){var a,i,o=8*s-r-1,l=(1<<o)-1,c=l>>1,u=-7,f=n?s-1:0,d=n?-1:1,_=e[t+f];for(f+=d,a=_&(1<<-u)-1,_>>=-u,u+=o;u>0;a=256*a+e[t+f],f+=d,u-=8);for(i=a&(1<<-u)-1,a>>=-u,u+=r;u>0;i=256*i+e[t+f],f+=d,u-=8);if(0===a)a=1-c;else{if(a===l)return i?NaN:1/0*(_?-1:1);i+=Math.pow(2,r),a-=c}return(_?-1:1)*i*Math.pow(2,a-r)},t.write=function(e,t,n,r,s,a){var i,o,l,c=8*a-s-1,u=(1<<c)-1,f=u>>1,d=23===s?Math.pow(2,-24)-Math.pow(2,-77):0,_=r?0:a-1,h=r?1:-1,p=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(o=isNaN(t)?1:0,i=u):(i=Math.floor(Math.log(t)/Math.LN2),t*(l=Math.pow(2,-i))<1&&(i--,l*=2),(t+=i+f>=1?d/l:d*Math.pow(2,1-f))*l>=2&&(i++,l/=2),i+f>=u?(o=0,i=u):i+f>=1?(o=(t*l-1)*Math.pow(2,s),i+=f):(o=t*Math.pow(2,f-1)*Math.pow(2,s),i=0));s>=8;e[n+_]=255&o,_+=h,o/=256,s-=8);for(i=i<<s|o,c+=s;c>0;e[n+_]=255&i,_+=h,i/=256,c-=8);e[n+_-h]|=128*p}},87:e=>{"function"==typeof Object.create?e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(e,t){if(t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}}},3261:e=>{var t=1/0,n=9007199254740991,r=/^\s+|\s+$/g,s=/^[-+]0x[0-9a-f]+$/i,a=/^0b[01]+$/i,i=/^0o[0-7]+$/i,o=/^(?:0|[1-9]\d*)$/,l=parseInt,c=Object.prototype.toString,u=Math.ceil,f=Math.max;function d(e,t,n){var r=-1,s=e.length;t<0&&(t=-t>s?0:s+t),(n=n>s?s:n)<0&&(n+=s),s=t>n?0:n-t>>>0,t>>>=0;for(var a=Array(s);++r<s;)a[r]=e[r+t];return a}function _(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}e.exports=function(e,h,p){h=(p?function(e,t,r){if(!_(r))return!1;var s=typeof t;return!!("number"==s?function(e){return null!=e&&function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=n}(e.length)&&!function(e){var t=_(e)?c.call(e):"";return"[object Function]"==t||"[object GeneratorFunction]"==t}(e)}(r)&&function(e,t){return!!(t=null==t?n:t)&&("number"==typeof e||o.test(e))&&e>-1&&e%1==0&&e<t}(t,r.length):"string"==s&&t in r)&&function(e,t){return e===t||e!=e&&t!=t}(r[t],e)}(e,h,p):void 0===h)?1:f(function(e){var n=function(e){return e?(e=function(e){if("number"==typeof e)return e;if(function(e){return"symbol"==typeof e||function(e){return!!e&&"object"==typeof e}(e)&&"[object Symbol]"==c.call(e)}(e))return NaN;if(_(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=_(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(r,"");var n=a.test(e);return n||i.test(e)?l(e.slice(2),n?2:8):s.test(e)?NaN:+e}(e))===t||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0}(e),o=n%1;return n==n?o?n-o:n:0}(h),0);var g=e?e.length:0;if(!g||h<1)return[];for(var b=0,m=0,y=Array(u(g/h));b<g;)y[m++]=d(e,b,b+=h);return y}},7902:(e,t,n)=>{e=n.nmd(e);var r="__lodash_hash_undefined__",s=9007199254740991,a="[object Arguments]",i="[object Boolean]",o="[object Date]",l="[object Function]",c="[object GeneratorFunction]",u="[object Map]",f="[object Number]",d="[object Object]",_="[object Promise]",h="[object RegExp]",p="[object Set]",g="[object String]",b="[object Symbol]",m="[object WeakMap]",y="[object ArrayBuffer]",w="[object DataView]",v="[object Float32Array]",E="[object Float64Array]",A="[object Int8Array]",L="[object Int16Array]",C="[object Int32Array]",S="[object Uint8Array]",T="[object Uint8ClampedArray]",P="[object Uint16Array]",R="[object Uint32Array]",I=/\w*$/,N=/^\[object .+?Constructor\]$/,x=/^(?:0|[1-9]\d*)$/,k={};k[a]=k["[object Array]"]=k[y]=k[w]=k[i]=k[o]=k[v]=k[E]=k[A]=k[L]=k[C]=k[u]=k[f]=k[d]=k[h]=k[p]=k[g]=k[b]=k[S]=k[T]=k[P]=k[R]=!0,k["[object Error]"]=k[l]=k[m]=!1;var O="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,B="object"==typeof self&&self&&self.Object===Object&&self,D=O||B||Function("return this")(),F=t&&!t.nodeType&&t,M=F&&e&&!e.nodeType&&e,U=M&&M.exports===F;function z(e,t){return e.set(t[0],t[1]),e}function H(e,t){return e.add(t),e}function j(e,t,n,r){var s=-1,a=e?e.length:0;for(r&&a&&(n=e[++s]);++s<a;)n=t(n,e[s],s,e);return n}function Z(e){var t=!1;if(null!=e&&"function"!=typeof e.toString)try{t=!!(e+"")}catch(e){}return t}function G(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}function W(e,t){return function(n){return e(t(n))}}function Q(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}var Y,X=Array.prototype,V=Function.prototype,J=Object.prototype,K=D["__core-js_shared__"],q=(Y=/[^.]+$/.exec(K&&K.keys&&K.keys.IE_PROTO||""))?"Symbol(src)_1."+Y:"",$=V.toString,ee=J.hasOwnProperty,te=J.toString,ne=RegExp("^"+$.call(ee).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),re=U?D.Buffer:void 0,se=D.Symbol,ae=D.Uint8Array,ie=W(Object.getPrototypeOf,Object),oe=Object.create,le=J.propertyIsEnumerable,ce=X.splice,ue=Object.getOwnPropertySymbols,fe=re?re.isBuffer:void 0,de=W(Object.keys,Object),_e=De(D,"DataView"),he=De(D,"Map"),pe=De(D,"Promise"),ge=De(D,"Set"),be=De(D,"WeakMap"),me=De(Object,"create"),ye=He(_e),we=He(he),ve=He(pe),Ee=He(ge),Ae=He(be),Le=se?se.prototype:void 0,Ce=Le?Le.valueOf:void 0;function Se(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function Te(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function Pe(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function Re(e){this.__data__=new Te(e)}function Ie(e,t,n){var r=e[t];ee.call(e,t)&&je(r,n)&&(void 0!==n||t in e)||(e[t]=n)}function Ne(e,t){for(var n=e.length;n--;)if(je(e[n][0],t))return n;return-1}function xe(e,t,n,r,s,_,m){var N;if(r&&(N=_?r(e,s,_,m):r(e)),void 0!==N)return N;if(!Ye(e))return e;var x=Ze(e);if(x){if(N=function(e){var t=e.length,n=e.constructor(t);return t&&"string"==typeof e[0]&&ee.call(e,"index")&&(n.index=e.index,n.input=e.input),n}(e),!t)return function(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n<r;)t[n]=e[n];return t}(e,N)}else{var O=Me(e),B=O==l||O==c;if(We(e))return function(e,t){if(t)return e.slice();var n=new e.constructor(e.length);return e.copy(n),n}(e,t);if(O==d||O==a||B&&!_){if(Z(e))return _?e:{};if(N=function(e){return"function"!=typeof e.constructor||ze(e)?{}:Ye(t=ie(e))?oe(t):{};var t}(B?{}:e),!t)return function(e,t){return Oe(e,Fe(e),t)}(e,function(e,t){return e&&Oe(t,Xe(t),e)}(N,e))}else{if(!k[O])return _?e:{};N=function(e,t,n,r){var s,a=e.constructor;switch(t){case y:return ke(e);case i:case o:return new a(+e);case w:return function(e,t){var n=t?ke(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}(e,r);case v:case E:case A:case L:case C:case S:case T:case P:case R:return function(e,t){var n=t?ke(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}(e,r);case u:return function(e,t,n){return j(t?n(G(e),!0):G(e),z,new e.constructor)}(e,r,n);case f:case g:return new a(e);case h:return function(e){var t=new e.constructor(e.source,I.exec(e));return t.lastIndex=e.lastIndex,t}(e);case p:return function(e,t,n){return j(t?n(Q(e),!0):Q(e),H,new e.constructor)}(e,r,n);case b:return s=e,Ce?Object(Ce.call(s)):{}}}(e,O,xe,t)}}m||(m=new Re);var D=m.get(e);if(D)return D;if(m.set(e,N),!x)var F=n?function(e){return function(e,t,n){var r=t(e);return Ze(e)?r:function(e,t){for(var n=-1,r=t.length,s=e.length;++n<r;)e[s+n]=t[n];return e}(r,n(e))}(e,Xe,Fe)}(e):Xe(e);return function(e,t){for(var n=-1,r=e?e.length:0;++n<r&&!1!==t(e[n],n););}(F||e,(function(s,a){F&&(s=e[a=s]),Ie(N,a,xe(s,t,n,r,a,e,m))})),N}function ke(e){var t=new e.constructor(e.byteLength);return new ae(t).set(new ae(e)),t}function Oe(e,t,n,r){n||(n={});for(var s=-1,a=t.length;++s<a;){var i=t[s],o=r?r(n[i],e[i],i,n,e):void 0;Ie(n,i,void 0===o?e[i]:o)}return n}function Be(e,t){var n,r,s=e.__data__;return("string"==(r=typeof(n=t))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?s["string"==typeof t?"string":"hash"]:s.map}function De(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return function(e){return!(!Ye(e)||(t=e,q&&q in t))&&(Qe(e)||Z(e)?ne:N).test(He(e));var t}(n)?n:void 0}Se.prototype.clear=function(){this.__data__=me?me(null):{}},Se.prototype.delete=function(e){return this.has(e)&&delete this.__data__[e]},Se.prototype.get=function(e){var t=this.__data__;if(me){var n=t[e];return n===r?void 0:n}return ee.call(t,e)?t[e]:void 0},Se.prototype.has=function(e){var t=this.__data__;return me?void 0!==t[e]:ee.call(t,e)},Se.prototype.set=function(e,t){return this.__data__[e]=me&&void 0===t?r:t,this},Te.prototype.clear=function(){this.__data__=[]},Te.prototype.delete=function(e){var t=this.__data__,n=Ne(t,e);return!(n<0||(n==t.length-1?t.pop():ce.call(t,n,1),0))},Te.prototype.get=function(e){var t=this.__data__,n=Ne(t,e);return n<0?void 0:t[n][1]},Te.prototype.has=function(e){return Ne(this.__data__,e)>-1},Te.prototype.set=function(e,t){var n=this.__data__,r=Ne(n,e);return r<0?n.push([e,t]):n[r][1]=t,this},Pe.prototype.clear=function(){this.__data__={hash:new Se,map:new(he||Te),string:new Se}},Pe.prototype.delete=function(e){return Be(this,e).delete(e)},Pe.prototype.get=function(e){return Be(this,e).get(e)},Pe.prototype.has=function(e){return Be(this,e).has(e)},Pe.prototype.set=function(e,t){return Be(this,e).set(e,t),this},Re.prototype.clear=function(){this.__data__=new Te},Re.prototype.delete=function(e){return this.__data__.delete(e)},Re.prototype.get=function(e){return this.__data__.get(e)},Re.prototype.has=function(e){return this.__data__.has(e)},Re.prototype.set=function(e,t){var n=this.__data__;if(n instanceof Te){var r=n.__data__;if(!he||r.length<199)return r.push([e,t]),this;n=this.__data__=new Pe(r)}return n.set(e,t),this};var Fe=ue?W(ue,Object):function(){return[]},Me=function(e){return te.call(e)};function Ue(e,t){return!!(t=null==t?s:t)&&("number"==typeof e||x.test(e))&&e>-1&&e%1==0&&e<t}function ze(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||J)}function He(e){if(null!=e){try{return $.call(e)}catch(e){}try{return e+""}catch(e){}}return""}function je(e,t){return e===t||e!=e&&t!=t}(_e&&Me(new _e(new ArrayBuffer(1)))!=w||he&&Me(new he)!=u||pe&&Me(pe.resolve())!=_||ge&&Me(new ge)!=p||be&&Me(new be)!=m)&&(Me=function(e){var t=te.call(e),n=t==d?e.constructor:void 0,r=n?He(n):void 0;if(r)switch(r){case ye:return w;case we:return u;case ve:return _;case Ee:return p;case Ae:return m}return t});var Ze=Array.isArray;function Ge(e){return null!=e&&function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=s}(e.length)&&!Qe(e)}var We=fe||function(){return!1};function Qe(e){var t=Ye(e)?te.call(e):"";return t==l||t==c}function Ye(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function Xe(e){return Ge(e)?function(e,t){var n=Ze(e)||function(e){return function(e){return function(e){return!!e&&"object"==typeof e}(e)&&Ge(e)}(e)&&ee.call(e,"callee")&&(!le.call(e,"callee")||te.call(e)==a)}(e)?function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}(e.length,String):[],r=n.length,s=!!r;for(var i in e)!t&&!ee.call(e,i)||s&&("length"==i||Ue(i,r))||n.push(i);return n}(e):function(e){if(!ze(e))return de(e);var t=[];for(var n in Object(e))ee.call(e,n)&&"constructor"!=n&&t.push(n);return t}(e)}e.exports=function(e,t){return xe(e,!0,!0,t)}},9467:(e,t,n)=>{e=n.nmd(e);var r="__lodash_hash_undefined__",s=1,a=2,i=1/0,o=9007199254740991,l="[object Arguments]",c="[object Array]",u="[object Boolean]",f="[object Date]",d="[object Error]",_="[object Function]",h="[object GeneratorFunction]",p="[object Map]",g="[object Number]",b="[object Object]",m="[object Promise]",y="[object RegExp]",w="[object Set]",v="[object String]",E="[object Symbol]",A="[object WeakMap]",L="[object ArrayBuffer]",C="[object DataView]",S=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,T=/^\w*$/,P=/^\./,R=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,I=/\\(\\)?/g,N=/^\[object .+?Constructor\]$/,x=/^(?:0|[1-9]\d*)$/,k={};k["[object Float32Array]"]=k["[object Float64Array]"]=k["[object Int8Array]"]=k["[object Int16Array]"]=k["[object Int32Array]"]=k["[object Uint8Array]"]=k["[object Uint8ClampedArray]"]=k["[object Uint16Array]"]=k["[object Uint32Array]"]=!0,k[l]=k[c]=k[L]=k[u]=k[C]=k[f]=k[d]=k[_]=k[p]=k[g]=k[b]=k[y]=k[w]=k[v]=k[A]=!1;var O="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,B="object"==typeof self&&self&&self.Object===Object&&self,D=O||B||Function("return this")(),F=t&&!t.nodeType&&t,M=F&&e&&!e.nodeType&&e,U=M&&M.exports===F&&O.process,z=function(){try{return U&&U.binding("util")}catch(e){}}(),H=z&&z.isTypedArray;function j(e,t){for(var n=-1,r=e?e.length:0;++n<r;)if(!t(e[n],n,e))return!1;return!0}function Z(e,t){for(var n=-1,r=e?e.length:0;++n<r;)if(t(e[n],n,e))return!0;return!1}function G(e){var t=!1;if(null!=e&&"function"!=typeof e.toString)try{t=!!(e+"")}catch(e){}return t}function W(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}function Q(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}var Y,X,V,J=Array.prototype,K=Function.prototype,q=Object.prototype,$=D["__core-js_shared__"],ee=(Y=/[^.]+$/.exec($&&$.keys&&$.keys.IE_PROTO||""))?"Symbol(src)_1."+Y:"",te=K.toString,ne=q.hasOwnProperty,re=q.toString,se=RegExp("^"+te.call(ne).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),ae=D.Symbol,ie=D.Uint8Array,oe=q.propertyIsEnumerable,le=J.splice,ce=(X=Object.keys,V=Object,function(e){return X(V(e))}),ue=ze(D,"DataView"),fe=ze(D,"Map"),de=ze(D,"Promise"),_e=ze(D,"Set"),he=ze(D,"WeakMap"),pe=ze(Object,"create"),ge=Xe(ue),be=Xe(fe),me=Xe(de),ye=Xe(_e),we=Xe(he),ve=ae?ae.prototype:void 0,Ee=ve?ve.valueOf:void 0,Ae=ve?ve.toString:void 0;function Le(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function Ce(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function Se(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function Te(e){var t=-1,n=e?e.length:0;for(this.__data__=new Se;++t<n;)this.add(e[t])}function Pe(e){this.__data__=new Ce(e)}function Re(e,t){for(var n=e.length;n--;)if(Je(e[n][0],t))return n;return-1}Le.prototype.clear=function(){this.__data__=pe?pe(null):{}},Le.prototype.delete=function(e){return this.has(e)&&delete this.__data__[e]},Le.prototype.get=function(e){var t=this.__data__;if(pe){var n=t[e];return n===r?void 0:n}return ne.call(t,e)?t[e]:void 0},Le.prototype.has=function(e){var t=this.__data__;return pe?void 0!==t[e]:ne.call(t,e)},Le.prototype.set=function(e,t){return this.__data__[e]=pe&&void 0===t?r:t,this},Ce.prototype.clear=function(){this.__data__=[]},Ce.prototype.delete=function(e){var t=this.__data__,n=Re(t,e);return!(n<0||(n==t.length-1?t.pop():le.call(t,n,1),0))},Ce.prototype.get=function(e){var t=this.__data__,n=Re(t,e);return n<0?void 0:t[n][1]},Ce.prototype.has=function(e){return Re(this.__data__,e)>-1},Ce.prototype.set=function(e,t){var n=this.__data__,r=Re(n,e);return r<0?n.push([e,t]):n[r][1]=t,this},Se.prototype.clear=function(){this.__data__={hash:new Le,map:new(fe||Ce),string:new Le}},Se.prototype.delete=function(e){return Ue(this,e).delete(e)},Se.prototype.get=function(e){return Ue(this,e).get(e)},Se.prototype.has=function(e){return Ue(this,e).has(e)},Se.prototype.set=function(e,t){return Ue(this,e).set(e,t),this},Te.prototype.add=Te.prototype.push=function(e){return this.__data__.set(e,r),this},Te.prototype.has=function(e){return this.__data__.has(e)},Pe.prototype.clear=function(){this.__data__=new Ce},Pe.prototype.delete=function(e){return this.__data__.delete(e)},Pe.prototype.get=function(e){return this.__data__.get(e)},Pe.prototype.has=function(e){return this.__data__.has(e)},Pe.prototype.set=function(e,t){var n=this.__data__;if(n instanceof Ce){var r=n.__data__;if(!fe||r.length<199)return r.push([e,t]),this;n=this.__data__=new Se(r)}return n.set(e,t),this};var Ie,Ne=(Ie=function(e,t){return e&&ke(e,t,it)},function(e,t){if(null==e)return e;if(!$e(e))return Ie(e,t);for(var n=e.length,r=-1,s=Object(e);++r<n&&!1!==t(s[r],r,s););return e});function xe(e,t){var n=!0;return Ne(e,(function(e,r,s){return n=!!t(e,r,s)})),n}var ke=function(e,t,n){for(var r=-1,s=Object(e),a=n(e),i=a.length;i--;){var o=a[++r];if(!1===t(s[o],o,s))break}return e};function Oe(e,t){for(var n=0,r=(t=Ze(t,e)?[t]:Fe(t)).length;null!=e&&n<r;)e=e[Ye(t[n++])];return n&&n==r?e:void 0}function Be(e,t){return null!=e&&t in Object(e)}function De(e,t,n,r,i){return e===t||(null==e||null==t||!nt(e)&&!rt(t)?e!=e&&t!=t:function(e,t,n,r,i,o){var _=qe(e),h=qe(t),m=c,A=c;_||(m=(m=He(e))==l?b:m),h||(A=(A=He(t))==l?b:A);var S=m==b&&!G(e),T=A==b&&!G(t),P=m==A;if(P&&!S)return o||(o=new Pe),_||at(e)?Me(e,t,n,r,i,o):function(e,t,n,r,i,o,l){switch(n){case C:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case L:return!(e.byteLength!=t.byteLength||!r(new ie(e),new ie(t)));case u:case f:case g:return Je(+e,+t);case d:return e.name==t.name&&e.message==t.message;case y:case v:return e==t+"";case p:var c=W;case w:var _=o&a;if(c||(c=Q),e.size!=t.size&&!_)return!1;var h=l.get(e);if(h)return h==t;o|=s,l.set(e,t);var b=Me(c(e),c(t),r,i,o,l);return l.delete(e),b;case E:if(Ee)return Ee.call(e)==Ee.call(t)}return!1}(e,t,m,n,r,i,o);if(!(i&a)){var R=S&&ne.call(e,"__wrapped__"),I=T&&ne.call(t,"__wrapped__");if(R||I){var N=R?e.value():e,x=I?t.value():t;return o||(o=new Pe),n(N,x,r,i,o)}}return!!P&&(o||(o=new Pe),function(e,t,n,r,s,i){var o=s&a,l=it(e),c=l.length;if(c!=it(t).length&&!o)return!1;for(var u=c;u--;){var f=l[u];if(!(o?f in t:ne.call(t,f)))return!1}var d=i.get(e);if(d&&i.get(t))return d==t;var _=!0;i.set(e,t),i.set(t,e);for(var h=o;++u<c;){var p=e[f=l[u]],g=t[f];if(r)var b=o?r(g,p,f,t,e,i):r(p,g,f,e,t,i);if(!(void 0===b?p===g||n(p,g,r,s,i):b)){_=!1;break}h||(h="constructor"==f)}if(_&&!h){var m=e.constructor,y=t.constructor;m==y||!("constructor"in e)||!("constructor"in t)||"function"==typeof m&&m instanceof m&&"function"==typeof y&&y instanceof y||(_=!1)}return i.delete(e),i.delete(t),_}(e,t,n,r,i,o))}(e,t,De,n,r,i))}function Fe(e){return qe(e)?e:Qe(e)}function Me(e,t,n,r,i,o){var l=i&a,c=e.length,u=t.length;if(c!=u&&!(l&&u>c))return!1;var f=o.get(e);if(f&&o.get(t))return f==t;var d=-1,_=!0,h=i&s?new Te:void 0;for(o.set(e,t),o.set(t,e);++d<c;){var p=e[d],g=t[d];if(r)var b=l?r(g,p,d,t,e,o):r(p,g,d,e,t,o);if(void 0!==b){if(b)continue;_=!1;break}if(h){if(!Z(t,(function(e,t){if(!h.has(t)&&(p===e||n(p,e,r,i,o)))return h.add(t)}))){_=!1;break}}else if(p!==g&&!n(p,g,r,i,o)){_=!1;break}}return o.delete(e),o.delete(t),_}function Ue(e,t){var n,r,s=e.__data__;return("string"==(r=typeof(n=t))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?s["string"==typeof t?"string":"hash"]:s.map}function ze(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return function(e){return!(!nt(e)||function(e){return!!ee&&ee in e}(e))&&(et(e)||G(e)?se:N).test(Xe(e))}(n)?n:void 0}var He=function(e){return re.call(e)};function je(e,t){return!!(t=null==t?o:t)&&("number"==typeof e||x.test(e))&&e>-1&&e%1==0&&e<t}function Ze(e,t){if(qe(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!st(e))||T.test(e)||!S.test(e)||null!=t&&e in Object(t)}function Ge(e){return e==e&&!nt(e)}function We(e,t){return function(n){return null!=n&&n[e]===t&&(void 0!==t||e in Object(n))}}(ue&&He(new ue(new ArrayBuffer(1)))!=C||fe&&He(new fe)!=p||de&&He(de.resolve())!=m||_e&&He(new _e)!=w||he&&He(new he)!=A)&&(He=function(e){var t=re.call(e),n=t==b?e.constructor:void 0,r=n?Xe(n):void 0;if(r)switch(r){case ge:return C;case be:return p;case me:return m;case ye:return w;case we:return A}return t});var Qe=Ve((function(e){var t;e=null==(t=e)?"":function(e){if("string"==typeof e)return e;if(st(e))return Ae?Ae.call(e):"";var t=e+"";return"0"==t&&1/e==-i?"-0":t}(t);var n=[];return P.test(e)&&n.push(""),e.replace(R,(function(e,t,r,s){n.push(r?s.replace(I,"$1"):t||e)})),n}));function Ye(e){if("string"==typeof e||st(e))return e;var t=e+"";return"0"==t&&1/e==-i?"-0":t}function Xe(e){if(null!=e){try{return te.call(e)}catch(e){}try{return e+""}catch(e){}}return""}function Ve(e,t){if("function"!=typeof e||t&&"function"!=typeof t)throw new TypeError("Expected a function");var n=function(){var r=arguments,s=t?t.apply(this,r):r[0],a=n.cache;if(a.has(s))return a.get(s);var i=e.apply(this,r);return n.cache=a.set(s,i),i};return n.cache=new(Ve.Cache||Se),n}function Je(e,t){return e===t||e!=e&&t!=t}function Ke(e){return function(e){return rt(e)&&$e(e)}(e)&&ne.call(e,"callee")&&(!oe.call(e,"callee")||re.call(e)==l)}Ve.Cache=Se;var qe=Array.isArray;function $e(e){return null!=e&&tt(e.length)&&!et(e)}function et(e){var t=nt(e)?re.call(e):"";return t==_||t==h}function tt(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=o}function nt(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function rt(e){return!!e&&"object"==typeof e}function st(e){return"symbol"==typeof e||rt(e)&&re.call(e)==E}var at=H?function(e){return function(t){return e(t)}}(H):function(e){return rt(e)&&tt(e.length)&&!!k[re.call(e)]};function it(e){return $e(e)?function(e,t){var n=qe(e)||Ke(e)?function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}(e.length,String):[],r=n.length,s=!!r;for(var a in e)!t&&!ne.call(e,a)||s&&("length"==a||je(a,r))||n.push(a);return n}(e):function(e){if(n=(t=e)&&t.constructor,t!==("function"==typeof n&&n.prototype||q))return ce(e);var t,n,r=[];for(var s in Object(e))ne.call(e,s)&&"constructor"!=s&&r.push(s);return r}(e)}function ot(e){return e}e.exports=function(e,t,n){var r,i,o,l,c,u=qe(e)?j:xe;return n&&function(e,t,n){if(!nt(n))return!1;var r=typeof t;return!!("number"==r?$e(n)&&je(t,n.length):"string"==r&&t in n)&&Je(n[t],e)}(e,t,n)&&(t=void 0),u(e,"function"==typeof(r=t)?r:null==r?ot:"object"==typeof r?qe(r)?function(e,t){return Ze(e)&&Ge(t)?We(Ye(e),t):function(n){var r=function(e,t,n){var r=null==e?void 0:Oe(e,t);return void 0===r?void 0:r}(n,e);return void 0===r&&r===t?function(e,t){return null!=e&&function(e,t,n){for(var r,s=-1,a=(t=Ze(t,e)?[t]:Fe(t)).length;++s<a;){var i=Ye(t[s]);if(!(r=null!=e&&n(e,i)))break;e=e[i]}return r||!!(a=e?e.length:0)&&tt(a)&&je(i,a)&&(qe(e)||Ke(e))}(e,t,Be)}(n,e):De(t,r,void 0,s|a)}}(r[0],r[1]):1==(o=function(e){for(var t=it(e),n=t.length;n--;){var r=t[n],s=e[r];t[n]=[r,s,Ge(s)]}return t}(i=r)).length&&o[0][2]?We(o[0][0],o[0][1]):function(e){return e===i||function(e,t,n,r){var i=n.length,o=i;if(null==e)return!o;for(e=Object(e);i--;){var l=n[i];if(l[2]?l[1]!==e[l[0]]:!(l[0]in e))return!1}for(;++i<o;){var c=(l=n[i])[0],u=e[c],f=l[1];if(l[2]){if(void 0===u&&!(c in e))return!1}else{var d,_=new Pe;if(!(void 0===d?De(f,u,r,s|a,_):d))return!1}}return!0}(e,0,o)}:Ze(l=r)?(c=Ye(l),function(e){return null==e?void 0:e[c]}):function(e){return function(t){return Oe(t,e)}}(l))}},1328:(e,t,n)=>{e=n.nmd(e);var r="__lodash_hash_undefined__",s=1,a=2,i=1/0,o=9007199254740991,l="[object Arguments]",c="[object Array]",u="[object Boolean]",f="[object Date]",d="[object Error]",_="[object Function]",h="[object GeneratorFunction]",p="[object Map]",g="[object Number]",b="[object Object]",m="[object Promise]",y="[object RegExp]",w="[object Set]",v="[object String]",E="[object Symbol]",A="[object WeakMap]",L="[object ArrayBuffer]",C="[object DataView]",S=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,T=/^\w*$/,P=/^\./,R=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,I=/\\(\\)?/g,N=/^\[object .+?Constructor\]$/,x=/^(?:0|[1-9]\d*)$/,k={};k["[object Float32Array]"]=k["[object Float64Array]"]=k["[object Int8Array]"]=k["[object Int16Array]"]=k["[object Int32Array]"]=k["[object Uint8Array]"]=k["[object Uint8ClampedArray]"]=k["[object Uint16Array]"]=k["[object Uint32Array]"]=!0,k[l]=k[c]=k[L]=k[u]=k[C]=k[f]=k[d]=k[_]=k[p]=k[g]=k[b]=k[y]=k[w]=k[v]=k[A]=!1;var O="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,B="object"==typeof self&&self&&self.Object===Object&&self,D=O||B||Function("return this")(),F=t&&!t.nodeType&&t,M=F&&e&&!e.nodeType&&e,U=M&&M.exports===F&&O.process,z=function(){try{return U&&U.binding("util")}catch(e){}}(),H=z&&z.isTypedArray;function j(e,t){for(var n=-1,r=e?e.length:0;++n<r;)if(t(e[n],n,e))return!0;return!1}function Z(e){var t=!1;if(null!=e&&"function"!=typeof e.toString)try{t=!!(e+"")}catch(e){}return t}function G(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}function W(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}var Q,Y,X,V=Array.prototype,J=Function.prototype,K=Object.prototype,q=D["__core-js_shared__"],$=(Q=/[^.]+$/.exec(q&&q.keys&&q.keys.IE_PROTO||""))?"Symbol(src)_1."+Q:"",ee=J.toString,te=K.hasOwnProperty,ne=K.toString,re=RegExp("^"+ee.call(te).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),se=D.Symbol,ae=D.Uint8Array,ie=K.propertyIsEnumerable,oe=V.splice,le=(Y=Object.keys,X=Object,function(e){return Y(X(e))}),ce=Be(D,"DataView"),ue=Be(D,"Map"),fe=Be(D,"Promise"),de=Be(D,"Set"),_e=Be(D,"WeakMap"),he=Be(Object,"create"),pe=Ze(ce),ge=Ze(ue),be=Ze(fe),me=Ze(de),ye=Ze(_e),we=se?se.prototype:void 0,ve=we?we.valueOf:void 0,Ee=we?we.toString:void 0;function Ae(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function Le(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function Ce(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function Se(e){var t=-1,n=e?e.length:0;for(this.__data__=new Ce;++t<n;)this.add(e[t])}function Te(e){this.__data__=new Le(e)}function Pe(e,t){for(var n=e.length;n--;)if(We(e[n][0],t))return n;return-1}Ae.prototype.clear=function(){this.__data__=he?he(null):{}},Ae.prototype.delete=function(e){return this.has(e)&&delete this.__data__[e]},Ae.prototype.get=function(e){var t=this.__data__;if(he){var n=t[e];return n===r?void 0:n}return te.call(t,e)?t[e]:void 0},Ae.prototype.has=function(e){var t=this.__data__;return he?void 0!==t[e]:te.call(t,e)},Ae.prototype.set=function(e,t){return this.__data__[e]=he&&void 0===t?r:t,this},Le.prototype.clear=function(){this.__data__=[]},Le.prototype.delete=function(e){var t=this.__data__,n=Pe(t,e);return!(n<0||(n==t.length-1?t.pop():oe.call(t,n,1),0))},Le.prototype.get=function(e){var t=this.__data__,n=Pe(t,e);return n<0?void 0:t[n][1]},Le.prototype.has=function(e){return Pe(this.__data__,e)>-1},Le.prototype.set=function(e,t){var n=this.__data__,r=Pe(n,e);return r<0?n.push([e,t]):n[r][1]=t,this},Ce.prototype.clear=function(){this.__data__={hash:new Ae,map:new(ue||Le),string:new Ae}},Ce.prototype.delete=function(e){return Oe(this,e).delete(e)},Ce.prototype.get=function(e){return Oe(this,e).get(e)},Ce.prototype.has=function(e){return Oe(this,e).has(e)},Ce.prototype.set=function(e,t){return Oe(this,e).set(e,t),this},Se.prototype.add=Se.prototype.push=function(e){return this.__data__.set(e,r),this},Se.prototype.has=function(e){return this.__data__.has(e)},Te.prototype.clear=function(){this.__data__=new Le},Te.prototype.delete=function(e){return this.__data__.delete(e)},Te.prototype.get=function(e){return this.__data__.get(e)},Te.prototype.has=function(e){return this.__data__.has(e)},Te.prototype.set=function(e,t){var n=this.__data__;if(n instanceof Le){var r=n.__data__;if(!ue||r.length<199)return r.push([e,t]),this;n=this.__data__=new Ce(r)}return n.set(e,t),this};function Re(e,t){for(var n=0,r=(t=Me(t,e)?[t]:xe(t)).length;null!=e&&n<r;)e=e[je(t[n++])];return n&&n==r?e:void 0}function Ie(e,t){return null!=e&&t in Object(e)}function Ne(e,t,n,r,i){return e===t||(null==e||null==t||!Ke(e)&&!qe(t)?e!=e&&t!=t:function(e,t,n,r,i,o){var _=Ye(e),h=Ye(t),m=c,A=c;_||(m=(m=De(e))==l?b:m),h||(A=(A=De(t))==l?b:A);var S=m==b&&!Z(e),T=A==b&&!Z(t),P=m==A;if(P&&!S)return o||(o=new Te),_||et(e)?ke(e,t,n,r,i,o):function(e,t,n,r,i,o,l){switch(n){case C:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case L:return!(e.byteLength!=t.byteLength||!r(new ae(e),new ae(t)));case u:case f:case g:return We(+e,+t);case d:return e.name==t.name&&e.message==t.message;case y:case v:return e==t+"";case p:var c=G;case w:var _=o&a;if(c||(c=W),e.size!=t.size&&!_)return!1;var h=l.get(e);if(h)return h==t;o|=s,l.set(e,t);var b=ke(c(e),c(t),r,i,o,l);return l.delete(e),b;case E:if(ve)return ve.call(e)==ve.call(t)}return!1}(e,t,m,n,r,i,o);if(!(i&a)){var R=S&&te.call(e,"__wrapped__"),I=T&&te.call(t,"__wrapped__");if(R||I){var N=R?e.value():e,x=I?t.value():t;return o||(o=new Te),n(N,x,r,i,o)}}return!!P&&(o||(o=new Te),function(e,t,n,r,s,i){var o=s&a,l=tt(e),c=l.length;if(c!=tt(t).length&&!o)return!1;for(var u=c;u--;){var f=l[u];if(!(o?f in t:te.call(t,f)))return!1}var d=i.get(e);if(d&&i.get(t))return d==t;var _=!0;i.set(e,t),i.set(t,e);for(var h=o;++u<c;){var p=e[f=l[u]],g=t[f];if(r)var b=o?r(g,p,f,t,e,i):r(p,g,f,e,t,i);if(!(void 0===b?p===g||n(p,g,r,s,i):b)){_=!1;break}h||(h="constructor"==f)}if(_&&!h){var m=e.constructor,y=t.constructor;m==y||!("constructor"in e)||!("constructor"in t)||"function"==typeof m&&m instanceof m&&"function"==typeof y&&y instanceof y||(_=!1)}return i.delete(e),i.delete(t),_}(e,t,n,r,i,o))}(e,t,Ne,n,r,i))}function xe(e){return Ye(e)?e:He(e)}function ke(e,t,n,r,i,o){var l=i&a,c=e.length,u=t.length;if(c!=u&&!(l&&u>c))return!1;var f=o.get(e);if(f&&o.get(t))return f==t;var d=-1,_=!0,h=i&s?new Se:void 0;for(o.set(e,t),o.set(t,e);++d<c;){var p=e[d],g=t[d];if(r)var b=l?r(g,p,d,t,e,o):r(p,g,d,e,t,o);if(void 0!==b){if(b)continue;_=!1;break}if(h){if(!j(t,(function(e,t){if(!h.has(t)&&(p===e||n(p,e,r,i,o)))return h.add(t)}))){_=!1;break}}else if(p!==g&&!n(p,g,r,i,o)){_=!1;break}}return o.delete(e),o.delete(t),_}function Oe(e,t){var n,r,s=e.__data__;return("string"==(r=typeof(n=t))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?s["string"==typeof t?"string":"hash"]:s.map}function Be(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return function(e){return!(!Ke(e)||function(e){return!!$&&$ in e}(e))&&(Ve(e)||Z(e)?re:N).test(Ze(e))}(n)?n:void 0}var De=function(e){return ne.call(e)};function Fe(e,t){return!!(t=null==t?o:t)&&("number"==typeof e||x.test(e))&&e>-1&&e%1==0&&e<t}function Me(e,t){if(Ye(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!$e(e))||T.test(e)||!S.test(e)||null!=t&&e in Object(t)}function Ue(e){return e==e&&!Ke(e)}function ze(e,t){return function(n){return null!=n&&n[e]===t&&(void 0!==t||e in Object(n))}}(ce&&De(new ce(new ArrayBuffer(1)))!=C||ue&&De(new ue)!=p||fe&&De(fe.resolve())!=m||de&&De(new de)!=w||_e&&De(new _e)!=A)&&(De=function(e){var t=ne.call(e),n=t==b?e.constructor:void 0,r=n?Ze(n):void 0;if(r)switch(r){case pe:return C;case ge:return p;case be:return m;case me:return w;case ye:return A}return t});var He=Ge((function(e){var t;e=null==(t=e)?"":function(e){if("string"==typeof e)return e;if($e(e))return Ee?Ee.call(e):"";var t=e+"";return"0"==t&&1/e==-i?"-0":t}(t);var n=[];return P.test(e)&&n.push(""),e.replace(R,(function(e,t,r,s){n.push(r?s.replace(I,"$1"):t||e)})),n}));function je(e){if("string"==typeof e||$e(e))return e;var t=e+"";return"0"==t&&1/e==-i?"-0":t}function Ze(e){if(null!=e){try{return ee.call(e)}catch(e){}try{return e+""}catch(e){}}return""}function Ge(e,t){if("function"!=typeof e||t&&"function"!=typeof t)throw new TypeError("Expected a function");var n=function(){var r=arguments,s=t?t.apply(this,r):r[0],a=n.cache;if(a.has(s))return a.get(s);var i=e.apply(this,r);return n.cache=a.set(s,i),i};return n.cache=new(Ge.Cache||Ce),n}function We(e,t){return e===t||e!=e&&t!=t}function Qe(e){return function(e){return qe(e)&&Xe(e)}(e)&&te.call(e,"callee")&&(!ie.call(e,"callee")||ne.call(e)==l)}Ge.Cache=Ce;var Ye=Array.isArray;function Xe(e){return null!=e&&Je(e.length)&&!Ve(e)}function Ve(e){var t=Ke(e)?ne.call(e):"";return t==_||t==h}function Je(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=o}function Ke(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function qe(e){return!!e&&"object"==typeof e}function $e(e){return"symbol"==typeof e||qe(e)&&ne.call(e)==E}var et=H?function(e){return function(t){return e(t)}}(H):function(e){return qe(e)&&Je(e.length)&&!!k[ne.call(e)]};function tt(e){return Xe(e)?function(e,t){var n=Ye(e)||Qe(e)?function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}(e.length,String):[],r=n.length,s=!!r;for(var a in e)!t&&!te.call(e,a)||s&&("length"==a||Fe(a,r))||n.push(a);return n}(e):function(e){if(n=(t=e)&&t.constructor,t!==("function"==typeof n&&n.prototype||K))return le(e);var t,n,r=[];for(var s in Object(e))te.call(e,s)&&"constructor"!=s&&r.push(s);return r}(e)}function nt(e){return e}e.exports=function(e,t){var n,r,i,o,l,c={};return t="function"==typeof(n=t)?n:null==n?nt:"object"==typeof n?Ye(n)?function(e,t){return Me(e)&&Ue(t)?ze(je(e),t):function(n){var r=function(e,t,n){var r=null==e?void 0:Re(e,t);return void 0===r?void 0:r}(n,e);return void 0===r&&r===t?function(e,t){return null!=e&&function(e,t,n){for(var r,s=-1,a=(t=Me(t,e)?[t]:xe(t)).length;++s<a;){var i=je(t[s]);if(!(r=null!=e&&n(e,i)))break;e=e[i]}return r||!!(a=e?e.length:0)&&Je(a)&&Fe(i,a)&&(Ye(e)||Qe(e))}(e,t,Ie)}(n,e):Ne(t,r,void 0,s|a)}}(n[0],n[1]):(i=function(e){for(var t=tt(e),n=t.length;n--;){var r=t[n],s=e[r];t[n]=[r,s,Ue(s)]}return t}(r=n),1==i.length&&i[0][2]?ze(i[0][0],i[0][1]):function(e){return e===r||function(e,t,n,r){var i=n.length,o=i;if(null==e)return!o;for(e=Object(e);i--;){var l=n[i];if(l[2]?l[1]!==e[l[0]]:!(l[0]in e))return!1}for(;++i<o;){var c=(l=n[i])[0],u=e[c],f=l[1];if(l[2]){if(void 0===u&&!(c in e))return!1}else{var d,_=new Te;if(!(void 0===d?Ne(f,u,r,s|a,_):d))return!1}}return!0}(e,0,i)}):Me(o=n)?(l=je(o),function(e){return null==e?void 0:e[l]}):function(e){return function(t){return Re(t,e)}}(o),function(e,t){e&&function(e,t,n){for(var r=-1,s=Object(e),a=n(e),i=a.length;i--;){var o=a[++r];if(!1===t(s[o],o,s))break}}(e,t,tt)}(e,(function(e,n,r){c[n]=t(e,n,r)})),c}},107:(e,t,n)=>{e=n.nmd(e);var r="__lodash_hash_undefined__",s=1,a=2,i=1/0,o=9007199254740991,l="[object Arguments]",c="[object Array]",u="[object Boolean]",f="[object Date]",d="[object Error]",_="[object Function]",h="[object GeneratorFunction]",p="[object Map]",g="[object Number]",b="[object Object]",m="[object Promise]",y="[object RegExp]",w="[object Set]",v="[object String]",E="[object Symbol]",A="[object WeakMap]",L="[object ArrayBuffer]",C="[object DataView]",S=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,T=/^\w*$/,P=/^\./,R=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,I=/\\(\\)?/g,N=/^\[object .+?Constructor\]$/,x=/^(?:0|[1-9]\d*)$/,k={};k["[object Float32Array]"]=k["[object Float64Array]"]=k["[object Int8Array]"]=k["[object Int16Array]"]=k["[object Int32Array]"]=k["[object Uint8Array]"]=k["[object Uint8ClampedArray]"]=k["[object Uint16Array]"]=k["[object Uint32Array]"]=!0,k[l]=k[c]=k[L]=k[u]=k[C]=k[f]=k[d]=k[_]=k[p]=k[g]=k[b]=k[y]=k[w]=k[v]=k[A]=!1;var O="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,B="object"==typeof self&&self&&self.Object===Object&&self,D=O||B||Function("return this")(),F=t&&!t.nodeType&&t,M=F&&e&&!e.nodeType&&e,U=M&&M.exports===F&&O.process,z=function(){try{return U&&U.binding("util")}catch(e){}}(),H=z&&z.isTypedArray;function j(e,t,n,r){for(var s=-1,a=e?e.length:0;++s<a;){var i=e[s];t(r,i,n(i),e)}return r}function Z(e,t){for(var n=-1,r=e?e.length:0;++n<r;)if(t(e[n],n,e))return!0;return!1}function G(e){var t=!1;if(null!=e&&"function"!=typeof e.toString)try{t=!!(e+"")}catch(e){}return t}function W(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}function Q(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}var Y,X,V,J=Array.prototype,K=Function.prototype,q=Object.prototype,$=D["__core-js_shared__"],ee=(Y=/[^.]+$/.exec($&&$.keys&&$.keys.IE_PROTO||""))?"Symbol(src)_1."+Y:"",te=K.toString,ne=q.hasOwnProperty,re=q.toString,se=RegExp("^"+te.call(ne).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),ae=D.Symbol,ie=D.Uint8Array,oe=q.propertyIsEnumerable,le=J.splice,ce=(X=Object.keys,V=Object,function(e){return X(V(e))}),ue=ze(D,"DataView"),fe=ze(D,"Map"),de=ze(D,"Promise"),_e=ze(D,"Set"),he=ze(D,"WeakMap"),pe=ze(Object,"create"),ge=Xe(ue),be=Xe(fe),me=Xe(de),ye=Xe(_e),we=Xe(he),ve=ae?ae.prototype:void 0,Ee=ve?ve.valueOf:void 0,Ae=ve?ve.toString:void 0;function Le(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function Ce(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function Se(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function Te(e){var t=-1,n=e?e.length:0;for(this.__data__=new Se;++t<n;)this.add(e[t])}function Pe(e){this.__data__=new Ce(e)}function Re(e,t){for(var n=e.length;n--;)if($e(e[n][0],t))return n;return-1}function Ie(e,t,n,r){return xe(e,(function(e,s,a){t(r,e,n(e),a)})),r}Le.prototype.clear=function(){this.__data__=pe?pe(null):{}},Le.prototype.delete=function(e){return this.has(e)&&delete this.__data__[e]},Le.prototype.get=function(e){var t=this.__data__;if(pe){var n=t[e];return n===r?void 0:n}return ne.call(t,e)?t[e]:void 0},Le.prototype.has=function(e){var t=this.__data__;return pe?void 0!==t[e]:ne.call(t,e)},Le.prototype.set=function(e,t){return this.__data__[e]=pe&&void 0===t?r:t,this},Ce.prototype.clear=function(){this.__data__=[]},Ce.prototype.delete=function(e){var t=this.__data__,n=Re(t,e);return!(n<0||(n==t.length-1?t.pop():le.call(t,n,1),0))},Ce.prototype.get=function(e){var t=this.__data__,n=Re(t,e);return n<0?void 0:t[n][1]},Ce.prototype.has=function(e){return Re(this.__data__,e)>-1},Ce.prototype.set=function(e,t){var n=this.__data__,r=Re(n,e);return r<0?n.push([e,t]):n[r][1]=t,this},Se.prototype.clear=function(){this.__data__={hash:new Le,map:new(fe||Ce),string:new Le}},Se.prototype.delete=function(e){return Ue(this,e).delete(e)},Se.prototype.get=function(e){return Ue(this,e).get(e)},Se.prototype.has=function(e){return Ue(this,e).has(e)},Se.prototype.set=function(e,t){return Ue(this,e).set(e,t),this},Te.prototype.add=Te.prototype.push=function(e){return this.__data__.set(e,r),this},Te.prototype.has=function(e){return this.__data__.has(e)},Pe.prototype.clear=function(){this.__data__=new Ce},Pe.prototype.delete=function(e){return this.__data__.delete(e)},Pe.prototype.get=function(e){return this.__data__.get(e)},Pe.prototype.has=function(e){return this.__data__.has(e)},Pe.prototype.set=function(e,t){var n=this.__data__;if(n instanceof Ce){var r=n.__data__;if(!fe||r.length<199)return r.push([e,t]),this;n=this.__data__=new Se(r)}return n.set(e,t),this};var Ne,xe=(Ne=function(e,t){return e&&ke(e,t,ct)},function(e,t){if(null==e)return e;if(!nt(e))return Ne(e,t);for(var n=e.length,r=-1,s=Object(e);++r<n&&!1!==t(s[r],r,s););return e}),ke=function(e,t,n){for(var r=-1,s=Object(e),a=n(e),i=a.length;i--;){var o=a[++r];if(!1===t(s[o],o,s))break}return e};function Oe(e,t){for(var n=0,r=(t=Ze(t,e)?[t]:Fe(t)).length;null!=e&&n<r;)e=e[Ye(t[n++])];return n&&n==r?e:void 0}function Be(e,t){return null!=e&&t in Object(e)}function De(e,t,n,r,i){return e===t||(null==e||null==t||!at(e)&&!it(t)?e!=e&&t!=t:function(e,t,n,r,i,o){var _=tt(e),h=tt(t),m=c,A=c;_||(m=(m=He(e))==l?b:m),h||(A=(A=He(t))==l?b:A);var S=m==b&&!G(e),T=A==b&&!G(t),P=m==A;if(P&&!S)return o||(o=new Pe),_||lt(e)?Me(e,t,n,r,i,o):function(e,t,n,r,i,o,l){switch(n){case C:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case L:return!(e.byteLength!=t.byteLength||!r(new ie(e),new ie(t)));case u:case f:case g:return $e(+e,+t);case d:return e.name==t.name&&e.message==t.message;case y:case v:return e==t+"";case p:var c=W;case w:var _=o&a;if(c||(c=Q),e.size!=t.size&&!_)return!1;var h=l.get(e);if(h)return h==t;o|=s,l.set(e,t);var b=Me(c(e),c(t),r,i,o,l);return l.delete(e),b;case E:if(Ee)return Ee.call(e)==Ee.call(t)}return!1}(e,t,m,n,r,i,o);if(!(i&a)){var R=S&&ne.call(e,"__wrapped__"),I=T&&ne.call(t,"__wrapped__");if(R||I){var N=R?e.value():e,x=I?t.value():t;return o||(o=new Pe),n(N,x,r,i,o)}}return!!P&&(o||(o=new Pe),function(e,t,n,r,s,i){var o=s&a,l=ct(e),c=l.length;if(c!=ct(t).length&&!o)return!1;for(var u=c;u--;){var f=l[u];if(!(o?f in t:ne.call(t,f)))return!1}var d=i.get(e);if(d&&i.get(t))return d==t;var _=!0;i.set(e,t),i.set(t,e);for(var h=o;++u<c;){var p=e[f=l[u]],g=t[f];if(r)var b=o?r(g,p,f,t,e,i):r(p,g,f,e,t,i);if(!(void 0===b?p===g||n(p,g,r,s,i):b)){_=!1;break}h||(h="constructor"==f)}if(_&&!h){var m=e.constructor,y=t.constructor;m==y||!("constructor"in e)||!("constructor"in t)||"function"==typeof m&&m instanceof m&&"function"==typeof y&&y instanceof y||(_=!1)}return i.delete(e),i.delete(t),_}(e,t,n,r,i,o))}(e,t,De,n,r,i))}function Fe(e){return tt(e)?e:Qe(e)}function Me(e,t,n,r,i,o){var l=i&a,c=e.length,u=t.length;if(c!=u&&!(l&&u>c))return!1;var f=o.get(e);if(f&&o.get(t))return f==t;var d=-1,_=!0,h=i&s?new Te:void 0;for(o.set(e,t),o.set(t,e);++d<c;){var p=e[d],g=t[d];if(r)var b=l?r(g,p,d,t,e,o):r(p,g,d,e,t,o);if(void 0!==b){if(b)continue;_=!1;break}if(h){if(!Z(t,(function(e,t){if(!h.has(t)&&(p===e||n(p,e,r,i,o)))return h.add(t)}))){_=!1;break}}else if(p!==g&&!n(p,g,r,i,o)){_=!1;break}}return o.delete(e),o.delete(t),_}function Ue(e,t){var n,r,s=e.__data__;return("string"==(r=typeof(n=t))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?s["string"==typeof t?"string":"hash"]:s.map}function ze(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return function(e){return!(!at(e)||function(e){return!!ee&&ee in e}(e))&&(rt(e)||G(e)?se:N).test(Xe(e))}(n)?n:void 0}var He=function(e){return re.call(e)};function je(e,t){return!!(t=null==t?o:t)&&("number"==typeof e||x.test(e))&&e>-1&&e%1==0&&e<t}function Ze(e,t){if(tt(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!ot(e))||T.test(e)||!S.test(e)||null!=t&&e in Object(t)}function Ge(e){return e==e&&!at(e)}function We(e,t){return function(n){return null!=n&&n[e]===t&&(void 0!==t||e in Object(n))}}(ue&&He(new ue(new ArrayBuffer(1)))!=C||fe&&He(new fe)!=p||de&&He(de.resolve())!=m||_e&&He(new _e)!=w||he&&He(new he)!=A)&&(He=function(e){var t=re.call(e),n=t==b?e.constructor:void 0,r=n?Xe(n):void 0;if(r)switch(r){case ge:return C;case be:return p;case me:return m;case ye:return w;case we:return A}return t});var Qe=qe((function(e){var t;e=null==(t=e)?"":function(e){if("string"==typeof e)return e;if(ot(e))return Ae?Ae.call(e):"";var t=e+"";return"0"==t&&1/e==-i?"-0":t}(t);var n=[];return P.test(e)&&n.push(""),e.replace(R,(function(e,t,r,s){n.push(r?s.replace(I,"$1"):t||e)})),n}));function Ye(e){if("string"==typeof e||ot(e))return e;var t=e+"";return"0"==t&&1/e==-i?"-0":t}function Xe(e){if(null!=e){try{return te.call(e)}catch(e){}try{return e+""}catch(e){}}return""}var Ve,Je,Ke=(Ve=function(e,t,n){e[n?0:1].push(t)},Je=function(){return[[],[]]},function(e,t){var n,r,i,o,l,c=tt(e)?j:Ie,u=Je?[[],[]]:{};return c(e,Ve,"function"==typeof(n=t)?n:null==n?ut:"object"==typeof n?tt(n)?function(e,t){return Ze(e)&&Ge(t)?We(Ye(e),t):function(n){var r=function(e,t,n){var r=null==e?void 0:Oe(e,t);return void 0===r?void 0:r}(n,e);return void 0===r&&r===t?function(e,t){return null!=e&&function(e,t,n){for(var r,s=-1,a=(t=Ze(t,e)?[t]:Fe(t)).length;++s<a;){var i=Ye(t[s]);if(!(r=null!=e&&n(e,i)))break;e=e[i]}return r||!!(a=e?e.length:0)&&st(a)&&je(i,a)&&(tt(e)||et(e))}(e,t,Be)}(n,e):De(t,r,void 0,s|a)}}(n[0],n[1]):1==(i=function(e){for(var t=ct(e),n=t.length;n--;){var r=t[n],s=e[r];t[n]=[r,s,Ge(s)]}return t}(r=n)).length&&i[0][2]?We(i[0][0],i[0][1]):function(e){return e===r||function(e,t,n,r){var i=n.length,o=i;if(null==e)return!o;for(e=Object(e);i--;){var l=n[i];if(l[2]?l[1]!==e[l[0]]:!(l[0]in e))return!1}for(;++i<o;){var c=(l=n[i])[0],u=e[c],f=l[1];if(l[2]){if(void 0===u&&!(c in e))return!1}else{var d,_=new Pe;if(!(void 0===d?De(f,u,r,s|a,_):d))return!1}}return!0}(e,0,i)}:Ze(o=n)?(l=Ye(o),function(e){return null==e?void 0:e[l]}):function(e){return function(t){return Oe(t,e)}}(o),u)});function qe(e,t){if("function"!=typeof e||t&&"function"!=typeof t)throw new TypeError("Expected a function");var n=function(){var r=arguments,s=t?t.apply(this,r):r[0],a=n.cache;if(a.has(s))return a.get(s);var i=e.apply(this,r);return n.cache=a.set(s,i),i};return n.cache=new(qe.Cache||Se),n}function $e(e,t){return e===t||e!=e&&t!=t}function et(e){return function(e){return it(e)&&nt(e)}(e)&&ne.call(e,"callee")&&(!oe.call(e,"callee")||re.call(e)==l)}qe.Cache=Se;var tt=Array.isArray;function nt(e){return null!=e&&st(e.length)&&!rt(e)}function rt(e){var t=at(e)?re.call(e):"";return t==_||t==h}function st(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=o}function at(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function it(e){return!!e&&"object"==typeof e}function ot(e){return"symbol"==typeof e||it(e)&&re.call(e)==E}var lt=H?function(e){return function(t){return e(t)}}(H):function(e){return it(e)&&st(e.length)&&!!k[re.call(e)]};function ct(e){return nt(e)?function(e,t){var n=tt(e)||et(e)?function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}(e.length,String):[],r=n.length,s=!!r;for(var a in e)!t&&!ne.call(e,a)||s&&("length"==a||je(a,r))||n.push(a);return n}(e):function(e){if(n=(t=e)&&t.constructor,t!==("function"==typeof n&&n.prototype||q))return ce(e);var t,n,r=[];for(var s in Object(e))ne.call(e,s)&&"constructor"!=s&&r.push(s);return r}(e)}function ut(e){return e}e.exports=Ke},3545:e=>{var t=1/0,n=4294967295,r=/^\s+|\s+$/g,s=/^[-+]0x[0-9a-f]+$/i,a=/^0b[01]+$/i,i=/^0o[0-7]+$/i,o=parseInt,l=Object.prototype.toString,c=Math.min;function u(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function f(e){return e}e.exports=function(e,d){if((e=function(e){var n=function(e){return e?(e=function(e){if("number"==typeof e)return e;if(function(e){return"symbol"==typeof e||function(e){return!!e&&"object"==typeof e}(e)&&"[object Symbol]"==l.call(e)}(e))return NaN;if(u(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=u(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(r,"");var n=a.test(e);return n||i.test(e)?o(e.slice(2),n?2:8):s.test(e)?NaN:+e}(e))===t||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0}(e),c=n%1;return n==n?c?n-c:n:0}(e))<1||e>9007199254740991)return[];var _=n,h=c(e,n);e-=n;for(var p=function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}(h,d="function"==typeof d?d:f);++_<e;)d(_);return p}},9500:(e,t,n)=>{var r=n(87),s=n(6883),a=n(7172).Buffer,i=new Array(16);function o(){s.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}function l(e,t){return e<<t|e>>>32-t}function c(e,t,n,r,s,a,i){return l(e+(t&n|~t&r)+s+a|0,i)+t|0}function u(e,t,n,r,s,a,i){return l(e+(t&r|n&~r)+s+a|0,i)+t|0}function f(e,t,n,r,s,a,i){return l(e+(t^n^r)+s+a|0,i)+t|0}function d(e,t,n,r,s,a,i){return l(e+(n^(t|~r))+s+a|0,i)+t|0}r(o,s),o.prototype._update=function(){for(var e=i,t=0;t<16;++t)e[t]=this._block.readInt32LE(4*t);var n=this._a,r=this._b,s=this._c,a=this._d;n=c(n,r,s,a,e[0],3614090360,7),a=c(a,n,r,s,e[1],3905402710,12),s=c(s,a,n,r,e[2],606105819,17),r=c(r,s,a,n,e[3],3250441966,22),n=c(n,r,s,a,e[4],4118548399,7),a=c(a,n,r,s,e[5],1200080426,12),s=c(s,a,n,r,e[6],2821735955,17),r=c(r,s,a,n,e[7],4249261313,22),n=c(n,r,s,a,e[8],1770035416,7),a=c(a,n,r,s,e[9],2336552879,12),s=c(s,a,n,r,e[10],4294925233,17),r=c(r,s,a,n,e[11],2304563134,22),n=c(n,r,s,a,e[12],1804603682,7),a=c(a,n,r,s,e[13],4254626195,12),s=c(s,a,n,r,e[14],2792965006,17),n=u(n,r=c(r,s,a,n,e[15],1236535329,22),s,a,e[1],4129170786,5),a=u(a,n,r,s,e[6],3225465664,9),s=u(s,a,n,r,e[11],643717713,14),r=u(r,s,a,n,e[0],3921069994,20),n=u(n,r,s,a,e[5],3593408605,5),a=u(a,n,r,s,e[10],38016083,9),s=u(s,a,n,r,e[15],3634488961,14),r=u(r,s,a,n,e[4],3889429448,20),n=u(n,r,s,a,e[9],568446438,5),a=u(a,n,r,s,e[14],3275163606,9),s=u(s,a,n,r,e[3],4107603335,14),r=u(r,s,a,n,e[8],1163531501,20),n=u(n,r,s,a,e[13],2850285829,5),a=u(a,n,r,s,e[2],4243563512,9),s=u(s,a,n,r,e[7],1735328473,14),n=f(n,r=u(r,s,a,n,e[12],2368359562,20),s,a,e[5],4294588738,4),a=f(a,n,r,s,e[8],2272392833,11),s=f(s,a,n,r,e[11],1839030562,16),r=f(r,s,a,n,e[14],4259657740,23),n=f(n,r,s,a,e[1],2763975236,4),a=f(a,n,r,s,e[4],1272893353,11),s=f(s,a,n,r,e[7],4139469664,16),r=f(r,s,a,n,e[10],3200236656,23),n=f(n,r,s,a,e[13],681279174,4),a=f(a,n,r,s,e[0],3936430074,11),s=f(s,a,n,r,e[3],3572445317,16),r=f(r,s,a,n,e[6],76029189,23),n=f(n,r,s,a,e[9],3654602809,4),a=f(a,n,r,s,e[12],3873151461,11),s=f(s,a,n,r,e[15],530742520,16),n=d(n,r=f(r,s,a,n,e[2],3299628645,23),s,a,e[0],4096336452,6),a=d(a,n,r,s,e[7],1126891415,10),s=d(s,a,n,r,e[14],2878612391,15),r=d(r,s,a,n,e[5],4237533241,21),n=d(n,r,s,a,e[12],1700485571,6),a=d(a,n,r,s,e[3],2399980690,10),s=d(s,a,n,r,e[10],4293915773,15),r=d(r,s,a,n,e[1],2240044497,21),n=d(n,r,s,a,e[8],1873313359,6),a=d(a,n,r,s,e[15],4264355552,10),s=d(s,a,n,r,e[6],2734768916,15),r=d(r,s,a,n,e[13],1309151649,21),n=d(n,r,s,a,e[4],4149444226,6),a=d(a,n,r,s,e[11],3174756917,10),s=d(s,a,n,r,e[2],718787259,15),r=d(r,s,a,n,e[9],3951481745,21),this._a=this._a+n|0,this._b=this._b+r|0,this._c=this._c+s|0,this._d=this._d+a|0},o.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var e=a.allocUnsafe(16);return e.writeInt32LE(this._a,0),e.writeInt32LE(this._b,4),e.writeInt32LE(this._c,8),e.writeInt32LE(this._d,12),e},e.exports=o},7859:e=>{function t(e,t){if(!e)throw new Error(t||"Assertion failed")}e.exports=t,t.equal=function(e,t,n){if(e!=t)throw new Error(n||"Assertion failed: "+e+" != "+t)}},6938:e=>{var t={};function n(e,n,r){r||(r=Error);var s=function(e){var t,r;function s(t,r,s){return e.call(this,function(e,t,r){return"string"==typeof n?n:n(e,t,r)}(t,r,s))||this}return r=e,(t=s).prototype=Object.create(r.prototype),t.prototype.constructor=t,t.__proto__=r,s}(r);s.prototype.name=r.name,s.prototype.code=e,t[e]=s}function r(e,t){if(Array.isArray(e)){var n=e.length;return e=e.map((function(e){return String(e)})),n>2?"one of ".concat(t," ").concat(e.slice(0,n-1).join(", "),", or ")+e[n-1]:2===n?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}return"of ".concat(t," ").concat(String(e))}n("ERR_INVALID_OPT_VALUE",(function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'}),TypeError),n("ERR_INVALID_ARG_TYPE",(function(e,t,n){var s,a,i,o,l;if("string"==typeof t&&(a="not ",t.substr(0,4)===a)?(s="must not be",t=t.replace(/^not /,"")):s="must be",function(e,t,n){return(void 0===n||n>e.length)&&(n=e.length),e.substring(n-9,n)===t}(e," argument"))i="The ".concat(e," ").concat(s," ").concat(r(t,"type"));else{var c=("number"!=typeof l&&(l=0),l+1>(o=e).length||-1===o.indexOf(".",l)?"argument":"property");i='The "'.concat(e,'" ').concat(c," ").concat(s," ").concat(r(t,"type"))}return i+". Received type ".concat(typeof n)}),TypeError),n("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),n("ERR_METHOD_NOT_IMPLEMENTED",(function(e){return"The "+e+" method is not implemented"})),n("ERR_STREAM_PREMATURE_CLOSE","Premature close"),n("ERR_STREAM_DESTROYED",(function(e){return"Cannot call "+e+" after a stream was destroyed"})),n("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),n("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),n("ERR_STREAM_WRITE_AFTER_END","write after end"),n("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),n("ERR_UNKNOWN_ENCODING",(function(e){return"Unknown encoding: "+e}),TypeError),n("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),e.exports.q=t},4439:(e,t,n)=>{var r=Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t};e.exports=c;var s=n(5327),a=n(4567);n(87)(c,s);for(var i=r(a.prototype),o=0;o<i.length;o++){var l=i[o];c.prototype[l]||(c.prototype[l]=a.prototype[l])}function c(e){if(!(this instanceof c))return new c(e);s.call(this,e),a.call(this,e),this.allowHalfOpen=!0,e&&(!1===e.readable&&(this.readable=!1),!1===e.writable&&(this.writable=!1),!1===e.allowHalfOpen&&(this.allowHalfOpen=!1,this.once("end",u)))}function u(){this._writableState.ended||process.nextTick(f,this)}function f(e){e.end()}Object.defineProperty(c.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(c.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(c.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(c.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._readableState&&void 0!==this._writableState&&this._readableState.destroyed&&this._writableState.destroyed},set:function(e){void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed=e,this._writableState.destroyed=e)}})},3754:(e,t,n)=>{e.exports=s;var r=n(2175);function s(e){if(!(this instanceof s))return new s(e);r.call(this,e)}n(87)(s,r),s.prototype._transform=function(e,t,n){n(null,e)}},5327:(e,t,n)=>{var r;e.exports=L,L.ReadableState=A,n(343).EventEmitter;var s,a=function(e,t){return e.listeners(t).length},i=n(6052),o=n(816).Buffer,l=(void 0!==n.g?n.g:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{}).Uint8Array||function(){},c=n(1632);s=c&&c.debuglog?c.debuglog("stream"):function(){};var u,f,d,_=n(7712),h=n(7640),p=n(5985).getHighWaterMark,g=n(6938).q,b=g.ERR_INVALID_ARG_TYPE,m=g.ERR_STREAM_PUSH_AFTER_EOF,y=g.ERR_METHOD_NOT_IMPLEMENTED,w=g.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;n(87)(L,i);var v=h.errorOrDestroy,E=["error","close","destroy","pause","resume"];function A(e,t,s){r=r||n(4439),e=e||{},"boolean"!=typeof s&&(s=t instanceof r),this.objectMode=!!e.objectMode,s&&(this.objectMode=this.objectMode||!!e.readableObjectMode),this.highWaterMark=p(this,e,"readableHighWaterMark",s),this.buffer=new _,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=!1!==e.emitClose,this.autoDestroy=!!e.autoDestroy,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(u||(u=n(4361).s),this.decoder=new u(e.encoding),this.encoding=e.encoding)}function L(e){if(r=r||n(4439),!(this instanceof L))return new L(e);var t=this instanceof r;this._readableState=new A(e,this,t),this.readable=!0,e&&("function"==typeof e.read&&(this._read=e.read),"function"==typeof e.destroy&&(this._destroy=e.destroy)),i.call(this)}function C(e,t,n,r,a){s("readableAddChunk",t);var i,c=e._readableState;if(null===t)c.reading=!1,function(e,t){if(s("onEofChunk"),!t.ended){if(t.decoder){var n=t.decoder.end();n&&n.length&&(t.buffer.push(n),t.length+=t.objectMode?1:n.length)}t.ended=!0,t.sync?R(e):(t.needReadable=!1,t.emittedReadable||(t.emittedReadable=!0,I(e)))}}(e,c);else if(a||(i=function(e,t){var n,r;return r=t,o.isBuffer(r)||r instanceof l||"string"==typeof t||void 0===t||e.objectMode||(n=new b("chunk",["string","Buffer","Uint8Array"],t)),n}(c,t)),i)v(e,i);else if(c.objectMode||t&&t.length>0)if("string"==typeof t||c.objectMode||Object.getPrototypeOf(t)===o.prototype||(t=function(e){return o.from(e)}(t)),r)c.endEmitted?v(e,new w):S(e,c,t,!0);else if(c.ended)v(e,new m);else{if(c.destroyed)return!1;c.reading=!1,c.decoder&&!n?(t=c.decoder.write(t),c.objectMode||0!==t.length?S(e,c,t,!1):N(e,c)):S(e,c,t,!1)}else r||(c.reading=!1,N(e,c));return!c.ended&&(c.length<c.highWaterMark||0===c.length)}function S(e,t,n,r){t.flowing&&0===t.length&&!t.sync?(t.awaitDrain=0,e.emit("data",n)):(t.length+=t.objectMode?1:n.length,r?t.buffer.unshift(n):t.buffer.push(n),t.needReadable&&R(e)),N(e,t)}Object.defineProperty(L.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._readableState&&this._readableState.destroyed},set:function(e){this._readableState&&(this._readableState.destroyed=e)}}),L.prototype.destroy=h.destroy,L.prototype._undestroy=h.undestroy,L.prototype._destroy=function(e,t){t(e)},L.prototype.push=function(e,t){var n,r=this._readableState;return r.objectMode?n=!0:"string"==typeof e&&((t=t||r.defaultEncoding)!==r.encoding&&(e=o.from(e,t),t=""),n=!0),C(this,e,t,!1,n)},L.prototype.unshift=function(e){return C(this,e,null,!0,!1)},L.prototype.isPaused=function(){return!1===this._readableState.flowing},L.prototype.setEncoding=function(e){u||(u=n(4361).s);var t=new u(e);this._readableState.decoder=t,this._readableState.encoding=this._readableState.decoder.encoding;for(var r=this._readableState.buffer.head,s="";null!==r;)s+=t.write(r.data),r=r.next;return this._readableState.buffer.clear(),""!==s&&this._readableState.buffer.push(s),this._readableState.length=s.length,this};var T=1073741824;function P(e,t){return e<=0||0===t.length&&t.ended?0:t.objectMode?1:e!=e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=function(e){return e>=T?e=T:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function R(e){var t=e._readableState;s("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(s("emitReadable",t.flowing),t.emittedReadable=!0,process.nextTick(I,e))}function I(e){var t=e._readableState;s("emitReadable_",t.destroyed,t.length,t.ended),t.destroyed||!t.length&&!t.ended||(e.emit("readable"),t.emittedReadable=!1),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,D(e)}function N(e,t){t.readingMore||(t.readingMore=!0,process.nextTick(x,e,t))}function x(e,t){for(;!t.reading&&!t.ended&&(t.length<t.highWaterMark||t.flowing&&0===t.length);){var n=t.length;if(s("maybeReadMore read 0"),e.read(0),n===t.length)break}t.readingMore=!1}function k(e){var t=e._readableState;t.readableListening=e.listenerCount("readable")>0,t.resumeScheduled&&!t.paused?t.flowing=!0:e.listenerCount("data")>0&&e.resume()}function O(e){s("readable nexttick read 0"),e.read(0)}function B(e,t){s("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),D(e),t.flowing&&!t.reading&&e.read(0)}function D(e){var t=e._readableState;for(s("flow",t.flowing);t.flowing&&null!==e.read(););}function F(e,t){return 0===t.length?null:(t.objectMode?n=t.buffer.shift():!e||e>=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.first():t.buffer.concat(t.length),t.buffer.clear()):n=t.buffer.consume(e,t.decoder),n);var n}function M(e){var t=e._readableState;s("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,process.nextTick(U,t,e))}function U(e,t){if(s("endReadableNT",e.endEmitted,e.length),!e.endEmitted&&0===e.length&&(e.endEmitted=!0,t.readable=!1,t.emit("end"),e.autoDestroy)){var n=t._writableState;(!n||n.autoDestroy&&n.finished)&&t.destroy()}}function z(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1}L.prototype.read=function(e){s("read",e),e=parseInt(e,10);var t=this._readableState,n=e;if(0!==e&&(t.emittedReadable=!1),0===e&&t.needReadable&&((0!==t.highWaterMark?t.length>=t.highWaterMark:t.length>0)||t.ended))return s("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?M(this):R(this),null;if(0===(e=P(e,t))&&t.ended)return 0===t.length&&M(this),null;var r,a=t.needReadable;return s("need readable",a),(0===t.length||t.length-e<t.highWaterMark)&&s("length less than watermark",a=!0),t.ended||t.reading?s("reading or ended",a=!1):a&&(s("do read"),t.reading=!0,t.sync=!0,0===t.length&&(t.needReadable=!0),this._read(t.highWaterMark),t.sync=!1,t.reading||(e=P(n,t))),null===(r=e>0?F(e,t):null)?(t.needReadable=t.length<=t.highWaterMark,e=0):(t.length-=e,t.awaitDrain=0),0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&M(this)),null!==r&&this.emit("data",r),r},L.prototype._read=function(e){v(this,new y("_read()"))},L.prototype.pipe=function(e,t){var n=this,r=this._readableState;switch(r.pipesCount){case 0:r.pipes=e;break;case 1:r.pipes=[r.pipes,e];break;default:r.pipes.push(e)}r.pipesCount+=1,s("pipe count=%d opts=%j",r.pipesCount,t);var i=t&&!1===t.end||e===process.stdout||e===process.stderr?h:o;function o(){s("onend"),e.end()}r.endEmitted?process.nextTick(i):n.once("end",i),e.on("unpipe",(function t(a,i){s("onunpipe"),a===n&&i&&!1===i.hasUnpiped&&(i.hasUnpiped=!0,s("cleanup"),e.removeListener("close",d),e.removeListener("finish",_),e.removeListener("drain",l),e.removeListener("error",f),e.removeListener("unpipe",t),n.removeListener("end",o),n.removeListener("end",h),n.removeListener("data",u),c=!0,!r.awaitDrain||e._writableState&&!e._writableState.needDrain||l())}));var l=function(e){return function(){var t=e._readableState;s("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&a(e,"data")&&(t.flowing=!0,D(e))}}(n);e.on("drain",l);var c=!1;function u(t){s("ondata");var a=e.write(t);s("dest.write",a),!1===a&&((1===r.pipesCount&&r.pipes===e||r.pipesCount>1&&-1!==z(r.pipes,e))&&!c&&(s("false write response, pause",r.awaitDrain),r.awaitDrain++),n.pause())}function f(t){s("onerror",t),h(),e.removeListener("error",f),0===a(e,"error")&&v(e,t)}function d(){e.removeListener("finish",_),h()}function _(){s("onfinish"),e.removeListener("close",d),h()}function h(){s("unpipe"),n.unpipe(e)}return n.on("data",u),function(e,t,n){if("function"==typeof e.prependListener)return e.prependListener(t,n);e._events&&e._events[t]?Array.isArray(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]:e.on(t,n)}(e,"error",f),e.once("close",d),e.once("finish",_),e.emit("pipe",n),r.flowing||(s("pipe resume"),n.resume()),e},L.prototype.unpipe=function(e){var t=this._readableState,n={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,n)),this;if(!e){var r=t.pipes,s=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var a=0;a<s;a++)r[a].emit("unpipe",this,{hasUnpiped:!1});return this}var i=z(t.pipes,e);return-1===i||(t.pipes.splice(i,1),t.pipesCount-=1,1===t.pipesCount&&(t.pipes=t.pipes[0]),e.emit("unpipe",this,n)),this},L.prototype.on=function(e,t){var n=i.prototype.on.call(this,e,t),r=this._readableState;return"data"===e?(r.readableListening=this.listenerCount("readable")>0,!1!==r.flowing&&this.resume()):"readable"===e&&(r.endEmitted||r.readableListening||(r.readableListening=r.needReadable=!0,r.flowing=!1,r.emittedReadable=!1,s("on readable",r.length,r.reading),r.length?R(this):r.reading||process.nextTick(O,this))),n},L.prototype.addListener=L.prototype.on,L.prototype.removeListener=function(e,t){var n=i.prototype.removeListener.call(this,e,t);return"readable"===e&&process.nextTick(k,this),n},L.prototype.removeAllListeners=function(e){var t=i.prototype.removeAllListeners.apply(this,arguments);return"readable"!==e&&void 0!==e||process.nextTick(k,this),t},L.prototype.resume=function(){var e=this._readableState;return e.flowing||(s("resume"),e.flowing=!e.readableListening,function(e,t){t.resumeScheduled||(t.resumeScheduled=!0,process.nextTick(B,e,t))}(this,e)),e.paused=!1,this},L.prototype.pause=function(){return s("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(s("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},L.prototype.wrap=function(e){var t=this,n=this._readableState,r=!1;for(var a in e.on("end",(function(){if(s("wrapped end"),n.decoder&&!n.ended){var e=n.decoder.end();e&&e.length&&t.push(e)}t.push(null)})),e.on("data",(function(a){s("wrapped data"),n.decoder&&(a=n.decoder.write(a)),n.objectMode&&null==a||(n.objectMode||a&&a.length)&&(t.push(a)||(r=!0,e.pause()))})),e)void 0===this[a]&&"function"==typeof e[a]&&(this[a]=function(t){return function(){return e[t].apply(e,arguments)}}(a));for(var i=0;i<E.length;i++)e.on(E[i],this.emit.bind(this,E[i]));return this._read=function(t){s("wrapped _read",t),r&&(r=!1,e.resume())},this},"function"==typeof Symbol&&(L.prototype[Symbol.asyncIterator]=function(){return void 0===f&&(f=n(4157)),f(this)}),Object.defineProperty(L.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),Object.defineProperty(L.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}}),Object.defineProperty(L.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(e){this._readableState&&(this._readableState.flowing=e)}}),L._fromList=F,Object.defineProperty(L.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}}),"function"==typeof Symbol&&(L.from=function(e,t){return void 0===d&&(d=n(5800)),d(L,e,t)})},2175:(e,t,n)=>{e.exports=u;var r=n(6938).q,s=r.ERR_METHOD_NOT_IMPLEMENTED,a=r.ERR_MULTIPLE_CALLBACK,i=r.ERR_TRANSFORM_ALREADY_TRANSFORMING,o=r.ERR_TRANSFORM_WITH_LENGTH_0,l=n(4439);function c(e,t){var n=this._transformState;n.transforming=!1;var r=n.writecb;if(null===r)return this.emit("error",new a);n.writechunk=null,n.writecb=null,null!=t&&this.push(t),r(e);var s=this._readableState;s.reading=!1,(s.needReadable||s.length<s.highWaterMark)&&this._read(s.highWaterMark)}function u(e){if(!(this instanceof u))return new u(e);l.call(this,e),this._transformState={afterTransform:c.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,e&&("function"==typeof e.transform&&(this._transform=e.transform),"function"==typeof e.flush&&(this._flush=e.flush)),this.on("prefinish",f)}function f(){var e=this;"function"!=typeof this._flush||this._readableState.destroyed?d(this,null,null):this._flush((function(t,n){d(e,t,n)}))}function d(e,t,n){if(t)return e.emit("error",t);if(null!=n&&e.push(n),e._writableState.length)throw new o;if(e._transformState.transforming)throw new i;return e.push(null)}n(87)(u,l),u.prototype.push=function(e,t){return this._transformState.needTransform=!1,l.prototype.push.call(this,e,t)},u.prototype._transform=function(e,t,n){n(new s("_transform()"))},u.prototype._write=function(e,t,n){var r=this._transformState;if(r.writecb=n,r.writechunk=e,r.writeencoding=t,!r.transforming){var s=this._readableState;(r.needTransform||s.needReadable||s.length<s.highWaterMark)&&this._read(s.highWaterMark)}},u.prototype._read=function(e){var t=this._transformState;null===t.writechunk||t.transforming?t.needTransform=!0:(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform))},u.prototype._destroy=function(e,t){l.prototype._destroy.call(this,e,(function(e){t(e)}))}},4567:(e,t,n)=>{function r(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,n){var r=e.entry;for(e.entry=null;r;){var s=r.callback;t.pendingcb--,s(undefined),r=r.next}t.corkedRequestsFree.next=e}(t,e)}}var s;e.exports=L,L.WritableState=A;var a,i={deprecate:n(7451)},o=n(6052),l=n(816).Buffer,c=(void 0!==n.g?n.g:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{}).Uint8Array||function(){},u=n(7640),f=n(5985).getHighWaterMark,d=n(6938).q,_=d.ERR_INVALID_ARG_TYPE,h=d.ERR_METHOD_NOT_IMPLEMENTED,p=d.ERR_MULTIPLE_CALLBACK,g=d.ERR_STREAM_CANNOT_PIPE,b=d.ERR_STREAM_DESTROYED,m=d.ERR_STREAM_NULL_VALUES,y=d.ERR_STREAM_WRITE_AFTER_END,w=d.ERR_UNKNOWN_ENCODING,v=u.errorOrDestroy;function E(){}function A(e,t,a){s=s||n(4439),e=e||{},"boolean"!=typeof a&&(a=t instanceof s),this.objectMode=!!e.objectMode,a&&(this.objectMode=this.objectMode||!!e.writableObjectMode),this.highWaterMark=f(this,e,"writableHighWaterMark",a),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var i=!1===e.decodeStrings;this.decodeStrings=!i,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var n=e._writableState,r=n.sync,s=n.writecb;if("function"!=typeof s)throw new p;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(n),t)!function(e,t,n,r,s){--t.pendingcb,n?(process.nextTick(s,r),process.nextTick(I,e,t),e._writableState.errorEmitted=!0,v(e,r)):(s(r),e._writableState.errorEmitted=!0,v(e,r),I(e,t))}(e,n,r,t,s);else{var a=P(n)||e.destroyed;a||n.corked||n.bufferProcessing||!n.bufferedRequest||T(e,n),r?process.nextTick(S,e,n,a,s):S(e,n,a,s)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!1!==e.emitClose,this.autoDestroy=!!e.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new r(this)}function L(e){var t=this instanceof(s=s||n(4439));if(!t&&!a.call(L,this))return new L(e);this._writableState=new A(e,this,t),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),o.call(this)}function C(e,t,n,r,s,a,i){t.writelen=r,t.writecb=i,t.writing=!0,t.sync=!0,t.destroyed?t.onwrite(new b("write")):n?e._writev(s,t.onwrite):e._write(s,a,t.onwrite),t.sync=!1}function S(e,t,n,r){n||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,r(),I(e,t)}function T(e,t){t.bufferProcessing=!0;var n=t.bufferedRequest;if(e._writev&&n&&n.next){var s=t.bufferedRequestCount,a=new Array(s),i=t.corkedRequestsFree;i.entry=n;for(var o=0,l=!0;n;)a[o]=n,n.isBuf||(l=!1),n=n.next,o+=1;a.allBuffers=l,C(e,t,!0,t.length,a,"",i.finish),t.pendingcb++,t.lastBufferedRequest=null,i.next?(t.corkedRequestsFree=i.next,i.next=null):t.corkedRequestsFree=new r(t),t.bufferedRequestCount=0}else{for(;n;){var c=n.chunk,u=n.encoding,f=n.callback;if(C(e,t,!1,t.objectMode?1:c.length,c,u,f),n=n.next,t.bufferedRequestCount--,t.writing)break}null===n&&(t.lastBufferedRequest=null)}t.bufferedRequest=n,t.bufferProcessing=!1}function P(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function R(e,t){e._final((function(n){t.pendingcb--,n&&v(e,n),t.prefinished=!0,e.emit("prefinish"),I(e,t)}))}function I(e,t){var n=P(t);if(n&&(function(e,t){t.prefinished||t.finalCalled||("function"!=typeof e._final||t.destroyed?(t.prefinished=!0,e.emit("prefinish")):(t.pendingcb++,t.finalCalled=!0,process.nextTick(R,e,t)))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"),t.autoDestroy))){var r=e._readableState;(!r||r.autoDestroy&&r.endEmitted)&&e.destroy()}return n}n(87)(L,o),A.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(A.prototype,"buffer",{get:i.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(a=Function.prototype[Symbol.hasInstance],Object.defineProperty(L,Symbol.hasInstance,{value:function(e){return!!a.call(this,e)||this===L&&e&&e._writableState instanceof A}})):a=function(e){return e instanceof this},L.prototype.pipe=function(){v(this,new g)},L.prototype.write=function(e,t,n){var r,s=this._writableState,a=!1,i=!s.objectMode&&(r=e,l.isBuffer(r)||r instanceof c);return i&&!l.isBuffer(e)&&(e=function(e){return l.from(e)}(e)),"function"==typeof t&&(n=t,t=null),i?t="buffer":t||(t=s.defaultEncoding),"function"!=typeof n&&(n=E),s.ending?function(e,t){var n=new y;v(e,n),process.nextTick(t,n)}(this,n):(i||function(e,t,n,r){var s;return null===n?s=new m:"string"==typeof n||t.objectMode||(s=new _("chunk",["string","Buffer"],n)),!s||(v(e,s),process.nextTick(r,s),!1)}(this,s,e,n))&&(s.pendingcb++,a=function(e,t,n,r,s,a){if(!n){var i=function(e,t,n){return e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=l.from(t,n)),t}(t,r,s);r!==i&&(n=!0,s="buffer",r=i)}var o=t.objectMode?1:r.length;t.length+=o;var c=t.length<t.highWaterMark;if(c||(t.needDrain=!0),t.writing||t.corked){var u=t.lastBufferedRequest;t.lastBufferedRequest={chunk:r,encoding:s,isBuf:n,callback:a,next:null},u?u.next=t.lastBufferedRequest:t.bufferedRequest=t.lastBufferedRequest,t.bufferedRequestCount+=1}else C(e,t,!1,o,r,s,a);return c}(this,s,i,e,t,n)),a},L.prototype.cork=function(){this._writableState.corked++},L.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,e.writing||e.corked||e.bufferProcessing||!e.bufferedRequest||T(this,e))},L.prototype.setDefaultEncoding=function(e){if("string"==typeof e&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new w(e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(L.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(L.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),L.prototype._write=function(e,t,n){n(new h("_write()"))},L.prototype._writev=null,L.prototype.end=function(e,t,n){var r=this._writableState;return"function"==typeof e?(n=e,e=null,t=null):"function"==typeof t&&(n=t,t=null),null!=e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||function(e,t,n){t.ending=!0,I(e,t),n&&(t.finished?process.nextTick(n):e.once("finish",n)),t.ended=!0,e.writable=!1}(this,r,n),this},Object.defineProperty(L.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(L.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),L.prototype.destroy=u.destroy,L.prototype._undestroy=u.undestroy,L.prototype._destroy=function(e,t){t(e)}},4157:(e,t,n)=>{var r;function s(e,t,n){return(t=function(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var a=n(5027),i=Symbol("lastResolve"),o=Symbol("lastReject"),l=Symbol("error"),c=Symbol("ended"),u=Symbol("lastPromise"),f=Symbol("handlePromise"),d=Symbol("stream");function _(e,t){return{value:e,done:t}}function h(e){var t=e[i];if(null!==t){var n=e[d].read();null!==n&&(e[u]=null,e[i]=null,e[o]=null,t(_(n,!1)))}}function p(e){process.nextTick(h,e)}var g=Object.getPrototypeOf((function(){})),b=Object.setPrototypeOf((s(r={get stream(){return this[d]},next:function(){var e=this,t=this[l];if(null!==t)return Promise.reject(t);if(this[c])return Promise.resolve(_(void 0,!0));if(this[d].destroyed)return new Promise((function(t,n){process.nextTick((function(){e[l]?n(e[l]):t(_(void 0,!0))}))}));var n,r=this[u];if(r)n=new Promise(function(e,t){return function(n,r){e.then((function(){t[c]?n(_(void 0,!0)):t[f](n,r)}),r)}}(r,this));else{var s=this[d].read();if(null!==s)return Promise.resolve(_(s,!1));n=new Promise(this[f])}return this[u]=n,n}},Symbol.asyncIterator,(function(){return this})),s(r,"return",(function(){var e=this;return new Promise((function(t,n){e[d].destroy(null,(function(e){e?n(e):t(_(void 0,!0))}))}))})),r),g);e.exports=function(e){var t,n=Object.create(b,(s(t={},d,{value:e,writable:!0}),s(t,i,{value:null,writable:!0}),s(t,o,{value:null,writable:!0}),s(t,l,{value:null,writable:!0}),s(t,c,{value:e._readableState.endEmitted,writable:!0}),s(t,f,{value:function(e,t){var r=n[d].read();r?(n[u]=null,n[i]=null,n[o]=null,e(_(r,!1))):(n[i]=e,n[o]=t)},writable:!0}),t));return n[u]=null,a(e,(function(e){if(e&&"ERR_STREAM_PREMATURE_CLOSE"!==e.code){var t=n[o];return null!==t&&(n[u]=null,n[i]=null,n[o]=null,t(e)),void(n[l]=e)}var r=n[i];null!==r&&(n[u]=null,n[i]=null,n[o]=null,r(_(void 0,!0))),n[c]=!0})),e.on("readable",p.bind(null,n)),n}},7712:(e,t,n)=>{function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function a(e,t,n){return(t=o(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,o(r.key),r)}}function o(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:String(t)}var l=n(816).Buffer,c=n(471).inspect,u=c&&c.custom||"inspect";e.exports=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.head=null,this.tail=null,this.length=0}var t,n;return t=e,(n=[{key:"push",value:function(e){var t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length}},{key:"unshift",value:function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length}},{key:"shift",value:function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(e){if(0===this.length)return"";for(var t=this.head,n=""+t.data;t=t.next;)n+=e+t.data;return n}},{key:"concat",value:function(e){if(0===this.length)return l.alloc(0);for(var t,n,r,s=l.allocUnsafe(e>>>0),a=this.head,i=0;a;)t=a.data,n=s,r=i,l.prototype.copy.call(t,n,r),i+=a.data.length,a=a.next;return s}},{key:"consume",value:function(e,t){var n;return e<this.head.data.length?(n=this.head.data.slice(0,e),this.head.data=this.head.data.slice(e)):n=e===this.head.data.length?this.shift():t?this._getString(e):this._getBuffer(e),n}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(e){var t=this.head,n=1,r=t.data;for(e-=r.length;t=t.next;){var s=t.data,a=e>s.length?s.length:e;if(a===s.length?r+=s:r+=s.slice(0,e),0==(e-=a)){a===s.length?(++n,t.next?this.head=t.next:this.head=this.tail=null):(this.head=t,t.data=s.slice(a));break}++n}return this.length-=n,r}},{key:"_getBuffer",value:function(e){var t=l.allocUnsafe(e),n=this.head,r=1;for(n.data.copy(t),e-=n.data.length;n=n.next;){var s=n.data,a=e>s.length?s.length:e;if(s.copy(t,t.length-e,0,a),0==(e-=a)){a===s.length?(++r,n.next?this.head=n.next:this.head=this.tail=null):(this.head=n,n.data=s.slice(a));break}++r}return this.length-=r,t}},{key:u,value:function(e,t){return c(this,s(s({},t),{},{depth:0,customInspect:!1}))}}])&&i(t.prototype,n),Object.defineProperty(t,"prototype",{writable:!1}),e}()},7640:e=>{function t(e,t){r(e,t),n(e)}function n(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function r(e,t){e.emit("error",t)}e.exports={destroy:function(e,s){var a=this,i=this._readableState&&this._readableState.destroyed,o=this._writableState&&this._writableState.destroyed;return i||o?(s?s(e):e&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(r,this,e)):process.nextTick(r,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,(function(e){!s&&e?a._writableState?a._writableState.errorEmitted?process.nextTick(n,a):(a._writableState.errorEmitted=!0,process.nextTick(t,a,e)):process.nextTick(t,a,e):s?(process.nextTick(n,a),s(e)):process.nextTick(n,a)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)},errorOrDestroy:function(e,t){var n=e._readableState,r=e._writableState;n&&n.autoDestroy||r&&r.autoDestroy?e.destroy(t):e.emit("error",t)}}},5027:(e,t,n)=>{var r=n(6938).q.ERR_STREAM_PREMATURE_CLOSE;function s(){}e.exports=function e(t,n,a){if("function"==typeof n)return e(t,null,n);n||(n={}),a=function(e){var t=!1;return function(){if(!t){t=!0;for(var n=arguments.length,r=new Array(n),s=0;s<n;s++)r[s]=arguments[s];e.apply(this,r)}}}(a||s);var i=n.readable||!1!==n.readable&&t.readable,o=n.writable||!1!==n.writable&&t.writable,l=function(){t.writable||u()},c=t._writableState&&t._writableState.finished,u=function(){o=!1,c=!0,i||a.call(t)},f=t._readableState&&t._readableState.endEmitted,d=function(){i=!1,f=!0,o||a.call(t)},_=function(e){a.call(t,e)},h=function(){var e;return i&&!f?(t._readableState&&t._readableState.ended||(e=new r),a.call(t,e)):o&&!c?(t._writableState&&t._writableState.ended||(e=new r),a.call(t,e)):void 0},p=function(){t.req.on("finish",u)};return function(e){return e.setHeader&&"function"==typeof e.abort}(t)?(t.on("complete",u),t.on("abort",h),t.req?p():t.on("request",p)):o&&!t._writableState&&(t.on("end",l),t.on("close",l)),t.on("end",d),t.on("finish",u),!1!==n.error&&t.on("error",_),t.on("close",h),function(){t.removeListener("complete",u),t.removeListener("abort",h),t.removeListener("request",p),t.req&&t.req.removeListener("finish",u),t.removeListener("end",l),t.removeListener("close",l),t.removeListener("finish",u),t.removeListener("end",d),t.removeListener("error",_),t.removeListener("close",h)}}},5800:e=>{e.exports=function(){throw new Error("Readable.from is not available in the browser")}},410:(e,t,n)=>{var r,s=n(6938).q,a=s.ERR_MISSING_ARGS,i=s.ERR_STREAM_DESTROYED;function o(e){if(e)throw e}function l(e){e()}function c(e,t){return e.pipe(t)}e.exports=function(){for(var e=arguments.length,t=new Array(e),s=0;s<e;s++)t[s]=arguments[s];var u,f=function(e){return e.length?"function"!=typeof e[e.length-1]?o:e.pop():o}(t);if(Array.isArray(t[0])&&(t=t[0]),t.length<2)throw new a("streams");var d=t.map((function(e,s){var a=s<t.length-1;return function(e,t,s,a){a=function(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}(a);var o=!1;e.on("close",(function(){o=!0})),void 0===r&&(r=n(5027)),r(e,{readable:t,writable:s},(function(e){if(e)return a(e);o=!0,a()}));var l=!1;return function(t){if(!o&&!l)return l=!0,function(e){return e.setHeader&&"function"==typeof e.abort}(e)?e.abort():"function"==typeof e.destroy?e.destroy():void a(t||new i("pipe"))}}(e,a,s>0,(function(e){u||(u=e),e&&d.forEach(l),a||(d.forEach(l),f(u))}))}));return t.reduce(c)}},5985:(e,t,n)=>{var r=n(6938).q.ERR_INVALID_OPT_VALUE;e.exports={getHighWaterMark:function(e,t,n,s){var a=function(e,t,n){return null!=e.highWaterMark?e.highWaterMark:t?e[n]:null}(t,s,n);if(null!=a){if(!isFinite(a)||Math.floor(a)!==a||a<0)throw new r(s?n:"highWaterMark",a);return Math.floor(a)}return e.objectMode?16:16384}}},6052:(e,t,n)=>{e.exports=n(343).EventEmitter},8310:(e,t,n)=>{(t=e.exports=n(5327)).Stream=t,t.Readable=t,t.Writable=n(4567),t.Duplex=n(4439),t.Transform=n(2175),t.PassThrough=n(3754),t.finished=n(5027),t.pipeline=n(410)},7172:(e,t,n)=>{var r=n(816),s=r.Buffer;function a(e,t){for(var n in e)t[n]=e[n]}function i(e,t,n){return s(e,t,n)}s.from&&s.alloc&&s.allocUnsafe&&s.allocUnsafeSlow?e.exports=r:(a(r,t),t.Buffer=i),i.prototype=Object.create(s.prototype),a(s,i),i.from=function(e,t,n){if("number"==typeof e)throw new TypeError("Argument must not be a number");return s(e,t,n)},i.alloc=function(e,t,n){if("number"!=typeof e)throw new TypeError("Argument must be a number");var r=s(e);return void 0!==t?"string"==typeof n?r.fill(t,n):r.fill(t):r.fill(0),r},i.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return s(e)},i.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return r.SlowBuffer(e)}},3573:(e,t,n)=>{t.C4=void 0;var r,s=n(816),a=(r=n(350))&&r.__esModule?r:{default:r},i=function(e){var t=e.allowedSizes,n=e.defaultSize,r=e.padding;return function e(){var i=this,o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:n;if(!this||this.constructor!==e)return new e(o);if(t&&!t.includes(o))throw new Error("Unsupported hash length");var l=new a.default({capacity:o});return this.update=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"utf8";if(s.Buffer.isBuffer(e))return l.absorb(e),i;if("string"==typeof e)return i.update(s.Buffer.from(e,t));throw new TypeError("Not a string or buffer")},this.digest=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"binary",t="string"==typeof e?{format:e}:e,n=l.squeeze({buffer:t.buffer,padding:t.padding||r});return t.format&&"binary"!==t.format?n.toString(t.format):n},this.reset=function(){return l.reset(),i},this}},o=i({allowedSizes:[224,256,384,512],defaultSize:512,padding:1});t.C4=o;var l=i({allowedSizes:[224,256,384,512],defaultSize:512,padding:6});i({allowedSizes:[128,256],defaultSize:256,padding:31});var c=o;l.SHA3Hash=c},350:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,s=n(816),a=(r=n(5037))&&r.__esModule?r:{default:r},i=function(e,t){for(var n=0;n<e.length;n+=8){var r=n/4;t[r]^=e[n+7]<<24|e[n+6]<<16|e[n+5]<<8|e[n+4],t[r+1]^=e[n+3]<<24|e[n+2]<<16|e[n+1]<<8|e[n]}return t},o=function(e,t){for(var n=0;n<t.length;n+=8){var r=n/4;t[n]=e[r+1],t[n+1]=e[r+1]>>>8,t[n+2]=e[r+1]>>>16,t[n+3]=e[r+1]>>>24,t[n+4]=e[r],t[n+5]=e[r]>>>8,t[n+6]=e[r]>>>16,t[n+7]=e[r]>>>24}return t};t.default=function(e){var t=this,n=e.capacity,r=e.padding,l=(0,a.default)(),c=n/8,u=200-n/4,f=0,d=new Uint32Array(50),_=s.Buffer.allocUnsafe(u);return this.absorb=function(e){for(var n=0;n<e.length;n++)_[f]=e[n],(f+=1)>=u&&(i(_,d),l(d),f=0);return t},this.squeeze=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t={buffer:e.buffer||s.Buffer.allocUnsafe(c),padding:e.padding||r,queue:s.Buffer.allocUnsafe(_.length),state:new Uint32Array(d.length)};_.copy(t.queue);for(var n=0;n<d.length;n++)t.state[n]=d[n];t.queue.fill(0,f),t.queue[f]|=t.padding,t.queue[u-1]|=128,i(t.queue,t.state);for(var a=0;a<t.buffer.length;a+=u)l(t.state),o(t.state,t.buffer.slice(a,a+u));return t.buffer},this.reset=function(){return _.fill(0),d.fill(0),f=0,t},this}},9940:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,s=(r=n(2196))&&r.__esModule?r:{default:r};t.default=function(e){for(var t=e.A,n=e.C,r=0;r<25;r+=5){for(var a=0;a<5;a++)(0,s.default)(t,r+a)(n,a);for(var i=0;i<5;i++){var o=2*(r+i),l=(i+1)%5*2,c=(i+2)%5*2;t[o]^=~n[l]&n[c],t[o+1]^=~n[l+1]&n[c+1]}}}},2196:e=>{e.exports=function(e,t){return function(n,r){var s=2*r,a=2*t;n[s]=e[a],n[s+1]=e[a+1]}}},5037:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=o(n(9940)),s=o(n(1909)),a=o(n(6021)),i=o(n(4421));function o(e){return e&&e.__esModule?e:{default:e}}t.default=function(){var e=new Uint32Array(10),t=new Uint32Array(10),n=new Uint32Array(2);return function(o){for(var l=0;l<24;l++)(0,i.default)({A:o,C:e,D:t,W:n}),(0,a.default)({A:o,C:e,W:n}),(0,r.default)({A:o,C:e}),(0,s.default)({A:o,roundIndex:l});e.fill(0),t.fill(0),n.fill(0)}}},1909:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,s=(r=n(3408))&&r.__esModule?r:{default:r};t.default=function(e){var t=e.A,n=2*e.roundIndex;t[0]^=s.default[n],t[1]^=s.default[n+1]}},3408:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=new Uint32Array([0,1,0,32898,2147483648,32906,2147483648,2147516416,0,32907,0,2147483649,2147483648,2147516545,2147483648,32777,0,138,0,136,0,2147516425,0,2147483658,0,2147516555,2147483648,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,0,32778,2147483648,2147483658,2147483648,2147516545,2147483648,32896,0,2147483649,2147483648,2147516424]);t.default=n},6021:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=i(n(2773)),s=i(n(4728)),a=i(n(2196));function i(e){return e&&e.__esModule?e:{default:e}}t.default=function(e){var t=e.A,n=e.C,i=e.W;(0,a.default)(t,1)(i,0);for(var o=0,l=0,c=0,u=32,f=0;f<24;f++){var d=r.default[f],_=s.default[f];(0,a.default)(t,d)(n,0),o=i[0],l=i[1],u=32-_,i[c=_<32?0:1]=o<<_|l>>>u,i[(c+1)%2]=l<<_|o>>>u,(0,a.default)(i,0)(t,d),(0,a.default)(n,0)(i,0)}}},2773:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default=[10,7,11,17,18,3,5,16,8,21,24,4,15,23,19,13,12,2,20,14,22,9,6,1]},4728:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default=[1,3,6,10,15,21,28,36,45,55,2,14,27,41,56,8,25,43,62,18,39,61,20,44]},4421:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,s=(r=n(2196))&&r.__esModule?r:{default:r};t.default=function(e){for(var t=e.A,n=e.C,r=e.D,a=e.W,i=0,o=0,l=0;l<5;l++){var c=2*l,u=2*(l+5),f=2*(l+10),d=2*(l+15),_=2*(l+20);n[c]=t[c]^t[u]^t[f]^t[d]^t[_],n[c+1]=t[c+1]^t[u+1]^t[f+1]^t[d+1]^t[_+1]}for(var h=0;h<5;h++){(0,s.default)(n,(h+1)%5)(a,0),i=a[0],o=a[1],a[0]=i<<1|o>>>31,a[1]=o<<1|i>>>31,r[2*h]=n[(h+4)%5*2]^a[0],r[2*h+1]=n[(h+4)%5*2+1]^a[1];for(var p=0;p<25;p+=5)t[2*(p+h)]^=r[2*h],t[2*(p+h)+1]^=r[2*h+1]}}},3424:(e,t,n)=>{e.exports=s;var r=n(343).EventEmitter;function s(){r.call(this)}n(87)(s,r),s.Readable=n(5327),s.Writable=n(4567),s.Duplex=n(4439),s.Transform=n(2175),s.PassThrough=n(3754),s.finished=n(5027),s.pipeline=n(410),s.Stream=s,s.prototype.pipe=function(e,t){var n=this;function s(t){e.writable&&!1===e.write(t)&&n.pause&&n.pause()}function a(){n.readable&&n.resume&&n.resume()}n.on("data",s),e.on("drain",a),e._isStdio||t&&!1===t.end||(n.on("end",o),n.on("close",l));var i=!1;function o(){i||(i=!0,e.end())}function l(){i||(i=!0,"function"==typeof e.destroy&&e.destroy())}function c(e){if(u(),0===r.listenerCount(this,"error"))throw e}function u(){n.removeListener("data",s),e.removeListener("drain",a),n.removeListener("end",o),n.removeListener("close",l),n.removeListener("error",c),e.removeListener("error",c),n.removeListener("end",u),n.removeListener("close",u),e.removeListener("close",u)}return n.on("error",c),e.on("error",c),n.on("end",u),n.on("close",u),e.on("close",u),e.emit("pipe",n),e}},4361:(e,t,n)=>{var r=n(7172).Buffer,s=r.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function a(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(r.isEncoding===s||!s(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=l,this.end=c,t=4;break;case"utf8":this.fillLast=o,t=4;break;case"base64":this.text=u,this.end=f,t=3;break;default:return this.write=d,void(this.end=_)}this.lastNeed=0,this.lastTotal=0,this.lastChar=r.allocUnsafe(t)}function i(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function o(e){var t=this.lastTotal-this.lastNeed,n=function(e,t,n){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==n?n:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function l(e,t){if((e.length-t)%2==0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function c(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function u(e,t){var n=(e.length-t)%3;return 0===n?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function f(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function d(e){return e.toString(this.encoding)}function _(e){return e&&e.length?this.write(e):""}t.s=a,a.prototype.write=function(e){if(0===e.length)return"";var t,n;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n<e.length?t?t+this.text(e,n):this.text(e,n):t||""},a.prototype.end=function(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"�":t},a.prototype.text=function(e,t){var n=function(e,t,n){var r=t.length-1;if(r<n)return 0;var s=i(t[r]);return s>=0?(s>0&&(e.lastNeed=s-1),s):--r<n||-2===s?0:(s=i(t[r]))>=0?(s>0&&(e.lastNeed=s-2),s):--r<n||-2===s?0:(s=i(t[r]))>=0?(s>0&&(2===s?s=0:e.lastNeed=s-3),s):0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)},a.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},3118:(e,t)=>{t.VB=function(){return!1}},7451:(e,t,n)=>{function r(e){try{if(!n.g.localStorage)return!1}catch(e){return!1}var t=n.g.localStorage[e];return null!=t&&"true"===String(t).toLowerCase()}e.exports=function(e,t){if(r("noDeprecation"))return e;var n=!1;return function(){if(!n){if(r("throwDeprecation"))throw new Error(t);r("traceDeprecation")?console.trace(t):console.warn(t),n=!0}return e.apply(this,arguments)}}},233:()=>{},6534:()=>{},1856:()=>{},6014:()=>{},717:()=>{},6963:()=>{},9190:()=>{},3240:()=>{},6721:()=>{},394:()=>{},471:()=>{},1632:()=>{},8517:()=>{},4636:e=>{e.exports=JSON.parse('{"aes-128-ecb":{"cipher":"AES","key":128,"iv":0,"mode":"ECB","type":"block"},"aes-192-ecb":{"cipher":"AES","key":192,"iv":0,"mode":"ECB","type":"block"},"aes-256-ecb":{"cipher":"AES","key":256,"iv":0,"mode":"ECB","type":"block"},"aes-128-cbc":{"cipher":"AES","key":128,"iv":16,"mode":"CBC","type":"block"},"aes-192-cbc":{"cipher":"AES","key":192,"iv":16,"mode":"CBC","type":"block"},"aes-256-cbc":{"cipher":"AES","key":256,"iv":16,"mode":"CBC","type":"block"},"aes128":{"cipher":"AES","key":128,"iv":16,"mode":"CBC","type":"block"},"aes192":{"cipher":"AES","key":192,"iv":16,"mode":"CBC","type":"block"},"aes256":{"cipher":"AES","key":256,"iv":16,"mode":"CBC","type":"block"},"aes-128-cfb":{"cipher":"AES","key":128,"iv":16,"mode":"CFB","type":"stream"},"aes-192-cfb":{"cipher":"AES","key":192,"iv":16,"mode":"CFB","type":"stream"},"aes-256-cfb":{"cipher":"AES","key":256,"iv":16,"mode":"CFB","type":"stream"},"aes-128-cfb8":{"cipher":"AES","key":128,"iv":16,"mode":"CFB8","type":"stream"},"aes-192-cfb8":{"cipher":"AES","key":192,"iv":16,"mode":"CFB8","type":"stream"},"aes-256-cfb8":{"cipher":"AES","key":256,"iv":16,"mode":"CFB8","type":"stream"},"aes-128-cfb1":{"cipher":"AES","key":128,"iv":16,"mode":"CFB1","type":"stream"},"aes-192-cfb1":{"cipher":"AES","key":192,"iv":16,"mode":"CFB1","type":"stream"},"aes-256-cfb1":{"cipher":"AES","key":256,"iv":16,"mode":"CFB1","type":"stream"},"aes-128-ofb":{"cipher":"AES","key":128,"iv":16,"mode":"OFB","type":"stream"},"aes-192-ofb":{"cipher":"AES","key":192,"iv":16,"mode":"OFB","type":"stream"},"aes-256-ofb":{"cipher":"AES","key":256,"iv":16,"mode":"OFB","type":"stream"},"aes-128-ctr":{"cipher":"AES","key":128,"iv":16,"mode":"CTR","type":"stream"},"aes-192-ctr":{"cipher":"AES","key":192,"iv":16,"mode":"CTR","type":"stream"},"aes-256-ctr":{"cipher":"AES","key":256,"iv":16,"mode":"CTR","type":"stream"},"aes-128-gcm":{"cipher":"AES","key":128,"iv":12,"mode":"GCM","type":"auth"},"aes-192-gcm":{"cipher":"AES","key":192,"iv":12,"mode":"GCM","type":"auth"},"aes-256-gcm":{"cipher":"AES","key":256,"iv":12,"mode":"GCM","type":"auth"}}')}},t={};function n(r){var s=t[r];if(void 0!==s)return s.exports;var a=t[r]={id:r,loaded:!1,exports:{}};return e[r](a,a.exports,n),a.loaded=!0,a.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.nmd=e=>(e.paths=[],e.children||(e.children=[]),e);var r={};(()=>{function e(e){let t=e.length;for(;--t>=0;)e[t]=0}n.d(r,{mR:()=>Ii,bG:()=>si,xz:()=>Er,EB:()=>bi,cC:()=>ni,C3:()=>Wa,QT:()=>pi,ug:()=>$s,CH:()=>Ga,xq:()=>Za,vp:()=>ca,xr:()=>la,Ag:()=>Xa,W_:()=>Ia,g2:()=>ja,Y8:()=>Ya,gB:()=>ki,vX:()=>Fi,Bi:()=>ri,jF:()=>Lr,Wi:()=>gi,Fr:()=>Rn,E7:()=>Yi,ah:()=>Gi,N0:()=>Qi,rL:()=>Wi,$h:()=>wa,pP:()=>Ba,E9:()=>Dn,_q:()=>ta,lW:()=>Bi,a5:()=>za,GR:()=>ai,x6:()=>Di,of:()=>ti,E$:()=>xi,Tx:()=>Ra,qd:()=>Fa,f1:()=>Sa,EY:()=>ka,bH:()=>Na,qx:()=>Va,ig:()=>ii,_$:()=>Pi,g$:()=>ds,sn:()=>Vi,es:()=>ua,ir:()=>li,G0:()=>oi,o2:()=>Mi,nW:()=>ci,qe:()=>Xi,IQ:()=>Ui,JA:()=>zi,FV:()=>Hi,iL:()=>ji,dH:()=>ui,Jz:()=>Si,_v:()=>na,qW:()=>Ji});const t=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),s=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),a=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),i=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),o=new Array(576);e(o);const l=new Array(60);e(l);const c=new Array(512);e(c);const u=new Array(256);e(u);const f=new Array(29);e(f);const d=new Array(30);function _(e,t,n,r,s){this.static_tree=e,this.extra_bits=t,this.extra_base=n,this.elems=r,this.max_length=s,this.has_stree=e&&e.length}let h,p,g;function b(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}e(d);const m=e=>e<256?c[e]:c[256+(e>>>7)],y=(e,t)=>{e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255},w=(e,t,n)=>{e.bi_valid>16-n?(e.bi_buf|=t<<e.bi_valid&65535,y(e,e.bi_buf),e.bi_buf=t>>16-e.bi_valid,e.bi_valid+=n-16):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)},v=(e,t,n)=>{w(e,n[2*t],n[2*t+1])},E=(e,t)=>{let n=0;do{n|=1&e,e>>>=1,n<<=1}while(--t>0);return n>>>1},A=(e,t,n)=>{const r=new Array(16);let s,a,i=0;for(s=1;s<=15;s++)i=i+n[s-1]<<1,r[s]=i;for(a=0;a<=t;a++){let t=e[2*a+1];0!==t&&(e[2*a]=E(r[t]++,t))}},L=e=>{let t;for(t=0;t<286;t++)e.dyn_ltree[2*t]=0;for(t=0;t<30;t++)e.dyn_dtree[2*t]=0;for(t=0;t<19;t++)e.bl_tree[2*t]=0;e.dyn_ltree[512]=1,e.opt_len=e.static_len=0,e.sym_next=e.matches=0},C=e=>{e.bi_valid>8?y(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},S=(e,t,n,r)=>{const s=2*t,a=2*n;return e[s]<e[a]||e[s]===e[a]&&r[t]<=r[n]},T=(e,t,n)=>{const r=e.heap[n];let s=n<<1;for(;s<=e.heap_len&&(s<e.heap_len&&S(t,e.heap[s+1],e.heap[s],e.depth)&&s++,!S(t,r,e.heap[s],e.depth));)e.heap[n]=e.heap[s],n=s,s<<=1;e.heap[n]=r},P=(e,n,r)=>{let a,i,o,l,c=0;if(0!==e.sym_next)do{a=255&e.pending_buf[e.sym_buf+c++],a+=(255&e.pending_buf[e.sym_buf+c++])<<8,i=e.pending_buf[e.sym_buf+c++],0===a?v(e,i,n):(o=u[i],v(e,o+256+1,n),l=t[o],0!==l&&(i-=f[o],w(e,i,l)),a--,o=m(a),v(e,o,r),l=s[o],0!==l&&(a-=d[o],w(e,a,l)))}while(c<e.sym_next);v(e,256,n)},R=(e,t)=>{const n=t.dyn_tree,r=t.stat_desc.static_tree,s=t.stat_desc.has_stree,a=t.stat_desc.elems;let i,o,l,c=-1;for(e.heap_len=0,e.heap_max=573,i=0;i<a;i++)0!==n[2*i]?(e.heap[++e.heap_len]=c=i,e.depth[i]=0):n[2*i+1]=0;for(;e.heap_len<2;)l=e.heap[++e.heap_len]=c<2?++c:0,n[2*l]=1,e.depth[l]=0,e.opt_len--,s&&(e.static_len-=r[2*l+1]);for(t.max_code=c,i=e.heap_len>>1;i>=1;i--)T(e,n,i);l=a;do{i=e.heap[1],e.heap[1]=e.heap[e.heap_len--],T(e,n,1),o=e.heap[1],e.heap[--e.heap_max]=i,e.heap[--e.heap_max]=o,n[2*l]=n[2*i]+n[2*o],e.depth[l]=(e.depth[i]>=e.depth[o]?e.depth[i]:e.depth[o])+1,n[2*i+1]=n[2*o+1]=l,e.heap[1]=l++,T(e,n,1)}while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],((e,t)=>{const n=t.dyn_tree,r=t.max_code,s=t.stat_desc.static_tree,a=t.stat_desc.has_stree,i=t.stat_desc.extra_bits,o=t.stat_desc.extra_base,l=t.stat_desc.max_length;let c,u,f,d,_,h,p=0;for(d=0;d<=15;d++)e.bl_count[d]=0;for(n[2*e.heap[e.heap_max]+1]=0,c=e.heap_max+1;c<573;c++)u=e.heap[c],d=n[2*n[2*u+1]+1]+1,d>l&&(d=l,p++),n[2*u+1]=d,u>r||(e.bl_count[d]++,_=0,u>=o&&(_=i[u-o]),h=n[2*u],e.opt_len+=h*(d+_),a&&(e.static_len+=h*(s[2*u+1]+_)));if(0!==p){do{for(d=l-1;0===e.bl_count[d];)d--;e.bl_count[d]--,e.bl_count[d+1]+=2,e.bl_count[l]--,p-=2}while(p>0);for(d=l;0!==d;d--)for(u=e.bl_count[d];0!==u;)f=e.heap[--c],f>r||(n[2*f+1]!==d&&(e.opt_len+=(d-n[2*f+1])*n[2*f],n[2*f+1]=d),u--)}})(e,t),A(n,c,e.bl_count)},I=(e,t,n)=>{let r,s,a=-1,i=t[1],o=0,l=7,c=4;for(0===i&&(l=138,c=3),t[2*(n+1)+1]=65535,r=0;r<=n;r++)s=i,i=t[2*(r+1)+1],++o<l&&s===i||(o<c?e.bl_tree[2*s]+=o:0!==s?(s!==a&&e.bl_tree[2*s]++,e.bl_tree[32]++):o<=10?e.bl_tree[34]++:e.bl_tree[36]++,o=0,a=s,0===i?(l=138,c=3):s===i?(l=6,c=3):(l=7,c=4))},N=(e,t,n)=>{let r,s,a=-1,i=t[1],o=0,l=7,c=4;for(0===i&&(l=138,c=3),r=0;r<=n;r++)if(s=i,i=t[2*(r+1)+1],!(++o<l&&s===i)){if(o<c)do{v(e,s,e.bl_tree)}while(0!=--o);else 0!==s?(s!==a&&(v(e,s,e.bl_tree),o--),v(e,16,e.bl_tree),w(e,o-3,2)):o<=10?(v(e,17,e.bl_tree),w(e,o-3,3)):(v(e,18,e.bl_tree),w(e,o-11,7));o=0,a=s,0===i?(l=138,c=3):s===i?(l=6,c=3):(l=7,c=4)}};let x=!1;const k=(e,t,n,r)=>{w(e,0+(r?1:0),3),C(e),y(e,n),y(e,~n),n&&e.pending_buf.set(e.window.subarray(t,t+n),e.pending),e.pending+=n};var O={_tr_init:e=>{x||((()=>{let e,n,r,i,b;const m=new Array(16);for(r=0,i=0;i<28;i++)for(f[i]=r,e=0;e<1<<t[i];e++)u[r++]=i;for(u[r-1]=i,b=0,i=0;i<16;i++)for(d[i]=b,e=0;e<1<<s[i];e++)c[b++]=i;for(b>>=7;i<30;i++)for(d[i]=b<<7,e=0;e<1<<s[i]-7;e++)c[256+b++]=i;for(n=0;n<=15;n++)m[n]=0;for(e=0;e<=143;)o[2*e+1]=8,e++,m[8]++;for(;e<=255;)o[2*e+1]=9,e++,m[9]++;for(;e<=279;)o[2*e+1]=7,e++,m[7]++;for(;e<=287;)o[2*e+1]=8,e++,m[8]++;for(A(o,287,m),e=0;e<30;e++)l[2*e+1]=5,l[2*e]=E(e,5);h=new _(o,t,257,286,15),p=new _(l,s,0,30,15),g=new _(new Array(0),a,0,19,7)})(),x=!0),e.l_desc=new b(e.dyn_ltree,h),e.d_desc=new b(e.dyn_dtree,p),e.bl_desc=new b(e.bl_tree,g),e.bi_buf=0,e.bi_valid=0,L(e)},_tr_stored_block:k,_tr_flush_block:(e,t,n,r)=>{let s,a,c=0;e.level>0?(2===e.strm.data_type&&(e.strm.data_type=(e=>{let t,n=4093624447;for(t=0;t<=31;t++,n>>>=1)if(1&n&&0!==e.dyn_ltree[2*t])return 0;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return 1;for(t=32;t<256;t++)if(0!==e.dyn_ltree[2*t])return 1;return 0})(e)),R(e,e.l_desc),R(e,e.d_desc),c=(e=>{let t;for(I(e,e.dyn_ltree,e.l_desc.max_code),I(e,e.dyn_dtree,e.d_desc.max_code),R(e,e.bl_desc),t=18;t>=3&&0===e.bl_tree[2*i[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t})(e),s=e.opt_len+3+7>>>3,a=e.static_len+3+7>>>3,a<=s&&(s=a)):s=a=n+5,n+4<=s&&-1!==t?k(e,t,n,r):4===e.strategy||a===s?(w(e,2+(r?1:0),3),P(e,o,l)):(w(e,4+(r?1:0),3),((e,t,n,r)=>{let s;for(w(e,t-257,5),w(e,n-1,5),w(e,r-4,4),s=0;s<r;s++)w(e,e.bl_tree[2*i[s]+1],3);N(e,e.dyn_ltree,t-1),N(e,e.dyn_dtree,n-1)})(e,e.l_desc.max_code+1,e.d_desc.max_code+1,c+1),P(e,e.dyn_ltree,e.dyn_dtree)),L(e),r&&C(e)},_tr_tally:(e,t,n)=>(e.pending_buf[e.sym_buf+e.sym_next++]=t,e.pending_buf[e.sym_buf+e.sym_next++]=t>>8,e.pending_buf[e.sym_buf+e.sym_next++]=n,0===t?e.dyn_ltree[2*n]++:(e.matches++,t--,e.dyn_ltree[2*(u[n]+256+1)]++,e.dyn_dtree[2*m(t)]++),e.sym_next===e.sym_end),_tr_align:e=>{w(e,2,3),v(e,256,o),(e=>{16===e.bi_valid?(y(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)})(e)}},B=(e,t,n,r)=>{let s=65535&e|0,a=e>>>16&65535|0,i=0;for(;0!==n;){i=n>2e3?2e3:n,n-=i;do{s=s+t[r++]|0,a=a+s|0}while(--i);s%=65521,a%=65521}return s|a<<16|0};const D=new Uint32Array((()=>{let e,t=[];for(var n=0;n<256;n++){e=n;for(var r=0;r<8;r++)e=1&e?3988292384^e>>>1:e>>>1;t[n]=e}return t})());var F=(e,t,n,r)=>{const s=D,a=r+n;e^=-1;for(let n=r;n<a;n++)e=e>>>8^s[255&(e^t[n])];return-1^e},M={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},U={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:z,_tr_stored_block:H,_tr_flush_block:j,_tr_tally:Z,_tr_align:G}=O,{Z_NO_FLUSH:W,Z_PARTIAL_FLUSH:Q,Z_FULL_FLUSH:Y,Z_FINISH:X,Z_BLOCK:V,Z_OK:J,Z_STREAM_END:K,Z_STREAM_ERROR:q,Z_DATA_ERROR:$,Z_BUF_ERROR:ee,Z_DEFAULT_COMPRESSION:te,Z_FILTERED:ne,Z_HUFFMAN_ONLY:re,Z_RLE:se,Z_FIXED:ae,Z_DEFAULT_STRATEGY:ie,Z_UNKNOWN:oe,Z_DEFLATED:le}=U,ce=258,ue=262,fe=42,de=113,_e=666,he=(e,t)=>(e.msg=M[t],t),pe=e=>2*e-(e>4?9:0),ge=e=>{let t=e.length;for(;--t>=0;)e[t]=0},be=e=>{let t,n,r,s=e.w_size;t=e.hash_size,r=t;do{n=e.head[--r],e.head[r]=n>=s?n-s:0}while(--t);t=s,r=t;do{n=e.prev[--r],e.prev[r]=n>=s?n-s:0}while(--t)};let me=(e,t,n)=>(t<<e.hash_shift^n)&e.hash_mask;const ye=e=>{const t=e.state;let n=t.pending;n>e.avail_out&&(n=e.avail_out),0!==n&&(e.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+n),e.next_out),e.next_out+=n,t.pending_out+=n,e.total_out+=n,e.avail_out-=n,t.pending-=n,0===t.pending&&(t.pending_out=0))},we=(e,t)=>{j(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,ye(e.strm)},ve=(e,t)=>{e.pending_buf[e.pending++]=t},Ee=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t},Ae=(e,t,n,r)=>{let s=e.avail_in;return s>r&&(s=r),0===s?0:(e.avail_in-=s,t.set(e.input.subarray(e.next_in,e.next_in+s),n),1===e.state.wrap?e.adler=B(e.adler,t,s,n):2===e.state.wrap&&(e.adler=F(e.adler,t,s,n)),e.next_in+=s,e.total_in+=s,s)},Le=(e,t)=>{let n,r,s=e.max_chain_length,a=e.strstart,i=e.prev_length,o=e.nice_match;const l=e.strstart>e.w_size-ue?e.strstart-(e.w_size-ue):0,c=e.window,u=e.w_mask,f=e.prev,d=e.strstart+ce;let _=c[a+i-1],h=c[a+i];e.prev_length>=e.good_match&&(s>>=2),o>e.lookahead&&(o=e.lookahead);do{if(n=t,c[n+i]===h&&c[n+i-1]===_&&c[n]===c[a]&&c[++n]===c[a+1]){a+=2,n++;do{}while(c[++a]===c[++n]&&c[++a]===c[++n]&&c[++a]===c[++n]&&c[++a]===c[++n]&&c[++a]===c[++n]&&c[++a]===c[++n]&&c[++a]===c[++n]&&c[++a]===c[++n]&&a<d);if(r=ce-(d-a),a=d-ce,r>i){if(e.match_start=t,i=r,r>=o)break;_=c[a+i-1],h=c[a+i]}}}while((t=f[t&u])>l&&0!=--s);return i<=e.lookahead?i:e.lookahead},Ce=e=>{const t=e.w_size;let n,r,s;do{if(r=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-ue)&&(e.window.set(e.window.subarray(t,t+t-r),0),e.match_start-=t,e.strstart-=t,e.block_start-=t,e.insert>e.strstart&&(e.insert=e.strstart),be(e),r+=t),0===e.strm.avail_in)break;if(n=Ae(e.strm,e.window,e.strstart+e.lookahead,r),e.lookahead+=n,e.lookahead+e.insert>=3)for(s=e.strstart-e.insert,e.ins_h=e.window[s],e.ins_h=me(e,e.ins_h,e.window[s+1]);e.insert&&(e.ins_h=me(e,e.ins_h,e.window[s+3-1]),e.prev[s&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=s,s++,e.insert--,!(e.lookahead+e.insert<3)););}while(e.lookahead<ue&&0!==e.strm.avail_in)},Se=(e,t)=>{let n,r,s,a=e.pending_buf_size-5>e.w_size?e.w_size:e.pending_buf_size-5,i=0,o=e.strm.avail_in;do{if(n=65535,s=e.bi_valid+42>>3,e.strm.avail_out<s)break;if(s=e.strm.avail_out-s,r=e.strstart-e.block_start,n>r+e.strm.avail_in&&(n=r+e.strm.avail_in),n>s&&(n=s),n<a&&(0===n&&t!==X||t===W||n!==r+e.strm.avail_in))break;i=t===X&&n===r+e.strm.avail_in?1:0,H(e,0,0,i),e.pending_buf[e.pending-4]=n,e.pending_buf[e.pending-3]=n>>8,e.pending_buf[e.pending-2]=~n,e.pending_buf[e.pending-1]=~n>>8,ye(e.strm),r&&(r>n&&(r=n),e.strm.output.set(e.window.subarray(e.block_start,e.block_start+r),e.strm.next_out),e.strm.next_out+=r,e.strm.avail_out-=r,e.strm.total_out+=r,e.block_start+=r,n-=r),n&&(Ae(e.strm,e.strm.output,e.strm.next_out,n),e.strm.next_out+=n,e.strm.avail_out-=n,e.strm.total_out+=n)}while(0===i);return o-=e.strm.avail_in,o&&(o>=e.w_size?(e.matches=2,e.window.set(e.strm.input.subarray(e.strm.next_in-e.w_size,e.strm.next_in),0),e.strstart=e.w_size,e.insert=e.strstart):(e.window_size-e.strstart<=o&&(e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,e.insert>e.strstart&&(e.insert=e.strstart)),e.window.set(e.strm.input.subarray(e.strm.next_in-o,e.strm.next_in),e.strstart),e.strstart+=o,e.insert+=o>e.w_size-e.insert?e.w_size-e.insert:o),e.block_start=e.strstart),e.high_water<e.strstart&&(e.high_water=e.strstart),i?4:t!==W&&t!==X&&0===e.strm.avail_in&&e.strstart===e.block_start?2:(s=e.window_size-e.strstart,e.strm.avail_in>s&&e.block_start>=e.w_size&&(e.block_start-=e.w_size,e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,s+=e.w_size,e.insert>e.strstart&&(e.insert=e.strstart)),s>e.strm.avail_in&&(s=e.strm.avail_in),s&&(Ae(e.strm,e.window,e.strstart,s),e.strstart+=s,e.insert+=s>e.w_size-e.insert?e.w_size-e.insert:s),e.high_water<e.strstart&&(e.high_water=e.strstart),s=e.bi_valid+42>>3,s=e.pending_buf_size-s>65535?65535:e.pending_buf_size-s,a=s>e.w_size?e.w_size:s,r=e.strstart-e.block_start,(r>=a||(r||t===X)&&t!==W&&0===e.strm.avail_in&&r<=s)&&(n=r>s?s:r,i=t===X&&0===e.strm.avail_in&&n===r?1:0,H(e,e.block_start,n,i),e.block_start+=n,ye(e.strm)),i?3:1)},Te=(e,t)=>{let n,r;for(;;){if(e.lookahead<ue){if(Ce(e),e.lookahead<ue&&t===W)return 1;if(0===e.lookahead)break}if(n=0,e.lookahead>=3&&(e.ins_h=me(e,e.ins_h,e.window[e.strstart+3-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==n&&e.strstart-n<=e.w_size-ue&&(e.match_length=Le(e,n)),e.match_length>=3)if(r=Z(e,e.strstart-e.match_start,e.match_length-3),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=3){e.match_length--;do{e.strstart++,e.ins_h=me(e,e.ins_h,e.window[e.strstart+3-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart}while(0!=--e.match_length);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=me(e,e.ins_h,e.window[e.strstart+1]);else r=Z(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(we(e,!1),0===e.strm.avail_out))return 1}return e.insert=e.strstart<2?e.strstart:2,t===X?(we(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(we(e,!1),0===e.strm.avail_out)?1:2},Pe=(e,t)=>{let n,r,s;for(;;){if(e.lookahead<ue){if(Ce(e),e.lookahead<ue&&t===W)return 1;if(0===e.lookahead)break}if(n=0,e.lookahead>=3&&(e.ins_h=me(e,e.ins_h,e.window[e.strstart+3-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=2,0!==n&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-ue&&(e.match_length=Le(e,n),e.match_length<=5&&(e.strategy===ne||3===e.match_length&&e.strstart-e.match_start>4096)&&(e.match_length=2)),e.prev_length>=3&&e.match_length<=e.prev_length){s=e.strstart+e.lookahead-3,r=Z(e,e.strstart-1-e.prev_match,e.prev_length-3),e.lookahead-=e.prev_length-1,e.prev_length-=2;do{++e.strstart<=s&&(e.ins_h=me(e,e.ins_h,e.window[e.strstart+3-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart)}while(0!=--e.prev_length);if(e.match_available=0,e.match_length=2,e.strstart++,r&&(we(e,!1),0===e.strm.avail_out))return 1}else if(e.match_available){if(r=Z(e,0,e.window[e.strstart-1]),r&&we(e,!1),e.strstart++,e.lookahead--,0===e.strm.avail_out)return 1}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(r=Z(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<2?e.strstart:2,t===X?(we(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(we(e,!1),0===e.strm.avail_out)?1:2};function Re(e,t,n,r,s){this.good_length=e,this.max_lazy=t,this.nice_length=n,this.max_chain=r,this.func=s}const Ie=[new Re(0,0,0,0,Se),new Re(4,4,8,4,Te),new Re(4,5,16,8,Te),new Re(4,6,32,32,Te),new Re(4,4,16,16,Pe),new Re(8,16,32,32,Pe),new Re(8,16,128,128,Pe),new Re(8,32,128,256,Pe),new Re(32,128,258,1024,Pe),new Re(32,258,258,4096,Pe)];function Ne(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=le,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),ge(this.dyn_ltree),ge(this.dyn_dtree),ge(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),ge(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),ge(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const xe=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.status!==fe&&57!==t.status&&69!==t.status&&73!==t.status&&91!==t.status&&103!==t.status&&t.status!==de&&t.status!==_e?1:0},ke=e=>{if(xe(e))return he(e,q);e.total_in=e.total_out=0,e.data_type=oe;const t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=2===t.wrap?57:t.wrap?fe:de,e.adler=2===t.wrap?0:1,t.last_flush=-2,z(t),J},Oe=e=>{const t=ke(e);var n;return t===J&&((n=e.state).window_size=2*n.w_size,ge(n.head),n.max_lazy_match=Ie[n.level].max_lazy,n.good_match=Ie[n.level].good_length,n.nice_match=Ie[n.level].nice_length,n.max_chain_length=Ie[n.level].max_chain,n.strstart=0,n.block_start=0,n.lookahead=0,n.insert=0,n.match_length=n.prev_length=2,n.match_available=0,n.ins_h=0),t},Be=(e,t,n,r,s,a)=>{if(!e)return q;let i=1;if(t===te&&(t=6),r<0?(i=0,r=-r):r>15&&(i=2,r-=16),s<1||s>9||n!==le||r<8||r>15||t<0||t>9||a<0||a>ae||8===r&&1!==i)return he(e,q);8===r&&(r=9);const o=new Ne;return e.state=o,o.strm=e,o.status=fe,o.wrap=i,o.gzhead=null,o.w_bits=r,o.w_size=1<<o.w_bits,o.w_mask=o.w_size-1,o.hash_bits=s+7,o.hash_size=1<<o.hash_bits,o.hash_mask=o.hash_size-1,o.hash_shift=~~((o.hash_bits+3-1)/3),o.window=new Uint8Array(2*o.w_size),o.head=new Uint16Array(o.hash_size),o.prev=new Uint16Array(o.w_size),o.lit_bufsize=1<<s+6,o.pending_buf_size=4*o.lit_bufsize,o.pending_buf=new Uint8Array(o.pending_buf_size),o.sym_buf=o.lit_bufsize,o.sym_end=3*(o.lit_bufsize-1),o.level=t,o.strategy=a,o.method=n,Oe(e)};var De={deflateInit:(e,t)=>Be(e,t,le,15,8,ie),deflateInit2:Be,deflateReset:Oe,deflateResetKeep:ke,deflateSetHeader:(e,t)=>xe(e)||2!==e.state.wrap?q:(e.state.gzhead=t,J),deflate:(e,t)=>{if(xe(e)||t>V||t<0)return e?he(e,q):q;const n=e.state;if(!e.output||0!==e.avail_in&&!e.input||n.status===_e&&t!==X)return he(e,0===e.avail_out?ee:q);const r=n.last_flush;if(n.last_flush=t,0!==n.pending){if(ye(e),0===e.avail_out)return n.last_flush=-1,J}else if(0===e.avail_in&&pe(t)<=pe(r)&&t!==X)return he(e,ee);if(n.status===_e&&0!==e.avail_in)return he(e,ee);if(n.status===fe&&0===n.wrap&&(n.status=de),n.status===fe){let t=le+(n.w_bits-8<<4)<<8,r=-1;if(r=n.strategy>=re||n.level<2?0:n.level<6?1:6===n.level?2:3,t|=r<<6,0!==n.strstart&&(t|=32),t+=31-t%31,Ee(n,t),0!==n.strstart&&(Ee(n,e.adler>>>16),Ee(n,65535&e.adler)),e.adler=1,n.status=de,ye(e),0!==n.pending)return n.last_flush=-1,J}if(57===n.status)if(e.adler=0,ve(n,31),ve(n,139),ve(n,8),n.gzhead)ve(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),ve(n,255&n.gzhead.time),ve(n,n.gzhead.time>>8&255),ve(n,n.gzhead.time>>16&255),ve(n,n.gzhead.time>>24&255),ve(n,9===n.level?2:n.strategy>=re||n.level<2?4:0),ve(n,255&n.gzhead.os),n.gzhead.extra&&n.gzhead.extra.length&&(ve(n,255&n.gzhead.extra.length),ve(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=F(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=69;else if(ve(n,0),ve(n,0),ve(n,0),ve(n,0),ve(n,0),ve(n,9===n.level?2:n.strategy>=re||n.level<2?4:0),ve(n,3),n.status=de,ye(e),0!==n.pending)return n.last_flush=-1,J;if(69===n.status){if(n.gzhead.extra){let t=n.pending,r=(65535&n.gzhead.extra.length)-n.gzindex;for(;n.pending+r>n.pending_buf_size;){let s=n.pending_buf_size-n.pending;if(n.pending_buf.set(n.gzhead.extra.subarray(n.gzindex,n.gzindex+s),n.pending),n.pending=n.pending_buf_size,n.gzhead.hcrc&&n.pending>t&&(e.adler=F(e.adler,n.pending_buf,n.pending-t,t)),n.gzindex+=s,ye(e),0!==n.pending)return n.last_flush=-1,J;t=0,r-=s}let s=new Uint8Array(n.gzhead.extra);n.pending_buf.set(s.subarray(n.gzindex,n.gzindex+r),n.pending),n.pending+=r,n.gzhead.hcrc&&n.pending>t&&(e.adler=F(e.adler,n.pending_buf,n.pending-t,t)),n.gzindex=0}n.status=73}if(73===n.status){if(n.gzhead.name){let t,r=n.pending;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>r&&(e.adler=F(e.adler,n.pending_buf,n.pending-r,r)),ye(e),0!==n.pending)return n.last_flush=-1,J;r=0}t=n.gzindex<n.gzhead.name.length?255&n.gzhead.name.charCodeAt(n.gzindex++):0,ve(n,t)}while(0!==t);n.gzhead.hcrc&&n.pending>r&&(e.adler=F(e.adler,n.pending_buf,n.pending-r,r)),n.gzindex=0}n.status=91}if(91===n.status){if(n.gzhead.comment){let t,r=n.pending;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>r&&(e.adler=F(e.adler,n.pending_buf,n.pending-r,r)),ye(e),0!==n.pending)return n.last_flush=-1,J;r=0}t=n.gzindex<n.gzhead.comment.length?255&n.gzhead.comment.charCodeAt(n.gzindex++):0,ve(n,t)}while(0!==t);n.gzhead.hcrc&&n.pending>r&&(e.adler=F(e.adler,n.pending_buf,n.pending-r,r))}n.status=103}if(103===n.status){if(n.gzhead.hcrc){if(n.pending+2>n.pending_buf_size&&(ye(e),0!==n.pending))return n.last_flush=-1,J;ve(n,255&e.adler),ve(n,e.adler>>8&255),e.adler=0}if(n.status=de,ye(e),0!==n.pending)return n.last_flush=-1,J}if(0!==e.avail_in||0!==n.lookahead||t!==W&&n.status!==_e){let r=0===n.level?Se(n,t):n.strategy===re?((e,t)=>{let n;for(;;){if(0===e.lookahead&&(Ce(e),0===e.lookahead)){if(t===W)return 1;break}if(e.match_length=0,n=Z(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(we(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===X?(we(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(we(e,!1),0===e.strm.avail_out)?1:2})(n,t):n.strategy===se?((e,t)=>{let n,r,s,a;const i=e.window;for(;;){if(e.lookahead<=ce){if(Ce(e),e.lookahead<=ce&&t===W)return 1;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=3&&e.strstart>0&&(s=e.strstart-1,r=i[s],r===i[++s]&&r===i[++s]&&r===i[++s])){a=e.strstart+ce;do{}while(r===i[++s]&&r===i[++s]&&r===i[++s]&&r===i[++s]&&r===i[++s]&&r===i[++s]&&r===i[++s]&&r===i[++s]&&s<a);e.match_length=ce-(a-s),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=3?(n=Z(e,1,e.match_length-3),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=Z(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(we(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===X?(we(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(we(e,!1),0===e.strm.avail_out)?1:2})(n,t):Ie[n.level].func(n,t);if(3!==r&&4!==r||(n.status=_e),1===r||3===r)return 0===e.avail_out&&(n.last_flush=-1),J;if(2===r&&(t===Q?G(n):t!==V&&(H(n,0,0,!1),t===Y&&(ge(n.head),0===n.lookahead&&(n.strstart=0,n.block_start=0,n.insert=0))),ye(e),0===e.avail_out))return n.last_flush=-1,J}return t!==X?J:n.wrap<=0?K:(2===n.wrap?(ve(n,255&e.adler),ve(n,e.adler>>8&255),ve(n,e.adler>>16&255),ve(n,e.adler>>24&255),ve(n,255&e.total_in),ve(n,e.total_in>>8&255),ve(n,e.total_in>>16&255),ve(n,e.total_in>>24&255)):(Ee(n,e.adler>>>16),Ee(n,65535&e.adler)),ye(e),n.wrap>0&&(n.wrap=-n.wrap),0!==n.pending?J:K)},deflateEnd:e=>{if(xe(e))return q;const t=e.state.status;return e.state=null,t===de?he(e,$):J},deflateSetDictionary:(e,t)=>{let n=t.length;if(xe(e))return q;const r=e.state,s=r.wrap;if(2===s||1===s&&r.status!==fe||r.lookahead)return q;if(1===s&&(e.adler=B(e.adler,t,n,0)),r.wrap=0,n>=r.w_size){0===s&&(ge(r.head),r.strstart=0,r.block_start=0,r.insert=0);let e=new Uint8Array(r.w_size);e.set(t.subarray(n-r.w_size,n),0),t=e,n=r.w_size}const a=e.avail_in,i=e.next_in,o=e.input;for(e.avail_in=n,e.next_in=0,e.input=t,Ce(r);r.lookahead>=3;){let e=r.strstart,t=r.lookahead-2;do{r.ins_h=me(r,r.ins_h,r.window[e+3-1]),r.prev[e&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=e,e++}while(--t);r.strstart=e,r.lookahead=2,Ce(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=2,r.match_available=0,e.next_in=i,e.input=o,e.avail_in=a,r.wrap=s,J},deflateInfo:"pako deflate (from Nodeca project)"};const Fe=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var Me={assign:function(e){const t=Array.prototype.slice.call(arguments,1);for(;t.length;){const n=t.shift();if(n){if("object"!=typeof n)throw new TypeError(n+"must be non-object");for(const t in n)Fe(n,t)&&(e[t]=n[t])}}return e},flattenChunks:e=>{let t=0;for(let n=0,r=e.length;n<r;n++)t+=e[n].length;const n=new Uint8Array(t);for(let t=0,r=0,s=e.length;t<s;t++){let s=e[t];n.set(s,r),r+=s.length}return n}};let Ue=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(e){Ue=!1}const ze=new Uint8Array(256);for(let e=0;e<256;e++)ze[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;ze[254]=ze[254]=1;var He={string2buf:e=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(e);let t,n,r,s,a,i=e.length,o=0;for(s=0;s<i;s++)n=e.charCodeAt(s),55296==(64512&n)&&s+1<i&&(r=e.charCodeAt(s+1),56320==(64512&r)&&(n=65536+(n-55296<<10)+(r-56320),s++)),o+=n<128?1:n<2048?2:n<65536?3:4;for(t=new Uint8Array(o),a=0,s=0;a<o;s++)n=e.charCodeAt(s),55296==(64512&n)&&s+1<i&&(r=e.charCodeAt(s+1),56320==(64512&r)&&(n=65536+(n-55296<<10)+(r-56320),s++)),n<128?t[a++]=n:n<2048?(t[a++]=192|n>>>6,t[a++]=128|63&n):n<65536?(t[a++]=224|n>>>12,t[a++]=128|n>>>6&63,t[a++]=128|63&n):(t[a++]=240|n>>>18,t[a++]=128|n>>>12&63,t[a++]=128|n>>>6&63,t[a++]=128|63&n);return t},buf2string:(e,t)=>{const n=t||e.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(e.subarray(0,t));let r,s;const a=new Array(2*n);for(s=0,r=0;r<n;){let t=e[r++];if(t<128){a[s++]=t;continue}let i=ze[t];if(i>4)a[s++]=65533,r+=i-1;else{for(t&=2===i?31:3===i?15:7;i>1&&r<n;)t=t<<6|63&e[r++],i--;i>1?a[s++]=65533:t<65536?a[s++]=t:(t-=65536,a[s++]=55296|t>>10&1023,a[s++]=56320|1023&t)}}return((e,t)=>{if(t<65534&&e.subarray&&Ue)return String.fromCharCode.apply(null,e.length===t?e:e.subarray(0,t));let n="";for(let r=0;r<t;r++)n+=String.fromCharCode(e[r]);return n})(a,s)},utf8border:(e,t)=>{(t=t||e.length)>e.length&&(t=e.length);let n=t-1;for(;n>=0&&128==(192&e[n]);)n--;return n<0||0===n?t:n+ze[e[n]]>t?n:t}},je=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0};const Ze=Object.prototype.toString,{Z_NO_FLUSH:Ge,Z_SYNC_FLUSH:We,Z_FULL_FLUSH:Qe,Z_FINISH:Ye,Z_OK:Xe,Z_STREAM_END:Ve,Z_DEFAULT_COMPRESSION:Je,Z_DEFAULT_STRATEGY:Ke,Z_DEFLATED:qe}=U;function $e(e){this.options=Me.assign({level:Je,method:qe,chunkSize:16384,windowBits:15,memLevel:8,strategy:Ke},e||{});let t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new je,this.strm.avail_out=0;let n=De.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==Xe)throw new Error(M[n]);if(t.header&&De.deflateSetHeader(this.strm,t.header),t.dictionary){let e;if(e="string"==typeof t.dictionary?He.string2buf(t.dictionary):"[object ArrayBuffer]"===Ze.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,n=De.deflateSetDictionary(this.strm,e),n!==Xe)throw new Error(M[n]);this._dict_set=!0}}function et(e,t){const n=new $e(t);if(n.push(e,!0),n.err)throw n.msg||M[n.err];return n.result}$e.prototype.push=function(e,t){const n=this.strm,r=this.options.chunkSize;let s,a;if(this.ended)return!1;for(a=t===~~t?t:!0===t?Ye:Ge,"string"==typeof e?n.input=He.string2buf(e):"[object ArrayBuffer]"===Ze.call(e)?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;;)if(0===n.avail_out&&(n.output=new Uint8Array(r),n.next_out=0,n.avail_out=r),(a===We||a===Qe)&&n.avail_out<=6)this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;else{if(s=De.deflate(n,a),s===Ve)return n.next_out>0&&this.onData(n.output.subarray(0,n.next_out)),s=De.deflateEnd(this.strm),this.onEnd(s),this.ended=!0,s===Xe;if(0!==n.avail_out){if(a>0&&n.next_out>0)this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;else if(0===n.avail_in)break}else this.onData(n.output)}return!0},$e.prototype.onData=function(e){this.chunks.push(e)},$e.prototype.onEnd=function(e){e===Xe&&(this.result=Me.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var tt={Deflate:$e,deflate:et,deflateRaw:function(e,t){return(t=t||{}).raw=!0,et(e,t)},gzip:function(e,t){return(t=t||{}).gzip=!0,et(e,t)},constants:U};const nt=16209;var rt=function(e,t){let n,r,s,a,i,o,l,c,u,f,d,_,h,p,g,b,m,y,w,v,E,A,L,C;const S=e.state;n=e.next_in,L=e.input,r=n+(e.avail_in-5),s=e.next_out,C=e.output,a=s-(t-e.avail_out),i=s+(e.avail_out-257),o=S.dmax,l=S.wsize,c=S.whave,u=S.wnext,f=S.window,d=S.hold,_=S.bits,h=S.lencode,p=S.distcode,g=(1<<S.lenbits)-1,b=(1<<S.distbits)-1;e:do{_<15&&(d+=L[n++]<<_,_+=8,d+=L[n++]<<_,_+=8),m=h[d&g];t:for(;;){if(y=m>>>24,d>>>=y,_-=y,y=m>>>16&255,0===y)C[s++]=65535&m;else{if(!(16&y)){if(0==(64&y)){m=h[(65535&m)+(d&(1<<y)-1)];continue t}if(32&y){S.mode=16191;break e}e.msg="invalid literal/length code",S.mode=nt;break e}w=65535&m,y&=15,y&&(_<y&&(d+=L[n++]<<_,_+=8),w+=d&(1<<y)-1,d>>>=y,_-=y),_<15&&(d+=L[n++]<<_,_+=8,d+=L[n++]<<_,_+=8),m=p[d&b];n:for(;;){if(y=m>>>24,d>>>=y,_-=y,y=m>>>16&255,!(16&y)){if(0==(64&y)){m=p[(65535&m)+(d&(1<<y)-1)];continue n}e.msg="invalid distance code",S.mode=nt;break e}if(v=65535&m,y&=15,_<y&&(d+=L[n++]<<_,_+=8,_<y&&(d+=L[n++]<<_,_+=8)),v+=d&(1<<y)-1,v>o){e.msg="invalid distance too far back",S.mode=nt;break e}if(d>>>=y,_-=y,y=s-a,v>y){if(y=v-y,y>c&&S.sane){e.msg="invalid distance too far back",S.mode=nt;break e}if(E=0,A=f,0===u){if(E+=l-y,y<w){w-=y;do{C[s++]=f[E++]}while(--y);E=s-v,A=C}}else if(u<y){if(E+=l+u-y,y-=u,y<w){w-=y;do{C[s++]=f[E++]}while(--y);if(E=0,u<w){y=u,w-=y;do{C[s++]=f[E++]}while(--y);E=s-v,A=C}}}else if(E+=u-y,y<w){w-=y;do{C[s++]=f[E++]}while(--y);E=s-v,A=C}for(;w>2;)C[s++]=A[E++],C[s++]=A[E++],C[s++]=A[E++],w-=3;w&&(C[s++]=A[E++],w>1&&(C[s++]=A[E++]))}else{E=s-v;do{C[s++]=C[E++],C[s++]=C[E++],C[s++]=C[E++],w-=3}while(w>2);w&&(C[s++]=C[E++],w>1&&(C[s++]=C[E++]))}break}}break}}while(n<r&&s<i);w=_>>3,n-=w,_-=w<<3,d&=(1<<_)-1,e.next_in=n,e.next_out=s,e.avail_in=n<r?r-n+5:5-(n-r),e.avail_out=s<i?i-s+257:257-(s-i),S.hold=d,S.bits=_};const st=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),at=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),it=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),ot=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]);var lt=(e,t,n,r,s,a,i,o)=>{const l=o.bits;let c,u,f,d,_,h,p=0,g=0,b=0,m=0,y=0,w=0,v=0,E=0,A=0,L=0,C=null;const S=new Uint16Array(16),T=new Uint16Array(16);let P,R,I,N=null;for(p=0;p<=15;p++)S[p]=0;for(g=0;g<r;g++)S[t[n+g]]++;for(y=l,m=15;m>=1&&0===S[m];m--);if(y>m&&(y=m),0===m)return s[a++]=20971520,s[a++]=20971520,o.bits=1,0;for(b=1;b<m&&0===S[b];b++);for(y<b&&(y=b),E=1,p=1;p<=15;p++)if(E<<=1,E-=S[p],E<0)return-1;if(E>0&&(0===e||1!==m))return-1;for(T[1]=0,p=1;p<15;p++)T[p+1]=T[p]+S[p];for(g=0;g<r;g++)0!==t[n+g]&&(i[T[t[n+g]]++]=g);if(0===e?(C=N=i,h=20):1===e?(C=st,N=at,h=257):(C=it,N=ot,h=0),L=0,g=0,p=b,_=a,w=y,v=0,f=-1,A=1<<y,d=A-1,1===e&&A>852||2===e&&A>592)return 1;for(;;){P=p-v,i[g]+1<h?(R=0,I=i[g]):i[g]>=h?(R=N[i[g]-h],I=C[i[g]-h]):(R=96,I=0),c=1<<p-v,u=1<<w,b=u;do{u-=c,s[_+(L>>v)+u]=P<<24|R<<16|I|0}while(0!==u);for(c=1<<p-1;L&c;)c>>=1;if(0!==c?(L&=c-1,L+=c):L=0,g++,0==--S[p]){if(p===m)break;p=t[n+i[g]]}if(p>y&&(L&d)!==f){for(0===v&&(v=y),_+=b,w=p-v,E=1<<w;w+v<m&&(E-=S[w+v],!(E<=0));)w++,E<<=1;if(A+=1<<w,1===e&&A>852||2===e&&A>592)return 1;f=L&d,s[f]=y<<24|w<<16|_-a|0}}return 0!==L&&(s[_+L]=p-v<<24|64<<16|0),o.bits=y,0};const{Z_FINISH:ct,Z_BLOCK:ut,Z_TREES:ft,Z_OK:dt,Z_STREAM_END:_t,Z_NEED_DICT:ht,Z_STREAM_ERROR:pt,Z_DATA_ERROR:gt,Z_MEM_ERROR:bt,Z_BUF_ERROR:mt,Z_DEFLATED:yt}=U,wt=16180,vt=16190,Et=16191,At=16192,Lt=16194,Ct=16199,St=16200,Tt=16206,Pt=16209,Rt=e=>(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24);function It(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const Nt=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.mode<wt||t.mode>16211?1:0},xt=e=>{if(Nt(e))return pt;const t=e.state;return e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=wt,t.last=0,t.havedict=0,t.flags=-1,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(852),t.distcode=t.distdyn=new Int32Array(592),t.sane=1,t.back=-1,dt},kt=e=>{if(Nt(e))return pt;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,xt(e)},Ot=(e,t)=>{let n;if(Nt(e))return pt;const r=e.state;return t<0?(n=0,t=-t):(n=5+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?pt:(null!==r.window&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,kt(e))},Bt=(e,t)=>{if(!e)return pt;const n=new It;e.state=n,n.strm=e,n.window=null,n.mode=wt;const r=Ot(e,t);return r!==dt&&(e.state=null),r};let Dt,Ft,Mt=!0;const Ut=e=>{if(Mt){Dt=new Int32Array(512),Ft=new Int32Array(32);let t=0;for(;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(lt(1,e.lens,0,288,Dt,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;lt(2,e.lens,0,32,Ft,0,e.work,{bits:5}),Mt=!1}e.lencode=Dt,e.lenbits=9,e.distcode=Ft,e.distbits=5},zt=(e,t,n,r)=>{let s;const a=e.state;return null===a.window&&(a.wsize=1<<a.wbits,a.wnext=0,a.whave=0,a.window=new Uint8Array(a.wsize)),r>=a.wsize?(a.window.set(t.subarray(n-a.wsize,n),0),a.wnext=0,a.whave=a.wsize):(s=a.wsize-a.wnext,s>r&&(s=r),a.window.set(t.subarray(n-r,n-r+s),a.wnext),(r-=s)?(a.window.set(t.subarray(n-r,n),0),a.wnext=r,a.whave=a.wsize):(a.wnext+=s,a.wnext===a.wsize&&(a.wnext=0),a.whave<a.wsize&&(a.whave+=s))),0};var Ht={inflateReset:kt,inflateReset2:Ot,inflateResetKeep:xt,inflateInit:e=>Bt(e,15),inflateInit2:Bt,inflate:(e,t)=>{let n,r,s,a,i,o,l,c,u,f,d,_,h,p,g,b,m,y,w,v,E,A,L=0;const C=new Uint8Array(4);let S,T;const P=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(Nt(e)||!e.output||!e.input&&0!==e.avail_in)return pt;n=e.state,n.mode===Et&&(n.mode=At),i=e.next_out,s=e.output,l=e.avail_out,a=e.next_in,r=e.input,o=e.avail_in,c=n.hold,u=n.bits,f=o,d=l,A=dt;e:for(;;)switch(n.mode){case wt:if(0===n.wrap){n.mode=At;break}for(;u<16;){if(0===o)break e;o--,c+=r[a++]<<u,u+=8}if(2&n.wrap&&35615===c){0===n.wbits&&(n.wbits=15),n.check=0,C[0]=255&c,C[1]=c>>>8&255,n.check=F(n.check,C,2,0),c=0,u=0,n.mode=16181;break}if(n.head&&(n.head.done=!1),!(1&n.wrap)||(((255&c)<<8)+(c>>8))%31){e.msg="incorrect header check",n.mode=Pt;break}if((15&c)!==yt){e.msg="unknown compression method",n.mode=Pt;break}if(c>>>=4,u-=4,E=8+(15&c),0===n.wbits&&(n.wbits=E),E>15||E>n.wbits){e.msg="invalid window size",n.mode=Pt;break}n.dmax=1<<n.wbits,n.flags=0,e.adler=n.check=1,n.mode=512&c?16189:Et,c=0,u=0;break;case 16181:for(;u<16;){if(0===o)break e;o--,c+=r[a++]<<u,u+=8}if(n.flags=c,(255&n.flags)!==yt){e.msg="unknown compression method",n.mode=Pt;break}if(57344&n.flags){e.msg="unknown header flags set",n.mode=Pt;break}n.head&&(n.head.text=c>>8&1),512&n.flags&&4&n.wrap&&(C[0]=255&c,C[1]=c>>>8&255,n.check=F(n.check,C,2,0)),c=0,u=0,n.mode=16182;case 16182:for(;u<32;){if(0===o)break e;o--,c+=r[a++]<<u,u+=8}n.head&&(n.head.time=c),512&n.flags&&4&n.wrap&&(C[0]=255&c,C[1]=c>>>8&255,C[2]=c>>>16&255,C[3]=c>>>24&255,n.check=F(n.check,C,4,0)),c=0,u=0,n.mode=16183;case 16183:for(;u<16;){if(0===o)break e;o--,c+=r[a++]<<u,u+=8}n.head&&(n.head.xflags=255&c,n.head.os=c>>8),512&n.flags&&4&n.wrap&&(C[0]=255&c,C[1]=c>>>8&255,n.check=F(n.check,C,2,0)),c=0,u=0,n.mode=16184;case 16184:if(1024&n.flags){for(;u<16;){if(0===o)break e;o--,c+=r[a++]<<u,u+=8}n.length=c,n.head&&(n.head.extra_len=c),512&n.flags&&4&n.wrap&&(C[0]=255&c,C[1]=c>>>8&255,n.check=F(n.check,C,2,0)),c=0,u=0}else n.head&&(n.head.extra=null);n.mode=16185;case 16185:if(1024&n.flags&&(_=n.length,_>o&&(_=o),_&&(n.head&&(E=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Uint8Array(n.head.extra_len)),n.head.extra.set(r.subarray(a,a+_),E)),512&n.flags&&4&n.wrap&&(n.check=F(n.check,r,_,a)),o-=_,a+=_,n.length-=_),n.length))break e;n.length=0,n.mode=16186;case 16186:if(2048&n.flags){if(0===o)break e;_=0;do{E=r[a+_++],n.head&&E&&n.length<65536&&(n.head.name+=String.fromCharCode(E))}while(E&&_<o);if(512&n.flags&&4&n.wrap&&(n.check=F(n.check,r,_,a)),o-=_,a+=_,E)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=16187;case 16187:if(4096&n.flags){if(0===o)break e;_=0;do{E=r[a+_++],n.head&&E&&n.length<65536&&(n.head.comment+=String.fromCharCode(E))}while(E&&_<o);if(512&n.flags&&4&n.wrap&&(n.check=F(n.check,r,_,a)),o-=_,a+=_,E)break e}else n.head&&(n.head.comment=null);n.mode=16188;case 16188:if(512&n.flags){for(;u<16;){if(0===o)break e;o--,c+=r[a++]<<u,u+=8}if(4&n.wrap&&c!==(65535&n.check)){e.msg="header crc mismatch",n.mode=Pt;break}c=0,u=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=Et;break;case 16189:for(;u<32;){if(0===o)break e;o--,c+=r[a++]<<u,u+=8}e.adler=n.check=Rt(c),c=0,u=0,n.mode=vt;case vt:if(0===n.havedict)return e.next_out=i,e.avail_out=l,e.next_in=a,e.avail_in=o,n.hold=c,n.bits=u,ht;e.adler=n.check=1,n.mode=Et;case Et:if(t===ut||t===ft)break e;case At:if(n.last){c>>>=7&u,u-=7&u,n.mode=Tt;break}for(;u<3;){if(0===o)break e;o--,c+=r[a++]<<u,u+=8}switch(n.last=1&c,c>>>=1,u-=1,3&c){case 0:n.mode=16193;break;case 1:if(Ut(n),n.mode=Ct,t===ft){c>>>=2,u-=2;break e}break;case 2:n.mode=16196;break;case 3:e.msg="invalid block type",n.mode=Pt}c>>>=2,u-=2;break;case 16193:for(c>>>=7&u,u-=7&u;u<32;){if(0===o)break e;o--,c+=r[a++]<<u,u+=8}if((65535&c)!=(c>>>16^65535)){e.msg="invalid stored block lengths",n.mode=Pt;break}if(n.length=65535&c,c=0,u=0,n.mode=Lt,t===ft)break e;case Lt:n.mode=16195;case 16195:if(_=n.length,_){if(_>o&&(_=o),_>l&&(_=l),0===_)break e;s.set(r.subarray(a,a+_),i),o-=_,a+=_,l-=_,i+=_,n.length-=_;break}n.mode=Et;break;case 16196:for(;u<14;){if(0===o)break e;o--,c+=r[a++]<<u,u+=8}if(n.nlen=257+(31&c),c>>>=5,u-=5,n.ndist=1+(31&c),c>>>=5,u-=5,n.ncode=4+(15&c),c>>>=4,u-=4,n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=Pt;break}n.have=0,n.mode=16197;case 16197:for(;n.have<n.ncode;){for(;u<3;){if(0===o)break e;o--,c+=r[a++]<<u,u+=8}n.lens[P[n.have++]]=7&c,c>>>=3,u-=3}for(;n.have<19;)n.lens[P[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,S={bits:n.lenbits},A=lt(0,n.lens,0,19,n.lencode,0,n.work,S),n.lenbits=S.bits,A){e.msg="invalid code lengths set",n.mode=Pt;break}n.have=0,n.mode=16198;case 16198:for(;n.have<n.nlen+n.ndist;){for(;L=n.lencode[c&(1<<n.lenbits)-1],g=L>>>24,b=L>>>16&255,m=65535&L,!(g<=u);){if(0===o)break e;o--,c+=r[a++]<<u,u+=8}if(m<16)c>>>=g,u-=g,n.lens[n.have++]=m;else{if(16===m){for(T=g+2;u<T;){if(0===o)break e;o--,c+=r[a++]<<u,u+=8}if(c>>>=g,u-=g,0===n.have){e.msg="invalid bit length repeat",n.mode=Pt;break}E=n.lens[n.have-1],_=3+(3&c),c>>>=2,u-=2}else if(17===m){for(T=g+3;u<T;){if(0===o)break e;o--,c+=r[a++]<<u,u+=8}c>>>=g,u-=g,E=0,_=3+(7&c),c>>>=3,u-=3}else{for(T=g+7;u<T;){if(0===o)break e;o--,c+=r[a++]<<u,u+=8}c>>>=g,u-=g,E=0,_=11+(127&c),c>>>=7,u-=7}if(n.have+_>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=Pt;break}for(;_--;)n.lens[n.have++]=E}}if(n.mode===Pt)break;if(0===n.lens[256]){e.msg="invalid code -- missing end-of-block",n.mode=Pt;break}if(n.lenbits=9,S={bits:n.lenbits},A=lt(1,n.lens,0,n.nlen,n.lencode,0,n.work,S),n.lenbits=S.bits,A){e.msg="invalid literal/lengths set",n.mode=Pt;break}if(n.distbits=6,n.distcode=n.distdyn,S={bits:n.distbits},A=lt(2,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,S),n.distbits=S.bits,A){e.msg="invalid distances set",n.mode=Pt;break}if(n.mode=Ct,t===ft)break e;case Ct:n.mode=St;case St:if(o>=6&&l>=258){e.next_out=i,e.avail_out=l,e.next_in=a,e.avail_in=o,n.hold=c,n.bits=u,rt(e,d),i=e.next_out,s=e.output,l=e.avail_out,a=e.next_in,r=e.input,o=e.avail_in,c=n.hold,u=n.bits,n.mode===Et&&(n.back=-1);break}for(n.back=0;L=n.lencode[c&(1<<n.lenbits)-1],g=L>>>24,b=L>>>16&255,m=65535&L,!(g<=u);){if(0===o)break e;o--,c+=r[a++]<<u,u+=8}if(b&&0==(240&b)){for(y=g,w=b,v=m;L=n.lencode[v+((c&(1<<y+w)-1)>>y)],g=L>>>24,b=L>>>16&255,m=65535&L,!(y+g<=u);){if(0===o)break e;o--,c+=r[a++]<<u,u+=8}c>>>=y,u-=y,n.back+=y}if(c>>>=g,u-=g,n.back+=g,n.length=m,0===b){n.mode=16205;break}if(32&b){n.back=-1,n.mode=Et;break}if(64&b){e.msg="invalid literal/length code",n.mode=Pt;break}n.extra=15&b,n.mode=16201;case 16201:if(n.extra){for(T=n.extra;u<T;){if(0===o)break e;o--,c+=r[a++]<<u,u+=8}n.length+=c&(1<<n.extra)-1,c>>>=n.extra,u-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=16202;case 16202:for(;L=n.distcode[c&(1<<n.distbits)-1],g=L>>>24,b=L>>>16&255,m=65535&L,!(g<=u);){if(0===o)break e;o--,c+=r[a++]<<u,u+=8}if(0==(240&b)){for(y=g,w=b,v=m;L=n.distcode[v+((c&(1<<y+w)-1)>>y)],g=L>>>24,b=L>>>16&255,m=65535&L,!(y+g<=u);){if(0===o)break e;o--,c+=r[a++]<<u,u+=8}c>>>=y,u-=y,n.back+=y}if(c>>>=g,u-=g,n.back+=g,64&b){e.msg="invalid distance code",n.mode=Pt;break}n.offset=m,n.extra=15&b,n.mode=16203;case 16203:if(n.extra){for(T=n.extra;u<T;){if(0===o)break e;o--,c+=r[a++]<<u,u+=8}n.offset+=c&(1<<n.extra)-1,c>>>=n.extra,u-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=Pt;break}n.mode=16204;case 16204:if(0===l)break e;if(_=d-l,n.offset>_){if(_=n.offset-_,_>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=Pt;break}_>n.wnext?(_-=n.wnext,h=n.wsize-_):h=n.wnext-_,_>n.length&&(_=n.length),p=n.window}else p=s,h=i-n.offset,_=n.length;_>l&&(_=l),l-=_,n.length-=_;do{s[i++]=p[h++]}while(--_);0===n.length&&(n.mode=St);break;case 16205:if(0===l)break e;s[i++]=n.length,l--,n.mode=St;break;case Tt:if(n.wrap){for(;u<32;){if(0===o)break e;o--,c|=r[a++]<<u,u+=8}if(d-=l,e.total_out+=d,n.total+=d,4&n.wrap&&d&&(e.adler=n.check=n.flags?F(n.check,s,d,i-d):B(n.check,s,d,i-d)),d=l,4&n.wrap&&(n.flags?c:Rt(c))!==n.check){e.msg="incorrect data check",n.mode=Pt;break}c=0,u=0}n.mode=16207;case 16207:if(n.wrap&&n.flags){for(;u<32;){if(0===o)break e;o--,c+=r[a++]<<u,u+=8}if(4&n.wrap&&c!==(4294967295&n.total)){e.msg="incorrect length check",n.mode=Pt;break}c=0,u=0}n.mode=16208;case 16208:A=_t;break e;case Pt:A=gt;break e;case 16210:return bt;default:return pt}return e.next_out=i,e.avail_out=l,e.next_in=a,e.avail_in=o,n.hold=c,n.bits=u,(n.wsize||d!==e.avail_out&&n.mode<Pt&&(n.mode<Tt||t!==ct))&&zt(e,e.output,e.next_out,d-e.avail_out),f-=e.avail_in,d-=e.avail_out,e.total_in+=f,e.total_out+=d,n.total+=d,4&n.wrap&&d&&(e.adler=n.check=n.flags?F(n.check,s,d,e.next_out-d):B(n.check,s,d,e.next_out-d)),e.data_type=n.bits+(n.last?64:0)+(n.mode===Et?128:0)+(n.mode===Ct||n.mode===Lt?256:0),(0===f&&0===d||t===ct)&&A===dt&&(A=mt),A},inflateEnd:e=>{if(Nt(e))return pt;let t=e.state;return t.window&&(t.window=null),e.state=null,dt},inflateGetHeader:(e,t)=>{if(Nt(e))return pt;const n=e.state;return 0==(2&n.wrap)?pt:(n.head=t,t.done=!1,dt)},inflateSetDictionary:(e,t)=>{const n=t.length;let r,s,a;return Nt(e)?pt:(r=e.state,0!==r.wrap&&r.mode!==vt?pt:r.mode===vt&&(s=1,s=B(s,t,n,0),s!==r.check)?gt:(a=zt(e,t,n,n),a?(r.mode=16210,bt):(r.havedict=1,dt)))},inflateInfo:"pako inflate (from Nodeca project)"},jt=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1};const Zt=Object.prototype.toString,{Z_NO_FLUSH:Gt,Z_FINISH:Wt,Z_OK:Qt,Z_STREAM_END:Yt,Z_NEED_DICT:Xt,Z_STREAM_ERROR:Vt,Z_DATA_ERROR:Jt,Z_MEM_ERROR:Kt}=U;function qt(e){this.options=Me.assign({chunkSize:65536,windowBits:15,to:""},e||{});const t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(t.windowBits>=0&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&0==(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new je,this.strm.avail_out=0;let n=Ht.inflateInit2(this.strm,t.windowBits);if(n!==Qt)throw new Error(M[n]);if(this.header=new jt,Ht.inflateGetHeader(this.strm,this.header),t.dictionary&&("string"==typeof t.dictionary?t.dictionary=He.string2buf(t.dictionary):"[object ArrayBuffer]"===Zt.call(t.dictionary)&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(n=Ht.inflateSetDictionary(this.strm,t.dictionary),n!==Qt)))throw new Error(M[n])}function $t(e,t){const n=new qt(t);if(n.push(e),n.err)throw n.msg||M[n.err];return n.result}qt.prototype.push=function(e,t){const n=this.strm,r=this.options.chunkSize,s=this.options.dictionary;let a,i,o;if(this.ended)return!1;for(i=t===~~t?t:!0===t?Wt:Gt,"[object ArrayBuffer]"===Zt.call(e)?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;;){for(0===n.avail_out&&(n.output=new Uint8Array(r),n.next_out=0,n.avail_out=r),a=Ht.inflate(n,i),a===Xt&&s&&(a=Ht.inflateSetDictionary(n,s),a===Qt?a=Ht.inflate(n,i):a===Jt&&(a=Xt));n.avail_in>0&&a===Yt&&n.state.wrap>0&&0!==e[n.next_in];)Ht.inflateReset(n),a=Ht.inflate(n,i);switch(a){case Vt:case Jt:case Xt:case Kt:return this.onEnd(a),this.ended=!0,!1}if(o=n.avail_out,n.next_out&&(0===n.avail_out||a===Yt))if("string"===this.options.to){let e=He.utf8border(n.output,n.next_out),t=n.next_out-e,s=He.buf2string(n.output,e);n.next_out=t,n.avail_out=r-t,t&&n.output.set(n.output.subarray(e,e+t),0),this.onData(s)}else this.onData(n.output.length===n.next_out?n.output:n.output.subarray(0,n.next_out));if(a!==Qt||0!==o){if(a===Yt)return a=Ht.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,!0;if(0===n.avail_in)break}}return!0},qt.prototype.onData=function(e){this.chunks.push(e)},qt.prototype.onEnd=function(e){e===Qt&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=Me.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var en={Inflate:qt,inflate:$t,inflateRaw:function(e,t){return(t=t||{}).raw=!0,$t(e,t)},ungzip:$t,constants:U};const{Deflate:tn,deflate:nn,deflateRaw:rn,gzip:sn}=tt,{Inflate:an,inflate:on,inflateRaw:ln,ungzip:cn}=en;var un,fn,dn;n(816).Buffer,function(e){e.PUBLIC="public",e.SECRET="secret"}(un||(un={})),(dn=fn||(fn={})).SECRET="secret",dn.OPEN="open",dn.UNCONSTRAINED="unconstrained";var _n=n(3573);function hn(e){return new _n.C4(256).update(e).digest()}function pn(e){const t=new _n.C4(256);return t.reset(),t.update(e),t.digest("hex")}var gn=n(394),bn=n(3302),mn=n(816).Buffer;const yn=65536,wn=e=>{if(bn)return gn.randomBytes(e);const t="undefined"!=typeof window&&window.crypto?window.crypto:"undefined"!=typeof self&&self.crypto?self.crypto:void 0;if(!t)throw new Error("randomBytes UnsupportedEnvironment");const n=mn.allocUnsafe(e);if(e>yn)for(let r=0;r<e;r+=yn)t.getRandomValues(n.slice(r,r+yn));else t.getRandomValues(n);return n};var vn=n(5294),En=n(816).Buffer;function An(e){const t=e.toString("hex");return 0===t.length?BigInt(0):BigInt(`0x${t}`)}function Ln(e,t){if(e<BigInt(0))throw new Error(`Cannot convert negative bigint ${e.toString()} to buffer with toBufferBE.`);const n=e.toString(16),r=En.from(n.padStart(2*t,"0").slice(0,2*t),"hex");if(r.length>t)throw new Error(`Number ${e.toString(16)} does not fit in ${t}`);return r}function Cn(e,t=!1){const n=e.toString(16),r=n.length%2==0?n.length:n.length+1;return`0x${n.padStart(t?64:r,"0")}`}var Sn=n(816).Buffer;class Tn{constructor(e,t=0){this.buffer=e,this.index=t}static asReader(e){return Sn.isBuffer(e)?new Tn(e):e}readNumber(){return this.index+=4,this.buffer.readUint32BE(this.index-4)}readUInt16(){return this.index+=2,this.buffer.readUInt16BE(this.index-2)}readBoolean(){return this.index+=1,Boolean(this.buffer.at(this.index-1))}readBytes(e){return this.index+=e,Sn.from(this.buffer.subarray(this.index-e,this.index))}readFr(){return Rn.fromBuffer(this)}readFq(){return In.fromBuffer(this)}readNumberVector(){return this.readVector({fromBuffer:e=>e.readNumber()})}readVector(e){const t=this.readNumber(),n=new Array(t);for(let r=0;r<t;r++)n[r]=e.fromBuffer(this);return n}readArray(e,t){return Array.from({length:e},(()=>t.fromBuffer(this)))}readBufferArray(e=-1){const t=[],n=e>=0?this.index+e:this.buffer.length;for(;this.index<n;){const e=this.readBuffer();t.push(e)}if(this.index!==n)throw new Error(`Reader buffer was not fully consumed. Consumed up to ${this.index} bytes. End of data: ${n} bytes.`);return t}readObject(e){return e.fromBuffer(this)}peekBytes(e){return this.buffer.subarray(this.index,e?this.index+e:void 0)}readString(){return this.readBuffer().toString()}readBuffer(){const e=this.readNumber();return this.readBytes(e)}readMap(e){const t=this.readNumber(),n={};for(let r=0;r<t;r++){const t=this.readString(),r=this.readObject(e);n[t]=r}return n}getLength(){return this.buffer.length}}var Pn=n(816).Buffer;class Rn{constructor(e){if(this.value=(e=>!!e.toBigInt)(e)?e.toBigInt():BigInt(e),this.value>Rn.MAX_VALUE)throw new Error(`Fr out of range ${e}.`)}static random(){const e=An(wn(Rn.SIZE_IN_BYTES))%Rn.MODULUS;return new Rn(e)}static zero(){return new Rn(0n)}static fromBuffer(e){const t=Tn.asReader(e);return new Rn(An(t.readBytes(Rn.SIZE_IN_BYTES)))}static fromString(e){return Rn.fromBuffer(Pn.from(e.replace(/^0x/i,""),"hex"))}toBuffer(){return Ln(this.value,Rn.SIZE_IN_BYTES)}toString(e=!1){return Cn(this.value,e)}toBigInt(){return this.value}toShortString(){const e=this.toString();return`${e.slice(0,10)}...${e.slice(-4)}`}equals(e){return this.value===e.value}isZero(){return 0n===this.value}toFriendlyJSON(){return this.toString()}}Rn.ZERO=new Rn(0n),Rn.MODULUS=0x30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001n,Rn.MAX_VALUE=Rn.MODULUS-1n,Rn.SIZE_IN_BYTES=32;class In{constructor(e){if(this.value=e,e>In.MAX_VALUE)throw new Error(`Fq out of range ${e}.`)}static random(){return new this(An(wn(64))%In.MODULUS)}static fromBuffer(e){return new this(An(Tn.asReader(e).readBytes(this.SIZE_IN_BYTES)))}toBuffer(){return Ln(this.value,In.SIZE_IN_BYTES)}toString(){return Cn(this.value)}isZero(){return 0n===this.value}toFriendlyJSON(){return this.toString()}}In.MODULUS=0x30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47n,In.MAX_VALUE=Rn.MODULUS-1n,In.SIZE_IN_BYTES=32;var Nn=n(816).Buffer;const xn=e=>Nn.from(vn.sha256().update(e).digest());var kn=n(816).Buffer;function On(e,t){const n=function(e,t){return"constructor"===e?e:`${e}(${t.map((e=>e.type.kind)).join(",")})`}(e,t);return function(e,t){return hn(kn.from(e)).slice(0,4)}(n)}var Bn=n(816).Buffer;class Dn{constructor(e,t){this.x=e,this.y=t,this.kind="point"}static random(){return new Dn(Rn.random(),Rn.random())}static fromBuffer(e){const t=Tn.asReader(e);return new this(Rn.fromBuffer(t.readBytes(32)),Rn.fromBuffer(t.readBytes(32)))}static fromString(e){return this.fromBuffer(Bn.from(e.replace(/^0x/i,""),"hex"))}toFields(){return[this.x,this.y]}toBigInts(){return{x:this.x.value,y:this.y.value}}toBuffer(){return Bn.concat([this.x.toBuffer(),this.y.toBuffer()])}toString(){return"0x"+this.toBuffer().toString("hex")}toShortString(){const e=this.toString();return`${e.slice(0,10)}...${e.slice(-4)}`}equals(e){return this.x.equals(e.x)&&this.y.equals(e.y)}}Dn.ZERO=new Dn(Rn.ZERO,Rn.ZERO),Dn.SIZE_IN_BYTES=2*Rn.SIZE_IN_BYTES;var Fn=n(816).Buffer;class Mn{constructor(e){this.fields=e}toFields(){return this.fields}static random(){return this.fromField(Rn.random())}toFieldsBuffer(){return Fn.concat([this.fields[0].toBuffer(),this.fields[1].toBuffer()])}toBuffer(){const e=this.fields[0].toBuffer(),t=this.fields[1].toBuffer();return e[0]=t[31],e}equals(e){return this.toBigInt()===e.toBigInt()}toBigInt(){return An(this.toBuffer())}static fromBuffer(e){if(32!=e.length)throw new Error("Invalid size of coordinate buffer");const t=Fn.alloc(32);e.copy(t,0,0,32);const n=Fn.alloc(32);return n[31]=t[0],t[0]=0,new Mn([Rn.fromBuffer(t),Rn.fromBuffer(n)])}static fromField(e){const t=e.toBuffer(),n=Fn.alloc(32);return n[31]=t[0],t[0]=0,new Mn([Rn.fromBuffer(t),Rn.fromBuffer(n)])}}Mn.ZERO=new Mn([Rn.ZERO,Rn.ZERO]);var Un=n(816).Buffer;class zn{constructor(e,t){this.abi=e,this.args=t,this.flattened=[]}encodeArgument(e,t,n){if(void 0===t||null==t)throw new Error(`Undefined argument ${n??"unnamed"} of type ${e.kind}`);switch(e.kind){case"field":if("number"==typeof t)this.flattened.push(new Rn(BigInt(t)));else if("bigint"==typeof t)this.flattened.push(new Rn(t));else{if("object"!=typeof t)throw new Error(`Invalid argument "${t}" of type ${e.kind}`);if(Un.isBuffer(t))this.flattened.push(Rn.fromBuffer(t));else if("function"==typeof t.toField)this.flattened.push(t.toField());else{if(!(t instanceof Rn))throw new Error(`Argument for ${n} cannot be serialised to a field`);this.flattened.push(t)}}break;case"boolean":this.flattened.push(new Rn(t?1n:0n));break;case"array":for(let r=0;r<e.length;r+=1)this.encodeArgument(e.type,t[r],`${n}[${r}]`);break;case"struct":for(const r of e.fields)this.encodeArgument(r.type,t[r.name],`${n}.${r.name}`);break;case"integer":this.flattened.push(new Rn(t));break;default:throw new Error(`Unsupported type: ${e.kind}`)}}encode(){for(let e=0;e<this.abi.parameters.length;e+=1){const t=this.abi.parameters[e];this.encodeArgument(t.type,this.args[e],t.name)}return this.flattened}}function Hn(e,t){return new zn(e,t).encode()}var jn=n(816).Buffer;function Zn(e,t=4){const n=jn.alloc(t);return n.writeUInt32BE(e,t-4),n}function Gn(e,t=4){const n=jn.alloc(t);return n.writeInt32BE(e,t-4),n}function Wn(e){const t=jn.alloc(4);return t.writeUInt32BE(e.length,0),jn.concat([t,e])}function Qn(e,t){return e.map(t)}n(816).Buffer;var Yn=n(816).Buffer;function Xn(e,t=4){const n=Yn.alloc(t);return n.writeUInt32BE(e,t-4),n}function Vn(e){return!!e.toBuffer32}function Jn(...e){let t=[];for(const r of e)Array.isArray(r)?t=[...t,...Jn(...r)]:Yn.isBuffer(r)?t.push(r):"boolean"==typeof r?t.push((n=r,Yn.from([n?1:0]))):"number"==typeof r?t.push(Xn(r)):"string"==typeof r?(t.push(Xn(r.length)),t.push(Yn.from(r))):Vn(r)?t.push(r.toBuffer32()):t.push(r.toBuffer());var n;return t}function Kn(...e){return Yn.concat(Jn(...e))}class qn{constructor(e,t,n,r){this.chainId=e,this.version=t,this.blockNumber=n,this.timestamp=r}static from(e){return new qn(...qn.getFields(e))}static empty(){return new qn(Rn.zero(),Rn.zero(),Rn.zero(),Rn.zero())}static fromBuffer(e){const t=Tn.asReader(e);return new qn(t.readFr(),t.readFr(),t.readFr(),t.readFr())}static getFields(e){return[e.chainId,e.version,e.blockNumber,e.timestamp]}toBuffer(){return Kn(...qn.getFields(this))}}const $n=16,er=16,tr=16,nr=16,rr=32;var sr,ar,ir,or;function lr(e,t,n=0){return Array.from({length:e},((e,r)=>t(r+n)))}function cr(e,t,n){if(e[t].length!==n)throw new Error(`Expected ${t} to have length ${n} but was ${e[t].length}`)}function ur(e,t,n){const r=e[t];for(let e=0;e<r.length;e++)if(r[e].length!==n)throw new Error(`Expected ${t}[${e}] to have length ${n} but was ${r[e].length}`)}!function(e){e[e.COMMITMENT=1]="COMMITMENT",e[e.COMMITMENT_NONCE=2]="COMMITMENT_NONCE",e[e.UNIQUE_COMMITMENT=3]="UNIQUE_COMMITMENT",e[e.SILOED_COMMITMENT=4]="SILOED_COMMITMENT",e[e.NULLIFIER=5]="NULLIFIER",e[e.INITIALISATION_NULLIFIER=6]="INITIALISATION_NULLIFIER",e[e.OUTER_NULLIFIER=7]="OUTER_NULLIFIER",e[e.PUBLIC_DATA_READ=8]="PUBLIC_DATA_READ",e[e.PUBLIC_DATA_UPDATE_REQUEST=9]="PUBLIC_DATA_UPDATE_REQUEST",e[e.FUNCTION_DATA=10]="FUNCTION_DATA",e[e.FUNCTION_LEAF=11]="FUNCTION_LEAF",e[e.CONTRACT_DEPLOYMENT_DATA=12]="CONTRACT_DEPLOYMENT_DATA",e[e.CONSTRUCTOR=13]="CONSTRUCTOR",e[e.CONSTRUCTOR_ARGS=14]="CONSTRUCTOR_ARGS",e[e.CONTRACT_ADDRESS=15]="CONTRACT_ADDRESS",e[e.CONTRACT_LEAF=16]="CONTRACT_LEAF",e[e.CALL_CONTEXT=17]="CALL_CONTEXT",e[e.CALL_STACK_ITEM=18]="CALL_STACK_ITEM",e[e.CALL_STACK_ITEM_2=19]="CALL_STACK_ITEM_2",e[e.L1_TO_L2_MESSAGE_SECRET=20]="L1_TO_L2_MESSAGE_SECRET",e[e.L2_TO_L1_MSG=21]="L2_TO_L1_MSG",e[e.TX_CONTEXT=22]="TX_CONTEXT",e[e.PUBLIC_LEAF_INDEX=23]="PUBLIC_LEAF_INDEX",e[e.PUBLIC_DATA_LEAF=24]="PUBLIC_DATA_LEAF",e[e.SIGNED_TX_REQUEST=25]="SIGNED_TX_REQUEST",e[e.GLOBAL_VARIABLES=26]="GLOBAL_VARIABLES",e[e.PARTIAL_ADDRESS=27]="PARTIAL_ADDRESS",e[e.TX_REQUEST=33]="TX_REQUEST",e[e.SIGNATURE_PAYLOAD=34]="SIGNATURE_PAYLOAD",e[e.VK=41]="VK",e[e.PRIVATE_CIRCUIT_PUBLIC_INPUTS=42]="PRIVATE_CIRCUIT_PUBLIC_INPUTS",e[e.PUBLIC_CIRCUIT_PUBLIC_INPUTS=43]="PUBLIC_CIRCUIT_PUBLIC_INPUTS",e[e.FUNCTION_ARGS=44]="FUNCTION_ARGS"}(sr||(sr={})),function(e){e[e.BASE_SLOT=0]="BASE_SLOT",e[e.MAPPING_SLOT=1]="MAPPING_SLOT",e[e.MAPPING_SLOT_PLACEHOLDER=2]="MAPPING_SLOT_PLACEHOLDER"}(ar||(ar={})),function(e){e[e.VALUE=1]="VALUE",e[e.OWNER=2]="OWNER",e[e.CREATOR=3]="CREATOR",e[e.SALT=4]="SALT",e[e.NONCE=5]="NONCE",e[e.MEMO=6]="MEMO",e[e.IS_DUMMY=7]="IS_DUMMY"}(ir||(ir={})),function(e){e[e.PARTITIONED=1]="PARTITIONED",e[e.WHOLE=2]="WHOLE"}(or||(or={}));class fr{constructor(e,t){this.root=e,this.nextAvailableLeafIndex=t}toBuffer(){return Kn(this.root,this.nextAvailableLeafIndex)}static fromBuffer(e){const t=Tn.asReader(e);return new fr(t.readFr(),t.readNumber())}static empty(){return new fr(Rn.ZERO,0)}}class dr{constructor(e,t,n,r,s,a,i,o,l,c,u,f,d,_,h){this.kernelData=e,this.startPrivateDataTreeSnapshot=t,this.startNullifierTreeSnapshot=n,this.startContractTreeSnapshot=r,this.startPublicDataTreeRoot=s,this.startHistoricBlocksTreeSnapshot=a,this.lowNullifierLeafPreimages=i,this.lowNullifierMembershipWitness=o,this.newCommitmentsSubtreeSiblingPath=l,this.newNullifiersSubtreeSiblingPath=c,this.newContractsSubtreeSiblingPath=u,this.newPublicDataUpdateRequestsSiblingPaths=f,this.newPublicDataReadsSiblingPaths=d,this.historicBlocksTreeRootMembershipWitnesses=_,this.constants=h,cr(this,"lowNullifierLeafPreimages",32),cr(this,"lowNullifierMembershipWitness",32),cr(this,"newCommitmentsSubtreeSiblingPath",rr-dr.PRIVATE_DATA_SUBTREE_HEIGHT),cr(this,"newNullifiersSubtreeSiblingPath",16-dr.NULLIFIER_SUBTREE_HEIGHT),cr(this,"newContractsSubtreeSiblingPath",16-dr.CONTRACT_SUBTREE_HEIGHT),cr(this,"newPublicDataUpdateRequestsSiblingPaths",32),cr(this,"newPublicDataReadsSiblingPaths",32),ur(this,"newPublicDataUpdateRequestsSiblingPaths",254),ur(this,"newPublicDataReadsSiblingPaths",254)}static from(e){return new dr(...dr.getFields(e))}static getFields(e){return[e.kernelData,e.startPrivateDataTreeSnapshot,e.startNullifierTreeSnapshot,e.startContractTreeSnapshot,e.startPublicDataTreeRoot,e.startHistoricBlocksTreeSnapshot,e.lowNullifierLeafPreimages,e.lowNullifierMembershipWitness,e.newCommitmentsSubtreeSiblingPath,e.newNullifiersSubtreeSiblingPath,e.newContractsSubtreeSiblingPath,e.newPublicDataUpdateRequestsSiblingPaths,e.newPublicDataReadsSiblingPaths,e.historicBlocksTreeRootMembershipWitnesses,e.constants]}toBuffer(){return Kn(...dr.getFields(this))}}dr.PRIVATE_DATA_SUBTREE_HEIGHT=Math.log2(32),dr.CONTRACT_SUBTREE_HEIGHT=Math.log2(2),dr.NULLIFIER_SUBTREE_HEIGHT=Math.log2(32);var _r,hr,pr,gr,br=n(3545);class mr{constructor(e){this.items=e}toBuffer(){return Kn(this.items.length,this.items)}toFriendlyJSON(){return this.items}}(gr=_r||(_r={}))[gr.STANDARD=0]="STANDARD",gr[gr.TURBO=1]="TURBO",gr[gr.ULTRA=2]="ULTRA",(pr=hr||(hr={}))[pr.Base=0]="Base",pr[pr.Merge=1]="Merge",pr[pr.Root=2]="Root";class yr{constructor(e,t){this.x="bigint"==typeof e?new In(e):e,this.y="bigint"==typeof t?new In(t):t}toBuffer(){return Kn(this.x,this.y)}static fromBuffer(e){const t=Tn.asReader(e);return new yr(t.readFr(),t.readFr())}}class wr{constructor(e,t,n,r,s=!1){this.p0=e,this.p1=t,this.publicInputs=n,this.proofWitnessIndices=r,this.hasData=s}toBuffer(){return Kn(this.p0,this.p1,new mr(this.publicInputs),new mr(this.proofWitnessIndices),this.hasData)}static fromBuffer(e){const t=Tn.asReader(e);return new wr(t.readObject(yr),t.readObject(yr),t.readVector(Rn),t.readNumberVector(),t.readBoolean())}static makeFake(){return new wr(new yr(new In(1n),new In(2n)),new yr(new In(1n),new In(2n)),[],br(16,(e=>3027+e)),!1)}}n(816).Buffer;var vr=n(816).Buffer;class Er{constructor(e){this.buffer=e;const t=An(e);if(t>Er.MAX_VALUE)throw new Error(`AztecAddress out of range ${t}.`)}static random(){return new Er(Ln(Rn.random().value,Er.SIZE_IN_BYTES))}static fromBuffer(e){return new this(Tn.asReader(e).readBytes(this.SIZE_IN_BYTES))}static fromString(e){const t=vr.from(e.replace(/^0x/i,""),"hex");if(t.length!==Er.SIZE_IN_BYTES)throw new Error(`Invalid length ${t.length}.`);return new Er(t)}static fromBigInt(e){return new Er(Ln(e,Er.SIZE_IN_BYTES))}toBuffer(){return this.buffer}toString(){return`0x${this.buffer.toString("hex")}`}toShortString(){const e=this.toString();return`${e.slice(0,10)}...${e.slice(-4)}`}static fromField(e){return new Er(Ln(e.value,Er.SIZE_IN_BYTES))}toField(){return Rn.fromBuffer(this.toBuffer())}toBigInt(){return An(this.buffer)}equals(e){return this.buffer.equals(e.buffer)}isZero(){return this.equals(Er.ZERO)}toFriendlyJSON(){return this.toString()}}Er.SIZE_IN_BYTES=32,Er.ZERO=new Er(vr.alloc(Er.SIZE_IN_BYTES)),Er.MODULUS=0x30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001n,Er.MAX_VALUE=Er.MODULUS-1n;var Ar=n(816).Buffer;class Lr{constructor(e){if(this.buffer=e,32===e.length){if(!e.slice(0,12).equals(Ar.alloc(12)))throw new Error(`Invalid address buffer: ${e.toString("hex")}`);this.buffer=e.slice(12)}else if(e.length!==Lr.SIZE_IN_BYTES)throw new Error(`Expect buffer size to be ${Lr.SIZE_IN_BYTES}. Got ${e.length}.`)}static fromString(e){if(!Lr.isAddress(e))throw new Error(`Invalid address string: ${e}`);return new Lr(Ar.from(e.replace(/^0x/i,""),"hex"))}static random(){return new Lr(wn(20))}static isAddress(e){return!!/^(0x)?[0-9a-f]{40}$/i.test(e)&&(!(!/^(0x|0X)?[0-9a-f]{40}$/.test(e)&&!/^(0x|0X)?[0-9A-F]{40}$/.test(e))||Lr.checkAddressChecksum(e))}isZero(){return this.equals(Lr.ZERO)}static checkAddressChecksum(e){const t=pn((e=e.replace(/^0x/i,"")).toLowerCase());for(let n=0;n<40;n++)if(parseInt(t[n],16)>7&&e[n].toUpperCase()!==e[n]||parseInt(t[n],16)<=7&&e[n].toLowerCase()!==e[n])return!1;return!0}static toChecksumAddress(e){if(!Lr.isAddress(e))throw new Error("Invalid address string.");const t=pn(e=e.toLowerCase().replace(/^0x/i,""));let n="0x";for(let r=0;r<e.length;r++)parseInt(t[r],16)>7?n+=e[r].toUpperCase():n+=e[r];return n}equals(e){return this.buffer.equals(e.buffer)}toString(){return`0x${this.buffer.toString("hex")}`}toChecksumString(){return Lr.toChecksumAddress(this.buffer.toString("hex"))}toBuffer(){return this.toBuffer32()}toBuffer20(){return this.buffer}toBuffer32(){const e=Ar.alloc(32);return this.buffer.copy(e,12),e}toField(){return Rn.fromBuffer(this.toBuffer32())}static fromField(e){return new Lr(e.toBuffer().slice(-Lr.SIZE_IN_BYTES))}static fromBuffer(e){const t=Tn.asReader(e);return new Lr(t.readBuffer())}toFriendlyJSON(){return this.toString()}}Lr.SIZE_IN_BYTES=20,Lr.ZERO=new Lr(Ar.alloc(Lr.SIZE_IN_BYTES));class Cr{constructor(e,t,n,r,s,a){this.msgSender=e,this.storageContractAddress=t,this.isDelegateCall=r,this.isStaticCall=s,this.isContractDeployment=a,this.portalContractAddress=n instanceof Lr?n:Lr.fromField(n)}static empty(){return new Cr(Er.ZERO,Er.ZERO,Rn.ZERO,!1,!1,!1)}isEmpty(){return this.msgSender.isZero()&&this.storageContractAddress.isZero()&&this.portalContractAddress.isZero()}static from(e){return new Cr(...Cr.getFields(e))}static getFields(e){return[e.msgSender,e.storageContractAddress,e.portalContractAddress,e.isDelegateCall,e.isStaticCall,e.isContractDeployment]}toBuffer(){return Kn(...Cr.getFields(this))}static fromBuffer(e){const t=Tn.asReader(e);return new Cr(new Er(t.readBytes(32)),new Er(t.readBytes(32)),new Lr(t.readBytes(32)),t.readBoolean(),t.readBoolean(),t.readBoolean())}}var Sr=n(816).Buffer;class Tr{constructor(e,t,n,r){if(this.isInternal=t,this.isPrivate=n,this.isConstructor=r,e instanceof Sr){if(4!==e.byteLength)throw new Error(`Function selector must be 4 bytes long, got ${e.byteLength} bytes.`);this.functionSelectorBuffer=e}else this.functionSelectorBuffer=Zn(e)}static fromAbi(e){return new Tr(On(e.name,e.parameters),e.isInternal,e.functionType===fn.SECRET,"constructor"===e.name)}get functionSelector(){return function(e,t=0){return{elem:e.readUInt32BE(t),adv:4}}(this.functionSelectorBuffer).elem}toBuffer(){return Kn(this.functionSelectorBuffer,this.isInternal,this.isPrivate,this.isConstructor)}isEmpty(){return this.functionSelectorBuffer.equals(Sr.alloc(4,0))}static empty(e){return new Tr(Sr.alloc(4,0),e?.isInternal??!1,e?.isPrivate??!1,e?.isConstructor??!1)}static fromBuffer(e){const t=Tn.asReader(e);return new Tr(t.readBytes(4),t.readBoolean(),t.readBoolean(),t.readBoolean())}}var Pr=n(816).Buffer;class Rr{constructor(e,t,n){this.contractAddress=e,this.functionTreeRoot=n,this.portalContractAddress=new Lr(t.toBuffer())}toBuffer(){return Kn(this.contractAddress,this.portalContractAddress,this.functionTreeRoot)}static fromBuffer(e){const t=Tn.asReader(e);return new Rr(t.readObject(Er),new Lr(t.readBytes(32)),t.readFr())}static empty(){return new Rr(Er.ZERO,Lr.ZERO,Rn.ZERO)}}class Ir{constructor(e,t,n,r,s,a,i,o){this.callStackItemHash=e,this.functionData=t,this.vkHash=n,this.payFeeFromL1=s,this.payFeeFromPublicL2=a,this.calledFromL1=i,this.calledFromPublicL2=o,this.portalContractAddress=Lr.fromField(r.toField())}toBuffer(){return Kn(this.callStackItemHash,this.functionData,this.vkHash,this.portalContractAddress,this.payFeeFromL1,this.payFeeFromPublicL2,this.calledFromL1,this.calledFromPublicL2)}static fromBuffer(e){const t=Tn.asReader(e);return new Ir(t.readFr(),t.readObject(Tr),t.readFr(),new Lr(t.readBytes(32)),t.readBoolean(),t.readBoolean(),t.readBoolean(),t.readBoolean())}static empty(){return new Ir(Rn.ZERO,Tr.empty(),Rn.ZERO,Lr.ZERO,!1,!1,!1,!1)}}class Nr{constructor(e,t,n){this.leafIndex=e,this.value=t,this.sideEffectCounter=n}static from(e){return new Nr(e.leafIndex,e.value)}toBuffer(){return Kn(this.leafIndex,this.value)}static fromBuffer(e){const t=Tn.asReader(e);return new Nr(t.readFr(),t.readFr())}static empty(){return new Nr(Rn.ZERO,Rn.ZERO)}toFriendlyJSON(){return`Leaf=${this.leafIndex.toFriendlyJSON()}: ${this.value.toFriendlyJSON()}`}}class xr{constructor(e,t,n,r){this.leafIndex=e,this.oldValue=t,this.newValue=n,this.sideEffectCounter=r}static from(e){return new xr(e.leafIndex,e.oldValue,e.newValue)}toBuffer(){return Kn(this.leafIndex,this.oldValue,this.newValue)}static fromBuffer(e){const t=Tn.asReader(e);return new xr(t.readFr(),t.readFr(),t.readFr())}static empty(){return new xr(Rn.ZERO,Rn.ZERO,Rn.ZERO)}toFriendlyJSON(){return`Leaf=${this.leafIndex.toFriendlyJSON()}: ${this.oldValue.toFriendlyJSON()} => ${this.newValue.toFriendlyJSON()}`}}class kr{constructor(e,t,n,r,s,a,i,o,l,c,u,f,d,_,h,p,g){this.aggregationObject=e,this.readRequests=t,this.readRequestMembershipWitnesses=n,this.newCommitments=r,this.newNullifiers=s,this.nullifiedCommitments=a,this.privateCallStack=i,this.publicCallStack=o,this.newL2ToL1Msgs=l,this.encryptedLogsHash=c,this.unencryptedLogsHash=u,this.encryptedLogPreimagesLength=f,this.unencryptedLogPreimagesLength=d,this.newContracts=_,this.optionallyRevealedData=h,this.publicDataUpdateRequests=p,this.publicDataReads=g,cr(this,"readRequests",nr),cr(this,"readRequestMembershipWitnesses",nr),cr(this,"newCommitments",$n),cr(this,"newNullifiers",er),cr(this,"nullifiedCommitments",er),cr(this,"privateCallStack",8),cr(this,"publicCallStack",8),cr(this,"newL2ToL1Msgs",2),cr(this,"encryptedLogsHash",2),cr(this,"unencryptedLogsHash",2),cr(this,"newContracts",1),cr(this,"optionallyRevealedData",4),cr(this,"publicDataUpdateRequests",tr),cr(this,"publicDataReads",16)}toBuffer(){return Kn(this.aggregationObject,this.readRequests,this.readRequestMembershipWitnesses,this.newCommitments,this.newNullifiers,this.nullifiedCommitments,this.privateCallStack,this.publicCallStack,this.newL2ToL1Msgs,this.encryptedLogsHash,this.unencryptedLogsHash,this.encryptedLogPreimagesLength,this.unencryptedLogPreimagesLength,this.newContracts,this.optionallyRevealedData,this.publicDataUpdateRequests,this.publicDataReads)}toString(){return this.toBuffer().toString()}static fromBuffer(e){const t=Tn.asReader(e);return new kr(t.readObject(wr),t.readArray(nr,Rn),t.readArray(nr,rs),t.readArray($n,Rn),t.readArray(er,Rn),t.readArray(er,Rn),t.readArray(8,Rn),t.readArray(8,Rn),t.readArray(2,Rn),t.readArray(2,Rn),t.readArray(2,Rn),t.readFr(),t.readFr(),t.readArray(1,Rr),t.readArray(4,Ir),t.readArray(tr,xr),t.readArray(16,Nr))}static fromString(e){return kr.fromBuffer(Pr.from(e,"hex"))}static empty(){return new kr(wr.makeFake(),lr(nr,Rn.zero),lr(nr,(()=>rs.empty(BigInt(0)))),lr($n,Rn.zero),lr(er,Rn.zero),lr(er,Rn.zero),lr(8,Rn.zero),lr(8,Rn.zero),lr(2,Rn.zero),lr(2,Rn.zero),lr(2,Rn.zero),Rn.zero(),Rn.zero(),lr(1,Rr.empty),lr(4,Ir.empty),lr(tr,xr.empty),lr(16,Nr.empty))}}class Or{constructor(e,t,n,r,s){this.deployerPublicKey=e,this.constructorVkHash=t,this.functionTreeRoot=n,this.contractAddressSalt=r,this.portalContractAddress=Lr.fromField(s.toField())}toBuffer(){return Kn(this.deployerPublicKey,this.constructorVkHash,this.functionTreeRoot,this.contractAddressSalt,this.portalContractAddress)}static empty(){return new Or(Dn.ZERO,Rn.ZERO,Rn.ZERO,Rn.ZERO,Lr.ZERO)}static fromBuffer(e){const t=Tn.asReader(e);return new Or(t.readObject(Dn),t.readFr(),t.readFr(),t.readFr(),new Lr(t.readBytes(32)))}}class Br{constructor(e,t,n,r,s,a){this.isFeePaymentTx=e,this.isRebatePaymentTx=t,this.isContractDeploymentTx=n,this.contractDeploymentData=r,this.chainId=s,this.version=a}toBuffer(){return Kn(this.isFeePaymentTx,this.isRebatePaymentTx,this.isContractDeploymentTx,this.contractDeploymentData,this.chainId,this.version)}static fromBuffer(e){const t=Tn.asReader(e);return new Br(t.readBoolean(),t.readBoolean(),t.readBoolean(),t.readObject(Or),t.readFr(),t.readFr())}static empty(e=0,t=0){return new Br(!1,!1,!1,Or.empty(),new Rn(e),new Rn(t))}static from(e){return new Br(...Br.getFields(e))}static getFields(e){return[e.isFeePaymentTx,e.isRebatePaymentTx,e.isContractDeploymentTx,e.contractDeploymentData,e.chainId,e.version]}}class Dr{constructor(e,t,n,r,s,a,i,o){this.privateDataTreeRoot=e,this.nullifierTreeRoot=t,this.contractTreeRoot=n,this.l1ToL2MessagesTreeRoot=r,this.blocksTreeRoot=s,this.privateKernelVkTreeRoot=a,this.publicDataTreeRoot=i,this.globalVariablesHash=o}static from(e){return new Dr(...Dr.getFields(e))}static random(){return new Dr(Rn.random(),Rn.random(),Rn.random(),Rn.random(),Rn.random(),Rn.random(),Rn.random(),Rn.random())}static getFields(e){return[e.privateDataTreeRoot,e.nullifierTreeRoot,e.contractTreeRoot,e.l1ToL2MessagesTreeRoot,e.blocksTreeRoot,e.privateKernelVkTreeRoot,e.publicDataTreeRoot,e.globalVariablesHash]}toBuffer(){return Kn(...Dr.getFields(this))}toString(){return this.toBuffer().toString()}toArray(){return[this.privateDataTreeRoot,this.nullifierTreeRoot,this.contractTreeRoot,this.l1ToL2MessagesTreeRoot,this.blocksTreeRoot,this.publicDataTreeRoot,this.globalVariablesHash]}static fromBuffer(e){const t=Tn.asReader(e);return new Dr(t.readFr(),t.readFr(),t.readFr(),t.readFr(),t.readFr(),t.readFr(),t.readFr(),t.readFr())}isEmpty(){return this.privateDataTreeRoot.isZero()&&this.nullifierTreeRoot.isZero()&&this.contractTreeRoot.isZero()&&this.l1ToL2MessagesTreeRoot.isZero()&&this.blocksTreeRoot.isZero()&&this.privateKernelVkTreeRoot.isZero()&&this.publicDataTreeRoot.isZero()&&this.globalVariablesHash.isZero()}static empty(){return new Dr(Rn.ZERO,Rn.ZERO,Rn.ZERO,Rn.ZERO,Rn.ZERO,Rn.ZERO,Rn.ZERO,Rn.ZERO)}}class Fr{constructor(e,t){this.blockData=e,this.txContext=t}toBuffer(){return Kn(this.blockData,this.txContext)}static fromBuffer(e){const t=Tn.asReader(e);return new Fr(t.readObject(Dr),t.readObject(Br))}static empty(){return new Fr(Dr.empty(),Br.empty())}}n(1328),n(816).Buffer,n(816).Buffer,n(816).Buffer;class Mr{constructor(e){this.buffer=e}static fromMsgpackBuffer(e){return new Mr(e)}static fromBuffer(e){const t=Tn.asReader(e),n=t.readNumber(),r=t.readBytes(n);return new Mr(r)}toMsgpackBuffer(){return this.buffer}toBuffer(){return Kn(this.buffer.length,this.buffer)}}class Ur{constructor(e,t,n){this.end=e,this.constants=t,this.isPrivate=n}toBuffer(){return Kn(this.end,this.constants,this.isPrivate)}static fromBuffer(e){const t=Tn.asReader(e);return new Ur(t.readObject(kr),t.readObject(Fr),t.readBoolean())}static empty(){return new Ur(kr.empty(),Fr.empty(),!0)}}function zr(e,t,n){if(e.length>n)throw new Error("Array size exceeds target length");return[...e,...Array(n-e.length).fill(t)]}function Hr(e,t){for(const n of e)if(!t(n))return!1;return!0}class jr{constructor(e,t,n){this.storageSlot=e,this.currentValue=t,this.sideEffectCounter=n}static from(e){return new jr(e.storageSlot,e.currentValue)}toBuffer(){return Kn(this.storageSlot,this.currentValue)}static fromBuffer(e){const t=Tn.asReader(e);return new jr(t.readFr(),t.readFr())}static empty(){return new jr(Rn.ZERO,Rn.ZERO)}isEmpty(){return this.storageSlot.isZero()&&this.currentValue.isZero()}toFriendlyJSON(){return`Slot=${this.storageSlot.toFriendlyJSON()}: ${this.currentValue.toFriendlyJSON()}`}}class Zr{constructor(e,t,n,r){this.storageSlot=e,this.oldValue=t,this.newValue=n,this.sideEffectCounter=r}toBuffer(){return Kn(this.storageSlot,this.oldValue,this.newValue)}static fromBuffer(e){const t=Tn.asReader(e);return new Zr(t.readFr(),t.readFr(),t.readFr())}static from(e){return new Zr(...Zr.getFields(e))}static getFields(e){return[e.storageSlot,e.oldValue,e.newValue,e.sideEffectCounter]}static empty(){return new Zr(Rn.ZERO,Rn.ZERO,Rn.ZERO)}isEmpty(){return this.storageSlot.isZero()&&this.oldValue.isZero()&&this.newValue.isZero()}toFriendlyJSON(){return`Slot=${this.storageSlot.toFriendlyJSON()}: ${this.oldValue.toFriendlyJSON()} => ${this.newValue.toFriendlyJSON()}`}}class Gr{constructor(e,t,n,r,s,a,i,o,l,c,u,f,d){this.callContext=e,this.argsHash=t,this.returnValues=n,this.contractStorageUpdateRequests=r,this.contractStorageReads=s,this.publicCallStack=a,this.newCommitments=i,this.newNullifiers=o,this.newL2ToL1Msgs=l,this.unencryptedLogsHash=c,this.unencryptedLogPreimagesLength=u,this.historicBlockData=f,this.proverAddress=d,cr(this,"returnValues",4),cr(this,"publicCallStack",4),cr(this,"newCommitments",4),cr(this,"newNullifiers",4),cr(this,"newL2ToL1Msgs",2),cr(this,"contractStorageUpdateRequests",16),cr(this,"contractStorageReads",16),cr(this,"unencryptedLogsHash",2)}static from(e){return new Gr(...Gr.getFields(e))}static empty(){return new Gr(Cr.empty(),Rn.ZERO,lr(4,Rn.zero),lr(16,Zr.empty),lr(16,jr.empty),lr(4,Rn.zero),lr(4,Rn.zero),lr(4,Rn.zero),lr(2,Rn.zero),lr(2,Rn.zero),Rn.ZERO,Dr.empty(),Er.ZERO)}isEmpty(){const e=e=>Hr(e,(e=>e.isZero()));return this.callContext.isEmpty()&&this.argsHash.isZero()&&e(this.returnValues)&&Hr(this.contractStorageUpdateRequests,(e=>e.isEmpty()))&&Hr(this.contractStorageReads,(e=>e.isEmpty()))&&e(this.publicCallStack)&&e(this.newCommitments)&&e(this.newNullifiers)&&e(this.newL2ToL1Msgs)&&e(this.unencryptedLogsHash)&&this.unencryptedLogPreimagesLength.isZero()&&this.historicBlockData.isEmpty()&&this.proverAddress.isZero()}static getFields(e){return[e.callContext,e.argsHash,e.returnValues,e.contractStorageUpdateRequests,e.contractStorageReads,e.publicCallStack,e.newCommitments,e.newNullifiers,e.newL2ToL1Msgs,e.unencryptedLogsHash,e.unencryptedLogPreimagesLength,e.historicBlockData,e.proverAddress]}toBuffer(){return Kn(...Gr.getFields(this))}}var Wr=n(816),Qr=n(3261);function Yr(e,t,n,r){const s=n instanceof Wr.Buffer?n:n.toBuffer(),a=e.call("bbmalloc",r),i=e.call("bbmalloc",s.length);e.writeMemory(i,s),e.call(t,i,a);const o=Wr.Buffer.from(e.getMemorySlice(a,a+r));return e.call("bbfree",a),e.call("bbfree",i),o}function Xr(e,t,n,r){const s=[],a=n.reduce(((e,t)=>(s.push(e),e+t.length)),0),i=e.call("bbmalloc",r),o=e.call("bbmalloc",a);e.writeMemory(o,Wr.Buffer.concat(n));const l=s.map((e=>o+e));e.call(t,...l,i);const c=Wr.Buffer.from(e.getMemorySlice(i,i+r));return e.call("bbfree",o),e.call("bbfree",i),c}function Vr(e,t){return e.call("pedersen__init"),Rn.fromBuffer(Yr(e,"abis__compute_function_leaf",t,32))}function Jr(e,t,n){e.call("pedersen__init");const r=Xr(e,"abis__compute_contract_address_from_partial",[t.toBuffer(),n.toBuffer()],32);return new Er(r)}const Kr=32,qr=16;function $r(e,t){if(0===t.length)return Promise.resolve(Rn.ZERO);if(t.length>Kr*qr)throw new Error(`Cannot hash more than ${Kr*qr} arguments`);e.call("pedersen__init");const n=t=>Rn.fromBuffer(Yr(e,"abis__compute_var_args_hash",new mr(t),32));let r=Qr(t,Kr).map((e=>(e.length<Kr&&(e=zr(e,Rn.ZERO,Kr)),n(e))));return r.length<qr&&(r=zr(r,Rn.ZERO,qr)),Promise.resolve(n(r))}class es{constructor(e,t,n,r){this.contractAddress=e,this.functionData=t,this.publicInputs=n,this.isExecutionRequest=r}toBuffer(){return Kn(this.contractAddress,this.functionData,this.publicInputs,this.isExecutionRequest)}static empty(){return new es(Er.ZERO,Tr.empty({isPrivate:!1}),Gr.empty(),!1)}isEmpty(){return this.contractAddress.isZero()&&this.functionData.isEmpty()&&this.publicInputs.isEmpty()}async hash(){return function(e,t){e.call("pedersen__init");const n=Yr(e,"abis__compute_public_call_stack_item_hash",t,32);return Rn.fromBuffer(n)}(await xs.get(),this)}}class ts{constructor(e,t,n,r){this.origin=e,this.functionData=t,this.argsHash=n,this.txContext=r}static getFields(e){return[e.origin,e.functionData,e.argsHash,e.txContext]}static from(e){return new ts(...ts.getFields(e))}toBuffer(){return Kn([...ts.getFields(this)])}static fromBuffer(e){const t=Tn.asReader(e);return new ts(t.readObject(Er),t.readObject(Tr),t.readFr(),t.readObject(Br))}}class ns{constructor(e,t,n,r,s){this.functionSelector=e,this.isInternal=t,this.isPrivate=n,this.vkHash=r,this.acirHash=s,this.FUNCTION_SELECTOR_LENGTH=4,this.assertFunctionSelectorLength(e)}assertFunctionSelectorLength(e){if(e.byteLength!==this.FUNCTION_SELECTOR_LENGTH)throw new Error(`Function selector must be ${this.FUNCTION_SELECTOR_LENGTH} bytes long, got ${e.byteLength} bytes.`)}toBuffer(){return this.assertFunctionSelectorLength(this.functionSelector),Kn(this.functionSelector,this.isInternal,this.isPrivate,this.vkHash,this.acirHash)}static fromBuffer(e){const t=Tn.asReader(e);return new ns(t.readBytes(4),t.readBoolean(),t.readBoolean(),t.readFr(),t.readFr())}}class rs{constructor(e,t,n=!1,r){if(this.leafIndex=e,this.siblingPath=t,this.isTransient=n,this.hintToCommitment=r,cr(this,"siblingPath",rr),r.value>4)throw new Error(`Expected ReadRequestMembershipWitness' hintToCommitment(${r}) to be <= NEW_COMMITMENTS_LENGTH(4)`)}toBuffer(){return Kn(Ln(this.leafIndex.toBigInt(),32),...this.siblingPath,this.isTransient,this.hintToCommitment)}static mock(e,t){return new rs(new Rn(t),function(e,t=0){const n=[];for(let r=0;r<e;r++)n.push(t+r);return n}(e,t).map((e=>new Rn(BigInt(e)))),!1,new Rn(0))}static random(){return new rs(new Rn(0n),lr(rr,(()=>Rn.random())),!1,new Rn(0))}static empty(e){const t=lr(rr,(()=>Rn.ZERO));return new rs(new Rn(e),t,!1,new Rn(0))}static emptyTransient(){const e=lr(rr,(()=>Rn.ZERO));return new rs(new Rn(0),e,!0,new Rn(0))}static fromBufferArray(e,t,n,r){return new rs(e,t.map((e=>Rn.fromBuffer(e))),n,r)}static fromMembershipWitness(e,t,n){return new rs(new Rn(e.leafIndex),e.siblingPath,t,n)}static fromBuffer(e){const t=Tn.asReader(e),n=t.readFr(),r=t.readArray(rr,Rn),s=t.readBoolean(),a=t.readFr();return new rs(n,r,s,a)}}class ss{constructor(e,t,n,r,s){this.contractAddress=e,this.functionData=t,this.callContext=n,this.args=r,this.sideEffectCounter=s}toBuffer(){return Kn(this.contractAddress,this.functionData,this.callContext,new mr(this.args))}static fromBuffer(e){const t=Tn.asReader(e);return new ss(new Er(t.readBytes(32)),Tr.fromBuffer(t),Cr.fromBuffer(t),t.readVector(Rn))}static from(e){return new ss(...ss.getFields(e))}static getFields(e){return[e.contractAddress,e.functionData,e.callContext,e.args,e.sideEffectCounter]}async toPublicCallStackItem(){const e=Gr.empty();return e.callContext=this.callContext,e.argsHash=await this.getArgsHash(),new es(this.contractAddress,this.functionData,e,!0)}async getArgsHash(){return $r(await xs.get(),this.args)}}var as=n(6292);let is;function os(e){const t=as(e);return(...e)=>function(e,...t){as.enabled(e.namespace)&&(is&&is(e.namespace,...t),e(...t))}(t,...e)}var ls=n(3118);const cs=["silent","fatal","error","warn","info","debug"],us={NODE_ENV:"production"}.LOG_LEVEL?.toLowerCase(),fs=cs.includes(us)?us:"info";function ds(e){const t=as(e);"debug"===fs&&(t.enabled=!0);const n={silent:()=>{},fatal:(...e)=>_s(t,"fatal",e),error:(...e)=>_s(t,"error",e),warn:(...e)=>_s(t,"warn",e),info:(...e)=>_s(t,"info",e),debug:(...e)=>_s(t,"debug",e)};return Object.assign(t,n)}function _s(e,t,n){e.enabled?e(n[0],...n.slice(1)):cs.indexOf(t)<=cs.indexOf(fs)&&function(e){console.error(...e)}([hs(e,t),...n])}function hs(e,t){const n=fs!==t?` ${t.toUpperCase()}`:"",r=`${e.namespace.replace(/^aztec:/,"")}${n}`;if(!bn||!(0,ls.VB)(process.stderr.fd))return r;const s=as.selectColor(e.namespace);return` ${"[3"+(s<8?s:"8;5;"+s)};1m${r}`}new class{constructor(){this.logs=[]}enable(){is=(...e)=>{this.logs.push([(new Date).toISOString(),...e])}}getLogs(e=0){return e?this.logs.slice(-e):this.logs}clear(e=this.logs.length){this.logs=this.logs.slice(e)}};class ps{constructor(e=ds("aztec:foundation:memory_fifo")){this.log=e,this.waiting=[],this.items=[],this.flushing=!1}length(){return this.items.length}get(e){return this.items.length?Promise.resolve(this.items.shift()):0===this.items.length&&this.flushing?Promise.resolve(null):new Promise(((t,n)=>{this.waiting.push(t),e&&setTimeout((()=>{const e=this.waiting.findIndex((e=>e===t));if(e>-1){this.waiting.splice(e,1);const t=new Error("Timeout getting item from queue.");n(t)}}),1e3*e)}))}put(e){this.flushing||(this.waiting.length?this.waiting.shift()(e):this.items.push(e))}end(){this.flushing=!0,this.waiting.forEach((e=>e(null)))}cancel(){this.flushing=!0,this.items=[],this.waiting.forEach((e=>e(null)))}async process(e){try{for(;;){const t=await this.get();if(null===t)break;await e(t)}}catch(e){this.log.error("Queue handler exception:",e)}}}const gs=(e=os("wasm:empty_wasi_sdk"))=>({clock_time_get(){e("clock_time_get")},environ_get(){e("environ_get")},environ_sizes_get(){e("environ_sizes_get")},fd_close(){e("fd_close")},fd_read(){e("fd_read")},fd_write(){e("fd_write")},fd_seek(){e("fd_seek")},fd_fdstat_get(){e("fd_fdstat_get")},fd_fdstat_set_flags(){e("fd_fdstat_set_flags")},fd_prestat_get:()=>(e("fd_prestat_get"),8),fd_prestat_dir_name:()=>(e("fd_prestat_dir_name"),28),path_open(){e("path_open")},path_filestat_get(){e("path_filestat_get")},proc_exit:()=>(e("proc_exit"),52),random_get:()=>(e("random_get"),1)});class bs{constructor(e,t,n="wasm"){this.module=e,this.importFn=t,this.mutexQ=new ps,this.debug=os(n),this.mutexQ.put(!0)}getModule(){return this.module}async init(e=30,t=8192,n="_initialize"){this.debug(`initial mem: ${e} pages, ${65536*e/1048576}mb. max mem: ${t} pages, ${65536*t/1048576}mb`),this.memory=new WebAssembly.Memory({initial:e,maximum:t}),this.heap=new Uint8Array(this.memory.buffer);const r={wasi_snapshot_preview1:{...gs(this.debug),random_get:(e,t)=>{e>>>=0;const n=this.getMemory(),r=wn(t);for(let s=e;s<e+t;++s)n[s]=r[s-e]}},env:this.importFn(this)};if(this.module instanceof WebAssembly.Module)this.instance=await WebAssembly.instantiate(this.module,r);else{const{instance:e}=await WebAssembly.instantiate(this.module,r);this.instance=e}n&&this.call(n)}exports(){if(!this.instance)throw new Error("WasmModule: not initialized!");return this.instance.exports}getLogger(){return this.debug}addLogger(e){const t=this.debug;this.debug=(...n)=>{e(...n),t(...n)}}call(e,...t){if(!this.exports()[e])throw new Error(`WASM function ${e} not found.`);try{return this.exports()[e](...t)>>>0}catch(t){const n=`WASM function ${e} aborted, error: ${t}\n${t.stack}`;throw new Error(n)}}getRawMemory(){return this.memory}getMemory(){return 0===this.heap.length&&(this.heap=new Uint8Array(this.memory.buffer)),this.heap}memSize(){return this.getMemory().length}getMemorySlice(e,t){return this.getMemory().slice(e,t)}writeMemory(e,t){const n=this.getMemory();for(let r=0;r<t.length;r++)n[r+e]=t[r]}getMemoryAsString(e){e>>>=0;const t=this.getMemory();let n=e;for(;0!==t[n];++n);return Wr.Buffer.from(t.slice(e,n)).toString("ascii")}async acquire(){await this.mutexQ.get()}release(){if(0!==this.mutexQ.length())throw new Error("Release called but not acquired.");this.mutexQ.put(!0)}}var ms=n(9190),ys=n(3240),ws=n(6721),vs=n(1856),Es=n(6014),As=n(717),Ls=n(6963),Cs=n(816).Buffer;class Ss{constructor(e){this.numPoints=e}async init(){const e=28+64*this.numPoints-1,t=await fetch("https://aztec-ignition.s3.amazonaws.com/MAIN%20IGNITION/monomial/transcript00.dat",{headers:{Range:`bytes=28-${e}`}});this.data=new Uint8Array(await t.arrayBuffer()),await this.downloadG2Data()}async downloadG2Data(){const e=await fetch("https://aztec-ignition.s3.amazonaws.com/MAIN%20IGNITION/monomial/transcript00.dat",{headers:{Range:"bytes=322560092-322560219"}});this.g2Data=new Uint8Array(await e.arrayBuffer())}getG1Data(){return this.data}getG2Data(){return this.g2Data}}class Ts{constructor(e,t){this.numPoints=e,this.path=t}async init(){const e=64*this.numPoints,t=await(0,Es.open)(this.path,"r");try{this.data=Cs.alloc(e),await t.read(this.data,0,e,28),this.g2Data=Cs.alloc(128),await t.read(this.g2Data,0,128,322560028)}finally{await t.close()}}getG1Data(){return this.data}getG2Data(){return this.g2Data}}class Ps{constructor(e){if(this.numPoints=e,bn){const t=(0,As.dirname)((0,Ls.fileURLToPath)("file:///usr/src/yarn-project/circuits.js/dest/crs/index.js"))+"/../../../../circuits/cpp/barretenberg/cpp/srs_db/ignition/monomial/transcript00.dat";this.crs=(0,vs.existsSync)(t)?new Ts(e,t):new Ss(e)}else this.crs=new Ss(e)}async init(){await this.crs.init()}getG1Data(){return this.crs.getG1Data()}getG2Data(){return this.crs.getG2Data()}}var Rs=n(816).Buffer;const Is="/aztec3-circuits",Ns=bn?(0,ys.join)((0,ys.dirname)((0,ws.fileURLToPath)("file:///usr/src/yarn-project/circuits.js/dest/wasm/circuits_wasm.js")),`../../resources/${Is}.wasm`):`${Is}.wasm`;class xs{constructor(e){this.wasm=e}static get(){return this.instance||(this.instance=xs.new()),this.instance}static async new(e=30,t=8192,n="wasm"){const r=new bs(await async function(e){if(bn)return await(0,ms.readFile)(e);{const t=await fetch(e);return Rs.from(await t.arrayBuffer())}}(Ns),(e=>({logstr(e){const t=`${r.getMemoryAsString(e)} (mem: ${(r.getMemory().length/1048576).toFixed(2)}MB)`;(t.startsWith("abort: ")||t.startsWith("important: "))&&console.log(t),r.getLogger()(t)},memory:e.getRawMemory(),set_data:()=>{r.getLogger()("set_data: NYI")},get_data:()=>{throw new Error("NOT YET IMPLEMENTED - needed for proofs, plan is to use barretenberg.js from NPM for proofs. See https://github.com/AztecProtocol/aztec-packages/issues/781")}})),n);return await r.init(e,t),await xs.initializeSrs(r),new xs(r)}static async initializeSrs(e){const t=new Ps(5e4);await t.init();const n=e.call("bbmalloc",t.getG1Data().length);e.writeMemory(n,t.getG1Data());const r=e.call("bbmalloc",4);e.writeMemory(r,Zn(t.numPoints));const s=e.call("bbmalloc",t.getG2Data().length);e.writeMemory(s,t.getG2Data()),e.call("srs_init_srs",n,r,s),e.call("bbfree",n),e.call("bbfree",r),e.call("bbfree",s)}exports(){return this.wasm.exports()}getMemorySlice(e,t){return this.wasm.getMemorySlice(e,t)}writeMemory(e,t){this.wasm.writeMemory(e,t)}getMemoryAsString(e){return this.wasm.getMemoryAsString(e)}call(e,...t){return this.wasm.call(e,...t)}}n(816).Buffer;var ks=n(816).Buffer;function Os(e,t){return function(e,t){return e.call("pedersen__init"),Yr(e,"abis__hash_vk",t,32)}(t,ks.from(e,"hex"))}function Bs({name:e}){return"constructor"===e}function Ds({name:e,functionType:t}){return t!==fn.UNCONSTRAINED&&!Bs({name:e})}async function Fs(e,t,n,r){const s=e.functions.find(Bs);if(!s)throw new Error("Cannot find constructor in the ABI.");if(!s.verificationKey)throw new Error("Missing verification key for the constructor.");const a=await xs.get(),i=Os(s.verificationKey,a),o=Rn.fromBuffer(i),l=function(e,t){const n=e.filter(Ds),r=[];for(let e=0;e<n.length;e++){const s=n[e],a=On(s.name,s.parameters),i=s.isInternal,o=s.functionType===fn.SECRET,l=Os(s.verificationKey,t),c=ks.alloc(32,0),u=Vr(t,new ns(a,i,o,Rn.fromBuffer(l),Rn.fromBuffer(c)));r.push(u)}return r}(e.functions.map((e=>({...e,selector:On(e.name,e.parameters)}))),a),c=function(e,t){const n=function(e){const t=Yn.alloc(4);return t.writeUInt32BE(e.length,0),Yn.concat([t,...e])}(t.map((e=>e.toBuffer())));e.call("pedersen__init");const r=Yr(e,"abis__compute_function_tree_root",n,32);return Rn.fromBuffer(r)}(a,l),u=Tr.fromAbi(s),f=Hn(s,t),d=function(e,t,n,r){e.call("pedersen__init");const s=Xr(e,"abis__hash_constructor",[t.toBuffer(),n.toBuffer(),r],32);return Rn.fromBuffer(s)}(a,u,await $r(a,f),o.toBuffer()),_=function(e,t,n,r){e.call("pedersen__init");const s=Xr(e,"abis__compute_partial_address",[t.toBuffer(),n.toBuffer(),r.toBuffer()],32);return Rn.fromBuffer(s)}(a,n,c,d),h=function(e,t,n,r,s){e.call("pedersen__init");const a=Xr(e,"abis__compute_contract_address",[t.toBuffer(),n.toBuffer(),r.toBuffer(),s.toBuffer()],32);return new Er(a)}(a,r,n,c,d);return{completeAddress:await $s.create(h,r,_),constructorHash:o,functionTreeRoot:c}}var Ms=n(816).Buffer;class Us{static async new(){return new this(await xs.get())}constructor(e){this.wasm=e}generator(){return Us.generator}mul(e,t){return this.wasm.writeMemory(0,e.toBuffer()),this.wasm.writeMemory(64,t.value),this.wasm.call("ecc_grumpkin__mul",0,64,96),Dn.fromBuffer(Ms.from(this.wasm.getMemorySlice(96,160)))}batchMul(e,t){const n=Ms.concat(e.map((e=>e.toBuffer()))),r=e.length*Dn.SIZE_IN_BYTES,s=this.wasm.call("bbmalloc",2*r);this.wasm.writeMemory(s,n),this.wasm.writeMemory(0,t.value),this.wasm.call("ecc_grumpkin__batch_mul",s,0,e.length,s+r);const a=Ms.from(this.wasm.getMemorySlice(s+r,s+r+r));this.wasm.call("bbfree",s);const i=[];for(let e=0;e<r;e+=64)i.push(Dn.fromBuffer(a.slice(e,e+64)));return i}getRandomFr(){return this.wasm.call("ecc_grumpkin__get_random_scalar_mod_circuit_modulus",0),Rn.fromBuffer(Ms.from(this.wasm.getMemorySlice(0,32)))}reduce512BufferToFr(e){return this.wasm.writeMemory(0,e),this.wasm.call("ecc_grumpkin__reduce512_buffer_mod_circuit_modulus",0,64),Rn.fromBuffer(Ms.from(this.wasm.getMemorySlice(64,96)))}}function zs(e){const t=Wr.Buffer.alloc(4);return t.writeUInt32BE(e.length,0),Wr.Buffer.concat([t,...e])}Us.generator=Dn.fromBuffer(Ms.from([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,207,19,94,117,6,164,93,99,45,39,13,69,241,24,18,148,131,63,196,141,130,63,39,44]));var Hs=n(6534),js=n(816).Buffer;class Zs{constructor(e,t,n){if(this.r=e,this.s=t,this.v=n,32!=e.length)throw new Error("Invalid length of 'r' in ECDSA signature");if(32!=t.length)throw new Error("Invalid length of 's' in ECDSA signature");if(1!=n.length)throw new Error("Invalid length of '1' in ECDSA signature")}toBuffer(){return js.concat([this.r,this.s,this.v])}static fromBuffer(e){return new Zs(e.subarray(0,32),e.subarray(32,64),e.subarray(64,65))}static fromBigInts(e,t,n){return new Zs(Ln(e,32),Ln(t,32),js.from([n]))}static random(){return new Zs((0,Hs.randomBytes)(32),(0,Hs.randomBytes)(32),js.from([27]))}toString(){return`0x${this.toBuffer().toString("hex")}`}toFields(e=!1){const t=this.toBuffer(),n=js.alloc(32),r=js.alloc(32),s=js.alloc(32);return t.copy(n,1,0,31),t.copy(r,1,31,62),t.copy(s,1,62,e?65:64),Qn([n,r,s],Rn.fromBuffer)}}var Gs=n(816).Buffer;class Ws{static async new(){return new this(await xs.get())}constructor(e){this.wasm=e}computePublicKey(e){return this.wasm.writeMemory(0,e.value),this.wasm.call("ecdsa__compute_public_key",0,32),Gs.from(this.wasm.getMemorySlice(32,96))}constructSignature(e,t){const n=this.wasm.call("bbmalloc",e.length);return this.wasm.writeMemory(0,t.value),this.wasm.writeMemory(n,e),this.wasm.call("ecdsa__construct_signature",n,e.length,0,32,64,96),new Zs(Gs.from(this.wasm.getMemorySlice(32,64)),Gs.from(this.wasm.getMemorySlice(64,96)),Gs.from(this.wasm.getMemorySlice(96,97)))}recoverPublicKey(e,t){const n=this.wasm.call("bbmalloc",e.length);return this.wasm.writeMemory(0,t.r),this.wasm.writeMemory(32,t.s),this.wasm.writeMemory(64,t.v),this.wasm.writeMemory(n,e),this.wasm.call("ecdsa__recover_public_key_from_signature",n,e.length,0,32,64,65),Gs.from(this.wasm.getMemorySlice(65,129))}verifySignature(e,t,n){const r=this.wasm.call("bbmalloc",e.length);return this.wasm.writeMemory(0,t),this.wasm.writeMemory(64,n.r),this.wasm.writeMemory(96,n.s),this.wasm.writeMemory(128,n.v),this.wasm.writeMemory(r,e),!!this.wasm.call("ecdsa__verify_signature",r,e.length,0,64,96,128)}}var Qs=n(816).Buffer;class Ys{static async new(){return new this(await xs.get())}constructor(e){this.wasm=e}generator(){return Ys.generator}mul(e,t){return this.wasm.writeMemory(0,e),this.wasm.writeMemory(64,t),this.wasm.call("ecc_secp256k1__mul",0,64,96),Qs.from(this.wasm.getMemorySlice(96,160))}getRandomFr(){return this.wasm.call("ecc_secp256k1__get_random_scalar_mod_circuit_modulus",0),Qs.from(this.wasm.getMemorySlice(0,32))}reduce512BufferToFr(e){return this.wasm.writeMemory(0,e),this.wasm.call("ecc_secp256k1__reduce512_buffer_mod_circuit_modulus",0,64),Qs.from(this.wasm.getMemorySlice(64,96))}}Ys.generator=Qs.from([121,190,102,126,249,220,187,172,85,160,98,149,206,135,11,7,2,155,252,219,45,206,40,217,89,242,129,91,22,248,23,152,72,58,218,119,38,163,196,101,93,164,251,252,14,17,8,168,253,23,180,72,166,133,84,25,156,71,208,143,251,16,212,184]);var Xs=n(816).Buffer;class Vs{constructor(e){if(this.buffer=e,e.length!==Vs.SIZE)throw new Error(`Invalid signature buffer of length ${e.length}.`)}static isSignature(e){return/^(0x)?[0-9a-f]{128}$/i.test(e)}static fromString(e){if(!Vs.isSignature(e))throw new Error(`Invalid signature string: ${e}`);return new Vs(Xs.from(e.replace(/^0x/i,""),"hex"))}static random(){return new Vs(wn(64))}get s(){return this.buffer.subarray(0,32)}get e(){return this.buffer.subarray(32)}toBuffer(){return this.buffer}static fromBuffer(e){const t=Tn.asReader(e);return new Vs(t.readBytes(Vs.SIZE))}toString(){return`0x${this.buffer.toString("hex")}`}toFields(){const e=this.toBuffer(),t=Xs.alloc(32),n=Xs.alloc(32),r=Xs.alloc(32);return e.copy(t,1,0,31),e.copy(n,1,31,62),e.copy(r,1,62,64),Qn([t,n,r],Rn.fromBuffer)}}Vs.SIZE=64,Vs.EMPTY=new Vs(Xs.alloc(64));var Js=n(816).Buffer;class Ks{static async new(){return new this(await xs.get())}constructor(e){this.wasm=e}computePublicKey(e){return this.wasm.writeMemory(0,e.value),this.wasm.call("schnorr_compute_public_key",0,32),Dn.fromBuffer(Js.from(this.wasm.getMemorySlice(32,96)))}constructSignature(e,t){const n=this.wasm.call("bbmalloc",e.length+4);return this.wasm.writeMemory(0,t.value),this.wasm.writeMemory(n,Js.concat([Zn(e.length),e])),this.wasm.call("schnorr_construct_signature",n,0,32,64),new Vs(Js.from(this.wasm.getMemorySlice(32,96)))}verifySignature(e,t,n){const r=this.wasm.call("bbmalloc",e.length+4);this.wasm.writeMemory(0,t.toBuffer()),this.wasm.writeMemory(64,n.s),this.wasm.writeMemory(96,n.e),this.wasm.writeMemory(r,Js.concat([Zn(e.length),e])),this.wasm.call("schnorr_verify_signature",r,0,64,96,128);const s=this.wasm.getMemorySlice(128,129);return!Js.alloc(1,0).equals(s)}}var qs=n(816).Buffer;class $s{constructor(e,t,n){this.address=e,this.publicKey=t,this.partialAddress=n}static async create(e,t,n){const r=Jr(await xs.get(),t,n);if(!r.equals(e))throw new Error(`Address cannot be derived from pubkey and partial address (received ${e.toString()}, derived ${r.toString()})`);return new $s(e,t,n)}static async random(){const e=Rn.random(),t=Dn.random(),n=Jr(await xs.get(),t,e);return new $s(n,t,e)}static async fromPrivateKeyAndPartialAddress(e,t){const n=await xs.get(),r=new Us(n).mul(Us.generator,e),s=Jr(n,r,t);return new $s(s,r,t)}toReadableString(){return`Address: ${this.address.toString()}, Public Key: ${this.publicKey.toString()}, Partial Address: ${this.partialAddress.toString()}`}equals(e){return this.address.equals(e.address)&&this.publicKey.equals(e.publicKey)&&this.partialAddress.equals(e.partialAddress)}toBuffer(){return qs.concat([this.address.toBuffer(),this.publicKey.toBuffer(),this.partialAddress.toBuffer()])}static fromBuffer(e){const t=Tn.asReader(e);return new this(t.readObject(Er),t.readObject(Dn),t.readObject(Rn))}static fromString(e){return this.fromBuffer(qs.from(e.replace(/^0x/i,""),"hex"))}toString(){return`0x${this.toBuffer().toString("hex")}`}}var ea=n(816).Buffer;class ta{constructor(e){if(this.value=e,32!=e.length)throw new Error(`Invalid private key length. Got ${e.length}, expected 32.`)}toString(){return this.value.toString("hex")}static fromString(e){if(e.startsWith("0x")&&(e=e.slice(2)),64!=e.length)throw new Error(`Invalid private key string length. Got ${e.length}, expected 64.`);return new ta(ea.from(e,"hex"))}static random(){return new ta(wn(32))}}function na(e){return new Promise((t=>setTimeout(t,e)))}class ra{constructor(){this.start=(new Date).getTime()}ms(){return(new Date).getTime()-this.start}s(){return((new Date).getTime()-this.start)/1e3}}class sa extends Error{}async function aa(e,t="",n=0,r=1){const s=new ra;for(;;){const a=await e();if(a)return a;if(await na(1e3*r),n&&s.s()>n)throw new Error(t?`Timeout awaiting ${t}`:"Timeout")}}var ia=n(816).Buffer;class oa{constructor(e,t,n){this.functionSelector=e,this.isInternal=t,this.bytecode=n}toBuffer(){const e=ia.concat([Gn(this.bytecode.length),this.bytecode]);return Kn(this.functionSelector,this.isInternal,e)}static fromBuffer(e){const t=Tn.asReader(e),n=t.readBytes(4),r=t.readBoolean();return new oa(n,r,t.readBuffer())}static random(){return new oa(wn(4),!1,wn(64))}}class la{constructor(e,t){if(this.contractData=e,this.publicFunctions=t,!t.length)throw Error("No public functions provided for ContractDataAndBytecode.");this.bytecode=function(e){const t=jn.alloc(4);return t.writeUInt32BE(e.length,0),jn.concat([t,...e])}(t.map((e=>e.toBuffer())))}getPublicFunction(e){return this.publicFunctions.find((t=>t.functionSelector.equals(e)))}toBuffer(){return Kn(this.contractData.toBuffer(),this.bytecode)}toString(){return this.toBuffer().toString("hex")}static fromBuffer(e){const t=Tn.asReader(e),n=t.readObject(ca),r=t.readVector(oa);return new la(n,r)}static fromString(e){return la.fromBuffer(ia.from(e,"hex"))}static random(){return new la(ca.random(),[oa.random(),oa.random()])}}class ca{constructor(e,t){this.contractAddress=e,this.portalContractAddress=t}toBuffer(){return Kn(this.contractAddress,this.portalContractAddress.toBuffer20())}toString(){return this.toBuffer().toString("hex")}static fromBuffer(e){const t=Tn.asReader(e),n=Er.fromBuffer(t),r=new Lr(t.readBytes(Lr.SIZE_IN_BYTES));return new ca(n,r)}static fromString(e){return ca.fromBuffer(ia.from(e,"hex"))}static random(){return new ca(Er.random(),Lr.random())}}function ua(){return{to:Er.ZERO,functionData:Tr.empty(),args:[]}}function fa(e=1,t=void 0){return new qn(_a(e),_a(e+1),_a(void 0!==t?t:e+2),_a(e+3))}function da(e=1){return new fr(_a(e),e)}function _a(e){return new Rn(BigInt(e))}n(816).Buffer,n(816).Buffer;var ha=n(8517),pa=n(816).Buffer;class ga{constructor(e){this.logs=e}toBuffer(){const e=this.logs.map((e=>Wn(e)));return Wn(pa.concat(e))}getSerializedLength(){return this.logs.reduce(((e,t)=>e+t.length+4),0)+4}hash(){const e=this.toBuffer().subarray(4);return xn(e)}static fromBuffer(e,t=!0){const n=new Tn(e,0),r=t?n.readNumber():-1,s=n.readBufferArray(r);return new ga(s)}static random(e){const t=[];for(let n=0;n<e;n++){const e=Dn.random(),n=(0,ha.randomBytes)(144-Dn.SIZE_IN_BYTES);t.push(pa.concat([n,e.toBuffer()]))}return new ga(t)}static empty(){return new ga([])}toJSON(){return{logs:this.logs.map((e=>e.toString("hex")))}}static fromJSON(e){const t=e.logs.map((e=>pa.from(e,"hex")));return new ga(t)}}var ba=n(816).Buffer;class ma{constructor(e){this.functionLogs=e}toBuffer(){const e=this.functionLogs.map((e=>e.toBuffer()));return Wn(ba.concat(e))}getSerializedLength(){return this.functionLogs.reduce(((e,t)=>e+t.getSerializedLength()),0)+4}addFunctionLogs(e){this.functionLogs.push(...e)}static fromBuffer(e,t=!0){const n=Tn.asReader(e),r=t?n.readNumber():-1,s=n.readBufferArray(r).map((e=>ga.fromBuffer(e,!1)));return new ma(s)}static random(e,t){const n=[];for(let r=0;r<e;r++)n.push(ga.random(t));return new ma(n)}toJSON(){return{functionLogs:this.functionLogs.map((e=>e.toJSON()))}}static fromJSON(e){const t=e.functionLogs.map((e=>ga.fromJSON(e)));return new ma(t)}}var ya=n(816).Buffer;class wa{constructor(e){this.txLogs=e}toBuffer(){const e=this.txLogs.map((e=>e.toBuffer()));return Wn(ya.concat(e))}getSerializedLength(){return this.txLogs.reduce(((e,t)=>e+t.getSerializedLength()),0)+4}static fromBuffer(e){const t=Tn.asReader(e),n=t.readNumber(),r=t.readBufferArray(n).map((e=>ma.fromBuffer(e,!1)));return new wa(r)}static random(e,t,n){const r=[];for(let s=0;s<e;s++)r.push(ma.random(t,n));return new wa(r)}static unrollLogs(e){const t=[];for(const n of e)for(const e of n.txLogs)for(const n of e.functionLogs)t.push(...n.logs);return t}toJSON(){return{txLogs:this.txLogs.map((e=>e.toJSON()))}}static fromJSON(e){const t=e.txLogs.map((e=>ma.fromJSON(e)));return new wa(t)}}var va=n(816).Buffer;class Ea{constructor(e,t,n,r,s,a,i,o=fr.empty(),l,c,u,f,d,_,h,p,g,b,m,y,w=[],v,E){if(this.number=e,this.globalVariables=t,this.startPrivateDataTreeSnapshot=n,this.startNullifierTreeSnapshot=r,this.startContractTreeSnapshot=s,this.startPublicDataTreeRoot=a,this.startL1ToL2MessageTreeSnapshot=i,this.startHistoricBlocksTreeSnapshot=o,this.endPrivateDataTreeSnapshot=l,this.endNullifierTreeSnapshot=c,this.endContractTreeSnapshot=u,this.endPublicDataTreeRoot=f,this.endL1ToL2MessageTreeSnapshot=d,this.endHistoricBlocksTreeSnapshot=_,this.newCommitments=h,this.newNullifiers=p,this.newPublicDataWrites=g,this.newL2ToL1Msgs=b,this.newContracts=m,this.newContractData=y,this.newL1ToL2Messages=w,h.length%$n!=0)throw new Error("The number of new commitments must be a multiple of 16.");v&&this.attachLogs(v,Aa.ENCRYPTED),E&&this.attachLogs(E,Aa.UNENCRYPTED)}static random(e,t=4,n=2,r=3,s=2,a=1){const i=br(er*t,Rn.random),o=br($n*t,Rn.random),l=br(1*t,Rn.random),c=br(1*t,ca.random),u=br(tr*t,Oa.random),f=br(16,Rn.random),d=br(2,Rn.random),_=wa.random(t,n,s),h=wa.random(t,r,a);return Ea.fromFields({number:e,globalVariables:fa(0,e),startPrivateDataTreeSnapshot:da(0),startNullifierTreeSnapshot:da(0),startContractTreeSnapshot:da(0),startPublicDataTreeRoot:Rn.random(),startL1ToL2MessageTreeSnapshot:da(0),startHistoricBlocksTreeSnapshot:da(0),endPrivateDataTreeSnapshot:da(o.length),endNullifierTreeSnapshot:da(i.length),endContractTreeSnapshot:da(l.length),endPublicDataTreeRoot:Rn.random(),endL1ToL2MessageTreeSnapshot:da(1),endHistoricBlocksTreeSnapshot:da(1),newCommitments:o,newNullifiers:i,newContracts:l,newContractData:c,newPublicDataWrites:u,newL1ToL2Messages:f,newL2ToL1Msgs:d,newEncryptedLogs:_,newUnencryptedLogs:h})}static fromFields(e){return new this(e.number,e.globalVariables,e.startPrivateDataTreeSnapshot,e.startNullifierTreeSnapshot,e.startContractTreeSnapshot,e.startPublicDataTreeRoot,e.startL1ToL2MessageTreeSnapshot,e.startHistoricBlocksTreeSnapshot,e.endPrivateDataTreeSnapshot,e.endNullifierTreeSnapshot,e.endContractTreeSnapshot,e.endPublicDataTreeRoot,e.endL1ToL2MessageTreeSnapshot,e.endHistoricBlocksTreeSnapshot,e.newCommitments,e.newNullifiers,e.newPublicDataWrites,e.newL2ToL1Msgs,e.newContracts,e.newContractData,e.newL1ToL2Messages,e.newEncryptedLogs,e.newUnencryptedLogs)}encode(){if(void 0===this.newEncryptedLogs||void 0===this.newUnencryptedLogs)throw new Error("newEncryptedLogs and newUnencryptedLogs must be defined when encoding L2BlockData");return Kn(this.globalVariables,this.startPrivateDataTreeSnapshot,this.startNullifierTreeSnapshot,this.startContractTreeSnapshot,this.startPublicDataTreeRoot,this.startL1ToL2MessageTreeSnapshot,this.startHistoricBlocksTreeSnapshot,this.endPrivateDataTreeSnapshot,this.endNullifierTreeSnapshot,this.endContractTreeSnapshot,this.endPublicDataTreeRoot,this.endL1ToL2MessageTreeSnapshot,this.endHistoricBlocksTreeSnapshot,this.newCommitments.length,this.newCommitments,this.newNullifiers.length,this.newNullifiers,this.newPublicDataWrites.length,this.newPublicDataWrites,this.newL2ToL1Msgs.length,this.newL2ToL1Msgs,this.newContracts.length,this.newContracts,this.newContractData,this.newL1ToL2Messages.length,this.newL1ToL2Messages,this.newEncryptedLogs,this.newUnencryptedLogs)}toBuffer(){return this.encode()}static decode(e){const t=Tn.asReader(e),n=t.readObject(qn),r=Number(n.blockNumber.value),s=t.readObject(fr),a=t.readObject(fr),i=t.readObject(fr),o=t.readObject(Rn),l=t.readObject(fr),c=t.readObject(fr),u=t.readObject(fr),f=t.readObject(fr),d=t.readObject(fr),_=t.readObject(Rn),h=t.readObject(fr),p=t.readObject(fr),g=t.readVector(Rn),b=t.readVector(Rn),m=t.readVector(Oa),y=t.readVector(Rn),w=t.readVector(Rn),v=t.readArray(w.length,ca),E=t.readVector(Rn),A=t.readObject(wa),L=t.readObject(wa);return Ea.fromFields({number:r,globalVariables:n,startPrivateDataTreeSnapshot:s,startNullifierTreeSnapshot:a,startContractTreeSnapshot:i,startPublicDataTreeRoot:o,startL1ToL2MessageTreeSnapshot:l,startHistoricBlocksTreeSnapshot:c,endPrivateDataTreeSnapshot:u,endNullifierTreeSnapshot:f,endContractTreeSnapshot:d,endPublicDataTreeRoot:_,endL1ToL2MessageTreeSnapshot:h,endHistoricBlocksTreeSnapshot:p,newCommitments:g,newNullifiers:b,newPublicDataWrites:m,newL2ToL1Msgs:y,newContracts:w,newContractData:v,newL1ToL2Messages:E,newEncryptedLogs:A,newUnencryptedLogs:L})}attachLogs(e,t){const n=t===Aa.ENCRYPTED?"newEncryptedLogs":"newUnencryptedLogs";if(this[n]){if(this[n]===e)return void Ea.logger(`${n} logs already attached`);throw new Error(`Trying to attach different ${n} logs to block ${this.number}.`)}Ea.logger(`Attaching ${n} logs`);const r=this.newCommitments.length/$n;if(r!==e.txLogs.length)throw new Error(`Number of txLogs within ${n} does not match number of transactions. Expected: ${r} Got: ${e.txLogs.length}`);this[n]=e}getPublicInputsHash(){return e=Kn(this.globalVariables,this.startPrivateDataTreeSnapshot,this.startNullifierTreeSnapshot,this.startContractTreeSnapshot,this.startPublicDataTreeRoot,this.startL1ToL2MessageTreeSnapshot,this.startHistoricBlocksTreeSnapshot,this.endPrivateDataTreeSnapshot,this.endNullifierTreeSnapshot,this.endContractTreeSnapshot,this.endPublicDataTreeRoot,this.endL1ToL2MessageTreeSnapshot,this.endHistoricBlocksTreeSnapshot,this.getCalldataHash(),this.getL1ToL2MessagesHash()),Rn.fromBuffer(Ln(An(xn(e))%Rn.MODULUS,32));var e}getStartStateHash(){const e=Kn(new Rn(this.number-1),this.startPrivateDataTreeSnapshot,this.startNullifierTreeSnapshot,this.startContractTreeSnapshot,this.startPublicDataTreeRoot,this.startL1ToL2MessageTreeSnapshot,this.startHistoricBlocksTreeSnapshot);return xn(e)}getEndStateHash(){const e=Kn(this.globalVariables.blockNumber,this.endPrivateDataTreeSnapshot,this.endNullifierTreeSnapshot,this.endContractTreeSnapshot,this.endPublicDataTreeRoot,this.endL1ToL2MessageTreeSnapshot,this.endHistoricBlocksTreeSnapshot);return xn(e)}getCalldataHash(){if(void 0===this.newEncryptedLogs)throw new Error('Encrypted logs has to be attached before calling "getCalldataHash"');if(void 0===this.newUnencryptedLogs)throw new Error('Unencrypted logs has to be attached before calling "getCalldataHash"');const e=this.newCommitments.length/32,t=[];for(let n=0;n<e;n++){const e=32,r=32,s=32,a=4,i=va.concat(this.newCommitments.slice(n*e,(n+1)*e).map((e=>e.toBuffer()))),o=va.concat(this.newNullifiers.slice(n*r,(n+1)*r).map((e=>e.toBuffer()))),l=va.concat(this.newPublicDataWrites.slice(n*s,(n+1)*s).map((e=>e.toBuffer()))),c=va.concat(this.newL2ToL1Msgs.slice(n*a,(n+1)*a).map((e=>e.toBuffer()))),u=Ea.computeKernelLogsHash(this.newEncryptedLogs.txLogs[2*n]),f=Ea.computeKernelLogsHash(this.newEncryptedLogs.txLogs[2*n+1]),d=Ea.computeKernelLogsHash(this.newUnencryptedLogs.txLogs[2*n]),_=Ea.computeKernelLogsHash(this.newUnencryptedLogs.txLogs[2*n+1]),h=va.concat([i,o,l,c,this.newContracts[2*n].toBuffer(),this.newContracts[2*n+1].toBuffer(),this.newContractData[2*n].contractAddress.toBuffer(),this.newContractData[2*n].portalContractAddress.toBuffer32(),this.newContractData[2*n+1].contractAddress.toBuffer(),this.newContractData[2*n+1].portalContractAddress.toBuffer32(),u,f,d,_]);t.push(xn(h))}return(e=>{const t=[e];let n=0;for(;t[n].length>1;){const e=[],r=t[n].length;for(let s=0;s<r;s+=2){const r=t[n][s],a=t[n][s+1];e.push(xn(va.concat([r,a])))}t.push(e),n++}return t[t.length-1][0]})(t)}getL1ToL2MessagesHash(){const e=va.concat(this.newL1ToL2Messages.map((e=>e.toBuffer())));return xn(e)}getTx(e){const t=Math.floor(this.newCommitments.length/$n);if(e>=t)throw new Error(`Failed to get tx ${e}. Block ${this.globalVariables.blockNumber} only has ${t} txs.`);const n=this.newCommitments.slice($n*e,$n*(e+1)),r=this.newNullifiers.slice(er*e,er*(e+1)),s=this.newPublicDataWrites.slice(tr*e,tr*(e+1)),a=this.newL2ToL1Msgs.slice(2*e,2*(e+1)),i=this.newContracts.slice(1*e,1*(e+1)),o=this.newContractData.slice(1*e,1*(e+1));return new Ta(n,r,s,a,i,o)}inspect(e=4){const t=t=>`0x${t.toBuffer().subarray(0,e).toString("hex")}`,n=(e,t)=>"["+e.map(t).join(", ")+"]",r=e=>`(${e.nextAvailableLeafIndex}, ${t(e.root)})`,s=e=>n(e,t),a=e=>n(e,(e=>`(${t(e.leafIndex)}, ${t(e.newValue)})`));return["L2Block",`number: ${this.number}`,"globalVariables: "+(o=this.globalVariables,`(${o.chainId}, ${o.version}, ${o.blockNumber}, ${o.timestamp}))`),`startPrivateDataTreeSnapshot: ${r(this.startPrivateDataTreeSnapshot)}`,`startNullifierTreeSnapshot: ${r(this.startNullifierTreeSnapshot)}`,`startContractTreeSnapshot: ${r(this.startContractTreeSnapshot)}`,`startPublicDataTreeRoot: ${this.startPublicDataTreeRoot.toString()}`,`startL1ToL2MessageTreeSnapshot: ${r(this.startL1ToL2MessageTreeSnapshot)}`,`startHistoricBlocksTreeSnapshot: ${r(this.startHistoricBlocksTreeSnapshot)}`,`endPrivateDataTreeSnapshot: ${r(this.endPrivateDataTreeSnapshot)}`,`endNullifierTreeSnapshot: ${r(this.endNullifierTreeSnapshot)}`,`endContractTreeSnapshot: ${r(this.endContractTreeSnapshot)}`,`endPublicDataTreeRoot: ${this.endPublicDataTreeRoot.toString()}`,`endPublicDataTreeRoot: ${this.endPublicDataTreeRoot.toString()}`,`endL1ToL2MessageTreeSnapshot: ${r(this.endL1ToL2MessageTreeSnapshot)}`,`endHistoricBlocksTreeSnapshot: ${r(this.endHistoricBlocksTreeSnapshot)}`,`newCommitments: ${s(this.newCommitments)}`,`newNullifiers: ${s(this.newNullifiers)}`,`newPublicDataWrite: ${a(this.newPublicDataWrites)}`,`newL2ToL1Msgs: ${s(this.newL2ToL1Msgs)}`,`newContracts: ${s(this.newContracts)}`,`newContractData: ${i=this.newContractData,n(i,(e=>`(${t(e.contractAddress)}, ${t(e.portalContractAddress)})`))}`,`newPublicDataWrite: ${a(this.newPublicDataWrites)}`,`newL1ToL2Messages: ${s(this.newL1ToL2Messages)}`].join("\n");var i,o}static computeKernelLogsHash(e){const t=[va.alloc(32),va.alloc(32)];let n=va.alloc(32);for(const r of e.functionLogs)t[0]=n,t[1]=r.hash(),n=xn(va.concat(t));return n}}Ea.logger=ds("aztec:l2_block"),ds("aztec:l2_block_downloader");var Aa,La,Ca=n(816).Buffer;class Sa{constructor(e){this.buffer=e,cr(this,"buffer",Sa.SIZE)}equals(e){return this.buffer.equals(e.buffer)}isZero(){return this.buffer.equals(Ca.alloc(32,0))}toString(){return this.buffer.toString("hex")}toBigInt(){return function(e,t=0,n=32){return{elem:An(e.subarray(t,t+n)),adv:n}}(this.buffer,0,Sa.SIZE).elem}static fromBigInt(e){return new Sa(function(e,t=32){return Ln(e,t)}(e,Sa.SIZE))}static fromBuffer28(e){if(28!=e.length)throw new Error("Expected TxHash input buffer to be 28 bytes");const t=Ca.concat([Ca.alloc(this.SIZE-28),e]);return new Sa(t)}static fromString(e){return new Sa(Ca.from(e,"hex"))}}Sa.SIZE=32,Sa.ZERO=new Sa(Ca.alloc(Sa.SIZE));class Ta{constructor(e,t,n,r,s,a){this.newCommitments=e,this.newNullifiers=t,this.newPublicDataWrites=n,this.newL2ToL1Msgs=r,this.newContracts=s,this.newContractData=a,this.txHash=new Sa(this.newNullifiers[0].toBuffer())}}!function(e){e[e.ENCRYPTED=0]="ENCRYPTED",e[e.UNENCRYPTED=1]="UNENCRYPTED"}(Aa||(Aa={})),n(1240),n(816).Buffer,function(e){e[e.CONTRACT_TREE=0]="CONTRACT_TREE",e[e.NULLIFIER_TREE=1]="NULLIFIER_TREE",e[e.PRIVATE_DATA_TREE=2]="PRIVATE_DATA_TREE",e[e.PUBLIC_DATA_TREE=3]="PUBLIC_DATA_TREE",e[e.L1_TO_L2_MESSAGES_TREE=4]="L1_TO_L2_MESSAGES_TREE",e[e.BLOCKS_TREE=5]="BLOCKS_TREE"}(La||(La={}));var Pa=n(816).Buffer;class Ra{constructor(e,t,n,r,s,a){if(this.data=e,this.proof=t,this.encryptedLogs=n,this.unencryptedLogs=r,this.newContractPublicFunctions=s,this.enqueuedPublicFunctionCalls=a,this.unencryptedLogs.functionLogs.length<this.encryptedLogs.functionLogs.length)throw new Error(`Number of function logs in unencrypted logs (${this.unencryptedLogs.functionLogs.length}) has to be equal\n or larger than number function logs in encrypted logs (${this.encryptedLogs.functionLogs.length})`);const i=e?.end.publicCallStack&&(o=e.end.publicCallStack,l=e=>e.isZero(),o.reduce(((e,t)=>l(t)?e:e+1),0));var o,l;if(i&&i>(a?.length??0))throw new Error(`Missing preimages for enqueued public function calls in kernel circuit public inputs (expected\n ${i}, got ${a?.length})`)}static fromBuffer(e){const t=Tn.asReader(e);return new Ra(t.readObject(Ur),t.readObject(Mr),t.readObject(ma),t.readObject(ma),t.readArray(t.readNumber(),oa),t.readArray(8,ss))}toBuffer(){return Kn([this.data,this.proof,this.encryptedLogs,this.unencryptedLogs,Zn(this.newContractPublicFunctions.length),this.newContractPublicFunctions,this.enqueuedPublicFunctionCalls])}toJSON(){return{data:this.data.toBuffer().toString("hex"),encryptedLogs:this.encryptedLogs.toBuffer().toString("hex"),unencryptedLogs:this.unencryptedLogs.toBuffer().toString("hex"),proof:this.proof.toBuffer().toString("hex"),newContractPublicFunctions:this.newContractPublicFunctions.map((e=>e.toBuffer().toString("hex")))??[],enqueuedPublicFunctions:this.enqueuedPublicFunctionCalls.map((e=>e.toBuffer().toString("hex")))??[]}}static fromJSON(e){const t=Ur.fromBuffer(Pa.from(e.data,"hex")),n=ma.fromBuffer(Pa.from(e.encryptedLogs,"hex")),r=ma.fromBuffer(Pa.from(e.unencryptedLogs,"hex")),s=Pa.from(e.proof,"hex"),a=e.newContractPublicFunctions?e.newContractPublicFunctions.map((e=>oa.fromBuffer(Pa.from(e,"hex")))):[],i=e.enqueuedPublicFunctions?e.enqueuedPublicFunctions.map((e=>ss.fromBuffer(Pa.from(e,"hex")))):[];return new Ra(t,Mr.fromBuffer(s),n,r,a,i)}getTxHash(){const e=this.data?.end.newNullifiers[0];if(!e)throw new Error("Cannot get tx hash since first nullifier is missing");return Promise.resolve(new Sa(e.toBuffer()))}static async getHashes(e){return await Promise.all(e.map((e=>e.getTxHash())))}static clone(e){const t=Ur.fromBuffer(e.data.toBuffer()),n=Mr.fromBuffer(e.proof.toBuffer()),r=ma.fromBuffer(e.encryptedLogs.toBuffer()),s=ma.fromBuffer(e.unencryptedLogs.toBuffer()),a=e.newContractPublicFunctions.map((e=>oa.fromBuffer(e.toBuffer()))),i=e.enqueuedPublicFunctionCalls.map((e=>ss.fromBuffer(e.toBuffer())));return new Ra(t,n,r,s,a,i)}}class Ia{constructor(e,t,n){this.tx=e,this.partialAddress=t,this.contractAddress=n}toJSON(){return{tx:this.tx.toJSON(),partialAddress:this.partialAddress.toBuffer().toString(),contractAddress:this.contractAddress.toBuffer().toString()}}static fromJSON(e){return new Ia(Ra.fromJSON(e.tx),Rn.fromBuffer(Pa.from(e.partialAddress,"hex")),Er.fromBuffer(Pa.from(e.contractAddress,"hex")))}}var Na,xa=n(816).Buffer;!function(e){e.DROPPED="dropped",e.MINED="mined",e.PENDING="pending"}(Na||(Na={}));class ka{constructor(e,t,n,r,s,a,i){this.txHash=e,this.status=t,this.error=n,this.blockHash=r,this.blockNumber=s,this.origin=a,this.contractAddress=i}toJSON(){return{txHash:this.txHash.toString(),status:this.status.toString(),error:this.error,blockHash:this.blockHash?.toString("hex"),blockNumber:this.blockNumber,origin:this.origin?.toString(),contractAddress:this.contractAddress?.toString()}}static fromJSON(e){const t=Sa.fromString(e.txHash),n=e.status,r=e.error,s=e.blockHash?xa.from(e.blockHash,"hex"):void 0,a=e.blockNumber?Number(e.blockNumber):void 0,i=e.origin?Er.fromString(e.origin):void 0,o=e.contractAddress?Er.fromString(e.contractAddress):void 0;return new ka(t,n,r,s,a,i,o)}}n(816).Buffer;class Oa{constructor(e,t){this.leafIndex=e,this.newValue=t}static from(e){return new Oa(e.leafIndex,e.newValue)}toBuffer(){return Kn(this.leafIndex,this.newValue)}isEmpty(){return this.leafIndex.isZero()&&this.newValue.isZero()}static fromBuffer(e){const t=Tn.asReader(e);return new Oa(t.readFr(),t.readFr())}static empty(){return new Oa(Rn.ZERO,Rn.ZERO)}static random(){return new Oa(Rn.random(),Rn.random())}}class Ba{constructor(e,t){this.args=e,this.hash=t}static getFields(e){return[e.args,e.hash]}static from(e){return new Ba(...Ba.getFields(e))}static async fromArgs(e,t){return new Ba(e,await $r(t??await xs.get(),e))}toBuffer(){return Kn(new mr(this.args),this.hash)}static fromBuffer(e){const t=Tn.asReader(e);return new Ba(t.readVector(Rn),t.readFr())}}var Da=n(816).Buffer;class Fa{constructor(e,t,n,r,s){this.origin=e,this.functionData=t,this.argsHash=n,this.txContext=r,this.packedArguments=s}toTxRequest(){return new ts(this.origin,this.functionData,this.argsHash,this.txContext)}static getFields(e){return[e.origin,e.functionData,e.argsHash,e.txContext,e.packedArguments]}static from(e){return new Fa(...Fa.getFields(e))}toBuffer(){return Kn(this.origin,this.functionData,this.argsHash,this.txContext,new mr(this.packedArguments))}toString(){return this.toBuffer().toString("hex")}static fromBuffer(e){const t=Tn.asReader(e);return new Fa(t.readObject(Er),t.readObject(Tr),t.readFr(),t.readObject(Br),t.readVector(Ba))}static fromString(e){return Fa.fromBuffer(Da.from(e,"hex"))}}n(816).Buffer;var Ma=n(9467),Ua=n.n(Ma);class za{constructor(e,t){this.arc=e,this.txHashPromise=t}async getTxHash(){return await this.txHashPromise}async getReceipt(){const e=await this.getTxHash();return await this.arc.getTxReceipt(e)}async wait(e){const t=await this.waitForReceipt(e);if(t.status!==Na.MINED)throw new Error(`Transaction ${await this.getTxHash()} was ${t.status}`);return t}async isMined(e){return(await this.waitForReceipt(e)).status===Na.MINED}async waitForReceipt(e){const t=await this.getTxHash();return await aa((async()=>{const n=await this.arc.getTxReceipt(t);if(n.status===Na.PENDING)return;if(n.status===Na.DROPPED)return n;if(!(e?.waitForNotesSync??true))return n;const{blocks:r,notes:s}=await this.arc.getSyncStatus(),a=n.blockNumber;return r>=a&&Ua()(s,(e=>e>=a))?n:void 0}),"isMined",e?.timeout??60,e?.interval??1)}}class Ha{constructor(e){this.rpc=e}async simulate(e={}){const t=this.txRequest??await this.create(e);return this.tx=await this.rpc.simulateTx(t),this.tx}send(e={}){const t=(async()=>{const t=this.tx??await this.simulate(e);return this.rpc.sendTx(t)})();return new za(this.rpc,t)}}class ja extends Ha{constructor(e,t,n,r){if(super(e),this.wallet=e,this.contractAddress=t,this.functionDao=n,this.args=r,r.some((e=>null==e)))throw new Error("All function interaction arguments must be defined and not null. Received: "+r)}async create(e={}){if(this.functionDao.functionType===fn.UNCONSTRAINED)throw new Error("Can't call `create` on an unconstrained function.");return this.txRequest||(this.txRequest=await this.wallet.createTxExecutionRequest([this.request()],e)),this.txRequest}request(){return{args:Hn(this.functionDao,this.args),functionData:Tr.fromAbi(this.functionDao),to:this.contractAddress}}view(e={}){if(this.functionDao.functionType!==fn.UNCONSTRAINED)throw new Error("Can only call `view` on an unconstrained function.");const{from:t}=e;return this.wallet.viewTx(this.functionDao.name,this.args,this.contractAddress,t)}}class Za{constructor(e,t,n){this.address=e,this.abi=t,this.wallet=n,this.methods={},t.functions.forEach((e=>{this.methods[e.name]=Object.assign(((...t)=>new ja(this.wallet,this.address,e,t)),{get selector(){return On(e.name,e.parameters)}})}))}attach(e,t=[]){const n={abi:this.abi,address:this.address,portalContract:e};return this.wallet.addContracts([n,...t])}}class Ga extends Za{static async at(e,t,n){if(!await ui(n,e))throw new Error("Contract "+e.toString()+" is not deployed");return new Ga(e,t,n)}}class Wa extends Ha{constructor(e,t){super(e),this.wallet=e,this.calls=t}async create(e){return this.txRequest||(this.txRequest=await this.wallet.createTxExecutionRequest(this.calls,e)),this.txRequest}}class Qa extends za{constructor(e,t,n){super(t,n),this.abi=e}async deployed(e){return(await this.wait(e)).contract}async wait(e){const t=await super.wait(e),n=await this.getContractInstance(e?.wallet,t.contractAddress);return{...t,contract:n}}getContractInstance(e,t){const n=e??(!!this.arc.createTxExecutionRequest&&this.arc);if(!n)throw new Error("A wallet is required for creating a contract instance");if(!t)throw new Error("Contract address is missing from transaction receipt");return Ga.at(t,this.abi,n)}}class Ya extends Ha{constructor(e,t,n,r=[]){super(t),this.publicKey=e,this.arc=t,this.abi=n,this.args=r,this.partialAddress=void 0,this.completeContractAddress=void 0;const s=n.functions.find((e=>"constructor"===e.name));if(!s)throw new Error("Cannot find constructor in the ABI.");this.constructorAbi=s}async create(e={}){const t=e.portalContract??Lr.ZERO,n=e.contractAddressSalt??Rn.random(),{chainId:r,version:s}=await this.rpc.getNodeInfo(),{completeAddress:a,constructorHash:i,functionTreeRoot:o}=await Fs(this.abi,this.args,n,this.publicKey),l=new Or(this.publicKey,i,o,n,t),c=new Br(!1,!1,!0,l,new Rn(r),new Rn(s)),u={args:Hn(this.constructorAbi,this.args),functionData:Tr.fromAbi(this.constructorAbi),to:a.address},f=await Ba.fromArgs(u.args),d=Fa.from({origin:u.to,functionData:u.functionData,argsHash:f.hash,txContext:c,packedArguments:[f]});return this.txRequest=d,this.partialAddress=a.partialAddress,this.completeContractAddress=a.address,await this.rpc.addContracts([{abi:this.abi,address:a.address,portalContract:t}]),this.txRequest}send(e={}){const t=super.send(e).getTxHash();return new Qa(this.abi,this.arc,t)}simulate(e){return super.simulate(e)}}class Xa{constructor(e,t,n){this.abi=e,this.arc=t,this.publicKey=n}deploy(...e){return new Ya(this.publicKey??Dn.ZERO,this.arc,this.abi,e)}}async function Va(e){return function(e,t){e.call("pedersen__init");const n=Yr(e,"abis__compute_message_secret_hash",t,32);return Rn.fromBuffer(n)}(await xs.get(),e)}var Ja=n(107),Ka=n.n(Ja);const qa=JSON.parse('{"name":"SchnorrSingleKeyAccount","functions":[{"name":"constructor","functionType":"secret","isInternal":false,"parameters":[],"returnTypes":[],"bytecode":"H4sIAAAAAAAA/9Xc12/aUBzFcUKTdO/svfewsQ02XWm6994roYHu3f7/5SggRXnN4eF7JQv8Yp2PAPuO3+VfLper5LZbW/3I14/2xvvmeceu887G+52teb7WeI2CYhxXS4VqGIWbQSGrpEkQJ5ViGqZhkiZbhTSKqmmclrJKVgqyMI6qYS3Jolqw3Xp2XCvYY2tlzl5Izj5Izn5IzgFIzkFIziFIzmFIzhFIzlFIzjFIznFIzglIzklIzilIzmlIzhlIzllIzjlIznlIzgVIzkVIziVIzmVIzhVIzlVIzgCSM4TkLEByRpCcMSRnAslZhOQsQXKmkJwZJGe5RTnzu3IGe2thm9F8BmLOG81nIeZ9RvM5iLndaD4PMXcYzRcg5k6jeQ1i7jGaL0LMvUbzOsTcZzRfgpj7jebLEPOA0XwFYh40mq9CzENG8zWIedhovg4xjxjNNyDmUaP5JsQ8ZjTfgpjHjebbEPOE0XwHYp40mu9CzFNG8z2Iedpovg8xzxjNDyDmWaP5IcQ8ZzQ/gpjnjebHEPOC0fwEYl40mp9CzEtG8zOIedlofg4xrxjNLyDmVaP5JcQcGM2vIObQaH4NMReM5jcQc2Q0v4WYY6P5HcScGM0bEHPRaN6EmEtGcwViTo3m9xBzZjRvQcxlo7kKMe83mmsQ8wGj+QPEfNBo/ggxHzKaP0HMh43mzxDzEaP5C8R81Gj+CjEfM5q/QczHjebvEPMJo/kHxHzSaP4JMZ8ymn9BzKeN5t8Qc5fR/Adi7jaa/7bA3N14bf5fn/ZGaa+Q9s5oL4nGhRonadygfrT6lepnqd+h57CeS7pP676l37G+112N65Yb19ZeOO0N014p7R1q7qXRXov1+qFafNWmq1Zbtcuq5VVtq2o9VfuoWkDVxqlWTLVTqiVSbY1qTVR7oVoErc1rrVprt1rL1Nqe1rq09qO1EK0NaK5cc8eaS92oH5pr09yT5mI0N6GxusauGstpbKO+vvq+6guqb6S+gp6depbo3qp7jX57+i7qs/kPVgMtpSBRAAA=","verificationKey":"0000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f"},{"name":"entrypoint","functionType":"secret","isInternal":false,"parameters":[{"name":"payload","type":{"kind":"struct","name":"EntrypointPayload","fields":[{"name":"flattened_args_hashes","type":{"kind":"array","length":4,"type":{"kind":"field"}}},{"name":"flattened_selectors","type":{"kind":"array","length":4,"type":{"kind":"field"}}},{"name":"flattened_targets","type":{"kind":"array","length":4,"type":{"kind":"field"}}},{"name":"nonce","type":{"kind":"field"}}]},"visibility":"public"},{"name":"owner","type":{"kind":"array","length":64,"type":{"kind":"integer","sign":"unsigned","width":8}},"visibility":"public"},{"name":"signature","type":{"kind":"array","length":64,"type":{"kind":"integer","sign":"unsigned","width":8}},"visibility":"public"},{"name":"partial_address","type":{"kind":"field"},"visibility":"public"}],"returnTypes":[],"bytecode":"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","verificationKey":"0000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f"}],"debug":{"debugSymbols":["eJyrVsrJT04syczPK1ayqq6tBQAz9wY7","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"],"fileMap":{"0":{"source":"// Account contract that uses Schnorr signatures for authentication. The signing key is the same as the\\n// encryption key, and as such is not stored in the contract but part of the address preimage, so it can\\n// be verified by passing in the partial address.\\ncontract SchnorrSingleKeyAccount {\\n use dep::std;\\n use dep::aztec::entrypoint;\\n use dep::aztec::entrypoint::EntrypointPayload;\\n use dep::aztec::abi;\\n use dep::aztec::abi::PrivateContextInputs;\\n use dep::aztec::abi::CallContext;\\n use dep::aztec::private_call_stack_item::PrivateCallStackItem;\\n use dep::aztec::public_call_stack_item::PublicCallStackItem;\\n use dep::aztec::context::PrivateContext;\\n use dep::aztec::types::vec::BoundedVec;\\n use dep::aztec::types::point::Point;\\n use dep::aztec::constants_gen::GENERATOR_INDEX__CONTRACT_ADDRESS;\\n use dep::aztec::constants_gen::GENERATOR_INDEX__SIGNATURE_PAYLOAD;\\n\\n fn entrypoint(\\n inputs: pub PrivateContextInputs,\\n payload: pub EntrypointPayload, // contains a set of arguments, selectors, targets and a nonce\\n owner: pub [u8;64], // pubkey x and y coordinates concatenated\\n signature: pub [u8;64], // schnorr signature of the payload hash\\n partial_address: pub Field,\\n ) -> distinct pub abi::PrivateCircuitPublicInputs {\\n // Initialize context\\n // ENTRYPOINT_PAYLOAD_SIZE(13) + 64 + 64 + 1\\n let mut args: BoundedVec<Field, 142> = BoundedVec::new(0);\\n args.push_array(payload.serialize());\\n for byte in owner { args.push(byte as Field); }\\n for byte in signature { args.push(byte as Field); }\\n args.push(partial_address);\\n let mut context = PrivateContext::new(inputs, abi::hash_args(args.storage));\\n\\n // Verify payload signature\\n let payload_fields: [Field; entrypoint::ENTRYPOINT_PAYLOAD_SIZE] = payload.serialize();\\n let message_field: Field = std::hash::pedersen_with_separator(payload_fields, GENERATOR_INDEX__SIGNATURE_PAYLOAD)[0];\\n let message_bytes = message_field.to_be_bytes(32);\\n\\n // Convert owner pubkey into fields\\n let mut x: Field = 0;\\n let mut y: Field = 0;\\n let mut mul: Field = 1;\\n for i in 0..32 {\\n let bytex: Field = owner[31 - i] as Field;\\n x = x + (bytex * mul);\\n let bytey: Field = owner[63 - i] as Field;\\n y = y + (bytey * mul);\\n mul *= 256;\\n }\\n \\n // Verify signature of the payload hash\\n // TODO: Find out why this signature verification never fails\\n let verification = std::schnorr::verify_signature(x, y, signature, message_bytes);\\n assert(verification == true);\\n\\n // Verify public key against address\\n let reproduced_address = dep::std::hash::pedersen_with_separator([x, y, partial_address], GENERATOR_INDEX__CONTRACT_ADDRESS)[0];\\n assert(reproduced_address == context.this_address());\\n\\n // Execute calls\\n payload.execute_calls(&mut context);\\n\\n context.finish()\\n }\\n\\n // Constructs the contract\\n fn constructor(\\n inputs: pub PrivateContextInputs,\\n ) -> distinct pub abi::PrivateCircuitPublicInputs {\\n // Return private circuit public inputs. All private functions need to return this as it is part of the input of the private kernel.\\n PrivateContext::new(inputs, 0).finish()\\n }\\n}\\n","path":"/mnt/user-data/jan/aztec-packages/yarn-project/noir-contracts/src/contracts/schnorr_single_key_account_contract/src/main"},"18":{"source":"\\nimpl Field {\\n #[builtin(to_le_bits)]\\n fn to_le_bits(_x : Field, _bit_size: u32) -> [u1] {}\\n #[builtin(to_be_bits)]\\n fn to_be_bits(_x : Field, _bit_size: u32) -> [u1] {}\\n\\n fn to_le_bytes(x : Field, byte_size: u32) -> [u8] {\\n x.to_le_radix(256, byte_size)\\n }\\n fn to_be_bytes(x : Field, byte_size: u32) -> [u8] {\\n x.to_be_radix(256, byte_size)\\n }\\n\\n #[builtin(to_le_radix)]\\n //decompose _x into a _result_len vector over the _radix basis\\n //_radix must be less than 256\\n fn to_le_radix(_x : Field, _radix: u32, _result_len: u32) -> [u8] {}\\n #[builtin(to_be_radix)]\\n fn to_be_radix(_x : Field, _radix: u32, _result_len: u32) -> [u8] {}\\n\\n // Returns self to the power of the given exponent value.\\n // Caution: we assume the exponent fits into 32 bits\\n // using a bigger bit size impacts negatively the performance and should be done only if the exponent does not fit in 32 bits\\n fn pow_32(self, exponent: Field) -> Field {\\n let mut r: Field = 1;\\n let b = exponent.to_le_bits(32);\\n\\n for i in 1..33 {\\n r *= r;\\n r = (b[32-i] as Field) * (r * self) + (1 - b[32-i] as Field) * r;\\n }\\n r\\n }\\n\\n // Parity of (prime) Field element, i.e. sgn0(x mod p) = 0 if x ∈ {0, ..., p-1} is even, otherwise sgn0(x mod p) = 1.\\n fn sgn0(self) -> u1 {\\n self as u1\\n }\\n}\\n\\n#[builtin(modulus_num_bits)]\\nfn modulus_num_bits() -> Field {}\\n\\n#[builtin(modulus_be_bits)]\\nfn modulus_be_bits() -> [u1] {}\\n\\n#[builtin(modulus_le_bits)]\\nfn modulus_le_bits() -> [u1] {}\\n\\n#[builtin(modulus_be_bytes)]\\nfn modulus_be_bytes() -> [u8] {}\\n\\n#[builtin(modulus_le_bytes)]\\nfn modulus_le_bytes() -> [u8] {}\\n","path":"std/field"},"31":{"source":"use crate::constants_gen::{\\n RETURN_VALUES_LENGTH,\\n MAX_READ_REQUESTS_PER_CALL,\\n MAX_NEW_COMMITMENTS_PER_CALL,\\n MAX_NEW_NULLIFIERS_PER_CALL,\\n MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL,\\n MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL,\\n MAX_NEW_L2_TO_L1_MSGS_PER_CALL,\\n NUM_FIELDS_PER_SHA256,\\n MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL,\\n MAX_PUBLIC_DATA_READS_PER_CALL,\\n GENERATOR_INDEX__FUNCTION_ARGS,\\n HISTORIC_BLOCK_DATA_LENGTH,\\n CONTRACT_DEPLOYMENT_DATA_LENGTH,\\n CALL_CONTEXT_LENGTH,\\n PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH,\\n PRIVATE_CIRCUIT_PUBLIC_INPUTS_HASH_INPUT_LENGTH,\\n CONTRACT_STORAGE_UPDATE_REQUEST_LENGTH,\\n CONTRACT_STORAGE_READ_LENGTH,\\n PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH,\\n PUBLIC_CIRCUIT_PUBLIC_INPUTS_HASH_INPUT_LENGTH,\\n GENERATOR_INDEX__PUBLIC_CIRCUIT_PUBLIC_INPUTS,\\n GENERATOR_INDEX__FUNCTION_DATA,\\n GENERATOR_INDEX__PUBLIC_DATA_READ,\\n GENERATOR_INDEX__PUBLIC_DATA_UPDATE_REQUEST,\\n GENERATOR_INDEX__CALL_CONTEXT,\\n GENERATOR_INDEX__PRIVATE_CIRCUIT_PUBLIC_INPUTS,\\n GENERATOR_INDEX__CONTRACT_DEPLOYMENT_DATA,\\n};\\n\\nuse crate::oracle::debug_log;\\nuse crate::types::vec::BoundedVec;\\nuse crate::types::point::Point;\\n\\nstruct PrivateGlobalVariables {\\n chain_id: Field,\\n version: Field,\\n}\\n\\nimpl PrivateGlobalVariables {\\n fn serialize(self) -> [Field; 2] {\\n [self.chain_id, self.version]\\n }\\n}\\n\\nstruct PublicGlobalVariables {\\n chain_id: Field,\\n version: Field,\\n block_number: Field,\\n timestamp: Field,\\n}\\n\\nimpl PublicGlobalVariables {\\n fn serialize(self) -> [Field; 4] {\\n [self.chain_id, self.version, self.block_number, self.timestamp]\\n }\\n}\\n\\nstruct ContractDeploymentData {\\n deployer_public_key: Point,\\n constructor_vk_hash : Field,\\n function_tree_root : Field,\\n contract_address_salt : Field,\\n portal_contract_address : Field,\\n}\\n\\nimpl ContractDeploymentData {\\n fn serialize(self) -> [Field; CONTRACT_DEPLOYMENT_DATA_LENGTH] {\\n [\\n self.deployer_public_key.x,\\n self.deployer_public_key.y,\\n self.constructor_vk_hash,\\n self.function_tree_root,\\n self.contract_address_salt,\\n self.portal_contract_address,\\n ]\\n }\\n\\n fn hash(self) -> Field {\\n dep::std::hash::pedersen_with_separator(self.serialize(), GENERATOR_INDEX__CONTRACT_DEPLOYMENT_DATA)[0]\\n }\\n}\\n\\n// PrivateContextInputs are expected to be provided to each private function\\nstruct PrivateContextInputs {\\n call_context : CallContext,\\n block_data: HistoricBlockData,\\n\\n contract_deployment_data: ContractDeploymentData,\\n\\n private_global_variables: PrivateGlobalVariables,\\n}\\n\\n// PublicContextInputs are expected to be provided to each public function\\nstruct PublicContextInputs {\\n call_context: CallContext,\\n block_data: HistoricBlockData,\\n\\n public_global_variables: PublicGlobalVariables,\\n}\\n\\nstruct CallContext {\\n msg_sender : Field,\\n storage_contract_address : Field,\\n portal_contract_address : Field,\\n\\n is_delegate_call : bool,\\n is_static_call : bool,\\n is_contract_deployment: bool,\\n}\\n\\nimpl CallContext {\\n fn serialize(self) -> [Field; CALL_CONTEXT_LENGTH] {\\n [\\n self.msg_sender,\\n self.storage_contract_address,\\n self.portal_contract_address,\\n self.is_delegate_call as Field,\\n self.is_static_call as Field,\\n self.is_contract_deployment as Field,\\n ]\\n }\\n\\n fn hash(self) -> Field {\\n dep::std::hash::pedersen_with_separator(self.serialize(), GENERATOR_INDEX__CALL_CONTEXT)[0]\\n }\\n}\\n\\nstruct HistoricBlockData {\\n private_data_tree_root : Field,\\n nullifier_tree_root : Field,\\n contract_tree_root : Field,\\n l1_to_l2_messages_tree_root : Field,\\n blocks_tree_root: Field,\\n public_data_tree_root: Field,\\n global_variables_hash: Field,\\n}\\n\\nimpl HistoricBlockData {\\n // NOTE: this order must match the order in `private_circuit_public_inputs.hpp`\\n fn serialize(self) -> [Field; HISTORIC_BLOCK_DATA_LENGTH] {\\n [\\n self.private_data_tree_root,\\n self.nullifier_tree_root,\\n self.contract_tree_root,\\n self.l1_to_l2_messages_tree_root,\\n self.blocks_tree_root,\\n self.public_data_tree_root,\\n self.global_variables_hash,\\n ]\\n }\\n\\n fn empty() -> Self {\\n Self { private_data_tree_root: 0, nullifier_tree_root: 0, contract_tree_root: 0, l1_to_l2_messages_tree_root: 0, blocks_tree_root: 0, public_data_tree_root: 0, global_variables_hash: 0 }\\n }\\n}\\n\\nstruct FunctionData {\\n function_selector: Field,\\n is_internal: bool,\\n is_private: bool,\\n is_constructor: bool,\\n}\\n\\nimpl FunctionData {\\n fn hash(self) -> Field {\\n dep::std::hash::pedersen_with_separator([\\n self.function_selector,\\n self.is_internal as Field,\\n self.is_private as Field,\\n self.is_constructor as Field,\\n ], GENERATOR_INDEX__FUNCTION_DATA)[0]\\n }\\n}\\n\\nstruct PrivateCircuitPublicInputs {\\n call_context: CallContext,\\n args_hash: Field,\\n return_values: [Field; RETURN_VALUES_LENGTH],\\n read_requests: [Field; crate::abi::MAX_READ_REQUESTS_PER_CALL],\\n new_commitments: [Field; MAX_NEW_COMMITMENTS_PER_CALL],\\n new_nullifiers: [Field; MAX_NEW_NULLIFIERS_PER_CALL],\\n nullified_commitments: [Field; MAX_NEW_NULLIFIERS_PER_CALL],\\n private_call_stack: [Field; MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL],\\n public_call_stack: [Field; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL],\\n new_l2_to_l1_msgs: [Field; MAX_NEW_L2_TO_L1_MSGS_PER_CALL],\\n // Explore introducing a new type like uint256 (similar to Point), so it\'s more explicit that\\n // we\'re talking about a single number backed by two field elements.\\n encrypted_logs_hash: [Field; NUM_FIELDS_PER_SHA256],\\n unencrypted_logs_hash: [Field; NUM_FIELDS_PER_SHA256],\\n encrypted_log_preimages_length: Field,\\n unencrypted_log_preimages_length: Field,\\n block_data: HistoricBlockData,\\n contract_deployment_data: ContractDeploymentData,\\n chain_id: Field,\\n version: Field,\\n}\\n\\nimpl PrivateCircuitPublicInputs {\\n fn hash(self) -> Field {\\n let mut fields: BoundedVec<Field, PRIVATE_CIRCUIT_PUBLIC_INPUTS_HASH_INPUT_LENGTH> = BoundedVec::new(0); \\n fields.push(self.call_context.hash());\\n fields.push(self.args_hash);\\n fields.push_array(self.return_values);\\n fields.push_array(self.read_requests);\\n fields.push_array(self.new_commitments);\\n fields.push_array(self.new_nullifiers);\\n fields.push_array(self.nullified_commitments);\\n fields.push_array(self.private_call_stack);\\n fields.push_array(self.public_call_stack);\\n fields.push_array(self.new_l2_to_l1_msgs);\\n fields.push_array(self.encrypted_logs_hash);\\n fields.push_array(self.unencrypted_logs_hash);\\n fields.push(self.encrypted_log_preimages_length);\\n fields.push(self.unencrypted_log_preimages_length);\\n fields.push_array(self.block_data.serialize());\\n fields.push(self.contract_deployment_data.hash());\\n fields.push(self.chain_id);\\n fields.push(self.version);\\n\\n dep::std::hash::pedersen_with_separator(fields.storage, GENERATOR_INDEX__PRIVATE_CIRCUIT_PUBLIC_INPUTS)[0]\\n }\\n\\n fn serialize(self) -> [Field; PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH] {\\n let mut fields: BoundedVec<Field, PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH> = BoundedVec::new(0); \\n fields.push_array(self.call_context.serialize());\\n fields.push(self.args_hash);\\n fields.push_array(self.return_values);\\n fields.push_array(self.read_requests);\\n fields.push_array(self.new_commitments);\\n fields.push_array(self.new_nullifiers);\\n fields.push_array(self.private_call_stack);\\n fields.push_array(self.public_call_stack);\\n fields.push_array(self.new_l2_to_l1_msgs);\\n fields.push_array(self.encrypted_logs_hash);\\n fields.push_array(self.unencrypted_logs_hash);\\n fields.push(self.encrypted_log_preimages_length);\\n fields.push(self.unencrypted_log_preimages_length);\\n fields.push_array(self.block_data.serialize());\\n fields.push_array(self.contract_deployment_data.serialize());\\n fields.push(self.chain_id);\\n fields.push(self.version);\\n fields.storage\\n }\\n}\\n\\nstruct ContractStorageRead {\\n storage_slot: Field,\\n value: Field,\\n}\\n\\nimpl ContractStorageRead {\\n fn serialize(self) -> [Field; CONTRACT_STORAGE_READ_LENGTH] {\\n [self.storage_slot, self.value]\\n }\\n\\n fn hash(self) -> Field {\\n dep::std::hash::pedersen_with_separator(self.serialize(), GENERATOR_INDEX__PUBLIC_DATA_READ)[0]\\n }\\n\\n fn empty() -> Self {\\n Self { storage_slot: 0, value: 0 }\\n }\\n}\\n\\nstruct ContractStorageUpdateRequest {\\n storage_slot: Field,\\n old_value: Field,\\n new_value: Field,\\n}\\n\\nimpl ContractStorageUpdateRequest {\\n fn serialize(self) -> [Field; CONTRACT_STORAGE_UPDATE_REQUEST_LENGTH] {\\n [self.storage_slot, self.old_value, self.new_value]\\n }\\n\\n fn hash(self) -> Field {\\n dep::std::hash::pedersen_with_separator(self.serialize(), GENERATOR_INDEX__PUBLIC_DATA_UPDATE_REQUEST)[0]\\n }\\n\\n fn empty() -> Self {\\n Self { storage_slot: 0, old_value: 0, new_value: 0 }\\n }\\n}\\n\\n\\nstruct PublicCircuitPublicInputs {\\n call_context: CallContext,\\n args_hash: Field,\\n return_values: [Field; RETURN_VALUES_LENGTH],\\n contract_storage_update_requests: [ContractStorageUpdateRequest; MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL],\\n contract_storage_read: [ContractStorageRead; MAX_PUBLIC_DATA_READS_PER_CALL],\\n public_call_stack: [Field; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL],\\n new_commitments: [Field; MAX_NEW_COMMITMENTS_PER_CALL],\\n new_nullifiers: [Field; crate::abi::MAX_NEW_NULLIFIERS_PER_CALL],\\n new_l2_to_l1_msgs: [Field; crate::abi::MAX_NEW_L2_TO_L1_MSGS_PER_CALL],\\n unencrypted_logs_hash: [Field; NUM_FIELDS_PER_SHA256],\\n unencrypted_log_preimages_length: Field,\\n block_data: HistoricBlockData,\\n prover_address: Field,\\n\\n // TODO: include globals in here and check them elsewhere\\n // https://github.com/AztecProtocol/aztec-packages/issues/1567\\n}\\n\\nimpl PublicCircuitPublicInputs {\\n \\n fn hash(self) -> Field {\\n let mut inputs: BoundedVec<Field, PUBLIC_CIRCUIT_PUBLIC_INPUTS_HASH_INPUT_LENGTH> = BoundedVec::new(0);\\n inputs.push(self.call_context.hash());\\n inputs.push(self.args_hash);\\n inputs.push_array(self.return_values);\\n for i in 0..MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL {\\n inputs.push(self.contract_storage_update_requests[i].hash());\\n }\\n for i in 0..MAX_PUBLIC_DATA_READS_PER_CALL {\\n inputs.push(self.contract_storage_read[i].hash());\\n }\\n inputs.push_array(self.public_call_stack);\\n inputs.push_array(self.new_commitments);\\n inputs.push_array(self.new_nullifiers);\\n inputs.push_array(self.new_l2_to_l1_msgs);\\n\\n // We do not include block_data since it\'s not in the cpp hash\\n\\n inputs.push_array(self.unencrypted_logs_hash);\\n inputs.push(self.unencrypted_log_preimages_length);\\n inputs.push_array(self.block_data.serialize()); // see https://github.com/AztecProtocol/aztec-packages/issues/1473\\n inputs.push(self.prover_address);\\n\\n dep::std::hash::pedersen_with_separator(inputs.storage, GENERATOR_INDEX__PUBLIC_CIRCUIT_PUBLIC_INPUTS)[0]\\n }\\n\\n fn serialize(self) -> [Field; PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH] {\\n let mut fields: BoundedVec<Field, PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH> = BoundedVec::new(0); \\n fields.push_array(self.call_context.serialize()); \\n fields.push(self.args_hash);\\n fields.push_array(self.return_values);\\n for i in 0..MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL {\\n fields.push_array(self.contract_storage_update_requests[i].serialize());\\n }\\n for i in 0..MAX_PUBLIC_DATA_READS_PER_CALL {\\n fields.push_array(self.contract_storage_read[i].serialize());\\n }\\n fields.push_array(self.public_call_stack);\\n fields.push_array(self.new_commitments);\\n fields.push_array(self.new_nullifiers);\\n fields.push_array(self.new_l2_to_l1_msgs);\\n fields.push_array(self.unencrypted_logs_hash);\\n fields.push(self.unencrypted_log_preimages_length);\\n fields.push_array(self.block_data.serialize());\\n fields.push(self.prover_address);\\n fields.storage\\n }\\n}\\n\\nglobal ARGS_HASH_CHUNK_LENGTH: u32 = 32;\\nglobal ARGS_HASH_CHUNK_COUNT: u32 = 16;\\n\\nfn hash_args<N>(args: [Field; N]) -> Field {\\n if args.len() == 0 {\\n 0\\n } else {\\n let mut chunks_hashes = [0; ARGS_HASH_CHUNK_COUNT];\\n for i in 0..ARGS_HASH_CHUNK_COUNT {\\n let mut chunk_hash = 0;\\n let start_chunk_index = i * ARGS_HASH_CHUNK_LENGTH;\\n if start_chunk_index < (args.len() as u32) {\\n let mut chunk_args = [0; ARGS_HASH_CHUNK_LENGTH];\\n for j in 0..ARGS_HASH_CHUNK_LENGTH {\\n let item_index = i * ARGS_HASH_CHUNK_LENGTH + j;\\n if item_index < (args.len() as u32) {\\n chunk_args[j] = args[item_index];\\n }\\n }\\n chunk_hash = dep::std::hash::pedersen_with_separator(chunk_args, GENERATOR_INDEX__FUNCTION_ARGS)[0];\\n }\\n chunks_hashes[i] = chunk_hash;\\n }\\n dep::std::hash::pedersen_with_separator(chunks_hashes, GENERATOR_INDEX__FUNCTION_ARGS)[0]\\n }\\n}\\n","path":"/mnt/user-data/jan/aztec-packages/yarn-project/noir-libs/noir-aztec/src/abi"},"32":{"source":"use crate::constants_gen::{\\n EMPTY_NULLIFIED_COMMITMENT,\\n MAX_NEW_COMMITMENTS_PER_CALL,\\n MAX_NEW_L2_TO_L1_MSGS_PER_CALL,\\n MAX_NEW_NULLIFIERS_PER_CALL,\\n MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL,\\n MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL,\\n MAX_PUBLIC_DATA_READS_PER_CALL,\\n MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL,\\n MAX_READ_REQUESTS_PER_CALL,\\n NUM_FIELDS_PER_SHA256,\\n RETURN_VALUES_LENGTH,\\n};\\n\\nuse crate::abi;\\n\\nuse crate::abi::{\\n hash_args,\\n CallContext,\\n ContractDeploymentData,\\n HistoricBlockData,\\n FunctionData,\\n PrivateCircuitPublicInputs,\\n PublicCircuitPublicInputs,\\n};\\n\\n// TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\\n// use dep::std::collections::vec::Vec;\\n\\n// l1 to l2 messaging\\nuse crate::messaging::process_l1_to_l2_message;\\nuse crate::private_call_stack_item::PrivateCallStackItem;\\nuse crate::public_call_stack_item::PublicCallStackItem;\\n\\nuse crate::types::{\\n vec::BoundedVec,\\n point::Point,\\n};\\n\\nuse crate::utils::arr_copy_slice;\\n\\nuse crate::oracle::{\\n arguments,\\n call_private_function::call_private_function_internal,\\n public_call::call_public_function_internal,\\n enqueue_public_function_call::enqueue_public_function_call_internal,\\n context::get_portal_address,\\n};\\n\\n\\n// When finished, one can call .finish() to convert back to the abi\\nstruct PrivateContext {\\n inputs: abi::PrivateContextInputs,\\n\\n args_hash : Field,\\n return_values : BoundedVec<Field, RETURN_VALUES_LENGTH>,\\n\\n read_requests: BoundedVec<Field, MAX_READ_REQUESTS_PER_CALL>,\\n\\n new_commitments: BoundedVec<Field, MAX_NEW_COMMITMENTS_PER_CALL>,\\n new_nullifiers: BoundedVec<Field, MAX_NEW_NULLIFIERS_PER_CALL>,\\n nullified_commitments: BoundedVec<Field, MAX_NEW_NULLIFIERS_PER_CALL>,\\n\\n private_call_stack : BoundedVec<Field, MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL>,\\n public_call_stack : BoundedVec<Field, MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL>,\\n new_l2_to_l1_msgs : BoundedVec<Field, MAX_NEW_L2_TO_L1_MSGS_PER_CALL>,\\n\\n block_data: HistoricBlockData,\\n\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\\n // encrypted_logs_preimages: Vec<Field>,\\n // unencrypted_logs_preimages: Vec<Field>,\\n}\\n\\nimpl PrivateContext {\\n fn new(inputs: abi::PrivateContextInputs, args_hash: Field) -> PrivateContext {\\n PrivateContext {\\n inputs: inputs,\\n\\n args_hash: args_hash,\\n return_values: BoundedVec::new(0),\\n\\n read_requests: BoundedVec::new(0),\\n\\n new_commitments: BoundedVec::new(0),\\n new_nullifiers: BoundedVec::new(0),\\n nullified_commitments: BoundedVec::new(0),\\n\\n block_data: inputs.block_data,\\n\\n private_call_stack: BoundedVec::new(0),\\n public_call_stack: BoundedVec::new(0),\\n new_l2_to_l1_msgs: BoundedVec::new(0),\\n\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\\n // encrypted_logs_preimages: Vec::new(),\\n // unencrypted_logs_preimages: Vec::new(),\\n }\\n }\\n\\n fn msg_sender(self) -> Field {\\n self.inputs.call_context.msg_sender\\n }\\n\\n fn this_address(self) -> Field {\\n self.inputs.call_context.storage_contract_address\\n }\\n\\n fn this_portal_address(self) -> Field {\\n self.inputs.call_context.portal_contract_address\\n }\\n\\n fn chain_id(self) -> Field {\\n self.inputs.private_global_variables.chain_id\\n }\\n\\n fn version(self) -> Field {\\n self.inputs.private_global_variables.version\\n }\\n\\n fn finish(self) -> abi::PrivateCircuitPublicInputs {\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\\n let encrypted_logs_hash = [0; NUM_FIELDS_PER_SHA256];\\n let unencrypted_logs_hash = [0; NUM_FIELDS_PER_SHA256];\\n let encrypted_log_preimages_length = 0;\\n let unencrypted_log_preimages_length = 0;\\n\\n let priv_circuit_pub_inputs = abi::PrivateCircuitPublicInputs {\\n call_context: self.inputs.call_context,\\n args_hash: self.args_hash,\\n return_values: self.return_values.storage,\\n read_requests: self.read_requests.storage,\\n new_commitments: self.new_commitments.storage,\\n new_nullifiers: self.new_nullifiers.storage,\\n nullified_commitments: self.nullified_commitments.storage,\\n private_call_stack: self.private_call_stack.storage,\\n public_call_stack: self.public_call_stack.storage,\\n new_l2_to_l1_msgs: self.new_l2_to_l1_msgs.storage,\\n encrypted_logs_hash: encrypted_logs_hash,\\n unencrypted_logs_hash: unencrypted_logs_hash,\\n encrypted_log_preimages_length: encrypted_log_preimages_length,\\n unencrypted_log_preimages_length: unencrypted_log_preimages_length,\\n block_data: self.block_data,\\n contract_deployment_data: self.inputs.contract_deployment_data,\\n chain_id: self.inputs.private_global_variables.chain_id,\\n version: self.inputs.private_global_variables.version,\\n };\\n priv_circuit_pub_inputs\\n }\\n\\n fn push_read_request(&mut self, read_request: Field) {\\n self.read_requests.push(read_request);\\n }\\n\\n fn push_new_note_hash(&mut self, note_hash: Field) {\\n self.new_commitments.push(note_hash);\\n }\\n\\n fn push_new_nullifier(&mut self, nullifier: Field, nullified_commitment: Field) {\\n self.new_nullifiers.push(nullifier);\\n self.nullified_commitments.push(nullified_commitment);\\n }\\n\\n fn message_portal(&mut self, content: Field) {\\n self.new_l2_to_l1_msgs.push(content);\\n }\\n\\n // PrivateContextInputs must be temporarily passed in to prevent too many unknowns\\n // Note this returns self to get around an issue where mutable structs do not maintain mutations unless reassigned\\n fn consume_l1_to_l2_message(&mut self, inputs: abi::PrivateContextInputs, msg_key: Field, content: Field, secret: Field) {\\n let nullifier = process_l1_to_l2_message(inputs.block_data.l1_to_l2_messages_tree_root, inputs.call_context.storage_contract_address, msg_key, content, secret);\\n\\n // Push nullifier (and the \\"commitment\\" corresponding to this can be \\"empty\\")\\n self.push_new_nullifier(nullifier, EMPTY_NULLIFIED_COMMITMENT)\\n }\\n\\n fn accumulate_encrypted_logs<N>(&mut self, log: [Field; N]) {\\n let _void1 = self.inputs;\\n let _void2 = log;\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\\n }\\n\\n fn accumulate_unencrypted_logs<T>(&mut self, log: T) {\\n let _void1 = self.inputs;\\n let _void2 = log;\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\\n }\\n\\n fn call_private_function<ARGS_COUNT>(\\n &mut self,\\n contract_address: Field, \\n function_selector: Field, \\n args: [Field; ARGS_COUNT]\\n ) -> [Field; RETURN_VALUES_LENGTH] {\\n let args_hash = hash_args(args);\\n assert(args_hash == arguments::pack_arguments(args));\\n self.call_private_function_with_packed_args(contract_address, function_selector, args_hash)\\n }\\n\\n fn call_private_function_no_args(\\n &mut self,\\n contract_address: Field, \\n function_selector: Field, \\n ) -> [Field; RETURN_VALUES_LENGTH] {\\n self.call_private_function_with_packed_args(contract_address, function_selector, 0)\\n }\\n\\n fn call_private_function_with_packed_args(\\n &mut self,\\n contract_address: Field,\\n function_selector: Field,\\n args_hash: Field\\n ) -> [Field; RETURN_VALUES_LENGTH] {\\n let fields = call_private_function_internal(\\n contract_address, \\n function_selector, \\n args_hash\\n );\\n let item = PrivateCallStackItem {\\n contract_address: fields[0],\\n function_data: FunctionData {\\n function_selector: fields[1],\\n is_internal: fields[2] as bool,\\n is_private: fields[3] as bool,\\n is_constructor: fields[4] as bool,\\n },\\n public_inputs: PrivateCircuitPublicInputs {\\n call_context: CallContext {\\n msg_sender : fields[5],\\n storage_contract_address : fields[6],\\n portal_contract_address : fields[7],\\n \\n is_delegate_call : fields[8] as bool,\\n is_static_call : fields[9] as bool,\\n is_contract_deployment: fields[10] as bool,\\n },\\n // TODO handle the offsets as a variable incremented during extraction?\\n args_hash: fields[11],\\n return_values: arr_copy_slice(fields, [0; RETURN_VALUES_LENGTH], 12),\\n read_requests: arr_copy_slice(fields, [0; MAX_READ_REQUESTS_PER_CALL], 16),\\n new_commitments: arr_copy_slice(fields, [0; MAX_NEW_COMMITMENTS_PER_CALL], 20),\\n new_nullifiers: arr_copy_slice(fields, [0; MAX_NEW_NULLIFIERS_PER_CALL], 24),\\n nullified_commitments: arr_copy_slice(fields, [0; MAX_NEW_NULLIFIERS_PER_CALL], 28),\\n private_call_stack: arr_copy_slice(fields, [0; MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL], 32),\\n public_call_stack: arr_copy_slice(fields, [0; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL], 36),\\n new_l2_to_l1_msgs: arr_copy_slice(fields, [0; MAX_NEW_L2_TO_L1_MSGS_PER_CALL], 40),\\n encrypted_logs_hash: arr_copy_slice(fields, [0; NUM_FIELDS_PER_SHA256], 42),\\n unencrypted_logs_hash: arr_copy_slice(fields, [0; NUM_FIELDS_PER_SHA256], 44),\\n encrypted_log_preimages_length: fields[46],\\n unencrypted_log_preimages_length: fields[47],\\n block_data: HistoricBlockData {\\n // Must match order in `private_circuit_public_inputs.hpp`\\n private_data_tree_root : fields[48],\\n nullifier_tree_root : fields[49],\\n contract_tree_root : fields[50],\\n l1_to_l2_messages_tree_root : fields[51],\\n blocks_tree_root : fields[52],\\n public_data_tree_root: fields[53],\\n global_variables_hash: fields[54],\\n },\\n contract_deployment_data: ContractDeploymentData {\\n deployer_public_key: Point::new(fields[55], fields[56]),\\n constructor_vk_hash : fields[57],\\n function_tree_root : fields[58],\\n contract_address_salt : fields[59],\\n portal_contract_address : fields[60],\\n },\\n chain_id: fields[61],\\n version: fields[62],\\n },\\n is_execution_request: fields[63] as bool,\\n };\\n assert(contract_address == item.contract_address);\\n assert(function_selector == item.function_data.function_selector);\\n\\n assert(args_hash == item.public_inputs.args_hash);\\n\\n assert(item.is_execution_request == false);\\n\\n // Assert that the call context of the enqueued call generated by the oracle matches our request.\\n // We are issuing a regular call which is not delegate, static, or deployment. We also constrain\\n // the msg_sender in the nested call to be equal to our address, and the execution context address\\n // for the nested call to be equal to the address we actually called.\\n assert(item.public_inputs.call_context.is_delegate_call == false);\\n assert(item.public_inputs.call_context.is_static_call == false);\\n assert(item.public_inputs.call_context.is_contract_deployment == false);\\n assert(item.public_inputs.call_context.msg_sender == self.inputs.call_context.storage_contract_address);\\n assert(item.public_inputs.call_context.storage_contract_address == contract_address);\\n\\n self.private_call_stack.push(item.hash());\\n\\n item.public_inputs.return_values\\n }\\n\\n fn call_public_function<ARGS_COUNT>(\\n &mut self,\\n contract_address: Field, \\n function_selector: Field, \\n args: [Field; ARGS_COUNT]\\n ) {\\n let args_hash = hash_args(args);\\n assert(args_hash == arguments::pack_arguments(args));\\n self.call_public_function_with_packed_args(contract_address, function_selector, args_hash)\\n }\\n\\n fn call_public_function_no_args(\\n &mut self,\\n contract_address: Field, \\n function_selector: Field,\\n ) {\\n self.call_public_function_with_packed_args(contract_address, function_selector, 0)\\n }\\n\\n fn call_public_function_with_packed_args(\\n &mut self,\\n contract_address: Field,\\n function_selector: Field,\\n args_hash: Field\\n ) {\\n let fields = enqueue_public_function_call_internal(\\n contract_address, \\n function_selector, \\n args_hash\\n );\\n let item = PublicCallStackItem {\\n contract_address: fields[0],\\n function_data: FunctionData {\\n function_selector: fields[1],\\n is_internal: fields[2] as bool,\\n is_private: fields[3] as bool,\\n is_constructor: fields[4] as bool,\\n },\\n public_inputs: PublicCircuitPublicInputs {\\n call_context: CallContext {\\n msg_sender : fields[5],\\n storage_contract_address : fields[6],\\n portal_contract_address : fields[7],\\n \\n is_delegate_call : fields[8] as bool,\\n is_static_call : fields[9] as bool,\\n is_contract_deployment: fields[10] as bool,\\n },\\n args_hash: fields[11],\\n return_values: [0; RETURN_VALUES_LENGTH],\\n contract_storage_update_requests: [ContractStorageUpdateRequest::empty(); MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL],\\n contract_storage_read: [ContractStorageRead::empty(); MAX_PUBLIC_DATA_READS_PER_CALL],\\n public_call_stack: [0; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL],\\n new_commitments: [0; MAX_NEW_COMMITMENTS_PER_CALL],\\n new_nullifiers: [0; MAX_NEW_NULLIFIERS_PER_CALL],\\n new_l2_to_l1_msgs:[0; MAX_NEW_L2_TO_L1_MSGS_PER_CALL],\\n unencrypted_logs_hash:[0; NUM_FIELDS_PER_SHA256],\\n unencrypted_log_preimages_length: 0,\\n block_data: HistoricBlockData::empty(),\\n prover_address: 0,\\n },\\n is_execution_request: true,\\n };\\n\\n assert(contract_address == item.contract_address);\\n assert(function_selector == item.function_data.function_selector);\\n \\n assert(args_hash == item.public_inputs.args_hash);\\n\\n // Assert that the call context of the enqueued call generated by the oracle matches our request.\\n // We are issuing a regular call which is not delegate, static, or deployment. We also constrain\\n // the msg_sender in the nested call to be equal to our address, and the execution context address\\n // for the nested call to be equal to the address we actually called.\\n assert(item.public_inputs.call_context.is_delegate_call == false);\\n assert(item.public_inputs.call_context.is_static_call == false);\\n assert(item.public_inputs.call_context.is_contract_deployment == false);\\n assert(item.public_inputs.call_context.msg_sender == self.inputs.call_context.storage_contract_address);\\n assert(item.public_inputs.call_context.storage_contract_address == contract_address);\\n\\n self.public_call_stack.push(item.hash());\\n }\\n}\\n\\nuse crate::abi::{\\n ContractStorageRead,\\n ContractStorageUpdateRequest\\n};\\n\\nstruct PublicContext {\\n inputs: abi::PublicContextInputs,\\n\\n args_hash : Field,\\n return_values : BoundedVec<Field, RETURN_VALUES_LENGTH>,\\n\\n contract_storage_update_requests: BoundedVec<ContractStorageUpdateRequest, MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL>,\\n contract_storage_read: BoundedVec<ContractStorageRead, MAX_PUBLIC_DATA_READS_PER_CALL>,\\n public_call_stack: BoundedVec<Field, MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL>,\\n\\n new_commitments: BoundedVec<Field, MAX_NEW_COMMITMENTS_PER_CALL>,\\n new_nullifiers: BoundedVec<Field, crate::abi::MAX_NEW_NULLIFIERS_PER_CALL>,\\n\\n new_l2_to_l1_msgs: BoundedVec<Field, crate::abi::MAX_NEW_L2_TO_L1_MSGS_PER_CALL>,\\n\\n unencrypted_logs_hash: BoundedVec<Field, NUM_FIELDS_PER_SHA256>,\\n unencrypted_logs_preimages_length: Field,\\n\\n block_data: HistoricBlockData,\\n prover_address: Field,\\n}\\n\\nimpl PublicContext {\\n fn new(inputs: abi::PublicContextInputs, args_hash: Field) -> PublicContext {\\n let empty_storage_read = ContractStorageRead::empty();\\n let empty_storage_update = ContractStorageUpdateRequest::empty();\\n PublicContext {\\n inputs: inputs,\\n\\n args_hash: args_hash,\\n return_values: BoundedVec::new(0),\\n\\n contract_storage_update_requests: BoundedVec::new(empty_storage_update),\\n contract_storage_read: BoundedVec::new(empty_storage_read),\\n public_call_stack: BoundedVec::new(0),\\n\\n new_commitments: BoundedVec::new(0),\\n new_nullifiers: BoundedVec::new(0),\\n\\n new_l2_to_l1_msgs: BoundedVec::new(0),\\n\\n \\n unencrypted_logs_hash: BoundedVec::new(0),\\n unencrypted_logs_preimages_length: 0,\\n\\n block_data: inputs.block_data,\\n prover_address: 0,\\n\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\\n // encrypted_logs_preimages: Vec::new(),\\n // unencrypted_logs_preimages: Vec::new(),\\n }\\n }\\n\\n fn msg_sender(self) -> Field {\\n self.inputs.call_context.msg_sender\\n }\\n\\n fn this_address(self) -> Field {\\n self.inputs.call_context.storage_contract_address\\n }\\n\\n fn this_portal_address(self) -> Field {\\n self.inputs.call_context.portal_contract_address\\n }\\n\\n fn chain_id(self) -> Field {\\n self.inputs.public_global_variables.chain_id\\n }\\n\\n fn version(self) -> Field {\\n self.inputs.public_global_variables.version\\n }\\n\\n fn block_number(self) -> Field {\\n self.inputs.public_global_variables.block_number\\n }\\n\\n fn timestamp(self) -> Field {\\n self.inputs.public_global_variables.timestamp\\n }\\n\\n fn finish(self) -> abi::PublicCircuitPublicInputs {\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\\n let unencrypted_logs_hash = [0; NUM_FIELDS_PER_SHA256];\\n let unencrypted_log_preimages_length = 0;\\n\\n\\n // Compute the public call stack hashes\\n let pub_circuit_pub_inputs = abi::PublicCircuitPublicInputs {\\n call_context: self.inputs.call_context, // Done\\n args_hash: self.args_hash, // Done\\n contract_storage_update_requests: self.contract_storage_update_requests.storage,\\n contract_storage_read: self.contract_storage_read.storage,\\n return_values: self.return_values.storage,\\n new_commitments: self.new_commitments.storage,\\n new_nullifiers: self.new_nullifiers.storage,\\n public_call_stack: self.public_call_stack.storage,\\n new_l2_to_l1_msgs: self.new_l2_to_l1_msgs.storage,\\n unencrypted_logs_hash: unencrypted_logs_hash,\\n unencrypted_log_preimages_length: unencrypted_log_preimages_length,\\n block_data: self.inputs.block_data,\\n prover_address: self.prover_address,\\n };\\n pub_circuit_pub_inputs\\n }\\n\\n fn push_new_note_hash(&mut self, note_hash: Field) {\\n self.new_commitments.push(note_hash);\\n }\\n\\n fn push_new_nullifier(&mut self, nullifier: Field, _nullified_commitment: Field) {\\n self.new_nullifiers.push(nullifier);\\n }\\n\\n fn message_portal(&mut self, content: Field) {\\n self.new_l2_to_l1_msgs.push(content);\\n }\\n\\n // PrivateContextInputs must be temporarily passed in to prevent too many unknowns\\n // Note this returns self to get around an issue where mutable structs do not maintain mutations unless reassigned\\n fn consume_l1_to_l2_message(&mut self, msg_key: Field, content: Field, secret: Field) {\\n let this = (*self).this_address();\\n let nullifier = process_l1_to_l2_message(self.block_data.l1_to_l2_messages_tree_root, this, msg_key, content, secret);\\n\\n // Push nullifier (and the \\"commitment\\" corresponding to this can be \\"empty\\")\\n self.push_new_nullifier(nullifier, EMPTY_NULLIFIED_COMMITMENT)\\n }\\n\\n fn accumulate_encrypted_logs<N>(&mut self, log: [Field; N]) {\\n let _void1 = self;\\n let _void2 = log;\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\\n }\\n\\n fn accumulate_unencrypted_logs<T>(&mut self, log: T) {\\n let _void1 = self;\\n let _void2 = log;\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\\n }\\n\\n fn call_public_function<ARGS_COUNT>(\\n _self: Self,\\n contract_address: Field, \\n function_selector: Field,\\n args: [Field; ARGS_COUNT],\\n ) -> [Field; RETURN_VALUES_LENGTH] {\\n let args_hash = abi::hash_args(args);\\n assert(args_hash == arguments::pack_arguments(args));\\n call_public_function_internal(\\n contract_address, \\n function_selector, \\n args_hash,\\n )\\n }\\n\\n fn call_public_function_no_args(\\n _self: Self,\\n contract_address: Field, \\n function_selector: Field,\\n ) -> [Field; RETURN_VALUES_LENGTH] {\\n call_public_function_internal(\\n contract_address, \\n function_selector, \\n 0,\\n )\\n }\\n\\n}","path":"/mnt/user-data/jan/aztec-packages/yarn-project/noir-libs/noir-aztec/src/context"},"55":{"source":"\\nstruct BoundedVec<T, MaxLen> {\\n storage: [T; MaxLen],\\n len: Field,\\n}\\n\\nimpl<T, MaxLen> BoundedVec<T, MaxLen> {\\n fn new(initial_value: T) -> Self {\\n BoundedVec { storage: [initial_value; MaxLen], len: 0 }\\n }\\n\\n fn get(mut self: Self, index: Field) -> T {\\n assert(index as u64 < self.len as u64);\\n self.storage[index]\\n }\\n\\n fn push(&mut self, elem: T) {\\n assert(self.len as u64 < MaxLen as u64);\\n\\n self.storage[self.len] = elem;\\n self.len += 1;\\n }\\n\\n fn push_array<Len>(&mut self, array: [T; Len]) {\\n let newLen = self.len + array.len();\\n assert(newLen as u64 <= MaxLen as u64);\\n for i in 0..array.len() {\\n self.storage[self.len + i] = array[i];\\n }\\n self.len = newLen;\\n }\\n\\n fn pop(&mut self) -> T {\\n assert(self.len as u64 > 0);\\n\\n let elem = self.storage[self.len - 1];\\n self.len -= 1;\\n elem\\n }\\n}\\n\\n// #[test]\\n// fn test_vec() {\\n// let vec: BoundedVec<Field, 2> = BoundedVec::new(0);\\n// assert(vec.len == 0);\\n// let vec1 = vec.push(1);\\n// assert(vec1.len == 1);\\n// let vec2 = vec1.push(1);\\n// assert(vec2.len == 2);\\n// let vec3 = vec2.push(1);\\n// assert(vec3.len == 3);\\n// let x = vec3.pop();\\n// assert(x == 1);\\n// }","path":"/mnt/user-data/jan/aztec-packages/yarn-project/noir-libs/noir-aztec/src/types/vec"},"61":{"source":"use crate::abi::FunctionData;\\nuse crate::abi::PrivateCircuitPublicInputs;\\nuse crate::constants_gen::GENERATOR_INDEX__CALL_STACK_ITEM;\\n\\nstruct PrivateCallStackItem {\\n contract_address: Field,\\n function_data: FunctionData,\\n public_inputs: PrivateCircuitPublicInputs,\\n is_execution_request: bool,\\n}\\n\\nimpl PrivateCallStackItem {\\n fn hash(self) -> Field {\\n dep::std::hash::pedersen_with_separator([\\n self.contract_address,\\n self.function_data.hash(),\\n self.public_inputs.hash(),\\n ], GENERATOR_INDEX__CALL_STACK_ITEM)[0]\\n }\\n}","path":"/mnt/user-data/jan/aztec-packages/yarn-project/noir-libs/noir-aztec/src/private_call_stack_item"},"78":{"source":"use crate::abi;\\nuse crate::types::vec::BoundedVec;\\nuse crate::context::PrivateContext;\\nuse crate::private_call_stack_item::PrivateCallStackItem;\\nuse crate::public_call_stack_item::PublicCallStackItem; \\n\\nglobal ACCOUNT_MAX_PRIVATE_CALLS: Field = 2;\\nglobal ACCOUNT_MAX_PUBLIC_CALLS: Field = 2;\\nglobal ACCOUNT_MAX_CALLS: Field = 4;\\n// 1 (ARGS_HASH) + 1 (FUNCTION_SELECTOR) + 1 (TARGET_ADDRESS)\\nglobal FUNCTION_CALL_SIZE: Field = 3;\\n\\nstruct FunctionCall {\\n args_hash: Field,\\n function_selector: Field,\\n target_address: Field,\\n}\\n\\nimpl FunctionCall {\\n fn serialize(self) -> [Field; FUNCTION_CALL_SIZE] {\\n [self.args_hash, self.function_selector, self.target_address]\\n }\\n}\\n\\n// FUNCTION_CALL_SIZE * (ACCOUNT_MAX_PUBLIC_CALLS + ACCOUNT_MAX_PRIVATE_CALLS) + 1\\nglobal ENTRYPOINT_PAYLOAD_SIZE: Field = 13;\\nglobal ENTRYPOINT_PAYLOAD_SIZE_IN_BYTES: Field = 416;\\n\\nstruct EntrypointPayload {\\n // Noir doesnt support nested arrays or structs yet so we flatten everything\\n flattened_args_hashes: [Field; ACCOUNT_MAX_CALLS],\\n flattened_selectors: [Field; ACCOUNT_MAX_CALLS],\\n flattened_targets: [Field; ACCOUNT_MAX_CALLS],\\n nonce: Field,\\n}\\n\\nimpl EntrypointPayload {\\n // TODO(#1207) Do we need a generator index?\\n fn hash(self) -> Field {\\n dep::std::hash::pedersen(self.serialize())[0]\\n }\\n\\n // Serializes the entrypoint struct\\n fn serialize(self) -> [Field; ENTRYPOINT_PAYLOAD_SIZE] {\\n let mut fields: BoundedVec<Field, ENTRYPOINT_PAYLOAD_SIZE> = BoundedVec::new(0); \\n fields.push_array(self.flattened_args_hashes);\\n fields.push_array(self.flattened_selectors);\\n fields.push_array(self.flattened_targets);\\n fields.push(self.nonce);\\n fields.storage\\n }\\n\\n // Serializes the payload as an array of bytes. Useful for hashing with sha256.\\n fn to_be_bytes(self) -> [u8; ENTRYPOINT_PAYLOAD_SIZE_IN_BYTES] {\\n let mut bytes: [u8; ENTRYPOINT_PAYLOAD_SIZE_IN_BYTES] = [0; ENTRYPOINT_PAYLOAD_SIZE_IN_BYTES];\\n\\n let args_len = self.flattened_args_hashes.len();\\n let selectors_len = self.flattened_selectors.len();\\n let targets_len = self.flattened_targets.len();\\n\\n for i in 0..args_len {\\n let item_bytes = self.flattened_args_hashes[i].to_be_bytes(32);\\n for j in 0..32 { \\n bytes[i * 32 + j] = item_bytes[j];\\n }\\n }\\n\\n for i in 0..selectors_len {\\n let item_bytes = self.flattened_selectors[i].to_be_bytes(32);\\n for j in 0..32 { \\n bytes[args_len * 32 + i * 32 + j] = item_bytes[j];\\n }\\n }\\n\\n for i in 0..targets_len {\\n let item_bytes = self.flattened_targets[i].to_be_bytes(32);\\n for j in 0..32 { \\n bytes[(args_len + selectors_len) * 32 + i * 32 + j] = item_bytes[j];\\n }\\n }\\n \\n let item_bytes = self.nonce.to_be_bytes(32);\\n for j in 0..32 { \\n bytes[(args_len + selectors_len + targets_len) * 32 + j] = item_bytes[j];\\n }\\n\\n bytes\\n }\\n\\n // Executes all private and public calls \\n fn execute_calls(self, context: &mut PrivateContext) {\\n for i in 0..ACCOUNT_MAX_PRIVATE_CALLS {\\n let target_address = self.flattened_targets[i];\\n if target_address != 0 {\\n let function_selector = self.flattened_selectors[i];\\n let args_hash = self.flattened_args_hashes[i];\\n let _callStackItem = context.call_private_function_with_packed_args(target_address, function_selector, args_hash);\\n }\\n }\\n for i in ACCOUNT_MAX_PRIVATE_CALLS..ACCOUNT_MAX_CALLS {\\n let target_address = self.flattened_targets[i];\\n if target_address != 0 {\\n let function_selector = self.flattened_selectors[i];\\n let args_hash = self.flattened_args_hashes[i];\\n let _callStackItem = context.call_public_function_with_packed_args(target_address, function_selector, args_hash);\\n }\\n }\\n }\\n}","path":"/mnt/user-data/jan/aztec-packages/yarn-project/noir-libs/noir-aztec/src/entrypoint"}}}}');async function $a(e,t){const n=Rn.random(),r=[...zr(e,ua(),2),...zr(t,ua(),2)],s=[],a=await xs.get();for(const e of r)s.push(await Ba.fromArgs(e.args,a));return{payload:{flattened_args_hashes:s.map((e=>e.hash)),flattened_selectors:r.map((e=>Rn.fromBuffer(e.functionData.functionSelectorBuffer))),flattened_targets:r.map((e=>e.to.toField())),nonce:n},packedArguments:s}}function ei(e,t){return function(e,t,n){e.call("pedersen__init");const r=zs(t);return e.writeMemory(0,r),e.call("pedersen_plookup_compress_with_hash_index",0,0,n),Wr.Buffer.from(e.getMemorySlice(0,32))}(t,function(e){return[...e.flattened_args_hashes,...e.flattened_selectors,...e.flattened_targets,e.nonce]}(e).map((e=>e.toBuffer())),sr.SIGNATURE_PAYLOAD)}class ti{constructor(e,t,n,r,s=31337,a=1){this.address=e,this.partialAddress=t,this.privateKey=n,this.signer=r,this.chainId=s,this.version=a}async createTxExecutionRequest(e,t={}){if(t.origin&&!t.origin.equals(this.address))throw new Error(`Sender ${t.origin.toString()} does not match account address ${this.address.toString()}`);const[n,r]=Ka()(e,(e=>e.functionData.isPrivate)),s=await xs.get(),{payload:a,packedArguments:i}=await $a(n,r),o=ei(a,s),l=this.signer.constructSignature(o,this.privateKey).toBuffer(),c=[a,(await li(this.privateKey)).toBuffer(),l,this.partialAddress],u=this.getEntrypointAbi(),f=await Ba.fromArgs(Hn(u,c),s);return Fa.from({argsHash:f.hash,origin:this.address,functionData:Tr.fromAbi(u),txContext:Br.empty(this.chainId,this.version),packedArguments:[...i,f]})}getEntrypointAbi(){const e=qa.functions.find((e=>"entrypoint"===e.name));if(!e)throw new Error("Entrypoint abi for account contract not found");return e}}class ni{constructor(e){this.rpc=e}registerAccount(e,t){return this.rpc.registerAccount(e,t)}registerRecipient(e){return this.rpc.registerRecipient(e)}getAccounts(){return this.rpc.getAccounts()}getAccount(e){return this.rpc.getAccount(e)}getRecipients(){return this.rpc.getRecipients()}getRecipient(e){return this.rpc.getRecipient(e)}addContracts(e){return this.rpc.addContracts(e)}getContracts(){return this.rpc.getContracts()}simulateTx(e){return this.rpc.simulateTx(e)}sendTx(e){return this.rpc.sendTx(e)}getTxReceipt(e){return this.rpc.getTxReceipt(e)}getPublicStorageAt(e,t){return this.rpc.getPublicStorageAt(e,t)}viewTx(e,t,n,r){return this.rpc.viewTx(e,t,n,r)}getContractDataAndBytecode(e){return this.rpc.getContractDataAndBytecode(e)}getContractData(e){return this.rpc.getContractData(e)}getUnencryptedLogs(e,t){return this.rpc.getUnencryptedLogs(e,t)}getBlockNumber(){return this.rpc.getBlockNumber()}getNodeInfo(){return this.rpc.getNodeInfo()}isGlobalStateSynchronised(){return this.rpc.isGlobalStateSynchronised()}isAccountStateSynchronised(e){return this.rpc.isAccountStateSynchronised(e)}getSyncStatus(){return this.rpc.getSyncStatus()}}class ri extends ni{constructor(e,t){super(e),this.accountImpl=t}createTxExecutionRequest(e,t={}){return this.accountImpl.createTxExecutionRequest(e,t)}}class si extends ri{constructor(e,t,n){super(e,t),this.accountImpl=t,this.address=n}getCompleteAddress(){return this.address}}class ai extends ni{async createTxExecutionRequest(e){if(1!==e.length)throw new Error(`Unexpected number of executions. Expected 1, received ${e.length})`);const[t]=e,n=await xs.get(),r=await Ba.fromArgs(t.args,n),{chainId:s,version:a}=await this.rpc.getNodeInfo(),i=Br.empty(s,a);return Promise.resolve(new Fa(t.to,t.functionData,r.hash,i,[r]))}}async function ii(e,t,n,r=Rn.random(),s=1,a=ds("aztec:aztec.js:accounts")){const i=new Fi;for(let o=0;o<s;++o){const s=0==o&&n?n:ta.random(),l=await li(s),c=await Fs(t,[],r,l);await e.registerAccount(s,c.completeAddress.partialAddress);const u=new Xa(t,e,l).deploy().send({contractAddressSalt:r});await u.isMined({interval:.5});const f=await u.getReceipt();if(f.status!==Na.MINED)throw new Error(`Deployment tx not mined (status is ${f.status})`);const d=f.contractAddress;if(!d.equals(c.completeAddress.address))throw new Error(`Deployment address does not match for account contract (expected ${c.completeAddress.address.toString()} got ${d.toString()})`);a(`Created account ${d.toString()} with public key ${l.toString()}`),i.registerAccount(d,new ti(d,c.completeAddress.partialAddress,s,await Ks.new()))}return new ri(e,i)}async function oi(e,t,n,r,s){if(n.length!=s.length||r.length!=n.length)throw new Error("Keys and salts must be the same length");const a=new Fi;for(let e=0;e<n.length;e++){const i=await li(n[e]),o=await li(r[e]),l=(await Fs(t,[o.x,o.y],s[e],i)).completeAddress.address;a.registerAccount(l,new xi(l,r[e],await Ks.new()))}return new ri(e,a)}async function li(e){const t=await Us.new();return t.mul(t.generator(),e)}const ci=async e=>{const t=new URL(`${e}/api/l1-contract-addresses`),n=await aa((async()=>{try{return await(await fetch(t.toString())).json()}catch(e){}}),"isSandboxReady",120,1);return Object.fromEntries(Object.entries(n).map((([e,t])=>[e,Lr.fromString(t)])))};async function ui(e,t){return!!await e.getContractData(t)}var fi=n(233),di=n.n(fi),_i=n(816).Buffer;const hi=e=>"bigint"==typeof e?new Rn(e):e;class pi{constructor(e,t){this.eth=e,this.aztec=t}static async create(e,t){const n=new gi(e),r=new bi(t,await xs.get(),n);return new pi(n,r)}}class gi{constructor(e,t=ds("aztec:cheat_codes:eth")){this.rpcUrl=e,this.logger=t}async rpcCall(e,t){const n={body:`{"jsonrpc":"2.0", "method": "${e}", "params": ${JSON.stringify(t)}, "id": 1}`,method:"POST",headers:{"Content-Type":"application/json"}};return await(await fetch(this.rpcUrl,n)).json()}async blockNumber(){const e=await this.rpcCall("eth_blockNumber",[]);return parseInt(e.result,16)}async chainId(){const e=await this.rpcCall("eth_chainId",[]);return parseInt(e.result,16)}async timestamp(){const e=await this.rpcCall("eth_getBlockByNumber",["latest",!0]);return parseInt(e.result.timestamp,16)}async mine(e=1){const t=await this.rpcCall("hardhat_mine",[e]);if(t.error)throw new Error(`Error mining: ${t.error.message}`);this.logger(`Mined ${e} blocks`)}async setNextBlockTimestamp(e){const t=await this.rpcCall("evm_setNextBlockTimestamp",[e]);if(t.error)throw new Error(`Error setting next block timestamp: ${t.error.message}`);this.logger(`Set next block timestamp to ${e}`)}async dumpChainState(e){const t=await this.rpcCall("hardhat_dumpState",[]);if(t.error)throw new Error(`Error dumping state: ${t.error.message}`);const n=JSON.stringify(t.result);di().writeFileSync(`${e}.json`,n,"utf8"),this.logger(`Dumped state to ${e}`)}async loadChainState(e){const t=JSON.parse(di().readFileSync(`${e}.json`,"utf8")),n=await this.rpcCall("hardhat_loadState",[t]);if(n.error)throw new Error(`Error loading state: ${n.error.message}`);this.logger(`Loaded state from ${e}`)}async load(e,t){const n=await this.rpcCall("eth_getStorageAt",[e.toString(),Cn(t),"latest"]);return BigInt(n.result)}async store(e,t,n){const r=await this.rpcCall("hardhat_setStorageAt",[e.toString(),Cn(t),Cn(n,!0)]);if(r.error)throw new Error(`Error setting storage for contract ${e} at ${t}: ${r.error.message}`);this.logger(`Set storage for contract ${e} at ${t} to ${n}`)}keccak256(e,t){const n=Cn(t,!0).substring(2)+Cn(e,!0).substring(2);return An(hn(_i.from(n,"hex")))}async startImpersonating(e){const t=await this.rpcCall("hardhat_impersonateAccount",[e.toString()]);if(t.error)throw new Error(`Error impersonating ${e}: ${t.error.message}`);this.logger(`Impersonating ${e}`)}async stopImpersonating(e){const t=await this.rpcCall("hardhat_stopImpersonatingAccount",[e.toString()]);if(t.error)throw new Error(`Error when stopping the impersonation of ${e}: ${t.error.message}`);this.logger(`Stopped impersonating ${e}`)}async etch(e,t){const n=await this.rpcCall("hardhat_setCode",[e.toString(),t]);if(n.error)throw new Error(`Error setting bytecode for ${e}: ${n.error.message}`);this.logger(`Set bytecode for ${e} to ${t}`)}async getBytecode(e){return(await this.rpcCall("eth_getCode",[e.toString(),"latest"])).result}}class bi{constructor(e,t,n,r=ds("aztec:cheat_codes:aztec")){this.aztecRpc=e,this.wasm=t,this.eth=n,this.logger=r}computeSlotInMap(e,t){return Rn.fromBuffer(function(e,t){e.call("pedersen__init");const n=zs(t);return e.writeMemory(0,n),e.call("pedersen_plookup_commit",0,0),Wr.Buffer.from(e.getMemorySlice(0,32))}(this.wasm,[hi(e),hi(t)].map((e=>e.toBuffer()))))}async blockNumber(){return await this.aztecRpc.getBlockNumber()}async warp(e){const t=(await this.aztecRpc.getNodeInfo()).rollupAddress;await this.eth.setNextBlockTimestamp(e),await this.eth.store(t,1n,BigInt(e))}async loadPublic(e,t){const n=await this.aztecRpc.getPublicStorageAt(e,hi(t));if(void 0===n)throw new Error(`Storage slot ${t} not found`);return Rn.fromBuffer(n)}}const mi=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);function yi(e,t){if(!e)throw new Error(t)}class wi{constructor(e,t){if(this.toClass=new Map,this.toName=new Map,e)for(const t of Object.keys(e))this.register(t,e[t],"string");if(t)for(const e of Object.keys(t))this.register(e,t[e],"object")}register(e,t,n){yi("Buffer"!==e,"'Buffer' handling is hardcoded. Cannot use as name."),yi(mi(t.prototype,"toString")||mi(t.prototype,"toJSON"),`Class ${e} must define a toString() OR toJSON() method.`),yi(t.fromString||t.fromJSON,`Class ${e} must define a fromString() OR fromJSON() static method.`),this.toName.set(t,[e,n]),this.toClass.set(e,[t,n])}isRegisteredClassName(e){return this.toClass.has(e)}isRegisteredClass(e){return this.toName.has(e)}toClassObj(e){const t=this.toClass.get(e.type);yi(t,"Could not find type in lookup.");const[n,r]=t;return"string"===r&&"string"==typeof e.data?n.fromString(e.data):n.fromJSON(e.data)}toJsonObj(e){const t=this.toName.get(e.constructor);yi(t,"Could not find class in lookup.");const[n,r]=t;return{type:n,data:"string"===r?e.toString():e.toJSON()}}}function vi(e,t){return JSON.stringify(e,((e,t)=>"bigint"==typeof t?JSON.stringify({type:"bigint",data:t.toString()}):t),t?2:0)}function Ei(e,t){if(null!==t){if(!t)return t;if("Buffer"===t.type&&"string"==typeof t.data)return Wr.Buffer.from(t.data,"base64");if("bigint"===t.type&&"string"==typeof t.data)return BigInt(t.data);if("string"==typeof t.type&&e.isRegisteredClassName(t.type))return e.toClassObj(t);if(Array.isArray(t))return t.map((t=>Ei(e,t)));if(t.constructor===Object){const n={};for(const r of Object.keys(t))n[r]=Ei(e,t[r]);return n}return t}}function Ai(e,t){if(!t)return t;if(t instanceof Wr.Buffer)return{type:"Buffer",data:t.toString("base64")};if("bigint"==typeof t)return{type:"bigint",data:t.toString()};if(e.isRegisteredClass(t.constructor))return e.toJsonObj(t);if(Array.isArray(t))return t.map((t=>Ai(e,t)));if(t.constructor===Object){const n={};for(const r of Object.keys(t))n[r]=Ai(e,t[r]);return n}return t}n(7902);const Li=ds("json-rpc:json_rpc_client");async function Ci(e,t,n,r,s=!1){let a,i;Li("JsonRpcClient.fetch",e,t,"->",n),a=r?await fetch(`${e}/${t}`,{method:"POST",body:vi(n),headers:{"content-type":"application/json"}}):await fetch(e,{method:"POST",body:vi({...n,method:t}),headers:{"content-type":"application/json"}});try{i=await a.json()}catch(e){if(!a.ok)throw new Error(a.statusText);throw new Error(`Failed to parse body as JSON: ${a.text()}`)}if(!a.ok)throw s?new sa(i.error):new Error(i.error);return i}function Si(e,t,n){return async(r,s,a,i)=>await async function(e,t="Operation",n=function*(){const e=[1,1,1,2,4,8,16,32,64];let t=0;for(;;)yield e[Math.min(t++,e.length-1)]}(),r=ds("aztec:foundation:retry")){for(;;)try{return await e()}catch(e){if(e instanceof sa)throw e;const s=n.next().value;if(void 0===s)throw e;r(`${t} failed. Will retry in ${s}s...`),r.error(e),await na(1e3*s);continue}}((()=>Ci(r,s,a,i,t)),"JsonRpcClient request",function*(e){for(const t of e)yield t}(e),n)}function Ti(e,t,n,r,s=Ci){const a=new wi(t,n);let i=0;const o=async(t,n)=>{const o={jsonrpc:"2.0",id:i++,method:t,params:n.map((e=>Ai(a,e)))};Li("JsonRpcClient.request",t,"<-",n);const l=await s(e,t,o,r);if(Li("JsonRpcClient.result",t,"->",l),l.error)throw l.error;if(![null,void 0,"null","undefined"].includes(l.result))return Ei(a,l.result)};return new Proxy({},{get:(e,t)=>["then","catch"].includes(t)?Reflect.get(e,t):(...e)=>(Li("JsonRpcClient.constructor","proxy",t,"<-",e),o(t,e))})}const Pi=(e,t=Ci)=>Ti(e,{CompleteAddress:$s,AztecAddress:Er,TxExecutionRequest:Fa,ContractData:ca,ContractDataAndBytecode:la,TxHash:Sa,EthAddress:Lr,Point:Dn,PrivateKey:ta,Fr:Rn},{Tx:Ra,ContractDeploymentTx:Ia,TxReceipt:ka,L2BlockL2Logs:wa},!1,t);class Ri extends za{constructor(e,t){super(e,t),this.wallet=e}async getWallet(e){return(await this.wait(e)).wallet}async wait(e){return{...await super.wait(e),wallet:this.wallet}}}class Ii{constructor(e,t,n,r){this.rpc=e,this.encryptionPrivateKey=t,this.accountContract=n,r instanceof $s?this.completeAddress=r:this.salt=r?new Rn(r):Rn.random()}async getEncryptionPublicKey(){return this.encryptionPublicKey||(this.encryptionPublicKey=await li(this.encryptionPrivateKey)),this.encryptionPublicKey}async getEntrypoint(){const e=await this.rpc.getNodeInfo(),t=await this.getCompleteAddress();return this.accountContract.getEntrypoint(t,e)}async getCompleteAddress(){if(!this.completeAddress){const e=await li(this.encryptionPrivateKey),t=await Fs(this.accountContract.getContractAbi(),await this.accountContract.getDeploymentArgs(),this.salt,e);this.completeAddress=t.completeAddress}return this.completeAddress}async getWallet(){const e=await this.getEntrypoint();return new si(this.rpc,e,await this.getCompleteAddress())}async register(){const e=await this.getCompleteAddress();return await this.rpc.registerAccount(this.encryptionPrivateKey,e.partialAddress),this.getWallet()}async getDeployMethod(){if(!this.deployMethod){if(!this.salt)throw new Error("Cannot deploy account contract without known salt.");await this.register();const e=await this.getEncryptionPublicKey(),t=new Xa(this.accountContract.getContractAbi(),this.rpc,e),n=await this.accountContract.getDeploymentArgs();this.deployMethod=t.deploy(...n)}return this.deployMethod}async deploy(){const e=await this.getDeployMethod(),t=await this.getWallet(),n=e.send({contractAddressSalt:this.salt});return new Ri(t,n.getTxHash())}async waitDeploy(e={}){return await this.deploy().then((t=>t.wait(e))),this.getWallet()}}const Ni=JSON.parse('{"name":"EcdsaAccount","functions":[{"name":"compute_note_hash_and_nullifier","functionType":"unconstrained","isInternal":false,"parameters":[{"name":"contract_address","type":{"kind":"field"},"visibility":"private"},{"name":"nonce","type":{"kind":"field"},"visibility":"private"},{"name":"storage_slot","type":{"kind":"field"},"visibility":"private"},{"name":"preimage","type":{"kind":"array","length":5,"type":{"kind":"field"}},"visibility":"private"}],"returnTypes":[{"kind":"array","length":4,"type":{"kind":"field"}}],"bytecode":"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","verificationKey":"0000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f"},{"name":"constructor","functionType":"secret","isInternal":false,"parameters":[{"name":"signing_pub_key_x","type":{"kind":"array","length":32,"type":{"kind":"integer","sign":"unsigned","width":8}},"visibility":"public"},{"name":"signing_pub_key_y","type":{"kind":"array","length":32,"type":{"kind":"integer","sign":"unsigned","width":8}},"visibility":"public"}],"returnTypes":[],"bytecode":"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","verificationKey":"0000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f"},{"name":"entrypoint","functionType":"secret","isInternal":false,"parameters":[{"name":"payload","type":{"kind":"struct","name":"EntrypointPayload","fields":[{"name":"flattened_args_hashes","type":{"kind":"array","length":4,"type":{"kind":"field"}}},{"name":"flattened_selectors","type":{"kind":"array","length":4,"type":{"kind":"field"}}},{"name":"flattened_targets","type":{"kind":"array","length":4,"type":{"kind":"field"}}},{"name":"nonce","type":{"kind":"field"}}]},"visibility":"public"},{"name":"signature","type":{"kind":"array","length":64,"type":{"kind":"integer","sign":"unsigned","width":8}},"visibility":"public"}],"returnTypes":[],"bytecode":"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","verificationKey":"0000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f"}],"debug":{"debugSymbols":["eJyrVsrJT04syczPK1ayqq6tBQAz9wY7","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"],"fileMap":{"0":{"source":"mod storage;\\nmod ecdsa_public_key_note;\\n\\n// Account contract that uses ECDSA signatures for authentication on the same curve as Ethereum.\\n// The signing key is stored in an immutable private note and should be different from the signing key.\\ncontract EcdsaAccount {\\n use dep::std;\\n use dep::aztec::entrypoint;\\n use dep::aztec::entrypoint::EntrypointPayload;\\n use dep::aztec::abi;\\n use dep::aztec::abi::PrivateContextInputs;\\n use dep::aztec::abi::CallContext;\\n use dep::aztec::context::PrivateContext;\\n use dep::aztec::log::emit_encrypted_log;\\n use dep::aztec::oracle::get_public_key::get_public_key;\\n use dep::aztec::types::vec::BoundedVec;\\n use dep::aztec::types::point::Point;\\n use dep::aztec::constants_gen::GENERATOR_INDEX__SIGNATURE_PAYLOAD;\\n\\n use dep::aztec::constants_gen::MAX_NOTE_FIELDS_LENGTH;\\n use dep::aztec::note::{\\n note_header::{NoteHeader},\\n utils as note_utils,\\n };\\n\\n use crate::storage::Storage;\\n use crate::ecdsa_public_key_note::EcdsaPublicKeyNote;\\n use crate::ecdsa_public_key_note::EcdsaPublicKeyNoteInterface;\\n use crate::ecdsa_public_key_note::ECDSA_PUBLIC_KEY_NOTE_LEN;\\n\\n // All calls made by this account will be routed through this entrypoint\\n fn entrypoint( \\n inputs: pub PrivateContextInputs,\\n payload: pub EntrypointPayload, // contains a set of arguments, selectors, targets and a nonce\\n signature: pub [u8;64],\\n ) -> distinct pub abi::PrivateCircuitPublicInputs {\\n \\n // Initialise context\\n // ENTRYPOINT_PAYLOAD_SIZE(13) + 64\\n let mut args: BoundedVec<Field, 77> = BoundedVec::new(0);\\n args.push_array(payload.serialize());\\n for byte in signature { args.push(byte as Field); }\\n let mut context = PrivateContext::new(inputs, abi::hash_args(args.storage));\\n\\n // Load public key from storage\\n let storage = Storage::init();\\n let public_key = storage.public_key.get_note(&mut context);\\n\\n // Verify payload signature using Ethereum\'s signing scheme\\n // Note that noir expects the hash of the message/challenge as input to the ECDSA verification.\\n let payload_fields: [Field; entrypoint::ENTRYPOINT_PAYLOAD_SIZE] = payload.serialize();\\n let message_field: Field = std::hash::pedersen_with_separator(payload_fields, GENERATOR_INDEX__SIGNATURE_PAYLOAD)[0];\\n let message_bytes = message_field.to_be_bytes(32);\\n let hashed_message: [u8; 32] = std::hash::sha256(message_bytes);\\n let verification = std::ecdsa_secp256k1::verify_signature(public_key.x, public_key.y, signature, hashed_message);\\n assert(verification == true);\\n\\n payload.execute_calls(&mut context);\\n\\n context.finish()\\n }\\n\\n // Creates a new account out of an ECDSA public key to use for signature verification\\n fn constructor(\\n inputs: pub PrivateContextInputs,\\n signing_pub_key_x: pub [u8;32],\\n signing_pub_key_y: pub [u8;32],\\n ) -> distinct pub abi::PrivateCircuitPublicInputs {\\n let storage = Storage::init();\\n \\n let mut args: BoundedVec<Field, 64> = BoundedVec::new(0);\\n for byte in signing_pub_key_x { args.push(byte as Field); }\\n for byte in signing_pub_key_y { args.push(byte as Field); }\\n let mut context = PrivateContext::new(inputs, abi::hash_args(args.storage));\\n \\n let this = context.this_address();\\n let mut pub_key_note = EcdsaPublicKeyNote::new(signing_pub_key_x, signing_pub_key_y, this);\\n storage.public_key.initialise(&mut context, &mut pub_key_note);\\n \\n emit_encrypted_log(\\n &mut context,\\n this,\\n storage.public_key.storage_slot,\\n get_public_key(this),\\n pub_key_note.serialise(),\\n );\\n\\n context.finish()\\n }\\n\\n // Computes note hash and nullifier.\\n // Note 1: Needs to be defined by every contract producing logs.\\n // Note 2: Having it in all the contracts gives us the ability to compute the note hash and nullifier differently for different kind of notes.\\n unconstrained fn compute_note_hash_and_nullifier(contract_address: Field, nonce: Field, storage_slot: Field, preimage: [Field; ECDSA_PUBLIC_KEY_NOTE_LEN]) -> [Field; 4] {\\n assert(storage_slot == 1);\\n let note_header = NoteHeader { contract_address, nonce, storage_slot };\\n note_utils::compute_note_hash_and_nullifier(EcdsaPublicKeyNoteInterface, note_header, preimage)\\n }\\n}\\n","path":"/mnt/user-data/jan/aztec-packages/yarn-project/noir-contracts/src/contracts/ecdsa_account_contract/src/main"},"3":{"source":"mod poseidon;\\n\\n#[foreign(sha256)]\\nfn sha256<N>(_input : [u8; N]) -> [u8; 32] {}\\n\\n#[foreign(blake2s)]\\nfn blake2s<N>(_input : [u8; N]) -> [u8; 32] {}\\n\\nfn pedersen<N>(input : [Field; N]) -> [Field; 2] {\\n pedersen_with_separator(input, 0)\\n}\\n\\n#[foreign(pedersen)]\\nfn pedersen_with_separator<N>(_input : [Field; N], _separator : u32) -> [Field; 2] {}\\n\\n#[foreign(hash_to_field_128_security)]\\nfn hash_to_field<N>(_input : [Field; N]) -> Field {}\\n\\n#[foreign(keccak256)]\\nfn keccak256<N>(_input : [u8; N], _message_size: u32) -> [u8; 32] {}\\n\\n// mimc-p/p implementation\\n// constants are (publicly generated) random numbers, for instance using keccak as a ROM.\\n// You must use constants generated for the native field\\n// Rounds number should be ~ log(p)/log(exp)\\n// For 254 bit primes, exponent 7 and 91 rounds seems to be recommended\\nfn mimc<N>(x: Field, k: Field, constants: [Field; N], exp : Field) -> Field {\\n //round 0\\n let mut t = x + k;\\n let mut h = t.pow_32(exp);\\n //next rounds\\n for i in 1 .. constants.len() {\\n t = h + k + constants[i];\\n h = t.pow_32(exp);\\n };\\n h + k\\n}\\n\\nglobal MIMC_BN254_ROUNDS = 91;\\n\\n//mimc implementation with hardcoded parameters for BN254 curve.\\nfn mimc_bn254<N>(array: [Field; N]) -> Field {\\n //mimc parameters\\n let exponent = 7;\\n //generated from seed \\"mimc\\" using keccak256 \\n let constants: [Field; MIMC_BN254_ROUNDS] = [\\n 0, \\n 20888961410941983456478427210666206549300505294776164667214940546594746570981,\\n 15265126113435022738560151911929040668591755459209400716467504685752745317193,\\n 8334177627492981984476504167502758309043212251641796197711684499645635709656,\\n 1374324219480165500871639364801692115397519265181803854177629327624133579404,\\n 11442588683664344394633565859260176446561886575962616332903193988751292992472,\\n 2558901189096558760448896669327086721003508630712968559048179091037845349145,\\n 11189978595292752354820141775598510151189959177917284797737745690127318076389,\\n 3262966573163560839685415914157855077211340576201936620532175028036746741754,\\n 17029914891543225301403832095880481731551830725367286980611178737703889171730,\\n 4614037031668406927330683909387957156531244689520944789503628527855167665518,\\n 19647356996769918391113967168615123299113119185942498194367262335168397100658,\\n 5040699236106090655289931820723926657076483236860546282406111821875672148900,\\n 2632385916954580941368956176626336146806721642583847728103570779270161510514,\\n 17691411851977575435597871505860208507285462834710151833948561098560743654671,\\n 11482807709115676646560379017491661435505951727793345550942389701970904563183,\\n 8360838254132998143349158726141014535383109403565779450210746881879715734773,\\n 12663821244032248511491386323242575231591777785787269938928497649288048289525,\\n 3067001377342968891237590775929219083706800062321980129409398033259904188058,\\n 8536471869378957766675292398190944925664113548202769136103887479787957959589,\\n 19825444354178182240559170937204690272111734703605805530888940813160705385792,\\n 16703465144013840124940690347975638755097486902749048533167980887413919317592,\\n 13061236261277650370863439564453267964462486225679643020432589226741411380501,\\n 10864774797625152707517901967943775867717907803542223029967000416969007792571,\\n 10035653564014594269791753415727486340557376923045841607746250017541686319774,\\n 3446968588058668564420958894889124905706353937375068998436129414772610003289,\\n 4653317306466493184743870159523234588955994456998076243468148492375236846006,\\n 8486711143589723036499933521576871883500223198263343024003617825616410932026,\\n 250710584458582618659378487568129931785810765264752039738223488321597070280,\\n 2104159799604932521291371026105311735948154964200596636974609406977292675173,\\n 16313562605837709339799839901240652934758303521543693857533755376563489378839,\\n 6032365105133504724925793806318578936233045029919447519826248813478479197288,\\n 14025118133847866722315446277964222215118620050302054655768867040006542798474,\\n 7400123822125662712777833064081316757896757785777291653271747396958201309118,\\n 1744432620323851751204287974553233986555641872755053103823939564833813704825,\\n 8316378125659383262515151597439205374263247719876250938893842106722210729522,\\n 6739722627047123650704294650168547689199576889424317598327664349670094847386,\\n 21211457866117465531949733809706514799713333930924902519246949506964470524162,\\n 13718112532745211817410303291774369209520657938741992779396229864894885156527,\\n 5264534817993325015357427094323255342713527811596856940387954546330728068658,\\n 18884137497114307927425084003812022333609937761793387700010402412840002189451,\\n 5148596049900083984813839872929010525572543381981952060869301611018636120248,\\n 19799686398774806587970184652860783461860993790013219899147141137827718662674,\\n 19240878651604412704364448729659032944342952609050243268894572835672205984837,\\n 10546185249390392695582524554167530669949955276893453512788278945742408153192,\\n 5507959600969845538113649209272736011390582494851145043668969080335346810411,\\n 18177751737739153338153217698774510185696788019377850245260475034576050820091,\\n 19603444733183990109492724100282114612026332366576932662794133334264283907557,\\n 10548274686824425401349248282213580046351514091431715597441736281987273193140,\\n 1823201861560942974198127384034483127920205835821334101215923769688644479957,\\n 11867589662193422187545516240823411225342068709600734253659804646934346124945,\\n 18718569356736340558616379408444812528964066420519677106145092918482774343613,\\n 10530777752259630125564678480897857853807637120039176813174150229243735996839,\\n 20486583726592018813337145844457018474256372770211860618687961310422228379031,\\n 12690713110714036569415168795200156516217175005650145422920562694422306200486,\\n 17386427286863519095301372413760745749282643730629659997153085139065756667205,\\n 2216432659854733047132347621569505613620980842043977268828076165669557467682,\\n 6309765381643925252238633914530877025934201680691496500372265330505506717193,\\n 20806323192073945401862788605803131761175139076694468214027227878952047793390,\\n 4037040458505567977365391535756875199663510397600316887746139396052445718861,\\n 19948974083684238245321361840704327952464170097132407924861169241740046562673,\\n 845322671528508199439318170916419179535949348988022948153107378280175750024,\\n 16222384601744433420585982239113457177459602187868460608565289920306145389382,\\n 10232118865851112229330353999139005145127746617219324244541194256766741433339,\\n 6699067738555349409504843460654299019000594109597429103342076743347235369120,\\n 6220784880752427143725783746407285094967584864656399181815603544365010379208,\\n 6129250029437675212264306655559561251995722990149771051304736001195288083309,\\n 10773245783118750721454994239248013870822765715268323522295722350908043393604,\\n 4490242021765793917495398271905043433053432245571325177153467194570741607167,\\n 19596995117319480189066041930051006586888908165330319666010398892494684778526,\\n 837850695495734270707668553360118467905109360511302468085569220634750561083,\\n 11803922811376367215191737026157445294481406304781326649717082177394185903907,\\n 10201298324909697255105265958780781450978049256931478989759448189112393506592,\\n 13564695482314888817576351063608519127702411536552857463682060761575100923924,\\n 9262808208636973454201420823766139682381973240743541030659775288508921362724,\\n 173271062536305557219323722062711383294158572562695717740068656098441040230,\\n 18120430890549410286417591505529104700901943324772175772035648111937818237369,\\n 20484495168135072493552514219686101965206843697794133766912991150184337935627,\\n 19155651295705203459475805213866664350848604323501251939850063308319753686505,\\n 11971299749478202793661982361798418342615500543489781306376058267926437157297,\\n 18285310723116790056148596536349375622245669010373674803854111592441823052978,\\n 7069216248902547653615508023941692395371990416048967468982099270925308100727,\\n 6465151453746412132599596984628739550147379072443683076388208843341824127379,\\n 16143532858389170960690347742477978826830511669766530042104134302796355145785,\\n 19362583304414853660976404410208489566967618125972377176980367224623492419647,\\n 1702213613534733786921602839210290505213503664731919006932367875629005980493,\\n 10781825404476535814285389902565833897646945212027592373510689209734812292327,\\n 4212716923652881254737947578600828255798948993302968210248673545442808456151,\\n 7594017890037021425366623750593200398174488805473151513558919864633711506220,\\n 18979889247746272055963929241596362599320706910852082477600815822482192194401,\\n 13602139229813231349386885113156901793661719180900395818909719758150455500533,\\n ];\\n\\n let mut r = 0;\\n for elem in array {\\n let h = mimc(elem, r, constants, exponent);\\n r = r + elem + h;\\n }\\n r\\n}\\n","path":"std/hash"},"18":{"source":"\\nimpl Field {\\n #[builtin(to_le_bits)]\\n fn to_le_bits(_x : Field, _bit_size: u32) -> [u1] {}\\n #[builtin(to_be_bits)]\\n fn to_be_bits(_x : Field, _bit_size: u32) -> [u1] {}\\n\\n fn to_le_bytes(x : Field, byte_size: u32) -> [u8] {\\n x.to_le_radix(256, byte_size)\\n }\\n fn to_be_bytes(x : Field, byte_size: u32) -> [u8] {\\n x.to_be_radix(256, byte_size)\\n }\\n\\n #[builtin(to_le_radix)]\\n //decompose _x into a _result_len vector over the _radix basis\\n //_radix must be less than 256\\n fn to_le_radix(_x : Field, _radix: u32, _result_len: u32) -> [u8] {}\\n #[builtin(to_be_radix)]\\n fn to_be_radix(_x : Field, _radix: u32, _result_len: u32) -> [u8] {}\\n\\n // Returns self to the power of the given exponent value.\\n // Caution: we assume the exponent fits into 32 bits\\n // using a bigger bit size impacts negatively the performance and should be done only if the exponent does not fit in 32 bits\\n fn pow_32(self, exponent: Field) -> Field {\\n let mut r: Field = 1;\\n let b = exponent.to_le_bits(32);\\n\\n for i in 1..33 {\\n r *= r;\\n r = (b[32-i] as Field) * (r * self) + (1 - b[32-i] as Field) * r;\\n }\\n r\\n }\\n\\n // Parity of (prime) Field element, i.e. sgn0(x mod p) = 0 if x ∈ {0, ..., p-1} is even, otherwise sgn0(x mod p) = 1.\\n fn sgn0(self) -> u1 {\\n self as u1\\n }\\n}\\n\\n#[builtin(modulus_num_bits)]\\nfn modulus_num_bits() -> Field {}\\n\\n#[builtin(modulus_be_bits)]\\nfn modulus_be_bits() -> [u1] {}\\n\\n#[builtin(modulus_le_bits)]\\nfn modulus_le_bits() -> [u1] {}\\n\\n#[builtin(modulus_be_bytes)]\\nfn modulus_be_bytes() -> [u8] {}\\n\\n#[builtin(modulus_le_bytes)]\\nfn modulus_le_bytes() -> [u8] {}\\n","path":"std/field"},"31":{"source":"use crate::constants_gen::{\\n RETURN_VALUES_LENGTH,\\n MAX_READ_REQUESTS_PER_CALL,\\n MAX_NEW_COMMITMENTS_PER_CALL,\\n MAX_NEW_NULLIFIERS_PER_CALL,\\n MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL,\\n MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL,\\n MAX_NEW_L2_TO_L1_MSGS_PER_CALL,\\n NUM_FIELDS_PER_SHA256,\\n MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL,\\n MAX_PUBLIC_DATA_READS_PER_CALL,\\n GENERATOR_INDEX__FUNCTION_ARGS,\\n HISTORIC_BLOCK_DATA_LENGTH,\\n CONTRACT_DEPLOYMENT_DATA_LENGTH,\\n CALL_CONTEXT_LENGTH,\\n PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH,\\n PRIVATE_CIRCUIT_PUBLIC_INPUTS_HASH_INPUT_LENGTH,\\n CONTRACT_STORAGE_UPDATE_REQUEST_LENGTH,\\n CONTRACT_STORAGE_READ_LENGTH,\\n PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH,\\n PUBLIC_CIRCUIT_PUBLIC_INPUTS_HASH_INPUT_LENGTH,\\n GENERATOR_INDEX__PUBLIC_CIRCUIT_PUBLIC_INPUTS,\\n GENERATOR_INDEX__FUNCTION_DATA,\\n GENERATOR_INDEX__PUBLIC_DATA_READ,\\n GENERATOR_INDEX__PUBLIC_DATA_UPDATE_REQUEST,\\n GENERATOR_INDEX__CALL_CONTEXT,\\n GENERATOR_INDEX__PRIVATE_CIRCUIT_PUBLIC_INPUTS,\\n GENERATOR_INDEX__CONTRACT_DEPLOYMENT_DATA,\\n};\\n\\nuse crate::oracle::debug_log;\\nuse crate::types::vec::BoundedVec;\\nuse crate::types::point::Point;\\n\\nstruct PrivateGlobalVariables {\\n chain_id: Field,\\n version: Field,\\n}\\n\\nimpl PrivateGlobalVariables {\\n fn serialize(self) -> [Field; 2] {\\n [self.chain_id, self.version]\\n }\\n}\\n\\nstruct PublicGlobalVariables {\\n chain_id: Field,\\n version: Field,\\n block_number: Field,\\n timestamp: Field,\\n}\\n\\nimpl PublicGlobalVariables {\\n fn serialize(self) -> [Field; 4] {\\n [self.chain_id, self.version, self.block_number, self.timestamp]\\n }\\n}\\n\\nstruct ContractDeploymentData {\\n deployer_public_key: Point,\\n constructor_vk_hash : Field,\\n function_tree_root : Field,\\n contract_address_salt : Field,\\n portal_contract_address : Field,\\n}\\n\\nimpl ContractDeploymentData {\\n fn serialize(self) -> [Field; CONTRACT_DEPLOYMENT_DATA_LENGTH] {\\n [\\n self.deployer_public_key.x,\\n self.deployer_public_key.y,\\n self.constructor_vk_hash,\\n self.function_tree_root,\\n self.contract_address_salt,\\n self.portal_contract_address,\\n ]\\n }\\n\\n fn hash(self) -> Field {\\n dep::std::hash::pedersen_with_separator(self.serialize(), GENERATOR_INDEX__CONTRACT_DEPLOYMENT_DATA)[0]\\n }\\n}\\n\\n// PrivateContextInputs are expected to be provided to each private function\\nstruct PrivateContextInputs {\\n call_context : CallContext,\\n block_data: HistoricBlockData,\\n\\n contract_deployment_data: ContractDeploymentData,\\n\\n private_global_variables: PrivateGlobalVariables,\\n}\\n\\n// PublicContextInputs are expected to be provided to each public function\\nstruct PublicContextInputs {\\n call_context: CallContext,\\n block_data: HistoricBlockData,\\n\\n public_global_variables: PublicGlobalVariables,\\n}\\n\\nstruct CallContext {\\n msg_sender : Field,\\n storage_contract_address : Field,\\n portal_contract_address : Field,\\n\\n is_delegate_call : bool,\\n is_static_call : bool,\\n is_contract_deployment: bool,\\n}\\n\\nimpl CallContext {\\n fn serialize(self) -> [Field; CALL_CONTEXT_LENGTH] {\\n [\\n self.msg_sender,\\n self.storage_contract_address,\\n self.portal_contract_address,\\n self.is_delegate_call as Field,\\n self.is_static_call as Field,\\n self.is_contract_deployment as Field,\\n ]\\n }\\n\\n fn hash(self) -> Field {\\n dep::std::hash::pedersen_with_separator(self.serialize(), GENERATOR_INDEX__CALL_CONTEXT)[0]\\n }\\n}\\n\\nstruct HistoricBlockData {\\n private_data_tree_root : Field,\\n nullifier_tree_root : Field,\\n contract_tree_root : Field,\\n l1_to_l2_messages_tree_root : Field,\\n blocks_tree_root: Field,\\n public_data_tree_root: Field,\\n global_variables_hash: Field,\\n}\\n\\nimpl HistoricBlockData {\\n // NOTE: this order must match the order in `private_circuit_public_inputs.hpp`\\n fn serialize(self) -> [Field; HISTORIC_BLOCK_DATA_LENGTH] {\\n [\\n self.private_data_tree_root,\\n self.nullifier_tree_root,\\n self.contract_tree_root,\\n self.l1_to_l2_messages_tree_root,\\n self.blocks_tree_root,\\n self.public_data_tree_root,\\n self.global_variables_hash,\\n ]\\n }\\n\\n fn empty() -> Self {\\n Self { private_data_tree_root: 0, nullifier_tree_root: 0, contract_tree_root: 0, l1_to_l2_messages_tree_root: 0, blocks_tree_root: 0, public_data_tree_root: 0, global_variables_hash: 0 }\\n }\\n}\\n\\nstruct FunctionData {\\n function_selector: Field,\\n is_internal: bool,\\n is_private: bool,\\n is_constructor: bool,\\n}\\n\\nimpl FunctionData {\\n fn hash(self) -> Field {\\n dep::std::hash::pedersen_with_separator([\\n self.function_selector,\\n self.is_internal as Field,\\n self.is_private as Field,\\n self.is_constructor as Field,\\n ], GENERATOR_INDEX__FUNCTION_DATA)[0]\\n }\\n}\\n\\nstruct PrivateCircuitPublicInputs {\\n call_context: CallContext,\\n args_hash: Field,\\n return_values: [Field; RETURN_VALUES_LENGTH],\\n read_requests: [Field; crate::abi::MAX_READ_REQUESTS_PER_CALL],\\n new_commitments: [Field; MAX_NEW_COMMITMENTS_PER_CALL],\\n new_nullifiers: [Field; MAX_NEW_NULLIFIERS_PER_CALL],\\n nullified_commitments: [Field; MAX_NEW_NULLIFIERS_PER_CALL],\\n private_call_stack: [Field; MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL],\\n public_call_stack: [Field; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL],\\n new_l2_to_l1_msgs: [Field; MAX_NEW_L2_TO_L1_MSGS_PER_CALL],\\n // Explore introducing a new type like uint256 (similar to Point), so it\'s more explicit that\\n // we\'re talking about a single number backed by two field elements.\\n encrypted_logs_hash: [Field; NUM_FIELDS_PER_SHA256],\\n unencrypted_logs_hash: [Field; NUM_FIELDS_PER_SHA256],\\n encrypted_log_preimages_length: Field,\\n unencrypted_log_preimages_length: Field,\\n block_data: HistoricBlockData,\\n contract_deployment_data: ContractDeploymentData,\\n chain_id: Field,\\n version: Field,\\n}\\n\\nimpl PrivateCircuitPublicInputs {\\n fn hash(self) -> Field {\\n let mut fields: BoundedVec<Field, PRIVATE_CIRCUIT_PUBLIC_INPUTS_HASH_INPUT_LENGTH> = BoundedVec::new(0); \\n fields.push(self.call_context.hash());\\n fields.push(self.args_hash);\\n fields.push_array(self.return_values);\\n fields.push_array(self.read_requests);\\n fields.push_array(self.new_commitments);\\n fields.push_array(self.new_nullifiers);\\n fields.push_array(self.nullified_commitments);\\n fields.push_array(self.private_call_stack);\\n fields.push_array(self.public_call_stack);\\n fields.push_array(self.new_l2_to_l1_msgs);\\n fields.push_array(self.encrypted_logs_hash);\\n fields.push_array(self.unencrypted_logs_hash);\\n fields.push(self.encrypted_log_preimages_length);\\n fields.push(self.unencrypted_log_preimages_length);\\n fields.push_array(self.block_data.serialize());\\n fields.push(self.contract_deployment_data.hash());\\n fields.push(self.chain_id);\\n fields.push(self.version);\\n\\n dep::std::hash::pedersen_with_separator(fields.storage, GENERATOR_INDEX__PRIVATE_CIRCUIT_PUBLIC_INPUTS)[0]\\n }\\n\\n fn serialize(self) -> [Field; PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH] {\\n let mut fields: BoundedVec<Field, PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH> = BoundedVec::new(0); \\n fields.push_array(self.call_context.serialize());\\n fields.push(self.args_hash);\\n fields.push_array(self.return_values);\\n fields.push_array(self.read_requests);\\n fields.push_array(self.new_commitments);\\n fields.push_array(self.new_nullifiers);\\n fields.push_array(self.private_call_stack);\\n fields.push_array(self.public_call_stack);\\n fields.push_array(self.new_l2_to_l1_msgs);\\n fields.push_array(self.encrypted_logs_hash);\\n fields.push_array(self.unencrypted_logs_hash);\\n fields.push(self.encrypted_log_preimages_length);\\n fields.push(self.unencrypted_log_preimages_length);\\n fields.push_array(self.block_data.serialize());\\n fields.push_array(self.contract_deployment_data.serialize());\\n fields.push(self.chain_id);\\n fields.push(self.version);\\n fields.storage\\n }\\n}\\n\\nstruct ContractStorageRead {\\n storage_slot: Field,\\n value: Field,\\n}\\n\\nimpl ContractStorageRead {\\n fn serialize(self) -> [Field; CONTRACT_STORAGE_READ_LENGTH] {\\n [self.storage_slot, self.value]\\n }\\n\\n fn hash(self) -> Field {\\n dep::std::hash::pedersen_with_separator(self.serialize(), GENERATOR_INDEX__PUBLIC_DATA_READ)[0]\\n }\\n\\n fn empty() -> Self {\\n Self { storage_slot: 0, value: 0 }\\n }\\n}\\n\\nstruct ContractStorageUpdateRequest {\\n storage_slot: Field,\\n old_value: Field,\\n new_value: Field,\\n}\\n\\nimpl ContractStorageUpdateRequest {\\n fn serialize(self) -> [Field; CONTRACT_STORAGE_UPDATE_REQUEST_LENGTH] {\\n [self.storage_slot, self.old_value, self.new_value]\\n }\\n\\n fn hash(self) -> Field {\\n dep::std::hash::pedersen_with_separator(self.serialize(), GENERATOR_INDEX__PUBLIC_DATA_UPDATE_REQUEST)[0]\\n }\\n\\n fn empty() -> Self {\\n Self { storage_slot: 0, old_value: 0, new_value: 0 }\\n }\\n}\\n\\n\\nstruct PublicCircuitPublicInputs {\\n call_context: CallContext,\\n args_hash: Field,\\n return_values: [Field; RETURN_VALUES_LENGTH],\\n contract_storage_update_requests: [ContractStorageUpdateRequest; MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL],\\n contract_storage_read: [ContractStorageRead; MAX_PUBLIC_DATA_READS_PER_CALL],\\n public_call_stack: [Field; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL],\\n new_commitments: [Field; MAX_NEW_COMMITMENTS_PER_CALL],\\n new_nullifiers: [Field; crate::abi::MAX_NEW_NULLIFIERS_PER_CALL],\\n new_l2_to_l1_msgs: [Field; crate::abi::MAX_NEW_L2_TO_L1_MSGS_PER_CALL],\\n unencrypted_logs_hash: [Field; NUM_FIELDS_PER_SHA256],\\n unencrypted_log_preimages_length: Field,\\n block_data: HistoricBlockData,\\n prover_address: Field,\\n\\n // TODO: include globals in here and check them elsewhere\\n // https://github.com/AztecProtocol/aztec-packages/issues/1567\\n}\\n\\nimpl PublicCircuitPublicInputs {\\n \\n fn hash(self) -> Field {\\n let mut inputs: BoundedVec<Field, PUBLIC_CIRCUIT_PUBLIC_INPUTS_HASH_INPUT_LENGTH> = BoundedVec::new(0);\\n inputs.push(self.call_context.hash());\\n inputs.push(self.args_hash);\\n inputs.push_array(self.return_values);\\n for i in 0..MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL {\\n inputs.push(self.contract_storage_update_requests[i].hash());\\n }\\n for i in 0..MAX_PUBLIC_DATA_READS_PER_CALL {\\n inputs.push(self.contract_storage_read[i].hash());\\n }\\n inputs.push_array(self.public_call_stack);\\n inputs.push_array(self.new_commitments);\\n inputs.push_array(self.new_nullifiers);\\n inputs.push_array(self.new_l2_to_l1_msgs);\\n\\n // We do not include block_data since it\'s not in the cpp hash\\n\\n inputs.push_array(self.unencrypted_logs_hash);\\n inputs.push(self.unencrypted_log_preimages_length);\\n inputs.push_array(self.block_data.serialize()); // see https://github.com/AztecProtocol/aztec-packages/issues/1473\\n inputs.push(self.prover_address);\\n\\n dep::std::hash::pedersen_with_separator(inputs.storage, GENERATOR_INDEX__PUBLIC_CIRCUIT_PUBLIC_INPUTS)[0]\\n }\\n\\n fn serialize(self) -> [Field; PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH] {\\n let mut fields: BoundedVec<Field, PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH> = BoundedVec::new(0); \\n fields.push_array(self.call_context.serialize()); \\n fields.push(self.args_hash);\\n fields.push_array(self.return_values);\\n for i in 0..MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL {\\n fields.push_array(self.contract_storage_update_requests[i].serialize());\\n }\\n for i in 0..MAX_PUBLIC_DATA_READS_PER_CALL {\\n fields.push_array(self.contract_storage_read[i].serialize());\\n }\\n fields.push_array(self.public_call_stack);\\n fields.push_array(self.new_commitments);\\n fields.push_array(self.new_nullifiers);\\n fields.push_array(self.new_l2_to_l1_msgs);\\n fields.push_array(self.unencrypted_logs_hash);\\n fields.push(self.unencrypted_log_preimages_length);\\n fields.push_array(self.block_data.serialize());\\n fields.push(self.prover_address);\\n fields.storage\\n }\\n}\\n\\nglobal ARGS_HASH_CHUNK_LENGTH: u32 = 32;\\nglobal ARGS_HASH_CHUNK_COUNT: u32 = 16;\\n\\nfn hash_args<N>(args: [Field; N]) -> Field {\\n if args.len() == 0 {\\n 0\\n } else {\\n let mut chunks_hashes = [0; ARGS_HASH_CHUNK_COUNT];\\n for i in 0..ARGS_HASH_CHUNK_COUNT {\\n let mut chunk_hash = 0;\\n let start_chunk_index = i * ARGS_HASH_CHUNK_LENGTH;\\n if start_chunk_index < (args.len() as u32) {\\n let mut chunk_args = [0; ARGS_HASH_CHUNK_LENGTH];\\n for j in 0..ARGS_HASH_CHUNK_LENGTH {\\n let item_index = i * ARGS_HASH_CHUNK_LENGTH + j;\\n if item_index < (args.len() as u32) {\\n chunk_args[j] = args[item_index];\\n }\\n }\\n chunk_hash = dep::std::hash::pedersen_with_separator(chunk_args, GENERATOR_INDEX__FUNCTION_ARGS)[0];\\n }\\n chunks_hashes[i] = chunk_hash;\\n }\\n dep::std::hash::pedersen_with_separator(chunks_hashes, GENERATOR_INDEX__FUNCTION_ARGS)[0]\\n }\\n}\\n","path":"/mnt/user-data/jan/aztec-packages/yarn-project/noir-libs/noir-aztec/src/abi"},"32":{"source":"use crate::constants_gen::{\\n EMPTY_NULLIFIED_COMMITMENT,\\n MAX_NEW_COMMITMENTS_PER_CALL,\\n MAX_NEW_L2_TO_L1_MSGS_PER_CALL,\\n MAX_NEW_NULLIFIERS_PER_CALL,\\n MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL,\\n MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL,\\n MAX_PUBLIC_DATA_READS_PER_CALL,\\n MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL,\\n MAX_READ_REQUESTS_PER_CALL,\\n NUM_FIELDS_PER_SHA256,\\n RETURN_VALUES_LENGTH,\\n};\\n\\nuse crate::abi;\\n\\nuse crate::abi::{\\n hash_args,\\n CallContext,\\n ContractDeploymentData,\\n HistoricBlockData,\\n FunctionData,\\n PrivateCircuitPublicInputs,\\n PublicCircuitPublicInputs,\\n};\\n\\n// TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\\n// use dep::std::collections::vec::Vec;\\n\\n// l1 to l2 messaging\\nuse crate::messaging::process_l1_to_l2_message;\\nuse crate::private_call_stack_item::PrivateCallStackItem;\\nuse crate::public_call_stack_item::PublicCallStackItem;\\n\\nuse crate::types::{\\n vec::BoundedVec,\\n point::Point,\\n};\\n\\nuse crate::utils::arr_copy_slice;\\n\\nuse crate::oracle::{\\n arguments,\\n call_private_function::call_private_function_internal,\\n public_call::call_public_function_internal,\\n enqueue_public_function_call::enqueue_public_function_call_internal,\\n context::get_portal_address,\\n};\\n\\n\\n// When finished, one can call .finish() to convert back to the abi\\nstruct PrivateContext {\\n inputs: abi::PrivateContextInputs,\\n\\n args_hash : Field,\\n return_values : BoundedVec<Field, RETURN_VALUES_LENGTH>,\\n\\n read_requests: BoundedVec<Field, MAX_READ_REQUESTS_PER_CALL>,\\n\\n new_commitments: BoundedVec<Field, MAX_NEW_COMMITMENTS_PER_CALL>,\\n new_nullifiers: BoundedVec<Field, MAX_NEW_NULLIFIERS_PER_CALL>,\\n nullified_commitments: BoundedVec<Field, MAX_NEW_NULLIFIERS_PER_CALL>,\\n\\n private_call_stack : BoundedVec<Field, MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL>,\\n public_call_stack : BoundedVec<Field, MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL>,\\n new_l2_to_l1_msgs : BoundedVec<Field, MAX_NEW_L2_TO_L1_MSGS_PER_CALL>,\\n\\n block_data: HistoricBlockData,\\n\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\\n // encrypted_logs_preimages: Vec<Field>,\\n // unencrypted_logs_preimages: Vec<Field>,\\n}\\n\\nimpl PrivateContext {\\n fn new(inputs: abi::PrivateContextInputs, args_hash: Field) -> PrivateContext {\\n PrivateContext {\\n inputs: inputs,\\n\\n args_hash: args_hash,\\n return_values: BoundedVec::new(0),\\n\\n read_requests: BoundedVec::new(0),\\n\\n new_commitments: BoundedVec::new(0),\\n new_nullifiers: BoundedVec::new(0),\\n nullified_commitments: BoundedVec::new(0),\\n\\n block_data: inputs.block_data,\\n\\n private_call_stack: BoundedVec::new(0),\\n public_call_stack: BoundedVec::new(0),\\n new_l2_to_l1_msgs: BoundedVec::new(0),\\n\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\\n // encrypted_logs_preimages: Vec::new(),\\n // unencrypted_logs_preimages: Vec::new(),\\n }\\n }\\n\\n fn msg_sender(self) -> Field {\\n self.inputs.call_context.msg_sender\\n }\\n\\n fn this_address(self) -> Field {\\n self.inputs.call_context.storage_contract_address\\n }\\n\\n fn this_portal_address(self) -> Field {\\n self.inputs.call_context.portal_contract_address\\n }\\n\\n fn chain_id(self) -> Field {\\n self.inputs.private_global_variables.chain_id\\n }\\n\\n fn version(self) -> Field {\\n self.inputs.private_global_variables.version\\n }\\n\\n fn finish(self) -> abi::PrivateCircuitPublicInputs {\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\\n let encrypted_logs_hash = [0; NUM_FIELDS_PER_SHA256];\\n let unencrypted_logs_hash = [0; NUM_FIELDS_PER_SHA256];\\n let encrypted_log_preimages_length = 0;\\n let unencrypted_log_preimages_length = 0;\\n\\n let priv_circuit_pub_inputs = abi::PrivateCircuitPublicInputs {\\n call_context: self.inputs.call_context,\\n args_hash: self.args_hash,\\n return_values: self.return_values.storage,\\n read_requests: self.read_requests.storage,\\n new_commitments: self.new_commitments.storage,\\n new_nullifiers: self.new_nullifiers.storage,\\n nullified_commitments: self.nullified_commitments.storage,\\n private_call_stack: self.private_call_stack.storage,\\n public_call_stack: self.public_call_stack.storage,\\n new_l2_to_l1_msgs: self.new_l2_to_l1_msgs.storage,\\n encrypted_logs_hash: encrypted_logs_hash,\\n unencrypted_logs_hash: unencrypted_logs_hash,\\n encrypted_log_preimages_length: encrypted_log_preimages_length,\\n unencrypted_log_preimages_length: unencrypted_log_preimages_length,\\n block_data: self.block_data,\\n contract_deployment_data: self.inputs.contract_deployment_data,\\n chain_id: self.inputs.private_global_variables.chain_id,\\n version: self.inputs.private_global_variables.version,\\n };\\n priv_circuit_pub_inputs\\n }\\n\\n fn push_read_request(&mut self, read_request: Field) {\\n self.read_requests.push(read_request);\\n }\\n\\n fn push_new_note_hash(&mut self, note_hash: Field) {\\n self.new_commitments.push(note_hash);\\n }\\n\\n fn push_new_nullifier(&mut self, nullifier: Field, nullified_commitment: Field) {\\n self.new_nullifiers.push(nullifier);\\n self.nullified_commitments.push(nullified_commitment);\\n }\\n\\n fn message_portal(&mut self, content: Field) {\\n self.new_l2_to_l1_msgs.push(content);\\n }\\n\\n // PrivateContextInputs must be temporarily passed in to prevent too many unknowns\\n // Note this returns self to get around an issue where mutable structs do not maintain mutations unless reassigned\\n fn consume_l1_to_l2_message(&mut self, inputs: abi::PrivateContextInputs, msg_key: Field, content: Field, secret: Field) {\\n let nullifier = process_l1_to_l2_message(inputs.block_data.l1_to_l2_messages_tree_root, inputs.call_context.storage_contract_address, msg_key, content, secret);\\n\\n // Push nullifier (and the \\"commitment\\" corresponding to this can be \\"empty\\")\\n self.push_new_nullifier(nullifier, EMPTY_NULLIFIED_COMMITMENT)\\n }\\n\\n fn accumulate_encrypted_logs<N>(&mut self, log: [Field; N]) {\\n let _void1 = self.inputs;\\n let _void2 = log;\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\\n }\\n\\n fn accumulate_unencrypted_logs<T>(&mut self, log: T) {\\n let _void1 = self.inputs;\\n let _void2 = log;\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\\n }\\n\\n fn call_private_function<ARGS_COUNT>(\\n &mut self,\\n contract_address: Field, \\n function_selector: Field, \\n args: [Field; ARGS_COUNT]\\n ) -> [Field; RETURN_VALUES_LENGTH] {\\n let args_hash = hash_args(args);\\n assert(args_hash == arguments::pack_arguments(args));\\n self.call_private_function_with_packed_args(contract_address, function_selector, args_hash)\\n }\\n\\n fn call_private_function_no_args(\\n &mut self,\\n contract_address: Field, \\n function_selector: Field, \\n ) -> [Field; RETURN_VALUES_LENGTH] {\\n self.call_private_function_with_packed_args(contract_address, function_selector, 0)\\n }\\n\\n fn call_private_function_with_packed_args(\\n &mut self,\\n contract_address: Field,\\n function_selector: Field,\\n args_hash: Field\\n ) -> [Field; RETURN_VALUES_LENGTH] {\\n let fields = call_private_function_internal(\\n contract_address, \\n function_selector, \\n args_hash\\n );\\n let item = PrivateCallStackItem {\\n contract_address: fields[0],\\n function_data: FunctionData {\\n function_selector: fields[1],\\n is_internal: fields[2] as bool,\\n is_private: fields[3] as bool,\\n is_constructor: fields[4] as bool,\\n },\\n public_inputs: PrivateCircuitPublicInputs {\\n call_context: CallContext {\\n msg_sender : fields[5],\\n storage_contract_address : fields[6],\\n portal_contract_address : fields[7],\\n \\n is_delegate_call : fields[8] as bool,\\n is_static_call : fields[9] as bool,\\n is_contract_deployment: fields[10] as bool,\\n },\\n // TODO handle the offsets as a variable incremented during extraction?\\n args_hash: fields[11],\\n return_values: arr_copy_slice(fields, [0; RETURN_VALUES_LENGTH], 12),\\n read_requests: arr_copy_slice(fields, [0; MAX_READ_REQUESTS_PER_CALL], 16),\\n new_commitments: arr_copy_slice(fields, [0; MAX_NEW_COMMITMENTS_PER_CALL], 20),\\n new_nullifiers: arr_copy_slice(fields, [0; MAX_NEW_NULLIFIERS_PER_CALL], 24),\\n nullified_commitments: arr_copy_slice(fields, [0; MAX_NEW_NULLIFIERS_PER_CALL], 28),\\n private_call_stack: arr_copy_slice(fields, [0; MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL], 32),\\n public_call_stack: arr_copy_slice(fields, [0; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL], 36),\\n new_l2_to_l1_msgs: arr_copy_slice(fields, [0; MAX_NEW_L2_TO_L1_MSGS_PER_CALL], 40),\\n encrypted_logs_hash: arr_copy_slice(fields, [0; NUM_FIELDS_PER_SHA256], 42),\\n unencrypted_logs_hash: arr_copy_slice(fields, [0; NUM_FIELDS_PER_SHA256], 44),\\n encrypted_log_preimages_length: fields[46],\\n unencrypted_log_preimages_length: fields[47],\\n block_data: HistoricBlockData {\\n // Must match order in `private_circuit_public_inputs.hpp`\\n private_data_tree_root : fields[48],\\n nullifier_tree_root : fields[49],\\n contract_tree_root : fields[50],\\n l1_to_l2_messages_tree_root : fields[51],\\n blocks_tree_root : fields[52],\\n public_data_tree_root: fields[53],\\n global_variables_hash: fields[54],\\n },\\n contract_deployment_data: ContractDeploymentData {\\n deployer_public_key: Point::new(fields[55], fields[56]),\\n constructor_vk_hash : fields[57],\\n function_tree_root : fields[58],\\n contract_address_salt : fields[59],\\n portal_contract_address : fields[60],\\n },\\n chain_id: fields[61],\\n version: fields[62],\\n },\\n is_execution_request: fields[63] as bool,\\n };\\n assert(contract_address == item.contract_address);\\n assert(function_selector == item.function_data.function_selector);\\n\\n assert(args_hash == item.public_inputs.args_hash);\\n\\n assert(item.is_execution_request == false);\\n\\n // Assert that the call context of the enqueued call generated by the oracle matches our request.\\n // We are issuing a regular call which is not delegate, static, or deployment. We also constrain\\n // the msg_sender in the nested call to be equal to our address, and the execution context address\\n // for the nested call to be equal to the address we actually called.\\n assert(item.public_inputs.call_context.is_delegate_call == false);\\n assert(item.public_inputs.call_context.is_static_call == false);\\n assert(item.public_inputs.call_context.is_contract_deployment == false);\\n assert(item.public_inputs.call_context.msg_sender == self.inputs.call_context.storage_contract_address);\\n assert(item.public_inputs.call_context.storage_contract_address == contract_address);\\n\\n self.private_call_stack.push(item.hash());\\n\\n item.public_inputs.return_values\\n }\\n\\n fn call_public_function<ARGS_COUNT>(\\n &mut self,\\n contract_address: Field, \\n function_selector: Field, \\n args: [Field; ARGS_COUNT]\\n ) {\\n let args_hash = hash_args(args);\\n assert(args_hash == arguments::pack_arguments(args));\\n self.call_public_function_with_packed_args(contract_address, function_selector, args_hash)\\n }\\n\\n fn call_public_function_no_args(\\n &mut self,\\n contract_address: Field, \\n function_selector: Field,\\n ) {\\n self.call_public_function_with_packed_args(contract_address, function_selector, 0)\\n }\\n\\n fn call_public_function_with_packed_args(\\n &mut self,\\n contract_address: Field,\\n function_selector: Field,\\n args_hash: Field\\n ) {\\n let fields = enqueue_public_function_call_internal(\\n contract_address, \\n function_selector, \\n args_hash\\n );\\n let item = PublicCallStackItem {\\n contract_address: fields[0],\\n function_data: FunctionData {\\n function_selector: fields[1],\\n is_internal: fields[2] as bool,\\n is_private: fields[3] as bool,\\n is_constructor: fields[4] as bool,\\n },\\n public_inputs: PublicCircuitPublicInputs {\\n call_context: CallContext {\\n msg_sender : fields[5],\\n storage_contract_address : fields[6],\\n portal_contract_address : fields[7],\\n \\n is_delegate_call : fields[8] as bool,\\n is_static_call : fields[9] as bool,\\n is_contract_deployment: fields[10] as bool,\\n },\\n args_hash: fields[11],\\n return_values: [0; RETURN_VALUES_LENGTH],\\n contract_storage_update_requests: [ContractStorageUpdateRequest::empty(); MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL],\\n contract_storage_read: [ContractStorageRead::empty(); MAX_PUBLIC_DATA_READS_PER_CALL],\\n public_call_stack: [0; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL],\\n new_commitments: [0; MAX_NEW_COMMITMENTS_PER_CALL],\\n new_nullifiers: [0; MAX_NEW_NULLIFIERS_PER_CALL],\\n new_l2_to_l1_msgs:[0; MAX_NEW_L2_TO_L1_MSGS_PER_CALL],\\n unencrypted_logs_hash:[0; NUM_FIELDS_PER_SHA256],\\n unencrypted_log_preimages_length: 0,\\n block_data: HistoricBlockData::empty(),\\n prover_address: 0,\\n },\\n is_execution_request: true,\\n };\\n\\n assert(contract_address == item.contract_address);\\n assert(function_selector == item.function_data.function_selector);\\n \\n assert(args_hash == item.public_inputs.args_hash);\\n\\n // Assert that the call context of the enqueued call generated by the oracle matches our request.\\n // We are issuing a regular call which is not delegate, static, or deployment. We also constrain\\n // the msg_sender in the nested call to be equal to our address, and the execution context address\\n // for the nested call to be equal to the address we actually called.\\n assert(item.public_inputs.call_context.is_delegate_call == false);\\n assert(item.public_inputs.call_context.is_static_call == false);\\n assert(item.public_inputs.call_context.is_contract_deployment == false);\\n assert(item.public_inputs.call_context.msg_sender == self.inputs.call_context.storage_contract_address);\\n assert(item.public_inputs.call_context.storage_contract_address == contract_address);\\n\\n self.public_call_stack.push(item.hash());\\n }\\n}\\n\\nuse crate::abi::{\\n ContractStorageRead,\\n ContractStorageUpdateRequest\\n};\\n\\nstruct PublicContext {\\n inputs: abi::PublicContextInputs,\\n\\n args_hash : Field,\\n return_values : BoundedVec<Field, RETURN_VALUES_LENGTH>,\\n\\n contract_storage_update_requests: BoundedVec<ContractStorageUpdateRequest, MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL>,\\n contract_storage_read: BoundedVec<ContractStorageRead, MAX_PUBLIC_DATA_READS_PER_CALL>,\\n public_call_stack: BoundedVec<Field, MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL>,\\n\\n new_commitments: BoundedVec<Field, MAX_NEW_COMMITMENTS_PER_CALL>,\\n new_nullifiers: BoundedVec<Field, crate::abi::MAX_NEW_NULLIFIERS_PER_CALL>,\\n\\n new_l2_to_l1_msgs: BoundedVec<Field, crate::abi::MAX_NEW_L2_TO_L1_MSGS_PER_CALL>,\\n\\n unencrypted_logs_hash: BoundedVec<Field, NUM_FIELDS_PER_SHA256>,\\n unencrypted_logs_preimages_length: Field,\\n\\n block_data: HistoricBlockData,\\n prover_address: Field,\\n}\\n\\nimpl PublicContext {\\n fn new(inputs: abi::PublicContextInputs, args_hash: Field) -> PublicContext {\\n let empty_storage_read = ContractStorageRead::empty();\\n let empty_storage_update = ContractStorageUpdateRequest::empty();\\n PublicContext {\\n inputs: inputs,\\n\\n args_hash: args_hash,\\n return_values: BoundedVec::new(0),\\n\\n contract_storage_update_requests: BoundedVec::new(empty_storage_update),\\n contract_storage_read: BoundedVec::new(empty_storage_read),\\n public_call_stack: BoundedVec::new(0),\\n\\n new_commitments: BoundedVec::new(0),\\n new_nullifiers: BoundedVec::new(0),\\n\\n new_l2_to_l1_msgs: BoundedVec::new(0),\\n\\n \\n unencrypted_logs_hash: BoundedVec::new(0),\\n unencrypted_logs_preimages_length: 0,\\n\\n block_data: inputs.block_data,\\n prover_address: 0,\\n\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\\n // encrypted_logs_preimages: Vec::new(),\\n // unencrypted_logs_preimages: Vec::new(),\\n }\\n }\\n\\n fn msg_sender(self) -> Field {\\n self.inputs.call_context.msg_sender\\n }\\n\\n fn this_address(self) -> Field {\\n self.inputs.call_context.storage_contract_address\\n }\\n\\n fn this_portal_address(self) -> Field {\\n self.inputs.call_context.portal_contract_address\\n }\\n\\n fn chain_id(self) -> Field {\\n self.inputs.public_global_variables.chain_id\\n }\\n\\n fn version(self) -> Field {\\n self.inputs.public_global_variables.version\\n }\\n\\n fn block_number(self) -> Field {\\n self.inputs.public_global_variables.block_number\\n }\\n\\n fn timestamp(self) -> Field {\\n self.inputs.public_global_variables.timestamp\\n }\\n\\n fn finish(self) -> abi::PublicCircuitPublicInputs {\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\\n let unencrypted_logs_hash = [0; NUM_FIELDS_PER_SHA256];\\n let unencrypted_log_preimages_length = 0;\\n\\n\\n // Compute the public call stack hashes\\n let pub_circuit_pub_inputs = abi::PublicCircuitPublicInputs {\\n call_context: self.inputs.call_context, // Done\\n args_hash: self.args_hash, // Done\\n contract_storage_update_requests: self.contract_storage_update_requests.storage,\\n contract_storage_read: self.contract_storage_read.storage,\\n return_values: self.return_values.storage,\\n new_commitments: self.new_commitments.storage,\\n new_nullifiers: self.new_nullifiers.storage,\\n public_call_stack: self.public_call_stack.storage,\\n new_l2_to_l1_msgs: self.new_l2_to_l1_msgs.storage,\\n unencrypted_logs_hash: unencrypted_logs_hash,\\n unencrypted_log_preimages_length: unencrypted_log_preimages_length,\\n block_data: self.inputs.block_data,\\n prover_address: self.prover_address,\\n };\\n pub_circuit_pub_inputs\\n }\\n\\n fn push_new_note_hash(&mut self, note_hash: Field) {\\n self.new_commitments.push(note_hash);\\n }\\n\\n fn push_new_nullifier(&mut self, nullifier: Field, _nullified_commitment: Field) {\\n self.new_nullifiers.push(nullifier);\\n }\\n\\n fn message_portal(&mut self, content: Field) {\\n self.new_l2_to_l1_msgs.push(content);\\n }\\n\\n // PrivateContextInputs must be temporarily passed in to prevent too many unknowns\\n // Note this returns self to get around an issue where mutable structs do not maintain mutations unless reassigned\\n fn consume_l1_to_l2_message(&mut self, msg_key: Field, content: Field, secret: Field) {\\n let this = (*self).this_address();\\n let nullifier = process_l1_to_l2_message(self.block_data.l1_to_l2_messages_tree_root, this, msg_key, content, secret);\\n\\n // Push nullifier (and the \\"commitment\\" corresponding to this can be \\"empty\\")\\n self.push_new_nullifier(nullifier, EMPTY_NULLIFIED_COMMITMENT)\\n }\\n\\n fn accumulate_encrypted_logs<N>(&mut self, log: [Field; N]) {\\n let _void1 = self;\\n let _void2 = log;\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\\n }\\n\\n fn accumulate_unencrypted_logs<T>(&mut self, log: T) {\\n let _void1 = self;\\n let _void2 = log;\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\\n }\\n\\n fn call_public_function<ARGS_COUNT>(\\n _self: Self,\\n contract_address: Field, \\n function_selector: Field,\\n args: [Field; ARGS_COUNT],\\n ) -> [Field; RETURN_VALUES_LENGTH] {\\n let args_hash = abi::hash_args(args);\\n assert(args_hash == arguments::pack_arguments(args));\\n call_public_function_internal(\\n contract_address, \\n function_selector, \\n args_hash,\\n )\\n }\\n\\n fn call_public_function_no_args(\\n _self: Self,\\n contract_address: Field, \\n function_selector: Field,\\n ) -> [Field; RETURN_VALUES_LENGTH] {\\n call_public_function_internal(\\n contract_address, \\n function_selector, \\n 0,\\n )\\n }\\n\\n}","path":"/mnt/user-data/jan/aztec-packages/yarn-project/noir-libs/noir-aztec/src/context"},"33":{"source":"use crate::context::PrivateContext;\\nuse crate::oracle;\\nuse crate::types::point::Point;\\n\\nfn emit_encrypted_log<N>(\\n context: &mut PrivateContext,\\n contract_address: Field,\\n storage_slot: Field,\\n encryption_pub_key: Point,\\n log: [Field; N],\\n) {\\n let _ = oracle::logs::emit_encrypted_log(contract_address, storage_slot, encryption_pub_key, log);\\n context.accumulate_encrypted_logs(log);\\n}\\n\\nfn emit_unencrypted_log<T>(\\n context: &mut PrivateContext,\\n log: T,\\n) {\\n let _ = oracle::logs::emit_unencrypted_log(log);\\n context.accumulate_unencrypted_logs(log);\\n}\\n","path":"/mnt/user-data/jan/aztec-packages/yarn-project/noir-libs/noir-aztec/src/log"},"39":{"source":"use dep::std::option::Option;\\nuse crate::abi::PublicContextInputs;\\nuse crate::context::{\\n PrivateContext,\\n PublicContext,\\n};\\nuse crate::note::{\\n note_header::NoteHeader,\\n note_interface::NoteInterface,\\n utils::compute_inner_note_hash,\\n};\\nuse crate::oracle::notes::{notify_created_note, notify_nullified_note};\\nuse crate::constants_gen::EMPTY_NULLIFIED_COMMITMENT;\\n\\nfn create_note<Note, N>(\\n context: &mut PrivateContext,\\n storage_slot: Field,\\n note: &mut Note,\\n note_interface: NoteInterface<Note, N>,\\n) {\\n let contract_address = (*context).this_address();\\n\\n let header = NoteHeader { contract_address, storage_slot, nonce: 0 };\\n let set_header = note_interface.set_header;\\n set_header(note, header);\\n let inner_note_hash = compute_inner_note_hash(note_interface, *note);\\n\\n let serialise = note_interface.serialise;\\n let preimage = serialise(*note);\\n assert(notify_created_note(storage_slot, preimage, inner_note_hash) == 0);\\n\\n context.push_new_note_hash(inner_note_hash);\\n}\\n\\nfn create_note_hash_from_public<Note, N>(\\n context: &mut PublicContext,\\n storage_slot: Field,\\n note: &mut Note,\\n note_interface: NoteInterface<Note, N>,\\n) {\\n let contract_address = (*context).this_address();\\n\\n let header = NoteHeader { contract_address, storage_slot, nonce: 0 };\\n let set_header = note_interface.set_header;\\n set_header(note, header);\\n let inner_note_hash = compute_inner_note_hash(note_interface, *note);\\n\\n context.push_new_note_hash(inner_note_hash);\\n}\\n\\nfn destroy_note<Note, N>(\\n context: &mut PrivateContext,\\n storage_slot: Field,\\n note: Note,\\n note_interface: NoteInterface<Note, N>,\\n) {\\n let mut nullifier = 0;\\n let mut nullified_commitment: Field = EMPTY_NULLIFIED_COMMITMENT;\\n let compute_nullifier = note_interface.compute_nullifier;\\n nullifier = compute_nullifier(note);\\n\\n let serialise = note_interface.serialise;\\n let preimage = serialise(note);\\n\\n // We also need the note commitment corresponding to the \\"nullifier\\"\\n let get_header = note_interface.get_header;\\n let header = get_header(note);\\n // 0 nonce implies \\"transient\\" nullifier (must nullify a commitment in this TX).\\n // `nullified_commitment` is used to inform the kernel which pending commitment\\n // the nullifier corresponds to so they can be matched and both squashed/deleted.\\n // nonzero nonce implies \\"persistable\\" nullifier (nullifies a persistent/in-tree\\n // commitment) in which case `nullified_commitment` is not used since the kernel\\n // just siloes and forwards the nullier to its output.\\n if (header.nonce == 0) {\\n // TODO(suyash): Can we reuse the note commitment computed in `compute_nullifier`?\\n nullified_commitment = compute_inner_note_hash(note_interface, note);\\n }\\n assert(notify_nullified_note(storage_slot, nullifier, preimage, nullified_commitment) == 0);\\n\\n context.push_new_nullifier(nullifier, nullified_commitment)\\n}","path":"/mnt/user-data/jan/aztec-packages/yarn-project/noir-libs/noir-aztec/src/note/lifecycle"},"40":{"source":"use dep::std::option::Option;\\nuse crate::constants_gen::{\\n MAX_READ_REQUESTS_PER_CALL,\\n GET_NOTE_ORACLE_RETURN_LENGTH,\\n GET_NOTES_ORACLE_RETURN_LENGTH,\\n MAX_NOTES_PER_PAGE,\\n VIEW_NOTE_ORACLE_RETURN_LENGTH,\\n};\\nuse crate::context::PrivateContext;\\nuse crate::note::{\\n note_getter_options::{NoteGetterOptions, Select, Sort},\\n note_interface::NoteInterface,\\n note_header::NoteHeader,\\n note_viewer_options::NoteViewerOptions,\\n utils::compute_note_hash_for_read_or_nullify,\\n utils::compute_unique_siloed_note_hash,\\n utils::compute_inner_note_hash,\\n utils::compute_siloed_note_hash,\\n};\\nuse crate::messaging::get_commitment_getter_data::make_commitment_getter_data;\\nuse crate::oracle;\\nuse crate::types::vec::BoundedVec;\\n\\nfn check_note_header<Note, N>(\\n context: PrivateContext,\\n storage_slot: Field,\\n note_interface: NoteInterface<Note, N>,\\n note: Note,\\n) {\\n let get_header = note_interface.get_header;\\n let header = get_header(note);\\n let contract_address = context.this_address();\\n assert(header.contract_address == contract_address);\\n assert(header.storage_slot == storage_slot);\\n}\\n\\nfn ensure_note_exists<Note, N>(\\n context: &mut PrivateContext,\\n storage_slot: Field,\\n note_interface: NoteInterface<Note, N>,\\n note: &mut Note,\\n) {\\n let saved_note = get_note_internal(storage_slot, note_interface);\\n\\n // Only copy over the header to the original note to make sure the preimage is the same.\\n let get_header = note_interface.get_header;\\n let set_header = note_interface.set_header;\\n let note_header = get_header(saved_note);\\n set_header(note, note_header);\\n\\n check_note_header(*context, storage_slot, note_interface, *note);\\n\\n let note_hash_for_read_request = compute_note_hash_for_read_or_nullify(note_interface, *note);\\n context.push_read_request(note_hash_for_read_request);\\n}\\n\\n// Ensure a note\'s hash exists in the tree without retrieving the entire\\n// notes via the oracle.\\n// Modifies the note by populating it with header info.\\nfn ensure_note_hash_exists<Note, N>(\\n context: &mut PrivateContext,\\n storage_slot: Field,\\n note_interface: NoteInterface<Note, N>,\\n note: &mut Note,\\n) {\\n // Initialize header of note. Must be done before computing note hashes as it initializes the:\\n // - storage slot (used in inner note hash)\\n // - the contract address (used in siloed note hash)\\n // - and the nonce (used in the unique siloed note hash)\\n let set_header = note_interface.set_header;\\n let note_header = NoteHeader {\\n contract_address: (*context).this_address(),\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1386): should be\\n // real nonce (once public kernel applies nonces).\\n nonce: 0,\\n storage_slot\\n };\\n set_header(note, note_header);\\n\\n // Get a note from oracle and early out if it doesn\'t exist.\\n let inner_note_hash = compute_inner_note_hash(note_interface, *note);\\n\\n let raw_oracle_ret = oracle::get_commitment::get_commitment(inner_note_hash);\\n let deserialized_oracle_ret = make_commitment_getter_data(raw_oracle_ret, 0);\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1386): should be\\n // unique_siloed_note_hash once public kernel applies nonces\\n let saved_siloed_note_hash = deserialized_oracle_ret.message;\\n\\n assert(saved_siloed_note_hash != 0); // TODO(dbanks12): necessary?\\n\\n check_note_header(*context, storage_slot, note_interface, *note);\\n\\n // Ensure that the note hash retrieved from oracle matches the one computed from note.\\n let computed_siloed_note_hash = compute_siloed_note_hash(note_interface, *note);\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1386): should be\\n // compute_note_hash_for_read_or_nullify once public kernel applies nonces\\n assert(computed_siloed_note_hash == saved_siloed_note_hash);\\n\\n context.push_read_request(computed_siloed_note_hash);\\n}\\n\\nfn get_note<Note, N>(\\n context: &mut PrivateContext,\\n storage_slot: Field,\\n note_interface: NoteInterface<Note, N>,\\n) -> Note {\\n let note = get_note_internal(storage_slot, note_interface);\\n\\n check_note_header(*context, storage_slot, note_interface, note);\\n\\n let note_hash_for_read_request = compute_note_hash_for_read_or_nullify(note_interface, note);\\n\\n context.push_read_request(note_hash_for_read_request);\\n note\\n}\\n\\nfn get_notes<Note, N, FILTER_ARGS>(\\n context: &mut PrivateContext,\\n storage_slot: Field,\\n note_interface: NoteInterface<Note, N>,\\n options: NoteGetterOptions<Note, N, FILTER_ARGS>,\\n) -> [Option<Note>; MAX_READ_REQUESTS_PER_CALL] {\\n let opt_notes = get_notes_internal(storage_slot, note_interface, options);\\n for i in 0..opt_notes.len() {\\n let opt_note = opt_notes[i];\\n let mut note_hash_for_read_request = 0;\\n if opt_note.is_some() {\\n let note = opt_note.unwrap_unchecked();\\n check_note_header(*context, storage_slot, note_interface, note);\\n note_hash_for_read_request = compute_note_hash_for_read_or_nullify(note_interface, note);\\n };\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1410): test to ensure\\n // failure if malicious oracle injects 0 nonce here for a \\"pre-existing\\" note.\\n context.push_read_request(note_hash_for_read_request);\\n };\\n\\n // TODO(#1660)\\n // Move it back to get_notes_internal and only make read request for selected notes.\\n let filter = options.filter;\\n let filter_args = options.filter_args;\\n filter(opt_notes, filter_args)\\n}\\n\\nunconstrained fn get_note_internal<Note, N>(\\n storage_slot: Field,\\n note_interface: NoteInterface<Note, N>,\\n) -> Note {\\n let placeholder_note = [Option::none()];\\n let placeholder_fields = [0; GET_NOTE_ORACLE_RETURN_LENGTH];\\n oracle::notes::get_notes(\\n storage_slot,\\n note_interface,\\n 0,\\n [],\\n [],\\n [],\\n [],\\n 1, // limit\\n 0, // offset\\n placeholder_note,\\n placeholder_fields,\\n )[0].unwrap() // Notice: we don\'t allow dummies to be returned from get_note (singular).\\n}\\n\\nunconstrained fn get_notes_internal<Note, N, FILTER_ARGS>(\\n storage_slot: Field,\\n note_interface: NoteInterface<Note, N>,\\n options: NoteGetterOptions<Note, N, FILTER_ARGS>,\\n) -> [Option<Note>; MAX_READ_REQUESTS_PER_CALL] {\\n let (num_selects, select_by, select_values, sort_by, sort_order) = flatten_options(options.selects, options.sorts);\\n let placeholder_opt_notes = [Option::none(); MAX_READ_REQUESTS_PER_CALL];\\n let placeholder_fields = [0; GET_NOTES_ORACLE_RETURN_LENGTH];\\n oracle::notes::get_notes(\\n storage_slot,\\n note_interface,\\n num_selects,\\n select_by,\\n select_values,\\n sort_by,\\n sort_order,\\n options.limit,\\n options.offset,\\n placeholder_opt_notes,\\n placeholder_fields,\\n )\\n}\\n\\nunconstrained fn view_notes<Note, N>(\\n storage_slot: Field,\\n note_interface: NoteInterface<Note, N>,\\n options: NoteViewerOptions<Note, N>,\\n) -> [Option<Note>; MAX_NOTES_PER_PAGE] {\\n let (num_selects, select_by, select_values, sort_by, sort_order) = flatten_options(options.selects, options.sorts);\\n let placeholder_opt_notes = [Option::none(); MAX_NOTES_PER_PAGE];\\n let placeholder_fields = [0; VIEW_NOTE_ORACLE_RETURN_LENGTH];\\n oracle::notes::get_notes(\\n storage_slot,\\n note_interface,\\n num_selects,\\n select_by,\\n select_values,\\n sort_by,\\n sort_order,\\n options.limit,\\n options.offset,\\n placeholder_opt_notes,\\n placeholder_fields,\\n )\\n}\\n\\nunconstrained fn flatten_options<Note, N>(\\n selects: BoundedVec<Option<Select>, N>,\\n sorts: BoundedVec<Option<Sort>, N>,\\n) -> (u8, [u8; N], [Field; N], [u8; N], [u2; N]) {\\n let mut num_selects = 0;\\n let mut select_by = [0; N];\\n let mut select_values = [0; N];\\n for i in 0..selects.len {\\n let select = selects.get(i);\\n if select.is_some() {\\n select_by[num_selects] = select.unwrap_unchecked().field_index;\\n select_values[num_selects] = select.unwrap_unchecked().value;\\n num_selects += 1;\\n };\\n };\\n\\n let mut sort_by = [0; N];\\n let mut sort_order = [0; N];\\n for i in 0..sorts.len {\\n let sort = sorts.get(i);\\n if sort.is_some() {\\n sort_by[i] = sort.unwrap_unchecked().field_index;\\n sort_order[i] = sort.unwrap_unchecked().order;\\n };\\n };\\n\\n (num_selects, select_by, select_values, sort_by, sort_order)\\n}","path":"/mnt/user-data/jan/aztec-packages/yarn-project/noir-libs/noir-aztec/src/note/note_getter"},"42":{"source":"use dep::std::hash::{pedersen, pedersen_with_separator};\\nuse crate::constants_gen::{GENERATOR_INDEX__UNIQUE_COMMITMENT, GENERATOR_INDEX__SILOED_COMMITMENT};\\n\\nfn compute_inner_hash(storage_slot: Field, note_hash: Field) -> Field {\\n // TODO(#1205) Do we need a generator index here?\\n pedersen([storage_slot, note_hash])[0]\\n}\\n\\nfn compute_siloed_hash(contract_address: Field, inner_note_hash: Field) -> Field {\\n let inputs = [contract_address, inner_note_hash];\\n pedersen_with_separator(inputs, GENERATOR_INDEX__SILOED_COMMITMENT)[0]\\n}\\n\\nfn compute_unique_hash(nonce: Field, siloed_note_hash: Field) -> Field {\\n let inputs = [nonce, siloed_note_hash];\\n pedersen_with_separator(inputs, GENERATOR_INDEX__UNIQUE_COMMITMENT)[0]\\n}\\n","path":"/mnt/user-data/jan/aztec-packages/yarn-project/noir-libs/noir-aztec/src/note/note_hash"},"46":{"source":"use crate::note::{\\n note_hash::{compute_inner_hash, compute_siloed_hash, compute_unique_hash},\\n note_header::NoteHeader,\\n note_interface::NoteInterface,\\n};\\nuse crate::utils::arr_copy_slice;\\n\\nfn compute_inner_note_hash<Note, N>(\\n note_interface: NoteInterface<Note, N>,\\n note: Note,\\n) -> Field {\\n let get_header = note_interface.get_header;\\n let header = get_header(note);\\n\\n let compute_note_hash = note_interface.compute_note_hash;\\n let note_hash = compute_note_hash(note);\\n\\n compute_inner_hash(header.storage_slot, note_hash)\\n}\\n\\nfn compute_siloed_note_hash<Note, N>(\\n note_interface: NoteInterface<Note, N>,\\n note_with_header: Note,\\n) -> Field {\\n let get_header = note_interface.get_header;\\n let header = get_header(note_with_header);\\n\\n let inner_note_hash = compute_inner_note_hash(note_interface, note_with_header);\\n\\n compute_siloed_hash(header.contract_address, inner_note_hash)\\n}\\n\\nfn compute_unique_siloed_note_hash<Note, N>(\\n note_interface: NoteInterface<Note, N>,\\n note_with_header: Note,\\n) -> Field {\\n let get_header = note_interface.get_header;\\n let header = get_header(note_with_header);\\n\\n let siloed_note_hash = compute_siloed_note_hash(note_interface, note_with_header);\\n\\n compute_unique_hash(header.nonce, siloed_note_hash)\\n}\\n\\nfn compute_note_hash_for_read_or_nullify<Note, N>(\\n note_interface: NoteInterface<Note, N>,\\n note_with_header: Note,\\n) -> Field {\\n let get_header = note_interface.get_header;\\n let header = get_header(note_with_header);\\n\\n if (header.nonce == 0) {\\n // when nonce is zero, that means we are reading a pending note (doesn\'t have a nonce yet),\\n // so we just read the inner_note_hash (kernel will silo by contract address)\\n compute_inner_note_hash(note_interface, note_with_header)\\n } else {\\n // When nonce is nonzero, that means we are reading a settled note (from tree) created in a\\n // previous TX. So we need the unique_siloed_note_hash which has already been hashed with\\n // contract address and then nonce. This hash will match the existing leaf in the private\\n // data tree, so the kernel can just perform a membership check directly on this hash/leaf.\\n compute_unique_siloed_note_hash(note_interface, note_with_header)\\n }\\n\\n}\\n\\nfn compute_note_hash_and_nullifier<Note, N, S>(\\n note_interface: NoteInterface<Note, N>,\\n note_header: NoteHeader,\\n preimage: [Field; S],\\n) -> [Field; 4] {\\n let deserialise = note_interface.deserialise;\\n let set_header = note_interface.set_header;\\n let mut note = deserialise(arr_copy_slice(preimage, [0; N], 0));\\n set_header(&mut note, note_header);\\n\\n let compute_note_hash = note_interface.compute_note_hash;\\n let note_hash = compute_note_hash(note);\\n let inner_note_hash = compute_inner_hash(note_header.storage_slot, note_hash);\\n\\n let siloed_note_hash = compute_siloed_hash(note_header.contract_address, inner_note_hash);\\n\\n let unique_siloed_note_hash = compute_unique_hash(note_header.nonce, siloed_note_hash);\\n\\n let compute_nullifier = note_interface.compute_nullifier;\\n let inner_nullifier = compute_nullifier(note);\\n\\n [inner_note_hash, siloed_note_hash, unique_siloed_note_hash, inner_nullifier]\\n}\\n","path":"/mnt/user-data/jan/aztec-packages/yarn-project/noir-libs/noir-aztec/src/note/utils"},"48":{"source":"use dep::std::hash::pedersen_with_separator;\\nuse crate::context::PrivateContext;\\nuse crate::note::{\\n lifecycle::create_note,\\n note_getter::{get_note, view_notes},\\n note_interface::NoteInterface,\\n note_viewer_options::NoteViewerOptions,\\n};\\nuse crate::oracle;\\nuse crate::constants_gen::{\\n GENERATOR_INDEX__INITIALISATION_NULLIFIER,\\n EMPTY_NULLIFIED_COMMITMENT,\\n};\\n\\nstruct ImmutableSingleton<Note, N> {\\n storage_slot: Field,\\n note_interface: NoteInterface<Note, N>,\\n}\\n\\nimpl<Note, N> ImmutableSingleton<Note, N> {\\n fn new(storage_slot: Field, note_interface: NoteInterface<Note, N>) -> Self {\\n ImmutableSingleton { storage_slot, note_interface }\\n }\\n\\n unconstrained fn is_initialised(self) -> bool {\\n let nullifier = self.compute_initialisation_nullifier();\\n oracle::notes::is_nullifier_emitted(nullifier)\\n }\\n\\n fn initialise(self, context: &mut PrivateContext, note: &mut Note) {\\n // Nullify the storage slot.\\n let nullifier = self.compute_initialisation_nullifier();\\n context.push_new_nullifier(nullifier, EMPTY_NULLIFIED_COMMITMENT);\\n\\n create_note(context, self.storage_slot, note, self.note_interface);\\n }\\n\\n fn compute_initialisation_nullifier(self) -> Field {\\n pedersen_with_separator([self.storage_slot], GENERATOR_INDEX__INITIALISATION_NULLIFIER)[0]\\n }\\n \\n fn get_note(self, context: &mut PrivateContext) -> Note {\\n let storage_slot = self.storage_slot;\\n get_note(context, storage_slot, self.note_interface)\\n }\\n\\n unconstrained fn view_note(self) -> Note {\\n let options = NoteViewerOptions::new().set_limit(1);\\n view_notes(self.storage_slot, self.note_interface, options)[0].unwrap()\\n }\\n}","path":"/mnt/user-data/jan/aztec-packages/yarn-project/noir-libs/noir-aztec/src/state_vars/immutable_singleton"},"55":{"source":"\\nstruct BoundedVec<T, MaxLen> {\\n storage: [T; MaxLen],\\n len: Field,\\n}\\n\\nimpl<T, MaxLen> BoundedVec<T, MaxLen> {\\n fn new(initial_value: T) -> Self {\\n BoundedVec { storage: [initial_value; MaxLen], len: 0 }\\n }\\n\\n fn get(mut self: Self, index: Field) -> T {\\n assert(index as u64 < self.len as u64);\\n self.storage[index]\\n }\\n\\n fn push(&mut self, elem: T) {\\n assert(self.len as u64 < MaxLen as u64);\\n\\n self.storage[self.len] = elem;\\n self.len += 1;\\n }\\n\\n fn push_array<Len>(&mut self, array: [T; Len]) {\\n let newLen = self.len + array.len();\\n assert(newLen as u64 <= MaxLen as u64);\\n for i in 0..array.len() {\\n self.storage[self.len + i] = array[i];\\n }\\n self.len = newLen;\\n }\\n\\n fn pop(&mut self) -> T {\\n assert(self.len as u64 > 0);\\n\\n let elem = self.storage[self.len - 1];\\n self.len -= 1;\\n elem\\n }\\n}\\n\\n// #[test]\\n// fn test_vec() {\\n// let vec: BoundedVec<Field, 2> = BoundedVec::new(0);\\n// assert(vec.len == 0);\\n// let vec1 = vec.push(1);\\n// assert(vec1.len == 1);\\n// let vec2 = vec1.push(1);\\n// assert(vec2.len == 2);\\n// let vec3 = vec2.push(1);\\n// assert(vec3.len == 3);\\n// let x = vec3.pop();\\n// assert(x == 1);\\n// }","path":"/mnt/user-data/jan/aztec-packages/yarn-project/noir-libs/noir-aztec/src/types/vec"},"70":{"source":"use crate::types::point::Point;\\nuse dep::std::hash;\\nuse crate::constants_gen::GENERATOR_INDEX__CONTRACT_ADDRESS;\\n\\n#[oracle(getPublicKey)]\\nfn get_public_key_oracle(_address: Field) -> [Field; 3] {}\\n\\nunconstrained fn get_public_key_internal(address: Field) -> [Field; 3] {\\n get_public_key_oracle(address)\\n}\\n\\nfn get_public_key(address: Field) -> Point {\\n let result = get_public_key_internal(address);\\n let pub_key_x = result[0];\\n let pub_key_y = result[1];\\n let partial_address = result[2];\\n \\n let calculated_address = hash::pedersen_with_separator([pub_key_x, pub_key_y, partial_address], GENERATOR_INDEX__CONTRACT_ADDRESS)[0];\\n assert(calculated_address == address);\\n \\n Point::new(pub_key_x, pub_key_y)\\n}\\n","path":"/mnt/user-data/jan/aztec-packages/yarn-project/noir-libs/noir-aztec/src/oracle/get_public_key"},"78":{"source":"use crate::abi;\\nuse crate::types::vec::BoundedVec;\\nuse crate::context::PrivateContext;\\nuse crate::private_call_stack_item::PrivateCallStackItem;\\nuse crate::public_call_stack_item::PublicCallStackItem; \\n\\nglobal ACCOUNT_MAX_PRIVATE_CALLS: Field = 2;\\nglobal ACCOUNT_MAX_PUBLIC_CALLS: Field = 2;\\nglobal ACCOUNT_MAX_CALLS: Field = 4;\\n// 1 (ARGS_HASH) + 1 (FUNCTION_SELECTOR) + 1 (TARGET_ADDRESS)\\nglobal FUNCTION_CALL_SIZE: Field = 3;\\n\\nstruct FunctionCall {\\n args_hash: Field,\\n function_selector: Field,\\n target_address: Field,\\n}\\n\\nimpl FunctionCall {\\n fn serialize(self) -> [Field; FUNCTION_CALL_SIZE] {\\n [self.args_hash, self.function_selector, self.target_address]\\n }\\n}\\n\\n// FUNCTION_CALL_SIZE * (ACCOUNT_MAX_PUBLIC_CALLS + ACCOUNT_MAX_PRIVATE_CALLS) + 1\\nglobal ENTRYPOINT_PAYLOAD_SIZE: Field = 13;\\nglobal ENTRYPOINT_PAYLOAD_SIZE_IN_BYTES: Field = 416;\\n\\nstruct EntrypointPayload {\\n // Noir doesnt support nested arrays or structs yet so we flatten everything\\n flattened_args_hashes: [Field; ACCOUNT_MAX_CALLS],\\n flattened_selectors: [Field; ACCOUNT_MAX_CALLS],\\n flattened_targets: [Field; ACCOUNT_MAX_CALLS],\\n nonce: Field,\\n}\\n\\nimpl EntrypointPayload {\\n // TODO(#1207) Do we need a generator index?\\n fn hash(self) -> Field {\\n dep::std::hash::pedersen(self.serialize())[0]\\n }\\n\\n // Serializes the entrypoint struct\\n fn serialize(self) -> [Field; ENTRYPOINT_PAYLOAD_SIZE] {\\n let mut fields: BoundedVec<Field, ENTRYPOINT_PAYLOAD_SIZE> = BoundedVec::new(0); \\n fields.push_array(self.flattened_args_hashes);\\n fields.push_array(self.flattened_selectors);\\n fields.push_array(self.flattened_targets);\\n fields.push(self.nonce);\\n fields.storage\\n }\\n\\n // Serializes the payload as an array of bytes. Useful for hashing with sha256.\\n fn to_be_bytes(self) -> [u8; ENTRYPOINT_PAYLOAD_SIZE_IN_BYTES] {\\n let mut bytes: [u8; ENTRYPOINT_PAYLOAD_SIZE_IN_BYTES] = [0; ENTRYPOINT_PAYLOAD_SIZE_IN_BYTES];\\n\\n let args_len = self.flattened_args_hashes.len();\\n let selectors_len = self.flattened_selectors.len();\\n let targets_len = self.flattened_targets.len();\\n\\n for i in 0..args_len {\\n let item_bytes = self.flattened_args_hashes[i].to_be_bytes(32);\\n for j in 0..32 { \\n bytes[i * 32 + j] = item_bytes[j];\\n }\\n }\\n\\n for i in 0..selectors_len {\\n let item_bytes = self.flattened_selectors[i].to_be_bytes(32);\\n for j in 0..32 { \\n bytes[args_len * 32 + i * 32 + j] = item_bytes[j];\\n }\\n }\\n\\n for i in 0..targets_len {\\n let item_bytes = self.flattened_targets[i].to_be_bytes(32);\\n for j in 0..32 { \\n bytes[(args_len + selectors_len) * 32 + i * 32 + j] = item_bytes[j];\\n }\\n }\\n \\n let item_bytes = self.nonce.to_be_bytes(32);\\n for j in 0..32 { \\n bytes[(args_len + selectors_len + targets_len) * 32 + j] = item_bytes[j];\\n }\\n\\n bytes\\n }\\n\\n // Executes all private and public calls \\n fn execute_calls(self, context: &mut PrivateContext) {\\n for i in 0..ACCOUNT_MAX_PRIVATE_CALLS {\\n let target_address = self.flattened_targets[i];\\n if target_address != 0 {\\n let function_selector = self.flattened_selectors[i];\\n let args_hash = self.flattened_args_hashes[i];\\n let _callStackItem = context.call_private_function_with_packed_args(target_address, function_selector, args_hash);\\n }\\n }\\n for i in ACCOUNT_MAX_PRIVATE_CALLS..ACCOUNT_MAX_CALLS {\\n let target_address = self.flattened_targets[i];\\n if target_address != 0 {\\n let function_selector = self.flattened_selectors[i];\\n let args_hash = self.flattened_args_hashes[i];\\n let _callStackItem = context.call_public_function_with_packed_args(target_address, function_selector, args_hash);\\n }\\n }\\n }\\n}","path":"/mnt/user-data/jan/aztec-packages/yarn-project/noir-libs/noir-aztec/src/entrypoint"}}}}');class xi{constructor(e,t,n,r=31337,s=1){this.address=e,this.privateKey=t,this.signer=n,this.chainId=r,this.version=s,this.log=ds("aztec:client:accounts:stored_key")}async createTxExecutionRequest(e,t={}){if(t.origin&&!t.origin.equals(this.address))throw new Error(`Sender ${t.origin.toString()} does not match account address ${this.address.toString()}`);const[n,r]=Ka()(e,(e=>e.functionData.isPrivate)),s=await xs.get(),{payload:a,packedArguments:i}=await $a(n,r),o=ei(a,s),l=this.signer.constructSignature(o,this.privateKey).toBuffer();this.log(`Signed challenge ${o.toString("hex")} as ${l.toString("hex")}`);const c=[a,l],u=this.getEntrypointAbi(),f=await Ba.fromArgs(Hn(u,c),s);return Fa.from({argsHash:f.hash,origin:this.address,functionData:Tr.fromAbi(u),txContext:Br.empty(this.chainId,this.version),packedArguments:[...i,f]})}getEntrypointAbi(){const e=Ni.functions.find((e=>"entrypoint"===e.name));if(!e)throw new Error("Entrypoint abi for account contract not found");return e}}class ki{constructor(e){this.signingPrivateKey=e}async getDeploymentArgs(){const e=await Ws.new().then((e=>e.computePublicKey(this.signingPrivateKey)));return[e.subarray(0,32),e.subarray(32,64)]}async getEntrypoint({address:e},{chainId:t,version:n}){return new xi(e,this.signingPrivateKey,await Ws.new(),t,n)}getContractAbi(){return Ni}}const Oi=JSON.parse('{"name":"SchnorrAccount","functions":[{"name":"compute_note_hash_and_nullifier","functionType":"unconstrained","isInternal":false,"parameters":[{"name":"contract_address","type":{"kind":"field"},"visibility":"private"},{"name":"nonce","type":{"kind":"field"},"visibility":"private"},{"name":"storage_slot","type":{"kind":"field"},"visibility":"private"},{"name":"preimage","type":{"kind":"array","length":3,"type":{"kind":"field"}},"visibility":"private"}],"returnTypes":[{"kind":"array","length":4,"type":{"kind":"field"}}],"bytecode":"H4sIAAAAAAAA/+3dy47ryH3HcYmiSJHUXd1S30+f7jPnflH3mZtnxmNuvAiMAAGy8C6LGBMjQQADgQPHi8AJsvAiq2yyzSaLIM+QZ8kLZBVklawylPl3/w67pD6aJq3vjKuAhorFFutTRbVYLFZVZ61Wq936Teh8/RO2bgfbn5evy/uFq3Z9x1o26Qy+Jc5Ojc52+Tlo0hs2UK91G7vfAmNU83k3o30HxF//9L7+Sb7+SVs3oTv9zWuR3i3T7DOTyPsDSetU6iCR/RYiief1lOttVH+9L7ulvyWvWt5hWZa43nyvtI7C1rvnyc6B7R/Ia5HWq9dyHUnZ6zxXab3H/LA4ZlbvMT8qjtmv95gfR3LOajrmJ1bulnw2i3yG9eZz1W69G3KJW15q6YAsIcjSBVkikCUGWXogSwKypCBLBrL0QZYByNLesSURQ0vSbH9P0kYSt9dxGU8lbVIpZ5FWNpV/+zko0mZlfCBpe2Vc28z7ZVzb1vMyHkraoox3JU3bopZmx9Hy2HHGkmbHmUiaXQ+mkmbfyzNJs3rbkzSrt31Js3qbS5rVm5bnb2W//a7W0cJxHIvrZ8zyzsvX5f3C6jOm+eSybXmlYpgDLAOQpQ+yZCBLCrIkIEsPZIlBlghk6YIsIcjSAVmCikXbGQtJCyrvjUt3zX0Ub4u87FrQEr+GXOINtmGXxTFHNR+zOMZY/FZWbRPb/pGUbVyvY/X5GLberVPbHku+vvy15vt7X37fB+n7IL+pxfdB+j7IbSy+D9L3QW5jGYEs9P5Q7dO09oL2aVpfofYtbuqD1P5Gu/7ZMYpr0F/0bucXOPIbO1xN16Xmk8u25aX9fmOAZQSyDECWPsiSgSwpyJKALD2QJQZZIpClC7KEIEsHZAkqFt9H4PsIvqnF9xH4PoJtLL6PwPcRbGMh9RE0fe3exjIBWeh9JzqOqtonUlxL/1X6OuwZrPZ1HJRxHQd2WMZ1HNiRHNPSjst4JGknZTx2WPUZsI31OpA0G+t1KGk21utI0uy58bGk2TPnE4dFz6G9Jy9fl/cLq3Oo+eSybXlpn80JwDIBWcYgywhkGYAsfZAlA1lSkCUBWXogSwyyRCBLF2QJQZYOyBI4LEf1Wq61HdcSk4Zc4toOO6yYC99BA3V1WLHYtuWViWHYoCVz5N1APtdJpcxF2HROtA1tbexD8Z3WXA9tyceOa9uWl9bVtEFL5si7gXyuk0qZi7DpnFj+xfvOyvhCfA9qroe25GPHtW3LS+tq1qAlc+TdQD7XSaXMRdh0Tiz/4n3nZfxMfA9rroe25GPHtW3LS+tqr0FL5si7gXyutW4tbDonln/xvosyfi6+y5rroS352HFt2/LSutpv0JI58m4gn+ukUuYibDonln/xvkdl/EJ8H9RcD23Jx45r25aX1tW8QUu2Jm8L+gzxUQP10KrUg4VHDksHZAlBli7IEoEsMcjSA1kSkCUFWTKQpQ+yDECWIcgyAlnGIMsEZJmCLDOQZQ9k2QdZ5iDLAmQ5AFkOQZYjkOUYZDkBWU5BljOQ5QHIcg6yPARZLkCWS5ClvWPLunFqtl/Halm/mo7zelzGdYzYkzJ+JmlPy/i5pD0r4xeS9ryM61prLyRury/LuK61FjjKZn1tH0haWMYfS5r1PT2RNOsDeipp1hfzTNLM+lzSzKp2s5q9yPN/erfLpJ8Je39evi7vF1afCc0nl23LS8e9vQRYLkGWC5DlIchyDrI8AFnOQJZTkOUEZDkGWY5AlkOQ5QBkWYAsc5BlH2TZA1lmIMsUZJmALGOQZQSyDEGWAcjSB1kykCUFWRKQpQeyxCBLBLJ0QZYQZOmALEHFksp+nYNhfXGHkmZ9dgtJs769M0mzPsBzSbO+Quv/0T7cQOqliTGWGnKJu8Y5dkCWEGTpgiwRyBKDLD2QJQFZUpAlA1n6IMsAZBmCLCOQZQyyTECWKcgyA1n2QJZ9kKXJeTzbWhYgywHIcgiyHIEsxyDLCchyCrKcgSwPQJZzkOUhyHIBslyCLI9Blicgy1OQ5RnI8hxkeQGyvARZ2ju2rBsvbPt17Ukbh6tjYF+VcR0r+7qM65jaN2Vcx94uy7iO0b0q4zqWN3CYrV9cxwab9ZWkdcv4a0mz/to3kmb9pktJs/5LMxXH+mFy2x84/EtHOfVcW965/X4N51rzyWXb8tJxwEuA5SXI8gJkeQ6yPANZnoIsT0CWxyDLJchyAbI8BFnOQZYHIMsZyHIKspyALMcgyxHIcgiyHIAsC5BlDrLsgyx7IMsMZJmCLBOQZQyyjECWIcgyAFn6IEsGsqQgSwKy9ECWGGSJQJYuyBKCLB2QJahY1o2xb8KnIZf4G4elA7KEIEsXZIlAlhhk6YEsCciSgiwZyNIHWQYgyxBkGYEsY5BlArJMQZYZyLIHsuyDLHOQZQGyHIAshyDLEchyDLKcgCynIMsZyPIAZDkHWR6CLBcgyyXI8hhkeQKyPAVZnoEsz0GWFyDLS5Cl6b7wbSxXIEt7x5Z1cw/0GYKl2fj9K0kLHMezvnz7/aIP+zy9fezAcew3DoPW0atKWZb3C6s60nxy2X4lddCu+HZpuQJZliDLS5DlBcjyHGR5BrI8BVmegCyPQZZLkOUCZHkIspyDLA9AljOQ5RRkOQFZjkGWI5DlEGQ5AFkWIMscZNkHWfZAlhnIMgVZJiDLGGQZgSxDkGUAsvRBlgxkSUGWBGTpgSwxyBKBLF2QJQRZOiBL9VnDurkMTfg05BJ/5bB0QJYQZOmCLBHIEoMsPZAlAVlSkCUDWfogywBkGYIsI5BlDLJMQJYpyDIDWfZAln2QZQ6yLECWA5DlEGQ5AlmOQZYTkOUUZDkDWR6ALOcgy0OQ5QJkuQRZHoMsT0CWpyDLM5DlOcjyAmR5CbK8Blma7pffxrIEWa5AlvaOLevmeNj+nqTZ/3LQ/9UQOI5X/d8PRd/+j9Pbxw4cx37lMGgdNfE/ODSfXLYtL53j8QpguQJZliDLG5DlNcjyEmR5AbI8B1megSxPQZYnIMtjkOUSZLkAWR6CLOcgywOQ5QxkOQVZTkCWY5DlCGQ5BFkOQJYFyDIHWfZBlj2QZQayTEGWCcgyBllGIMsQZBmALH2QJQNZUpDFxs0SLD2QJQZZIpClC7KEIEsHZKk+g1k392XX/0u9A7KEIEsXZIlAlhhk6YEsCciSgiwZyNIHWQYgyxBkGYEsY5BlArJMQZYZyLIHsuyDLHOQZQGyHIAshyDLEchyDLKcgCynIMsZyPIAZDkHWR6CLBcgyyXI8ghkeQyyPAFZnoIsz0CW5yDLC5DlJcjSdL/8NpbXIMsbkGUJslyBLO0dW9bNCdL99npdxh9JWuA4nj37sd/vfv3zs/T2sQPHsT9wGLSO3lbKsrxfWNWR5pPLtuWlc4I+AFiuQJYlyPIGZHkNsrwCWV6CLC9AlucgyzOQ5SnI8gRkeQyyPAJZLkGWC5DlIchyDrI8AFnOQJZTkOUEZDkGWY5AlkOQ5QBkWYAsc5BlH2TZA1lmIMsUZJmALGOQZQSyDEGWAcjSB1kykCUFWRKQpQeyxCBLBLJ0QZYQZOmALNVnU6nsP5a0D8v4oaR9VMYXkvZxGT+TtE/K+LmkfVrGrf9n3Ryt77XqrxcNucS/57B0QJYQZOmCLBHIEoMsPZAlAVlSkCUDWfogywBkGYIsI5BlDLJMQJYpyDIDWfZAln2QZQ6yLECWA5DlEGQ5AlmOQZYTkOUUZDkDWR6ALOcgy0OQ5QJkuQRZHoEsH4Asj0GWJyDLU5DlGcjyHGR5AbK8BFlegSyvQZY3IMsSZLkCWa5Blrcgy4cgy0cgy8cgyycgy6cgS3vHlnVzQG1/V9I+K+NvJe3zMv6hpH1Rxj+StO+X8Y8l7csy/omk/aCMfyppgcNsz68/kzR7jvy5pJn/C0mz56rflzR7vvmlpNlzRjMVx/phctsfOPxfOsqp59ryzsvX5f3C6lxrPrlsW146l/VLgOVTkOUTkOVjkOUjkOVDkOUtyHINslyBLEuQ5Q3I8hpkeQWyvARZXoAsz0GWZyDLU5DlCcjyGGT5AGR5BLJcgiwXIMtDkOUcZHkAspyBLKcgywnIcgyyHIEshyDLAciyAFnmIMs+yLIHssxAlinIMgFZxiDLCGQZgiwDkKUPsmQgSwqyJCBLD2SJQZYIZOmCLCHI0gFZAofli3otH+oYgJaYNOQS/0Isn9drWT0W+kzyMpflk8l+HaP3Wb2O1fn5vFJ+21bf+1offYus198i6w92bNVxNjpmJaiY49IY1Wu81nE0Fjb97UZitOuirqvQa6AO44rFti2vTAyd5ixvM0fe6Zp6SOrNe6ljluzYxTXvF72bPLOay1scc1hzOYrzafcCRfiVlEvnrDeR76CSb1bJt916d52FX4nV3tuR3/mH3s15+FUZ13tAHV83quSlf+O2L269ez+rf5djiVt9hZI2lXhQeY/2Heg8b+tnycvX5f3C26TiKMKm7xKd571fr2V1vnWOci55aL6LevO90nzb5Y/lYekdif+znUz5vSLYZ8DM2kenv6fxaeU9mezfa7jM++LIZdvyKj6r/yhl3XO49fvc9usaCXs1u4tjzMTRq9gSKYd+t89/h/U3lzrpVuqrAcvqGlfNu6m637+j7i3Nfq96vQvrNa3uHfQ7N5B8i6D3dvp5qLlNtqqb2OGIxGH569pNNbd3ru08VB2uto/93ro10WpuD20c/+6ydECWEGRpsM26tSUCWWKQpQeytHdscc1pKT7Dv05v9lubPZD3aPvd0qwtHkqa5dOXNGvvDySteu+gx9M6GlTKsrxfWNWR5pPLtuWlc0GGAEsPZIlBlghk6YIsIcjSAVmCimXd95p9d7n6H7S9Npa4vU4kP0uz+41M0oKKT+ft6XenncuRpJlL87e/hYmkmXUq9nXty5r7vjZei7LKa6v1bvty15YQZOmCLBHIEoMsPZAlAVlSkKW9Y8u6ueS2X9va9v2v1yS7Tmhbe1M/uT5nsuuEXrvsOqHPRKYSt1fr39PrWeAo26Zrl17jqu0kvXbpNc6seo0zq17jzKp2s5q9yPOf0ttl0s+EvT8vX5f3C6vPhOaTy7blpfcZM4AlBVkSkKUHssQgSwSydEGWEGTpgCxBxWJjMtJ6PaulEPQZfyCGVlkntv/fk5vf+4Pkpo769ZpWS0VkDpNe623/H5aOQWv9/VoT99AacolbXuvu13ZtCUGWLsgSgSwxyNIDWRKQJQVZMpClD7I0/WzkLsu6+9j3fT5UHZul96d6z2r3eHrPWh3nclc/qt5j1tmPWrzvP9Lb1sBhnTjKpOfQ8s7L1+X9wuocaj65bOt4tnbFt0tLH2TJQJYUZElAlh7IEoMsEcjSBVlCkKUDsgQVi16L7fpV1N2/ybqeo8pxiv2n5RfVunvVmseib2ynWF7r7lV3bQlBli7IEoEsMcjSA1kSkCUFWTKQpQ+yjECWMcgyAVmmIEt7x5Z1fRu2/67n8fq82dJ03pCl2XwM7duwuSKuvg31mUH7O6rPm7RvQ+eDmGFf0swwF/v/pbetgcO67yiTnsO657y0K/nksm15ad/GPsAyBVkmIMsYZBmBLH2QJQNZUpAlAVl6IEsMskQgSxdkCUGWDsgSVCza12XtHe3r0radPlMKKse2MS7dest1re2+lpRPQy7xBufbLq2cLamnluSj635ov2Bcr2N1rqNK+W1bfe9r7ezYuq4/te750ps+N5HD0gFZQpClyTnt21raO7asu5e2/XrfHFTeW9Tj32Q3+6vfHXocvYeOHWVvcj0lu5641jRqV3y7tPwO1jp4b0sIsnRAlsBhqXl++NLyakkeLcknrZhsX1rx6t9sKm7fzvHtnG9ibeBcfdjA3/K1XmMsbPosNrjuxHW/tOh11PLSutXPYc3z3lZ/D7oWXbXdqv02Oi+sL/stLaj8nv8+8d8n39TawLl6679PfhO+7d8nQc3mb8sx9Zmg6z5K01z3WxbXZ5v6d25p1fa9rclZneeszzo6klZ9rupaD1Sf2USStmmes35um5j/ZvnYcavrhWat2/Omm7Bkjry1HjqAeqjOFd9FPYSAeqjOj99FPXQB9WCG3g7rIQLUQ/V+fBf1EAPqwQzp77geNq2P1ES/UKtSFxZ0HV8LDa7LvrUlBFmaXjt/G0sEsjTdp7mNpen++Lss655F2H5t59p3r471s+8hvTey8ml7WNszlmbXdm2TBg6f5mev2ga2NMtP196x/PSeyPIbiPPvs9vWwGF13VvpOWxi/STNJ5dtvfdrV3y7tMQgSwSydEGWEGTpgCzVvhH9PtNxxdX7Vd8+ej+Lbx/59tE2Ft8+YrSP/rN/2+rbR9/M4ttHvn20/I60j9a1eXaxjuy6Ns+uLX7NbLclAllIa2Y3/Xe+jWUAsjTdjrjLsq4t+D73h8Xf3X9LG8raZYHjOK7xhVr2msc3rMqu+eQVg5naFd8uLQOQpQ+yxCBLBLJ0QZYQZOmALIHDUvM9/2oclY2ZKYJ95+rYbjO5/v+W3mMHld+zcVSdms3f8bGevx1fp/cPLalHc+q1Mq7s0/Oh46uaGJvYwN/Iagxl3Wt9N9BO+qg4Zs3rf39cHLPm9Vo/WXdf6tdbuwl+vTW/3to2Fr/eml9vrbWFhbTe2gBkae/Ysq4fw/brsyVdv8FedZ1US5tUylmk2dhBfSZk63BpX4mtB6HtO1trQp9t6VoTlrYo4/os7aCM67O0wzLuepbmWkNMy2356Vro1TV89Vmajh2t/k8ifXao649Z/eoaG1a/c0mz+l1ImtXvgaRZ/Vq5V2uXSf+T/a7W+aHjOBbXz6zlnZevy/uF1WdW88ll2/LS/qcDgGUAsvRBlgxkSUGWBGTpgSwxyBKBLF2QJQRZOiBLULGs63Nowqchl/jCYemALCHI0gVZIpAlBll6IEsCsqQgSway9EGWAcjS9PVyG8shyNL0fe1dlnV9Mbbf9XxL+zz+ZHiz3/oJAsdxtA9h7ij7fgNl13zy1u210fWefg6wHIIsByDLAGTpgywZyJKCLAnI0gNZYpAlAlm6IEsIsnRAlsBhqXk98mt97tMSk4Zc4vr/Y2b1WlbjxKaSl7ksn0z2a3u2iXVBZpXy27b63te62LF1XR9ZzedvY9t75rB0QJYQZOmCLBHIEoMsPZAlAVlSkCUDWfogywBkabA9sbVlH2SZgywLkOUAZDkEWdo7tqzrU7X9OsYqqLy3aO/8QvpUrd0aOI6j47ymjrJPGii75pPLtuWlfapTgOUQZDkAWRYgyxxk2QdZ9kCWAcjSB1kykCUFWRKQpQeyxCBLBLJ0QZYQZOmALIHDMq7Xsur3trkPRbC2rs75MJPOkRhVvNq2tn02H7fuubM6p6Il9aghl7j2UdU853ZVf66+Ocsnk/3a/93EeiZppfxqaDnim6xNr6dUp7Xp9Zbusurcnff5v3B+vYCtwtsm1wvw88bvtvh5437e+DYWP2/czxvfxuLnjft540W4a9544PA1PX+7eN/fDW+XSdsalrfOXTdj6CiTuqYO/8RRTovrZ8Lek5evy/uF1WdC88ll2/LS5w1DgGUAsvRBlgxkSUGWBGTpgSwxyBKBLF2QJQRZOiBLtV2w7p6+CZ+GXOIjh6UDsoQgSxdkiUCWGGTpgSwJyJKCLBnI0gdZBiBL09fLbSwTkGUKssxAlqbv9++yrOsDsv3aD2L9GtoPYmOqtB/ExnzpGn465tjSbMycruFnY/q07+lQ4vZ6VMa17+m4jGvf00kZ176n0zLu6nvSerFyan+OlVPX+rNy6jjU6nxM7XvStQKqa3fp2oFabivnkaRZOY8lzcp5ImlWTit34f219HnZ7+q5PnUcx+L6mbW88/J1eb+w+sxqPrlsW17aR3UCsMxAlinIMgFZhiDLAGTpgywZyJKCLAnI0gNZYpAlAlm6IEsIsnRAlqBiWden2YRPQy7xY4elA7KEIEsXZIlAlhhk6YEsCciSgiwZyNIHWQYgyxBkmYAsU5BlBrI03b7axnIKsjTdb3aXZV1fr+3XcXLWz3gqaYHjeNY+tN8v2kU/S28fO3Ac+9hh0Do6rJRleb+wqiPNJ5dty0v7Fo8BllOQ5QRkmYEsU5BlArIMQZYByNIHWTKQJQVZEpClB7LEIEsEsnRBlhBk6YAsrvar7dfn6kHlvZvmkdY813djO97yWndPsQvLunuKTqWutF5tX/E381+jm/1dx3siR376fkvTvuHqe7WOap5HvaojzSeXbcsrrRh2bQkqluL6Ym2Sn3718z/+6id/9dXPf/TVL/W8Vs9NEToS1/E/ceU96+ZmN/CZ/a7Plb9ucq68jkfSc5dU8tLxSK7/v6pjt/Tv1l7Nocfw8/Tvtvh5+n6e/jYWP0/fz9PfxuLn6ft5+kXw8/T9PP1tLX6evp+nv43Fz9P38/S3sfh5+n6e/iafhlzifp7++1v8PH0/T38bi5+n7+fpb2Px8/T9PP1tLH6evp+nX4Tf53n6/zK+2e/n6d/P4ufp+3n621j8PH0/T38bi5+n7+fpb2Px8/T9PP1NPg25xF1zy/w8fbfFz9N3W/w8fbfFz9N3W/w8fbfFz9N3W/w8fbfFz9N3W/w8/Xf7B119vbZ/Jmn3maf/Yz9PvzaLn6fvtvh5+m6Ln6fvtvh5+m6Ln6fvtvh5+m6Ln6fvtvh5+m6Ln6e/fVk05BL/Ls7T/9/JzX7XHOPq/GP9PS17E3PeNZ9ctl3z70OAJXBYap4nviyOYdeAVuvd5wPmMJP2BfdqrpPiGInD0ROHjisyR1qv47o4hut5SSqvlr/2dfbrdbxNKo4ibPr71b7OQb2W1WdkKHmZayDbtr/p+d6DSvmr88m2sTY9B7tOa9Pzou+yNvC5+rMGxkhe69xLC+8zbrKwjOu1vLU1OOy82vGrdavtjya+36c3xX3nfBZB+xj09yweyn693tv+y/FNmda1qWb1lmljO8byWvfMe9eWEGTpgiwRyBKDLD2QJQFZUpAlA1n6IMsAZBmCLCOQZQyyTECWKcjS3rFlXZ+QrrliaTaPxrXemx7P2mR7eozpzX6be6N9Rzb3xjVfad/hmjveq3Vp78nL1+X9wqouNZ9cti0v7WOaAyxTkGUCsoxBlhHIMgRZBiBLH2TJQJYUZElAlh7IEoMsEcjSBVlCkKUDsgQVi7YddU63zdHWNmhQOZ62S3Uuu19z+G6LX3PYrzm8jcWvOezXHN7G4tcc9msOF8GvOezXHN7W4tcc9msOb2Pxaw77NYe3sfg1h/2aw5t8GnKJ+zWH39/i1xz2aw5vY/FrDvs1h7ex+DWH/ZrD21j8msPvv+aw9m9Yv4b2C+lzGnvVZzyWNq+UXZ/raL+Qrb1LXA+4ONYPk9v+wOFfOMqp59ryzsvX5f3C6lxrPrlsW17at7MAWGYgyxRkmYAsQ5BlALL0QZYMZElBlgRk6YEsMcgSgSxdkCUEWTogS1CxrOsLbMKnIZf43GHpgCwhyNIFWSKQJQZZeiBLArKkIEsGsvRBlgHIMgRZJiDLFGSZgSxNt6+2sRyALE33m91lWddHavt1zJn1M+r/EAscx7P2of5/tvP09rEDx7HnDoPW0V6lLMv7hY3j+S2vdXMjd2U5AFkWIMsMZJmCLBOQZQiyDECWPsiSgSwpyJKALD2QJQZZIpClC7KEIEsHZHG1X11rdwSV98alO6zX/Vbbzy3xa8glbvkX3wd2DfnpVz//o7/+07/885/86KtftuUYdtyO47jaFu9Wfk/Lr2uurltLd9P7dcxFx3HMallr+0BEUuigzDwsM48kv1AwvdbNP0X+fxx/4Pf1DAMA","verificationKey":"0000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f"},{"name":"constructor","functionType":"secret","isInternal":false,"parameters":[{"name":"signing_pub_key_x","type":{"kind":"field"},"visibility":"public"},{"name":"signing_pub_key_y","type":{"kind":"field"},"visibility":"public"}],"returnTypes":[],"bytecode":"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","verificationKey":"0000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f"},{"name":"entrypoint","functionType":"secret","isInternal":false,"parameters":[{"name":"payload","type":{"kind":"struct","name":"EntrypointPayload","fields":[{"name":"flattened_args_hashes","type":{"kind":"array","length":4,"type":{"kind":"field"}}},{"name":"flattened_selectors","type":{"kind":"array","length":4,"type":{"kind":"field"}}},{"name":"flattened_targets","type":{"kind":"array","length":4,"type":{"kind":"field"}}},{"name":"nonce","type":{"kind":"field"}}]},"visibility":"public"},{"name":"signature","type":{"kind":"array","length":64,"type":{"kind":"integer","sign":"unsigned","width":8}},"visibility":"public"}],"returnTypes":[],"bytecode":"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","verificationKey":"0000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f"}],"debug":{"debugSymbols":["eJyrVsrJT04syczPK1ayqq6tBQAz9wY7","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"],"fileMap":{"0":{"source":"mod storage;\\nmod public_key_note;\\n\\n// Account contract that uses Schnorr signatures for authentication.\\n// The signing key is stored in an immutable private note and should be different from the encryption/nullifying key.\\ncontract SchnorrAccount {\\n use dep::std;\\n use dep::aztec::entrypoint;\\n use dep::aztec::entrypoint::EntrypointPayload;\\n use dep::aztec::abi;\\n use dep::aztec::abi::PrivateContextInputs;\\n use dep::aztec::abi::CallContext;\\n use dep::aztec::private_call_stack_item::PrivateCallStackItem;\\n use dep::aztec::public_call_stack_item::PublicCallStackItem;\\n use dep::aztec::context::PrivateContext;\\n use dep::aztec::log::emit_encrypted_log;\\n use dep::aztec::oracle::get_public_key::get_public_key;\\n use dep::aztec::types::vec::BoundedVec;\\n use dep::aztec::types::point::Point;\\n use dep::aztec::note::utils as note_utils;\\n use dep::aztec::note::note_header::NoteHeader;\\n use dep::aztec::constants_gen::MAX_NOTE_FIELDS_LENGTH;\\n use dep::aztec::constants_gen::GENERATOR_INDEX__CONTRACT_ADDRESS;\\n use dep::aztec::constants_gen::GENERATOR_INDEX__SIGNATURE_PAYLOAD;\\n\\n use crate::storage::Storage;\\n use crate::public_key_note::PublicKeyNote;\\n use crate::public_key_note::PublicKeyNoteMethods;\\n use crate::public_key_note::PUBLIC_KEY_NOTE_LEN;\\n\\n // docs:start:entrypoint\\n\\n fn entrypoint(\\n inputs: pub PrivateContextInputs,\\n payload: pub EntrypointPayload, // contains a set of arguments, selectors, targets and a nonce\\n signature: pub [u8;64], // schnorr signature of the payload hash\\n ) -> distinct pub abi::PrivateCircuitPublicInputs {\\n // Initialize context\\n // ENTRYPOINT_PAYLOAD_SIZE(13) + 64\\n let mut args: BoundedVec<Field, 77> = BoundedVec::new(0);\\n args.push_array(payload.serialize());\\n for byte in signature { args.push(byte as Field); }\\n let mut context = PrivateContext::new(inputs, abi::hash_args(args.storage));\\n\\n // Load public key from storage\\n let storage = Storage::init();\\n let public_key = storage.signing_public_key.get_note(&mut context);\\n\\n // Verify payload signature\\n let payload_fields: [Field; entrypoint::ENTRYPOINT_PAYLOAD_SIZE] = payload.serialize();\\n let message_field: Field = std::hash::pedersen_with_separator(payload_fields, GENERATOR_INDEX__SIGNATURE_PAYLOAD)[0];\\n let message_bytes = message_field.to_be_bytes(32);\\n\\n // Verify signature of the payload bytes\\n let verification = std::schnorr::verify_signature(public_key.x, public_key.y, signature, message_bytes);\\n assert(verification == true);\\n\\n // docs:end:entrypoint\\n\\n // Execute calls\\n payload.execute_calls(&mut context);\\n\\n context.finish()\\n }\\n\\n // Constructs the contract\\n fn constructor(\\n inputs: pub PrivateContextInputs,\\n signing_pub_key_x: pub Field,\\n signing_pub_key_y: pub Field,\\n ) -> distinct pub abi::PrivateCircuitPublicInputs {\\n let storage = Storage::init();\\n \\n let mut context = PrivateContext::new(inputs, abi::hash_args([signing_pub_key_x, signing_pub_key_y]));\\n \\n let this = context.this_address();\\n let mut pub_key_note = PublicKeyNote::new(signing_pub_key_x, signing_pub_key_y, this);\\n storage.signing_public_key.initialise(&mut context, &mut pub_key_note);\\n \\n emit_encrypted_log(\\n &mut context,\\n this,\\n storage.signing_public_key.storage_slot,\\n get_public_key(this),\\n pub_key_note.serialise(),\\n );\\n\\n context.finish()\\n }\\n\\n // Computes notes hash and nullifier.\\n // Note 1: Needs to be defined by every contract producing logs.\\n // Note 2: Having it in all the contracts gives us the ability to compute the note hash and nullifier differently for different kind of notes.\\n unconstrained fn compute_note_hash_and_nullifier(contract_address: Field, nonce: Field, storage_slot: Field, preimage: [Field; PUBLIC_KEY_NOTE_LEN]) -> [Field; 4] {\\n assert(storage_slot == 1);\\n let note_header = NoteHeader { contract_address, nonce, storage_slot };\\n note_utils::compute_note_hash_and_nullifier(PublicKeyNoteMethods, note_header, preimage)\\n }\\n}\\n","path":"/mnt/user-data/jan/aztec-packages/yarn-project/noir-contracts/src/contracts/schnorr_account_contract/src/main"},"3":{"source":"mod poseidon;\\n\\n#[foreign(sha256)]\\nfn sha256<N>(_input : [u8; N]) -> [u8; 32] {}\\n\\n#[foreign(blake2s)]\\nfn blake2s<N>(_input : [u8; N]) -> [u8; 32] {}\\n\\nfn pedersen<N>(input : [Field; N]) -> [Field; 2] {\\n pedersen_with_separator(input, 0)\\n}\\n\\n#[foreign(pedersen)]\\nfn pedersen_with_separator<N>(_input : [Field; N], _separator : u32) -> [Field; 2] {}\\n\\n#[foreign(hash_to_field_128_security)]\\nfn hash_to_field<N>(_input : [Field; N]) -> Field {}\\n\\n#[foreign(keccak256)]\\nfn keccak256<N>(_input : [u8; N], _message_size: u32) -> [u8; 32] {}\\n\\n// mimc-p/p implementation\\n// constants are (publicly generated) random numbers, for instance using keccak as a ROM.\\n// You must use constants generated for the native field\\n// Rounds number should be ~ log(p)/log(exp)\\n// For 254 bit primes, exponent 7 and 91 rounds seems to be recommended\\nfn mimc<N>(x: Field, k: Field, constants: [Field; N], exp : Field) -> Field {\\n //round 0\\n let mut t = x + k;\\n let mut h = t.pow_32(exp);\\n //next rounds\\n for i in 1 .. constants.len() {\\n t = h + k + constants[i];\\n h = t.pow_32(exp);\\n };\\n h + k\\n}\\n\\nglobal MIMC_BN254_ROUNDS = 91;\\n\\n//mimc implementation with hardcoded parameters for BN254 curve.\\nfn mimc_bn254<N>(array: [Field; N]) -> Field {\\n //mimc parameters\\n let exponent = 7;\\n //generated from seed \\"mimc\\" using keccak256 \\n let constants: [Field; MIMC_BN254_ROUNDS] = [\\n 0, \\n 20888961410941983456478427210666206549300505294776164667214940546594746570981,\\n 15265126113435022738560151911929040668591755459209400716467504685752745317193,\\n 8334177627492981984476504167502758309043212251641796197711684499645635709656,\\n 1374324219480165500871639364801692115397519265181803854177629327624133579404,\\n 11442588683664344394633565859260176446561886575962616332903193988751292992472,\\n 2558901189096558760448896669327086721003508630712968559048179091037845349145,\\n 11189978595292752354820141775598510151189959177917284797737745690127318076389,\\n 3262966573163560839685415914157855077211340576201936620532175028036746741754,\\n 17029914891543225301403832095880481731551830725367286980611178737703889171730,\\n 4614037031668406927330683909387957156531244689520944789503628527855167665518,\\n 19647356996769918391113967168615123299113119185942498194367262335168397100658,\\n 5040699236106090655289931820723926657076483236860546282406111821875672148900,\\n 2632385916954580941368956176626336146806721642583847728103570779270161510514,\\n 17691411851977575435597871505860208507285462834710151833948561098560743654671,\\n 11482807709115676646560379017491661435505951727793345550942389701970904563183,\\n 8360838254132998143349158726141014535383109403565779450210746881879715734773,\\n 12663821244032248511491386323242575231591777785787269938928497649288048289525,\\n 3067001377342968891237590775929219083706800062321980129409398033259904188058,\\n 8536471869378957766675292398190944925664113548202769136103887479787957959589,\\n 19825444354178182240559170937204690272111734703605805530888940813160705385792,\\n 16703465144013840124940690347975638755097486902749048533167980887413919317592,\\n 13061236261277650370863439564453267964462486225679643020432589226741411380501,\\n 10864774797625152707517901967943775867717907803542223029967000416969007792571,\\n 10035653564014594269791753415727486340557376923045841607746250017541686319774,\\n 3446968588058668564420958894889124905706353937375068998436129414772610003289,\\n 4653317306466493184743870159523234588955994456998076243468148492375236846006,\\n 8486711143589723036499933521576871883500223198263343024003617825616410932026,\\n 250710584458582618659378487568129931785810765264752039738223488321597070280,\\n 2104159799604932521291371026105311735948154964200596636974609406977292675173,\\n 16313562605837709339799839901240652934758303521543693857533755376563489378839,\\n 6032365105133504724925793806318578936233045029919447519826248813478479197288,\\n 14025118133847866722315446277964222215118620050302054655768867040006542798474,\\n 7400123822125662712777833064081316757896757785777291653271747396958201309118,\\n 1744432620323851751204287974553233986555641872755053103823939564833813704825,\\n 8316378125659383262515151597439205374263247719876250938893842106722210729522,\\n 6739722627047123650704294650168547689199576889424317598327664349670094847386,\\n 21211457866117465531949733809706514799713333930924902519246949506964470524162,\\n 13718112532745211817410303291774369209520657938741992779396229864894885156527,\\n 5264534817993325015357427094323255342713527811596856940387954546330728068658,\\n 18884137497114307927425084003812022333609937761793387700010402412840002189451,\\n 5148596049900083984813839872929010525572543381981952060869301611018636120248,\\n 19799686398774806587970184652860783461860993790013219899147141137827718662674,\\n 19240878651604412704364448729659032944342952609050243268894572835672205984837,\\n 10546185249390392695582524554167530669949955276893453512788278945742408153192,\\n 5507959600969845538113649209272736011390582494851145043668969080335346810411,\\n 18177751737739153338153217698774510185696788019377850245260475034576050820091,\\n 19603444733183990109492724100282114612026332366576932662794133334264283907557,\\n 10548274686824425401349248282213580046351514091431715597441736281987273193140,\\n 1823201861560942974198127384034483127920205835821334101215923769688644479957,\\n 11867589662193422187545516240823411225342068709600734253659804646934346124945,\\n 18718569356736340558616379408444812528964066420519677106145092918482774343613,\\n 10530777752259630125564678480897857853807637120039176813174150229243735996839,\\n 20486583726592018813337145844457018474256372770211860618687961310422228379031,\\n 12690713110714036569415168795200156516217175005650145422920562694422306200486,\\n 17386427286863519095301372413760745749282643730629659997153085139065756667205,\\n 2216432659854733047132347621569505613620980842043977268828076165669557467682,\\n 6309765381643925252238633914530877025934201680691496500372265330505506717193,\\n 20806323192073945401862788605803131761175139076694468214027227878952047793390,\\n 4037040458505567977365391535756875199663510397600316887746139396052445718861,\\n 19948974083684238245321361840704327952464170097132407924861169241740046562673,\\n 845322671528508199439318170916419179535949348988022948153107378280175750024,\\n 16222384601744433420585982239113457177459602187868460608565289920306145389382,\\n 10232118865851112229330353999139005145127746617219324244541194256766741433339,\\n 6699067738555349409504843460654299019000594109597429103342076743347235369120,\\n 6220784880752427143725783746407285094967584864656399181815603544365010379208,\\n 6129250029437675212264306655559561251995722990149771051304736001195288083309,\\n 10773245783118750721454994239248013870822765715268323522295722350908043393604,\\n 4490242021765793917495398271905043433053432245571325177153467194570741607167,\\n 19596995117319480189066041930051006586888908165330319666010398892494684778526,\\n 837850695495734270707668553360118467905109360511302468085569220634750561083,\\n 11803922811376367215191737026157445294481406304781326649717082177394185903907,\\n 10201298324909697255105265958780781450978049256931478989759448189112393506592,\\n 13564695482314888817576351063608519127702411536552857463682060761575100923924,\\n 9262808208636973454201420823766139682381973240743541030659775288508921362724,\\n 173271062536305557219323722062711383294158572562695717740068656098441040230,\\n 18120430890549410286417591505529104700901943324772175772035648111937818237369,\\n 20484495168135072493552514219686101965206843697794133766912991150184337935627,\\n 19155651295705203459475805213866664350848604323501251939850063308319753686505,\\n 11971299749478202793661982361798418342615500543489781306376058267926437157297,\\n 18285310723116790056148596536349375622245669010373674803854111592441823052978,\\n 7069216248902547653615508023941692395371990416048967468982099270925308100727,\\n 6465151453746412132599596984628739550147379072443683076388208843341824127379,\\n 16143532858389170960690347742477978826830511669766530042104134302796355145785,\\n 19362583304414853660976404410208489566967618125972377176980367224623492419647,\\n 1702213613534733786921602839210290505213503664731919006932367875629005980493,\\n 10781825404476535814285389902565833897646945212027592373510689209734812292327,\\n 4212716923652881254737947578600828255798948993302968210248673545442808456151,\\n 7594017890037021425366623750593200398174488805473151513558919864633711506220,\\n 18979889247746272055963929241596362599320706910852082477600815822482192194401,\\n 13602139229813231349386885113156901793661719180900395818909719758150455500533,\\n ];\\n\\n let mut r = 0;\\n for elem in array {\\n let h = mimc(elem, r, constants, exponent);\\n r = r + elem + h;\\n }\\n r\\n}\\n","path":"std/hash"},"18":{"source":"\\nimpl Field {\\n #[builtin(to_le_bits)]\\n fn to_le_bits(_x : Field, _bit_size: u32) -> [u1] {}\\n #[builtin(to_be_bits)]\\n fn to_be_bits(_x : Field, _bit_size: u32) -> [u1] {}\\n\\n fn to_le_bytes(x : Field, byte_size: u32) -> [u8] {\\n x.to_le_radix(256, byte_size)\\n }\\n fn to_be_bytes(x : Field, byte_size: u32) -> [u8] {\\n x.to_be_radix(256, byte_size)\\n }\\n\\n #[builtin(to_le_radix)]\\n //decompose _x into a _result_len vector over the _radix basis\\n //_radix must be less than 256\\n fn to_le_radix(_x : Field, _radix: u32, _result_len: u32) -> [u8] {}\\n #[builtin(to_be_radix)]\\n fn to_be_radix(_x : Field, _radix: u32, _result_len: u32) -> [u8] {}\\n\\n // Returns self to the power of the given exponent value.\\n // Caution: we assume the exponent fits into 32 bits\\n // using a bigger bit size impacts negatively the performance and should be done only if the exponent does not fit in 32 bits\\n fn pow_32(self, exponent: Field) -> Field {\\n let mut r: Field = 1;\\n let b = exponent.to_le_bits(32);\\n\\n for i in 1..33 {\\n r *= r;\\n r = (b[32-i] as Field) * (r * self) + (1 - b[32-i] as Field) * r;\\n }\\n r\\n }\\n\\n // Parity of (prime) Field element, i.e. sgn0(x mod p) = 0 if x ∈ {0, ..., p-1} is even, otherwise sgn0(x mod p) = 1.\\n fn sgn0(self) -> u1 {\\n self as u1\\n }\\n}\\n\\n#[builtin(modulus_num_bits)]\\nfn modulus_num_bits() -> Field {}\\n\\n#[builtin(modulus_be_bits)]\\nfn modulus_be_bits() -> [u1] {}\\n\\n#[builtin(modulus_le_bits)]\\nfn modulus_le_bits() -> [u1] {}\\n\\n#[builtin(modulus_be_bytes)]\\nfn modulus_be_bytes() -> [u8] {}\\n\\n#[builtin(modulus_le_bytes)]\\nfn modulus_le_bytes() -> [u8] {}\\n","path":"std/field"},"31":{"source":"use crate::constants_gen::{\\n RETURN_VALUES_LENGTH,\\n MAX_READ_REQUESTS_PER_CALL,\\n MAX_NEW_COMMITMENTS_PER_CALL,\\n MAX_NEW_NULLIFIERS_PER_CALL,\\n MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL,\\n MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL,\\n MAX_NEW_L2_TO_L1_MSGS_PER_CALL,\\n NUM_FIELDS_PER_SHA256,\\n MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL,\\n MAX_PUBLIC_DATA_READS_PER_CALL,\\n GENERATOR_INDEX__FUNCTION_ARGS,\\n HISTORIC_BLOCK_DATA_LENGTH,\\n CONTRACT_DEPLOYMENT_DATA_LENGTH,\\n CALL_CONTEXT_LENGTH,\\n PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH,\\n PRIVATE_CIRCUIT_PUBLIC_INPUTS_HASH_INPUT_LENGTH,\\n CONTRACT_STORAGE_UPDATE_REQUEST_LENGTH,\\n CONTRACT_STORAGE_READ_LENGTH,\\n PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH,\\n PUBLIC_CIRCUIT_PUBLIC_INPUTS_HASH_INPUT_LENGTH,\\n GENERATOR_INDEX__PUBLIC_CIRCUIT_PUBLIC_INPUTS,\\n GENERATOR_INDEX__FUNCTION_DATA,\\n GENERATOR_INDEX__PUBLIC_DATA_READ,\\n GENERATOR_INDEX__PUBLIC_DATA_UPDATE_REQUEST,\\n GENERATOR_INDEX__CALL_CONTEXT,\\n GENERATOR_INDEX__PRIVATE_CIRCUIT_PUBLIC_INPUTS,\\n GENERATOR_INDEX__CONTRACT_DEPLOYMENT_DATA,\\n};\\n\\nuse crate::oracle::debug_log;\\nuse crate::types::vec::BoundedVec;\\nuse crate::types::point::Point;\\n\\nstruct PrivateGlobalVariables {\\n chain_id: Field,\\n version: Field,\\n}\\n\\nimpl PrivateGlobalVariables {\\n fn serialize(self) -> [Field; 2] {\\n [self.chain_id, self.version]\\n }\\n}\\n\\nstruct PublicGlobalVariables {\\n chain_id: Field,\\n version: Field,\\n block_number: Field,\\n timestamp: Field,\\n}\\n\\nimpl PublicGlobalVariables {\\n fn serialize(self) -> [Field; 4] {\\n [self.chain_id, self.version, self.block_number, self.timestamp]\\n }\\n}\\n\\nstruct ContractDeploymentData {\\n deployer_public_key: Point,\\n constructor_vk_hash : Field,\\n function_tree_root : Field,\\n contract_address_salt : Field,\\n portal_contract_address : Field,\\n}\\n\\nimpl ContractDeploymentData {\\n fn serialize(self) -> [Field; CONTRACT_DEPLOYMENT_DATA_LENGTH] {\\n [\\n self.deployer_public_key.x,\\n self.deployer_public_key.y,\\n self.constructor_vk_hash,\\n self.function_tree_root,\\n self.contract_address_salt,\\n self.portal_contract_address,\\n ]\\n }\\n\\n fn hash(self) -> Field {\\n dep::std::hash::pedersen_with_separator(self.serialize(), GENERATOR_INDEX__CONTRACT_DEPLOYMENT_DATA)[0]\\n }\\n}\\n\\n// PrivateContextInputs are expected to be provided to each private function\\nstruct PrivateContextInputs {\\n call_context : CallContext,\\n block_data: HistoricBlockData,\\n\\n contract_deployment_data: ContractDeploymentData,\\n\\n private_global_variables: PrivateGlobalVariables,\\n}\\n\\n// PublicContextInputs are expected to be provided to each public function\\nstruct PublicContextInputs {\\n call_context: CallContext,\\n block_data: HistoricBlockData,\\n\\n public_global_variables: PublicGlobalVariables,\\n}\\n\\nstruct CallContext {\\n msg_sender : Field,\\n storage_contract_address : Field,\\n portal_contract_address : Field,\\n\\n is_delegate_call : bool,\\n is_static_call : bool,\\n is_contract_deployment: bool,\\n}\\n\\nimpl CallContext {\\n fn serialize(self) -> [Field; CALL_CONTEXT_LENGTH] {\\n [\\n self.msg_sender,\\n self.storage_contract_address,\\n self.portal_contract_address,\\n self.is_delegate_call as Field,\\n self.is_static_call as Field,\\n self.is_contract_deployment as Field,\\n ]\\n }\\n\\n fn hash(self) -> Field {\\n dep::std::hash::pedersen_with_separator(self.serialize(), GENERATOR_INDEX__CALL_CONTEXT)[0]\\n }\\n}\\n\\nstruct HistoricBlockData {\\n private_data_tree_root : Field,\\n nullifier_tree_root : Field,\\n contract_tree_root : Field,\\n l1_to_l2_messages_tree_root : Field,\\n blocks_tree_root: Field,\\n public_data_tree_root: Field,\\n global_variables_hash: Field,\\n}\\n\\nimpl HistoricBlockData {\\n // NOTE: this order must match the order in `private_circuit_public_inputs.hpp`\\n fn serialize(self) -> [Field; HISTORIC_BLOCK_DATA_LENGTH] {\\n [\\n self.private_data_tree_root,\\n self.nullifier_tree_root,\\n self.contract_tree_root,\\n self.l1_to_l2_messages_tree_root,\\n self.blocks_tree_root,\\n self.public_data_tree_root,\\n self.global_variables_hash,\\n ]\\n }\\n\\n fn empty() -> Self {\\n Self { private_data_tree_root: 0, nullifier_tree_root: 0, contract_tree_root: 0, l1_to_l2_messages_tree_root: 0, blocks_tree_root: 0, public_data_tree_root: 0, global_variables_hash: 0 }\\n }\\n}\\n\\nstruct FunctionData {\\n function_selector: Field,\\n is_internal: bool,\\n is_private: bool,\\n is_constructor: bool,\\n}\\n\\nimpl FunctionData {\\n fn hash(self) -> Field {\\n dep::std::hash::pedersen_with_separator([\\n self.function_selector,\\n self.is_internal as Field,\\n self.is_private as Field,\\n self.is_constructor as Field,\\n ], GENERATOR_INDEX__FUNCTION_DATA)[0]\\n }\\n}\\n\\nstruct PrivateCircuitPublicInputs {\\n call_context: CallContext,\\n args_hash: Field,\\n return_values: [Field; RETURN_VALUES_LENGTH],\\n read_requests: [Field; crate::abi::MAX_READ_REQUESTS_PER_CALL],\\n new_commitments: [Field; MAX_NEW_COMMITMENTS_PER_CALL],\\n new_nullifiers: [Field; MAX_NEW_NULLIFIERS_PER_CALL],\\n nullified_commitments: [Field; MAX_NEW_NULLIFIERS_PER_CALL],\\n private_call_stack: [Field; MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL],\\n public_call_stack: [Field; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL],\\n new_l2_to_l1_msgs: [Field; MAX_NEW_L2_TO_L1_MSGS_PER_CALL],\\n // Explore introducing a new type like uint256 (similar to Point), so it\'s more explicit that\\n // we\'re talking about a single number backed by two field elements.\\n encrypted_logs_hash: [Field; NUM_FIELDS_PER_SHA256],\\n unencrypted_logs_hash: [Field; NUM_FIELDS_PER_SHA256],\\n encrypted_log_preimages_length: Field,\\n unencrypted_log_preimages_length: Field,\\n block_data: HistoricBlockData,\\n contract_deployment_data: ContractDeploymentData,\\n chain_id: Field,\\n version: Field,\\n}\\n\\nimpl PrivateCircuitPublicInputs {\\n fn hash(self) -> Field {\\n let mut fields: BoundedVec<Field, PRIVATE_CIRCUIT_PUBLIC_INPUTS_HASH_INPUT_LENGTH> = BoundedVec::new(0); \\n fields.push(self.call_context.hash());\\n fields.push(self.args_hash);\\n fields.push_array(self.return_values);\\n fields.push_array(self.read_requests);\\n fields.push_array(self.new_commitments);\\n fields.push_array(self.new_nullifiers);\\n fields.push_array(self.nullified_commitments);\\n fields.push_array(self.private_call_stack);\\n fields.push_array(self.public_call_stack);\\n fields.push_array(self.new_l2_to_l1_msgs);\\n fields.push_array(self.encrypted_logs_hash);\\n fields.push_array(self.unencrypted_logs_hash);\\n fields.push(self.encrypted_log_preimages_length);\\n fields.push(self.unencrypted_log_preimages_length);\\n fields.push_array(self.block_data.serialize());\\n fields.push(self.contract_deployment_data.hash());\\n fields.push(self.chain_id);\\n fields.push(self.version);\\n\\n dep::std::hash::pedersen_with_separator(fields.storage, GENERATOR_INDEX__PRIVATE_CIRCUIT_PUBLIC_INPUTS)[0]\\n }\\n\\n fn serialize(self) -> [Field; PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH] {\\n let mut fields: BoundedVec<Field, PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH> = BoundedVec::new(0); \\n fields.push_array(self.call_context.serialize());\\n fields.push(self.args_hash);\\n fields.push_array(self.return_values);\\n fields.push_array(self.read_requests);\\n fields.push_array(self.new_commitments);\\n fields.push_array(self.new_nullifiers);\\n fields.push_array(self.private_call_stack);\\n fields.push_array(self.public_call_stack);\\n fields.push_array(self.new_l2_to_l1_msgs);\\n fields.push_array(self.encrypted_logs_hash);\\n fields.push_array(self.unencrypted_logs_hash);\\n fields.push(self.encrypted_log_preimages_length);\\n fields.push(self.unencrypted_log_preimages_length);\\n fields.push_array(self.block_data.serialize());\\n fields.push_array(self.contract_deployment_data.serialize());\\n fields.push(self.chain_id);\\n fields.push(self.version);\\n fields.storage\\n }\\n}\\n\\nstruct ContractStorageRead {\\n storage_slot: Field,\\n value: Field,\\n}\\n\\nimpl ContractStorageRead {\\n fn serialize(self) -> [Field; CONTRACT_STORAGE_READ_LENGTH] {\\n [self.storage_slot, self.value]\\n }\\n\\n fn hash(self) -> Field {\\n dep::std::hash::pedersen_with_separator(self.serialize(), GENERATOR_INDEX__PUBLIC_DATA_READ)[0]\\n }\\n\\n fn empty() -> Self {\\n Self { storage_slot: 0, value: 0 }\\n }\\n}\\n\\nstruct ContractStorageUpdateRequest {\\n storage_slot: Field,\\n old_value: Field,\\n new_value: Field,\\n}\\n\\nimpl ContractStorageUpdateRequest {\\n fn serialize(self) -> [Field; CONTRACT_STORAGE_UPDATE_REQUEST_LENGTH] {\\n [self.storage_slot, self.old_value, self.new_value]\\n }\\n\\n fn hash(self) -> Field {\\n dep::std::hash::pedersen_with_separator(self.serialize(), GENERATOR_INDEX__PUBLIC_DATA_UPDATE_REQUEST)[0]\\n }\\n\\n fn empty() -> Self {\\n Self { storage_slot: 0, old_value: 0, new_value: 0 }\\n }\\n}\\n\\n\\nstruct PublicCircuitPublicInputs {\\n call_context: CallContext,\\n args_hash: Field,\\n return_values: [Field; RETURN_VALUES_LENGTH],\\n contract_storage_update_requests: [ContractStorageUpdateRequest; MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL],\\n contract_storage_read: [ContractStorageRead; MAX_PUBLIC_DATA_READS_PER_CALL],\\n public_call_stack: [Field; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL],\\n new_commitments: [Field; MAX_NEW_COMMITMENTS_PER_CALL],\\n new_nullifiers: [Field; crate::abi::MAX_NEW_NULLIFIERS_PER_CALL],\\n new_l2_to_l1_msgs: [Field; crate::abi::MAX_NEW_L2_TO_L1_MSGS_PER_CALL],\\n unencrypted_logs_hash: [Field; NUM_FIELDS_PER_SHA256],\\n unencrypted_log_preimages_length: Field,\\n block_data: HistoricBlockData,\\n prover_address: Field,\\n\\n // TODO: include globals in here and check them elsewhere\\n // https://github.com/AztecProtocol/aztec-packages/issues/1567\\n}\\n\\nimpl PublicCircuitPublicInputs {\\n \\n fn hash(self) -> Field {\\n let mut inputs: BoundedVec<Field, PUBLIC_CIRCUIT_PUBLIC_INPUTS_HASH_INPUT_LENGTH> = BoundedVec::new(0);\\n inputs.push(self.call_context.hash());\\n inputs.push(self.args_hash);\\n inputs.push_array(self.return_values);\\n for i in 0..MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL {\\n inputs.push(self.contract_storage_update_requests[i].hash());\\n }\\n for i in 0..MAX_PUBLIC_DATA_READS_PER_CALL {\\n inputs.push(self.contract_storage_read[i].hash());\\n }\\n inputs.push_array(self.public_call_stack);\\n inputs.push_array(self.new_commitments);\\n inputs.push_array(self.new_nullifiers);\\n inputs.push_array(self.new_l2_to_l1_msgs);\\n\\n // We do not include block_data since it\'s not in the cpp hash\\n\\n inputs.push_array(self.unencrypted_logs_hash);\\n inputs.push(self.unencrypted_log_preimages_length);\\n inputs.push_array(self.block_data.serialize()); // see https://github.com/AztecProtocol/aztec-packages/issues/1473\\n inputs.push(self.prover_address);\\n\\n dep::std::hash::pedersen_with_separator(inputs.storage, GENERATOR_INDEX__PUBLIC_CIRCUIT_PUBLIC_INPUTS)[0]\\n }\\n\\n fn serialize(self) -> [Field; PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH] {\\n let mut fields: BoundedVec<Field, PUBLIC_CIRCUIT_PUBLIC_INPUTS_LENGTH> = BoundedVec::new(0); \\n fields.push_array(self.call_context.serialize()); \\n fields.push(self.args_hash);\\n fields.push_array(self.return_values);\\n for i in 0..MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL {\\n fields.push_array(self.contract_storage_update_requests[i].serialize());\\n }\\n for i in 0..MAX_PUBLIC_DATA_READS_PER_CALL {\\n fields.push_array(self.contract_storage_read[i].serialize());\\n }\\n fields.push_array(self.public_call_stack);\\n fields.push_array(self.new_commitments);\\n fields.push_array(self.new_nullifiers);\\n fields.push_array(self.new_l2_to_l1_msgs);\\n fields.push_array(self.unencrypted_logs_hash);\\n fields.push(self.unencrypted_log_preimages_length);\\n fields.push_array(self.block_data.serialize());\\n fields.push(self.prover_address);\\n fields.storage\\n }\\n}\\n\\nglobal ARGS_HASH_CHUNK_LENGTH: u32 = 32;\\nglobal ARGS_HASH_CHUNK_COUNT: u32 = 16;\\n\\nfn hash_args<N>(args: [Field; N]) -> Field {\\n if args.len() == 0 {\\n 0\\n } else {\\n let mut chunks_hashes = [0; ARGS_HASH_CHUNK_COUNT];\\n for i in 0..ARGS_HASH_CHUNK_COUNT {\\n let mut chunk_hash = 0;\\n let start_chunk_index = i * ARGS_HASH_CHUNK_LENGTH;\\n if start_chunk_index < (args.len() as u32) {\\n let mut chunk_args = [0; ARGS_HASH_CHUNK_LENGTH];\\n for j in 0..ARGS_HASH_CHUNK_LENGTH {\\n let item_index = i * ARGS_HASH_CHUNK_LENGTH + j;\\n if item_index < (args.len() as u32) {\\n chunk_args[j] = args[item_index];\\n }\\n }\\n chunk_hash = dep::std::hash::pedersen_with_separator(chunk_args, GENERATOR_INDEX__FUNCTION_ARGS)[0];\\n }\\n chunks_hashes[i] = chunk_hash;\\n }\\n dep::std::hash::pedersen_with_separator(chunks_hashes, GENERATOR_INDEX__FUNCTION_ARGS)[0]\\n }\\n}\\n","path":"/mnt/user-data/jan/aztec-packages/yarn-project/noir-libs/noir-aztec/src/abi"},"32":{"source":"use crate::constants_gen::{\\n EMPTY_NULLIFIED_COMMITMENT,\\n MAX_NEW_COMMITMENTS_PER_CALL,\\n MAX_NEW_L2_TO_L1_MSGS_PER_CALL,\\n MAX_NEW_NULLIFIERS_PER_CALL,\\n MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL,\\n MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL,\\n MAX_PUBLIC_DATA_READS_PER_CALL,\\n MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL,\\n MAX_READ_REQUESTS_PER_CALL,\\n NUM_FIELDS_PER_SHA256,\\n RETURN_VALUES_LENGTH,\\n};\\n\\nuse crate::abi;\\n\\nuse crate::abi::{\\n hash_args,\\n CallContext,\\n ContractDeploymentData,\\n HistoricBlockData,\\n FunctionData,\\n PrivateCircuitPublicInputs,\\n PublicCircuitPublicInputs,\\n};\\n\\n// TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\\n// use dep::std::collections::vec::Vec;\\n\\n// l1 to l2 messaging\\nuse crate::messaging::process_l1_to_l2_message;\\nuse crate::private_call_stack_item::PrivateCallStackItem;\\nuse crate::public_call_stack_item::PublicCallStackItem;\\n\\nuse crate::types::{\\n vec::BoundedVec,\\n point::Point,\\n};\\n\\nuse crate::utils::arr_copy_slice;\\n\\nuse crate::oracle::{\\n arguments,\\n call_private_function::call_private_function_internal,\\n public_call::call_public_function_internal,\\n enqueue_public_function_call::enqueue_public_function_call_internal,\\n context::get_portal_address,\\n};\\n\\n\\n// When finished, one can call .finish() to convert back to the abi\\nstruct PrivateContext {\\n inputs: abi::PrivateContextInputs,\\n\\n args_hash : Field,\\n return_values : BoundedVec<Field, RETURN_VALUES_LENGTH>,\\n\\n read_requests: BoundedVec<Field, MAX_READ_REQUESTS_PER_CALL>,\\n\\n new_commitments: BoundedVec<Field, MAX_NEW_COMMITMENTS_PER_CALL>,\\n new_nullifiers: BoundedVec<Field, MAX_NEW_NULLIFIERS_PER_CALL>,\\n nullified_commitments: BoundedVec<Field, MAX_NEW_NULLIFIERS_PER_CALL>,\\n\\n private_call_stack : BoundedVec<Field, MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL>,\\n public_call_stack : BoundedVec<Field, MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL>,\\n new_l2_to_l1_msgs : BoundedVec<Field, MAX_NEW_L2_TO_L1_MSGS_PER_CALL>,\\n\\n block_data: HistoricBlockData,\\n\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\\n // encrypted_logs_preimages: Vec<Field>,\\n // unencrypted_logs_preimages: Vec<Field>,\\n}\\n\\nimpl PrivateContext {\\n fn new(inputs: abi::PrivateContextInputs, args_hash: Field) -> PrivateContext {\\n PrivateContext {\\n inputs: inputs,\\n\\n args_hash: args_hash,\\n return_values: BoundedVec::new(0),\\n\\n read_requests: BoundedVec::new(0),\\n\\n new_commitments: BoundedVec::new(0),\\n new_nullifiers: BoundedVec::new(0),\\n nullified_commitments: BoundedVec::new(0),\\n\\n block_data: inputs.block_data,\\n\\n private_call_stack: BoundedVec::new(0),\\n public_call_stack: BoundedVec::new(0),\\n new_l2_to_l1_msgs: BoundedVec::new(0),\\n\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\\n // encrypted_logs_preimages: Vec::new(),\\n // unencrypted_logs_preimages: Vec::new(),\\n }\\n }\\n\\n fn msg_sender(self) -> Field {\\n self.inputs.call_context.msg_sender\\n }\\n\\n fn this_address(self) -> Field {\\n self.inputs.call_context.storage_contract_address\\n }\\n\\n fn this_portal_address(self) -> Field {\\n self.inputs.call_context.portal_contract_address\\n }\\n\\n fn chain_id(self) -> Field {\\n self.inputs.private_global_variables.chain_id\\n }\\n\\n fn version(self) -> Field {\\n self.inputs.private_global_variables.version\\n }\\n\\n fn finish(self) -> abi::PrivateCircuitPublicInputs {\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\\n let encrypted_logs_hash = [0; NUM_FIELDS_PER_SHA256];\\n let unencrypted_logs_hash = [0; NUM_FIELDS_PER_SHA256];\\n let encrypted_log_preimages_length = 0;\\n let unencrypted_log_preimages_length = 0;\\n\\n let priv_circuit_pub_inputs = abi::PrivateCircuitPublicInputs {\\n call_context: self.inputs.call_context,\\n args_hash: self.args_hash,\\n return_values: self.return_values.storage,\\n read_requests: self.read_requests.storage,\\n new_commitments: self.new_commitments.storage,\\n new_nullifiers: self.new_nullifiers.storage,\\n nullified_commitments: self.nullified_commitments.storage,\\n private_call_stack: self.private_call_stack.storage,\\n public_call_stack: self.public_call_stack.storage,\\n new_l2_to_l1_msgs: self.new_l2_to_l1_msgs.storage,\\n encrypted_logs_hash: encrypted_logs_hash,\\n unencrypted_logs_hash: unencrypted_logs_hash,\\n encrypted_log_preimages_length: encrypted_log_preimages_length,\\n unencrypted_log_preimages_length: unencrypted_log_preimages_length,\\n block_data: self.block_data,\\n contract_deployment_data: self.inputs.contract_deployment_data,\\n chain_id: self.inputs.private_global_variables.chain_id,\\n version: self.inputs.private_global_variables.version,\\n };\\n priv_circuit_pub_inputs\\n }\\n\\n fn push_read_request(&mut self, read_request: Field) {\\n self.read_requests.push(read_request);\\n }\\n\\n fn push_new_note_hash(&mut self, note_hash: Field) {\\n self.new_commitments.push(note_hash);\\n }\\n\\n fn push_new_nullifier(&mut self, nullifier: Field, nullified_commitment: Field) {\\n self.new_nullifiers.push(nullifier);\\n self.nullified_commitments.push(nullified_commitment);\\n }\\n\\n fn message_portal(&mut self, content: Field) {\\n self.new_l2_to_l1_msgs.push(content);\\n }\\n\\n // PrivateContextInputs must be temporarily passed in to prevent too many unknowns\\n // Note this returns self to get around an issue where mutable structs do not maintain mutations unless reassigned\\n fn consume_l1_to_l2_message(&mut self, inputs: abi::PrivateContextInputs, msg_key: Field, content: Field, secret: Field) {\\n let nullifier = process_l1_to_l2_message(inputs.block_data.l1_to_l2_messages_tree_root, inputs.call_context.storage_contract_address, msg_key, content, secret);\\n\\n // Push nullifier (and the \\"commitment\\" corresponding to this can be \\"empty\\")\\n self.push_new_nullifier(nullifier, EMPTY_NULLIFIED_COMMITMENT)\\n }\\n\\n fn accumulate_encrypted_logs<N>(&mut self, log: [Field; N]) {\\n let _void1 = self.inputs;\\n let _void2 = log;\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\\n }\\n\\n fn accumulate_unencrypted_logs<T>(&mut self, log: T) {\\n let _void1 = self.inputs;\\n let _void2 = log;\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\\n }\\n\\n fn call_private_function<ARGS_COUNT>(\\n &mut self,\\n contract_address: Field, \\n function_selector: Field, \\n args: [Field; ARGS_COUNT]\\n ) -> [Field; RETURN_VALUES_LENGTH] {\\n let args_hash = hash_args(args);\\n assert(args_hash == arguments::pack_arguments(args));\\n self.call_private_function_with_packed_args(contract_address, function_selector, args_hash)\\n }\\n\\n fn call_private_function_no_args(\\n &mut self,\\n contract_address: Field, \\n function_selector: Field, \\n ) -> [Field; RETURN_VALUES_LENGTH] {\\n self.call_private_function_with_packed_args(contract_address, function_selector, 0)\\n }\\n\\n fn call_private_function_with_packed_args(\\n &mut self,\\n contract_address: Field,\\n function_selector: Field,\\n args_hash: Field\\n ) -> [Field; RETURN_VALUES_LENGTH] {\\n let fields = call_private_function_internal(\\n contract_address, \\n function_selector, \\n args_hash\\n );\\n let item = PrivateCallStackItem {\\n contract_address: fields[0],\\n function_data: FunctionData {\\n function_selector: fields[1],\\n is_internal: fields[2] as bool,\\n is_private: fields[3] as bool,\\n is_constructor: fields[4] as bool,\\n },\\n public_inputs: PrivateCircuitPublicInputs {\\n call_context: CallContext {\\n msg_sender : fields[5],\\n storage_contract_address : fields[6],\\n portal_contract_address : fields[7],\\n \\n is_delegate_call : fields[8] as bool,\\n is_static_call : fields[9] as bool,\\n is_contract_deployment: fields[10] as bool,\\n },\\n // TODO handle the offsets as a variable incremented during extraction?\\n args_hash: fields[11],\\n return_values: arr_copy_slice(fields, [0; RETURN_VALUES_LENGTH], 12),\\n read_requests: arr_copy_slice(fields, [0; MAX_READ_REQUESTS_PER_CALL], 16),\\n new_commitments: arr_copy_slice(fields, [0; MAX_NEW_COMMITMENTS_PER_CALL], 20),\\n new_nullifiers: arr_copy_slice(fields, [0; MAX_NEW_NULLIFIERS_PER_CALL], 24),\\n nullified_commitments: arr_copy_slice(fields, [0; MAX_NEW_NULLIFIERS_PER_CALL], 28),\\n private_call_stack: arr_copy_slice(fields, [0; MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL], 32),\\n public_call_stack: arr_copy_slice(fields, [0; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL], 36),\\n new_l2_to_l1_msgs: arr_copy_slice(fields, [0; MAX_NEW_L2_TO_L1_MSGS_PER_CALL], 40),\\n encrypted_logs_hash: arr_copy_slice(fields, [0; NUM_FIELDS_PER_SHA256], 42),\\n unencrypted_logs_hash: arr_copy_slice(fields, [0; NUM_FIELDS_PER_SHA256], 44),\\n encrypted_log_preimages_length: fields[46],\\n unencrypted_log_preimages_length: fields[47],\\n block_data: HistoricBlockData {\\n // Must match order in `private_circuit_public_inputs.hpp`\\n private_data_tree_root : fields[48],\\n nullifier_tree_root : fields[49],\\n contract_tree_root : fields[50],\\n l1_to_l2_messages_tree_root : fields[51],\\n blocks_tree_root : fields[52],\\n public_data_tree_root: fields[53],\\n global_variables_hash: fields[54],\\n },\\n contract_deployment_data: ContractDeploymentData {\\n deployer_public_key: Point::new(fields[55], fields[56]),\\n constructor_vk_hash : fields[57],\\n function_tree_root : fields[58],\\n contract_address_salt : fields[59],\\n portal_contract_address : fields[60],\\n },\\n chain_id: fields[61],\\n version: fields[62],\\n },\\n is_execution_request: fields[63] as bool,\\n };\\n assert(contract_address == item.contract_address);\\n assert(function_selector == item.function_data.function_selector);\\n\\n assert(args_hash == item.public_inputs.args_hash);\\n\\n assert(item.is_execution_request == false);\\n\\n // Assert that the call context of the enqueued call generated by the oracle matches our request.\\n // We are issuing a regular call which is not delegate, static, or deployment. We also constrain\\n // the msg_sender in the nested call to be equal to our address, and the execution context address\\n // for the nested call to be equal to the address we actually called.\\n assert(item.public_inputs.call_context.is_delegate_call == false);\\n assert(item.public_inputs.call_context.is_static_call == false);\\n assert(item.public_inputs.call_context.is_contract_deployment == false);\\n assert(item.public_inputs.call_context.msg_sender == self.inputs.call_context.storage_contract_address);\\n assert(item.public_inputs.call_context.storage_contract_address == contract_address);\\n\\n self.private_call_stack.push(item.hash());\\n\\n item.public_inputs.return_values\\n }\\n\\n fn call_public_function<ARGS_COUNT>(\\n &mut self,\\n contract_address: Field, \\n function_selector: Field, \\n args: [Field; ARGS_COUNT]\\n ) {\\n let args_hash = hash_args(args);\\n assert(args_hash == arguments::pack_arguments(args));\\n self.call_public_function_with_packed_args(contract_address, function_selector, args_hash)\\n }\\n\\n fn call_public_function_no_args(\\n &mut self,\\n contract_address: Field, \\n function_selector: Field,\\n ) {\\n self.call_public_function_with_packed_args(contract_address, function_selector, 0)\\n }\\n\\n fn call_public_function_with_packed_args(\\n &mut self,\\n contract_address: Field,\\n function_selector: Field,\\n args_hash: Field\\n ) {\\n let fields = enqueue_public_function_call_internal(\\n contract_address, \\n function_selector, \\n args_hash\\n );\\n let item = PublicCallStackItem {\\n contract_address: fields[0],\\n function_data: FunctionData {\\n function_selector: fields[1],\\n is_internal: fields[2] as bool,\\n is_private: fields[3] as bool,\\n is_constructor: fields[4] as bool,\\n },\\n public_inputs: PublicCircuitPublicInputs {\\n call_context: CallContext {\\n msg_sender : fields[5],\\n storage_contract_address : fields[6],\\n portal_contract_address : fields[7],\\n \\n is_delegate_call : fields[8] as bool,\\n is_static_call : fields[9] as bool,\\n is_contract_deployment: fields[10] as bool,\\n },\\n args_hash: fields[11],\\n return_values: [0; RETURN_VALUES_LENGTH],\\n contract_storage_update_requests: [ContractStorageUpdateRequest::empty(); MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL],\\n contract_storage_read: [ContractStorageRead::empty(); MAX_PUBLIC_DATA_READS_PER_CALL],\\n public_call_stack: [0; MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL],\\n new_commitments: [0; MAX_NEW_COMMITMENTS_PER_CALL],\\n new_nullifiers: [0; MAX_NEW_NULLIFIERS_PER_CALL],\\n new_l2_to_l1_msgs:[0; MAX_NEW_L2_TO_L1_MSGS_PER_CALL],\\n unencrypted_logs_hash:[0; NUM_FIELDS_PER_SHA256],\\n unencrypted_log_preimages_length: 0,\\n block_data: HistoricBlockData::empty(),\\n prover_address: 0,\\n },\\n is_execution_request: true,\\n };\\n\\n assert(contract_address == item.contract_address);\\n assert(function_selector == item.function_data.function_selector);\\n \\n assert(args_hash == item.public_inputs.args_hash);\\n\\n // Assert that the call context of the enqueued call generated by the oracle matches our request.\\n // We are issuing a regular call which is not delegate, static, or deployment. We also constrain\\n // the msg_sender in the nested call to be equal to our address, and the execution context address\\n // for the nested call to be equal to the address we actually called.\\n assert(item.public_inputs.call_context.is_delegate_call == false);\\n assert(item.public_inputs.call_context.is_static_call == false);\\n assert(item.public_inputs.call_context.is_contract_deployment == false);\\n assert(item.public_inputs.call_context.msg_sender == self.inputs.call_context.storage_contract_address);\\n assert(item.public_inputs.call_context.storage_contract_address == contract_address);\\n\\n self.public_call_stack.push(item.hash());\\n }\\n}\\n\\nuse crate::abi::{\\n ContractStorageRead,\\n ContractStorageUpdateRequest\\n};\\n\\nstruct PublicContext {\\n inputs: abi::PublicContextInputs,\\n\\n args_hash : Field,\\n return_values : BoundedVec<Field, RETURN_VALUES_LENGTH>,\\n\\n contract_storage_update_requests: BoundedVec<ContractStorageUpdateRequest, MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_CALL>,\\n contract_storage_read: BoundedVec<ContractStorageRead, MAX_PUBLIC_DATA_READS_PER_CALL>,\\n public_call_stack: BoundedVec<Field, MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL>,\\n\\n new_commitments: BoundedVec<Field, MAX_NEW_COMMITMENTS_PER_CALL>,\\n new_nullifiers: BoundedVec<Field, crate::abi::MAX_NEW_NULLIFIERS_PER_CALL>,\\n\\n new_l2_to_l1_msgs: BoundedVec<Field, crate::abi::MAX_NEW_L2_TO_L1_MSGS_PER_CALL>,\\n\\n unencrypted_logs_hash: BoundedVec<Field, NUM_FIELDS_PER_SHA256>,\\n unencrypted_logs_preimages_length: Field,\\n\\n block_data: HistoricBlockData,\\n prover_address: Field,\\n}\\n\\nimpl PublicContext {\\n fn new(inputs: abi::PublicContextInputs, args_hash: Field) -> PublicContext {\\n let empty_storage_read = ContractStorageRead::empty();\\n let empty_storage_update = ContractStorageUpdateRequest::empty();\\n PublicContext {\\n inputs: inputs,\\n\\n args_hash: args_hash,\\n return_values: BoundedVec::new(0),\\n\\n contract_storage_update_requests: BoundedVec::new(empty_storage_update),\\n contract_storage_read: BoundedVec::new(empty_storage_read),\\n public_call_stack: BoundedVec::new(0),\\n\\n new_commitments: BoundedVec::new(0),\\n new_nullifiers: BoundedVec::new(0),\\n\\n new_l2_to_l1_msgs: BoundedVec::new(0),\\n\\n \\n unencrypted_logs_hash: BoundedVec::new(0),\\n unencrypted_logs_preimages_length: 0,\\n\\n block_data: inputs.block_data,\\n prover_address: 0,\\n\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\\n // encrypted_logs_preimages: Vec::new(),\\n // unencrypted_logs_preimages: Vec::new(),\\n }\\n }\\n\\n fn msg_sender(self) -> Field {\\n self.inputs.call_context.msg_sender\\n }\\n\\n fn this_address(self) -> Field {\\n self.inputs.call_context.storage_contract_address\\n }\\n\\n fn this_portal_address(self) -> Field {\\n self.inputs.call_context.portal_contract_address\\n }\\n\\n fn chain_id(self) -> Field {\\n self.inputs.public_global_variables.chain_id\\n }\\n\\n fn version(self) -> Field {\\n self.inputs.public_global_variables.version\\n }\\n\\n fn block_number(self) -> Field {\\n self.inputs.public_global_variables.block_number\\n }\\n\\n fn timestamp(self) -> Field {\\n self.inputs.public_global_variables.timestamp\\n }\\n\\n fn finish(self) -> abi::PublicCircuitPublicInputs {\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\\n let unencrypted_logs_hash = [0; NUM_FIELDS_PER_SHA256];\\n let unencrypted_log_preimages_length = 0;\\n\\n\\n // Compute the public call stack hashes\\n let pub_circuit_pub_inputs = abi::PublicCircuitPublicInputs {\\n call_context: self.inputs.call_context, // Done\\n args_hash: self.args_hash, // Done\\n contract_storage_update_requests: self.contract_storage_update_requests.storage,\\n contract_storage_read: self.contract_storage_read.storage,\\n return_values: self.return_values.storage,\\n new_commitments: self.new_commitments.storage,\\n new_nullifiers: self.new_nullifiers.storage,\\n public_call_stack: self.public_call_stack.storage,\\n new_l2_to_l1_msgs: self.new_l2_to_l1_msgs.storage,\\n unencrypted_logs_hash: unencrypted_logs_hash,\\n unencrypted_log_preimages_length: unencrypted_log_preimages_length,\\n block_data: self.inputs.block_data,\\n prover_address: self.prover_address,\\n };\\n pub_circuit_pub_inputs\\n }\\n\\n fn push_new_note_hash(&mut self, note_hash: Field) {\\n self.new_commitments.push(note_hash);\\n }\\n\\n fn push_new_nullifier(&mut self, nullifier: Field, _nullified_commitment: Field) {\\n self.new_nullifiers.push(nullifier);\\n }\\n\\n fn message_portal(&mut self, content: Field) {\\n self.new_l2_to_l1_msgs.push(content);\\n }\\n\\n // PrivateContextInputs must be temporarily passed in to prevent too many unknowns\\n // Note this returns self to get around an issue where mutable structs do not maintain mutations unless reassigned\\n fn consume_l1_to_l2_message(&mut self, msg_key: Field, content: Field, secret: Field) {\\n let this = (*self).this_address();\\n let nullifier = process_l1_to_l2_message(self.block_data.l1_to_l2_messages_tree_root, this, msg_key, content, secret);\\n\\n // Push nullifier (and the \\"commitment\\" corresponding to this can be \\"empty\\")\\n self.push_new_nullifier(nullifier, EMPTY_NULLIFIED_COMMITMENT)\\n }\\n\\n fn accumulate_encrypted_logs<N>(&mut self, log: [Field; N]) {\\n let _void1 = self;\\n let _void2 = log;\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\\n }\\n\\n fn accumulate_unencrypted_logs<T>(&mut self, log: T) {\\n let _void1 = self;\\n let _void2 = log;\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1165)\\n }\\n\\n fn call_public_function<ARGS_COUNT>(\\n _self: Self,\\n contract_address: Field, \\n function_selector: Field,\\n args: [Field; ARGS_COUNT],\\n ) -> [Field; RETURN_VALUES_LENGTH] {\\n let args_hash = abi::hash_args(args);\\n assert(args_hash == arguments::pack_arguments(args));\\n call_public_function_internal(\\n contract_address, \\n function_selector, \\n args_hash,\\n )\\n }\\n\\n fn call_public_function_no_args(\\n _self: Self,\\n contract_address: Field, \\n function_selector: Field,\\n ) -> [Field; RETURN_VALUES_LENGTH] {\\n call_public_function_internal(\\n contract_address, \\n function_selector, \\n 0,\\n )\\n }\\n\\n}","path":"/mnt/user-data/jan/aztec-packages/yarn-project/noir-libs/noir-aztec/src/context"},"33":{"source":"use crate::context::PrivateContext;\\nuse crate::oracle;\\nuse crate::types::point::Point;\\n\\nfn emit_encrypted_log<N>(\\n context: &mut PrivateContext,\\n contract_address: Field,\\n storage_slot: Field,\\n encryption_pub_key: Point,\\n log: [Field; N],\\n) {\\n let _ = oracle::logs::emit_encrypted_log(contract_address, storage_slot, encryption_pub_key, log);\\n context.accumulate_encrypted_logs(log);\\n}\\n\\nfn emit_unencrypted_log<T>(\\n context: &mut PrivateContext,\\n log: T,\\n) {\\n let _ = oracle::logs::emit_unencrypted_log(log);\\n context.accumulate_unencrypted_logs(log);\\n}\\n","path":"/mnt/user-data/jan/aztec-packages/yarn-project/noir-libs/noir-aztec/src/log"},"39":{"source":"use dep::std::option::Option;\\nuse crate::abi::PublicContextInputs;\\nuse crate::context::{\\n PrivateContext,\\n PublicContext,\\n};\\nuse crate::note::{\\n note_header::NoteHeader,\\n note_interface::NoteInterface,\\n utils::compute_inner_note_hash,\\n};\\nuse crate::oracle::notes::{notify_created_note, notify_nullified_note};\\nuse crate::constants_gen::EMPTY_NULLIFIED_COMMITMENT;\\n\\nfn create_note<Note, N>(\\n context: &mut PrivateContext,\\n storage_slot: Field,\\n note: &mut Note,\\n note_interface: NoteInterface<Note, N>,\\n) {\\n let contract_address = (*context).this_address();\\n\\n let header = NoteHeader { contract_address, storage_slot, nonce: 0 };\\n let set_header = note_interface.set_header;\\n set_header(note, header);\\n let inner_note_hash = compute_inner_note_hash(note_interface, *note);\\n\\n let serialise = note_interface.serialise;\\n let preimage = serialise(*note);\\n assert(notify_created_note(storage_slot, preimage, inner_note_hash) == 0);\\n\\n context.push_new_note_hash(inner_note_hash);\\n}\\n\\nfn create_note_hash_from_public<Note, N>(\\n context: &mut PublicContext,\\n storage_slot: Field,\\n note: &mut Note,\\n note_interface: NoteInterface<Note, N>,\\n) {\\n let contract_address = (*context).this_address();\\n\\n let header = NoteHeader { contract_address, storage_slot, nonce: 0 };\\n let set_header = note_interface.set_header;\\n set_header(note, header);\\n let inner_note_hash = compute_inner_note_hash(note_interface, *note);\\n\\n context.push_new_note_hash(inner_note_hash);\\n}\\n\\nfn destroy_note<Note, N>(\\n context: &mut PrivateContext,\\n storage_slot: Field,\\n note: Note,\\n note_interface: NoteInterface<Note, N>,\\n) {\\n let mut nullifier = 0;\\n let mut nullified_commitment: Field = EMPTY_NULLIFIED_COMMITMENT;\\n let compute_nullifier = note_interface.compute_nullifier;\\n nullifier = compute_nullifier(note);\\n\\n let serialise = note_interface.serialise;\\n let preimage = serialise(note);\\n\\n // We also need the note commitment corresponding to the \\"nullifier\\"\\n let get_header = note_interface.get_header;\\n let header = get_header(note);\\n // 0 nonce implies \\"transient\\" nullifier (must nullify a commitment in this TX).\\n // `nullified_commitment` is used to inform the kernel which pending commitment\\n // the nullifier corresponds to so they can be matched and both squashed/deleted.\\n // nonzero nonce implies \\"persistable\\" nullifier (nullifies a persistent/in-tree\\n // commitment) in which case `nullified_commitment` is not used since the kernel\\n // just siloes and forwards the nullier to its output.\\n if (header.nonce == 0) {\\n // TODO(suyash): Can we reuse the note commitment computed in `compute_nullifier`?\\n nullified_commitment = compute_inner_note_hash(note_interface, note);\\n }\\n assert(notify_nullified_note(storage_slot, nullifier, preimage, nullified_commitment) == 0);\\n\\n context.push_new_nullifier(nullifier, nullified_commitment)\\n}","path":"/mnt/user-data/jan/aztec-packages/yarn-project/noir-libs/noir-aztec/src/note/lifecycle"},"40":{"source":"use dep::std::option::Option;\\nuse crate::constants_gen::{\\n MAX_READ_REQUESTS_PER_CALL,\\n GET_NOTE_ORACLE_RETURN_LENGTH,\\n GET_NOTES_ORACLE_RETURN_LENGTH,\\n MAX_NOTES_PER_PAGE,\\n VIEW_NOTE_ORACLE_RETURN_LENGTH,\\n};\\nuse crate::context::PrivateContext;\\nuse crate::note::{\\n note_getter_options::{NoteGetterOptions, Select, Sort},\\n note_interface::NoteInterface,\\n note_header::NoteHeader,\\n note_viewer_options::NoteViewerOptions,\\n utils::compute_note_hash_for_read_or_nullify,\\n utils::compute_unique_siloed_note_hash,\\n utils::compute_inner_note_hash,\\n utils::compute_siloed_note_hash,\\n};\\nuse crate::messaging::get_commitment_getter_data::make_commitment_getter_data;\\nuse crate::oracle;\\nuse crate::types::vec::BoundedVec;\\n\\nfn check_note_header<Note, N>(\\n context: PrivateContext,\\n storage_slot: Field,\\n note_interface: NoteInterface<Note, N>,\\n note: Note,\\n) {\\n let get_header = note_interface.get_header;\\n let header = get_header(note);\\n let contract_address = context.this_address();\\n assert(header.contract_address == contract_address);\\n assert(header.storage_slot == storage_slot);\\n}\\n\\nfn ensure_note_exists<Note, N>(\\n context: &mut PrivateContext,\\n storage_slot: Field,\\n note_interface: NoteInterface<Note, N>,\\n note: &mut Note,\\n) {\\n let saved_note = get_note_internal(storage_slot, note_interface);\\n\\n // Only copy over the header to the original note to make sure the preimage is the same.\\n let get_header = note_interface.get_header;\\n let set_header = note_interface.set_header;\\n let note_header = get_header(saved_note);\\n set_header(note, note_header);\\n\\n check_note_header(*context, storage_slot, note_interface, *note);\\n\\n let note_hash_for_read_request = compute_note_hash_for_read_or_nullify(note_interface, *note);\\n context.push_read_request(note_hash_for_read_request);\\n}\\n\\n// Ensure a note\'s hash exists in the tree without retrieving the entire\\n// notes via the oracle.\\n// Modifies the note by populating it with header info.\\nfn ensure_note_hash_exists<Note, N>(\\n context: &mut PrivateContext,\\n storage_slot: Field,\\n note_interface: NoteInterface<Note, N>,\\n note: &mut Note,\\n) {\\n // Initialize header of note. Must be done before computing note hashes as it initializes the:\\n // - storage slot (used in inner note hash)\\n // - the contract address (used in siloed note hash)\\n // - and the nonce (used in the unique siloed note hash)\\n let set_header = note_interface.set_header;\\n let note_header = NoteHeader {\\n contract_address: (*context).this_address(),\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1386): should be\\n // real nonce (once public kernel applies nonces).\\n nonce: 0,\\n storage_slot\\n };\\n set_header(note, note_header);\\n\\n // Get a note from oracle and early out if it doesn\'t exist.\\n let inner_note_hash = compute_inner_note_hash(note_interface, *note);\\n\\n let raw_oracle_ret = oracle::get_commitment::get_commitment(inner_note_hash);\\n let deserialized_oracle_ret = make_commitment_getter_data(raw_oracle_ret, 0);\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1386): should be\\n // unique_siloed_note_hash once public kernel applies nonces\\n let saved_siloed_note_hash = deserialized_oracle_ret.message;\\n\\n assert(saved_siloed_note_hash != 0); // TODO(dbanks12): necessary?\\n\\n check_note_header(*context, storage_slot, note_interface, *note);\\n\\n // Ensure that the note hash retrieved from oracle matches the one computed from note.\\n let computed_siloed_note_hash = compute_siloed_note_hash(note_interface, *note);\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1386): should be\\n // compute_note_hash_for_read_or_nullify once public kernel applies nonces\\n assert(computed_siloed_note_hash == saved_siloed_note_hash);\\n\\n context.push_read_request(computed_siloed_note_hash);\\n}\\n\\nfn get_note<Note, N>(\\n context: &mut PrivateContext,\\n storage_slot: Field,\\n note_interface: NoteInterface<Note, N>,\\n) -> Note {\\n let note = get_note_internal(storage_slot, note_interface);\\n\\n check_note_header(*context, storage_slot, note_interface, note);\\n\\n let note_hash_for_read_request = compute_note_hash_for_read_or_nullify(note_interface, note);\\n\\n context.push_read_request(note_hash_for_read_request);\\n note\\n}\\n\\nfn get_notes<Note, N, FILTER_ARGS>(\\n context: &mut PrivateContext,\\n storage_slot: Field,\\n note_interface: NoteInterface<Note, N>,\\n options: NoteGetterOptions<Note, N, FILTER_ARGS>,\\n) -> [Option<Note>; MAX_READ_REQUESTS_PER_CALL] {\\n let opt_notes = get_notes_internal(storage_slot, note_interface, options);\\n for i in 0..opt_notes.len() {\\n let opt_note = opt_notes[i];\\n let mut note_hash_for_read_request = 0;\\n if opt_note.is_some() {\\n let note = opt_note.unwrap_unchecked();\\n check_note_header(*context, storage_slot, note_interface, note);\\n note_hash_for_read_request = compute_note_hash_for_read_or_nullify(note_interface, note);\\n };\\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1410): test to ensure\\n // failure if malicious oracle injects 0 nonce here for a \\"pre-existing\\" note.\\n context.push_read_request(note_hash_for_read_request);\\n };\\n\\n // TODO(#1660)\\n // Move it back to get_notes_internal and only make read request for selected notes.\\n let filter = options.filter;\\n let filter_args = options.filter_args;\\n filter(opt_notes, filter_args)\\n}\\n\\nunconstrained fn get_note_internal<Note, N>(\\n storage_slot: Field,\\n note_interface: NoteInterface<Note, N>,\\n) -> Note {\\n let placeholder_note = [Option::none()];\\n let placeholder_fields = [0; GET_NOTE_ORACLE_RETURN_LENGTH];\\n oracle::notes::get_notes(\\n storage_slot,\\n note_interface,\\n 0,\\n [],\\n [],\\n [],\\n [],\\n 1, // limit\\n 0, // offset\\n placeholder_note,\\n placeholder_fields,\\n )[0].unwrap() // Notice: we don\'t allow dummies to be returned from get_note (singular).\\n}\\n\\nunconstrained fn get_notes_internal<Note, N, FILTER_ARGS>(\\n storage_slot: Field,\\n note_interface: NoteInterface<Note, N>,\\n options: NoteGetterOptions<Note, N, FILTER_ARGS>,\\n) -> [Option<Note>; MAX_READ_REQUESTS_PER_CALL] {\\n let (num_selects, select_by, select_values, sort_by, sort_order) = flatten_options(options.selects, options.sorts);\\n let placeholder_opt_notes = [Option::none(); MAX_READ_REQUESTS_PER_CALL];\\n let placeholder_fields = [0; GET_NOTES_ORACLE_RETURN_LENGTH];\\n oracle::notes::get_notes(\\n storage_slot,\\n note_interface,\\n num_selects,\\n select_by,\\n select_values,\\n sort_by,\\n sort_order,\\n options.limit,\\n options.offset,\\n placeholder_opt_notes,\\n placeholder_fields,\\n )\\n}\\n\\nunconstrained fn view_notes<Note, N>(\\n storage_slot: Field,\\n note_interface: NoteInterface<Note, N>,\\n options: NoteViewerOptions<Note, N>,\\n) -> [Option<Note>; MAX_NOTES_PER_PAGE] {\\n let (num_selects, select_by, select_values, sort_by, sort_order) = flatten_options(options.selects, options.sorts);\\n let placeholder_opt_notes = [Option::none(); MAX_NOTES_PER_PAGE];\\n let placeholder_fields = [0; VIEW_NOTE_ORACLE_RETURN_LENGTH];\\n oracle::notes::get_notes(\\n storage_slot,\\n note_interface,\\n num_selects,\\n select_by,\\n select_values,\\n sort_by,\\n sort_order,\\n options.limit,\\n options.offset,\\n placeholder_opt_notes,\\n placeholder_fields,\\n )\\n}\\n\\nunconstrained fn flatten_options<Note, N>(\\n selects: BoundedVec<Option<Select>, N>,\\n sorts: BoundedVec<Option<Sort>, N>,\\n) -> (u8, [u8; N], [Field; N], [u8; N], [u2; N]) {\\n let mut num_selects = 0;\\n let mut select_by = [0; N];\\n let mut select_values = [0; N];\\n for i in 0..selects.len {\\n let select = selects.get(i);\\n if select.is_some() {\\n select_by[num_selects] = select.unwrap_unchecked().field_index;\\n select_values[num_selects] = select.unwrap_unchecked().value;\\n num_selects += 1;\\n };\\n };\\n\\n let mut sort_by = [0; N];\\n let mut sort_order = [0; N];\\n for i in 0..sorts.len {\\n let sort = sorts.get(i);\\n if sort.is_some() {\\n sort_by[i] = sort.unwrap_unchecked().field_index;\\n sort_order[i] = sort.unwrap_unchecked().order;\\n };\\n };\\n\\n (num_selects, select_by, select_values, sort_by, sort_order)\\n}","path":"/mnt/user-data/jan/aztec-packages/yarn-project/noir-libs/noir-aztec/src/note/note_getter"},"42":{"source":"use dep::std::hash::{pedersen, pedersen_with_separator};\\nuse crate::constants_gen::{GENERATOR_INDEX__UNIQUE_COMMITMENT, GENERATOR_INDEX__SILOED_COMMITMENT};\\n\\nfn compute_inner_hash(storage_slot: Field, note_hash: Field) -> Field {\\n // TODO(#1205) Do we need a generator index here?\\n pedersen([storage_slot, note_hash])[0]\\n}\\n\\nfn compute_siloed_hash(contract_address: Field, inner_note_hash: Field) -> Field {\\n let inputs = [contract_address, inner_note_hash];\\n pedersen_with_separator(inputs, GENERATOR_INDEX__SILOED_COMMITMENT)[0]\\n}\\n\\nfn compute_unique_hash(nonce: Field, siloed_note_hash: Field) -> Field {\\n let inputs = [nonce, siloed_note_hash];\\n pedersen_with_separator(inputs, GENERATOR_INDEX__UNIQUE_COMMITMENT)[0]\\n}\\n","path":"/mnt/user-data/jan/aztec-packages/yarn-project/noir-libs/noir-aztec/src/note/note_hash"},"46":{"source":"use crate::note::{\\n note_hash::{compute_inner_hash, compute_siloed_hash, compute_unique_hash},\\n note_header::NoteHeader,\\n note_interface::NoteInterface,\\n};\\nuse crate::utils::arr_copy_slice;\\n\\nfn compute_inner_note_hash<Note, N>(\\n note_interface: NoteInterface<Note, N>,\\n note: Note,\\n) -> Field {\\n let get_header = note_interface.get_header;\\n let header = get_header(note);\\n\\n let compute_note_hash = note_interface.compute_note_hash;\\n let note_hash = compute_note_hash(note);\\n\\n compute_inner_hash(header.storage_slot, note_hash)\\n}\\n\\nfn compute_siloed_note_hash<Note, N>(\\n note_interface: NoteInterface<Note, N>,\\n note_with_header: Note,\\n) -> Field {\\n let get_header = note_interface.get_header;\\n let header = get_header(note_with_header);\\n\\n let inner_note_hash = compute_inner_note_hash(note_interface, note_with_header);\\n\\n compute_siloed_hash(header.contract_address, inner_note_hash)\\n}\\n\\nfn compute_unique_siloed_note_hash<Note, N>(\\n note_interface: NoteInterface<Note, N>,\\n note_with_header: Note,\\n) -> Field {\\n let get_header = note_interface.get_header;\\n let header = get_header(note_with_header);\\n\\n let siloed_note_hash = compute_siloed_note_hash(note_interface, note_with_header);\\n\\n compute_unique_hash(header.nonce, siloed_note_hash)\\n}\\n\\nfn compute_note_hash_for_read_or_nullify<Note, N>(\\n note_interface: NoteInterface<Note, N>,\\n note_with_header: Note,\\n) -> Field {\\n let get_header = note_interface.get_header;\\n let header = get_header(note_with_header);\\n\\n if (header.nonce == 0) {\\n // when nonce is zero, that means we are reading a pending note (doesn\'t have a nonce yet),\\n // so we just read the inner_note_hash (kernel will silo by contract address)\\n compute_inner_note_hash(note_interface, note_with_header)\\n } else {\\n // When nonce is nonzero, that means we are reading a settled note (from tree) created in a\\n // previous TX. So we need the unique_siloed_note_hash which has already been hashed with\\n // contract address and then nonce. This hash will match the existing leaf in the private\\n // data tree, so the kernel can just perform a membership check directly on this hash/leaf.\\n compute_unique_siloed_note_hash(note_interface, note_with_header)\\n }\\n\\n}\\n\\nfn compute_note_hash_and_nullifier<Note, N, S>(\\n note_interface: NoteInterface<Note, N>,\\n note_header: NoteHeader,\\n preimage: [Field; S],\\n) -> [Field; 4] {\\n let deserialise = note_interface.deserialise;\\n let set_header = note_interface.set_header;\\n let mut note = deserialise(arr_copy_slice(preimage, [0; N], 0));\\n set_header(&mut note, note_header);\\n\\n let compute_note_hash = note_interface.compute_note_hash;\\n let note_hash = compute_note_hash(note);\\n let inner_note_hash = compute_inner_hash(note_header.storage_slot, note_hash);\\n\\n let siloed_note_hash = compute_siloed_hash(note_header.contract_address, inner_note_hash);\\n\\n let unique_siloed_note_hash = compute_unique_hash(note_header.nonce, siloed_note_hash);\\n\\n let compute_nullifier = note_interface.compute_nullifier;\\n let inner_nullifier = compute_nullifier(note);\\n\\n [inner_note_hash, siloed_note_hash, unique_siloed_note_hash, inner_nullifier]\\n}\\n","path":"/mnt/user-data/jan/aztec-packages/yarn-project/noir-libs/noir-aztec/src/note/utils"},"48":{"source":"use dep::std::hash::pedersen_with_separator;\\nuse crate::context::PrivateContext;\\nuse crate::note::{\\n lifecycle::create_note,\\n note_getter::{get_note, view_notes},\\n note_interface::NoteInterface,\\n note_viewer_options::NoteViewerOptions,\\n};\\nuse crate::oracle;\\nuse crate::constants_gen::{\\n GENERATOR_INDEX__INITIALISATION_NULLIFIER,\\n EMPTY_NULLIFIED_COMMITMENT,\\n};\\n\\nstruct ImmutableSingleton<Note, N> {\\n storage_slot: Field,\\n note_interface: NoteInterface<Note, N>,\\n}\\n\\nimpl<Note, N> ImmutableSingleton<Note, N> {\\n fn new(storage_slot: Field, note_interface: NoteInterface<Note, N>) -> Self {\\n ImmutableSingleton { storage_slot, note_interface }\\n }\\n\\n unconstrained fn is_initialised(self) -> bool {\\n let nullifier = self.compute_initialisation_nullifier();\\n oracle::notes::is_nullifier_emitted(nullifier)\\n }\\n\\n fn initialise(self, context: &mut PrivateContext, note: &mut Note) {\\n // Nullify the storage slot.\\n let nullifier = self.compute_initialisation_nullifier();\\n context.push_new_nullifier(nullifier, EMPTY_NULLIFIED_COMMITMENT);\\n\\n create_note(context, self.storage_slot, note, self.note_interface);\\n }\\n\\n fn compute_initialisation_nullifier(self) -> Field {\\n pedersen_with_separator([self.storage_slot], GENERATOR_INDEX__INITIALISATION_NULLIFIER)[0]\\n }\\n \\n fn get_note(self, context: &mut PrivateContext) -> Note {\\n let storage_slot = self.storage_slot;\\n get_note(context, storage_slot, self.note_interface)\\n }\\n\\n unconstrained fn view_note(self) -> Note {\\n let options = NoteViewerOptions::new().set_limit(1);\\n view_notes(self.storage_slot, self.note_interface, options)[0].unwrap()\\n }\\n}","path":"/mnt/user-data/jan/aztec-packages/yarn-project/noir-libs/noir-aztec/src/state_vars/immutable_singleton"},"55":{"source":"\\nstruct BoundedVec<T, MaxLen> {\\n storage: [T; MaxLen],\\n len: Field,\\n}\\n\\nimpl<T, MaxLen> BoundedVec<T, MaxLen> {\\n fn new(initial_value: T) -> Self {\\n BoundedVec { storage: [initial_value; MaxLen], len: 0 }\\n }\\n\\n fn get(mut self: Self, index: Field) -> T {\\n assert(index as u64 < self.len as u64);\\n self.storage[index]\\n }\\n\\n fn push(&mut self, elem: T) {\\n assert(self.len as u64 < MaxLen as u64);\\n\\n self.storage[self.len] = elem;\\n self.len += 1;\\n }\\n\\n fn push_array<Len>(&mut self, array: [T; Len]) {\\n let newLen = self.len + array.len();\\n assert(newLen as u64 <= MaxLen as u64);\\n for i in 0..array.len() {\\n self.storage[self.len + i] = array[i];\\n }\\n self.len = newLen;\\n }\\n\\n fn pop(&mut self) -> T {\\n assert(self.len as u64 > 0);\\n\\n let elem = self.storage[self.len - 1];\\n self.len -= 1;\\n elem\\n }\\n}\\n\\n// #[test]\\n// fn test_vec() {\\n// let vec: BoundedVec<Field, 2> = BoundedVec::new(0);\\n// assert(vec.len == 0);\\n// let vec1 = vec.push(1);\\n// assert(vec1.len == 1);\\n// let vec2 = vec1.push(1);\\n// assert(vec2.len == 2);\\n// let vec3 = vec2.push(1);\\n// assert(vec3.len == 3);\\n// let x = vec3.pop();\\n// assert(x == 1);\\n// }","path":"/mnt/user-data/jan/aztec-packages/yarn-project/noir-libs/noir-aztec/src/types/vec"},"70":{"source":"use crate::types::point::Point;\\nuse dep::std::hash;\\nuse crate::constants_gen::GENERATOR_INDEX__CONTRACT_ADDRESS;\\n\\n#[oracle(getPublicKey)]\\nfn get_public_key_oracle(_address: Field) -> [Field; 3] {}\\n\\nunconstrained fn get_public_key_internal(address: Field) -> [Field; 3] {\\n get_public_key_oracle(address)\\n}\\n\\nfn get_public_key(address: Field) -> Point {\\n let result = get_public_key_internal(address);\\n let pub_key_x = result[0];\\n let pub_key_y = result[1];\\n let partial_address = result[2];\\n \\n let calculated_address = hash::pedersen_with_separator([pub_key_x, pub_key_y, partial_address], GENERATOR_INDEX__CONTRACT_ADDRESS)[0];\\n assert(calculated_address == address);\\n \\n Point::new(pub_key_x, pub_key_y)\\n}\\n","path":"/mnt/user-data/jan/aztec-packages/yarn-project/noir-libs/noir-aztec/src/oracle/get_public_key"},"78":{"source":"use crate::abi;\\nuse crate::types::vec::BoundedVec;\\nuse crate::context::PrivateContext;\\nuse crate::private_call_stack_item::PrivateCallStackItem;\\nuse crate::public_call_stack_item::PublicCallStackItem; \\n\\nglobal ACCOUNT_MAX_PRIVATE_CALLS: Field = 2;\\nglobal ACCOUNT_MAX_PUBLIC_CALLS: Field = 2;\\nglobal ACCOUNT_MAX_CALLS: Field = 4;\\n// 1 (ARGS_HASH) + 1 (FUNCTION_SELECTOR) + 1 (TARGET_ADDRESS)\\nglobal FUNCTION_CALL_SIZE: Field = 3;\\n\\nstruct FunctionCall {\\n args_hash: Field,\\n function_selector: Field,\\n target_address: Field,\\n}\\n\\nimpl FunctionCall {\\n fn serialize(self) -> [Field; FUNCTION_CALL_SIZE] {\\n [self.args_hash, self.function_selector, self.target_address]\\n }\\n}\\n\\n// FUNCTION_CALL_SIZE * (ACCOUNT_MAX_PUBLIC_CALLS + ACCOUNT_MAX_PRIVATE_CALLS) + 1\\nglobal ENTRYPOINT_PAYLOAD_SIZE: Field = 13;\\nglobal ENTRYPOINT_PAYLOAD_SIZE_IN_BYTES: Field = 416;\\n\\nstruct EntrypointPayload {\\n // Noir doesnt support nested arrays or structs yet so we flatten everything\\n flattened_args_hashes: [Field; ACCOUNT_MAX_CALLS],\\n flattened_selectors: [Field; ACCOUNT_MAX_CALLS],\\n flattened_targets: [Field; ACCOUNT_MAX_CALLS],\\n nonce: Field,\\n}\\n\\nimpl EntrypointPayload {\\n // TODO(#1207) Do we need a generator index?\\n fn hash(self) -> Field {\\n dep::std::hash::pedersen(self.serialize())[0]\\n }\\n\\n // Serializes the entrypoint struct\\n fn serialize(self) -> [Field; ENTRYPOINT_PAYLOAD_SIZE] {\\n let mut fields: BoundedVec<Field, ENTRYPOINT_PAYLOAD_SIZE> = BoundedVec::new(0); \\n fields.push_array(self.flattened_args_hashes);\\n fields.push_array(self.flattened_selectors);\\n fields.push_array(self.flattened_targets);\\n fields.push(self.nonce);\\n fields.storage\\n }\\n\\n // Serializes the payload as an array of bytes. Useful for hashing with sha256.\\n fn to_be_bytes(self) -> [u8; ENTRYPOINT_PAYLOAD_SIZE_IN_BYTES] {\\n let mut bytes: [u8; ENTRYPOINT_PAYLOAD_SIZE_IN_BYTES] = [0; ENTRYPOINT_PAYLOAD_SIZE_IN_BYTES];\\n\\n let args_len = self.flattened_args_hashes.len();\\n let selectors_len = self.flattened_selectors.len();\\n let targets_len = self.flattened_targets.len();\\n\\n for i in 0..args_len {\\n let item_bytes = self.flattened_args_hashes[i].to_be_bytes(32);\\n for j in 0..32 { \\n bytes[i * 32 + j] = item_bytes[j];\\n }\\n }\\n\\n for i in 0..selectors_len {\\n let item_bytes = self.flattened_selectors[i].to_be_bytes(32);\\n for j in 0..32 { \\n bytes[args_len * 32 + i * 32 + j] = item_bytes[j];\\n }\\n }\\n\\n for i in 0..targets_len {\\n let item_bytes = self.flattened_targets[i].to_be_bytes(32);\\n for j in 0..32 { \\n bytes[(args_len + selectors_len) * 32 + i * 32 + j] = item_bytes[j];\\n }\\n }\\n \\n let item_bytes = self.nonce.to_be_bytes(32);\\n for j in 0..32 { \\n bytes[(args_len + selectors_len + targets_len) * 32 + j] = item_bytes[j];\\n }\\n\\n bytes\\n }\\n\\n // Executes all private and public calls \\n fn execute_calls(self, context: &mut PrivateContext) {\\n for i in 0..ACCOUNT_MAX_PRIVATE_CALLS {\\n let target_address = self.flattened_targets[i];\\n if target_address != 0 {\\n let function_selector = self.flattened_selectors[i];\\n let args_hash = self.flattened_args_hashes[i];\\n let _callStackItem = context.call_private_function_with_packed_args(target_address, function_selector, args_hash);\\n }\\n }\\n for i in ACCOUNT_MAX_PRIVATE_CALLS..ACCOUNT_MAX_CALLS {\\n let target_address = self.flattened_targets[i];\\n if target_address != 0 {\\n let function_selector = self.flattened_selectors[i];\\n let args_hash = self.flattened_args_hashes[i];\\n let _callStackItem = context.call_public_function_with_packed_args(target_address, function_selector, args_hash);\\n }\\n }\\n }\\n}","path":"/mnt/user-data/jan/aztec-packages/yarn-project/noir-libs/noir-aztec/src/entrypoint"}}}}');class Bi{constructor(e){this.signingPrivateKey=e}async getDeploymentArgs(){const e=await Ks.new().then((e=>e.computePublicKey(this.signingPrivateKey)));return[e.x,e.y]}async getEntrypoint({address:e},{chainId:t,version:n}){return new xi(e,this.signingPrivateKey,await Ks.new(),t,n)}getContractAbi(){return Oi}}class Di{constructor(e){this.encryptionPrivateKey=e}getDeploymentArgs(){return Promise.resolve([])}async getEntrypoint({address:e,partialAddress:t},{chainId:n,version:r}){return new ti(e,t,this.encryptionPrivateKey,await Ks.new(),n,r)}getContractAbi(){return qa}}class Fi{constructor(e=[]){this.entrypoints=new Map;for(const[t,n]of e)this.registerAccount(t,n)}static async fromAccounts(e){const t=new Fi;for(const n of e)t.registerAccount((await n.getCompleteAddress()).address,await n.getEntrypoint());return t}registerAccount(e,t){this.entrypoints.set(e.toString(),t)}createTxExecutionRequest(e,t={}){const n=this.entrypoints.values().next().value,r=t.origin?this.entrypoints.get(t.origin.toString()):n;if(!r)throw new Error(`No entrypoint registered for ${t.origin}`);return r.createTxExecutionRequest(e,t)}}function Mi(e,t,n,r){return new Ii(e,t,new ki(n),r)}function Ui(e,t,n,r){return new Ii(e,t,new Bi(n),r)}function zi(e,t,n){return new Ii(e,t,new Di(t),n)}function Hi(e,t,n){return ji(e,t,new Di(n))}async function ji(e,t,n){const r=await e.getAccount(t);if(!r)throw new Error(`Account ${t} not found`);const s=await e.getNodeInfo(),a=await n.getEntrypoint(r,s);return new si(e,a,r)}var Zi=n(816).Buffer;const Gi=[new ta(Zi.from("b2803ec899f76f6b2ac011480d24028f1a29587f8a3a92f7ee9d48d8c085c284","hex")),new ta(Zi.from("6bb46e9a80da2ff7bfff71c2c50eaaa4b15f7ed5ad1ade4261b574ef80b0cdb0","hex")),new ta(Zi.from("0f6addf0da06c33293df974a565b03d1ab096090d907d98055a8b7f4954e120c","hex"))],Wi=Gi,Qi=[Rn.ZERO,Rn.ZERO,Rn.ZERO],Yi=Oi;async function Xi(e){return await oi(e,Yi,Gi,Wi,Qi)}async function Vi(e){const t=Gi.map(((t,n)=>({account:Ui(e,t,Wi[n],Qi[n]),privateKey:t}))),n=(await Promise.all(t.map((async e=>{const t=await e.account.getDeployMethod();return await t.create({contractAddressSalt:e.account.salt}),await t.simulate({}),t})))).map((e=>e.send()));return await Promise.all(n.map((async(e,n)=>{const r=await t[n].account.getWallet();return e.wait({wallet:r})}))),t}const Ji=async e=>{for(;;)try{await e.getNodeInfo();break}catch(e){await na(1e3)}}})();var s=r.mR,a=r.bG,i=r.xz,o=r.EB,l=r.cC,c=r.C3,u=r.QT,f=r.ug,d=r.CH,_=r.xq,h=r.vp,p=r.xr,g=r.Ag,b=r.W_,m=r.g2,y=r.Y8,w=r.gB,v=r.vX,E=r.Bi,A=r.jF,L=r.Wi,C=r.Fr,S=r.E7,T=r.ah,P=r.N0,R=r.rL,I=r.$h,N=r.pP,x=r.E9,k=r._q,O=r.lW,B=r.a5,D=r.GR,F=r.x6,M=r.of,U=r.E$,z=r.Tx,H=r.qd,j=r.f1,Z=r.EY,G=r.bH,W=r.qx,Q=r.ig,Y=r._$,X=r.g$,V=r.sn,J=r.es,K=r.ir,q=r.G0,$=r.o2,ee=r.nW,te=r.qe,ne=r.IQ,re=r.JA,se=r.FV,ae=r.iL,ie=r.dH,oe=r.Jz,le=r._v,ce=r.qW;export{s as Account,a as AccountWallet,i as AztecAddress,o as AztecCheatCodes,l as BaseWallet,c as BatchCall,u as CheatCodes,f as CompleteAddress,d as Contract,_ as ContractBase,h as ContractData,p as ContractDataAndBytecode,g as ContractDeployer,b as ContractDeploymentTx,m as ContractFunctionInteraction,y as DeployMethod,w as EcdsaAccountContract,v as EntrypointCollection,E as EntrypointWallet,A as EthAddress,L as EthCheatCodes,C as Fr,S as INITIAL_SANDBOX_ACCOUNT_CONTRACT_ABI,T as INITIAL_SANDBOX_ENCRYPTION_KEYS,P as INITIAL_SANDBOX_SALTS,R as INITIAL_SANDBOX_SIGNING_KEYS,I as L2BlockL2Logs,N as PackedArguments,x as Point,k as PrivateKey,O as SchnorrAccountContract,B as SentTx,D as SignerlessWallet,F as SingleKeyAccountContract,M as SingleKeyAccountEntrypoint,U as StoredKeyAccountEntrypoint,z as Tx,H as TxExecutionRequest,j as TxHash,Z as TxReceipt,G as TxStatus,W as computeMessageSecretHash,Q as createAccounts,Y as createAztecRpcClient,X as createDebugLogger,V as deployInitialSandboxAccounts,J as emptyFunctionCall,K as generatePublicKey,q as getAccountWallets,$ as getEcdsaAccount,ee as getL1ContractAddresses,te as getSandboxAccountsWallet,ne as getSchnorrAccount,re as getUnsafeSchnorrAccount,se as getUnsafeSchnorrWallet,ae as getWallet,ie as isContractDeployed,oe as makeFetch,le as sleep,ce as waitForSandbox};